Prevent avatar data from being sent during login when it's not valid and
crashes login on some viewers.avinationmerge
parent
126e73c5ed
commit
ef8f03b711
|
@ -2977,6 +2977,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// start the scripts again (since this is done in RezAttachments()).
|
// start the scripts again (since this is done in RezAttachments()).
|
||||||
// XXX: This is convoluted.
|
// XXX: This is convoluted.
|
||||||
sp.IsChildAgent = false;
|
sp.IsChildAgent = false;
|
||||||
|
sp.IsLoggingIn = true;
|
||||||
|
|
||||||
if (AttachmentsModule != null)
|
if (AttachmentsModule != null)
|
||||||
Util.FireAndForget(delegate(object o) { AttachmentsModule.RezAttachments(sp); });
|
Util.FireAndForget(delegate(object o) { AttachmentsModule.RezAttachments(sp); });
|
||||||
|
|
|
@ -607,6 +607,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsChildAgent { get; set; }
|
public bool IsChildAgent { get; set; }
|
||||||
|
public bool IsLoggingIn { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// If the avatar is sitting, the local ID of the prim that it's sitting on. If not sitting then zero.
|
/// If the avatar is sitting, the local ID of the prim that it's sitting on. If not sitting then zero.
|
||||||
|
@ -743,6 +744,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
AttachmentsSyncLock = new Object();
|
AttachmentsSyncLock = new Object();
|
||||||
AllowMovement = true;
|
AllowMovement = true;
|
||||||
IsChildAgent = true;
|
IsChildAgent = true;
|
||||||
|
IsLoggingIn = false;
|
||||||
m_sendCoarseLocationsMethod = SendCoarseLocationsDefault;
|
m_sendCoarseLocationsMethod = SendCoarseLocationsDefault;
|
||||||
Animator = new ScenePresenceAnimator(this);
|
Animator = new ScenePresenceAnimator(this);
|
||||||
PresenceType = type;
|
PresenceType = type;
|
||||||
|
@ -915,6 +917,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
IsChildAgent = false;
|
IsChildAgent = false;
|
||||||
|
IsLoggingIn = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2541,13 +2544,13 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// NOTE: Velocity is not the same as m_velocity. Velocity will attempt to
|
// NOTE: Velocity is not the same as m_velocity. Velocity will attempt to
|
||||||
// grab the latest PhysicsActor velocity, whereas m_velocity is often
|
// grab the latest PhysicsActor velocity, whereas m_velocity is often
|
||||||
// storing a requested force instead of an actual traveling velocity
|
// storing a requested force instead of an actual traveling velocity
|
||||||
if (Appearance.AvatarSize != m_lastSize)
|
if (Appearance.AvatarSize != m_lastSize && !IsLoggingIn)
|
||||||
{
|
{
|
||||||
m_lastSize = Appearance.AvatarSize;
|
m_lastSize = Appearance.AvatarSize;
|
||||||
SendAvatarDataToAllAgents();
|
SendAvatarDataToAllAgents();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (!Rotation.ApproxEquals(m_lastRotation, ROTATION_TOLERANCE) ||
|
if (!Rotation.ApproxEquals(m_lastRotation, ROTATION_TOLERANCE) ||
|
||||||
!Velocity.ApproxEquals(m_lastVelocity, VELOCITY_TOLERANCE) ||
|
!Velocity.ApproxEquals(m_lastVelocity, VELOCITY_TOLERANCE) ||
|
||||||
!m_pos.ApproxEquals(m_lastPosition, POSITION_TOLERANCE))
|
!m_pos.ApproxEquals(m_lastPosition, POSITION_TOLERANCE))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue