aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/OptionalModules/World/NPC
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-08-11 01:56:42 +0100
committerJustin Clark-Casey (justincc)2011-08-11 01:56:42 +0100
commit4402851b086e7faf0d441d2ae0d5f6a3e1ea04b8 (patch)
treeff44ea86dfd8ba586ae4439728ef26341085691a /OpenSim/Region/OptionalModules/World/NPC
parentIf SP.MoveToTarget has been called with a force walk, begin by landing the av... (diff)
downloadopensim-SC_OLD-4402851b086e7faf0d441d2ae0d5f6a3e1ea04b8.zip
opensim-SC_OLD-4402851b086e7faf0d441d2ae0d5f6a3e1ea04b8.tar.gz
opensim-SC_OLD-4402851b086e7faf0d441d2ae0d5f6a3e1ea04b8.tar.bz2
opensim-SC_OLD-4402851b086e7faf0d441d2ae0d5f6a3e1ea04b8.tar.xz
Get NPCs to revert to the correct 'resting' animation (e.g. stand or hover) after finishing their movement. This also fixes judder after an avatar has finished "go here"/autopilot movement in a viewer.
This meant reseting the SP.AgentControlFlags since the Animator uses these to determine the correct default animation.
Diffstat (limited to 'OpenSim/Region/OptionalModules/World/NPC')
-rw-r--r--OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs8
-rw-r--r--OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs1
2 files changed, 4 insertions, 5 deletions
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
index f38af46..0e313df 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
@@ -95,11 +95,9 @@ namespace OpenSim.Region.OptionalModules.World.NPC
95// } 95// }
96 } 96 }
97 97
98 // FIXME: This doesn't work 98// m_log.DebugFormat(
99 if (presence.PhysicsActor.Flying) 99// "[NPC MODULE]: AgentControlFlags {0}, MovementFlag {1} for {2}",
100 presence.Animator.TrySetMovementAnimation("HOVER"); 100// presence.AgentControlFlags, presence.MovementFlag, presence.Name);
101 else
102 presence.Animator.TrySetMovementAnimation("STAND");
103 } 101 }
104 else 102 else
105 { 103 {
diff --git a/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs b/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs
index d220fab..2742b67 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs
@@ -131,6 +131,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC.Tests
131 double distanceToTarget = Util.GetDistanceTo(npc.AbsolutePosition, targetPos); 131 double distanceToTarget = Util.GetDistanceTo(npc.AbsolutePosition, targetPos);
132 Assert.That(distanceToTarget, Is.LessThan(1), "NPC not within 1 unit of target position on first move"); 132 Assert.That(distanceToTarget, Is.LessThan(1), "NPC not within 1 unit of target position on first move");
133 Assert.That(npc.AbsolutePosition, Is.EqualTo(targetPos)); 133 Assert.That(npc.AbsolutePosition, Is.EqualTo(targetPos));
134 Assert.That(npc.AgentControlFlags, Is.EqualTo((uint)AgentManager.ControlFlags.NONE));
134 135
135 // Try a second movement 136 // Try a second movement
136 startPos = npc.AbsolutePosition; 137 startPos = npc.AbsolutePosition;