diff options
author | Treeston <treeston.mmoc@gmail.com> | 2018-06-26 12:15:57 +0200 |
---|---|---|
committer | Treeston <treeston.mmoc@gmail.com> | 2018-06-26 12:15:57 +0200 |
commit | c0a7274ff148b35577bf8c57320142bb08e10710 (patch) | |
tree | 98d97f814f47ea541770bb8c11678b00560e942c /src | |
parent | d4beeb875ff56127c185078dff06d81775c55456 (diff) |
Core/AI: Add a new LeavingWorld AI hook
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/AI/CoreAI/UnitAI.h | 3 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/AI/CoreAI/UnitAI.h b/src/server/game/AI/CoreAI/UnitAI.h index b0a651da0d7..5b2071b9d8d 100644 --- a/src/server/game/AI/CoreAI/UnitAI.h +++ b/src/server/game/AI/CoreAI/UnitAI.h @@ -283,6 +283,9 @@ class TC_GAME_API UnitAI // Called when the unit leaves combat virtual void JustExitedCombat() { } + // Called when the unit is about to be removed from the world (despawn, grid unload, corpse disappearing, player logging out etc.) + virtual void LeavingWorld() { } + // Called at any Damage to any victim (before damage apply) virtual void DamageDealt(Unit* /*victim*/, uint32& /*damage*/, DamageEffectType /*damageType*/) { } diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 6e8a96d72f2..09f5ef01a5e 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -9424,6 +9424,9 @@ void Unit::RemoveFromWorld() if (IsInWorld()) { m_duringRemoveFromWorld = true; + if (IsAIEnabled) + GetAI()->LeavingWorld(); + if (IsVehicle()) RemoveVehicleKit(); |