dont create a cadu that is not used. Add a root region global position
parent
73cdafd6c9
commit
b871029a30
|
@ -494,11 +494,18 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
}
|
||||
|
||||
private ulong m_rootRegionHandle;
|
||||
private Vector3 m_rootRegionPosition = new Vector3();
|
||||
|
||||
public ulong RegionHandle
|
||||
{
|
||||
get { return m_rootRegionHandle; }
|
||||
private set { m_rootRegionHandle = value; }
|
||||
private set
|
||||
{
|
||||
m_rootRegionHandle = value;
|
||||
// position rounded to lower multiple of 256m
|
||||
m_rootRegionPosition.X = (float)((m_rootRegionHandle >> 32) & 0xffffff00);
|
||||
m_rootRegionPosition.Y = (float)(m_rootRegionHandle & 0xffffff00);
|
||||
}
|
||||
}
|
||||
|
||||
#region Client Camera
|
||||
|
@ -3798,6 +3805,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
m_lastChildAgentUpdatePosition = AbsolutePosition;
|
||||
// m_lastChildAgentUpdateCamPosition = CameraPosition;
|
||||
|
||||
/* cadu is not used
|
||||
ChildAgentDataUpdate cadu = new ChildAgentDataUpdate();
|
||||
cadu.ActiveGroupID = UUID.Zero.Guid;
|
||||
cadu.AgentID = UUID.Guid;
|
||||
|
@ -3812,10 +3820,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
// Throttles
|
||||
float multiplier = 1;
|
||||
|
||||
/* dont messup throttles
|
||||
* child agent is a full presence that can be just a few meters away across border
|
||||
* sending this is possible wrong since viewers may send own needs to each region
|
||||
*
|
||||
int childRegions = KnownRegionCount;
|
||||
if (childRegions != 0)
|
||||
multiplier = 1f / childRegions;
|
||||
|
@ -3823,12 +3827,25 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
// Minimum throttle for a child region is 1/4 of the root region throttle
|
||||
if (multiplier <= 0.25f)
|
||||
multiplier = 0.25f;
|
||||
*/
|
||||
|
||||
cadu.throttles = ControllingClient.GetThrottlesPacked(multiplier);
|
||||
cadu.Velocity = Velocity;
|
||||
|
||||
*/
|
||||
AgentPosition agentpos = new AgentPosition();
|
||||
agentpos.CopyFrom(cadu, ControllingClient.SessionId);
|
||||
// agentpos.CopyFrom(cadu, ControllingClient.SessionId);
|
||||
|
||||
agentpos.AgentID = new UUID(UUID.Guid);
|
||||
agentpos.SessionID = ControllingClient.SessionId;
|
||||
|
||||
agentpos.Size = Appearance.AvatarSize;
|
||||
|
||||
agentpos.Center = CameraPosition;
|
||||
agentpos.Far = DrawDistance;
|
||||
agentpos.Position = AbsolutePosition;
|
||||
agentpos.Velocity = Velocity;
|
||||
agentpos.RegionHandle = RegionHandle;
|
||||
agentpos.Throttles = ControllingClient.GetThrottlesPacked(1);
|
||||
|
||||
|
||||
// Let's get this out of the update loop
|
||||
Util.FireAndForget(delegate { m_scene.SendOutChildAgentUpdates(agentpos, this); });
|
||||
|
@ -4131,6 +4148,8 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (!IsChildAgent)
|
||||
return;
|
||||
|
||||
RegionHandle = cAgentData.RegionHandle;
|
||||
|
||||
//m_log.Debug(" >>> ChildAgentPositionUpdate <<< " + rRegionX + "-" + rRegionY);
|
||||
int shiftx = ((int)rRegionX - (int)tRegionX) * (int)Constants.RegionSize;
|
||||
int shifty = ((int)rRegionY - (int)tRegionY) * (int)Constants.RegionSize;
|
||||
|
@ -4158,7 +4177,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
ControllingClient.SetChildAgentThrottle(cAgentData.Throttles);
|
||||
|
||||
//cAgentData.AVHeight;
|
||||
RegionHandle = cAgentData.RegionHandle;
|
||||
//m_velocity = cAgentData.Velocity;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue