diff options
author | megamage <none@none> | 2009-01-08 09:43:50 -0600 |
---|---|---|
committer | megamage <none@none> | 2009-01-08 09:43:50 -0600 |
commit | e86712bb6d613d16e9e681309295dccf5ea8dd05 (patch) | |
tree | b4bc16b5c899ca6a543e191fdf86bccc4e9c67f1 /src | |
parent | 3df72ce46112e0cc99d25b7f44794c009c224f24 (diff) |
*Fix a crash caused by using item.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp | 4 | ||||
-rw-r--r-- | src/game/Spell.cpp | 3 | ||||
-rw-r--r-- | src/game/Unit.cpp | 2 |
3 files changed, 5 insertions, 4 deletions
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp index 356fd85ef68..461f41de6eb 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp @@ -116,7 +116,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI if (ohealth <= 0) { pOtherBoss->setDeathState(JUST_DIED); - pOtherBoss->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + pOtherBoss->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); } } } @@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI { pOtherBoss->SetHealth(0); pOtherBoss->setDeathState(JUST_DIED); - pOtherBoss->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + pOtherBoss->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); ((boss_twinemperorsAI *)pOtherBoss->AI())->DontYellWhenDead = true; } if (!DontYellWhenDead) // I hope AI is not threaded diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 9513149be89..539a5480aeb 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -2090,7 +2090,8 @@ void Spell::prepare(SpellCastTargets * targets, Aura* triggeredByAura) // set timer base at cast time ReSetTimer(); - if(m_IsTriggeredSpell || !m_casttime && !m_spellInfo->StartRecoveryTime && GetCurrentContainer() == CURRENT_GENERIC_SPELL) + //item: first cast may destroy item and second cast causes crash + if(m_IsTriggeredSpell || !m_casttime && !m_spellInfo->StartRecoveryTime && !m_castItemGUID && GetCurrentContainer() == CURRENT_GENERIC_SPELL) cast(true); else { diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index fc76eadfe45..85f13097a14 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -641,7 +641,7 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa CreatureInfo const* cInfo = ((Creature*)pVictim)->GetCreatureInfo(); if(cInfo && cInfo->lootid) - pVictim->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); + pVictim->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); // some critters required for quests if(GetTypeId() == TYPEID_PLAYER) |