Core/Movement: Prevent IdleMovementGenerator being put into MOTION_SLOT_IDLE and MOTION_SLOT_ACTIVE simultaneously

This commit is contained in:
Machiavelli
2012-01-13 16:43:49 +01:00
parent e9b243991e
commit 2293d2d7df
7 changed files with 12 additions and 11 deletions
+4 -5
View File
@@ -175,12 +175,11 @@ void MotionMaster::DelayedExpire()
--i_top;
}
void MotionMaster::MoveIdle(MovementSlot slot)
void MotionMaster::MoveIdle()
{
//if (empty() || !isStatic(top()))
// push(&si_idleMovement);
if (!isStatic(Impl[slot]))
Mutate(&si_idleMovement, slot);
//! Should be preceded by MovementExpired or Clear if there's an overlying movementgenerator active
if (empty() || !isStatic(top()))
Mutate(&si_idleMovement, MOTION_SLOT_IDLE);
}
void MotionMaster::MoveRandom(float spawndist)
+1 -1
View File
@@ -142,7 +142,7 @@ class MotionMaster //: private std::stack<MovementGenerator *>
DirectExpire(reset);
}
void MoveIdle(MovementSlot slot = MOTION_SLOT_ACTIVE);
void MoveIdle();
void MoveTargetedHome();
void MoveRandom(float spawndist = 0.0f);
void MoveFollow(Unit* target, float dist, float angle, MovementSlot slot = MOTION_SLOT_ACTIVE);