mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Movement: remove redundant method MovementGenerator::NotifyAIOnFinalize and use existing Finalize - MovementInform implementation
6fde051e4efollow up (cherry picked from commit303e01c834)
This commit is contained in:
@@ -79,7 +79,7 @@ void CritterAI::JustEngagedWith(Unit* /*who*/)
|
||||
me->SetControlled(true, UNIT_STATE_FLEEING);
|
||||
}
|
||||
|
||||
void CritterAI::OnMovementGeneratorFinalized(MovementGeneratorType type)
|
||||
void CritterAI::MovementInform(uint32 type, uint32 id)
|
||||
{
|
||||
if (type == TIMED_FLEEING_MOTION_TYPE)
|
||||
EnterEvadeMode(EVADE_REASON_OTHER);
|
||||
|
||||
@@ -75,7 +75,7 @@ class TC_GAME_API CritterAI : public PassiveAI
|
||||
void JustEngagedWith(Unit* /*who*/) override;
|
||||
void EnterEvadeMode(EvadeReason why) override;
|
||||
|
||||
void OnMovementGeneratorFinalized(MovementGeneratorType type) override;
|
||||
void MovementInform(uint32 type, uint32 id) override;
|
||||
|
||||
static int32 Permissible(Creature const* creature);
|
||||
};
|
||||
|
||||
@@ -333,8 +333,6 @@ class TC_GAME_API UnitAI
|
||||
// Called when a game event starts or ends
|
||||
virtual void OnGameEvent(bool /*start*/, uint16 /*eventId*/) { }
|
||||
|
||||
virtual void OnMovementGeneratorFinalized(MovementGeneratorType /*type*/) { }
|
||||
|
||||
virtual std::string GetDebugInfo() const;
|
||||
|
||||
private:
|
||||
|
||||
@@ -1204,10 +1204,7 @@ void MotionMaster::DirectAdd(MovementGenerator* movement, MovementSlot slot/* =
|
||||
{
|
||||
case MOTION_SLOT_DEFAULT:
|
||||
if (_defaultGenerator)
|
||||
{
|
||||
_defaultGenerator->Finalize(_owner, _generators.empty(), false);
|
||||
_defaultGenerator->NotifyAIOnFinalize(_owner);
|
||||
}
|
||||
|
||||
_defaultGenerator = MovementGeneratorPointer(movement);
|
||||
if (IsStatic(movement))
|
||||
@@ -1252,7 +1249,6 @@ void MotionMaster::Delete(MovementGenerator* movement, bool active, bool movemen
|
||||
movement->Priority, movement->Flags, movement->BaseUnitState, movement->GetMovementGeneratorType(), _owner->GetGUID().ToString().c_str());
|
||||
|
||||
movement->Finalize(_owner, active, movementInform);
|
||||
movement->NotifyAIOnFinalize(_owner);
|
||||
ClearBaseUnitState(movement);
|
||||
MovementGeneratorPointerDeleter(movement);
|
||||
}
|
||||
@@ -1263,7 +1259,6 @@ void MotionMaster::DeleteDefault(bool active, bool movementInform)
|
||||
_defaultGenerator->Priority, _defaultGenerator->Flags, _defaultGenerator->BaseUnitState, _defaultGenerator->GetMovementGeneratorType(), _owner->GetGUID().ToString().c_str());
|
||||
|
||||
_defaultGenerator->Finalize(_owner, active, movementInform);
|
||||
_defaultGenerator->NotifyAIOnFinalize(_owner);
|
||||
_defaultGenerator = MovementGeneratorPointer(GetIdleMovementGenerator());
|
||||
AddFlag(MOTIONMASTER_FLAG_STATIC_INITIALIZATION_PENDING);
|
||||
}
|
||||
|
||||
@@ -59,9 +59,3 @@ MovementGenerator* WaypointMovementFactory::Create(Unit* /*object*/) const
|
||||
{
|
||||
return new WaypointMovementGenerator<Creature>();
|
||||
}
|
||||
|
||||
void MovementGenerator::NotifyAIOnFinalize(Unit* object)
|
||||
{
|
||||
if (UnitAI* ai = object->GetAI())
|
||||
ai->OnMovementGeneratorFinalized(GetMovementGeneratorType());
|
||||
}
|
||||
|
||||
@@ -69,8 +69,6 @@ class TC_GAME_API MovementGenerator
|
||||
// used by Evade code for select point to evade with expected restart default movement
|
||||
virtual bool GetResetPosition(Unit*, float&/* x*/, float&/* y*/, float&/* z*/) { return false; }
|
||||
|
||||
virtual void NotifyAIOnFinalize(Unit*);
|
||||
|
||||
void AddFlag(uint16 const flag) { Flags |= flag; }
|
||||
bool HasFlag(uint16 const flag) const { return (Flags & flag) != 0; }
|
||||
void RemoveFlag(uint16 const flag) { Flags &= ~flag; }
|
||||
|
||||
@@ -251,7 +251,7 @@ bool TimedFleeingMovementGenerator::Update(Unit* owner, uint32 diff)
|
||||
return FleeingMovementGenerator<Creature>::DoUpdate(owner->ToCreature(), diff);
|
||||
}
|
||||
|
||||
void TimedFleeingMovementGenerator::Finalize(Unit* owner, bool active, bool/* movementInform*/)
|
||||
void TimedFleeingMovementGenerator::Finalize(Unit* owner, bool active, bool movementInform)
|
||||
{
|
||||
AddFlag(MOVEMENTGENERATOR_FLAG_FINALIZED);
|
||||
if (!active)
|
||||
@@ -267,6 +267,13 @@ void TimedFleeingMovementGenerator::Finalize(Unit* owner, bool active, bool/* mo
|
||||
owner->ToCreature()->AI()->AttackStart(victim);
|
||||
}
|
||||
}
|
||||
|
||||
if (movementInform)
|
||||
{
|
||||
Creature* ownerCreature = owner->ToCreature();
|
||||
if (CreatureAI* AI = ownerCreature ? ownerCreature->AI() : nullptr)
|
||||
AI->MovementInform(TIMED_FLEEING_MOTION_TYPE, 0);
|
||||
}
|
||||
}
|
||||
|
||||
MovementGeneratorType TimedFleeingMovementGenerator::GetMovementGeneratorType() const
|
||||
|
||||
Reference in New Issue
Block a user