diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs index 1ebde685b7..1bbd9feed8 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs @@ -999,7 +999,8 @@ namespace OpenSim.Region.CoreModules.World.WorldMap /// public void RequestMapBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY, uint flag) { - //m_log.ErrorFormat("[YYY] RequestMapBlocks {0}={1}={2}={3} {4}", minX, minY, maxX, maxY, flag); + m_log.DebugFormat("[WoldMapModule] RequestMapBlocks {0}={1}={2}={3} {4}", minX, minY, maxX, maxY, flag); +/* this flag does not seem to mean what his says if ((flag & 0x10000) != 0) // user clicked on qthe map a tile that isn't visible { List response = new List(); @@ -1049,8 +1050,9 @@ namespace OpenSim.Region.CoreModules.World.WorldMap else { // normal mapblock request. Use the provided values + */ GetAndSendBlocks(remoteClient, minX, minY, maxX, maxY, flag); - } + // } } protected virtual List GetAndSendBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY, uint flag) @@ -1123,6 +1125,21 @@ namespace OpenSim.Region.CoreModules.World.WorldMap // (maxX + 4) * (int)Constants.RegionSize, // (minY - 4) * (int)Constants.RegionSize, // (maxY + 4) * (int)Constants.RegionSize); + + //mb it means this + if(regions.Count == 0 && (flag & 0x10000) != 0) + { + MapBlockData block = new MapBlockData(); + block.X = (ushort)minX; + block.Y = (ushort)minY; + block.MapImageId = UUID.Zero; + block.Access = (byte)SimAccess.Down; // means 'simulator is offline' + allBlocks.Add(block); + mapBlocks.Add(block); + remoteClient.SendMapBlock(mapBlocks, flag & 0xffff); + return allBlocks; + } + foreach (GridRegion r in regions) { MapBlockData block = new MapBlockData();