aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie Thielker2008-11-10 20:58:24 +0000
committerMelanie Thielker2008-11-10 20:58:24 +0000
commit58e74b554f233c0848dddc93f33aea49d8246a82 (patch)
tree8966e55e15ae161bd968aa27a616e920e4a4debf
parent* refactor: Make xml (orig format) loading method reuse existing set root par... (diff)
downloadopensim-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.cs1
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneBase.cs8
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs5
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