aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorOren Hurvitz2012-12-25 10:50:03 +0200
committerJustin Clark-Casey (justincc)2013-01-04 21:47:32 +0000
commiteeeb787f36f77a5c391cd88bca5932d36193e0fe (patch)
treed547d4d0eb06dcf6f954eafb9ebee13072ea03ad
parentChange nant distbin target to also remove ThirdParty/ source code when making... (diff)
downloadopensim-SC-eeeb787f36f77a5c391cd88bca5932d36193e0fe.zip
opensim-SC-eeeb787f36f77a5c391cd88bca5932d36193e0fe.tar.gz
opensim-SC-eeeb787f36f77a5c391cd88bca5932d36193e0fe.tar.bz2
opensim-SC-eeeb787f36f77a5c391cd88bca5932d36193e0fe.tar.xz
Fixed: the AvatarEnteringNewParcel event wasn't triggered in some cases
If an avatar moved between regions: A -> B -> A, then when returning to region A the AvatarEnteringNewParcel wasn't triggered. This happened because the ScenePresence in region A still remembered its previous 'currentParcelUUID', so it appeared as if the avatar didn't change parcels. Now, however, when a ScenePresence becomes a child presence we clear its 'currentParcelUUID'.
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs6
1 files changed, 6 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
index e85b7a2..bad7205 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -133,6 +133,7 @@ namespace OpenSim.Region.CoreModules.World.Land
133 m_scene.EventManager.OnValidateLandBuy += EventManagerOnValidateLandBuy; 133 m_scene.EventManager.OnValidateLandBuy += EventManagerOnValidateLandBuy;
134 m_scene.EventManager.OnLandBuy += EventManagerOnLandBuy; 134 m_scene.EventManager.OnLandBuy += EventManagerOnLandBuy;
135 m_scene.EventManager.OnNewClient += EventManagerOnNewClient; 135 m_scene.EventManager.OnNewClient += EventManagerOnNewClient;
136 m_scene.EventManager.OnMakeChildAgent += EventMakeChildAgent;
136 m_scene.EventManager.OnSignificantClientMovement += EventManagerOnSignificantClientMovement; 137 m_scene.EventManager.OnSignificantClientMovement += EventManagerOnSignificantClientMovement;
137 m_scene.EventManager.OnNoticeNoLandDataFromStorage += EventManagerOnNoLandDataFromStorage; 138 m_scene.EventManager.OnNoticeNoLandDataFromStorage += EventManagerOnNoLandDataFromStorage;
138 m_scene.EventManager.OnIncomingLandDataFromStorage += EventManagerOnIncomingLandDataFromStorage; 139 m_scene.EventManager.OnIncomingLandDataFromStorage += EventManagerOnIncomingLandDataFromStorage;
@@ -218,6 +219,11 @@ namespace OpenSim.Region.CoreModules.World.Land
218 } 219 }
219 } 220 }
220 221
222 public void EventMakeChildAgent(ScenePresence avatar)
223 {
224 avatar.currentParcelUUID = UUID.Zero;
225 }
226
221 void ClientOnPreAgentUpdate(IClientAPI remoteClient, AgentUpdateArgs agentData) 227 void ClientOnPreAgentUpdate(IClientAPI remoteClient, AgentUpdateArgs agentData)
222 { 228 {
223 //If we are forcing a position for them to go 229 //If we are forcing a position for them to go