diff options
author | ccrs <ccrs@users.noreply.github.com> | 2021-06-03 15:01:47 +0200 |
---|---|---|
committer | ccrs <ccrs@users.noreply.github.com> | 2021-06-03 15:01:47 +0200 |
commit | 303e01c834d5edd1336a005a0ecf58cc82cfee1b (patch) | |
tree | ef257e327059b662d99a03063692598b526f474a | |
parent | e7e47866066f0b318c986c355dc4476b5948e622 (diff) |
Core/Movement: remove redundant method MovementGenerator::NotifyAIOnFinalize and use existing Finalize - MovementInform implementation
6fde051e4e52d98d1a6cf31b8ad3fcf95e0e83fd follow up
-rw-r--r-- | src/server/game/AI/CoreAI/PassiveAI.cpp | 2 | ||||
-rw-r--r-- | src/server/game/AI/CoreAI/PassiveAI.h | 2 | ||||
-rw-r--r-- | src/server/game/AI/CoreAI/UnitAI.h | 2 | ||||
-rw-r--r-- | src/server/game/Movement/MotionMaster.cpp | 5 | ||||
-rw-r--r-- | src/server/game/Movement/MovementGenerator.cpp | 6 | ||||
-rwxr-xr-x | src/server/game/Movement/MovementGenerator.h | 2 | ||||
-rw-r--r-- | src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp | 9 |
7 files changed, 10 insertions, 18 deletions
diff --git a/src/server/game/AI/CoreAI/PassiveAI.cpp b/src/server/game/AI/CoreAI/PassiveAI.cpp index c896aa0335e..8deb2801f75 100644 --- a/src/server/game/AI/CoreAI/PassiveAI.cpp +++ b/src/server/game/AI/CoreAI/PassiveAI.cpp @@ -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); diff --git a/src/server/game/AI/CoreAI/PassiveAI.h b/src/server/game/AI/CoreAI/PassiveAI.h index 9bc651e38d6..e24eb48fbea 100644 --- a/src/server/game/AI/CoreAI/PassiveAI.h +++ b/src/server/game/AI/CoreAI/PassiveAI.h @@ -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); }; diff --git a/src/server/game/AI/CoreAI/UnitAI.h b/src/server/game/AI/CoreAI/UnitAI.h index 4504c87c2ec..06fbcb7937b 100644 --- a/src/server/game/AI/CoreAI/UnitAI.h +++ b/src/server/game/AI/CoreAI/UnitAI.h @@ -334,8 +334,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: diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp index 2a45220a2a7..cea4533136f 100644 --- a/src/server/game/Movement/MotionMaster.cpp +++ b/src/server/game/Movement/MotionMaster.cpp @@ -1148,10 +1148,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)) @@ -1196,7 +1193,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); } @@ -1207,7 +1203,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); } diff --git a/src/server/game/Movement/MovementGenerator.cpp b/src/server/game/Movement/MovementGenerator.cpp index 107af448807..1745e28ba95 100644 --- a/src/server/game/Movement/MovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerator.cpp @@ -58,9 +58,3 @@ MovementGenerator* WaypointMovementFactory::Create(Unit* /*object*/) const { return new WaypointMovementGenerator<Creature>(); } - -void MovementGenerator::NotifyAIOnFinalize(Unit* object) -{ - if (UnitAI* ai = object->GetAI()) - ai->OnMovementGeneratorFinalized(GetMovementGeneratorType()); -} diff --git a/src/server/game/Movement/MovementGenerator.h b/src/server/game/Movement/MovementGenerator.h index 32b3cca87ee..24585c4e77f 100755 --- a/src/server/game/Movement/MovementGenerator.h +++ b/src/server/game/Movement/MovementGenerator.h @@ -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; } diff --git a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp index 2f441e41534..cf724b38f88 100644 --- a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp @@ -250,7 +250,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) @@ -266,6 +266,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 |