diff options
author | Oren Hurvitz | 2012-12-25 10:50:03 +0200 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-01-02 23:00:23 +0000 |
commit | 24e486e9dfd5838b1ce1085586f84998aec3aae3 (patch) | |
tree | faa853902408aaf59b716667d9f4152bfd7ef837 | |
parent | Added locking in NullRegionData. (diff) | |
download | opensim-SC_OLD-24e486e9dfd5838b1ce1085586f84998aec3aae3.zip opensim-SC_OLD-24e486e9dfd5838b1ce1085586f84998aec3aae3.tar.gz opensim-SC_OLD-24e486e9dfd5838b1ce1085586f84998aec3aae3.tar.bz2 opensim-SC_OLD-24e486e9dfd5838b1ce1085586f84998aec3aae3.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.cs | 6 |
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 6e0c007..dbf5138 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 |