aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs30
1 files changed, 14 insertions, 16 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index e28d1fe..a1bd672 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1298,7 +1298,6 @@ namespace OpenSim.Region.Framework.Scenes
1298 #region Inputs 1298 #region Inputs
1299 1299
1300 AgentManager.ControlFlags flags = (AgentManager.ControlFlags)agentData.ControlFlags; 1300 AgentManager.ControlFlags flags = (AgentManager.ControlFlags)agentData.ControlFlags;
1301 Quaternion bodyRotation = agentData.BodyRotation;
1302 1301
1303 // Camera location in world. We'll need to raytrace 1302 // Camera location in world. We'll need to raytrace
1304 // from this location from time to time. 1303 // from this location from time to time.
@@ -1384,6 +1383,15 @@ namespace OpenSim.Region.Framework.Scenes
1384 1383
1385 if (m_allowMovement && !SitGround) 1384 if (m_allowMovement && !SitGround)
1386 { 1385 {
1386 Quaternion bodyRotation = agentData.BodyRotation;
1387 bool update_rotation = false;
1388
1389 if (bodyRotation != m_bodyRot)
1390 {
1391 Rotation = bodyRotation;
1392 update_rotation = true;
1393 }
1394
1387 bool update_movementflag = false; 1395 bool update_movementflag = false;
1388 1396
1389 if (agentData.UseClientAgentPosition) 1397 if (agentData.UseClientAgentPosition)
@@ -1393,8 +1401,6 @@ namespace OpenSim.Region.Framework.Scenes
1393 } 1401 }
1394 1402
1395 int i = 0; 1403 int i = 0;
1396
1397 bool update_rotation = false;
1398 bool DCFlagKeyPressed = false; 1404 bool DCFlagKeyPressed = false;
1399 Vector3 agent_control_v3 = Vector3.Zero; 1405 Vector3 agent_control_v3 = Vector3.Zero;
1400 1406
@@ -1410,12 +1416,6 @@ namespace OpenSim.Region.Framework.Scenes
1410 if (actor.Flying != oldflying) 1416 if (actor.Flying != oldflying)
1411 update_movementflag = true; 1417 update_movementflag = true;
1412 1418
1413 if (bodyRotation != m_bodyRot)
1414 {
1415 m_bodyRot = bodyRotation;
1416 update_rotation = true;
1417 }
1418
1419 if (m_parentID == 0) 1419 if (m_parentID == 0)
1420 { 1420 {
1421 bool bAllowUpdateMoveToPosition = false; 1421 bool bAllowUpdateMoveToPosition = false;
@@ -1467,8 +1467,8 @@ namespace OpenSim.Region.Framework.Scenes
1467 ) // This or is for Nudge forward 1467 ) // This or is for Nudge forward
1468 { 1468 {
1469 m_movementflag -= ((byte)(uint)DCF); 1469 m_movementflag -= ((byte)(uint)DCF);
1470
1471 update_movementflag = true; 1470 update_movementflag = true;
1471
1472 /* 1472 /*
1473 if ((DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_FORWARD_NUDGE || DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_BACKWARD_NUDGE) 1473 if ((DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_FORWARD_NUDGE || DCF == Dir_ControlFlags.DIR_CONTROL_FLAG_BACKWARD_NUDGE)
1474 && ((m_movementflag & (byte)nudgehack) == nudgehack)) 1474 && ((m_movementflag & (byte)nudgehack) == nudgehack))
@@ -1534,7 +1534,7 @@ namespace OpenSim.Region.Framework.Scenes
1534 // m_log.DebugFormat( 1534 // m_log.DebugFormat(
1535 // "In {0} adding velocity to {1} of {2}", m_scene.RegionInfo.RegionName, Name, agent_control_v3); 1535 // "In {0} adding velocity to {1} of {2}", m_scene.RegionInfo.RegionName, Name, agent_control_v3);
1536 1536
1537 AddNewMovement(agent_control_v3, bodyRotation); 1537 AddNewMovement(agent_control_v3);
1538 } 1538 }
1539 1539
1540 if (update_movementflag 1540 if (update_movementflag
@@ -1732,7 +1732,7 @@ namespace OpenSim.Region.Framework.Scenes
1732 1732
1733 Vector3 agent_control_v3 = new Vector3(); 1733 Vector3 agent_control_v3 = new Vector3();
1734 HandleMoveToTargetUpdate(ref agent_control_v3, Rotation); 1734 HandleMoveToTargetUpdate(ref agent_control_v3, Rotation);
1735 AddNewMovement(agent_control_v3, Rotation); 1735 AddNewMovement(agent_control_v3);
1736 } 1736 }
1737 1737
1738 /// <summary> 1738 /// <summary>
@@ -2311,13 +2311,11 @@ namespace OpenSim.Region.Framework.Scenes
2311 /// Rotate the avatar to the given rotation and apply a movement in the given relative vector 2311 /// Rotate the avatar to the given rotation and apply a movement in the given relative vector
2312 /// </summary> 2312 /// </summary>
2313 /// <param name="vec">The vector in which to move. This is relative to the rotation argument</param> 2313 /// <param name="vec">The vector in which to move. This is relative to the rotation argument</param>
2314 /// <param name="rotation">The direction in which this avatar should now face. 2314 public void AddNewMovement(Vector3 vec)
2315 public void AddNewMovement(Vector3 vec, Quaternion rotation)
2316 { 2315 {
2317 m_perfMonMS = Util.EnvironmentTickCount(); 2316 m_perfMonMS = Util.EnvironmentTickCount();
2318 2317
2319 Rotation = rotation; 2318 Vector3 direc = vec * Rotation;
2320 Vector3 direc = vec * rotation;
2321 direc.Normalize(); 2319 direc.Normalize();
2322 2320
2323 direc *= 0.03f * 128f * m_speedModifier; 2321 direc *= 0.03f * 128f * m_speedModifier;