[6893] Fixes in waypoint movement code.

Initilize variables and reset last movment timer for correct waypoints work at reset movement.
This commit is contained in:
VladimirMangos 2008-12-10 18:06:37 +03:00
parent 2e2055c469
commit 477ba70782
2 changed files with 11 additions and 5 deletions

View file

@ -73,10 +73,8 @@ class MANGOS_DLL_SPEC WaypointMovementGenerator<Creature>
: public MovementGeneratorMedium< Creature, WaypointMovementGenerator<Creature> >, : public MovementGeneratorMedium< Creature, WaypointMovementGenerator<Creature> >,
public PathMovementBase<Creature, WaypointPath*> public PathMovementBase<Creature, WaypointPath*>
{ {
TimeTrackerSmall i_nextMoveTime;
std::vector<bool> i_hasDone;
public: public:
WaypointMovementGenerator(Creature &) : i_nextMoveTime(0) {} WaypointMovementGenerator(Creature &) : i_nextMoveTime(0), b_StopedByPlayer(false) {}
~WaypointMovementGenerator() { ClearWaypoints(); } ~WaypointMovementGenerator() { ClearWaypoints(); }
void Initialize(Creature &u) void Initialize(Creature &u)
{ {
@ -85,7 +83,12 @@ public PathMovementBase<Creature, WaypointPath*>
LoadPath(u); LoadPath(u);
} }
void Finalize(Creature &) {} void Finalize(Creature &) {}
void Reset(Creature &u) { ReloadPath(u); } void Reset(Creature &u)
{
ReloadPath(u);
b_StopedByPlayer = false;
i_nextMoveTime.Reset(0);
}
bool Update(Creature &u, const uint32 &diff); bool Update(Creature &u, const uint32 &diff);
void MovementInform(Creature &); void MovementInform(Creature &);
@ -104,6 +107,9 @@ public PathMovementBase<Creature, WaypointPath*>
static void Initialize(void); static void Initialize(void);
private: private:
void ClearWaypoints(); void ClearWaypoints();
TimeTrackerSmall i_nextMoveTime;
std::vector<bool> i_hasDone;
bool b_StopedByPlayer; bool b_StopedByPlayer;
}; };

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "6892" #define REVISION_NR "6893"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__