Core/Movegen: Added missing part in ChaseMovementgenerator and minor logic fix in MotionMaster::MoveJump()
This commit is contained in:
@@ -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();
|
||||||
|
if (i_owner->GetTypeId() == TYPEID_PLAYER)
|
||||||
Mutate(new EffectMovementGenerator(id), MOTION_SLOT_CONTROLLED);
|
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); }
|
||||||
|
|||||||
Reference in New Issue
Block a user