aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs25
1 files changed, 6 insertions, 19 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 9cb9303..a34c44c 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -351,7 +351,7 @@ namespace OpenSim.Region.Framework.Scenes
351 /// <summary> 351 /// <summary>
352 /// Record user movement inputs. 352 /// Record user movement inputs.
353 /// </summary> 353 /// </summary>
354 public byte MovementFlag { get; private set; } 354 public uint MovementFlag { get; private set; }
355 355
356 private bool m_updateflag; 356 private bool m_updateflag;
357 357
@@ -1695,10 +1695,7 @@ namespace OpenSim.Region.Framework.Scenes
1695 else 1695 else
1696 dirVectors = Dir_Vectors; 1696 dirVectors = Dir_Vectors;
1697 1697
1698 // The fact that MovementFlag is a byte needs to be fixed
1699 // it really should be a uint
1700 // A DIR_CONTROL_FLAG occurs when the user is trying to move in a particular direction. 1698 // A DIR_CONTROL_FLAG occurs when the user is trying to move in a particular direction.
1701 uint nudgehack = 250;
1702 foreach (Dir_ControlFlags DCF in DIR_CONTROL_FLAGS) 1699 foreach (Dir_ControlFlags DCF in DIR_CONTROL_FLAGS)
1703 { 1700 {
1704 if (((uint)flags & (uint)DCF) != 0) 1701 if (((uint)flags & (uint)DCF) != 0)
@@ -1715,29 +1712,19 @@ namespace OpenSim.Region.Framework.Scenes
1715 // Why did I get this? 1712 // Why did I get this?
1716 } 1713 }
1717 1714
1718 if ((MovementFlag & (byte)(uint)DCF) == 0) 1715 if ((MovementFlag & (uint)DCF) == 0)
1719 { 1716 {
1720 if (DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_FORWARD_NUDGE || DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_BACKWARD_NUDGE ||
1721 DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_LEFT_NUDGE || DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_RIGHT_NUDGE)
1722 {
1723 MovementFlag |= (byte)nudgehack;
1724 }
1725
1726 //m_log.DebugFormat("[SCENE PRESENCE]: Updating MovementFlag for {0} with {1}", Name, DCF); 1717 //m_log.DebugFormat("[SCENE PRESENCE]: Updating MovementFlag for {0} with {1}", Name, DCF);
1727 MovementFlag += (byte)(uint)DCF; 1718 MovementFlag += (uint)DCF;
1728 update_movementflag = true; 1719 update_movementflag = true;
1729 } 1720 }
1730 } 1721 }
1731 else 1722 else
1732 { 1723 {
1733 if ((MovementFlag & (byte)(uint)DCF) != 0 || 1724 if ((MovementFlag & (uint)DCF) != 0)
1734 ((DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_FORWARD_NUDGE || DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_BACKWARD_NUDGE ||
1735 DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_LEFT_NUDGE || DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_RIGHT_NUDGE)
1736 && ((MovementFlag & (byte)nudgehack) == nudgehack))
1737 ) // This or is for Nudge forward
1738 { 1725 {
1739 //m_log.DebugFormat("[SCENE PRESENCE]: Updating MovementFlag for {0} with lack of {1}", Name, DCF); 1726 //m_log.DebugFormat("[SCENE PRESENCE]: Updating MovementFlag for {0} with lack of {1}", Name, DCF);
1740 MovementFlag -= ((byte)(uint)DCF); 1727 MovementFlag -= (uint)DCF;
1741 update_movementflag = true; 1728 update_movementflag = true;
1742 1729
1743 /* 1730 /*