aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rwxr-xr-xsrc/server/game/Spells/SpellEffects.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 60d3fe5704c..a1406a5ab18 100755
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -2631,12 +2631,19 @@ void Spell::EffectEnergizePct(SpellEffIndex effIndex)
void Spell::SendLoot(uint64 guid, LootType loottype)
{
- Player* player = (Player*)m_caster;
+ Player* player = m_caster->ToPlayer();
if (!player)
return;
if (gameObjTarget)
{
+ // special case, already has GossipHello inside so return and avoid calling twice
+ if (gameObjTarget->GetGoType() == GAMEOBJECT_TYPE_GOOBER)
+ {
+ gameObjTarget->Use(m_caster);
+ return;
+ }
+
if (sScriptMgr->OnGossipHello(player, gameObjTarget))
return;
@@ -2662,10 +2669,6 @@ void Spell::SendLoot(uint64 guid, LootType loottype)
gameObjTarget->TriggeringLinkedGameObject(trapEntry,m_caster);
return;
- case GAMEOBJECT_TYPE_GOOBER:
- gameObjTarget->Use(m_caster);
- return;
-
case GAMEOBJECT_TYPE_CHEST:
// TODO: possible must be moved to loot release (in different from linked triggering)
if (gameObjTarget->GetGOInfo()->chest.eventId)