All pastes #982912 Raw Edit

Unnamed

public text v1 · immutable
·published 2008-04-12 22:21 UTC
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);
}