Fixed: scripted controls didn't work if the avatar was sitting down

This fixes a bug introduced in 6473674bbf
0.7.4.1
Oren Hurvitz 2012-04-28 17:42:49 +03:00 committed by Justin Clark-Casey (justincc)
parent 4ad45934c6
commit fe8e835bfc
1 changed files with 15 additions and 9 deletions

View File

@ -1336,6 +1336,7 @@ namespace OpenSim.Region.Framework.Scenes
PhysicsActor actor = PhysicsActor; PhysicsActor actor = PhysicsActor;
if (actor == null) if (actor == null)
{ {
SafeSendControlsToScripts(flagsForScripts);
return; return;
} }
@ -1512,20 +1513,25 @@ namespace OpenSim.Region.Framework.Scenes
if (update_movementflag && ParentID == 0) if (update_movementflag && ParentID == 0)
Animator.UpdateMovementAnimations(); Animator.UpdateMovementAnimations();
lock (scriptedcontrols) SafeSendControlsToScripts(flagsForScripts);
{
if (scriptedcontrols.Count > 0)
{
// Notify the scripts only after calling UpdateMovementAnimations(), so that if a script
// (e.g., a walking script) checks which animation is active it will be the correct animation.
SendControlToScripts(flagsForScripts);
}
}
} }
m_scene.EventManager.TriggerOnClientMovement(this); m_scene.EventManager.TriggerOnClientMovement(this);
} }
private void SafeSendControlsToScripts(uint flagsForScripts)
{
lock (scriptedcontrols)
{
if (scriptedcontrols.Count > 0)
{
// Notify the scripts only after calling UpdateMovementAnimations(), so that if a script
// (e.g., a walking script) checks which animation is active it will be the correct animation.
SendControlToScripts(flagsForScripts);
}
}
}
/// <summary> /// <summary>
/// Calculate an update to move the presence to the set target. /// Calculate an update to move the presence to the set target.
/// </summary> /// </summary>