diff options
| author | Jeremy <Golrag@users.noreply.github.com> | 2024-10-20 23:56:55 +0200 |
|---|---|---|
| committer | ModoX <moardox@gmail.com> | 2024-10-21 00:30:20 +0200 |
| commit | 0535a61cb7c9da97f05e5867ce181d91e3dd92eb (patch) | |
| tree | 63a3357adc6e6dd104ed5c43f78d948a9456a56e /src/server/game/Entities | |
| parent | c45cd444efa65842419c8c90fcedcf6dbd731027 (diff) | |
Core/GameObject: Implemented OnFlagTaken/OnFlagDropped hooks for GAMEOBJECT_TYPE_FLAGSTAND
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index eb48c74b1fa..3b7724ee26f 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -3491,8 +3491,21 @@ void GameObject::Use(Unit* user) SpellCastResult castResult = CastSpell(user, spellId); if (castResult == SPELL_FAILED_SUCCESS) { - if (GetGoType() == GAMEOBJECT_TYPE_NEW_FLAG) - HandleCustomTypeCommand(GameObjectType::SetNewFlagState(FlagState::Taken, user->ToPlayer())); + switch (GetGoType()) + { + case GAMEOBJECT_TYPE_NEW_FLAG: + HandleCustomTypeCommand(GameObjectType::SetNewFlagState(FlagState::Taken, user->ToPlayer())); + break; + case GAMEOBJECT_TYPE_FLAGSTAND: + SetFlag(GO_FLAG_IN_USE); + if (ZoneScript* zonescript = GetZoneScript()) + zonescript->OnFlagTaken(this, Object::ToPlayer(user)); + + Delete(); + break; + default: + break; + } } } } |
