diff options
author | Diva Canto | 2011-05-08 22:50:04 -0700 |
---|---|---|
committer | Diva Canto | 2011-05-09 10:33:29 -0700 |
commit | f8f99f30cfb0cdd8fc0fafb73cef02d935ff464b (patch) | |
tree | 5586b57b216e0c9073ca05ce7b23896dd2240d0f | |
parent | Fix content-type to be application/x-www-form-urlencoded (diff) | |
download | opensim-SC_OLD-f8f99f30cfb0cdd8fc0fafb73cef02d935ff464b.zip opensim-SC_OLD-f8f99f30cfb0cdd8fc0fafb73cef02d935ff464b.tar.gz opensim-SC_OLD-f8f99f30cfb0cdd8fc0fafb73cef02d935ff464b.tar.bz2 opensim-SC_OLD-f8f99f30cfb0cdd8fc0fafb73cef02d935ff464b.tar.xz |
The map is seriously broken. This doesn't fix it, but at least provides one more piece of data that seems to be required -- agent flags, which seem to be different in Viewer 2. WARNING: changes IClientAPI.
-rw-r--r-- | OpenSim/Framework/IClientAPI.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 3 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs | 8 |
3 files changed, 6 insertions, 7 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index f573c32..e6f93ef 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -77,7 +77,7 @@ namespace OpenSim.Framework | |||
77 | 77 | ||
78 | public delegate void RequestMapBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY, uint flag); | 78 | public delegate void RequestMapBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY, uint flag); |
79 | 79 | ||
80 | public delegate void RequestMapName(IClientAPI remoteClient, string mapName); | 80 | public delegate void RequestMapName(IClientAPI remoteClient, string mapName, uint flags); |
81 | 81 | ||
82 | public delegate void TeleportLocationRequest( | 82 | public delegate void TeleportLocationRequest( |
83 | IClientAPI remoteClient, ulong regionHandle, Vector3 position, Vector3 lookAt, uint flags); | 83 | IClientAPI remoteClient, ulong regionHandle, Vector3 position, Vector3 lookAt, uint flags); |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 6aa4b40..33a06df 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -8172,13 +8172,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8172 | return true; | 8172 | return true; |
8173 | } | 8173 | } |
8174 | #endregion | 8174 | #endregion |
8175 | |||
8176 | string mapName = Util.UTF8.GetString(map.NameData.Name, 0, | 8175 | string mapName = Util.UTF8.GetString(map.NameData.Name, 0, |
8177 | map.NameData.Name.Length - 1); | 8176 | map.NameData.Name.Length - 1); |
8178 | RequestMapName handlerMapNameRequest = OnMapNameRequest; | 8177 | RequestMapName handlerMapNameRequest = OnMapNameRequest; |
8179 | if (handlerMapNameRequest != null) | 8178 | if (handlerMapNameRequest != null) |
8180 | { | 8179 | { |
8181 | handlerMapNameRequest(this, mapName); | 8180 | handlerMapNameRequest(this, mapName, map.AgentData.Flags); |
8182 | } | 8181 | } |
8183 | return true; | 8182 | return true; |
8184 | } | 8183 | } |
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs index f9ef286..c059a5f 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 | |||
84 | client.OnMapNameRequest += OnMapNameRequest; | 84 | client.OnMapNameRequest += OnMapNameRequest; |
85 | } | 85 | } |
86 | 86 | ||
87 | private void OnMapNameRequest(IClientAPI remoteClient, string mapName) | 87 | private void OnMapNameRequest(IClientAPI remoteClient, string mapName, uint flags) |
88 | { | 88 | { |
89 | if (mapName.Length < 3) | 89 | if (mapName.Length < 3) |
90 | { | 90 | { |
@@ -139,9 +139,9 @@ namespace OpenSim.Region.CoreModules.World.WorldMap | |||
139 | data.Y = 0; | 139 | data.Y = 0; |
140 | blocks.Add(data); | 140 | blocks.Add(data); |
141 | 141 | ||
142 | // not sure what the flags do here, but seems to be necessary | 142 | // flags are agent flags sent from the viewer. |
143 | // to set to "2" for viewer 2 | 143 | // they have different values depending on different viewers, apparently |
144 | remoteClient.SendMapBlock(blocks, 2); | 144 | remoteClient.SendMapBlock(blocks, flags); |
145 | } | 145 | } |
146 | 146 | ||
147 | // private Scene GetClientScene(IClientAPI client) | 147 | // private Scene GetClientScene(IClientAPI client) |