rendered paste body#include "PointMovementGenerator.h"
#include "Errors.h"
#include "Creature.h"
#include "CreatureAI.h"
#include "MapManager.h"
#include "DestinationHolderImp.h"
//----- Point Movement Generator
void PointMovementGenerator<Creature>::MovementInform(Creature &unit)
{
unit.AI()->MovementInform(POINT_MOTION_TYPE, id);
}
bool PointMovementGenerator<Creature>::Update(Creature &unit, const uint32 &diff)
{
if(!&unit)
return false;
if(unit.hasUnitState(UNIT_STAT_ROOT | UNIT_STAT_STUNDED))
return true;
Traveller<Creature> traveller(unit);
i_destinationHolder.UpdateTraveller(traveller, diff, false);
if(i_destinationHolder.HasArrived())
{
unit.StopMoving();
MovementInform(unit);
return false;
}
return true;
}
void PointMovementGenerator<Creature>::Initialize(Creature &unit)
{
unit.StopMoving();
Traveller<Creature> traveller(unit);
i_destinationHolder.SetDestination(traveller,x,y,z);
}