aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy <Golrag@users.noreply.github.com>2021-11-20 20:36:56 +0100
committerGitHub <noreply@github.com>2021-11-20 20:36:56 +0100
commit2a9940e17d4e943aa5d9b95f8f5b54783e14d7b2 (patch)
tree03ecd41d015c7f0a7db605152ec91c6bd38b555f
parente9e69ed978687768f607fad08aa6f0bafa9b2359 (diff)
Core/GameObject: Implement GameObject::Use case for GAMEOBJECT_TYPE_NEW_FLAG (#27267)
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp12
-rw-r--r--src/server/game/Spells/SpellEffects.cpp5
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);