diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index b415fd3504..0de5d4a5ca 100755
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -8224,8 +8224,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
if(
(x.ControlFlags != m_thisAgentUpdateArgs.ControlFlags) // significant if control flags changed
-// || ((x.ControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0 &&
-// (x.ControlFlags & 0x3f8dfff) != 0) // we need to rotate the av on fly
|| x.ControlFlags != (byte)AgentManager.ControlFlags.NONE// actually all movement controls need to pass
|| (x.Flags != m_thisAgentUpdateArgs.Flags) // significant if Flags changed
|| (x.State != m_thisAgentUpdateArgs.State) // significant if Stats changed
@@ -8233,11 +8231,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
)
return true;
- float qdelta = Math.Abs(Quaternion.Dot(x.BodyRotation, m_thisAgentUpdateArgs.BodyRotation));
- if(qdelta < QDELTABody) // significant if body rotation above(below cos) threshold
- return true;
-
- return false;
+ float qdelta = Math.Abs(Quaternion.Dot(x.BodyRotation, m_thisAgentUpdateArgs.BodyRotation));
+ return qdelta < QDELTABody; // significant if body rotation above(below cos) threshold
}
///
@@ -8248,26 +8243,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
private bool CheckAgentCameraUpdateSignificance(AgentUpdatePacket.AgentDataBlock x)
{
- if(Math.Abs(x.CameraCenter.X - m_thisAgentUpdateArgs.CameraCenter.X) > VDELTA ||
- Math.Abs(x.CameraCenter.Y - m_thisAgentUpdateArgs.CameraCenter.Y) > VDELTA ||
- Math.Abs(x.CameraCenter.Z - m_thisAgentUpdateArgs.CameraCenter.Z) > VDELTA ||
+ return (Math.Abs(x.CameraCenter.X - m_thisAgentUpdateArgs.CameraCenter.X) > VDELTA ||
+ Math.Abs(x.CameraCenter.Y - m_thisAgentUpdateArgs.CameraCenter.Y) > VDELTA ||
+ Math.Abs(x.CameraCenter.Z - m_thisAgentUpdateArgs.CameraCenter.Z) > VDELTA ||
- Math.Abs(x.CameraAtAxis.X - m_thisAgentUpdateArgs.CameraAtAxis.X) > VDELTA ||
- Math.Abs(x.CameraAtAxis.Y - m_thisAgentUpdateArgs.CameraAtAxis.Y) > VDELTA ||
-// Math.Abs(x.CameraAtAxis.Z - m_thisAgentUpdateArgs.CameraAtAxis.Z) > VDELTA ||
+ Math.Abs(x.CameraAtAxis.X - m_thisAgentUpdateArgs.CameraAtAxis.X) > VDELTA ||
+ Math.Abs(x.CameraAtAxis.Y - m_thisAgentUpdateArgs.CameraAtAxis.Y) > VDELTA ||
+ //Math.Abs(x.CameraAtAxis.Z - m_thisAgentUpdateArgs.CameraAtAxis.Z) > VDELTA ||
- Math.Abs(x.CameraLeftAxis.X - m_thisAgentUpdateArgs.CameraLeftAxis.X) > VDELTA ||
- Math.Abs(x.CameraLeftAxis.Y - m_thisAgentUpdateArgs.CameraLeftAxis.Y) > VDELTA ||
-// Math.Abs(x.CameraLeftAxis.Z - m_thisAgentUpdateArgs.CameraLeftAxis.Z) > VDELTA ||
-
- Math.Abs(x.CameraUpAxis.X - m_thisAgentUpdateArgs.CameraUpAxis.X) > VDELTA ||
- Math.Abs(x.CameraUpAxis.Y - m_thisAgentUpdateArgs.CameraUpAxis.Y) > VDELTA
-// Math.Abs(x.CameraLeftAxis.Z - m_thisAgentUpdateArgs.CameraLeftAxis.Z) > VDELTA ||
- )
- return true;
-
- return false;
- }
+ Math.Abs(x.CameraUpAxis.X - m_thisAgentUpdateArgs.CameraUpAxis.X) > VDELTA ||
+ Math.Abs(x.CameraUpAxis.Y - m_thisAgentUpdateArgs.CameraUpAxis.Y) > VDELTA
+ //Math.Abs(x.CameraLeftAxis.Z - m_thisAgentUpdateArgs.CameraLeftAxis.Z) > VDELTA ||
+ );
+ }
private void HandleAgentUpdate(Packet packet)
{
diff --git a/OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs b/OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs
index 6f71f88fd4..645006f2d9 100644
--- a/OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs
+++ b/OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs
@@ -42,11 +42,11 @@ namespace OpenSim.Region.Framework.Scenes.Animation
[Serializable]
public class AnimationSet
{
-// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+ //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private OpenSim.Framework.Animation m_implicitDefaultAnimation = new OpenSim.Framework.Animation();
private OpenSim.Framework.Animation m_defaultAnimation = new OpenSim.Framework.Animation();
- private List m_animations = new List();
+ private readonly List m_animations = new List();
public OpenSim.Framework.Animation DefaultAnimation
{
@@ -71,12 +71,12 @@ namespace OpenSim.Region.Framework.Scenes.Animation
public bool HasAnimation(UUID animID)
{
- if (m_defaultAnimation.AnimID == animID)
+ if (m_defaultAnimation.AnimID.Equals(animID))
return true;
for (int i = 0; i < m_animations.Count; ++i)
{
- if (m_animations[i].AnimID == animID)
+ if (m_animations[i].AnimID.Equals(animID))
return true;
}
@@ -108,7 +108,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
{
lock (m_animations)
{
- if (m_defaultAnimation.AnimID == animID)
+ if (m_defaultAnimation.AnimID.Equals(animID))
{
if (allowNoDefault)
m_defaultAnimation = new OpenSim.Framework.Animation(UUID.Zero, 1, UUID.Zero);
@@ -119,7 +119,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
{
for (int i = 0; i < m_animations.Count; i++)
{
- if (m_animations[i].AnimID == animID)
+ if (m_animations[i].AnimID.Equals(animID))
{
m_animations.RemoveAt(i);
return true;
@@ -142,13 +142,14 @@ namespace OpenSim.Region.Framework.Scenes.Animation
///
public bool SetDefaultAnimation(UUID animID, int sequenceNum, UUID objectID)
{
- if (m_defaultAnimation.AnimID != animID)
+ if (m_defaultAnimation.AnimID.NotEqual(animID))
{
m_defaultAnimation = new OpenSim.Framework.Animation(animID, sequenceNum, objectID);
m_implicitDefaultAnimation = m_defaultAnimation;
- return true;
+ //return true;
}
- return false;
+ //return false;
+ return true;
}
// Called from serialization only
@@ -167,9 +168,9 @@ namespace OpenSim.Region.Framework.Scenes.Animation
///
public bool TrySetDefaultAnimation(string anim, int sequenceNum, UUID objectID)
{
-// m_log.DebugFormat(
-// "[ANIMATION SET]: Setting default animation {0}, sequence number {1}, object id {2}",
-// anim, sequenceNum, objectID);
+ //m_log.DebugFormat(
+ // "[ANIMATION SET]: Setting default animation {0}, sequence number {1}, object id {2}",
+ // anim, sequenceNum, objectID);
if (DefaultAvatarAnimations.AnimsUUIDbyName.TryGetValue(anim, out UUID id))
{
@@ -189,7 +190,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
sequenceNums = new int[defaultSize];
objectIDs = new UUID[defaultSize];
- if (!m_defaultAnimation.AnimID.IsZero())
+ if (m_defaultAnimation.AnimID.IsNotZero())
{
animIDs[0] = m_defaultAnimation.AnimID;
sequenceNums[0] = m_defaultAnimation.SequenceNum;
diff --git a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
index 0736b99d89..4be6b2770e 100644
--- a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
+++ b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
@@ -61,9 +61,9 @@ namespace OpenSim.Region.Framework.Scenes.Animation
private int m_animTickLand;
private int m_animTickJump;
- public bool m_jumping = false;
+ public bool isJumping;
- // private int m_landing = 0;
+ // private int m_landing = 0;
///
/// Is the avatar falling?
@@ -154,7 +154,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
m_animations.Remove(animID, false);
}
if (sendPack)
- SendAnimPack();
+ SendAnimPack(false);
}
// Called from scripts
@@ -189,9 +189,6 @@ namespace OpenSim.Region.Framework.Scenes.Animation
///
/// 'true' if the animation was updated
///
-
-
-
public bool TrySetMovementAnimation(string anim)
{
if (m_scenePresence.IsChildAgent)
@@ -254,6 +251,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
sitted = 0,
flying,
falling,
+ prejumping,
jumping,
landing,
onsurface
@@ -267,8 +265,8 @@ namespace OpenSim.Region.Framework.Scenes.Animation
private string DetermineMovementAnimation()
{
const int FALL_DELAY = 800;
- const int PREJUMP_DELAY = 200;
- const int JUMP_PERIOD = 800;
+ const int PREJUMP_DELAY = 450;
+ const int JUMP_PERIOD = 1050;
#region Inputs
if (m_scenePresence.IsInTransit)
@@ -277,16 +275,19 @@ namespace OpenSim.Region.Framework.Scenes.Animation
if (m_scenePresence.SitGround)
{
currentControlState = motionControlStates.sitted;
+ isJumping = false;
+ Falling = false;
return "SITGROUND";
}
if (m_scenePresence.ParentID != 0 || !m_scenePresence.ParentUUID.IsZero())
{
currentControlState = motionControlStates.sitted;
+ isJumping = false;
+ Falling = false;
return "SIT";
}
AgentManager.ControlFlags controlFlags = (AgentManager.ControlFlags)m_scenePresence.AgentControlFlags;
- PhysicsActor actor = m_scenePresence.PhysicsActor;
const AgentManager.ControlFlags ANYXYMASK = (
AgentManager.ControlFlags.AGENT_CONTROL_AT_POS | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_POS |
@@ -294,37 +295,44 @@ namespace OpenSim.Region.Framework.Scenes.Animation
AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_POS |
AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_NEG
);
+ const AgentManager.ControlFlags ANYXYZMASK = (ANYXYMASK |
+ AgentManager.ControlFlags.AGENT_CONTROL_UP_POS | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_POS |
+ AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG
+ );
- // Check control flags
- /* not in use
- bool heldForward = ((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_AT_POS | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_POS)) != 0);
- bool heldBack = ((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_NEG)) != 0);
- bool heldLeft = ((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_POS)) != 0);
- bool heldRight = ((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_NEG)) != 0);
- */
- bool heldTurnLeft = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT;
- bool heldTurnRight = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT;
- // bool heldUp = ((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_UP_POS | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_POS)) != 0);
- // excluded nudge up so it doesn't trigger jump state
+ // excluded nudge up so it doesn't trigger jump state
bool heldUp = ((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_UP_POS)) != 0);
bool heldDown = ((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG)) != 0);
//bool flying = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) == AgentManager.ControlFlags.AGENT_CONTROL_FLY;
//bool mouselook = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK) == AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK;
bool heldOnXY = ((controlFlags & ANYXYMASK) != 0);
- if (heldOnXY || heldUp || heldDown)
+ bool heldTurnLeft;
+ bool heldTurnRight;
+ if ((controlFlags & ANYXYZMASK) != 0)
{
heldTurnLeft = false;
heldTurnRight = false;
}
+ else
+ {
+ heldTurnLeft = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT) != 0;
+ heldTurnRight = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT) != 0;
+ //heldTurnLeft = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_YAW_POS) != 0;
+ //heldTurnRight = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_YAW_NEG) != 0;
+ }
+
#endregion Inputs
+ PhysicsActor actor = m_scenePresence.PhysicsActor;
// no physics actor case
if (actor == null)
{
- // well what to do?
+ isJumping = false;
+ Falling = false;
+ // well what to do?
currentControlState = motionControlStates.onsurface;
if (heldOnXY)
return "WALK";
@@ -332,15 +340,14 @@ namespace OpenSim.Region.Framework.Scenes.Animation
return "STAND";
}
- #region Flying
-
bool isColliding = actor.IsColliding;
+ #region Flying
if (actor.Flying)
{
m_animTickFall = 0;
m_animTickJump = 0;
- m_jumping = false;
+ isJumping = false;
Falling = false;
currentControlState = motionControlStates.flying;
@@ -387,7 +394,6 @@ namespace OpenSim.Region.Framework.Scenes.Animation
if (!isColliding && currentControlState != motionControlStates.jumping)
{
float fallVelocity = actor.Velocity.Z;
-
// if stable on Hover assume falling
if(actor.PIDHoverActive && fallVelocity < 0.05f)
{
@@ -429,14 +435,38 @@ namespace OpenSim.Region.Framework.Scenes.Animation
#region Jumping // section added for jumping...
- if (isColliding && heldUp && currentControlState != motionControlStates.jumping && !actor.PIDHoverActive)
+ if (isColliding && heldUp && !isJumping && !actor.PIDHoverActive)
{
- // Start jumping, prejump
- currentControlState = motionControlStates.jumping;
- m_jumping = true;
+ isJumping = true;
Falling = false;
- m_animTickJump = Environment.TickCount;
- return "PREJUMP";
+ if ((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_FINISH_ANIM)) == 0)
+ {
+ currentControlState = motionControlStates.prejumping;
+ m_animTickJump = Environment.TickCount;
+ // Start jumping, prejump
+ return "PREJUMP";
+ }
+
+ m_animTickJump = Environment.TickCount - PREJUMP_DELAY - 1;
+ currentControlState = motionControlStates.jumping;
+ m_scenePresence.Jump(18f);
+ return "JUMP";
+ }
+
+ if (currentControlState == motionControlStates.prejumping)
+ {
+ if((controlFlags & (AgentManager.ControlFlags.AGENT_CONTROL_FINISH_ANIM)) == 0)
+ {
+ int jumptime = Environment.TickCount - m_animTickJump;
+ if (jumptime < PREJUMP_DELAY)
+ return CurrentMovementAnimation;
+ }
+
+ // jump up
+ isJumping = true;
+ currentControlState = motionControlStates.jumping;
+ m_scenePresence.Jump(18f);
+ return "JUMP";
}
if (currentControlState == motionControlStates.jumping)
@@ -445,7 +475,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
if ((jumptime > (JUMP_PERIOD * 1.5f)) && actor.IsColliding)
{
// end jumping
- m_jumping = false;
+ isJumping = false;
Falling = false;
actor.Selected = false; // borrowed for jumping flag
m_animTickLand = Environment.TickCount;
@@ -457,12 +487,6 @@ namespace OpenSim.Region.Framework.Scenes.Animation
// jump down
return "JUMP";
}
- else if (jumptime > PREJUMP_DELAY)
- {
- // jump up
- m_jumping = true;
- return "JUMP";
- }
return CurrentMovementAnimation;
}
@@ -556,20 +580,18 @@ namespace OpenSim.Region.Framework.Scenes.Animation
lock (m_animations)
{
string newMovementAnimation = DetermineMovementAnimation();
- if (CurrentMovementAnimation != newMovementAnimation)
- {
- CurrentMovementAnimation = newMovementAnimation;
+ if (CurrentMovementAnimation.Equals(newMovementAnimation))
+ return false;
-// m_log.DebugFormat(
-// "[SCENE PRESENCE ANIMATOR]: Determined animation {0} for {1} in UpdateMovementAnimations()",
-// CurrentMovementAnimation, m_scenePresence.Name);
+ CurrentMovementAnimation = newMovementAnimation;
+ m_log.DebugFormat(
+ "[SCENE PRESENCE ANIMATOR]: Determined animation {0} for {1} {2} {3} in UpdateMovementAnimations()",
+ CurrentMovementAnimation, m_scenePresence.Name, isJumping, Falling);
- // Only set it if it's actually changed, give a script
- // a chance to stop a default animation
- return TrySetMovementAnimation(CurrentMovementAnimation);
- }
+ // Only set it if it's actually changed, give a script
+ // a chance to stop a default animation
+ return TrySetMovementAnimation(CurrentMovementAnimation);
}
- return false;
}
public bool ForceUpdateMovementAnimations()
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index a8d7f4d9ad..678f2b6d1b 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -397,33 +397,33 @@ namespace OpenSim.Region.Framework.Scenes
private enum Dir_ControlFlags : uint
{
- DIR_CONTROL_FLAG_FORWARD = AgentManager.ControlFlags.AGENT_CONTROL_AT_POS,
- DIR_CONTROL_FLAG_BACK = AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG,
- DIR_CONTROL_FLAG_LEFT = AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS,
- DIR_CONTROL_FLAG_RIGHT = AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG,
- DIR_CONTROL_FLAG_UP = AgentManager.ControlFlags.AGENT_CONTROL_UP_POS,
- DIR_CONTROL_FLAG_DOWN = AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG,
- DIR_CONTROL_FLAG_FORWARD_NUDGE = AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_POS,
- DIR_CONTROL_FLAG_BACKWARD_NUDGE = AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_NEG,
- DIR_CONTROL_FLAG_LEFT_NUDGE = AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_POS,
- DIR_CONTROL_FLAG_RIGHT_NUDGE = AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_NEG,
- DIR_CONTROL_FLAG_UP_NUDGE = AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_POS,
- DIR_CONTROL_FLAG_DOWN_NUDGE = AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG
+ DIR_CONTROL_FLAG_FORWARD = ACFlags.AGENT_CONTROL_AT_POS,
+ DIR_CONTROL_FLAG_BACK = ACFlags.AGENT_CONTROL_AT_NEG,
+ DIR_CONTROL_FLAG_LEFT = ACFlags.AGENT_CONTROL_LEFT_POS,
+ DIR_CONTROL_FLAG_RIGHT = ACFlags.AGENT_CONTROL_LEFT_NEG,
+ DIR_CONTROL_FLAG_UP = ACFlags.AGENT_CONTROL_UP_POS,
+ DIR_CONTROL_FLAG_DOWN = ACFlags.AGENT_CONTROL_UP_NEG,
+ DIR_CONTROL_FLAG_FORWARD_NUDGE = ACFlags.AGENT_CONTROL_NUDGE_AT_POS,
+ DIR_CONTROL_FLAG_BACKWARD_NUDGE = ACFlags.AGENT_CONTROL_NUDGE_AT_NEG,
+ DIR_CONTROL_FLAG_LEFT_NUDGE = ACFlags.AGENT_CONTROL_NUDGE_LEFT_POS,
+ DIR_CONTROL_FLAG_RIGHT_NUDGE = ACFlags.AGENT_CONTROL_NUDGE_LEFT_NEG,
+ DIR_CONTROL_FLAG_UP_NUDGE = ACFlags.AGENT_CONTROL_NUDGE_UP_POS,
+ DIR_CONTROL_FLAG_DOWN_NUDGE = ACFlags.AGENT_CONTROL_NUDGE_UP_NEG
}
- const uint CONTROL_FLAG_NORM_MASK = (uint)(AgentManager.ControlFlags.AGENT_CONTROL_AT_POS |
- AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG |
- AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS |
- AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG |
- AgentManager.ControlFlags.AGENT_CONTROL_UP_POS |
- AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG);
+ const uint CONTROL_FLAG_NORM_MASK = (uint)(ACFlags.AGENT_CONTROL_AT_POS |
+ ACFlags.AGENT_CONTROL_AT_NEG |
+ ACFlags.AGENT_CONTROL_LEFT_POS |
+ ACFlags.AGENT_CONTROL_LEFT_NEG |
+ ACFlags.AGENT_CONTROL_UP_POS |
+ ACFlags.AGENT_CONTROL_UP_NEG);
- const uint CONTROL_FLAG_NUDGE_MASK = (uint)(AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_POS |
- AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_NEG |
- AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_POS |
- AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_NEG |
- AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_POS |
- AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG);
+ const uint CONTROL_FLAG_NUDGE_MASK = (uint)(ACFlags.AGENT_CONTROL_NUDGE_AT_POS |
+ ACFlags.AGENT_CONTROL_NUDGE_AT_NEG |
+ ACFlags.AGENT_CONTROL_NUDGE_LEFT_POS |
+ ACFlags.AGENT_CONTROL_NUDGE_LEFT_NEG |
+ ACFlags.AGENT_CONTROL_NUDGE_UP_POS |
+ ACFlags.AGENT_CONTROL_NUDGE_UP_NEG);
protected int m_reprioritizationLastTime;
protected bool m_reprioritizationBusy;
@@ -703,12 +703,12 @@ namespace OpenSim.Region.Framework.Scenes
public byte State { get; set; }
- private AgentManager.ControlFlags m_AgentControlFlags;
+ private ACFlags m_AgentControlFlags;
public uint AgentControlFlags
{
get { return (uint)m_AgentControlFlags; }
- set { m_AgentControlFlags = (AgentManager.ControlFlags)value; }
+ set { m_AgentControlFlags = (ACFlags)value; }
}
public IClientAPI ControllingClient { get; set; }
@@ -1053,9 +1053,9 @@ namespace OpenSim.Region.Framework.Scenes
if(value)
{
if (Flying)
- m_AgentControlFlags |= AgentManager.ControlFlags.AGENT_CONTROL_FLY;
+ m_AgentControlFlags |= ACFlags.AGENT_CONTROL_FLY;
else
- m_AgentControlFlags &= ~AgentManager.ControlFlags.AGENT_CONTROL_FLY;
+ m_AgentControlFlags &= ~ACFlags.AGENT_CONTROL_FLY;
}
m_inTransit = value;
}
@@ -1067,9 +1067,9 @@ namespace OpenSim.Region.Framework.Scenes
// velocities
- private const float AgentControlStopSlowVel = 0.2f;
- public const float AgentControlNudgeVel = 0.5f;
- public const float AgentControlNormalVel = 1.0f;
+ private const float AgentControlStopSlowVel = 0.2f * 4.096f;
+ public const float AgentControlNudgeVel = 0.4f * 4.096f;
+ public const float AgentControlNormalVel = 1.0f * 4.096f;
// old normal speed was tuned to match sl normal plus Fast modifiers
// so we need to rescale it
@@ -1715,20 +1715,12 @@ namespace OpenSim.Region.Framework.Scenes
PhysicsActor pa = Interlocked.Exchange(ref m_physActor, null);
if (pa != null)
{
-// PhysicsActor.OnRequestTerseUpdate -= SendTerseUpdateToAllClients;
-
+ //PhysicsActor.OnRequestTerseUpdate -= SendTerseUpdateToAllClients;
pa.OnOutOfBounds -= OutOfBoundsCall;
pa.OnCollisionUpdate -= PhysicsCollisionUpdate;
pa.UnSubscribeEvents();
m_scene.PhysicsScene.RemoveAvatar(pa);
- pa = null;
}
-// else
-// {
-// m_log.ErrorFormat(
-// "[SCENE PRESENCE]: Attempt to remove physics actor for {0} on {1} but this scene presence has no physics actor",
-// Name, Scene.RegionInfo.RegionName);
-// }
}
public void Teleport(Vector3 pos)
@@ -2202,7 +2194,7 @@ namespace OpenSim.Region.Framework.Scenes
//m_log.DebugFormat("[CompleteMovement] WaitForUpdateAgent: {0}ms", Util.EnvironmentTickCountSubtract(ts));
- bool flying = ((m_AgentControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0);
+ bool flying = ((m_AgentControlFlags & ACFlags.AGENT_CONTROL_FLY) != 0);
Vector3 look = Lookat;
look.Z = 0f;
@@ -2595,13 +2587,13 @@ namespace OpenSim.Region.Framework.Scenes
///
public void HandleAgentUpdate(IClientAPI remoteClient, AgentUpdateArgs agentData)
{
-// m_log.DebugFormat(
-// "[SCENE PRESENCE]: In {0} received agent update from {1}, flags {2}",
-// Scene.Name, remoteClient.Name, (AgentManager.ControlFlags)agentData.ControlFlags);
+ //m_log.DebugFormat(
+ // "[SCENE PRESENCE]: In {0} received agent update from {1}, flags {2}",
+ // Scene.Name, remoteClient.Name, (ACFlags)agentData.ControlFlags);
if (IsChildAgent)
{
-// m_log.DebugFormat("DEBUG: HandleAgentUpdate: child agent in {0}", Scene.Name);
+ //m_log.DebugFormat("DEBUG: HandleAgentUpdate: child agent in {0}", Scene.Name);
return;
}
@@ -2639,7 +2631,7 @@ namespace OpenSim.Region.Framework.Scenes
#region Inputs
- AgentManager.ControlFlags flags = (AgentManager.ControlFlags)agentData.ControlFlags;
+ ACFlags flags = (ACFlags)agentData.ControlFlags;
// The Agent's Draw distance setting
// When we get to the point of re-computing neighbors everytime this
@@ -2648,27 +2640,27 @@ namespace OpenSim.Region.Framework.Scenes
DrawDistance = agentData.Far;
- m_mouseLook = (flags & AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK) != 0;
+ m_mouseLook = (flags & ACFlags.AGENT_CONTROL_MOUSELOOK) != 0;
// FIXME: This does not work as intended because the viewer only sends the lbutton down when the button
// is first pressed, not whilst it is held down. If this is required in the future then need to look
// for an AGENT_CONTROL_LBUTTON_UP event and make sure to handle cases where an initial DOWN is not
// received (e.g. on holding LMB down on the avatar in a viewer).
- m_leftButtonDown = (flags & AgentManager.ControlFlags.AGENT_CONTROL_LBUTTON_DOWN) != 0;
+ m_leftButtonDown = (flags & ACFlags.AGENT_CONTROL_LBUTTON_DOWN) != 0;
#endregion Inputs
-// // Make anims work for client side autopilot
-// if ((flags & AgentManager.ControlFlags.AGENT_CONTROL_AT_POS) != 0)
-// m_updateCount = UPDATE_COUNT;
-//
-// // Make turning in place work
-// if ((flags & AgentManager.ControlFlags.AGENT_CONTROL_YAW_POS) != 0 ||
-// (flags & AgentManager.ControlFlags.AGENT_CONTROL_YAW_NEG) != 0)
-// m_updateCount = UPDATE_COUNT;
+ // Make anims work for client side autopilot
+ //if ((flags & ACFlags.AGENT_CONTROL_AT_POS) != 0)
+ // m_updateCount = UPDATE_COUNT;
+
+ // Make turning in place work
+ //if ((flags & ACFlags.AGENT_CONTROL_YAW_POS) != 0 ||
+ // (flags & ACFlags.AGENT_CONTROL_YAW_NEG) != 0)
+ // m_updateCount = UPDATE_COUNT;
- if ((flags & AgentManager.ControlFlags.AGENT_CONTROL_STAND_UP) != 0)
+ if ((flags & ACFlags.AGENT_CONTROL_STAND_UP) != 0)
{
StandUp();
}
@@ -2681,7 +2673,7 @@ namespace OpenSim.Region.Framework.Scenes
uint flagsForScripts = (uint)flags;
flags = RemoveIgnoredControls(flags, IgnoredControls);
- if ((flags & AgentManager.ControlFlags.AGENT_CONTROL_SIT_ON_GROUND) != 0)
+ if ((flags & ACFlags.AGENT_CONTROL_SIT_ON_GROUND) != 0)
HandleAgentSitOnGround();
// In the future, these values might need to go global.
@@ -2737,7 +2729,7 @@ namespace OpenSim.Region.Framework.Scenes
else if(mvToTarget)
newFlying = actor.Flying;
else
- newFlying = ((flags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0);
+ newFlying = ((flags & ACFlags.AGENT_CONTROL_FLY) != 0);
if (actor.Flying != newFlying)
{
@@ -2757,13 +2749,15 @@ namespace OpenSim.Region.Framework.Scenes
if (currflags != 0)
{
DCFlagKeyPressed = true;
- update_movementflag = (currflags ^ oldflags) != 0;
+ //update_movementflag = (currflags ^ oldflags) != 0;
+ update_movementflag = currflags != 0;
MovementFlag |= currflags;
if((currflags & CONTROL_FLAG_NUDGE_MASK) != 0)
{
currflags >>= 19;
- agent_velocity = AgentControlNudgeVel;
+ if(m_delayedStop < 0)
+ agent_velocity = AgentControlNudgeVel;
}
uint mask = 1;
@@ -2782,7 +2776,7 @@ namespace OpenSim.Region.Framework.Scenes
}
// Detect AGENT_CONTROL_STOP state changes
- if (AgentControlStopActive != ((flags & AgentManager.ControlFlags.AGENT_CONTROL_STOP) != 0))
+ if (AgentControlStopActive != ((flags & ACFlags.AGENT_CONTROL_STOP) != 0))
{
AgentControlStopActive = !AgentControlStopActive;
update_movementflag = true;
@@ -2822,25 +2816,25 @@ namespace OpenSim.Region.Framework.Scenes
{
// Landing detection code
// Are the landing controls requirements filled?
- //bool controlland = (flags & (AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG)) != 0;
+ //bool controlland = (flags & (ACFlags.AGENT_CONTROL_UP_NEG | ACFlags.AGENT_CONTROL_NUDGE_UP_NEG)) != 0;
//m_log.Debug("[CONTROL]: " +flags);
// Applies a satisfying roll effect to the avatar when flying.
- const AgentManager.ControlFlags flagsLeft = AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT | AgentManager.ControlFlags.AGENT_CONTROL_YAW_POS;
- const AgentManager.ControlFlags flagsRight = AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT | AgentManager.ControlFlags.AGENT_CONTROL_YAW_NEG;
+ const ACFlags flagsLeft = ACFlags.AGENT_CONTROL_TURN_LEFT | ACFlags.AGENT_CONTROL_YAW_POS;
+ const ACFlags flagsRight = ACFlags.AGENT_CONTROL_TURN_RIGHT | ACFlags.AGENT_CONTROL_YAW_NEG;
if ((flags & flagsLeft) == flagsLeft)
{
ApplyFlyingRoll(
FLY_ROLL_RADIANS_PER_UPDATE,
- (flags & AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) != 0,
- (flags & AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0);
+ (flags & ACFlags.AGENT_CONTROL_UP_POS) != 0,
+ (flags & ACFlags.AGENT_CONTROL_UP_NEG) != 0);
}
else if ((flags & flagsRight) == flagsRight)
{
ApplyFlyingRoll(
-FLY_ROLL_RADIANS_PER_UPDATE,
- (flags & AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) != 0,
- (flags & AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0);
+ (flags & ACFlags.AGENT_CONTROL_UP_POS) != 0,
+ (flags & ACFlags.AGENT_CONTROL_UP_NEG) != 0);
}
else
{
@@ -2875,7 +2869,6 @@ namespace OpenSim.Region.Framework.Scenes
if (update_movementflag
|| (update_rotation && DCFlagKeyPressed && (!AgentControlStopActive || MovementFlag != 0)))
{
-
if (AgentControlStopActive)
{
// if (MovementFlag == 0 && Animator.Falling)
@@ -2898,17 +2891,19 @@ namespace OpenSim.Region.Framework.Scenes
if (MovementFlag != 0)
AddNewMovement(agent_control_v3, agent_velocity);
else
- m_delayedStop = Util.GetTimeStampMS() + 100.0;
+ m_delayedStop = Util.GetTimeStampMS() + 200.0;
}
}
}
-/*
+ else if((flags & ACFlags.AGENT_CONTROL_FINISH_ANIM) != 0)
+ Animator.UpdateMovementAnimations();
+ /*
if (update_movementflag && ParentID == 0 && m_delayedStop < 0)
{
-// m_log.DebugFormat("[SCENE PRESENCE]: Updating movement animations for {0}", Name);
+ //m_log.DebugFormat("[SCENE PRESENCE]: Updating movement animations for {0}", Name);
Animator.UpdateMovementAnimations();
}
-*/
+ */
SendControlsToScripts(flagsForScripts);
}
@@ -2931,7 +2926,7 @@ namespace OpenSim.Region.Framework.Scenes
{
//m_log.DebugFormat(
// "[SCENE PRESENCE]: In {0} received agent camera update from {1}, flags {2}",
- // Scene.RegionInfo.RegionName, remoteClient.Name, (AgentManager.ControlFlags)agentData.ControlFlags);
+ // Scene.RegionInfo.RegionName, remoteClient.Name, (ACFlags)agentData.ControlFlags);
if (IsChildAgent)
return;
@@ -2939,7 +2934,7 @@ namespace OpenSim.Region.Framework.Scenes
if(IsInTransit)
return;
-// AgentManager.ControlFlags flags = (AgentManager.ControlFlags)agentData.ControlFlags;
+// ACFlags flags = (ACFlags)agentData.ControlFlags;
// Camera location in world. We'll need to raytrace
// from this location from time to time.
@@ -3091,8 +3086,8 @@ namespace OpenSim.Region.Framework.Scenes
MovementFlag &= noMovFlagsMask;
MovementFlag |= tmpAgentControlFlags;
- m_AgentControlFlags &= unchecked((AgentManager.ControlFlags)noMovFlagsMask);
- m_AgentControlFlags |= (AgentManager.ControlFlags)tmpAgentControlFlags;
+ m_AgentControlFlags &= unchecked((ACFlags)noMovFlagsMask);
+ m_AgentControlFlags |= (ACFlags)tmpAgentControlFlags;
if (updated)
agent_control_v3 += LocalVectorToTarget3D;
@@ -3201,7 +3196,7 @@ namespace OpenSim.Region.Framework.Scenes
Vector3 control = Vector3.Zero;
if(HandleMoveToTargetUpdate(0.5f, ref control))
- AddNewMovement(control);
+ AddNewMovement(control, AgentControlNormalVel);
}
///
@@ -3221,7 +3216,7 @@ namespace OpenSim.Region.Framework.Scenes
// resting animation (e.g. hover or stand). NPCs don't have a client that will quickly reset this flag.
// However, the line is here rather than in the NPC module since it also appears necessary to stop a
// viewer that uses "go here" from juddering on all subsequent avatar movements.
- AgentControlFlags = (uint)AgentManager.ControlFlags.NONE;
+ AgentControlFlags = (uint)ACFlags.NONE;
if(IsNPC)
Animator.UpdateMovementAnimations();
}
@@ -3799,11 +3794,11 @@ namespace OpenSim.Region.Framework.Scenes
/// The vector in which to move. This is relative to the rotation argument
///
/// Optional additional speed modifier for this particular add. Default is 1
- public void AddNewMovement(Vector3 vec, float thisAddSpeedModifier = 1, bool breaking = false)
+ public void AddNewMovement(Vector3 vec, float thisAddSpeedModifier, bool breaking = false)
{
- // m_log.DebugFormat(
- // "[SCENE PRESENCE]: Adding new movement {0} with rotation {1}, thisAddSpeedModifier {2} for {3}",
- // vec, Rotation, thisAddSpeedModifier, Name);
+ // m_log.DebugFormat(
+ // "[SCENE PRESENCE]: Adding new movement {0} with rotation {1}, thisAddSpeedModifier {2} for {3}",
+ // vec, Rotation, thisAddSpeedModifier, Name);
m_delayedStop = -1;
// rotate from avatar coord space to world
Quaternion rot = Rotation;
@@ -3824,19 +3819,19 @@ namespace OpenSim.Region.Framework.Scenes
bool notmvtrgt = !m_movingToTarget || m_moveToSpeed <= 0;
// odd rescalings
if(notmvtrgt)
- direc *= 4.096f * SpeedModifier * thisAddSpeedModifier;
+ direc *= SpeedModifier * thisAddSpeedModifier;
else
direc *= m_moveToSpeed;
- // m_log.DebugFormat("[SCENE PRESENCE]: Force to apply before modification was {0} for {1}", direc, Name);
+ //m_log.DebugFormat("[SCENE PRESENCE]: Force to apply before modification was {0} for {1}", direc, Name);
if (Animator.currentControlState == ScenePresenceAnimator.motionControlStates.falling
&& (PhysicsActor == null || !PhysicsActor.PIDHoverActive))
{
if (breaking)
direc.Z = -9999f; //hack to tell physics to stop on Z
- else
- direc = Vector3.Zero;
+ //else
+ //direc = Vector3.Zero;
}
else if (Flying)
{
@@ -3849,9 +3844,9 @@ namespace OpenSim.Region.Framework.Scenes
}
else if (IsColliding)
{
- if (direc.Z > 2.0f && notmvtrgt) // reinforce jumps
+ if (((AgentControlFlags & (uint)ACFlags.AGENT_CONTROL_UP_POS) != 0) && notmvtrgt) // reinforce jumps
{
- direc.Z *= 2.6f;
+ direc.Z = 0;
}
else if (direc.Z < 0) // on a surface moving down (pg down) only changes animation
direc.Z = 0;
@@ -3892,14 +3887,14 @@ namespace OpenSim.Region.Framework.Scenes
m_delayedStop = -1;
Vector3 control = Vector3.Zero;
if(HandleMoveToTargetUpdate(0.5f, ref control))
- AddNewMovement(control);
+ AddNewMovement(control, AgentControlNormalVel);
}
else if(m_delayedStop > 0)
{
if(IsSatOnObject)
m_delayedStop = -1;
else if(Util.GetTimeStampMS() > m_delayedStop)
- AddNewMovement(Vector3.Zero);
+ AddNewMovement(Vector3.Zero, 0);
}
if (Appearance.AvatarSize != m_lastSize)
@@ -4415,9 +4410,9 @@ namespace OpenSim.Region.Framework.Scenes
if (IsChildAgent)
return;
- m_scene.ForEachScenePresence(delegate(ScenePresence p)
+ m_scene.ForEachScenePresence(delegate (ScenePresence p)
{
- if(p.IsNPC)
+ if (p.IsNPC)
return;
if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && !p.IsViewerUIGod)
return;
@@ -5050,13 +5045,13 @@ namespace OpenSim.Region.Framework.Scenes
m_headrotation = cAgent.HeadRotation;
Rotation = cAgent.BodyRotation;
- m_AgentControlFlags = (AgentManager.ControlFlags)cAgent.ControlFlags;
+ m_AgentControlFlags = (ACFlags)cAgent.ControlFlags;
SetAlwaysRun = cAgent.AlwaysRun;
Appearance = new AvatarAppearance(cAgent.Appearance, true, true);
/*
- bool isFlying = ((m_AgentControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0);
+ bool isFlying = ((m_AgentControlFlags & ACFlags.AGENT_CONTROL_FLY) != 0);
if (PhysicsActor != null)
{
@@ -6019,56 +6014,56 @@ namespace OpenSim.Region.Framework.Scenes
ScriptControlled allflags;
// convert mouse from edge to level
- if ((flags & ((uint)AgentManager.ControlFlags.AGENT_CONTROL_LBUTTON_UP | unchecked((uint)AgentManager.ControlFlags.AGENT_CONTROL_ML_LBUTTON_UP))) != 0)
+ if ((flags & ((uint)ACFlags.AGENT_CONTROL_LBUTTON_UP | unchecked((uint)ACFlags.AGENT_CONTROL_ML_LBUTTON_UP))) != 0)
{
allflags = ScriptControlled.CONTROL_ZERO;
}
else // recover last state of mouse
allflags = LastCommands & (ScriptControlled.CONTROL_ML_LBUTTON | ScriptControlled.CONTROL_LBUTTON);
- if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_ML_LBUTTON_DOWN) != 0)
+ if ((flags & (uint)ACFlags.AGENT_CONTROL_ML_LBUTTON_DOWN) != 0)
allflags |= ScriptControlled.CONTROL_ML_LBUTTON;
- if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_LBUTTON_DOWN) != 0)
+ if ((flags & (uint)ACFlags.AGENT_CONTROL_LBUTTON_DOWN) != 0)
allflags |= ScriptControlled.CONTROL_LBUTTON;
// find all activated controls, whether the scripts are interested in them or not
- if ((flags & (uint)(AgentManager.ControlFlags.AGENT_CONTROL_AT_POS | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_POS)) != 0)
+ if ((flags & (uint)(ACFlags.AGENT_CONTROL_AT_POS | ACFlags.AGENT_CONTROL_NUDGE_AT_POS)) != 0)
{
allflags |= ScriptControlled.CONTROL_FWD;
}
- if ((flags & (uint)(AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_NEG)) != 0)
+ if ((flags & (uint)(ACFlags.AGENT_CONTROL_AT_NEG | ACFlags.AGENT_CONTROL_NUDGE_AT_NEG)) != 0)
{
allflags |= ScriptControlled.CONTROL_BACK;
}
- if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) != 0 || (flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_POS) != 0)
+ if ((flags & (uint)ACFlags.AGENT_CONTROL_UP_POS) != 0 || (flags & (uint)ACFlags.AGENT_CONTROL_NUDGE_UP_POS) != 0)
{
allflags |= ScriptControlled.CONTROL_UP;
}
- if ((flags & (uint)(AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG)) != 0)
+ if ((flags & (uint)(ACFlags.AGENT_CONTROL_UP_NEG | ACFlags.AGENT_CONTROL_NUDGE_UP_NEG)) != 0)
{
allflags |= ScriptControlled.CONTROL_DOWN;
}
- if ((flags & (uint)(AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_POS)) != 0)
+ if ((flags & (uint)(ACFlags.AGENT_CONTROL_LEFT_POS | ACFlags.AGENT_CONTROL_NUDGE_LEFT_POS)) != 0)
{
allflags |= ScriptControlled.CONTROL_LEFT;
}
- if ((flags & (uint)(AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_NEG)) != 0)
+ if ((flags & (uint)(ACFlags.AGENT_CONTROL_LEFT_NEG | ACFlags.AGENT_CONTROL_NUDGE_LEFT_NEG)) != 0)
{
allflags |= ScriptControlled.CONTROL_RIGHT;
}
- if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_YAW_NEG) != 0)
+ if ((flags & (uint)ACFlags.AGENT_CONTROL_YAW_NEG) != 0)
{
allflags |= ScriptControlled.CONTROL_ROT_RIGHT;
}
- if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_YAW_POS) != 0)
+ if ((flags & (uint)ACFlags.AGENT_CONTROL_YAW_POS) != 0)
{
allflags |= ScriptControlled.CONTROL_ROT_LEFT;
}
@@ -6096,39 +6091,31 @@ namespace OpenSim.Region.Framework.Scenes
}
}
- internal static AgentManager.ControlFlags RemoveIgnoredControls(AgentManager.ControlFlags flags, ScriptControlled ignored)
+ internal static ACFlags RemoveIgnoredControls(ACFlags flags, ScriptControlled ignored)
{
if (ignored == ScriptControlled.CONTROL_ZERO)
return flags;
if ((ignored & ScriptControlled.CONTROL_BACK) != 0)
- flags &= ~(AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_NEG);
+ flags &= ~(ACFlags.AGENT_CONTROL_AT_NEG | ACFlags.AGENT_CONTROL_NUDGE_AT_NEG);
if ((ignored & ScriptControlled.CONTROL_FWD) != 0)
- flags &= ~(AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_POS | AgentManager.ControlFlags.AGENT_CONTROL_AT_POS);
+ flags &= ~(ACFlags.AGENT_CONTROL_NUDGE_AT_POS | ACFlags.AGENT_CONTROL_AT_POS);
if ((ignored & ScriptControlled.CONTROL_DOWN) != 0)
- flags &= ~(AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG);
+ flags &= ~(ACFlags.AGENT_CONTROL_UP_NEG | ACFlags.AGENT_CONTROL_NUDGE_UP_NEG);
if ((ignored & ScriptControlled.CONTROL_UP) != 0)
- flags &= ~(AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_POS | AgentManager.ControlFlags.AGENT_CONTROL_UP_POS);
+ flags &= ~(ACFlags.AGENT_CONTROL_NUDGE_UP_POS | ACFlags.AGENT_CONTROL_UP_POS);
if ((ignored & ScriptControlled.CONTROL_LEFT) != 0)
- flags &= ~(AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS | AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_POS);
+ flags &= ~(ACFlags.AGENT_CONTROL_LEFT_POS | ACFlags.AGENT_CONTROL_NUDGE_LEFT_POS);
if ((ignored & ScriptControlled.CONTROL_RIGHT) != 0)
- flags &= ~(AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_LEFT_NEG | AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG);
+ flags &= ~(ACFlags.AGENT_CONTROL_NUDGE_LEFT_NEG | ACFlags.AGENT_CONTROL_LEFT_NEG);
if ((ignored & ScriptControlled.CONTROL_ROT_LEFT) != 0)
- flags &= ~(AgentManager.ControlFlags.AGENT_CONTROL_YAW_NEG);
+ flags &= ~(ACFlags.AGENT_CONTROL_YAW_NEG);
if ((ignored & ScriptControlled.CONTROL_ROT_RIGHT) != 0)
- flags &= ~(AgentManager.ControlFlags.AGENT_CONTROL_YAW_POS);
+ flags &= ~(ACFlags.AGENT_CONTROL_YAW_POS);
if ((ignored & ScriptControlled.CONTROL_ML_LBUTTON) != 0)
- flags &= ~(AgentManager.ControlFlags.AGENT_CONTROL_ML_LBUTTON_DOWN);
+ flags &= ~(ACFlags.AGENT_CONTROL_ML_LBUTTON_DOWN);
if ((ignored & ScriptControlled.CONTROL_LBUTTON) != 0)
- flags &= ~(AgentManager.ControlFlags.AGENT_CONTROL_LBUTTON_UP | AgentManager.ControlFlags.AGENT_CONTROL_LBUTTON_DOWN);
-
- //DIR_CONTROL_FLAG_FORWARD = AgentManager.ControlFlags.AGENT_CONTROL_AT_POS,
- //DIR_CONTROL_FLAG_BACK = AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG,
- //DIR_CONTROL_FLAG_LEFT = AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS,
- //DIR_CONTROL_FLAG_RIGHT = AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG,
- //DIR_CONTROL_FLAG_UP = AgentManager.ControlFlags.AGENT_CONTROL_UP_POS,
- //DIR_CONTROL_FLAG_DOWN = AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG,
- //DIR_CONTROL_FLAG_DOWN_NUDGE = AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG
+ flags &= ~(ACFlags.AGENT_CONTROL_LBUTTON_UP | ACFlags.AGENT_CONTROL_LBUTTON_DOWN);
return flags;
}
@@ -7011,15 +6998,16 @@ namespace OpenSim.Region.Framework.Scenes
p.ControllingClient.SendKillObject(ids);
}
-/*
-// kill with hack
+ /*
+ // kill with hack
public void SendKillTo(ScenePresence p)
{
foreach (SceneObjectGroup sog in m_attachments)
p.ControllingClient.SendPartFullUpdate(sog.RootPart, LocalId + 1);
p.ControllingClient.SendKillObject(new List { LocalId });
}
-*/
+ */
+
public void SendViewTo(ScenePresence p)
{
SendAvatarDataToAgentNF(p);