aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorccrs <ccrs@users.noreply.github.com>2021-06-03 15:01:47 +0200
committerccrs <ccrs@users.noreply.github.com>2021-06-03 15:01:47 +0200
commit303e01c834d5edd1336a005a0ecf58cc82cfee1b (patch)
treeef257e327059b662d99a03063692598b526f474a
parente7e47866066f0b318c986c355dc4476b5948e622 (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.cpp2
-rw-r--r--src/server/game/AI/CoreAI/PassiveAI.h2
-rw-r--r--src/server/game/AI/CoreAI/UnitAI.h2
-rw-r--r--src/server/game/Movement/MotionMaster.cpp5
-rw-r--r--src/server/game/Movement/MovementGenerator.cpp6
-rwxr-xr-xsrc/server/game/Movement/MovementGenerator.h2
-rw-r--r--src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp9
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