From 58e74b554f233c0848dddc93f33aea49d8246a82 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Mon, 10 Nov 2008 20:58:24 +0000 Subject: 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. --- OpenSim/Region/Environment/Scenes/SceneBase.cs | 8 ++++++++ OpenSim/Region/Environment/Scenes/ScenePresence.cs | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region') 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 get { return m_eventManager; } } + protected SceneExternalChecks m_externalChecks; public SceneExternalChecks ExternalChecks { @@ -88,6 +89,8 @@ namespace OpenSim.Region.Environment.Scenes protected string m_datastore; + private uint m_nextAvatarLocalId = 8880000; + private AssetCache m_assetCache; public AssetCache AssetCache @@ -161,6 +164,11 @@ namespace OpenSim.Region.Environment.Scenes get { return m_regInfo; } } + public uint NextAvatarLocalId + { + get { return m_nextAvatarLocalId++; } + } + #region admin stuff /// 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 m_scene = world; m_uuid = client.AgentId; m_regionInfo = reginfo; - m_localId = m_scene.AllocateLocalId(); + m_localId = m_scene.NextAvatarLocalId; IGroupsModule gm = m_scene.RequestModuleInterface(); if (gm != null) @@ -2215,6 +2215,8 @@ namespace OpenSim.Region.Environment.Scenes CrossAttachmentsIntoNewRegion(neighbourHandle, true); +// m_scene.SendKillObject(m_localId); + m_scene.NotifyMyCoarseLocationChange(); // the user may change their profile information in other region, // so the userinfo in UserProfileCache is not reliable any more, delete it @@ -2264,6 +2266,7 @@ namespace OpenSim.Region.Environment.Scenes /// public void ChildAgentDataUpdate(ChildAgentDataUpdate cAgentData, uint tRegionX, uint tRegionY, uint rRegionX, uint rRegionY) { + // if (!IsChildAgent) return; -- cgit v1.1