refactor: move management of SOP.SitTargetAvatar into SOP.AddSittingAvatar() and SOP.RemoveSittingAvatar()
parent
11e0ad6dc8
commit
cdea572d2e
|
@ -4525,6 +4525,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// <param name='avatarId'></param>
|
/// <param name='avatarId'></param>
|
||||||
protected internal bool AddSittingAvatar(UUID avatarId)
|
protected internal bool AddSittingAvatar(UUID avatarId)
|
||||||
{
|
{
|
||||||
|
if (IsSitTargetSet && SitTargetAvatar == UUID.Zero)
|
||||||
|
SitTargetAvatar = avatarId;
|
||||||
|
|
||||||
HashSet<UUID> sittingAvatars = m_sittingAvatars;
|
HashSet<UUID> sittingAvatars = m_sittingAvatars;
|
||||||
|
|
||||||
if (sittingAvatars == null)
|
if (sittingAvatars == null)
|
||||||
|
@ -4547,6 +4550,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
/// <param name='avatarId'></param>
|
/// <param name='avatarId'></param>
|
||||||
protected internal bool RemoveSittingAvatar(UUID avatarId)
|
protected internal bool RemoveSittingAvatar(UUID avatarId)
|
||||||
{
|
{
|
||||||
|
if (SitTargetAvatar == avatarId)
|
||||||
|
SitTargetAvatar = UUID.Zero;
|
||||||
|
|
||||||
HashSet<UUID> sittingAvatars = m_sittingAvatars;
|
HashSet<UUID> sittingAvatars = m_sittingAvatars;
|
||||||
|
|
||||||
// This can occur under a race condition where another thread
|
// This can occur under a race condition where another thread
|
||||||
|
|
|
@ -1799,10 +1799,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reset sit target.
|
|
||||||
if (part.SitTargetAvatar == UUID)
|
|
||||||
part.SitTargetAvatar = UUID.Zero;
|
|
||||||
|
|
||||||
ParentPosition = part.GetWorldPosition();
|
ParentPosition = part.GetWorldPosition();
|
||||||
ControllingClient.SendClearFollowCamProperties(part.ParentUUID);
|
ControllingClient.SendClearFollowCamProperties(part.ParentUUID);
|
||||||
|
|
||||||
|
@ -1884,7 +1880,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// "[SCENE PRESENCE]: Sitting {0} on {1} {2} because sit target is set and unoccupied",
|
// "[SCENE PRESENCE]: Sitting {0} on {1} {2} because sit target is set and unoccupied",
|
||||||
// Name, part.Name, part.LocalId);
|
// Name, part.Name, part.LocalId);
|
||||||
|
|
||||||
part.SitTargetAvatar = UUID;
|
|
||||||
offset = part.SitTargetPosition;
|
offset = part.SitTargetPosition;
|
||||||
sitOrientation = part.SitTargetOrientation;
|
sitOrientation = part.SitTargetOrientation;
|
||||||
canSit = true;
|
canSit = true;
|
||||||
|
|
Loading…
Reference in New Issue