diff options
author | Jeremy <Golrag@users.noreply.github.com> | 2021-11-20 20:36:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-20 20:36:56 +0100 |
commit | 2a9940e17d4e943aa5d9b95f8f5b54783e14d7b2 (patch) | |
tree | 03ecd41d015c7f0a7db605152ec91c6bd38b555f | |
parent | e9e69ed978687768f607fad08aa6f0bafa9b2359 (diff) |
Core/GameObject: Implement GameObject::Use case for GAMEOBJECT_TYPE_NEW_FLAG (#27267)
-rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 12 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 5 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 999ecab0538..3347a2e6c7f 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -2134,6 +2134,18 @@ void GameObject::Use(Unit* user) player->SetStandState(UnitStandStateType(UNIT_STAND_STATE_SIT_LOW_CHAIR + info->barberChair.chairheight), info->barberChair.SitAnimKit); return; } + case GAMEOBJECT_TYPE_NEW_FLAG: + { + GameObjectTemplate const* info = GetGOInfo(); + if (!info) + return; + + if (user->GetTypeId() != TYPEID_PLAYER) + return; + + spellId = info->newflag.pickupSpell; + break; + } case GAMEOBJECT_TYPE_ITEM_FORGE: { GameObjectTemplate const* info = GetGOInfo(); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index a367c246e60..a2d49c6150c 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1673,6 +1673,11 @@ void Spell::EffectOpenLock() return; } } + else if (goInfo->type == GAMEOBJECT_TYPE_NEW_FLAG) + { + gameObjTarget->Use(player); + return; + } else if (m_spellInfo->Id == 1842 && gameObjTarget->GetGOInfo()->type == GAMEOBJECT_TYPE_TRAP && gameObjTarget->GetOwner()) { gameObjTarget->SetLootState(GO_JUST_DEACTIVATED); |