aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnubisss <none@none>2009-08-22 03:05:26 +0200
committerAnubisss <none@none>2009-08-22 03:05:26 +0200
commita2adb972635f1b05c98e204fb2fde1f2ab3f15f6 (patch)
treefcf12b5617edd54af73a08a14d42c1aa183bb510 /src
parent54b15e0d7d82e55f48ec0c6dada455bcfdeec265 (diff)
*Add some checks to avoid crashes if ScriptedInstance is NULL.
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/blackrock_depths/blackrock_depths.cpp6
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/deadmines/deadmines.cpp4
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_netherspite.cpp4
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_nightbane.cpp21
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_terestian_illhoof.cpp2
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/karazhan/karazhan.cpp4
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_felblood_kaelthas.cpp3
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_priestess_delrissa.cpp2
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_selin_fireheart.cpp2
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_vexallus.cpp2
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/molten_core/boss_majordomo_executus.cpp7
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/molten_core/boss_sulfuron_harbinger.cpp13
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/scarlet_monastery/boss_headless_horseman.cpp2
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_doctor_theolen_krastinov.cpp2
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_illucia_barov.cpp2
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_instructor_malicia.cpp2
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_lord_alexei_barov.cpp2
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_lorekeeper_polkelt.cpp2
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_the_ravenian.cpp2
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/shadowfang_keep/shadowfang_keep.cpp2
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/stratholme/boss_magistrate_barthilas.cpp7
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_brutallus.cpp9
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_eredar_twins.cpp8
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_felmyst.cpp9
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_kalecgos.cpp4
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_kiljaeden.cpp60
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_muru.cpp23
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/uldaman/boss_archaedas.cpp20
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/zulaman/zulaman.cpp2
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/zulgurub/boss_arlokk.cpp2
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/zulgurub/boss_jindo.cpp16
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/zulgurub/boss_venoxis.cpp1
-rw-r--r--src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp2
-rw-r--r--src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/dark_portal.cpp4
-rw-r--r--src/bindings/scripts/scripts/kalimdor/caverns_of_time/hyjal/hyjalAI.cpp12
-rw-r--r--src/bindings/scripts/scripts/kalimdor/caverns_of_time/hyjal/hyjal_trash.cpp3
-rw-r--r--src/bindings/scripts/scripts/kalimdor/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp15
-rw-r--r--src/bindings/scripts/scripts/kalimdor/razorfen_kraul/razorfen_kraul.cpp1
-rw-r--r--src/bindings/scripts/scripts/kalimdor/temple_of_ahnqiraj/boss_skeram.cpp3
-rw-r--r--src/bindings/scripts/scripts/kalimdor/temple_of_ahnqiraj/boss_twinemperors.cpp15
-rw-r--r--src/bindings/scripts/scripts/kalimdor/wailing_caverns/wailing_caverns.cpp9
-rw-r--r--src/bindings/scripts/scripts/northrend/nexus/nexus/boss_anomalus.cpp4
-rw-r--r--src/bindings/scripts/scripts/northrend/nexus/nexus/boss_keristrasza.cpp5
-rw-r--r--src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp6
-rw-r--r--src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp2
-rw-r--r--src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_volkhan.cpp5
-rw-r--r--src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_assembly_of_iron.cpp39
-rw-r--r--src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp11
-rw-r--r--src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_keleseth.cpp2
-rw-r--r--src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp38
-rw-r--r--src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp2
-rw-r--r--src/bindings/scripts/scripts/outland/black_temple/black_temple.cpp2
-rw-r--r--src/bindings/scripts/scripts/outland/black_temple/boss_illidan.cpp9
-rw-r--r--src/bindings/scripts/scripts/outland/black_temple/boss_shade_of_akama.cpp5
-rw-r--r--src/bindings/scripts/scripts/outland/black_temple/illidari_council.cpp5
-rw-r--r--src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp1
-rw-r--r--src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp4
-rw-r--r--src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp2
-rw-r--r--src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp4
-rw-r--r--src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp1
-rw-r--r--src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp2
-rw-r--r--src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp6
-rw-r--r--src/bindings/scripts/scripts/outland/gruuls_lair/boss_high_king_maulgar.cpp13
-rw-r--r--src/bindings/scripts/scripts/outland/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp2
-rw-r--r--src/bindings/scripts/scripts/outland/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp5
-rw-r--r--src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_nethekurse.cpp2
-rw-r--r--src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp2
-rw-r--r--src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp4
-rw-r--r--src/bindings/scripts/scripts/outland/tempest_keep/arcatraz/arcatraz.cpp3
-rw-r--r--src/bindings/scripts/scripts/outland/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp6
-rw-r--r--src/bindings/scripts/scripts/outland/tempest_keep/the_eye/boss_alar.cpp6
-rw-r--r--src/bindings/scripts/scripts/outland/tempest_keep/the_eye/boss_astromancer.cpp4
-rw-r--r--src/bindings/scripts/scripts/outland/tempest_keep/the_eye/boss_kaelthas.cpp12
-rw-r--r--src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp9
-rw-r--r--src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp2
-rw-r--r--src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp4
76 files changed, 252 insertions, 288 deletions
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/blackrock_depths/blackrock_depths.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/blackrock_depths/blackrock_depths.cpp
index ee193df3430..3db3c0b2f97 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/blackrock_depths/blackrock_depths.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/blackrock_depths/blackrock_depths.cpp
@@ -46,7 +46,7 @@ EndContentData */
bool GOHello_go_shadowforge_brazier(Player* pPlayer, GameObject* pGo)
{
- if (ScriptedInstance* pInstance = (ScriptedInstance*)pGo->GetInstanceData())
+ if (ScriptedInstance* pInstance = pGo->GetInstanceData())
{
if (pInstance->GetData(TYPE_LYCEUM) == IN_PROGRESS)
pInstance->SetData(TYPE_LYCEUM, DONE);
@@ -91,8 +91,6 @@ uint32 RingBoss[]=
bool AreaTrigger_at_ring_of_law(Player* pPlayer, AreaTriggerEntry *at)
{
- ScriptedInstance* pInstance = (pPlayer->GetInstanceData());
-
if (ScriptedInstance* pInstance = pPlayer->GetInstanceData())
{
if (pInstance->GetData(TYPE_RING_OF_LAW) == IN_PROGRESS || pInstance->GetData(TYPE_RING_OF_LAW) == DONE)
@@ -1192,7 +1190,7 @@ CreatureAI* GetAI_npc_rocknot(Creature* pCreature)
bool ChooseReward_npc_rocknot(Player* pPlayer, Creature* pCreature, const Quest *_Quest, uint32 item)
{
- ScriptedInstance* pInstance = (pCreature->GetInstanceData());
+ ScriptedInstance* pInstance = pCreature->GetInstanceData();
if (!pInstance)
return true;
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/deadmines/deadmines.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/deadmines/deadmines.cpp
index b631c3b13e7..d2544cc881f 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/deadmines/deadmines.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/deadmines/deadmines.cpp
@@ -196,7 +196,7 @@ struct TRINITY_DLL_DECL instance_deadmines : public ScriptedInstance
bool ItemUse_item_defias_gunpowder(Player* pPlayer, Item* _Item, SpellCastTargets const& targets)
{
- ScriptedInstance *pInstance = (pPlayer->GetInstanceData()) ? (pPlayer->GetInstanceData()) : NULL;
+ ScriptedInstance *pInstance = pPlayer->GetInstanceData();
if (!pInstance)
{
@@ -233,5 +233,3 @@ void AddSC_instance_deadmines()
newscript->pItemUse = &ItemUse_item_defias_gunpowder;
newscript->RegisterSelf();
}
-
-
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_netherspite.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_netherspite.cpp
index fc90ff5b4f0..6444dd70058 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_netherspite.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_netherspite.cpp
@@ -60,7 +60,7 @@ struct TRINITY_DLL_DECL boss_netherspiteAI : public ScriptedAI
{
boss_netherspiteAI(Creature* c) : ScriptedAI(c)
{
- pInstance = ((ScriptedInstance*)c->GetInstanceData());
+ pInstance = c->GetInstanceData();
for(int i=0; i<3; ++i)
{
@@ -251,7 +251,7 @@ struct TRINITY_DLL_DECL boss_netherspiteAI : public ScriptedAI
void HandleDoors(bool open) // Massive Door switcher
{
- if(GameObject *Door = GameObject::GetGameObject((*m_creature),pInstance->GetData64(DATA_GO_MASSIVE_DOOR)))
+ if(GameObject *Door = GameObject::GetGameObject(*m_creature, pInstance : pInstance->GetData64(DATA_GO_MASSIVE_DOOR) ? 0))
Door->SetGoState(open ? GO_STATE_ACTIVE : GO_STATE_READY);
}
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_nightbane.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_nightbane.cpp
index cf7d7237042..e5c56bc7baf 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_nightbane.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_nightbane.cpp
@@ -113,14 +113,14 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
m_creature->setActive(true);
- if (pInstance->GetData(TYPE_NIGHTBANE) == DONE || pInstance->GetData(TYPE_NIGHTBANE) == IN_PROGRESS)
- {
- m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
- m_creature->RemoveCorpse();
- }
- else
+ if (pInstance)
{
- if (pInstance)
+ if (pInstance->GetData(TYPE_NIGHTBANE) == DONE || pInstance->GetData(TYPE_NIGHTBANE) == IN_PROGRESS)
+ {
+ m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
+ m_creature->RemoveCorpse();
+ }
+ else
pInstance->SetData(TYPE_NIGHTBANE, NOT_STARTED);
}
@@ -138,8 +138,11 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
void HandleTerraceDoors(bool open)
{
- pInstance->HandleGameObject(pInstance->GetData64(DATA_MASTERS_TERRACE_DOOR_1), open);
- pInstance->HandleGameObject(pInstance->GetData64(DATA_MASTERS_TERRACE_DOOR_2), open);
+ if(pInstance)
+ {
+ pInstance->HandleGameObject(pInstance->GetData64(DATA_MASTERS_TERRACE_DOOR_1), open);
+ pInstance->HandleGameObject(pInstance->GetData64(DATA_MASTERS_TERRACE_DOOR_2), open);
+ }
}
void EnterCombat(Unit *who)
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_terestian_illhoof.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_terestian_illhoof.cpp
index c824f344942..3b4e2645353 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_terestian_illhoof.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/boss_terestian_illhoof.cpp
@@ -266,7 +266,7 @@ struct TRINITY_DLL_DECL boss_terestianAI : public ScriptedAI
uint64 KilrekGUID = pInstance->GetData64(DATA_KILREK);
else ERROR_INST_DATA(m_creature);
- Creature* Kilrek = (Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_KILREK)));
+ Creature* Kilrek = Unit::GetCreature(*m_creature, pInstance : pInstance->GetData64(DATA_KILREK) ? 0);
if (SummonKilrek && Kilrek)
{
Kilrek->Respawn();
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/karazhan.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/karazhan.cpp
index cecdcc6330e..71cb24009f8 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/karazhan.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/karazhan/karazhan.cpp
@@ -325,7 +325,7 @@ CreatureAI* GetAI_npc_barnesAI(Creature* pCreature)
bool GossipHello_npc_barnes(Player* pPlayer, Creature* pCreature)
{
- if (ScriptedInstance* pInstance = (ScriptedInstance*)pCreature->GetInstanceData())
+ if (ScriptedInstance* pInstance = pCreature->GetInstanceData())
{
// Check for death of Moroes and if opera event is not done already
if (pInstance->GetData(TYPE_MOROES) == DONE && pInstance->GetData(TYPE_OPERA) != DONE)
@@ -402,7 +402,7 @@ enum
bool GossipHello_npc_berthold(Player* pPlayer, Creature* pCreature)
{
- if (ScriptedInstance* pInstance = (ScriptedInstance*)pCreature->GetInstanceData())
+ if (ScriptedInstance* pInstance = pCreature->GetInstanceData())
{
// Check if Shade of Aran event is done
if (pInstance->GetData(TYPE_ARAN) == DONE)
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_felblood_kaelthas.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_felblood_kaelthas.cpp
index 2d6b34d64e5..12718e947fd 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_felblood_kaelthas.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_felblood_kaelthas.cpp
@@ -79,7 +79,8 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI
{
boss_felblood_kaelthasAI(Creature* c) : ScriptedAI(c)
{
- pInstance = c->GetInstanceData(); Heroic = c->GetMap()->IsHeroic();
+ pInstance = c->GetInstanceData();
+ Heroic = c->GetMap()->IsHeroic();
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_priestess_delrissa.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_priestess_delrissa.cpp
index e0123a5367b..2c0dda0898d 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_priestess_delrissa.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_priestess_delrissa.cpp
@@ -372,7 +372,7 @@ struct TRINITY_DLL_DECL boss_priestess_lackey_commonAI : public ScriptedAI
ResetThreatTimer = 5000 + rand()%15000;
// in case she is not alive and Reset was for some reason called, respawn her (most likely party wipe after killing her)
- if (Creature* pDelrissa = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_DELRISSA)))
+ if (Creature* pDelrissa = Unit::GetCreature(*m_creature, pInstance ? pInstance->GetData64(DATA_DELRISSA) : 0))
{
if (!pDelrissa->isAlive())
pDelrissa->Respawn();
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_selin_fireheart.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_selin_fireheart.cpp
index 161852ed99d..b7c9961da9e 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_selin_fireheart.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_selin_fireheart.cpp
@@ -326,7 +326,7 @@ struct TRINITY_DLL_DECL mob_fel_crystalAI : public ScriptedAI
void JustDied(Unit* killer)
{
- if (ScriptedInstance* pInstance = (m_creature->GetInstanceData()))
+ if (ScriptedInstance* pInstance = m_creature->GetInstanceData())
{
Creature* Selin = (Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_SELIN)));
if (Selin && Selin->isAlive())
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_vexallus.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_vexallus.cpp
index 642d49f68ae..90a118e6da2 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_vexallus.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/magisters_terrace/boss_vexallus.cpp
@@ -61,7 +61,7 @@ struct TRINITY_DLL_DECL boss_vexallusAI : public ScriptedAI
{
boss_vexallusAI(Creature *c) : ScriptedAI(c)
{
- pInstance = c->GetInstanceData(); Heroic = c->GetMap()->IsHeroic();
+ pInstance = c->GetInstanceData();
Heroic = c->GetMap()->IsHeroic();
}
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/molten_core/boss_majordomo_executus.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/molten_core/boss_majordomo_executus.cpp
index a62afe260a6..32f99bcef01 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/molten_core/boss_majordomo_executus.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/molten_core/boss_majordomo_executus.cpp
@@ -53,12 +53,7 @@ EndScriptData */
struct TRINITY_DLL_DECL boss_majordomoAI : public ScriptedAI
{
- boss_majordomoAI(Creature *c) : ScriptedAI(c)
- {
- pInstance = c->GetInstanceData();
- }
-
- ScriptedInstance* pInstance;
+ boss_majordomoAI(Creature *c) : ScriptedAI(c) {}
uint32 MagicReflection_Timer;
uint32 DamageReflection_Timer;
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/molten_core/boss_sulfuron_harbinger.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/molten_core/boss_sulfuron_harbinger.cpp
index 56cf7fe31e3..8d14950d03e 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/molten_core/boss_sulfuron_harbinger.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/molten_core/boss_sulfuron_harbinger.cpp
@@ -37,17 +37,13 @@ EndScriptData */
struct TRINITY_DLL_DECL boss_sulfuronAI : public ScriptedAI
{
- boss_sulfuronAI(Creature *c) : ScriptedAI(c)
- {
- pInstance = c->GetInstanceData();
- }
+ boss_sulfuronAI(Creature *c) : ScriptedAI(c) {}
uint32 Darkstrike_Timer;
uint32 DemoralizingShout_Timer;
uint32 Inspire_Timer;
uint32 Knockdown_Timer;
uint32 Flamespear_Timer;
- ScriptedInstance *pInstance;
void Reset()
{
@@ -124,17 +120,12 @@ struct TRINITY_DLL_DECL boss_sulfuronAI : public ScriptedAI
struct TRINITY_DLL_DECL mob_flamewaker_priestAI : public ScriptedAI
{
- mob_flamewaker_priestAI(Creature *c) : ScriptedAI(c)
- {
- pInstance = c->GetInstanceData();
- }
+ mob_flamewaker_priestAI(Creature *c) : ScriptedAI(c) {}
uint32 Heal_Timer;
uint32 ShadowWordPain_Timer;
uint32 Immolate_Timer;
- ScriptedInstance *pInstance;
-
void Reset()
{
Heal_Timer = 15000+rand()%15000;
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_monastery/boss_headless_horseman.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_monastery/boss_headless_horseman.cpp
index 36b4002d48a..f0394ef650f 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_monastery/boss_headless_horseman.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_monastery/boss_headless_horseman.cpp
@@ -393,7 +393,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
}
if (pInstance)
- pInstance->SetData(DATA_HORSEMAN_EVENT, 0);
+ pInstance->SetData(DATA_HORSEMAN_EVENT, NOT_STARTED);
}
void FlyMode()
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_doctor_theolen_krastinov.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_doctor_theolen_krastinov.cpp
index c4590243571..68e78ce5546 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_doctor_theolen_krastinov.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_doctor_theolen_krastinov.cpp
@@ -50,7 +50,7 @@ struct TRINITY_DLL_DECL boss_theolenkrastinovAI : public ScriptedAI
void JustDied(Unit* pKiller)
{
- ScriptedInstance* pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL;
+ ScriptedInstance* pInstance = m_creature->GetInstanceData();
if (pInstance)
{
pInstance->SetData(DATA_DOCTORTHEOLENKRASTINOV_DEATH, 0);
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_illucia_barov.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_illucia_barov.cpp
index 0fd36025676..36394e711a7 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_illucia_barov.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_illucia_barov.cpp
@@ -48,7 +48,7 @@ struct TRINITY_DLL_DECL boss_illuciabarovAI : public ScriptedAI
void JustDied(Unit *killer)
{
- ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL;
+ ScriptedInstance *pInstance = m_creature->GetInstanceData();
if (pInstance)
{
pInstance->SetData(DATA_LADYILLUCIABAROV_DEATH, 0);
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_instructor_malicia.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_instructor_malicia.cpp
index b7ae2422c92..feb11ca86d9 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_instructor_malicia.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_instructor_malicia.cpp
@@ -55,7 +55,7 @@ struct TRINITY_DLL_DECL boss_instructormaliciaAI : public ScriptedAI
void JustDied(Unit *killer)
{
- ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL;
+ ScriptedInstance *pInstance = m_creature->GetInstanceData();
if (pInstance)
{
pInstance->SetData(DATA_INSTRUCTORMALICIA_DEATH, 0);
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_lord_alexei_barov.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_lord_alexei_barov.cpp
index f8b21ebfd55..ef3f3e32744 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_lord_alexei_barov.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_lord_alexei_barov.cpp
@@ -44,7 +44,7 @@ struct TRINITY_DLL_DECL boss_lordalexeibarovAI : public ScriptedAI
void JustDied(Unit *killer)
{
- ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL;
+ ScriptedInstance *pInstance = m_creature->GetInstanceData();
if (pInstance)
{
pInstance->SetData(DATA_LORDALEXEIBAROV_DEATH, 0);
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_lorekeeper_polkelt.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_lorekeeper_polkelt.cpp
index 489e8bbc1cb..0e8c924cc7f 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_lorekeeper_polkelt.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_lorekeeper_polkelt.cpp
@@ -48,7 +48,7 @@ struct TRINITY_DLL_DECL boss_lorekeeperpolkeltAI : public ScriptedAI
void JustDied(Unit *killer)
{
- ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL;
+ ScriptedInstance *pInstance = m_creature->GetInstanceData();
if (pInstance)
{
pInstance->SetData(DATA_LOREKEEPERPOLKELT_DEATH, 0);
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_the_ravenian.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_the_ravenian.cpp
index ea355c401a3..c515c437331 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_the_ravenian.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/scholomance/boss_the_ravenian.cpp
@@ -50,7 +50,7 @@ struct TRINITY_DLL_DECL boss_theravenianAI : public ScriptedAI
void JustDied(Unit *killer)
{
- ScriptedInstance *pInstance = (m_creature->GetInstanceData()) ? (m_creature->GetInstanceData()) : NULL;
+ ScriptedInstance *pInstance = m_creature->GetInstanceData();
if (pInstance)
{
pInstance->SetData(DATA_THERAVENIAN_DEATH, 0);
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/shadowfang_keep/shadowfang_keep.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/shadowfang_keep/shadowfang_keep.cpp
index 346e922a1b4..fc0b5a8a204 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/shadowfang_keep/shadowfang_keep.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/shadowfang_keep/shadowfang_keep.cpp
@@ -107,7 +107,7 @@ CreatureAI* GetAI_npc_shadowfang_prisoner(Creature* pCreature)
bool GossipHello_npc_shadowfang_prisoner(Player* pPlayer, Creature* pCreature)
{
- ScriptedInstance* pInstance = (pCreature->GetInstanceData());
+ ScriptedInstance* pInstance = pCreature->GetInstanceData();
if (pInstance && pInstance->GetData(TYPE_FREE_NPC) != DONE && pInstance->GetData(TYPE_RETHILGORE) == DONE)
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_DOOR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/stratholme/boss_magistrate_barthilas.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/stratholme/boss_magistrate_barthilas.cpp
index fc922a4e39a..27e754b9ab7 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/stratholme/boss_magistrate_barthilas.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/stratholme/boss_magistrate_barthilas.cpp
@@ -34,12 +34,7 @@ EndScriptData */
struct TRINITY_DLL_DECL boss_magistrate_barthilasAI : public ScriptedAI
{
- boss_magistrate_barthilasAI(Creature *c) : ScriptedAI(c)
- {
- pInstance = m_creature->GetInstanceData();
- }
-
- ScriptedInstance* pInstance;
+ boss_magistrate_barthilasAI(Creature *c) : ScriptedAI(c) {}
uint32 DrainingBlow_Timer;
uint32 CrowdPummel_Timer;
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_brutallus.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_brutallus.cpp
index 980fe656b4a..98733c845a5 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_brutallus.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_brutallus.cpp
@@ -66,7 +66,8 @@ enum Spells
struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI
{
- boss_brutallusAI(Creature *c) : ScriptedAI(c){
+ boss_brutallusAI(Creature *c) : ScriptedAI(c)
+ {
pInstance = c->GetInstanceData();
}
@@ -141,7 +142,8 @@ struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI
{
DoScriptText(YELL_DEATH, m_creature);
- if (pInstance){
+ if (pInstance)
+ {
pInstance->SetData(DATA_BRUTALLUS_EVENT, DONE);
float x,y,z;
m_creature->GetPosition(x,y,z);
@@ -245,7 +247,8 @@ struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI
}
}
- void MoveInLineOfSight(Unit *who){
+ void MoveInLineOfSight(Unit *who)
+ {
if (pInstance && Intro)
pInstance->SetData(DATA_BRUTALLUS_EVENT, SPECIAL);
}
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_eredar_twins.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_eredar_twins.cpp
index 86ed15ad653..85567b2a98b 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_eredar_twins.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_eredar_twins.cpp
@@ -93,7 +93,8 @@ enum Creatures
struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI
{
- boss_sacrolashAI(Creature *c) : ScriptedAI(c){
+ boss_sacrolashAI(Creature *c) : ScriptedAI(c)
+ {
pInstance = c->GetInstanceData();
}
@@ -350,7 +351,8 @@ CreatureAI* GetAI_boss_sacrolash(Creature* pCreature)
struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI
{
- boss_alythessAI(Creature *c) : Scripted_NoMovementAI(c){
+ boss_alythessAI(Creature *c) : Scripted_NoMovementAI(c)
+ {
pInstance = c->GetInstanceData();
IntroStepCounter = 10;
}
@@ -527,7 +529,7 @@ struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI
uint32 IntroStep(uint32 step)
{
- Creature* Sacrolash = Unit::GetCreature((*m_creature),pInstance->GetData64(DATA_SACROLASH));
+ Creature* Sacrolash = Unit::GetCreature(*m_creature, pInstance ? pInstance->GetData64(DATA_SACROLASH) : 0);
switch (step)
{
case 0: return 0;
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_felmyst.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_felmyst.cpp
index 8402f077fdd..5240a2a23ef 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_felmyst.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_felmyst.cpp
@@ -126,7 +126,8 @@ static EventFelmyst MaxTimer[]=
struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
{
- boss_felmystAI(Creature *c) : ScriptedAI(c){
+ boss_felmystAI(Creature *c) : ScriptedAI(c)
+ {
pInstance = c->GetInstanceData();
// wait for core patch be accepted
@@ -307,7 +308,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
error_log("Summon Vapor case 2");
Unit* target;
target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true);
- if (!target) target = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_PLAYER_GUID));
+ if (!target) target = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_PLAYER_GUID) : 0);
if (target)
{
Creature* Vapor = m_creature->SummonCreature(MOB_VAPOR, target->GetPositionX()-5+rand()%10, target->GetPositionY()-5+rand()%10, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 9000);
@@ -332,7 +333,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
//m_creature->CastSpell(m_creature, SPELL_VAPOR_SELECT); need core support
Unit* target;
target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true);
- if (!target) target = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_PLAYER_GUID));
+ if (!target) target = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_PLAYER_GUID) : 0);
if (target)
{
//target->CastSpell(target, SPELL_VAPOR_SUMMON, true); need core support
@@ -359,7 +360,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
case 5:{
Unit* target;
target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true);
- if (!target) target = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_PLAYER_GUID));
+ if (!target) target = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_PLAYER_GUID) : 0);
if (target)
{
BreathX = target->GetPositionX();
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_kalecgos.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_kalecgos.cpp
index dcafab1e4d7..3786f22af08 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_kalecgos.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_kalecgos.cpp
@@ -169,7 +169,7 @@ struct TRINITY_DLL_DECL boss_kalecgosAI : public ScriptedAI
{
m_creature->SetStandState(UNIT_STAND_STATE_STAND);
DoScriptText(SAY_EVIL_AGGRO, m_creature);
- if (GameObject *Door = pInstance->instance->GetGameObject(pInstance->GetData64(DoorGUID)))
+ if (GameObject *Door = pInstance ? pInstance->instance->GetGameObject(pInstance->GetData64(DoorGUID)) : NULL)
Door->SetLootState(GO_ACTIVATED);
DoZoneInCombat();
@@ -548,7 +548,7 @@ void boss_kalecgosAI::UpdateAI(const uint32 diff)
m_creature->RemoveAllAuras();
m_creature->DeleteThreatList();
m_creature->CombatStop();
- if (GameObject *Door = pInstance->instance->GetGameObject(pInstance->GetData64(DoorGUID)))
+ if (GameObject *Door = pInstance ? pInstance->instance->GetGameObject(pInstance->GetData64(DoorGUID)) : NULL)
Door->SetLootState(GO_JUST_DEACTIVATED);
TalkSequence++;
}
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_kiljaeden.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_kiljaeden.cpp
index 344ea13695a..394bb059369 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_kiljaeden.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_kiljaeden.cpp
@@ -268,14 +268,16 @@ public:
bool GOHello_go_orb_of_the_blue_flight(Player* pPlayer, GameObject* pGo)
{
- if (pGo->GetUInt32Value(GAMEOBJECT_FACTION) == 35){
+ if (pGo->GetUInt32Value(GAMEOBJECT_FACTION) == 35)
+ {
ScriptedInstance* pInstance = pGo->GetInstanceData();
float x,y,z;
//float dx,dy,dz;
pGo->SummonCreature(CREATURE_POWER_OF_THE_BLUE_DRAGONFLIGHT, pPlayer->GetPositionX(), pPlayer->GetPositionY(), pPlayer->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 121000);
pPlayer->CastSpell(pPlayer, SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT, true);
pGo->SetUInt32Value(GAMEOBJECT_FACTION, 0);
- Creature* Kalec = Unit::GetCreature(*pPlayer, pInstance->GetData64(DATA_KALECGOS_KJ));
+ if(pInstance)
+ Creature* Kalec = Unit::GetCreature(*pPlayer, pInstance->GetData64(DATA_KALECGOS_KJ));
//Kalec->RemoveDynObject(SPELL_RING_OF_BLUE_FLAMES);
pGo->GetPosition(x,y,z);
// this won't work. need rewritten
@@ -301,7 +303,8 @@ bool GOHello_go_orb_of_the_blue_flight(Player* pPlayer, GameObject* pGo)
//AI for Kalecgos
struct TRINITY_DLL_DECL boss_kalecgos_kjAI : public ScriptedAI
{
- boss_kalecgos_kjAI(Creature* c) : ScriptedAI(c){
+ boss_kalecgos_kjAI(Creature* c) : ScriptedAI(c)
+ {
pInstance = c->GetInstanceData();
}
@@ -345,7 +348,7 @@ struct TRINITY_DLL_DECL boss_kalecgos_kjAI : public ScriptedAI
return;
uint8 i = 0;
for(std::list<GameObject*>::iterator itr = orbList.begin(); itr != orbList.end(); ++itr, ++i){
- Orb[i] = pInstance->instance->GetGameObject(pInstance->GetData64((*itr)->GetGUID()));
+ Orb[i] = pInstance ? pInstance->instance->GetGameObject(pInstance->GetData64((*itr)->GetGUID())) : NULL;
}
}
@@ -386,10 +389,13 @@ struct TRINITY_DLL_DECL boss_kalecgos_kjAI : public ScriptedAI
}
}
}*/
- Orb[random]->CastSpell(m_creature, SPELL_RING_OF_BLUE_FLAMES);
- Orb[random]->SetUInt32Value(GAMEOBJECT_FACTION, 35);
- Orb[random]->setActive(true);
- Orb[random]->Refresh();
+ if(Orb[random])
+ {
+ Orb[random]->CastSpell(m_creature, SPELL_RING_OF_BLUE_FLAMES);
+ Orb[random]->SetUInt32Value(GAMEOBJECT_FACTION, 35);
+ Orb[random]->setActive(true);
+ Orb[random]->Refresh();
+ }
++OrbsEmpowered;
}
++EmpowerCount;
@@ -420,7 +426,8 @@ CreatureAI* GetAI_boss_kalecgos_kj(Creature* pCreature)
//AI for Kil'jaeden
struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI
{
- boss_kiljaedenAI(Creature* c) : Scripted_NoMovementAI(c), Summons(m_creature){
+ boss_kiljaedenAI(Creature* c) : Scripted_NoMovementAI(c), Summons(m_creature)
+ {
pInstance = c->GetInstanceData();
}
@@ -472,7 +479,8 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI
IsWaiting = false;
OrbActivated = false;
- Kalec = CAST_CRE(Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KALECGOS_KJ)));
+ if(pInstance)
+ Kalec = CAST_CRE(Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KALECGOS_KJ)));
ChangeTimers(false, 0);
}
@@ -716,7 +724,7 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI
if (Phase <= PHASE_ARMAGEDDON){
if (Phase == PHASE_ARMAGEDDON && ((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25)){
Phase = PHASE_SACRIFICE;
- Creature* Anveena = (Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_ANVEENA)));
+ Creature* Anveena = (Unit::GetCreature(*m_creature, pInstance ? pInstance->GetData64(DATA_ANVEENA) : 0));
if (Anveena)Anveena->CastSpell(m_creature, SPELL_SACRIFICE_OF_ANVEENA, false);
OrbActivated = false;
ChangeTimers(true, 10000);// He shouldn't cast spells for ~10 seconds after Anveena's sacrifice. This will be done within Anveena's script
@@ -735,7 +743,8 @@ CreatureAI* GetAI_boss_kiljaeden(Creature* pCreature)
//AI for Kil'jaeden Event Controller
struct TRINITY_DLL_DECL mob_kiljaeden_controllerAI : public Scripted_NoMovementAI
{
- mob_kiljaeden_controllerAI(Creature* c) : Scripted_NoMovementAI(c), Summons(m_creature){
+ mob_kiljaeden_controllerAI(Creature* c) : Scripted_NoMovementAI(c), Summons(m_creature)
+ {
pInstance = c->GetInstanceData();
}
@@ -750,8 +759,10 @@ struct TRINITY_DLL_DECL mob_kiljaeden_controllerAI : public Scripted_NoMovementA
uint32 Phase;
uint8 DeceiverDeathCount;
- void InitializeAI(){
- KalecKJ = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_KALECGOS_KJ));
+ void InitializeAI()
+ {
+ if(pInstance)
+ KalecKJ = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_KALECGOS_KJ));
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
m_creature->addUnitState(UNIT_STAT_STUNNED);
@@ -790,7 +801,7 @@ struct TRINITY_DLL_DECL mob_kiljaeden_controllerAI : public Scripted_NoMovementA
void UpdateAI(const uint32 diff)
{
- if (RandomSayTimer < diff && pInstance->GetData(DATA_MURU_EVENT) != DONE && pInstance->GetData(DATA_KILJAEDEN_EVENT) == NOT_STARTED){
+ if (RandomSayTimer < diff && pInstance && pInstance->GetData(DATA_MURU_EVENT) != DONE && pInstance->GetData(DATA_KILJAEDEN_EVENT) == NOT_STARTED){
switch(rand()%5){
case 0: DoScriptText(SAY_KJ_OFFCOMBAT1, m_creature); break;
case 1: DoScriptText(SAY_KJ_OFFCOMBAT2, m_creature); break;
@@ -826,7 +837,8 @@ CreatureAI* GetAI_mob_kiljaeden_controller(Creature* pCreature)
//AI for Hand of the Deceiver
struct TRINITY_DLL_DECL mob_hand_of_the_deceiverAI : public ScriptedAI
{
- mob_hand_of_the_deceiverAI(Creature* c) : ScriptedAI(c){
+ mob_hand_of_the_deceiverAI(Creature* c) : ScriptedAI(c)
+ {
pInstance = c->GetInstanceData();
}
ScriptedInstance* pInstance;
@@ -838,7 +850,8 @@ struct TRINITY_DLL_DECL mob_hand_of_the_deceiverAI : public ScriptedAI
// TODO: Timers!
ShadowBoltVolleyTimer = 8000 + rand()%6000; // So they don't all cast it in the same moment.
FelfirePortalTimer = 20000;
- if (pInstance)pInstance->SetData(DATA_KILJAEDEN_EVENT, NOT_STARTED);
+ if (pInstance)
+ pInstance->SetData(DATA_KILJAEDEN_EVENT, NOT_STARTED);
}
void JustSummoned(Creature* summoned){
@@ -847,7 +860,8 @@ struct TRINITY_DLL_DECL mob_hand_of_the_deceiverAI : public ScriptedAI
}
void EnterCombat(Unit* who){
- if (pInstance){
+ if (pInstance)
+ {
pInstance->SetData(DATA_KILJAEDEN_EVENT, IN_PROGRESS);
Creature* Control = CAST_CRE(Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_KILJAEDEN_CONTROLLER)));
if (Control)
@@ -856,7 +870,8 @@ struct TRINITY_DLL_DECL mob_hand_of_the_deceiverAI : public ScriptedAI
m_creature->InterruptNonMeleeSpells(true);
}
- void JustDied(Unit* killer){
+ void JustDied(Unit* killer)
+ {
if (!pInstance)
return;
@@ -1050,7 +1065,8 @@ CreatureAI* GetAI_mob_armageddon(Creature* pCreature)
//AI for Shield Orbs
struct TRINITY_DLL_DECL mob_shield_orbAI : public ScriptedAI
{
- mob_shield_orbAI(Creature* c) : ScriptedAI(c) {
+ mob_shield_orbAI(Creature* c) : ScriptedAI(c)
+ {
pInstance = c->GetInstanceData();
}
@@ -1101,7 +1117,7 @@ struct TRINITY_DLL_DECL mob_shield_orbAI : public ScriptedAI
}
if (Timer < diff){
- Unit* random = (Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_PLAYER_GUID)));
+ Unit* random = (Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_PLAYER_GUID) : 0));
if (random)DoCast(random, SPELL_SHADOW_BOLT, false);
Timer = 500+ rand()%500;
}else Timer -= diff;
@@ -1316,4 +1332,4 @@ void AddSC_boss_kiljaeden()
newscript->GetAI = &GetAI_mob_sinster_reflection;
newscript->Name = "mob_sinster_reflection";
newscript->RegisterSelf();
-};
+}
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_muru.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_muru.cpp
index 003080002d1..9d30c8fcb25 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_muru.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/sunwell_plateau/boss_muru.cpp
@@ -287,6 +287,8 @@ struct TRINITY_DLL_DECL boss_muruAI : public Scripted_NoMovementAI
{
if (Timer[TIMER_PHASE] <diff)
{
+ if(!pInstance)
+ return;
switch(pInstance->GetData(DATA_MURU_EVENT))
{
case NOT_STARTED:
@@ -394,7 +396,7 @@ struct TRINITY_DLL_DECL npc_muru_portalAI : public Scripted_NoMovementAI
void JustSummoned(Creature* summoned)
{
- Player* Target = Unit::GetPlayer(pInstance->GetData64(DATA_PLAYER_GUID));
+ Player* Target = Unit::GetPlayer(pInstance ? pInstance->GetData64(DATA_PLAYER_GUID) : 0);
if (Target)
summoned->AI()->AttackStart(Target);
@@ -423,7 +425,8 @@ struct TRINITY_DLL_DECL npc_muru_portalAI : public Scripted_NoMovementAI
{
if (!SummonSentinel)
{
- if (InAction && pInstance->GetData(DATA_MURU_EVENT) == NOT_STARTED)Reset();
+ if (InAction && pInstance && pInstance->GetData(DATA_MURU_EVENT) == NOT_STARTED)
+ Reset();
return;
}
if (SummonTimer < diff)
@@ -442,12 +445,7 @@ CreatureAI* GetAI_npc_muru_portal(Creature* pCreature)
struct TRINITY_DLL_DECL npc_dark_fiendAI : public ScriptedAI
{
- npc_dark_fiendAI(Creature *c) : ScriptedAI(c)
- {
- pInstance = c->GetInstanceData();
- }
-
- ScriptedInstance* pInstance;
+ npc_dark_fiendAI(Creature *c) : ScriptedAI(c) {}
uint32 WaitTimer;
bool InAction;
@@ -507,12 +505,7 @@ CreatureAI* GetAI_npc_dark_fiend(Creature* pCreature)
struct TRINITY_DLL_DECL npc_void_sentinelAI : public ScriptedAI
{
- npc_void_sentinelAI(Creature *c) : ScriptedAI(c)
- {
- pInstance = c->GetInstanceData();
- }
-
- ScriptedInstance* pInstance;
+ npc_void_sentinelAI(Creature *c) : ScriptedAI(c){}
uint32 PulseTimer;
uint32 VoidBlastTimer;
@@ -588,7 +581,7 @@ struct TRINITY_DLL_DECL npc_blackholeAI : public ScriptedAI
{
if (SpellTimer < diff)
{
- Unit* Victim = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_PLAYER_GUID));
+ Unit* Victim = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_PLAYER_GUID) : 0);
switch(NeedForAHack)
{
case 0:
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/uldaman/boss_archaedas.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/uldaman/boss_archaedas.cpp
index 43628a6565e..829baf7dbc0 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/uldaman/boss_archaedas.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/uldaman/boss_archaedas.cpp
@@ -51,7 +51,7 @@ struct TRINITY_DLL_DECL boss_archaedasAI : public ScriptedAI
{
boss_archaedasAI(Creature *c) : ScriptedAI(c)
{
- pInstance = (m_creature->GetInstanceData());
+ pInstance = m_creature->GetInstanceData();
}
uint32 Tremor_Timer;
@@ -73,7 +73,8 @@ struct TRINITY_DLL_DECL boss_archaedasAI : public ScriptedAI
guardiansAwake = false;
vaultWalkersAwake = false;
- if (pInstance) pInstance->SetData (NULL, 5); // respawn any dead minions
+ if (pInstance)
+ pInstance->SetData (NULL, 5); // respawn any dead minions
m_creature->setFaction(35);
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
@@ -208,7 +209,7 @@ struct TRINITY_DLL_DECL mob_archaedas_minionsAI : public ScriptedAI
{
mob_archaedas_minionsAI(Creature *c) : ScriptedAI(c)
{
- pInstance = (m_creature->GetInstanceData());
+ pInstance = m_creature->GetInstanceData();
}
uint32 Arcing_Timer;
@@ -264,7 +265,7 @@ struct TRINITY_DLL_DECL mob_archaedas_minionsAI : public ScriptedAI
} else if (wakingUp && Awaken_Timer <= 0) {
wakingUp = false;
amIAwake = true;
- AttackStart(Unit::GetUnit(*m_creature, pInstance->GetData64(0))); // whoWokeArchaedasGUID
+ // AttackStart(Unit::GetUnit(*m_creature, pInstance->GetData64(0))); // whoWokeArchaedasGUID
return; // dont want to continue until we finish the AttackStart method
}
@@ -332,8 +333,10 @@ bool GOHello_go_altar_of_archaedas(Player* pPlayer, GameObject* pGo)
return false; // not enough people
}
- ScriptedInstance* pInstance = (pPlayer->GetInstanceData());
- if (!pInstance) return false;
+ ScriptedInstance* pInstance = pPlayer->GetInstanceData();
+ if (!pInstance)
+ return false;
+
pInstance->SetData(NULL,0);
pInstance->SetData64(0,pPlayer->GetGUID()); // activate archaedas
@@ -416,8 +419,9 @@ static uint32 altarOfTheKeeperCounter=0;
bool GOHello_go_altar_of_the_keepers(Player* pPlayer, GameObject* pGo)
{
- ScriptedInstance* pInstance = (pPlayer->GetInstanceData());
- if (!pInstance) return true;
+ ScriptedInstance* pInstance = pPlayer->GetInstanceData();
+ if (!pInstance)
+ return true;
bool alreadyUsed;
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/zulaman/zulaman.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/zulaman/zulaman.cpp
index 86cb3196ab7..f642940f546 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/zulaman/zulaman.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/zulaman/zulaman.cpp
@@ -139,7 +139,7 @@ bool GossipSelect_npc_zulaman_hostage(Player* pPlayer, Creature* pCreature, uint
return true;
pCreature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- ScriptedInstance* pInstance = (pCreature->GetInstanceData());
+ ScriptedInstance* pInstance = pCreature->GetInstanceData();
if (pInstance)
{
//uint8 progress = pInstance->GetData(DATA_CHESTLOOTED);
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/zulgurub/boss_arlokk.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/zulgurub/boss_arlokk.cpp
index fdb20bc1e23..6b89356c617 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/zulgurub/boss_arlokk.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/zulgurub/boss_arlokk.cpp
@@ -26,7 +26,7 @@ EndScriptData */
bool GOHello_go_gong_of_bethekk(Player* pPlayer, GameObject* pGo)
{
- if (ScriptedInstance* m_pInstance = (ScriptedInstance*)pGo->GetInstanceData())
+ if (ScriptedInstance* m_pInstance = pGo->GetInstanceData())
{
if (m_pInstance->GetData(TYPE_ARLOKK) == DONE || m_pInstance->GetData(TYPE_ARLOKK) == IN_PROGRESS)
return true;
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/zulgurub/boss_jindo.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/zulgurub/boss_jindo.cpp
index e1c5e0ea7c5..902e9c19ab4 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/zulgurub/boss_jindo.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/zulgurub/boss_jindo.cpp
@@ -41,12 +41,7 @@ EndScriptData */
struct TRINITY_DLL_DECL boss_jindoAI : public ScriptedAI
{
- boss_jindoAI(Creature *c) : ScriptedAI(c)
- {
- pInstance = c->GetInstanceData();
- }
-
- ScriptedInstance *pInstance;
+ boss_jindoAI(Creature *c) : ScriptedAI(c) {}
uint32 BrainWashTotem_Timer;
uint32 HealingWard_Timer;
@@ -168,7 +163,7 @@ struct TRINITY_DLL_DECL mob_healing_wardAI : public ScriptedAI
{
mob_healing_wardAI(Creature *c) : ScriptedAI(c)
{
- pInstance = c->GetInstanceData();
+ pInstance = c->GetInstanceData();
}
uint32 Heal_Timer;
@@ -205,15 +200,10 @@ struct TRINITY_DLL_DECL mob_healing_wardAI : public ScriptedAI
//Shade of Jindo
struct TRINITY_DLL_DECL mob_shade_of_jindoAI : public ScriptedAI
{
- mob_shade_of_jindoAI(Creature *c) : ScriptedAI(c)
- {
- pInstance = c->GetInstanceData();
- }
+ mob_shade_of_jindoAI(Creature *c) : ScriptedAI(c) {}
uint32 ShadowShock_Timer;
- ScriptedInstance *pInstance;
-
void Reset()
{
ShadowShock_Timer = 1000;
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/zulgurub/boss_venoxis.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/zulgurub/boss_venoxis.cpp
index 1376db2d259..a5efea9cca7 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/zulgurub/boss_venoxis.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/zulgurub/boss_venoxis.cpp
@@ -180,7 +180,6 @@ struct TRINITY_DLL_DECL boss_venoxisAI : public ScriptedAI
}
}
DoMeleeAttackIfReady();
-
}
};
diff --git a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp
index 2a1d3c4fe03..c8551c7b318 100644
--- a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp
@@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL boss_chrono_lord_dejaAI : public ScriptedAI
boss_chrono_lord_dejaAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- HeroicMode = m_creature->GetMap()->IsHeroic();
+ HeroicMode = c->GetMap()->IsHeroic();
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/dark_portal.cpp b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/dark_portal.cpp
index b57abc8c5d6..8c82722ed5d 100644
--- a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/dark_portal.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/dark_portal/dark_portal.cpp
@@ -279,7 +279,7 @@ struct TRINITY_DLL_DECL npc_time_riftAI : public ScriptedAI
if (!creature_entry)
return;
- if (pInstance->GetData(TYPE_MEDIVH) != IN_PROGRESS)
+ if (pInstance && pInstance->GetData(TYPE_MEDIVH) != IN_PROGRESS)
{
m_creature->InterruptNonMeleeSpells(true);
m_creature->RemoveAllAuras();
@@ -297,7 +297,7 @@ struct TRINITY_DLL_DECL npc_time_riftAI : public ScriptedAI
if (Summon)
{
- if (Unit *temp = Unit::GetUnit(*m_creature,pInstance->GetData64(DATA_MEDIVH)))
+ if (Unit *temp = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_MEDIVH) : 0))
Summon->AddThreat(temp,0.0f);
}
}
diff --git a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/hyjal/hyjalAI.cpp b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/hyjal/hyjalAI.cpp
index 726ce62b4c9..cb7ac1fdfd7 100644
--- a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/hyjal/hyjalAI.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/hyjal/hyjalAI.cpp
@@ -708,7 +708,8 @@ void hyjalAI::SpawnVeins()
void hyjalAI::DeSpawnVeins()
{
- if (!pInstance)return;
+ if (!pInstance)
+ return;
if (Faction == 1)
{
Creature* pUnit=Unit::GetCreature((*m_creature),pInstance->GetData64(DATA_JAINAPROUDMOORE));
@@ -751,7 +752,7 @@ void hyjalAI::UpdateAI(const uint32 diff)
switch(m_creature->GetEntry())
{
case JAINA:
- if (pInstance->GetData(DATA_ALLIANCE_RETREAT))
+ if (pInstance && pInstance->GetData(DATA_ALLIANCE_RETREAT))
{
m_creature->SetVisibility(VISIBILITY_OFF);
HideNearPos(m_creature->GetPositionX(), m_creature->GetPositionY());
@@ -763,7 +764,7 @@ void hyjalAI::UpdateAI(const uint32 diff)
else m_creature->SetVisibility(VISIBILITY_ON);
break;
case THRALL: //thrall
- if (pInstance->GetData(DATA_HORDE_RETREAT))
+ if (pInstance && pInstance->GetData(DATA_HORDE_RETREAT))
{
m_creature->SetVisibility(VISIBILITY_OFF);
HideNearPos(m_creature->GetPositionX(), m_creature->GetPositionY());
@@ -867,7 +868,8 @@ void hyjalAI::UpdateAI(const uint32 diff)
CheckTimer = 0;
m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
BossGUID[i] = 0;
- pInstance->DoUpdateWorldState(WORLD_STATE_ENEMY, 0); // Reset world state for enemies to disable it
+ if(pInstance)
+ pInstance->DoUpdateWorldState(WORLD_STATE_ENEMY, 0); // Reset world state for enemies to disable it
}
}
}
@@ -1156,4 +1158,4 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff)
}
break;
}
-} \ No newline at end of file
+}
diff --git a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/hyjal/hyjal_trash.cpp b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/hyjal/hyjal_trash.cpp
index b0739530fdc..705039a6d09 100644
--- a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/hyjal/hyjal_trash.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/hyjal/hyjal_trash.cpp
@@ -363,7 +363,8 @@ void hyjal_trashAI::UpdateAI(const uint32 diff)
void hyjal_trashAI::JustDied(Unit *victim)
{
- if (!pInstance)return;
+ if (!pInstance)
+ return;
if (IsEvent && !m_creature->isWorldBoss())
pInstance->SetData(DATA_TRASH, 0);//signal trash is dead
diff --git a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp
index d8471deb96b..a38263d000f 100644
--- a/src/bindings/scripts/scripts/kalimdor/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp
@@ -46,7 +46,7 @@ bool GossipHello_npc_erozion(Player* pPlayer, Creature* pCreature)
if (pCreature->isQuestGiver())
pPlayer->PrepareQuestMenu(pCreature->GetGUID());
- ScriptedInstance* pInstance = (pCreature->GetInstanceData());
+ ScriptedInstance* pInstance = pCreature->GetInstanceData();
if (pInstance && pInstance->GetData(TYPE_BARREL_DIVERSION) != DONE && !pPlayer->HasItemCount(ITEM_ENTRY_BOMBS,1))
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I need a pack of Incendiary Bombs.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -491,7 +491,7 @@ bool GossipHello_npc_thrall_old_hillsbrad(Player* pPlayer, Creature* pCreature)
pPlayer->SendPreparedQuest(pCreature->GetGUID());
}
- ScriptedInstance* pInstance = (pCreature->GetInstanceData());
+ ScriptedInstance* pInstance = pCreature->GetInstanceData();
if (pInstance)
{
if (pInstance->GetData(TYPE_BARREL_DIVERSION) == DONE && !pInstance->GetData(TYPE_THRALL_EVENT))
@@ -517,7 +517,7 @@ bool GossipHello_npc_thrall_old_hillsbrad(Player* pPlayer, Creature* pCreature)
bool GossipSelect_npc_thrall_old_hillsbrad(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
{
- ScriptedInstance* pInstance = (pCreature->GetInstanceData());
+ ScriptedInstance* pInstance = pCreature->GetInstanceData();
switch(uiAction)
{
case GOSSIP_ACTION_INFO_DEF+1:
@@ -609,7 +609,7 @@ CreatureAI* GetAI_npc_taretha(Creature* pCreature)
bool GossipHello_npc_taretha(Player* pPlayer, Creature* pCreature)
{
- ScriptedInstance* pInstance = (pCreature->GetInstanceData());
+ ScriptedInstance* pInstance = pCreature->GetInstanceData();
if (pInstance && pInstance->GetData(TYPE_THRALL_PART3) == DONE && pInstance->GetData(TYPE_THRALL_PART4) == NOT_STARTED)
{
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_EPOCH1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
@@ -620,7 +620,7 @@ bool GossipHello_npc_taretha(Player* pPlayer, Creature* pCreature)
bool GossipSelect_npc_taretha(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
{
- ScriptedInstance* pInstance = (pCreature->GetInstanceData());
+ ScriptedInstance* pInstance = pCreature->GetInstanceData();
if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
{
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_EPOCH2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
@@ -630,10 +630,9 @@ bool GossipSelect_npc_taretha(Player* pPlayer, Creature* pCreature, uint32 uiSen
{
pPlayer->CLOSE_GOSSIP_MENU();
- if (pInstance->GetData(TYPE_THRALL_EVENT) == IN_PROGRESS)
+ if (pInstance && pInstance->GetData(TYPE_THRALL_EVENT) == IN_PROGRESS)
{
- if (pInstance)
- pInstance->SetData(TYPE_THRALL_PART4,IN_PROGRESS);
+ pInstance->SetData(TYPE_THRALL_PART4,IN_PROGRESS);
if (pInstance->GetData64(DATA_EPOCH) == 0)
pCreature->SummonCreature(ENTRY_EPOCH,2639.13,698.55,65.43,4.59,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,120000);
diff --git a/src/bindings/scripts/scripts/kalimdor/razorfen_kraul/razorfen_kraul.cpp b/src/bindings/scripts/scripts/kalimdor/razorfen_kraul/razorfen_kraul.cpp
index b24a51cb3cb..1d1217eae16 100644
--- a/src/bindings/scripts/scripts/kalimdor/razorfen_kraul/razorfen_kraul.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/razorfen_kraul/razorfen_kraul.cpp
@@ -136,7 +136,6 @@ struct TRINITY_DLL_DECL npc_deaths_head_ward_keeperAI : public ScriptedAI
npc_deaths_head_ward_keeperAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- Reset();
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/kalimdor/temple_of_ahnqiraj/boss_skeram.cpp b/src/bindings/scripts/scripts/kalimdor/temple_of_ahnqiraj/boss_skeram.cpp
index 780a0c28f22..1f3e50d5c79 100644
--- a/src/bindings/scripts/scripts/kalimdor/temple_of_ahnqiraj/boss_skeram.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/temple_of_ahnqiraj/boss_skeram.cpp
@@ -53,12 +53,9 @@ struct TRINITY_DLL_DECL boss_skeramAI : public ScriptedAI
{
boss_skeramAI(Creature *c) : ScriptedAI(c)
{
- pInstance = c->GetInstanceData();
IsImage = false;
}
- ScriptedInstance *pInstance;
-
uint32 ArcaneExplosion_Timer;
uint32 EarthShock_Timer;
uint32 FullFillment_Timer;
diff --git a/src/bindings/scripts/scripts/kalimdor/temple_of_ahnqiraj/boss_twinemperors.cpp b/src/bindings/scripts/scripts/kalimdor/temple_of_ahnqiraj/boss_twinemperors.cpp
index fdc1b6ae408..a96544db9b6 100644
--- a/src/bindings/scripts/scripts/kalimdor/temple_of_ahnqiraj/boss_twinemperors.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/temple_of_ahnqiraj/boss_twinemperors.cpp
@@ -59,7 +59,13 @@ EndScriptData */
struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
{
+ boss_twinemperorsAI(Creature *c): ScriptedAI(c)
+ {
+ pInstance = c->GetInstanceData();
+ }
+
ScriptedInstance *pInstance;
+
uint32 Heal_Timer;
uint32 Teleport_Timer;
bool AfterTeleport;
@@ -73,11 +79,6 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
virtual void Reset() = 0;
virtual void CastSpellOnBug(Creature *target) = 0;
- boss_twinemperorsAI(Creature *c): ScriptedAI(c)
- {
- pInstance = c->GetInstanceData();
- }
-
void TwinReset()
{
Heal_Timer = 0; // first heal immediately when they get close together
@@ -95,13 +96,9 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
Creature *GetOtherBoss()
{
if (pInstance)
- {
return Unit::GetCreature(*m_creature, pInstance->GetData64(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR));
- }
else
- {
return NULL;
- }
}
void DamageTaken(Unit *done_by, uint32 &damage)
diff --git a/src/bindings/scripts/scripts/kalimdor/wailing_caverns/wailing_caverns.cpp b/src/bindings/scripts/scripts/kalimdor/wailing_caverns/wailing_caverns.cpp
index be222c33e3d..606eae462df 100644
--- a/src/bindings/scripts/scripts/kalimdor/wailing_caverns/wailing_caverns.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/wailing_caverns/wailing_caverns.cpp
@@ -353,7 +353,7 @@ CreatureAI* GetAI_npc_disciple_of_naralex(Creature* pCreature)
bool GossipHello_npc_disciple_of_naralex(Player* pPlayer, Creature* pCreature)
{
- ScriptedInstance *pInstance = (pCreature->GetInstanceData());
+ ScriptedInstance *pInstance = pCreature->GetInstanceData();
if (pInstance)
{
@@ -380,11 +380,12 @@ bool GossipHello_npc_disciple_of_naralex(Player* pPlayer, Creature* pCreature)
bool GossipSelect_npc_disciple_of_naralex(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
{
- ScriptedInstance *pInstance = (pCreature->GetInstanceData());
+ ScriptedInstance *pInstance = pCreature->GetInstanceData();
if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)
{
pPlayer->CLOSE_GOSSIP_MENU();
- if (pInstance)pInstance->SetData(TYPE_NARALEX_EVENT, IN_PROGRESS);
+ if (pInstance)
+ pInstance->SetData(TYPE_NARALEX_EVENT, IN_PROGRESS);
DoScriptText(SAY_MAKE_PREPARATIONS, pCreature);
@@ -408,4 +409,4 @@ void AddSC_wailing_caverns()
newscript->pGossipSelect = &GossipSelect_npc_disciple_of_naralex;
newscript->GetAI = &GetAI_npc_disciple_of_naralex;
newscript->RegisterSelf();
-} \ No newline at end of file
+}
diff --git a/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_anomalus.cpp b/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_anomalus.cpp
index 832dc9274e2..35675ff8a29 100644
--- a/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_anomalus.cpp
+++ b/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_anomalus.cpp
@@ -257,7 +257,7 @@ struct TRINITY_DLL_DECL mob_chaotic_riftAI : public Scripted_NoMovementAI
if (SPELL_CHAOTIC_ENERGY_BURST_Timer < diff)
{
- Unit* Anomalus = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_ANOMALUS));
+ Unit* Anomalus = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_ANOMALUS) : 0);
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
if (Anomalus && Anomalus->HasAura(SPELL_RIFT_SHIELD))
DoCast(target, SPELL_CHARGED_CHAOTIC_ENERGY_BURST);
@@ -272,7 +272,7 @@ struct TRINITY_DLL_DECL mob_chaotic_riftAI : public Scripted_NoMovementAI
if (Wraith)
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
Wraith->AI()->AttackStart(target);
- Unit* Anomalus = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_ANOMALUS));
+ Unit* Anomalus = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_ANOMALUS) : 0);
if (Anomalus && Anomalus->HasAura(SPELL_RIFT_SHIELD))
SUMMON_CRAZED_MANA_WRAITH_Timer = 5000;
else
diff --git a/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_keristrasza.cpp b/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_keristrasza.cpp
index 072e6db1a1f..58bf2b852a8 100644
--- a/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_keristrasza.cpp
+++ b/src/bindings/scripts/scripts/northrend/nexus/nexus/boss_keristrasza.cpp
@@ -127,6 +127,9 @@ struct TRINITY_DLL_DECL boss_keristraszaAI : public ScriptedAI
bool CheckContainmentSpheres(bool remove_prison = false)
{
+ if(!pInstance)
+ return false;
+
ContainmentSphereGUIDs[0] = pInstance->GetData64(ANOMALUS_CONTAINMET_SPHERE);
ContainmentSphereGUIDs[1] = pInstance->GetData64(ORMOROKS_CONTAINMET_SPHERE);
ContainmentSphereGUIDs[2] = pInstance->GetData64(TELESTRAS_CONTAINMET_SPHERE);
@@ -230,7 +233,7 @@ bool GOHello_containment_sphere(Player *pPlayer, GameObject *pGO)
{
ScriptedInstance *pInstance = pGO->GetInstanceData();
- Creature *Keristrasza = Unit::GetCreature(*pGO, pInstance->GetData64(DATA_KERISTRASZA));
+ Creature *Keristrasza = Unit::GetCreature(*pGO, pInstance ? pInstance->GetData64(DATA_KERISTRASZA) : 0);
if (Keristrasza && Keristrasza->isAlive())
{
// maybe these are hacks :(
diff --git a/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp b/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp
index 1a3d4f39937..6fe8b671cfb 100644
--- a/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp
+++ b/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp
@@ -355,9 +355,9 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
if (!UpdateVictim())
return;
- Unit* pTene = Unit::GetUnit(*m_creature, m_pInstance->GetData64(DATA_TENEBRON));
- Unit* pShad = Unit::GetUnit(*m_creature, m_pInstance->GetData64(DATA_SHADRON));
- Unit* pVesp = Unit::GetUnit(*m_creature, m_pInstance->GetData64(DATA_VESPERON));
+ Unit* pTene = Unit::GetUnit(*m_creature, m_pInstance ? m_pInstance->GetData64(DATA_TENEBRON) : 0);
+ Unit* pShad = Unit::GetUnit(*m_creature, m_pInstance ? m_pInstance->GetData64(DATA_SHADRON) : 0);
+ Unit* pVesp = Unit::GetUnit(*m_creature, m_pInstance ? m_pInstance->GetData64(DATA_VESPERON) : 0);
//spell will target dragons, if they are still alive at 35%
if (!m_bIsBerserk && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) <= 35 && (pTene->isAlive() || pShad->isAlive() || pVesp->isAlive()))
diff --git a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp
index 227d23b154a..2f81e6975b8 100644
--- a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp
+++ b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_ionar.cpp
@@ -63,7 +63,6 @@ struct TRINITY_DLL_DECL boss_ionarAI : public ScriptedAI
{
m_pInstance = pCreature->GetInstanceData();
m_bIsHeroic = pCreature->GetMap()->IsHeroic();
- Reset();
}
ScriptedInstance* m_pInstance;
@@ -346,7 +345,6 @@ struct TRINITY_DLL_DECL mob_spark_of_ionarAI : public ScriptedAI
mob_spark_of_ionarAI(Creature *pCreature) : ScriptedAI(pCreature)
{
m_pInstance = pCreature->GetInstanceData();
- Reset();
}
ScriptedInstance* m_pInstance;
diff --git a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_volkhan.cpp b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_volkhan.cpp
index 35eadb9783e..368b6370a0f 100644
--- a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_volkhan.cpp
+++ b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_volkhan.cpp
@@ -76,7 +76,6 @@ struct TRINITY_DLL_DECL boss_volkhanAI : public ScriptedAI
{
m_pInstance = pCreature->GetInstanceData();
m_bIsHeroic = pCreature->GetMap()->IsHeroic();
- Reset();
}
ScriptedInstance* m_pInstance;
@@ -366,13 +365,9 @@ struct TRINITY_DLL_DECL mob_molten_golemAI : public ScriptedAI
{
mob_molten_golemAI(Creature *pCreature) : ScriptedAI(pCreature)
{
- m_pInstance = pCreature->GetInstanceData();
m_bIsHeroic = pCreature->GetMap()->IsHeroic();
- Reset();
}
- ScriptedInstance* m_pInstance;
-
bool m_bIsHeroic;
bool m_bIsFrozen;
diff --git a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_assembly_of_iron.cpp b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_assembly_of_iron.cpp
index f22d242d8c1..be3ef898bad 100644
--- a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_assembly_of_iron.cpp
+++ b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_assembly_of_iron.cpp
@@ -118,9 +118,6 @@ struct TRINITY_DLL_DECL boss_steelbreakerAI : public ScriptedAI
boss_steelbreakerAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- if(!pInstance)
- return;
- Reset();
}
void Reset()
@@ -128,7 +125,8 @@ struct TRINITY_DLL_DECL boss_steelbreakerAI : public ScriptedAI
events.Reset();
phase = 0;
m_creature->RemoveAllAuras();
- pInstance->SetData(DATA_ASSEMBLY, NOT_STARTED);
+ if(pInstance)
+ pInstance->SetData(DATA_ASSEMBLY, NOT_STARTED);
}
EventMap events;
@@ -158,13 +156,13 @@ struct TRINITY_DLL_DECL boss_steelbreakerAI : public ScriptedAI
{
if(damage >= m_creature->GetHealth())
{
- if(Creature* Brundir = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_STORMCALLER_BRUNDIR)))
+ if(Creature* Brundir = Unit::GetCreature(*m_creature, pInstance ? pInstance->GetData64(DATA_STORMCALLER_BRUNDIR) : 0))
if(Brundir->isAlive())
{
Brundir->SetHealth(Brundir->GetMaxHealth());
}
- if(Creature* Molgeim = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_RUNEMASTER_MOLGEIM)))
+ if(Creature* Molgeim = Unit::GetCreature(*m_creature, pInstance ? pInstance->GetData64(DATA_RUNEMASTER_MOLGEIM) : 0))
if(Molgeim->isAlive())
{
Molgeim->SetHealth(Molgeim->GetMaxHealth());
@@ -175,7 +173,7 @@ struct TRINITY_DLL_DECL boss_steelbreakerAI : public ScriptedAI
void JustDied(Unit* Killer)
{
- if(IsEncounterComplete(pInstance, m_creature))
+ if(IsEncounterComplete(pInstance, m_creature) && pInstance)
pInstance->SetData(DATA_ASSEMBLY, DONE);
}
@@ -232,16 +230,12 @@ struct TRINITY_DLL_DECL boss_runemaster_molgeimAI : public ScriptedAI
boss_runemaster_molgeimAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- if(!pInstance)
- return;
-
- Reset();
-
}
void Reset()
{
- pInstance->SetData(DATA_ASSEMBLY, NOT_STARTED);
+ if(pInstance)
+ pInstance->SetData(DATA_ASSEMBLY, NOT_STARTED);
events.Reset();
m_creature->RemoveAllAuras();
phase = 0;
@@ -274,13 +268,13 @@ struct TRINITY_DLL_DECL boss_runemaster_molgeimAI : public ScriptedAI
{
if(damage >= m_creature->GetHealth())
{
- if(Creature* Steelbreaker = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_STEELBREAKER)))
+ if(Creature* Steelbreaker = Unit::GetCreature(*m_creature, pInstance ? pInstance->GetData64(DATA_STEELBREAKER) : 0))
if(Steelbreaker->isAlive())
{
Steelbreaker->SetHealth(Steelbreaker->GetMaxHealth());
}
- if(Creature* Brundir = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_STORMCALLER_BRUNDIR)))
+ if(Creature* Brundir = Unit::GetCreature((*m_creature), pInstance ? pInstance->GetData64(DATA_STORMCALLER_BRUNDIR) : 0))
if(Brundir->isAlive())
{
Brundir->SetHealth(Brundir->GetMaxHealth());
@@ -291,7 +285,7 @@ struct TRINITY_DLL_DECL boss_runemaster_molgeimAI : public ScriptedAI
void JustDied(Unit* Killer)
{
- if(IsEncounterComplete(pInstance, m_creature))
+ if(IsEncounterComplete(pInstance, m_creature) && pInstance)
pInstance->SetData(DATA_ASSEMBLY, DONE);
}
@@ -400,15 +394,12 @@ struct TRINITY_DLL_DECL boss_stormcaller_brundirAI : public ScriptedAI
boss_stormcaller_brundirAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- if(!pInstance)
- return;
-
- Reset();
}
void Reset()
{
- pInstance->SetData(DATA_ASSEMBLY, NOT_STARTED);
+ if(pInstance)
+ pInstance->SetData(DATA_ASSEMBLY, NOT_STARTED);
m_creature->RemoveAllAuras();
events.Reset();
phase = 0;
@@ -445,13 +436,13 @@ struct TRINITY_DLL_DECL boss_stormcaller_brundirAI : public ScriptedAI
{
if(damage >= m_creature->GetHealth())
{
- if(Creature* Steelbreaker = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_STEELBREAKER)))
+ if(Creature* Steelbreaker = Unit::GetCreature(*m_creature, pInstance ? pInstance->GetData64(DATA_STEELBREAKER) : 0))
if(Steelbreaker->isAlive())
{
Steelbreaker->SetHealth(Steelbreaker->GetMaxHealth());
}
- if(Creature* Molgeim = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_RUNEMASTER_MOLGEIM)))
+ if(Creature* Molgeim = Unit::GetCreature(*m_creature, pInstance ? pInstance->GetData64(DATA_RUNEMASTER_MOLGEIM) : 0))
if(Molgeim->isAlive())
{
Molgeim->SetHealth(Molgeim->GetMaxHealth());
@@ -463,7 +454,7 @@ struct TRINITY_DLL_DECL boss_stormcaller_brundirAI : public ScriptedAI
void JustDied(Unit* Killer)
{
- if(IsEncounterComplete(pInstance, m_creature))
+ if(IsEncounterComplete(pInstance, m_creature) && pInstance)
pInstance->SetData(DATA_ASSEMBLY, DONE);
}
diff --git a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp
index a2445a97229..d0b5722a92f 100644
--- a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp
+++ b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_ingvar_the_plunderer.cpp
@@ -311,7 +311,7 @@ struct TRINITY_DLL_DECL mob_annhylde_the_callerAI : public ScriptedAI
m_creature->GetPosition(x,y,z);
DoTeleportTo(x+1,y,z+30);
- Unit* ingvar = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_INGVAR));
+ Unit* ingvar = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_INGVAR) : 0);
if (ingvar)
{
m_creature->GetMotionMaster()->MovePoint(1,x,y,z+15);
@@ -324,7 +324,7 @@ struct TRINITY_DLL_DECL mob_annhylde_the_callerAI : public ScriptedAI
{
if (type != POINT_MOTION_TYPE)
return;
- Unit* ingvar = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_INGVAR));
+ Unit* ingvar = Unit::GetUnit((*m_creature), pInstance ? pInstance->GetData64(DATA_INGVAR) : 0);
if (ingvar)
{
switch (id)
@@ -354,7 +354,7 @@ struct TRINITY_DLL_DECL mob_annhylde_the_callerAI : public ScriptedAI
{
if (Resurect_Phase == 1)
{
- Unit* ingvar = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_INGVAR));
+ Unit* ingvar = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_INGVAR) : 0);
if (ingvar)
{
ingvar->SetStandState(UNIT_STAND_STATE_STAND);
@@ -364,7 +364,7 @@ struct TRINITY_DLL_DECL mob_annhylde_the_callerAI : public ScriptedAI
Resurect_Phase = 2;
}else if (Resurect_Phase == 2)
{
- Creature* ingvar = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_INGVAR));
+ Creature* ingvar = Unit::GetCreature(*m_creature, pInstance ? pInstance->GetData64(DATA_INGVAR) : 0);
if (ingvar)
{
ingvar->RemoveAurasDueToSpell(SPELL_SCOURG_RESURRECTION_DUMMY);
@@ -398,15 +398,12 @@ struct TRINITY_DLL_DECL mob_ingvar_throw_dummyAI : public ScriptedAI
{
mob_ingvar_throw_dummyAI(Creature *c) : ScriptedAI(c)
{
- pInstance = c->GetInstanceData();
HeroicMode = c->GetMap()->IsHeroic();
}
bool HeroicMode;
uint32 Despawn_Timer;
- ScriptedInstance* pInstance;
-
void Reset()
{
Unit* target = m_creature->FindNearestCreature(ENTRY_THROW_TARGET,50);
diff --git a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_keleseth.cpp b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_keleseth.cpp
index b7701a52472..27e8823d2a4 100644
--- a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_keleseth.cpp
+++ b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_keleseth.cpp
@@ -297,7 +297,7 @@ struct TRINITY_DLL_DECL mob_vrykul_skeletonAI : public ScriptedAI
void UpdateAI(const uint32 diff)
{
- if (pInstance->GetData(DATA_PRINCEKELESETH_EVENT) == IN_PROGRESS)
+ if (pInstance && pInstance->GetData(DATA_PRINCEKELESETH_EVENT) == IN_PROGRESS)
{
if (isDead)
{
diff --git a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp
index 49811125594..c4f6dba8c3a 100644
--- a/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp
+++ b/src/bindings/scripts/scripts/northrend/utgarde_keep/utgarde_keep/boss_skarvald_dalronn.cpp
@@ -61,7 +61,7 @@ struct TRINITY_DLL_DECL boss_skarvald_the_constructorAI : public ScriptedAI
boss_skarvald_the_constructorAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- HeroicMode = m_creature->GetMap()->IsHeroic();
+ HeroicMode = c->GetMap()->IsHeroic();
}
ScriptedInstance* pInstance;
@@ -82,20 +82,19 @@ struct TRINITY_DLL_DECL boss_skarvald_the_constructorAI : public ScriptedAI
Check_Timer = 5000;
ghost = (m_creature->GetEntry() == MOB_SKARVALD_GHOST);
- if (!ghost)
+ if (!ghost && pInstance)
{
Unit* dalronn = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_DALRONN));
if (dalronn && dalronn->isDead())
CAST_CRE(dalronn)->Respawn();
- if (pInstance)
- pInstance->SetData(DATA_SKARVALD_DALRONN_EVENT, NOT_STARTED);
+ pInstance->SetData(DATA_SKARVALD_DALRONN_EVENT, NOT_STARTED);
}
}
void EnterCombat(Unit *who)
{
- if (!ghost)
+ if (!ghost && pInstance)
{
DoScriptText(YELL_SKARVALD_AGGRO,m_creature);
@@ -103,14 +102,13 @@ struct TRINITY_DLL_DECL boss_skarvald_the_constructorAI : public ScriptedAI
if (dalronn && dalronn->isAlive() && !dalronn->getVictim())
dalronn->getThreatManager().addThreat(who,0.0f);
- if (pInstance)
- pInstance->SetData(DATA_SKARVALD_DALRONN_EVENT, IN_PROGRESS);
+ pInstance->SetData(DATA_SKARVALD_DALRONN_EVENT, IN_PROGRESS);
}
}
void JustDied(Unit* Killer)
{
- if (!ghost)
+ if (!ghost && pInstance)
{
Unit* dalronn = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_DALRONN));
if (dalronn)
@@ -119,8 +117,7 @@ struct TRINITY_DLL_DECL boss_skarvald_the_constructorAI : public ScriptedAI
{
DoScriptText(YELL_SKARVALD_DAL_DIED,m_creature);
- if (pInstance)
- pInstance->SetData(DATA_SKARVALD_DALRONN_EVENT, DONE);
+ pInstance->SetData(DATA_SKARVALD_DALRONN_EVENT, DONE);
}
else
{
@@ -151,10 +148,8 @@ struct TRINITY_DLL_DECL boss_skarvald_the_constructorAI : public ScriptedAI
{
if (ghost)
{
- if (pInstance->GetData(DATA_SKARVALD_DALRONN_EVENT) != IN_PROGRESS)
- {
+ if (pInstance && pInstance->GetData(DATA_SKARVALD_DALRONN_EVENT) != IN_PROGRESS)
m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
- }
}
if (!UpdateVictim())
@@ -166,7 +161,7 @@ struct TRINITY_DLL_DECL boss_skarvald_the_constructorAI : public ScriptedAI
if (Check_Timer < diff)
{
Check_Timer = 5000;
- Unit* dalronn = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_DALRONN));
+ Unit* dalronn = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_DALRONN) : 0);
if (dalronn && dalronn->isDead())
{
Dalronn_isDead = true;
@@ -211,7 +206,7 @@ struct TRINITY_DLL_DECL boss_dalronn_the_controllerAI : public ScriptedAI
boss_dalronn_the_controllerAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- HeroicMode = m_creature->GetMap()->IsHeroic();
+ HeroicMode = c->GetMap()->IsHeroic();
}
ScriptedInstance* pInstance;
@@ -238,14 +233,13 @@ struct TRINITY_DLL_DECL boss_dalronn_the_controllerAI : public ScriptedAI
AggroYell_Timer = 0;
ghost = m_creature->GetEntry() == MOB_DALRONN_GHOST;
- if (!ghost)
+ if (!ghost && pInstance)
{
Unit* skarvald = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_SKARVALD));
if (skarvald && skarvald->isDead())
CAST_CRE(skarvald)->Respawn();
- if (pInstance)
- pInstance->SetData(DATA_SKARVALD_DALRONN_EVENT, NOT_STARTED);
+ pInstance->SetData(DATA_SKARVALD_DALRONN_EVENT, NOT_STARTED);
}
}
@@ -305,10 +299,8 @@ struct TRINITY_DLL_DECL boss_dalronn_the_controllerAI : public ScriptedAI
{
if (ghost)
{
- if (pInstance->GetData(DATA_SKARVALD_DALRONN_EVENT) != IN_PROGRESS)
- {
+ if (pInstance && pInstance->GetData(DATA_SKARVALD_DALRONN_EVENT) != IN_PROGRESS)
m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
- }
}
if (!UpdateVictim())
@@ -328,7 +320,7 @@ struct TRINITY_DLL_DECL boss_dalronn_the_controllerAI : public ScriptedAI
if (Check_Timer < diff)
{
Check_Timer = 5000;
- Unit* skarvald = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_SKARVALD));
+ Unit* skarvald = Unit::GetUnit(*m_creature, pInstance ? pInstance->GetData64(DATA_SKARVALD) : 0);
if (skarvald && skarvald->isDead())
{
Skarvald_isDead = true;
@@ -394,4 +386,4 @@ void AddSC_boss_skarvald_dalronn()
newscript->Name="boss_dalronn_the_controller";
newscript->GetAI = &GetAI_boss_dalronn_the_controller;
newscript->RegisterSelf();
-} \ No newline at end of file
+}
diff --git a/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp b/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp
index 0cc6255f3cf..1f6cd030ed9 100644
--- a/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp
+++ b/src/bindings/scripts/scripts/outland/auchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp
@@ -127,7 +127,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI
boss_grandmaster_vorpilAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- HeroicMode = m_creature->GetMap()->IsHeroic();
+ HeroicMode = c->GetMap()->IsHeroic();
Intro = false;
}
diff --git a/src/bindings/scripts/scripts/outland/black_temple/black_temple.cpp b/src/bindings/scripts/scripts/outland/black_temple/black_temple.cpp
index 7f0f1e570ba..270dafabe54 100644
--- a/src/bindings/scripts/scripts/outland/black_temple/black_temple.cpp
+++ b/src/bindings/scripts/scripts/outland/black_temple/black_temple.cpp
@@ -37,7 +37,7 @@ EndContentData */
bool GossipHello_npc_spirit_of_olum(Player* pPlayer, Creature* pCreature)
{
- ScriptedInstance* pInstance = (pCreature->GetInstanceData());
+ ScriptedInstance* pInstance = pCreature->GetInstanceData();
if (pInstance && (pInstance->GetData(DATA_SUPREMUSEVENT) >= DONE) && (pInstance->GetData(DATA_HIGHWARLORDNAJENTUSEVENT) >= DONE))
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_OLUM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
diff --git a/src/bindings/scripts/scripts/outland/black_temple/boss_illidan.cpp b/src/bindings/scripts/scripts/outland/black_temple/boss_illidan.cpp
index d6825d0c42e..a35c0723181 100644
--- a/src/bindings/scripts/scripts/outland/black_temple/boss_illidan.cpp
+++ b/src/bindings/scripts/scripts/outland/black_temple/boss_illidan.cpp
@@ -1123,7 +1123,8 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI
void EnterPhase(PhaseAkama NextPhase)
{
- if (!pInstance) return;
+ if (!pInstance)
+ return;
switch(NextPhase)
{
case PHASE_CHANNEL:
@@ -1241,7 +1242,8 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI
m_creature->InterruptNonMeleeSpells(true);
Spirit[0]->InterruptNonMeleeSpells(true);
Spirit[1]->InterruptNonMeleeSpells(true);
- pInstance->HandleGameObject(GateGUID, true);
+ if(pInstance)
+ pInstance->HandleGameObject(GateGUID, true);
Timer = 2000;
break;
case 4:
@@ -1271,7 +1273,8 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI
{
case 6:
for(uint8 i = 0; i < 2; ++i)
- pInstance->HandleGameObject(DoorGUID[i], true);
+ if(pInstance)
+ pInstance->HandleGameObject(DoorGUID[i], true);
break;
case 8:
if (Phase == PHASE_WALK)
diff --git a/src/bindings/scripts/scripts/outland/black_temple/boss_shade_of_akama.cpp b/src/bindings/scripts/scripts/outland/black_temple/boss_shade_of_akama.cpp
index ea987bf4963..2c4062507e4 100644
--- a/src/bindings/scripts/scripts/outland/black_temple/boss_shade_of_akama.cpp
+++ b/src/bindings/scripts/scripts/outland/black_temple/boss_shade_of_akama.cpp
@@ -231,7 +231,7 @@ struct TRINITY_DLL_DECL boss_shade_of_akamaAI : public ScriptedAI
//m_creature->GetMotionMaster()->MoveIdle();
m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_STUN);
- if (pInstance && m_creature->isAlive())
+ if (pInstance)
pInstance->SetData(DATA_SHADEOFAKAMAEVENT, NOT_STARTED);
reseting = false;
@@ -667,7 +667,8 @@ struct TRINITY_DLL_DECL npc_akamaAI : public ScriptedAI
if (ShadeHasDied && (WayPointId == 1))
{
- if (pInstance) pInstance->SetData(DATA_SHADEOFAKAMAEVENT, DONE);
+ if (pInstance)
+ pInstance->SetData(DATA_SHADEOFAKAMAEVENT, DONE);
m_creature->GetMotionMaster()->MovePoint(WayPointId, AkamaWP[1].x, AkamaWP[1].y, AkamaWP[1].z);
++WayPointId;
}
diff --git a/src/bindings/scripts/scripts/outland/black_temple/illidari_council.cpp b/src/bindings/scripts/scripts/outland/black_temple/illidari_council.cpp
index 6b86140b659..6f1af517eac 100644
--- a/src/bindings/scripts/scripts/outland/black_temple/illidari_council.cpp
+++ b/src/bindings/scripts/scripts/outland/black_temple/illidari_council.cpp
@@ -137,7 +137,7 @@ struct TRINITY_DLL_DECL mob_blood_elf_council_voice_triggerAI : public ScriptedA
// finds and stores the GUIDs for each Council member using instance data system.
void LoadCouncilGUIDs()
{
- if (ScriptedInstance* pInstance = (m_creature->GetInstanceData()))
+ if (ScriptedInstance* pInstance = m_creature->GetInstanceData())
{
Council[0] = pInstance->GetData64(DATA_GATHIOSTHESHATTERER);
Council[1] = pInstance->GetData64(DATA_VERASDARKSHADOW);
@@ -251,7 +251,8 @@ struct TRINITY_DLL_DECL mob_illidari_councilAI : public ScriptedAI
void StartEvent(Unit *target)
{
- if (!pInstance) return;
+ if (!pInstance)
+ return;
if (target && target->isAlive())
{
diff --git a/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp b/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp
index 434e088cd99..acae57a8f72 100644
--- a/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp
+++ b/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp
@@ -82,6 +82,7 @@ struct TRINITY_DLL_DECL boss_hydross_the_unstableAI : public ScriptedAI
}
ScriptedInstance* pInstance;
+
uint64 beams[2];
uint32 PosCheck_Timer;
uint32 MarkOfHydross_Timer;
diff --git a/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp b/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp
index c1a2280653c..24e72c656e1 100644
--- a/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp
+++ b/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp
@@ -135,7 +135,7 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI
pInstance = c->GetInstanceData();
Intro = false;
JustCreated = true;
- m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); //set it only once on Creature create (no need do intro if wiped)
+ c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); //set it only once on Creature create (no need do intro if wiped)
}
ScriptedInstance *pInstance;
@@ -924,7 +924,7 @@ struct TRINITY_DLL_DECL mob_shield_generator_channelAI : public ScriptedAI
bool ItemUse_item_tainted_core(Player* pPlayer, Item* _Item, SpellCastTargets const& targets)
{
- ScriptedInstance *pInstance = (pPlayer->GetInstanceData()) ? (pPlayer->GetInstanceData()) : NULL;
+ ScriptedInstance *pInstance = pPlayer->GetInstanceData();
if (!pInstance)
{
diff --git a/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp b/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp
index 02a88b214db..3fb2c929d7c 100644
--- a/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp
+++ b/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp
@@ -148,7 +148,7 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI
{
boss_leotheras_the_blindAI(Creature *c) : ScriptedAI(c)
{
- m_creature->GetPosition(x,y,z);
+ c->GetPosition(x,y,z);
pInstance = c->GetInstanceData();
Demon = 0;
diff --git a/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp b/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp
index 38abc8f1507..30911809240 100644
--- a/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp
+++ b/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp
@@ -222,7 +222,7 @@ struct TRINITY_DLL_DECL boss_the_lurker_belowAI : public Scripted_NoMovementAI
}else SpoutAnimTimer-=diff;
Map* pMap = m_creature->GetMap();
- if (pMap->IsDungeon() && pInstance->GetData(DATA_THELURKERBELOWEVENT) == IN_PROGRESS)
+ if (pMap->IsDungeon() && pInstance && pInstance->GetData(DATA_THELURKERBELOWEVENT) == IN_PROGRESS)
{
Map::PlayerList const &PlayerList = pMap->GetPlayers();
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
@@ -258,7 +258,7 @@ struct TRINITY_DLL_DECL boss_the_lurker_belowAI : public Scripted_NoMovementAI
//Check if players in water and if in water cast spell
Map* pMap = m_creature->GetMap();
- if (pMap->IsDungeon() && pInstance->GetData(DATA_THELURKERBELOWEVENT) == IN_PROGRESS)
+ if (pMap->IsDungeon() && pInstance && pInstance->GetData(DATA_THELURKERBELOWEVENT) == IN_PROGRESS)
{
Map::PlayerList const &PlayerList = pMap->GetPlayers();
diff --git a/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp b/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp
index 80e05cc494b..c5246a3d1cf 100644
--- a/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp
+++ b/src/bindings/scripts/scripts/outland/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp
@@ -104,6 +104,7 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI
}
ScriptedInstance* pInstance;
+
Map::PlayerList const *PlayerList;
uint32 TidalWave_Timer;
diff --git a/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp b/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp
index 3bec4de6876..2b0b9cda16e 100644
--- a/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp
+++ b/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp
@@ -62,7 +62,7 @@ struct TRINITY_DLL_DECL boss_thespiaAI : public ScriptedAI
LungBurst_Timer = 7000;
EnvelopingWinds_Timer = 9000;
- if (pInstance && m_creature->isAlive())
+ if (pInstance)
pInstance->SetData(TYPE_HYDROMANCER_THESPIA, NOT_STARTED);
}
diff --git a/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp b/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp
index d8cc2e0ef47..813051e04f7 100644
--- a/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp
+++ b/src/bindings/scripts/scripts/outland/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp
@@ -51,7 +51,7 @@ struct TRINITY_DLL_DECL boss_mekgineer_steamriggerAI : public ScriptedAI
boss_mekgineer_steamriggerAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- HeroicMode = m_creature->GetMap()->IsHeroic();
+ HeroicMode = c->GetMap()->IsHeroic();
}
ScriptedInstance *pInstance;
@@ -74,7 +74,7 @@ struct TRINITY_DLL_DECL boss_mekgineer_steamriggerAI : public ScriptedAI
Summon50 = false;
Summon25 = false;
- if (pInstance && m_creature->isAlive())
+ if (pInstance)
pInstance->SetData(TYPE_MEKGINEER_STEAMRIGGER, NOT_STARTED);
}
@@ -200,7 +200,7 @@ struct TRINITY_DLL_DECL mob_steamrigger_mechanicAI : public ScriptedAI
mob_steamrigger_mechanicAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- HeroicMode = m_creature->GetMap()->IsHeroic();
+ HeroicMode = c->GetMap()->IsHeroic();
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/outland/gruuls_lair/boss_high_king_maulgar.cpp b/src/bindings/scripts/scripts/outland/gruuls_lair/boss_high_king_maulgar.cpp
index 6918feaabba..bf5f0cb8224 100644
--- a/src/bindings/scripts/scripts/outland/gruuls_lair/boss_high_king_maulgar.cpp
+++ b/src/bindings/scripts/scripts/outland/gruuls_lair/boss_high_king_maulgar.cpp
@@ -193,11 +193,14 @@ struct TRINITY_DLL_DECL boss_high_king_maulgarAI : public ScriptedAI
void GetCouncil()
{
- //get council member's guid to respawn them if needed
- Council[0] = pInstance->GetData64(DATA_KIGGLERTHECRAZED);
- Council[1] = pInstance->GetData64(DATA_BLINDEYETHESEER);
- Council[2] = pInstance->GetData64(DATA_OLMTHESUMMONER);
- Council[3] = pInstance->GetData64(DATA_KROSHFIREHAND);
+ if(pInstance)
+ {
+ //get council member's guid to respawn them if needed
+ Council[0] = pInstance->GetData64(DATA_KIGGLERTHECRAZED);
+ Council[1] = pInstance->GetData64(DATA_BLINDEYETHESEER);
+ Council[2] = pInstance->GetData64(DATA_OLMTHESUMMONER);
+ Council[3] = pInstance->GetData64(DATA_KROSHFIREHAND);
+ }
}
void StartEvent(Unit *who)
diff --git a/src/bindings/scripts/scripts/outland/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp b/src/bindings/scripts/scripts/outland/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp
index 097a1f21a0d..4e61cc421ed 100644
--- a/src/bindings/scripts/scripts/outland/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp
+++ b/src/bindings/scripts/scripts/outland/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp
@@ -286,11 +286,9 @@ struct TRINITY_DLL_DECL mob_shadowmoon_channelerAI : public ScriptedAI
{
mob_shadowmoon_channelerAI(Creature *c) : ScriptedAI(c)
{
- pInstance = c->GetInstanceData();
HeroicMode = c->GetMap()->IsHeroic();
}
- ScriptedInstance* pInstance;
bool HeroicMode;
uint32 ShadowBolt_Timer;
diff --git a/src/bindings/scripts/scripts/outland/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp b/src/bindings/scripts/scripts/outland/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp
index 24a3afa1d4b..dd4f20b7c86 100644
--- a/src/bindings/scripts/scripts/outland/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp
+++ b/src/bindings/scripts/scripts/outland/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp
@@ -169,7 +169,7 @@ struct TRINITY_DLL_DECL boss_magtheridonAI : public ScriptedAI
{
boss_magtheridonAI(Creature *c) : ScriptedAI(c)
{
- pInstance =m_creature->GetInstanceData();
+ pInstance = c->GetInstanceData();
m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 10);
m_creature->SetFloatValue(UNIT_FIELD_COMBATREACH, 10);
@@ -511,7 +511,8 @@ struct TRINITY_DLL_DECL mob_hellfire_channelerAI : public ScriptedAI
bool GOHello_go_Manticron_Cube(Player* pPlayer, GameObject* pGo)
{
ScriptedInstance* pInstance = pGo->GetInstanceData();
- if (!pInstance) return true;
+ if (!pInstance)
+ return true;
if (pInstance->GetData(DATA_MAGTHERIDON_EVENT) != IN_PROGRESS) return true;
Creature *Magtheridon =Unit::GetCreature(*pGo, pInstance->GetData64(DATA_MAGTHERIDON));
if (!Magtheridon || !Magtheridon->isAlive()) return true;
diff --git a/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_nethekurse.cpp b/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_nethekurse.cpp
index 721d1efd03c..26ee586877c 100644
--- a/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_nethekurse.cpp
+++ b/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_nethekurse.cpp
@@ -78,7 +78,7 @@ struct TRINITY_DLL_DECL boss_grand_warlock_nethekurseAI : public ScriptedAI
boss_grand_warlock_nethekurseAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- HeroicMode = m_creature->GetMap()->IsHeroic();
+ HeroicMode = c->GetMap()->IsHeroic();
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp b/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp
index 0681e94e2b0..524c8e7b92a 100644
--- a/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp
+++ b/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp
@@ -138,7 +138,7 @@ struct TRINITY_DLL_DECL boss_warbringer_omroggAI : public ScriptedAI
LeftHeadGUID = 0;
RightHeadGUID = 0;
pInstance = c->GetInstanceData();
- HeroicMode = m_creature->GetMap()->IsHeroic();
+ HeroicMode = c->GetMap()->IsHeroic();
}
ScriptedInstance* pInstance;
diff --git a/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp b/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp
index 4fa673f3560..8fb3d72c218 100644
--- a/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp
+++ b/src/bindings/scripts/scripts/outland/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp
@@ -52,11 +52,9 @@ struct TRINITY_DLL_DECL boss_warchief_kargath_bladefistAI : public ScriptedAI
{
boss_warchief_kargath_bladefistAI(Creature *c) : ScriptedAI(c)
{
- pInstance = c->GetInstanceData();
- HeroicMode = m_creature->GetMap()->IsHeroic();
+ HeroicMode = c->GetMap()->IsHeroic();
}
- ScriptedInstance* pInstance;
bool HeroicMode;
std::vector<uint64> adds;
diff --git a/src/bindings/scripts/scripts/outland/tempest_keep/arcatraz/arcatraz.cpp b/src/bindings/scripts/scripts/outland/tempest_keep/arcatraz/arcatraz.cpp
index fc855b74bd9..794f831ee40 100644
--- a/src/bindings/scripts/scripts/outland/tempest_keep/arcatraz/arcatraz.cpp
+++ b/src/bindings/scripts/scripts/outland/tempest_keep/arcatraz/arcatraz.cpp
@@ -380,7 +380,10 @@ struct TRINITY_DLL_DECL npc_warden_mellicharAI : public ScriptedAI
if (pInstance)
{
if (pInstance->GetData(TYPE_HARBINGERSKYRISS) == FAIL)
+ {
Reset();
+ return;
+ }
}
if (CanSpawn)
diff --git a/src/bindings/scripts/scripts/outland/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp b/src/bindings/scripts/scripts/outland/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp
index bcab1a6257f..c25684ae13e 100644
--- a/src/bindings/scripts/scripts/outland/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp
+++ b/src/bindings/scripts/scripts/outland/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp
@@ -58,7 +58,7 @@ struct TRINITY_DLL_DECL boss_harbinger_skyrissAI : public ScriptedAI
boss_harbinger_skyrissAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- HeroicMode = m_creature->GetMap()->IsHeroic();
+ HeroicMode = c->GetMap()->IsHeroic();
Intro = false;
}
@@ -278,11 +278,9 @@ struct TRINITY_DLL_DECL boss_harbinger_skyriss_illusionAI : public ScriptedAI
{
boss_harbinger_skyriss_illusionAI(Creature *c) : ScriptedAI(c)
{
- pInstance = c->GetInstanceData();
- HeroicMode = m_creature->GetMap()->IsHeroic();
+ HeroicMode = c->GetMap()->IsHeroic();
}
- ScriptedInstance *pInstance;
bool HeroicMode;
void Reset() { }
diff --git a/src/bindings/scripts/scripts/outland/tempest_keep/the_eye/boss_alar.cpp b/src/bindings/scripts/scripts/outland/tempest_keep/the_eye/boss_alar.cpp
index 3dcebb1671a..89d5a68bcbd 100644
--- a/src/bindings/scripts/scripts/outland/tempest_keep/the_eye/boss_alar.cpp
+++ b/src/bindings/scripts/scripts/outland/tempest_keep/the_eye/boss_alar.cpp
@@ -70,7 +70,7 @@ struct TRINITY_DLL_DECL boss_alarAI : public ScriptedAI
boss_alarAI(Creature *c) : ScriptedAI(c)
{
pInstance =c->GetInstanceData();
- DefaultMoveSpeedRate = m_creature->GetSpeedRate(MOVE_RUN);
+ DefaultMoveSpeedRate = c->GetSpeedRate(MOVE_RUN);
}
ScriptedInstance *pInstance;
@@ -431,8 +431,8 @@ struct TRINITY_DLL_DECL mob_ember_of_alarAI : public ScriptedAI
mob_ember_of_alarAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- m_creature->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING);
- m_creature->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true);
+ c->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING);
+ c->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FIRE, true);
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/outland/tempest_keep/the_eye/boss_astromancer.cpp b/src/bindings/scripts/scripts/outland/tempest_keep/the_eye/boss_astromancer.cpp
index 81f3c619bac..b5eb0e24d50 100644
--- a/src/bindings/scripts/scripts/outland/tempest_keep/the_eye/boss_astromancer.cpp
+++ b/src/bindings/scripts/scripts/outland/tempest_keep/the_eye/boss_astromancer.cpp
@@ -75,8 +75,8 @@ struct TRINITY_DLL_DECL boss_high_astromancer_solarianAI : public ScriptedAI
{
pInstance = c->GetInstanceData();
- defaultarmor = m_creature->GetArmor();
- defaultsize = m_creature->GetFloatValue(OBJECT_FIELD_SCALE_X);
+ defaultarmor = c->GetArmor();
+ defaultsize = c->GetFloatValue(OBJECT_FIELD_SCALE_X);
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/outland/tempest_keep/the_eye/boss_kaelthas.cpp b/src/bindings/scripts/scripts/outland/tempest_keep/the_eye/boss_kaelthas.cpp
index d341e52ae06..7b5754a421a 100644
--- a/src/bindings/scripts/scripts/outland/tempest_keep/the_eye/boss_kaelthas.cpp
+++ b/src/bindings/scripts/scripts/outland/tempest_keep/the_eye/boss_kaelthas.cpp
@@ -620,7 +620,8 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD))
{
Phase = 2;
- m_pInstance->SetData(DATA_KAELTHASEVENT, 2);
+ if(m_pInstance)
+ m_pInstance->SetData(DATA_KAELTHASEVENT, 2);
DoScriptText(SAY_PHASE2_WEAPON, m_creature);
@@ -661,7 +662,8 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
if (Phase_Timer < diff)
{
DoScriptText(SAY_PHASE3_ADVANCE, m_creature);
- m_pInstance->SetData(DATA_KAELTHASEVENT, 3);
+ if(m_pInstance)
+ m_pInstance->SetData(DATA_KAELTHASEVENT, 3);
Phase = 3;
PhaseSubphase = 0;
}else Phase_Timer -= diff;
@@ -695,7 +697,8 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
DoScriptText(SAY_PHASE4_INTRO2, m_creature);
Phase = 4;
- m_pInstance->SetData(DATA_KAELTHASEVENT, 4);
+ if(m_pInstance)
+ m_pInstance->SetData(DATA_KAELTHASEVENT, 4);
// Sometimes people can collect Aggro in Phase 1-3. Reset threat before releasing Kael.
DoResetThreat();
@@ -800,7 +803,8 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
{
if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 50)
{
- m_pInstance->SetData(DATA_KAELTHASEVENT, 4);
+ if(m_pInstance)
+ m_pInstance->SetData(DATA_KAELTHASEVENT, 4);
Phase = 5;
Phase_Timer = 10000;
diff --git a/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp b/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp
index a1ca31c3e5e..75514eb6c6b 100644
--- a/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp
+++ b/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp
@@ -44,12 +44,9 @@ struct TRINITY_DLL_DECL boss_gatewatcher_iron_handAI : public ScriptedAI
{
boss_gatewatcher_iron_handAI(Creature *c) : ScriptedAI(c)
{
- pInstance = c->GetInstanceData();
- HeroicMode = m_creature->GetMap()->IsHeroic();
+ HeroicMode = c->GetMap()->IsHeroic();
}
- ScriptedInstance *pInstance;
-
bool HeroicMode;
uint32 Shadow_Power_Timer;
@@ -83,10 +80,6 @@ struct TRINITY_DLL_DECL boss_gatewatcher_iron_handAI : public ScriptedAI
void JustDied(Unit* Killer)
{
DoScriptText(SAY_DEATH_1, m_creature);
-
- if (!pInstance)
- return;
-
//TODO: Add door check/open code
}
diff --git a/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp b/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp
index da6c613d794..7f88a4d6954 100644
--- a/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp
+++ b/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp
@@ -46,7 +46,7 @@ struct TRINITY_DLL_DECL boss_nethermancer_sepethreaAI : public ScriptedAI
boss_nethermancer_sepethreaAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
- HeroicMode = m_creature->GetMap()->IsHeroic();
+ HeroicMode = c->GetMap()->IsHeroic();
}
ScriptedInstance *pInstance;
diff --git a/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp b/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp
index 1e06232c9b6..716829076eb 100644
--- a/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp
+++ b/src/bindings/scripts/scripts/outland/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp
@@ -52,7 +52,7 @@ struct TRINITY_DLL_DECL boss_pathaleon_the_calculatorAI : public ScriptedAI
{
boss_pathaleon_the_calculatorAI(Creature *c) : ScriptedAI(c), summons(m_creature)
{
- HeroicMode = m_creature->GetMap()->IsHeroic();
+ HeroicMode = c->GetMap()->IsHeroic();
}
uint32 Summon_Timer;
@@ -179,8 +179,6 @@ struct TRINITY_DLL_DECL mob_nether_wraithAI : public ScriptedAI
{
mob_nether_wraithAI(Creature *c) : ScriptedAI(c) {}
- ScriptedInstance *pInstance;
-
uint32 ArcaneMissiles_Timer;
uint32 Detonation_Timer;
uint32 Die_Timer;