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.0.6.1-post-fixes
parent
b044a0f139
commit
58e74b554f
|
@ -45,6 +45,7 @@ namespace OpenSim.Framework
|
||||||
public interface IScene
|
public interface IScene
|
||||||
{
|
{
|
||||||
RegionInfo RegionInfo { get; }
|
RegionInfo RegionInfo { get; }
|
||||||
|
uint NextAvatarLocalId { get; }
|
||||||
RegionStatus Region_Status { get; set; }
|
RegionStatus Region_Status { get; set; }
|
||||||
|
|
||||||
ClientManager ClientManager { get; }
|
ClientManager ClientManager { get; }
|
||||||
|
|
|
@ -80,6 +80,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
get { return m_eventManager; }
|
get { return m_eventManager; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected SceneExternalChecks m_externalChecks;
|
protected SceneExternalChecks m_externalChecks;
|
||||||
public SceneExternalChecks ExternalChecks
|
public SceneExternalChecks ExternalChecks
|
||||||
{
|
{
|
||||||
|
@ -88,6 +89,8 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
protected string m_datastore;
|
protected string m_datastore;
|
||||||
|
|
||||||
|
private uint m_nextAvatarLocalId = 8880000;
|
||||||
|
|
||||||
private AssetCache m_assetCache;
|
private AssetCache m_assetCache;
|
||||||
|
|
||||||
public AssetCache AssetCache
|
public AssetCache AssetCache
|
||||||
|
@ -161,6 +164,11 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
get { return m_regInfo; }
|
get { return m_regInfo; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public uint NextAvatarLocalId
|
||||||
|
{
|
||||||
|
get { return m_nextAvatarLocalId++; }
|
||||||
|
}
|
||||||
|
|
||||||
#region admin stuff
|
#region admin stuff
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -492,7 +492,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
m_scene = world;
|
m_scene = world;
|
||||||
m_uuid = client.AgentId;
|
m_uuid = client.AgentId;
|
||||||
m_regionInfo = reginfo;
|
m_regionInfo = reginfo;
|
||||||
m_localId = m_scene.AllocateLocalId();
|
m_localId = m_scene.NextAvatarLocalId;
|
||||||
|
|
||||||
IGroupsModule gm = m_scene.RequestModuleInterface<IGroupsModule>();
|
IGroupsModule gm = m_scene.RequestModuleInterface<IGroupsModule>();
|
||||||
if (gm != null)
|
if (gm != null)
|
||||||
|
@ -2215,6 +2215,8 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
CrossAttachmentsIntoNewRegion(neighbourHandle, true);
|
CrossAttachmentsIntoNewRegion(neighbourHandle, true);
|
||||||
|
|
||||||
|
// m_scene.SendKillObject(m_localId);
|
||||||
|
|
||||||
m_scene.NotifyMyCoarseLocationChange();
|
m_scene.NotifyMyCoarseLocationChange();
|
||||||
// the user may change their profile information in other region,
|
// the user may change their profile information in other region,
|
||||||
// so the userinfo in UserProfileCache is not reliable any more, delete it
|
// so the userinfo in UserProfileCache is not reliable any more, delete it
|
||||||
|
@ -2264,6 +2266,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void ChildAgentDataUpdate(ChildAgentDataUpdate cAgentData, uint tRegionX, uint tRegionY, uint rRegionX, uint rRegionY)
|
public void ChildAgentDataUpdate(ChildAgentDataUpdate cAgentData, uint tRegionX, uint tRegionY, uint rRegionX, uint rRegionY)
|
||||||
{
|
{
|
||||||
|
//
|
||||||
if (!IsChildAgent)
|
if (!IsChildAgent)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue