diff options
3 files changed, 16 insertions, 63 deletions
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs index ab2e064..3a0bdc3 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs | |||
@@ -201,23 +201,12 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
201 | data = new MapBlockData(); | 201 | data = new MapBlockData(); |
202 | data.Agents = 0; | 202 | data.Agents = 0; |
203 | data.Access = info.Access; | 203 | data.Access = info.Access; |
204 | if (flags == 2) // V2 sends this | 204 | MapBlockData block = new MapBlockData(); |
205 | { | 205 | WorldMap.MapBlockFromGridRegion(block, info, flags); |
206 | List<MapBlockData> datas = WorldMap.Map2BlockFromGridRegion(info, flags); | ||
207 | // ugh! V2-3 is very sensitive about the result being | ||
208 | // exactly the same as the requested name | ||
209 | 206 | ||
210 | if (regionInfos.Count == 1 && needOriginalName) | 207 | if (flags == 2 && regionInfos.Count == 1 && needOriginalName) |
211 | datas.ForEach(d => d.Name = mapNameOrig); | 208 | block.Name = mapNameOrig; |
212 | 209 | blocks.Add(block); | |
213 | blocks.AddRange(datas); | ||
214 | } | ||
215 | else | ||
216 | { | ||
217 | MapBlockData block = new MapBlockData(); | ||
218 | WorldMap.MapBlockFromGridRegion(block,info, flags); | ||
219 | blocks.Add(block); | ||
220 | } | ||
221 | } | 210 | } |
222 | } | 211 | } |
223 | 212 | ||
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs index 59a3499..4c2751f 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs | |||
@@ -1100,18 +1100,9 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
1100 | if (r == null) | 1100 | if (r == null) |
1101 | continue; | 1101 | continue; |
1102 | MapBlockData block = new MapBlockData(); | 1102 | MapBlockData block = new MapBlockData(); |
1103 | if ((flag & 2) == 2) | 1103 | MapBlockFromGridRegion(block, r, flag); |
1104 | { | 1104 | mapBlocks.Add(block); |
1105 | List<MapBlockData> blocks = Map2BlockFromGridRegion(r, flag); | 1105 | allBlocks.Add(block); |
1106 | mapBlocks.AddRange(blocks); | ||
1107 | allBlocks.AddRange(blocks); | ||
1108 | } | ||
1109 | else | ||
1110 | { | ||
1111 | MapBlockFromGridRegion(block, r, flag); | ||
1112 | mapBlocks.Add(block); | ||
1113 | allBlocks.Add(block); | ||
1114 | } | ||
1115 | 1106 | ||
1116 | if (mapBlocks.Count >= 10) | 1107 | if (mapBlocks.Count >= 10) |
1117 | { | 1108 | { |
@@ -1128,6 +1119,14 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
1128 | 1119 | ||
1129 | public void MapBlockFromGridRegion(MapBlockData block, GridRegion r, uint flag) | 1120 | public void MapBlockFromGridRegion(MapBlockData block, GridRegion r, uint flag) |
1130 | { | 1121 | { |
1122 | if (r == null) | ||
1123 | { | ||
1124 | // block.Access = (byte)SimAccess.Down; | ||
1125 | block.Access = (byte)SimAccess.NonExistent; | ||
1126 | block.MapImageId = UUID.Zero; | ||
1127 | return; | ||
1128 | } | ||
1129 | |||
1131 | block.Access = r.Access; | 1130 | block.Access = r.Access; |
1132 | switch (flag) | 1131 | switch (flag) |
1133 | { | 1132 | { |
@@ -1146,41 +1145,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
1146 | block.Y = (ushort)(r.RegionLocY / Constants.RegionSize); | 1145 | block.Y = (ushort)(r.RegionLocY / Constants.RegionSize); |
1147 | block.SizeX = (ushort)r.RegionSizeX; | 1146 | block.SizeX = (ushort)r.RegionSizeX; |
1148 | block.SizeY = (ushort)r.RegionSizeY; | 1147 | block.SizeY = (ushort)r.RegionSizeY; |
1149 | } | ||
1150 | 1148 | ||
1151 | public List<MapBlockData> Map2BlockFromGridRegion(GridRegion r, uint flag) | ||
1152 | { | ||
1153 | List<MapBlockData> blocks = new List<MapBlockData>(); | ||
1154 | MapBlockData block = new MapBlockData(); | ||
1155 | if (r == null) | ||
1156 | { | ||
1157 | block.Access = (byte)SimAccess.Down; | ||
1158 | block.MapImageId = UUID.Zero; | ||
1159 | blocks.Add(block); | ||
1160 | } | ||
1161 | else | ||
1162 | { | ||
1163 | block.Access = r.Access; | ||
1164 | switch (flag & 0xffff) | ||
1165 | { | ||
1166 | case 0: | ||
1167 | block.MapImageId = r.TerrainImage; | ||
1168 | break; | ||
1169 | case 2: | ||
1170 | block.MapImageId = r.ParcelImage; | ||
1171 | break; | ||
1172 | default: | ||
1173 | block.MapImageId = UUID.Zero; | ||
1174 | break; | ||
1175 | } | ||
1176 | block.Name = r.RegionName; | ||
1177 | block.X = (ushort)(r.RegionLocX / Constants.RegionSize); | ||
1178 | block.Y = (ushort)(r.RegionLocY / Constants.RegionSize); | ||
1179 | block.SizeX = (ushort)r.RegionSizeX; | ||
1180 | block.SizeY = (ushort)r.RegionSizeY; | ||
1181 | blocks.Add(block); | ||
1182 | } | ||
1183 | return blocks; | ||
1184 | } | 1149 | } |
1185 | 1150 | ||
1186 | public Hashtable OnHTTPThrottled(Hashtable keysvals) | 1151 | public Hashtable OnHTTPThrottled(Hashtable keysvals) |
diff --git a/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs index e9cf4ad..ee7c4ec 100644 --- a/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs | |||
@@ -36,7 +36,6 @@ namespace OpenSim.Region.Framework.Interfaces | |||
36 | /// Generate a map tile for the scene. a terrain texture for this scene | 36 | /// Generate a map tile for the scene. a terrain texture for this scene |
37 | /// </summary> | 37 | /// </summary> |
38 | void GenerateMaptile(); | 38 | void GenerateMaptile(); |
39 | List<MapBlockData> Map2BlockFromGridRegion(GridRegion r, uint flag); | ||
40 | void MapBlockFromGridRegion(MapBlockData block, GridRegion r, uint flag); | 39 | void MapBlockFromGridRegion(MapBlockData block, GridRegion r, uint flag); |
41 | } | 40 | } |
42 | } | 41 | } |