Fix bug that creatures which use FleeingMovementGenerator would not attack after respawning.
Bug was caused by improper react state --HG-- branch : trunk
This commit is contained in:
@@ -410,13 +410,7 @@ bool Creature::UpdateEntry(uint32 Entry, uint32 team, const CreatureData *data)
|
||||
if (isTrigger())
|
||||
SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
|
||||
if (isTotem() || isTrigger()
|
||||
|| GetCreatureType() == CREATURE_TYPE_CRITTER)
|
||||
SetReactState(REACT_PASSIVE);
|
||||
/*else if (isCivilian())
|
||||
SetReactState(REACT_DEFENSIVE);*/
|
||||
else
|
||||
SetReactState(REACT_AGGRESSIVE);
|
||||
InitializeReactState();
|
||||
|
||||
if (cInfo->flags_extra & CREATURE_FLAG_EXTRA_NO_TAUNT)
|
||||
{
|
||||
@@ -1602,6 +1596,9 @@ void Creature::Respawn(bool force)
|
||||
uint16 poolid = GetDBTableGUIDLow() ? poolhandler.IsPartOfAPool<Creature>(GetDBTableGUIDLow()) : 0;
|
||||
if (poolid)
|
||||
poolhandler.UpdatePool<Creature>(poolid, GetDBTableGUIDLow());
|
||||
|
||||
//Re-initialize reactstate that could be altered by movementgenerators
|
||||
InitializeReactState();
|
||||
}
|
||||
|
||||
UpdateObjectVisibility();
|
||||
|
||||
@@ -428,9 +428,20 @@ class Creature : public Unit, public GridObject<Creature>
|
||||
bool canWalk() const { return GetCreatureInfo()->InhabitType & INHABIT_GROUND; }
|
||||
bool canSwim() const { return GetCreatureInfo()->InhabitType & INHABIT_WATER; }
|
||||
//bool canFly() const { return GetCreatureInfo()->InhabitType & INHABIT_AIR; }
|
||||
|
||||
void SetReactState(ReactStates st) { m_reactState = st; }
|
||||
ReactStates GetReactState() { return m_reactState; }
|
||||
bool HasReactState(ReactStates state) const { return (m_reactState == state); }
|
||||
void InitializeReactState()
|
||||
{
|
||||
if (isTotem() || isTrigger() || GetCreatureType() == CREATURE_TYPE_CRITTER)
|
||||
SetReactState(REACT_PASSIVE);
|
||||
else
|
||||
SetReactState(REACT_AGGRESSIVE);
|
||||
/*else if (isCivilian())
|
||||
SetReactState(REACT_DEFENSIVE);*/;
|
||||
}
|
||||
|
||||
///// TODO RENAME THIS!!!!!
|
||||
bool isCanTrainingOf(Player* player, bool msg) const;
|
||||
bool isCanInteractWithBattleMaster(Player* player, bool msg) const;
|
||||
|
||||
Reference in New Issue
Block a user