Core/Movegen: Added missing part in ChaseMovementgenerator and minor logic fix in MotionMaster::MoveJump()

This commit is contained in:
Chaplain
2012-01-18 18:42:25 +03:00
parent 86104943cb
commit accea2b44e
3 changed files with 19 additions and 2 deletions
+4 -1
View File
@@ -365,7 +365,10 @@ void MotionMaster::MoveJump(float x, float y, float z, float speedXY, float spee
init.SetParabolic(max_height,0); init.SetParabolic(max_height,0);
init.SetVelocity(speedXY); init.SetVelocity(speedXY);
init.Launch(); init.Launch();
Mutate(new EffectMovementGenerator(id), MOTION_SLOT_CONTROLLED); if (i_owner->GetTypeId() == TYPEID_PLAYER)
Mutate(new EffectMovementGenerator(id), MOTION_SLOT_CONTROLLED);
else
Mutate(new EffectMovementGenerator(id), MOTION_SLOT_ACTIVE);
} }
void MotionMaster::MoveFall(uint32 id/*=0*/) void MotionMaster::MoveFall(uint32 id/*=0*/)
@@ -211,6 +211,19 @@ void ChaseMovementGenerator<T>::Reset(T &owner)
Initialize(owner); Initialize(owner);
} }
template<class T>
void ChaseMovementGenerator<T>::MovementInform(T & /*unit*/)
{
}
template<>
void ChaseMovementGenerator<Creature>::MovementInform(Creature &unit)
{
// Pass back the GUIDLow of the target. If it is pet's owner then PetAI will handle
if (unit.AI())
unit.AI()->MovementInform(CHASE_MOTION_TYPE, i_target.getTarget()->GetGUIDLow());
}
//-----------------------------------------------// //-----------------------------------------------//
template<> template<>
bool FollowMovementGenerator<Creature>::EnableWalking() const bool FollowMovementGenerator<Creature>::EnableWalking() const
@@ -300,6 +313,7 @@ template void ChaseMovementGenerator<Player>::Finalize(Player &);
template void ChaseMovementGenerator<Creature>::Finalize(Creature &); template void ChaseMovementGenerator<Creature>::Finalize(Creature &);
template void ChaseMovementGenerator<Player>::Reset(Player &); template void ChaseMovementGenerator<Player>::Reset(Player &);
template void ChaseMovementGenerator<Creature>::Reset(Creature &); template void ChaseMovementGenerator<Creature>::Reset(Creature &);
template void ChaseMovementGenerator<Player>::MovementInform(Player &unit);
template void FollowMovementGenerator<Player>::Finalize(Player &); template void FollowMovementGenerator<Player>::Finalize(Player &);
template void FollowMovementGenerator<Creature>::Finalize(Creature &); template void FollowMovementGenerator<Creature>::Finalize(Creature &);
@@ -76,7 +76,7 @@ class ChaseMovementGenerator : public TargetedMovementGeneratorMedium<T, ChaseMo
void Initialize(T &); void Initialize(T &);
void Finalize(T &); void Finalize(T &);
void Reset(T &); void Reset(T &);
void MovementInform(T &){} void MovementInform(T &);
static void _clearUnitStateMove(T &u) { u.ClearUnitState(UNIT_STAT_CHASE_MOVE); } static void _clearUnitStateMove(T &u) { u.ClearUnitState(UNIT_STAT_CHASE_MOVE); }
static void _addUnitStateMove(T &u) { u.AddUnitState(UNIT_STAT_CHASE_MOVE); } static void _addUnitStateMove(T &u) { u.AddUnitState(UNIT_STAT_CHASE_MOVE); }