diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp index ff452637e..57cccc46e 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp @@ -71,11 +71,14 @@ public: switch (creature->GetEntry()) { + case NPC_RAZORGORE: + razorgoreGUID = creature->GetGUID(); + break; case NPC_BLACKWING_DRAGON: case NPC_BLACKWING_TASKMASTER: case NPC_BLACKWING_LEGIONAIRE: case NPC_BLACKWING_WARLOCK: - if (Creature* razor = instance->GetCreature(GetGuidData(DATA_RAZORGORE_THE_UNTAMED))) + if (Creature* razor = instance->GetCreature(razorgoreGUID)) if (CreatureAI* razorAI = razor->AI()) razorAI->JustSummoned(creature); break; @@ -207,7 +210,7 @@ public: case SPECIAL: if (++EggCount == 15) { - if (Creature* razor = instance->GetCreature(GetGuidData(DATA_RAZORGORE_THE_UNTAMED))) + if (Creature* razor = instance->GetCreature(razorgoreGUID)) { SetData(DATA_EGG_EVENT, DONE); razor->RemoveAurasDueToSpell(42013); // MindControl @@ -223,6 +226,19 @@ public: } } + ObjectGuid GetGuidData(uint32 type) const override + { + switch (type) + { + case DATA_RAZORGORE_THE_UNTAMED: + return razorgoreGUID; + default: + break; + } + + return ObjectGuid::Empty; + } + void OnUnitDeath(Unit* unit) override { //! HACK, needed because of buggy CreatureAI after charm @@ -249,7 +265,7 @@ public: break; case EVENT_RAZOR_PHASE_TWO: _events.CancelEvent(EVENT_RAZOR_SPAWN); - if (Creature* razor = instance->GetCreature(GetGuidData(DATA_RAZORGORE_THE_UNTAMED))) + if (Creature* razor = instance->GetCreature(razorgoreGUID)) razor->AI()->DoAction(ACTION_PHASE_TWO); break; case EVENT_RESPAWN_NEFARIUS: @@ -270,6 +286,7 @@ public: EventMap _events; // Razorgore + ObjectGuid razorgoreGUID; uint8 EggCount; uint32 EggEvent; GuidList EggList;