Prevent crash when GetSummoner() is used.

--HG--
branch : trunk
This commit is contained in:
maanuel
2009-12-17 14:29:52 -03:00
parent ca3b2066ea
commit 6653394f8c
@@ -645,6 +645,7 @@ struct TRINITY_DLL_DECL npc_nesingwary_trapperAI : public ScriptedAI
go_caribou->SetLootState(GO_JUST_DEACTIVATED);
if (TempSummon *summon = (TempSummon*)m_creature)
if (summon->isSummon())
if (Unit *pTemp = summon->GetSummoner())
if (pTemp->GetTypeId() == TYPEID_PLAYER)
CAST_PLR(pTemp)->KilledMonsterCredit(m_creature->GetEntry(),0);
@@ -1307,6 +1308,7 @@ struct TRINITY_DLL_DECL npc_image_lich_kingAI : public ScriptedAI
if (uiType != POINT_MOTION_TYPE)
return;
if (m_creature->isSummon())
if (Unit* pSummoner = CAST_SUM(m_creature)->GetSummoner())
CAST_AI(npc_thassarianAI,CAST_CRE(pSummoner)->AI())->bArthasInPosition = true;
}
@@ -1332,6 +1334,7 @@ struct TRINITY_DLL_DECL npc_general_arlosAI : public ScriptedAI
m_creature->addUnitState(UNIT_STAT_STUNNED);
m_creature->CastSpell(m_creature, SPELL_STUN, true);
if (m_creature->isSummon())
if (Unit* pSummoner = CAST_SUM(m_creature)->GetSummoner())
CAST_AI(npc_thassarianAI,CAST_CRE(pSummoner)->AI())->bArlosInPosition = true;
}
@@ -1382,6 +1385,7 @@ struct TRINITY_DLL_DECL npc_counselor_talbotAI : public ScriptedAI
if(uiType != POINT_MOTION_TYPE)
return;
if (m_creature->isSummon())
if (Unit* pSummoner = CAST_SUM(m_creature)->GetSummoner())
CAST_AI(npc_thassarianAI,CAST_CRE(pSummoner)->AI())->bTalbotInPosition = true;
}
@@ -1481,6 +1485,7 @@ struct TRINITY_DLL_DECL npc_leryssaAI : public ScriptedAI
m_creature->addUnitState(UNIT_STAT_STUNNED);
m_creature->CastSpell(m_creature, SPELL_STUN, true);
if (m_creature->isSummon())
if (Unit* pSummoner = CAST_SUM(m_creature)->GetSummoner())
CAST_AI(npc_thassarianAI,CAST_CRE(pSummoner)->AI())->bLeryssaInPosition = true;
bDone = true;
@@ -1488,6 +1493,7 @@ struct TRINITY_DLL_DECL npc_leryssaAI : public ScriptedAI
else
{
m_creature->SetStandState(UNIT_STAND_STATE_SIT);
if (m_creature->isSummon())
if (Unit* pSummoner = CAST_SUM(m_creature)->GetSummoner())
pSummoner->SetStandState(UNIT_STAND_STATE_SIT);
Phase_Timer = 1500;
@@ -1504,6 +1510,7 @@ struct TRINITY_DLL_DECL npc_leryssaAI : public ScriptedAI
switch (Phase)
{
case 1:
if (m_creature->isSummon())
if (Unit* pThassarian = CAST_SUM(m_creature)->GetSummoner())
DoScriptText(SAY_THASSARIAN_4, pThassarian);
Phase_Timer = 5000;
@@ -1515,6 +1522,7 @@ struct TRINITY_DLL_DECL npc_leryssaAI : public ScriptedAI
++Phase;
break;
case 3:
if (m_creature->isSummon())
if (Unit* pThassarian = CAST_SUM(m_creature)->GetSummoner())
DoScriptText(SAY_THASSARIAN_5, pThassarian);
Phase_Timer = 5000;
@@ -1526,6 +1534,7 @@ struct TRINITY_DLL_DECL npc_leryssaAI : public ScriptedAI
++Phase;
break;
case 5:
if (m_creature->isSummon())
if (Unit* pThassarian = CAST_SUM(m_creature)->GetSummoner())
DoScriptText(SAY_THASSARIAN_6, pThassarian);
Phase_Timer = 5000;
@@ -1538,6 +1547,7 @@ struct TRINITY_DLL_DECL npc_leryssaAI : public ScriptedAI
++Phase;
break;
case 7:
if (m_creature->isSummon())
if (Unit* pThassarian = CAST_SUM(m_creature)->GetSummoner())
{
DoScriptText(SAY_THASSARIAN_7, pThassarian);