void FollowMovementGenerator<Player>::Initialize(Player &owner) { owner.addUnitState(UNIT_STAT_FOLLOW|UNIT_STAT_FOLLOW_MOVE); _updateWalkMode(owner); _updateSpeed(owner); _setTargetLocation(owner); }
void FollowMovementGenerator<Creature>::Initialize(Creature &owner) { owner.addUnitState(UNIT_STAT_FOLLOW|UNIT_STAT_FOLLOW_MOVE); _updateWalkMode(owner); _updateSpeed(owner); if (((Creature*)&owner)->canFly()) owner.AddSplineFlag(SPLINEFLAG_UNKNOWN7); _setTargetLocation(owner); }
void FollowMovementGenerator<Creature>::Initialize(Creature &owner) { owner.addUnitState(UNIT_STAT_FOLLOW|UNIT_STAT_FOLLOW_MOVE); _updateWalkMode(owner); _updateSpeed(owner); _setTargetLocation(owner); float x,y,z; i_destinationHolder.GetDestination(x,y,z); if (owner.GetTypeId() == TYPEID_UNIT && ((Creature*)&owner)->canFly() && !(((Creature*)&owner)->canWalk() && ((Creature*)&owner)->IsAtGroundLevel(x,y,z))) owner.AddSplineFlag(SPLINEFLAG_UNKNOWN7); }
void FollowMovementGenerator<T>::Interrupt(T &owner) { owner.clearUnitState(UNIT_STAT_FOLLOW|UNIT_STAT_FOLLOW_MOVE); _updateWalkMode(owner); _updateSpeed(owner); }