[11780] fix the issue that HomeMovementGenerator finalize code wasn't executed in real meaning

This commit is contained in:
SilverIce 2011-08-12 17:18:11 +03:00
parent 50e7fbbf5e
commit f572279a61
3 changed files with 7 additions and 6 deletions

View file

@ -50,17 +50,19 @@ void HomeMovementGenerator<Creature>::_setTargetLocation(Creature & owner)
init.SetWalk(false);
init.Launch();
arrived = false;
owner.clearUnitState(UNIT_STAT_ALL_STATE);
}
bool HomeMovementGenerator<Creature>::Update(Creature &owner, const uint32& time_diff)
{
return !owner.movespline->Finalized();
arrived = owner.movespline->Finalized();
return !arrived;
}
void HomeMovementGenerator<Creature>::Finalize(Creature& owner)
{
if (i_travel_timer == 0)
if (arrived)
{
if (owner.GetTemporaryFactionFlags() & TEMPFACTION_RESTORE_REACH_HOME)
owner.ClearTemporaryFaction();

View file

@ -32,7 +32,7 @@ class MANGOS_DLL_SPEC HomeMovementGenerator<Creature>
{
public:
HomeMovementGenerator() {}
HomeMovementGenerator() : arrived(false) {}
~HomeMovementGenerator() {}
void Initialize(Creature &);
@ -40,11 +40,10 @@ class MANGOS_DLL_SPEC HomeMovementGenerator<Creature>
void Interrupt(Creature &) {}
void Reset(Creature &);
bool Update(Creature &, const uint32 &);
void modifyTravelTime(uint32 travel_time) { i_travel_timer = travel_time; }
MovementGeneratorType GetMovementGeneratorType() const { return HOME_MOTION_TYPE; }
private:
void _setTargetLocation(Creature &);
uint32 i_travel_timer;
bool arrived;
};
#endif

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "11779"
#define REVISION_NR "11780"
#endif // __REVISION_NR_H__