From f8c02aa69b4b3d5c011c5ed6dd47328325932cfe Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 20 Dec 2024 15:37:36 +0100 Subject: Core/Spells: Implemented SPELL_EFFECT_UPDATE_INTERACTIONS (cherry picked from commit ad06dcaaec6b55e3c2e6ae8214a44074f343c8ca) --- src/server/game/Spells/Spell.h | 1 + src/server/game/Spells/SpellEffects.cpp | 14 +++++++++++++- src/server/game/Spells/SpellInfo.cpp | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h index ed1719bb1fc..77123899228 100644 --- a/src/server/game/Spells/Spell.h +++ b/src/server/game/Spells/Spell.h @@ -427,6 +427,7 @@ class TC_GAME_API Spell void EffectModifyCooldownsByCategory(); void EffectModifySpellCharges(); void EffectTeleportGraveyard(); + void EffectUpdateInteractions(); void EffectActivateRune(); typedef std::unordered_set UsedSpellMods; diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 7ea4088a6bf..d74013183bf 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -390,7 +390,7 @@ NonDefaultConstructible SpellEffectHandlers[TOTAL_SPELL_EF &Spell::EffectNULL, //303 SPELL_EFFECT_CREATE_TRAIT_TREE_CONFIG &Spell::EffectNULL, //304 SPELL_EFFECT_CHANGE_ACTIVE_COMBAT_TRAIT_CONFIG &Spell::EffectNULL, //305 SPELL_EFFECT_305 - &Spell::EffectNULL, //306 SPELL_EFFECT_UPDATE_INTERACTIONS + &Spell::EffectUpdateInteractions, //306 SPELL_EFFECT_UPDATE_INTERACTIONS &Spell::EffectNULL, //307 SPELL_EFFECT_307 &Spell::EffectNULL, //308 SPELL_EFFECT_CANCEL_PRELOAD_WORLD &Spell::EffectNULL, //309 SPELL_EFFECT_PRELOAD_WORLD @@ -5901,6 +5901,18 @@ void Spell::EffectTeleportGraveyard() target->RepopAtGraveyard(); } +void Spell::EffectUpdateInteractions() +{ + if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET) + return; + + Player* target = Object::ToPlayer(unitTarget); + if (!target) + return; + + target->UpdateVisibleObjectInteractions(true, false, true, true); +} + void Spell::EffectAddComboPoints() { if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET) diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 5113c16fea1..7237bf123e6 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -1114,7 +1114,7 @@ std::array SpellEffectInfo::_d {EFFECT_IMPLICIT_TARGET_EXPLICIT, TARGET_OBJECT_TYPE_UNIT}, // 303 SPELL_EFFECT_CREATE_TRAIT_TREE_CONFIG {EFFECT_IMPLICIT_TARGET_EXPLICIT, TARGET_OBJECT_TYPE_UNIT}, // 304 SPELL_EFFECT_CHANGE_ACTIVE_COMBAT_TRAIT_CONFIG {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 305 SPELL_EFFECT_305 - {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 306 SPELL_EFFECT_UPDATE_INTERACTIONS + {EFFECT_IMPLICIT_TARGET_EXPLICIT, TARGET_OBJECT_TYPE_UNIT}, // 306 SPELL_EFFECT_UPDATE_INTERACTIONS {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 307 SPELL_EFFECT_307 {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 308 SPELL_EFFECT_CANCEL_PRELOAD_WORLD {EFFECT_IMPLICIT_TARGET_NONE, TARGET_OBJECT_TYPE_NONE}, // 309 SPELL_EFFECT_PRELOAD_WORLD -- cgit v1.2.3