try to remove Scenepresence dependence on sog m_linkedAvatars, sitting may still work

avinationmerge
UbitUmarov 2015-09-21 21:31:01 +01:00
parent 04800a7570
commit 25677e4a1b
2 changed files with 6 additions and 14 deletions

View File

@ -5555,7 +5555,8 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
if (m_sittingAvatars.Add(sp)) if (m_sittingAvatars.Add(sp))
{ {
ParentGroup.m_sittingAvatars.Add(sp); if(!ParentGroup.m_sittingAvatars.Contains(sp))
ParentGroup.m_sittingAvatars.Add(sp);
return true; return true;
} }

View File

@ -1138,7 +1138,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
else else
{ {
part.ParentGroup.AddAvatar(UUID); part.AddSittingAvatar(this);
if (part.SitTargetPosition != Vector3.Zero) if (part.SitTargetPosition != Vector3.Zero)
part.SitTargetAvatar = UUID; part.SitTargetAvatar = UUID;
ParentID = part.LocalId; ParentID = part.LocalId;
@ -2838,7 +2838,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
} }
part.ParentGroup.DeleteAvatar(UUID); // part.ParentGroup.DeleteAvatar(UUID);
Quaternion standRotation = part.ParentGroup.RootPart.RotationOffset; Quaternion standRotation = part.ParentGroup.RootPart.RotationOffset;
Vector3 sitPartWorldPosition = part.ParentGroup.AbsolutePosition + m_pos * standRotation; Vector3 sitPartWorldPosition = part.ParentGroup.AbsolutePosition + m_pos * standRotation;
@ -3132,8 +3132,6 @@ namespace OpenSim.Region.Framework.Scenes
Velocity = Vector3.Zero; Velocity = Vector3.Zero;
m_AngularVelocity = Vector3.Zero; m_AngularVelocity = Vector3.Zero;
part.AddSittingAvatar(this);
Vector3 cameraAtOffset = part.GetCameraAtOffset(); Vector3 cameraAtOffset = part.GetCameraAtOffset();
Vector3 cameraEyeOffset = part.GetCameraEyeOffset(); Vector3 cameraEyeOffset = part.GetCameraEyeOffset();
bool forceMouselook = part.GetForceMouselook(); bool forceMouselook = part.GetForceMouselook();
@ -3158,7 +3156,6 @@ namespace OpenSim.Region.Framework.Scenes
cameraEyeOffset = cameraEyeOffset * part.RotationOffset; cameraEyeOffset = cameraEyeOffset * part.RotationOffset;
cameraEyeOffset += part.OffsetPosition; cameraEyeOffset += part.OffsetPosition;
} }
} }
m_pos = offset; m_pos = offset;
@ -3168,19 +3165,13 @@ namespace OpenSim.Region.Framework.Scenes
m_requestedSitTargetID = 0; m_requestedSitTargetID = 0;
part.ParentGroup.AddAvatar(UUID); part.AddSittingAvatar(this);
ParentPart = part; ParentPart = part;
ParentID = part.LocalId; ParentID = part.LocalId;
SendAvatarDataToAllAgents(); SendAvatarDataToAllAgents();
/*
if(status == 3)
Animator.TrySetMovementAnimation("SIT_GROUND");
else
Animator.TrySetMovementAnimation("SIT");
*/
if (status == 3) if (status == 3)
sitAnimation = "SIT_GROUND"; sitAnimation = "SIT_GROUND";
else else
@ -3275,7 +3266,7 @@ namespace OpenSim.Region.Framework.Scenes
// Name, part.AbsolutePosition, m_pos, ParentPosition, part.Name, part.LocalId); // Name, part.AbsolutePosition, m_pos, ParentPosition, part.Name, part.LocalId);
} }
part.ParentGroup.AddAvatar(UUID); part.AddSittingAvatar(this);
ParentPart = m_scene.GetSceneObjectPart(m_requestedSitTargetID); ParentPart = m_scene.GetSceneObjectPart(m_requestedSitTargetID);
ParentID = m_requestedSitTargetID; ParentID = m_requestedSitTargetID;
m_AngularVelocity = Vector3.Zero; m_AngularVelocity = Vector3.Zero;