diff options
24 files changed, 126 insertions, 263 deletions
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp index 60d09bef6cd..0c0303b0f40 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp @@ -458,10 +458,7 @@ struct TRINITY_DLL_DECL boss_illidan_stormrageAI : public ScriptedAI pInstance->SetData(DATA_ILLIDANSTORMRAGEEVENT, DONE); // Completed for(uint8 i = DATA_GAMEOBJECT_ILLIDAN_DOOR_R; i < DATA_GAMEOBJECT_ILLIDAN_DOOR_L + 1; ++i) - { - if (GameObject* pDoor = pInstance->instance->GetGameObject(pInstance->GetData64(i))) - pDoor->SetGoState(GO_STATE_ACTIVE); // Open Doors - } + pInstance->HandleGameObject(pInstance->GetData64(i), true); } void KilledUnit(Unit *victim) @@ -1002,11 +999,11 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI DoorGUID[0] = pInstance->GetData64(DATA_GAMEOBJECT_ILLIDAN_DOOR_R); DoorGUID[1] = pInstance->GetData64(DATA_GAMEOBJECT_ILLIDAN_DOOR_L); - if(GETGO(Gate, GateGUID)) - Gate->SetGoState(GO_STATE_READY); + pInstance->HandleGameObject(pInstance->GetData64(GateGUID), false); + for(uint8 i = 0; i < 2; i++) - if(GETGO(Door, DoorGUID[i])) - Door->SetGoState(GO_STATE_READY); + pInstance->HandleGameObject(pInstance->GetData64(DoorGUID[i]), false); + } else { @@ -1070,12 +1067,13 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI void BeginTalk() { - if(pInstance) - pInstance->SetData(DATA_ILLIDANSTORMRAGEEVENT, IN_PROGRESS); + if(!pInstance) + return; + + pInstance->SetData(DATA_ILLIDANSTORMRAGEEVENT, IN_PROGRESS); for(uint8 i = 0; i < 2; i++) - if(GETGO(Door, DoorGUID[i])) - Door->SetGoState(GO_STATE_READY); + pInstance->HandleGameObject(pInstance->GetData64(DoorGUID[i]), false); if(GETCRE(Illidan, IllidanGUID)) { @@ -1240,8 +1238,7 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI m_creature->InterruptNonMeleeSpells(true); Spirit[0]->InterruptNonMeleeSpells(true); Spirit[1]->InterruptNonMeleeSpells(true); - if(GETGO(Gate, GateGUID)) - Gate->SetGoState(GO_STATE_ACTIVE); + pInstance->HandleGameObject(pInstance->GetData64(GateGUID), true); Timer = 2000; break; case 4: @@ -1271,8 +1268,7 @@ struct TRINITY_DLL_DECL npc_akama_illidanAI : public ScriptedAI { case 6: for(uint8 i = 0; i < 2; i++) - if(GETGO(Door, DoorGUID[i])) - Door->SetGoState(GO_STATE_ACTIVE); + pInstance->HandleGameObject(pInstance->GetData64(DoorGUID[i]), true); break; case 8: if(Phase == PHASE_WALK) diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp index 1805019dc42..6fc202f2105 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp @@ -103,17 +103,6 @@ struct TRINITY_DLL_DECL boss_supremusAI : public ScriptedAI events.ScheduleEvent(EVENT_FLAME, 20000, GCD_CAST); } - void ToggleDoors(bool close) - { - if(GameObject* Doors = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_SUPREMUS_DOORS))) - { - if(close) - Doors->SetGoState(GO_STATE_READY); // Closed - else - Doors->SetGoState(GO_STATE_ACTIVE); // Open - } - } - void ChangePhase() { if(!phase || phase == PHASE_CHASE) @@ -145,7 +134,7 @@ struct TRINITY_DLL_DECL boss_supremusAI : public ScriptedAI if(pInstance) { pInstance->SetData(DATA_SUPREMUSEVENT, DONE); - ToggleDoors(false); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_SUPREMUS_DOORS), true); } summons.DespawnAll(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp index 8a08ba5f4c0..7541bd124aa 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp @@ -108,16 +108,16 @@ struct TRINITY_DLL_DECL instance_mount_hyjal : public ScriptedInstance case 182060: HordeGate = go->GetGUID(); if(allianceRetreat) - go->SetGoState(GO_STATE_ACTIVE); + HandleGameObject(0, true, go); else - go->SetGoState(GO_STATE_READY); + HandleGameObject(0, false, go); break; case 182061: ElfGate = go->GetGUID(); if(hordeRetreat) - go->SetGoState(GO_STATE_ACTIVE); + HandleGameObject(0, true, go); else - go->SetGoState(GO_STATE_READY); + HandleGameObject(0, false, go); break; case GO_ANCIENT_GEM: m_uiAncientGemGUID.push_back(go->GetGUID()); @@ -125,11 +125,6 @@ struct TRINITY_DLL_DECL instance_mount_hyjal : public ScriptedInstance } } - void OpenDoor(uint64 DoorGUID, bool open) - { - HandleGameObject(DoorGUID, open, NULL); - } - void OnCreatureCreate(Creature *creature, bool add) { switch(creature->GetEntry()) @@ -233,12 +228,12 @@ struct TRINITY_DLL_DECL instance_mount_hyjal : public ScriptedInstance break; case DATA_ALLIANCE_RETREAT: allianceRetreat = data; - OpenDoor(HordeGate,true); + HandleGameObject(HordeGate, true); SaveToDB(); break; case DATA_HORDE_RETREAT: hordeRetreat = data; - OpenDoor(ElfGate,true); + HandleGameObject(ElfGate, true); SaveToDB(); break; case DATA_RAIDDAMAGE: diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp index dd8bcb0183f..3055ac5e59f 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp @@ -134,12 +134,6 @@ struct TRINITY_DLL_DECL instance_serpentshrine_cavern : public ScriptedInstance } } - void OpenDoor(uint64 DoorGUID, bool open) - { - if(GameObject *Door = instance->GetGameObject(DoorGUID)) - Door->SetGoState(open ? GO_STATE_ACTIVE : GO_STATE_READY); - } - void OnCreatureCreate(Creature *creature, bool add) { switch(creature->GetEntry()) @@ -186,9 +180,9 @@ struct TRINITY_DLL_DECL instance_serpentshrine_cavern : public ScriptedInstance case DATA_CONTROL_CONSOLE: if(data == DONE) { - OpenDoor(BridgePart[0], true); - OpenDoor(BridgePart[1], true); - OpenDoor(BridgePart[2], true); + HandleGameObject(BridgePart[0], true); + HandleGameObject(BridgePart[0], true); + HandleGameObject(BridgePart[0], true); } ControlConsole = data; case DATA_HYDROSSTHEUNSTABLEEVENT: Encounters[0] = data; break; diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp index a35551481fa..0a39fa815a2 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp @@ -115,14 +115,11 @@ struct TRINITY_DLL_DECL instance_steam_vault : public ScriptedInstance case TYPE_HYDROMANCER_THESPIA: if (data == SPECIAL) { - if (GameObject *_go = instance->GetGameObject(AccessPanelHydro)) - _go->SetGoState(GO_STATE_ACTIVE); + HandleGameObject(AccessPanelHydro, true); if (GetData(TYPE_MEKGINEER_STEAMRIGGER) == SPECIAL) - { - if (GameObject *_go = instance->GetGameObject(MainChambersDoor)) - _go->SetGoState(GO_STATE_ACTIVE); - } + HandleGameObject(MainChambersDoor, true); + debug_log("TSCR: Instance Steamvault: Access panel used."); } Encounter[0] = data; @@ -130,14 +127,11 @@ struct TRINITY_DLL_DECL instance_steam_vault : public ScriptedInstance case TYPE_MEKGINEER_STEAMRIGGER: if (data == SPECIAL) { - if (GameObject *_go = instance->GetGameObject(AccessPanelMek)) - _go->SetGoState(GO_STATE_ACTIVE); + HandleGameObject(AccessPanelMek, true); if (GetData(TYPE_HYDROMANCER_THESPIA) == SPECIAL) - { - if (GameObject *_go = instance->GetGameObject(MainChambersDoor)) - _go->SetGoState(GO_STATE_ACTIVE); - } + HandleGameObject(MainChambersDoor, true); + debug_log("TSCR: Instance Steamvault: Access panel used."); } Encounter[1] = data; diff --git a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp index 9dea3d1533d..a0b4f632c42 100644 --- a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp +++ b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp @@ -110,9 +110,7 @@ struct TRINITY_DLL_DECL boss_gruulAI : public ScriptedAI if(pInstance) { pInstance->SetData(DATA_GRUULEVENT, DONE); - - if (GameObject* EncounterDoor = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GRUULDOOR))) - EncounterDoor->SetGoState(GO_STATE_ACTIVE); // Open the encounter door + pInstance->HandleGameObject(pInstance->GetData64(DATA_GRUULDOOR), true); // Open the encounter door } } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp index e77ce3d2fdf..f383a52942e 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp @@ -53,17 +53,21 @@ struct TRINITY_DLL_DECL boss_broggokAI : public ScriptedAI AcidSpray_Timer = 10000; PoisonSpawn_Timer = 5000; PoisonBolt_Timer = 7000; - ToggleDoors(0, DATA_DOOR4); if(pInstance) + { pInstance->SetData(TYPE_BROGGOK_EVENT, NOT_STARTED); + pInstance->HandleGameObject(pInstance->GetData64(DATA_DOOR4), true); + } } void EnterCombat(Unit *who) { DoScriptText(SAY_AGGRO, m_creature); - ToggleDoors(1, DATA_DOOR4); if(pInstance) + { pInstance->SetData(TYPE_BROGGOK_EVENT, IN_PROGRESS); + pInstance->HandleGameObject(pInstance->GetData64(DATA_DOOR4), false); + } } void JustSummoned(Creature *summoned) @@ -102,25 +106,14 @@ struct TRINITY_DLL_DECL boss_broggokAI : public ScriptedAI void JustDied(Unit* who) { - ToggleDoors(0, DATA_DOOR4); - ToggleDoors(0, DATA_DOOR5); if(pInstance) - pInstance->SetData(TYPE_BROGGOK_EVENT, DONE); - } - - void ToggleDoors(uint8 close, uint64 DOOR) - { - if (pInstance) { - if (GameObject* Doors = pInstance->instance->GetGameObject(pInstance->GetData64(DOOR))) - { - if (close == 1) - Doors->SetGoState(GO_STATE_READY); // Closed - else - Doors->SetGoState(GO_STATE_ACTIVE); // Open - } + pInstance->HandleGameObject(pInstance->GetData64(DATA_DOOR4), true); + pInstance->HandleGameObject(pInstance->GetData64(DATA_DOOR5), true); + pInstance->SetData(TYPE_BROGGOK_EVENT, DONE); } } + }; CreatureAI* GetAI_boss_broggok(Creature *_Creature) diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp index 115ed61e91a..41fd8d68a8d 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp @@ -186,11 +186,13 @@ struct TRINITY_DLL_DECL boss_kelidan_the_breakerAI : public ScriptedAI void JustDied(Unit* Killer) { DoScriptText(SAY_DIE, m_creature); - ToggleDoors(0, DATA_DOOR1); - ToggleDoors(0, DATA_DOOR6); - if(pInstance) - pInstance->SetData(TYPE_KELIDAN_THE_BREAKER_EVENT, DONE); + if(!pInstance) + return; + + pInstance->SetData(TYPE_KELIDAN_THE_BREAKER_EVENT, DONE); + pInstance->HandleGameObject(pInstance->GetData64(DATA_DOOR1), true); + pInstance->HandleGameObject(pInstance->GetData64(DATA_DOOR6), true); } void UpdateAI(const uint32 diff) @@ -260,19 +262,6 @@ struct TRINITY_DLL_DECL boss_kelidan_the_breakerAI : public ScriptedAI DoMeleeAttackIfReady(); } - void ToggleDoors(uint8 close, uint64 DOOR) - { - if (pInstance) - { - if (GameObject* Doors = pInstance->instance->GetGameObject(pInstance->GetData64(DOOR))) - { - if (close == 1) - Doors->SetGoState(GO_STATE_READY); // Closed - else - Doors->SetGoState(GO_STATE_ACTIVE); // Open - } - } - } }; CreatureAI* GetAI_boss_kelidan_the_breaker(Creature *_Creature) diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp index 97676ece79c..a48c22c4a17 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp @@ -59,10 +59,12 @@ struct TRINITY_DLL_DECL boss_the_makerAI : public ScriptedAI ExplodingBreaker_Timer = 6000; Domination_Timer = 120000; Knockdown_Timer = 10000; - - ToggleDoors(0, DATA_DOOR2); - if(pInstance) - pInstance->SetData(TYPE_THE_MAKER_EVENT, NOT_STARTED); + + if(!pInstance) + return; + + pInstance->SetData(TYPE_THE_MAKER_EVENT, NOT_STARTED); + pInstance->HandleGameObject(pInstance->GetData64(DATA_DOOR2), true); } void EnterCombat(Unit *who) @@ -74,9 +76,11 @@ struct TRINITY_DLL_DECL boss_the_makerAI : public ScriptedAI case 2: DoScriptText(SAY_AGGRO_3, m_creature); break; } - ToggleDoors(1, DATA_DOOR2); - if(pInstance) - pInstance->SetData(TYPE_THE_MAKER_EVENT, IN_PROGRESS); + if(!pInstance) + return; + + pInstance->SetData(TYPE_THE_MAKER_EVENT, IN_PROGRESS); + pInstance->HandleGameObject(pInstance->GetData64(DATA_DOOR2), false); } void KilledUnit(Unit* victim) @@ -91,11 +95,15 @@ struct TRINITY_DLL_DECL boss_the_makerAI : public ScriptedAI void JustDied(Unit* Killer) { DoScriptText(SAY_DIE, m_creature); - ToggleDoors(0, DATA_DOOR2); - ToggleDoors(0, DATA_DOOR3); - if(pInstance) - pInstance->SetData(TYPE_THE_MAKER_EVENT, DONE); + if(!pInstance) + return; + + pInstance->SetData(TYPE_THE_MAKER_EVENT, DONE); + pInstance->HandleGameObject(pInstance->GetData64(DATA_DOOR2), true); + pInstance->HandleGameObject(pInstance->GetData64(DATA_DOOR3), true); + + } void UpdateAI(const uint32 diff) @@ -136,20 +144,6 @@ struct TRINITY_DLL_DECL boss_the_makerAI : public ScriptedAI DoMeleeAttackIfReady(); } - - void ToggleDoors(uint8 close, uint64 DOOR) - { - if (pInstance) - { - if (GameObject* Doors = pInstance->instance->GetGameObject(pInstance->GetData64(DOOR))) - { - if (close == 1) - Doors->SetGoState(GO_STATE_READY); // Closed - else - Doors->SetGoState(GO_STATE_ACTIVE); // Open - } - } - } }; CreatureAI* GetAI_boss_the_makerAI(Creature *_Creature) @@ -161,7 +155,7 @@ void AddSC_boss_the_maker() { Script *newscript; newscript = new Script; - newscript->Name="boss_the_maker"; + newscript->Name = "boss_the_maker"; newscript->GetAI = &GetAI_boss_the_makerAI; newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp index 6b49df203f4..107d6c34266 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp @@ -125,10 +125,7 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance if(data == NOT_STARTED) RespawnTimer = 10000; if(data != IN_PROGRESS) - { - if(GameObject *Door = instance->GetGameObject(DoorGUID)) - Door->SetGoState(GO_STATE_ACTIVE); - } + HandleGameObject(DoorGUID, true); break; case DATA_CHANNELER_EVENT: switch(data) @@ -148,8 +145,7 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance } } CageTimer = 0; - if(GameObject *Door = instance->GetGameObject(DoorGUID)) - Door->SetGoState(GO_STATE_ACTIVE); + HandleGameObject(DoorGUID, true); }break; case IN_PROGRESS: // Event start. if(Encounters[1] != IN_PROGRESS) @@ -169,8 +165,7 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance Magtheridon->MonsterTextEmote("'s bonds begin to weaken!", 0); CageTimer = 120000; } - if(GameObject *Door = instance->GetGameObject(DoorGUID)) - Door->SetGoState(GO_STATE_READY); + HandleGameObject(DoorGUID, false); }break; case DONE: // Add buff and check if all channelers are dead. for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp index 808587ff274..67345f15aef 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp @@ -232,12 +232,7 @@ struct TRINITY_DLL_DECL boss_grand_warlock_nethekurseAI : public ScriptedAI return; pInstance->SetData(TYPE_NETHEKURSE,DONE); - - if (pInstance->GetData64(DATA_NETHEKURSE_DOOR)) - { - if (GameObject *Door = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_NETHEKURSE_DOOR))) - Door->SetGoState(GO_STATE_ACTIVE); - } + pInstance->HandleGameObject(pInstance->GetData64(DATA_NETHEKURSE_DOOR), true); } void UpdateAI(const uint32 diff) diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp index 45f79215409..56194893b17 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp @@ -138,10 +138,8 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI void HandleTerraceDoors(bool open) { - if(GameObject *Door = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_MASTERS_TERRACE_DOOR_1))) - Door->SetGoState(open ? GO_STATE_ACTIVE : GO_STATE_READY); - if(GameObject *Door = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_MASTERS_TERRACE_DOOR_2))) - Door->SetGoState(open ? GO_STATE_ACTIVE : GO_STATE_READY); + 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/zone/karazhan/boss_prince_malchezaar.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp index 84ae57b3877..691fad1d3f0 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp @@ -207,10 +207,7 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI phase = 1; if(pInstance) - { - if(GameObject* Door = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_NETHER_DOOR))) - Door->SetGoState(GO_STATE_ACTIVE); - } + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_NETHER_DOOR), true); } void KilledUnit(Unit *victim) @@ -236,10 +233,7 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI positions.push_back(&InfernalPoints[i]); if(pInstance) - { - if(GameObject* Door = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_NETHER_DOOR))) - Door->SetGoState(GO_STATE_ACTIVE); - } + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_NETHER_DOOR), true); } void EnterCombat(Unit *who) @@ -247,10 +241,7 @@ struct TRINITY_DLL_DECL boss_malchezaarAI : public ScriptedAI DoScriptText(SAY_AGGRO, m_creature); if(pInstance) - { - if(GameObject* Door = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_NETHER_DOOR))) - Door->SetGoState(GO_STATE_READY); - } + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_NETHER_DOOR), false); // Open the door leading further in } void InfernalCleanup() diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp index 86f424e6892..269295361e4 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp @@ -141,9 +141,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI { // Not in progress pInstance->SetData(DATA_SHADEOFARAN_EVENT, NOT_STARTED); - - if(GameObject* Door = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_LIBRARY_DOOR))) - Door->SetGoState(GO_STATE_ACTIVE); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_LIBRARY_DOOR), true); } } @@ -163,9 +161,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI if(pInstance) { pInstance->SetData(DATA_SHADEOFARAN_EVENT, DONE); - - if(GameObject* Door = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_LIBRARY_DOOR))) - Door->SetGoState(GO_STATE_ACTIVE); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_LIBRARY_DOOR), true); } } @@ -181,8 +177,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI if(pInstance) { pInstance->SetData(DATA_SHADEOFARAN_EVENT, IN_PROGRESS); - if(GameObject* Door = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_LIBRARY_DOOR))) - Door->SetGoState(GO_STATE_READY); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_LIBRARY_DOOR), false); } } @@ -232,8 +227,7 @@ struct TRINITY_DLL_DECL boss_aranAI : public ScriptedAI { if(pInstance) { - if(GameObject* Door = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_LIBRARY_DOOR))) - Door->SetGoState(GO_STATE_READY); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_LIBRARY_DOOR), false); CloseDoorTimer = 0; } }else CloseDoorTimer -= diff; diff --git a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp index b8dae7e5035..510ff2f2b81 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp @@ -572,11 +572,9 @@ struct TRINITY_DLL_DECL boss_croneAI : public ScriptedAI if(pInstance) { pInstance->SetData(DATA_OPERA_EVENT, DONE); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORLEFT), true); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORRIGHT), true); - if (GameObject* lDoor = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORLEFT))) - lDoor->SetGoState(GO_STATE_ACTIVE); - if (GameObject* rDoor = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORRIGHT))) - rDoor->SetGoState(GO_STATE_ACTIVE); if (GameObject* pSideEntrance = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GO_SIDE_ENTRANCE_DOOR))) pSideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); } @@ -767,11 +765,9 @@ struct TRINITY_DLL_DECL boss_bigbadwolfAI : public ScriptedAI if(pInstance) { pInstance->SetData(DATA_OPERA_EVENT, DONE); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORLEFT), true); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORRIGHT), true); - if (GameObject* lDoor = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORLEFT))) - lDoor->SetGoState(GO_STATE_ACTIVE); - if (GameObject* rDoor = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORRIGHT))) - rDoor->SetGoState(GO_STATE_ACTIVE); if (GameObject* pSideEntrance = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GO_SIDE_ENTRANCE_DOOR))) pSideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); } @@ -1014,11 +1010,8 @@ struct TRINITY_DLL_DECL boss_julianneAI : public ScriptedAI if(pInstance) { pInstance->SetData(DATA_OPERA_EVENT, DONE); - - if (GameObject* lDoor = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORLEFT))) - lDoor->SetGoState(GO_STATE_ACTIVE); - if (GameObject* rDoor = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORRIGHT))) - rDoor->SetGoState(GO_STATE_ACTIVE); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORLEFT), true); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORRIGHT), true); if (GameObject* pSideEntrance = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GO_SIDE_ENTRANCE_DOOR))) pSideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); } @@ -1103,11 +1096,9 @@ struct TRINITY_DLL_DECL boss_romuloAI : public ScriptedAI if (pInstance) { pInstance->SetData(DATA_OPERA_EVENT, DONE); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORLEFT), true); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORRIGHT), true); - if (GameObject* lDoor = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORLEFT))) - lDoor->SetGoState(GO_STATE_ACTIVE); - if (GameObject* rDoor = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORRIGHT))) - rDoor->SetGoState(GO_STATE_ACTIVE); if (GameObject* pSideEntrance = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GO_SIDE_ENTRANCE_DOOR))) pSideEntrance->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED); } diff --git a/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp index 984c2a26416..554d8392b69 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp @@ -72,7 +72,7 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance for (uint8 i = 0; i < ENCOUNTERS; ++i) Encounters[i] = NOT_STARTED; - OperaEvent = urand(1,3); // 1 - OZ, 2 - HOOD, 3 - RAJ, this never gets altered. + OperaEvent = urand(1,3); // 1 - OZ, 2 - HOOD, 3 - RAJ, this never gets altered. OzDeathCount = 0; CurtainGUID = 0; diff --git a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp index 85f1940da65..10e2a54cbaa 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp @@ -148,11 +148,8 @@ struct TRINITY_DLL_DECL npc_barnesAI : public npc_escortAI Event = pInstance->GetData(DATA_OPERA_PERFORMANCE); - if (GameObject* Door = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORLEFT))) - Door->SetGoState(GO_STATE_READY); - - if (GameObject* Curtain = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_CURTAINS))) - Curtain->SetGoState(GO_STATE_READY); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORLEFT), false); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_CURTAINS), false); } } @@ -179,10 +176,8 @@ struct TRINITY_DLL_DECL npc_barnesAI : public npc_escortAI case 5: if(pInstance) - { - if (GameObject* Door = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORLEFT))) - Door->SetGoState(GO_STATE_READY); - } + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORLEFT), false); + IsBeingEscorted = false; PerformanceReady = true; m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); @@ -314,9 +309,7 @@ struct TRINITY_DLL_DECL npc_barnesAI : public npc_escortAI return; pInstance->SetData(DATA_OPERA_EVENT, IN_PROGRESS); - - if (GameObject* Door = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORLEFT))) - Door->SetGoState(GO_STATE_ACTIVE); + pInstance->HandleGameObject(pInstance->GetData64(DATA_GAMEOBJECT_STAGEDOORLEFT), true); m_creature->CastSpell(m_creature, SPELL_TUXEDO, true); m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp index 80ee4efb55c..b34e7124371 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp @@ -130,10 +130,9 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI if (pInstance) { pInstance->SetData(DATA_KAELTHAS_EVENT, NOT_STARTED); - - if (GameObject* Door = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_KAEL_DOOR))) - Door->SetGoState(GO_STATE_ACTIVE); // Open the big encounter door. Close it in Aggro and open it only in JustDied(and here) - // Small door opened after event are expected to be closed by default + pInstance->HandleGameObject(pInstance->GetData64(DATA_KAEL_DOOR), true); + // Open the big encounter door. Close it in Aggro and open it only in JustDied(and here) + // Small door opened after event are expected to be closed by default } } @@ -143,9 +142,9 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI if (!pInstance) return; - - if (GameObject* EncounterDoor = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_KAEL_DOOR))) - EncounterDoor->SetGoState(GO_STATE_ACTIVE); // Open the encounter door + + pInstance->HandleGameObject(pInstance->GetData64(DATA_KAEL_DOOR), true); + // Open the encounter door } void DamageTaken(Unit* done_by, uint32 &damage) @@ -158,9 +157,9 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI { if (!pInstance) return; - - if (GameObject* EncounterDoor = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_KAEL_DOOR))) - EncounterDoor->SetGoState(GO_STATE_READY); //Close the encounter door, open it in JustDied/Reset + + pInstance->HandleGameObject(pInstance->GetData64(DATA_KAEL_DOOR), false); + //Close the encounter door, open it in JustDied/Reset } void MoveInLineOfSight(Unit *who) @@ -350,10 +349,8 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI if (pInstance) { - if (GameObject* KaelLeft = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_KAEL_STATUE_LEFT))) - KaelLeft->SetGoState(GO_STATE_ACTIVE); - if (GameObject* KaelRight = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_KAEL_STATUE_RIGHT))) - KaelRight->SetGoState(GO_STATE_ACTIVE); + pInstance->HandleGameObject(pInstance->GetData64(DATA_KAEL_STATUE_LEFT), true); + pInstance->HandleGameObject(pInstance->GetData64(DATA_KAEL_STATUE_RIGHT), true); } }else { diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp index 44e01ef1a83..7fc4d3b2e64 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp @@ -105,8 +105,8 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI } } - if (GameObject* Door = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_SELIN_ENCOUNTER_DOOR))) - Door->SetGoState(GO_STATE_ACTIVE); // Open the big encounter door. Close it in Aggro and open it only in JustDied(and here) + pInstance->HandleGameObject(pInstance->GetData64(DATA_SELIN_ENCOUNTER_DOOR), true); + // Open the big encounter door. Close it in Aggro and open it only in JustDied(and here) // Small door opened after event are expected to be closed by default // Set Inst data for encounter pInstance->SetData(DATA_SELIN_EVENT, NOT_STARTED); @@ -185,11 +185,9 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI DoScriptText(SAY_AGGRO, m_creature); if (pInstance) - { - if (GameObject* EncounterDoor = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_SELIN_ENCOUNTER_DOOR))) - EncounterDoor->SetGoState(GO_STATE_READY); //Close the encounter door, open it in JustDied/Reset - } - } + pInstance->HandleGameObject(pInstance->GetData64(DATA_SELIN_ENCOUNTER_DOOR), false); + //Close the encounter door, open it in JustDied/Reset + } void KilledUnit(Unit* victim) { @@ -230,13 +228,8 @@ struct TRINITY_DLL_DECL boss_selin_fireheartAI : public ScriptedAI return; pInstance->SetData(DATA_SELIN_EVENT, DONE); // Encounter complete! - - if (GameObject* EncounterDoor = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_SELIN_ENCOUNTER_DOOR))) - EncounterDoor->SetGoState(GO_STATE_ACTIVE); // Open the encounter door - - if (GameObject* ContinueDoor = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_SELIN_DOOR))) - ContinueDoor->SetGoState(GO_STATE_ACTIVE); // Open the door leading further in - + pInstance->HandleGameObject(pInstance->GetData64(DATA_SELIN_ENCOUNTER_DOOR), true); // Open the encounter door + pInstance->HandleGameObject(pInstance->GetData64(DATA_SELIN_DOOR), true); // Open the door leading further in ShatterRemainingCrystals(); } diff --git a/src/bindings/scripts/scripts/zone/razorfen_kraul/instance_razorfen_kraul.cpp b/src/bindings/scripts/scripts/zone/razorfen_kraul/instance_razorfen_kraul.cpp index 679358c6ceb..d796e125ed8 100644 --- a/src/bindings/scripts/scripts/zone/razorfen_kraul/instance_razorfen_kraul.cpp +++ b/src/bindings/scripts/scripts/zone/razorfen_kraul/instance_razorfen_kraul.cpp @@ -66,20 +66,6 @@ struct TRINITY_DLL_DECL instance_razorfen_kraul : public ScriptedInstance } } - void HandleGameObject(uint64 guid, uint32 state) - { - Player *player = GetPlayerInMap(); - - if (!player || !guid) - { - debug_log("SD2: Instance Razorfen Kraul: HandleGameObject fail"); - return; - } - - if (GameObject *go = instance->GetGameObject(guid)) - go->SetGoState(GOState(state)); - } - void Update(uint32 diff) { if (WardCheck_Timer < diff) diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/instance_scarlet_monastery.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/instance_scarlet_monastery.cpp index 2a1dafa01fb..280a2869948 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/instance_scarlet_monastery.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/instance_scarlet_monastery.cpp @@ -90,13 +90,12 @@ struct TRINITY_DLL_DECL instance_scarlet_monastery : public ScriptedInstance { switch(type) { - case TYPE_MOGRAINE_AND_WHITE_EVENT: Encounter[0] = data; break; + case TYPE_MOGRAINE_AND_WHITE_EVENT: + Encounter[0] = data; + break; case GAMEOBJECT_PUMPKIN_SHRINE: - { - GameObject *Shrine = instance->GetGameObject(PumpkinShrineGUID); - if(Shrine) - Shrine->SetGoState(GO_STATE_READY); - }break; + HandleGameObject(PumpkinShrineGUID, false); + break; case DATA_HORSEMAN_EVENT: if (data == DONE) { @@ -107,9 +106,7 @@ struct TRINITY_DLL_DECL instance_scarlet_monastery : public ScriptedInstance add->DealDamage(add, add->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); } HorsemanAdds.clear(); - GameObject *Shrine = instance->GetGameObject(PumpkinShrineGUID); - if(Shrine) - Shrine->SetGoState(GO_STATE_READY); + HandleGameObject(PumpkinShrineGUID, false); } break; } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp index 2be8a7fdb39..130a247736c 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp @@ -305,8 +305,7 @@ struct TRINITY_DLL_DECL npc_warden_mellicharAI : public ScriptedAI if( pInstance ) { pInstance->SetData(TYPE_HARBINGERSKYRISS,IN_PROGRESS); - if (GameObject* Sphere = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_SPHERE_SHIELD))) - Sphere->SetGoState(GO_STATE_READY); + pInstance->HandleGameObject(pInstance->GetData64(DATA_SPHERE_SHIELD), false); IsRunning = true; } } @@ -346,8 +345,7 @@ struct TRINITY_DLL_DECL npc_warden_mellicharAI : public ScriptedAI case 2: DoCast(m_creature,SPELL_TARGET_ALPHA); pInstance->SetData(TYPE_WARDEN_1,IN_PROGRESS); - if (GameObject *Sphere = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_SPHERE_SHIELD))) - Sphere->SetGoState(GO_STATE_READY); + pInstance->HandleGameObject(pInstance->GetData64(DATA_SPHERE_SHIELD), false); break; case 3: DoCast(m_creature,SPELL_TARGET_BETA); diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp index e0488bca7ce..03a7e588868 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp @@ -161,9 +161,8 @@ struct TRINITY_DLL_DECL boss_harbinger_skyrissAI : public ScriptedAI switch( Intro_Phase ) { case 1: - DoScriptText(SAY_INTRO, m_creature); - if (GameObject* Sphere = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_SPHERE_SHIELD))) - Sphere->SetGoState(GO_STATE_ACTIVE); + DoScriptText(SAY_INTRO, m_creature); + pInstance->HandleGameObject(pInstance->GetData64(DATA_SPHERE_SHIELD), true); ++Intro_Phase; Intro_Timer = 25000; break; diff --git a/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp b/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp index 22477bb4b4f..1d8a3faadf3 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp @@ -137,12 +137,6 @@ struct TRINITY_DLL_DECL instance_zulaman : public ScriptedInstance CheckInstanceStatus(); } - void OpenDoor(uint64 DoorGUID, bool open) - { - if(GameObject *Door = instance->GetGameObject(DoorGUID)) - Door->SetGoState(open ? GO_STATE_ACTIVE : GO_STATE_READY); - } - void SummonHostage(uint8 num) { if(!QuestMinute) @@ -166,10 +160,10 @@ struct TRINITY_DLL_DECL instance_zulaman : public ScriptedInstance void CheckInstanceStatus() { if(BossKilled >= 4) - OpenDoor(HexLordGateGUID, true); + HandleGameObject(HexLordGateGUID, true); if(BossKilled >= 5) - OpenDoor(ZulJinGateGUID, true); + HandleGameObject(ZulJinGateGUID, true); } void UpdateWorldState(uint32 field, uint32 value) @@ -224,7 +218,7 @@ struct TRINITY_DLL_DECL instance_zulaman : public ScriptedInstance break; case DATA_AKILZONEVENT: Encounters[1] = data; - OpenDoor(AkilzonDoorGUID, data != IN_PROGRESS); + HandleGameObject(AkilzonDoorGUID, data != IN_PROGRESS); if(data == DONE) { if(QuestMinute) @@ -241,19 +235,19 @@ struct TRINITY_DLL_DECL instance_zulaman : public ScriptedInstance break; case DATA_HALAZZIEVENT: Encounters[3] = data; - OpenDoor(HalazziDoorGUID, data != IN_PROGRESS); + HandleGameObject(HalazziDoorGUID, data != IN_PROGRESS); if(data == DONE) SummonHostage(3); break; case DATA_HEXLORDEVENT: Encounters[4] = data; if(data == IN_PROGRESS) - OpenDoor(HexLordGateGUID, false); + HandleGameObject(HexLordGateGUID, false); else if(data == NOT_STARTED) CheckInstanceStatus(); break; case DATA_ZULJINEVENT: Encounters[5] = data; - OpenDoor(ZulJinDoorGUID, data != IN_PROGRESS); + HandleGameObject(ZulJinDoorGUID, data != IN_PROGRESS); break; case DATA_CHESTLOOTED: ChestLooted++; |