diff options
author | Melanie Thielker | 2008-11-10 20:58:24 +0000 |
---|---|---|
committer | Melanie Thielker | 2008-11-10 20:58:24 +0000 |
commit | 58e74b554f233c0848dddc93f33aea49d8246a82 (patch) | |
tree | 8966e55e15ae161bd968aa27a616e920e4a4debf | |
parent | * refactor: Make xml (orig format) loading method reuse existing set root par... (diff) | |
download | opensim-SC-58e74b554f233c0848dddc93f33aea49d8246a82.zip opensim-SC-58e74b554f233c0848dddc93f33aea49d8246a82.tar.gz opensim-SC-58e74b554f233c0848dddc93f33aea49d8246a82.tar.bz2 opensim-SC-58e74b554f233c0848dddc93f33aea49d8246a82.tar.xz |
Restore the independent LocalID numbering for avatars. Fixes an issue where
it becomes impossible to cross back into a region you came from, or freeze
several seconds after region crossings.
-rw-r--r-- | OpenSim/Framework/IScene.cs | 1 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneBase.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/ScenePresence.cs | 5 |
3 files changed, 13 insertions, 1 deletions
diff --git a/OpenSim/Framework/IScene.cs b/OpenSim/Framework/IScene.cs index 0ba3e7f..b6bd45a 100644 --- a/OpenSim/Framework/IScene.cs +++ b/OpenSim/Framework/IScene.cs | |||
@@ -45,6 +45,7 @@ namespace OpenSim.Framework | |||
45 | public interface IScene | 45 | public interface IScene |
46 | { | 46 | { |
47 | RegionInfo RegionInfo { get; } | 47 | RegionInfo RegionInfo { get; } |
48 | uint NextAvatarLocalId { get; } | ||
48 | RegionStatus Region_Status { get; set; } | 49 | RegionStatus Region_Status { get; set; } |
49 | 50 | ||
50 | ClientManager ClientManager { get; } | 51 | ClientManager ClientManager { get; } |
diff --git a/OpenSim/Region/Environment/Scenes/SceneBase.cs b/OpenSim/Region/Environment/Scenes/SceneBase.cs index bba31f7..67e23b5 100644 --- a/OpenSim/Region/Environment/Scenes/SceneBase.cs +++ b/OpenSim/Region/Environment/Scenes/SceneBase.cs | |||
@@ -80,6 +80,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
80 | get { return m_eventManager; } | 80 | get { return m_eventManager; } |
81 | } | 81 | } |
82 | 82 | ||
83 | |||
83 | protected SceneExternalChecks m_externalChecks; | 84 | protected SceneExternalChecks m_externalChecks; |
84 | public SceneExternalChecks ExternalChecks | 85 | public SceneExternalChecks ExternalChecks |
85 | { | 86 | { |
@@ -88,6 +89,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
88 | 89 | ||
89 | protected string m_datastore; | 90 | protected string m_datastore; |
90 | 91 | ||
92 | private uint m_nextAvatarLocalId = 8880000; | ||
93 | |||
91 | private AssetCache m_assetCache; | 94 | private AssetCache m_assetCache; |
92 | 95 | ||
93 | public AssetCache AssetCache | 96 | public AssetCache AssetCache |
@@ -161,6 +164,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
161 | get { return m_regInfo; } | 164 | get { return m_regInfo; } |
162 | } | 165 | } |
163 | 166 | ||
167 | public uint NextAvatarLocalId | ||
168 | { | ||
169 | get { return m_nextAvatarLocalId++; } | ||
170 | } | ||
171 | |||
164 | #region admin stuff | 172 | #region admin stuff |
165 | 173 | ||
166 | /// <summary> | 174 | /// <summary> |
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index bdb0444..bfd210e 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -492,7 +492,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
492 | m_scene = world; | 492 | m_scene = world; |
493 | m_uuid = client.AgentId; | 493 | m_uuid = client.AgentId; |
494 | m_regionInfo = reginfo; | 494 | m_regionInfo = reginfo; |
495 | m_localId = m_scene.AllocateLocalId(); | 495 | m_localId = m_scene.NextAvatarLocalId; |
496 | 496 | ||
497 | IGroupsModule gm = m_scene.RequestModuleInterface<IGroupsModule>(); | 497 | IGroupsModule gm = m_scene.RequestModuleInterface<IGroupsModule>(); |
498 | if (gm != null) | 498 | if (gm != null) |
@@ -2215,6 +2215,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
2215 | 2215 | ||
2216 | CrossAttachmentsIntoNewRegion(neighbourHandle, true); | 2216 | CrossAttachmentsIntoNewRegion(neighbourHandle, true); |
2217 | 2217 | ||
2218 | // m_scene.SendKillObject(m_localId); | ||
2219 | |||
2218 | m_scene.NotifyMyCoarseLocationChange(); | 2220 | m_scene.NotifyMyCoarseLocationChange(); |
2219 | // the user may change their profile information in other region, | 2221 | // the user may change their profile information in other region, |
2220 | // so the userinfo in UserProfileCache is not reliable any more, delete it | 2222 | // so the userinfo in UserProfileCache is not reliable any more, delete it |
@@ -2264,6 +2266,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2264 | /// </summary> | 2266 | /// </summary> |
2265 | public void ChildAgentDataUpdate(ChildAgentDataUpdate cAgentData, uint tRegionX, uint tRegionY, uint rRegionX, uint rRegionY) | 2267 | public void ChildAgentDataUpdate(ChildAgentDataUpdate cAgentData, uint tRegionX, uint tRegionY, uint rRegionX, uint rRegionY) |
2266 | { | 2268 | { |
2269 | // | ||
2267 | if (!IsChildAgent) | 2270 | if (!IsChildAgent) |
2268 | return; | 2271 | return; |
2269 | 2272 | ||