diff options
| author | Shauren <shauren.trinity@gmail.com> | 2024-07-12 12:29:22 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2024-07-12 12:29:22 +0200 |
| commit | ec2631eca3a397dffd2e525b34c131c283beb167 (patch) | |
| tree | cd3fafd70074bf29af3e507b7e9dbd879fe9a2a4 /src/server/game/Maps | |
| parent | 9a7a83ef3074faaad037cfb4c098784695f49d30 (diff) | |
Core/Instances: New ZoneScript hook - OnCreatureGroupDepleted
* Triggers when the CreatureGroup no longer has any alive members (either last alive member dies or is removed from the group)
Diffstat (limited to 'src/server/game/Maps')
| -rw-r--r-- | src/server/game/Maps/ZoneScript.cpp | 7 | ||||
| -rw-r--r-- | src/server/game/Maps/ZoneScript.h | 12 |
2 files changed, 17 insertions, 2 deletions
diff --git a/src/server/game/Maps/ZoneScript.cpp b/src/server/game/Maps/ZoneScript.cpp index 03ddf65e6cb..599847d911a 100644 --- a/src/server/game/Maps/ZoneScript.cpp +++ b/src/server/game/Maps/ZoneScript.cpp @@ -19,6 +19,13 @@ #include "Creature.h" #include "GameEventSender.h" +ControlZoneHandler::ControlZoneHandler() = default; +ControlZoneHandler::ControlZoneHandler(ControlZoneHandler const& right) = default; +ControlZoneHandler::ControlZoneHandler(ControlZoneHandler&& right) noexcept = default; +ControlZoneHandler& ControlZoneHandler::operator=(ControlZoneHandler const& right) = default; +ControlZoneHandler& ControlZoneHandler::operator=(ControlZoneHandler&& right) noexcept = default; +ControlZoneHandler::~ControlZoneHandler() = default; + ZoneScript::ZoneScript() = default; ZoneScript::ZoneScript(ZoneScript const& right) = default; ZoneScript::ZoneScript(ZoneScript&& right) noexcept = default; diff --git a/src/server/game/Maps/ZoneScript.h b/src/server/game/Maps/ZoneScript.h index 3fd9e85aa19..8f37b2a3cf5 100644 --- a/src/server/game/Maps/ZoneScript.h +++ b/src/server/game/Maps/ZoneScript.h @@ -23,6 +23,7 @@ class AreaTrigger; class Creature; +class CreatureGroup; class GameObject; class Player; class Unit; @@ -41,8 +42,12 @@ enum class EncounterType : uint8 class TC_GAME_API ControlZoneHandler { public: - explicit ControlZoneHandler() = default; - virtual ~ControlZoneHandler() = default; + explicit ControlZoneHandler(); + ControlZoneHandler(ControlZoneHandler const& right); + ControlZoneHandler(ControlZoneHandler&& right) noexcept; + ControlZoneHandler& operator=(ControlZoneHandler const& right); + ControlZoneHandler& operator=(ControlZoneHandler&& right) noexcept; + virtual ~ControlZoneHandler(); virtual void HandleCaptureEventHorde([[maybe_unused]] GameObject* controlZone) { } virtual void HandleCaptureEventAlliance([[maybe_unused]] GameObject* controlZone) { } @@ -79,6 +84,9 @@ class TC_GAME_API ZoneScript virtual void OnUnitDeath([[maybe_unused]] Unit* unit) { } + // Triggers when the CreatureGroup no longer has any alive members (either last alive member dies or is removed from the group) + virtual void OnCreatureGroupDepleted([[maybe_unused]] CreatureGroup const* creatureGroup) { } + //All-purpose data storage ObjectGuid virtual ObjectGuid GetGuidData(uint32 /*DataId*/) const { return ObjectGuid::Empty; } virtual void SetGuidData(uint32 /*DataId*/, ObjectGuid /*Value*/) { } |
