aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorJeremy <Golrag@users.noreply.github.com>2024-10-20 23:56:55 +0200
committerModoX <moardox@gmail.com>2024-10-21 00:30:20 +0200
commit0535a61cb7c9da97f05e5867ce181d91e3dd92eb (patch)
tree63a3357adc6e6dd104ed5c43f78d948a9456a56e /src/server/game/Entities
parentc45cd444efa65842419c8c90fcedcf6dbd731027 (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.cpp17
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;
+ }
}
}
}