aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
authorTeravus Ovares (Dan Olivares)2009-12-12 02:41:59 -0500
committerTeravus Ovares (Dan Olivares)2009-12-12 02:41:59 -0500
commit0639e90f56dbbe94fa33d0f24d593a3bb67a11d1 (patch)
tree08861955ac296009fe9bc4ab1a1bec51186f36dc /OpenSim/Region/Framework
parentMerge branch 'master' of ssh://MyConnection/var/git/opensim (diff)
downloadopensim-SC-0639e90f56dbbe94fa33d0f24d593a3bb67a11d1.zip
opensim-SC-0639e90f56dbbe94fa33d0f24d593a3bb67a11d1.tar.gz
opensim-SC-0639e90f56dbbe94fa33d0f24d593a3bb67a11d1.tar.bz2
opensim-SC-0639e90f56dbbe94fa33d0f24d593a3bb67a11d1.tar.xz
* Bugfix mantis 4441, "Use of Autopilot isn't playing any animations."
* Turns out the new animator used a different movement bitflag then the one used in the code to autopilot the avatar
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs18
2 files changed, 15 insertions, 5 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
index a459ffa..c314596 100644
--- a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
+++ b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
@@ -128,7 +128,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
128 if (!m_scenePresence.IsChildAgent) 128 if (!m_scenePresence.IsChildAgent)
129 { 129 {
130 if (m_animations.TrySetDefaultAnimation( 130 if (m_animations.TrySetDefaultAnimation(
131 anim, m_scenePresence.ControllingClient.NextAnimationSequenceNumber, UUID.Zero)) 131 anim, m_scenePresence.ControllingClient.NextAnimationSequenceNumber, m_scenePresence.UUID))
132 { 132 {
133 // 16384 is CHANGED_ANIMATION 133 // 16384 is CHANGED_ANIMATION
134 m_scenePresence.SendScriptEventToAttachments("changed", new Object[] { 16384 }); 134 m_scenePresence.SendScriptEventToAttachments("changed", new Object[] { 16384 });
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 7cdbd4b..2710cff 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1262,11 +1262,13 @@ namespace OpenSim.Region.Framework.Scenes
1262 { 1262 {
1263 return; 1263 return;
1264 } 1264 }
1265
1266 bool update_movementflag = false;
1265 1267
1266 if (m_allowMovement) 1268 if (m_allowMovement)
1267 { 1269 {
1268 int i = 0; 1270 int i = 0;
1269 bool update_movementflag = false; 1271
1270 bool update_rotation = false; 1272 bool update_rotation = false;
1271 bool DCFlagKeyPressed = false; 1273 bool DCFlagKeyPressed = false;
1272 Vector3 agent_control_v3 = Vector3.Zero; 1274 Vector3 agent_control_v3 = Vector3.Zero;
@@ -1400,27 +1402,33 @@ namespace OpenSim.Region.Framework.Scenes
1400 if (LocalVectorToTarget2D.Y > 0)//MoveLeft 1402 if (LocalVectorToTarget2D.Y > 0)//MoveLeft
1401 { 1403 {
1402 m_movementflag += (byte)(uint)Dir_ControlFlags.DIR_CONTROL_FLAG_LEFT; 1404 m_movementflag += (byte)(uint)Dir_ControlFlags.DIR_CONTROL_FLAG_LEFT;
1405 //AgentControlFlags
1406 AgentControlFlags |= (uint)Dir_ControlFlags.DIR_CONTROL_FLAG_LEFT;
1403 update_movementflag = true; 1407 update_movementflag = true;
1404 } 1408 }
1405 else if (LocalVectorToTarget2D.Y < 0) //MoveRight 1409 else if (LocalVectorToTarget2D.Y < 0) //MoveRight
1406 { 1410 {
1407 m_movementflag += (byte)(uint)Dir_ControlFlags.DIR_CONTROL_FLAG_RIGHT; 1411 m_movementflag += (byte)(uint)Dir_ControlFlags.DIR_CONTROL_FLAG_RIGHT;
1412 AgentControlFlags |= (uint)Dir_ControlFlags.DIR_CONTROL_FLAG_RIGHT;
1408 update_movementflag = true; 1413 update_movementflag = true;
1409 } 1414 }
1410 if (LocalVectorToTarget2D.X < 0) //MoveBack 1415 if (LocalVectorToTarget2D.X < 0) //MoveBack
1411 { 1416 {
1412 m_movementflag += (byte)(uint)Dir_ControlFlags.DIR_CONTROL_FLAG_BACK; 1417 m_movementflag += (byte)(uint)Dir_ControlFlags.DIR_CONTROL_FLAG_BACK;
1418 AgentControlFlags |= (uint)Dir_ControlFlags.DIR_CONTROL_FLAG_BACK;
1413 update_movementflag = true; 1419 update_movementflag = true;
1414 } 1420 }
1415 else if (LocalVectorToTarget2D.X > 0) //Move Forward 1421 else if (LocalVectorToTarget2D.X > 0) //Move Forward
1416 { 1422 {
1417 m_movementflag += (byte)(uint)Dir_ControlFlags.DIR_CONTROL_FLAG_FORWARD; 1423 m_movementflag += (byte)(uint)Dir_ControlFlags.DIR_CONTROL_FLAG_FORWARD;
1424 AgentControlFlags |= (uint)Dir_ControlFlags.DIR_CONTROL_FLAG_FORWARD;
1418 update_movementflag = true; 1425 update_movementflag = true;
1419 } 1426 }
1420 } 1427 }
1421 catch (Exception) 1428 catch (Exception e)
1422 { 1429 {
1423 //Avoid system crash, can be slower but... 1430 //Avoid system crash, can be slower but...
1431 m_log.DebugFormat("Crash! {0}", e.ToString());
1424 } 1432 }
1425 } 1433 }
1426 } 1434 }
@@ -1458,11 +1466,13 @@ namespace OpenSim.Region.Framework.Scenes
1458 1466
1459 AddNewMovement(agent_control_v3, q); 1467 AddNewMovement(agent_control_v3, q);
1460 1468
1461 if (update_movementflag) 1469
1462 Animator.UpdateMovementAnimations();
1463 } 1470 }
1464 } 1471 }
1465 1472
1473 if (update_movementflag)
1474 Animator.UpdateMovementAnimations();
1475
1466 m_scene.EventManager.TriggerOnClientMovement(this); 1476 m_scene.EventManager.TriggerOnClientMovement(this);
1467 1477
1468 m_scene.StatsReporter.AddAgentTime(Util.EnvironmentTickCountSubtract(m_perfMonMS)); 1478 m_scene.StatsReporter.AddAgentTime(Util.EnvironmentTickCountSubtract(m_perfMonMS));