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 | ||||
|     { | ||||
|         RegionInfo RegionInfo { get; } | ||||
|         uint NextAvatarLocalId { get; } | ||||
|         RegionStatus Region_Status { get; set; } | ||||
| 
 | ||||
|         ClientManager ClientManager { get; } | ||||
|  |  | |||
|  | @ -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 | ||||
| 
 | ||||
|         /// <summary> | ||||
|  |  | |||
|  | @ -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<IGroupsModule>(); | ||||
|             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 | |||
|         /// </summary> | ||||
|         public void ChildAgentDataUpdate(ChildAgentDataUpdate cAgentData, uint tRegionX, uint tRegionY, uint rRegionX, uint rRegionY) | ||||
|         { | ||||
|             // | ||||
|             if (!IsChildAgent) | ||||
|                 return; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Melanie Thielker
						Melanie Thielker