diff options
author | Justin Clark-Casey (justincc) | 2011-08-11 01:56:42 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-08-11 01:56:42 +0100 |
commit | 4402851b086e7faf0d441d2ae0d5f6a3e1ea04b8 (patch) | |
tree | ff44ea86dfd8ba586ae4439728ef26341085691a /OpenSim/Region/OptionalModules/World/NPC | |
parent | If SP.MoveToTarget has been called with a force walk, begin by landing the av... (diff) | |
download | opensim-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.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/OptionalModules/World/NPC/Tests/NPCModuleTests.cs | 1 |
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; |