diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 069987bd71..f3ac2df085 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs @@ -77,7 +77,7 @@ namespace OpenSim.Framework public delegate void RequestMapBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY, uint flag); - public delegate void RequestMapName(IClientAPI remoteClient, string mapName); + public delegate void RequestMapName(IClientAPI remoteClient, string mapName, uint flags); public delegate void TeleportLocationRequest( IClientAPI remoteClient, ulong regionHandle, Vector3 position, Vector3 lookAt, uint flags); diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 025c6e6984..1635a2dd07 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs @@ -8264,13 +8264,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP return true; } #endregion - string mapName = Util.UTF8.GetString(map.NameData.Name, 0, map.NameData.Name.Length - 1); RequestMapName handlerMapNameRequest = OnMapNameRequest; if (handlerMapNameRequest != null) { - handlerMapNameRequest(this, mapName); + handlerMapNameRequest(this, mapName, map.AgentData.Flags); } return true; } diff --git a/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs index f9ef2864e6..c059a5f95c 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs @@ -84,7 +84,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap client.OnMapNameRequest += OnMapNameRequest; } - private void OnMapNameRequest(IClientAPI remoteClient, string mapName) + private void OnMapNameRequest(IClientAPI remoteClient, string mapName, uint flags) { if (mapName.Length < 3) { @@ -139,9 +139,9 @@ namespace OpenSim.Region.CoreModules.World.WorldMap data.Y = 0; blocks.Add(data); - // not sure what the flags do here, but seems to be necessary - // to set to "2" for viewer 2 - remoteClient.SendMapBlock(blocks, 2); + // flags are agent flags sent from the viewer. + // they have different values depending on different viewers, apparently + remoteClient.SendMapBlock(blocks, flags); } // private Scene GetClientScene(IClientAPI client)