diff --git a/src/common/Utilities/Util.h b/src/common/Utilities/Util.h index 870c520e9..1c8417b89 100644 --- a/src/common/Utilities/Util.h +++ b/src/common/Utilities/Util.h @@ -18,7 +18,7 @@ #include #include -// Searcher for map of structs + // Searcher for map of structs template struct Finder { T val_; @@ -440,7 +440,7 @@ public: part[0] == right.part[0] && part[1] == right.part[1] && part[2] == right.part[2] - ); + ); } inline bool operator!=(flag96 const& right) const @@ -541,20 +541,20 @@ bool CompareValues(ComparisionType type, T val1, T val2) { switch (type) { - case COMP_TYPE_EQ: - return val1 == val2; - case COMP_TYPE_HIGH: - return val1 > val2; - case COMP_TYPE_LOW: - return val1 < val2; - case COMP_TYPE_HIGH_EQ: - return val1 >= val2; - case COMP_TYPE_LOW_EQ: - return val1 <= val2; - default: - // incorrect parameter - ABORT(); - return false; + case COMP_TYPE_EQ: + return val1 == val2; + case COMP_TYPE_HIGH: + return val1 > val2; + case COMP_TYPE_LOW: + return val1 < val2; + case COMP_TYPE_HIGH_EQ: + return val1 >= val2; + case COMP_TYPE_LOW_EQ: + return val1 <= val2; + default: + // incorrect parameter + ABORT(); + return false; } } @@ -578,7 +578,7 @@ class EventMap typedef std::multimap EventStore; public: - EventMap() : _time(0), _phase(0) { } + EventMap() : _time(0), _phase(0), _lastEvent(0) { } /** * @name Reset @@ -641,9 +641,13 @@ public: void SetPhase(uint8 phase) { if (!phase) + { _phase = 0; + } else if (phase <= 8) + { _phase = (1 << (phase - 1)); + } } /** @@ -654,7 +658,9 @@ public: void AddPhase(uint8 phase) { if (phase && phase <= 8) + { _phase |= (1 << (phase - 1)); + } } /** @@ -665,7 +671,9 @@ public: void RemovePhase(uint8 phase) { if (phase && phase <= 8) + { _phase &= ~(1 << (phase - 1)); + } } /** @@ -679,10 +687,14 @@ public: void ScheduleEvent(uint32 eventId, uint32 time, uint32 group = 0, uint32 phase = 0) { if (group && group <= 8) + { eventId |= (1 << (group + 15)); + } if (phase && phase <= 8) + { eventId |= (1 << (phase + 23)); + } _eventMap.insert(EventStore::value_type(_time + time, eventId)); } @@ -711,22 +723,7 @@ public: */ void RepeatEvent(uint32 time) { - if (Empty()) - return; - - uint32 eventId = _eventMap.begin()->second; - _eventMap.erase(_eventMap.begin()); - ScheduleEvent(eventId, time); - } - - /** - * @name PopEvent - * @brief Remove the first event in the map. - */ - void PopEvent() - { - if (!Empty()) - _eventMap.erase(_eventMap.begin()); + _eventMap.insert(EventStore::value_type(_time + time, _lastEvent)); } /** @@ -741,12 +738,17 @@ public: EventStore::iterator itr = _eventMap.begin(); if (itr->first > _time) + { return 0; + } else if (_phase && (itr->second & 0xFF000000) && !((itr->second >> 24) & _phase)) + { _eventMap.erase(itr); + } else { uint32 eventId = (itr->second & 0x0000FFFF); + _lastEvent = itr->second; _eventMap.erase(itr); return eventId; } @@ -755,28 +757,6 @@ public: return 0; } - /** - * @name GetEvent - * @brief Returns the next event to execute. - * @return Id of the event to execute. - */ - uint32 GetEvent() - { - while (!Empty()) - { - EventStore::iterator itr = _eventMap.begin(); - - if (itr->first > _time) - return 0; - else if (_phase && (itr->second & 0xFF000000) && !(itr->second & (_phase << 24))) - _eventMap.erase(itr); - else - return (itr->second & 0x0000FFFF); - } - - return 0; - } - /** * @name DelayEvents * @brief Delays all events in the map. If delay is greater than or equal internal timer, delay will be 0. @@ -796,9 +776,10 @@ public: ScheduleEvent(itr->second, delay); _eventMap.erase(itr); itr = _eventMap.begin(); + continue; } - else - ++itr; + + ++itr; } } @@ -811,7 +792,9 @@ public: void DelayEvents(uint32 delay, uint32 group) { if (group > 8 || Empty()) + { return; + } EventStore delayed; @@ -820,10 +803,11 @@ public: if (!group || (itr->second & (1 << (group + 15)))) { delayed.insert(EventStore::value_type(itr->first + delay, itr->second)); - _eventMap.erase(itr++); + itr = _eventMap.erase(itr); + continue; } - else - ++itr; + + ++itr; } _eventMap.insert(delayed.begin(), delayed.end()); @@ -837,14 +821,19 @@ public: void CancelEvent(uint32 eventId) { if (Empty()) + { return; + } for (EventStore::iterator itr = _eventMap.begin(); itr != _eventMap.end();) { if (eventId == (itr->second & 0x0000FFFF)) - _eventMap.erase(itr++); - else - ++itr; + { + itr = _eventMap.erase(itr); + continue; + } + + ++itr; } } @@ -856,7 +845,9 @@ public: void CancelEventGroup(uint32 group) { if (!group || group > 8 || Empty()) + { return; + } uint32 groupMask = (1 << (group + 15)); for (EventStore::iterator itr = _eventMap.begin(); itr != _eventMap.end();) @@ -865,9 +856,10 @@ public: { _eventMap.erase(itr); itr = _eventMap.begin(); + continue; } - else - ++itr; + + ++itr; } } @@ -880,11 +872,17 @@ public: uint32 GetNextEventTime(uint32 eventId) const { if (Empty()) + { return 0; + } - for (EventStore::const_iterator itr = _eventMap.begin(); itr != _eventMap.end(); ++itr) - if (eventId == (itr->second & 0x0000FFFF)) - return itr->first; + for (auto const& itr : _eventMap) + { + if (eventId == (itr.second & 0x0000FFFF)) + { + return itr.first; + } + } return 0; } @@ -912,6 +910,7 @@ public: private: uint32 _time; uint32 _phase; + uint32 _lastEvent; EventStore _eventMap; }; diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index 2690930f4..031631a66 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -491,24 +491,21 @@ public: void UpdateAI(uint32 diff) override { events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_GHOUL_MOVE_TO_PIT: me->GetMotionMaster()->MovePoint(1, 2364.77f, -5776.14f, 151.36f); if (Creature* gothik = ObjectAccessor::GetCreature(*me, gothikGUID)) gothik->AI()->DoAction(SAY_GOTHIK_PIT); - events.PopEvent(); break; case EVENT_GHOUL_EMOTE: me->CastSpell(me, SPELL_GHOUL_EMERGE, true); - events.PopEvent(); break; case EVENT_GHOUL_RESTORE_STATE: me->SetReactState(REACT_DEFENSIVE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); if (Player* owner = me->GetCharmerOrOwnerPlayerOrPlayerItself()) me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, frand(0.0f, 2 * M_PI)); - events.PopEvent(); events.ScheduleEvent(EVENT_GHOUL_CHECK_COMBAT, 1000); return; case EVENT_GHOUL_CHECK_COMBAT: diff --git a/src/server/scripts/EasternKingdoms/zone_eastern_plaguelands.cpp b/src/server/scripts/EasternKingdoms/zone_eastern_plaguelands.cpp index 3b1e99408..a1c6c677c 100644 --- a/src/server/scripts/EasternKingdoms/zone_eastern_plaguelands.cpp +++ b/src/server/scripts/EasternKingdoms/zone_eastern_plaguelands.cpp @@ -203,7 +203,7 @@ public: void UpdateAI(uint32 diff) { events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_CHECK_PLAYER: { @@ -218,7 +218,6 @@ public: } case EVENT_SUMMON_ARCHERS: SummonArchers(); - events.PopEvent(); break; case EVENT_SUMMON_PEASANTS: _spoken = false; diff --git a/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp b/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp index 5b13334be..fc150c7e2 100644 --- a/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp +++ b/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp @@ -220,7 +220,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (uint32 evId = events.GetEvent()) + switch (uint32 evId = events.ExecuteEvent()) { case 0: break; @@ -231,28 +231,24 @@ public: events.RepeatEvent(5000); break; } - events.PopEvent(); me->setActive(false); EnterEvadeMode(); return; case EVENT_SUMMON_SOLDIERS: for (uint8 i = 0; i < SUNWELL_DEFENDER_NUM; ++i) me->SummonCreature(NPC_SUNWELL_DEFENDER, SunwellDefenderPos[i], TEMPSUMMON_TIMED_DESPAWN, 33000 + (i / 5) * 5000); - events.PopEvent(); break; case EVENT_TALK_INTRO_0: case EVENT_TALK_INTRO_1: case EVENT_TALK_INTRO_2: case EVENT_TALK_INTRO_3: Talk(SAY_INTRO_0 + (evId - EVENT_TALK_INTRO_0)); - events.PopEvent(); break; case EVENT_SALUTE: me->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE); for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr) if (Creature* c = ObjectAccessor::GetCreature(*me, *itr)) c->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE); - events.PopEvent(); break; case EVENT_SOLDIERS_RUN_AWAY: { @@ -276,35 +272,29 @@ public: } else { - events.PopEvent(); return; } } } } - events.PopEvent(); break; case EVENT_GO_FIGHTPOINT: me->SetWalk(true); me->GetMotionMaster()->MovePoint(0, 11779.30f, -7065.43f, 24.92f); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H); - events.PopEvent(); break; case EVENT_TALK_SPAWN_0: case EVENT_TALK_SPAWN_1: Talk(SAY_SPAWN_0 + (evId - EVENT_TALK_SPAWN_0)); - events.PopEvent(); break; case EVENT_SUMMON_MORLEN: if (Creature* c = me->SummonCreature(NPC_MORLEN_COLDGRIP, 11766.70f, -7050.57f, 25.17f, 5.56f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000)) morlenGUID = c->GetGUID(); - events.PopEvent(); break; case EVENT_TALK_MORLEN_0: case EVENT_TALK_MORLEN_1: if (Creature* c = ObjectAccessor::GetCreature(*me, morlenGUID)) c->AI()->Talk(SAY_MORLEN_0 + (evId - EVENT_TALK_MORLEN_0)); - events.PopEvent(); break; case EVENT_SPAWN_WAVE_1: case EVENT_SPAWN_WAVE_2: @@ -364,7 +354,6 @@ public: break; } } - events.PopEvent(); events.ScheduleEvent(EVENT_SUMMONS_ATTACK, 3000); break; case EVENT_SUMMONS_ATTACK: @@ -378,14 +367,12 @@ public: c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); c->AI()->AttackStart(me); } - events.PopEvent(); break; case EVENT_OUTRO_0: case EVENT_OUTRO_1: case EVENT_OUTRO_2: case EVENT_OUTRO_3: Talk(SAY_OUTRO_0 + (evId - EVENT_OUTRO_0)); - events.PopEvent(); if (evId == EVENT_OUTRO_3) events.ScheduleEvent(EVENT_OUTRO_KNEEL, 6000); break; @@ -393,18 +380,15 @@ public: if (Player* p = ObjectAccessor::GetPlayer(*me, playerGUID)) p->KilledMonsterCredit(NPC_THALORIEN_KILL_CREDIT, 0); me->SetStandState(UNIT_STAND_STATE_KNEEL); - events.PopEvent(); events.ScheduleEvent(EVENT_DISAPPEAR, 6000); break; case EVENT_DISAPPEAR: - events.PopEvent(); me->SetVisible(false); me->setActive(false); EnterEvadeMode(); break; case EVENT_SET_FACING: me->SetFacingTo(2.45f); - events.PopEvent(); break; case EVENT_SPELL_BLADESTORM: diff --git a/src/server/scripts/Events/brewfest.cpp b/src/server/scripts/Events/brewfest.cpp index cd5323c52..a2c450d6e 100644 --- a/src/server/scripts/Events/brewfest.cpp +++ b/src/server/scripts/Events/brewfest.cpp @@ -212,15 +212,13 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_DIREBREW_RESPAWN1: SummonSister(NPC_ILSA_DIREBREW); - events.PopEvent(); break; case EVENT_DIREBREW_RESPAWN2: SummonSister(NPC_URSULA_DIREBREW); - events.PopEvent(); break; case EVENT_DIREBREW_DISARM: me->CastSpell(me->GetVictim(), SPELL_DIREBREW_DISARM, false); @@ -235,7 +233,6 @@ public: } if (me->GetHealthPct() < 35 && phase == 1) { - events.PopEvent(); SummonSister(NPC_URSULA_DIREBREW); return; } @@ -325,7 +322,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SISTERS_BARREL: me->CastSpell(me->GetVictim(), SPELL_BARRELED, false); @@ -703,7 +700,7 @@ public: void UpdateAI(uint32 diff) { events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_CHECK_HOUR: { @@ -744,7 +741,6 @@ public: { events.CancelEvent(EVENT_SPAWN_MOLE_MACHINE); events.ScheduleEvent(EVENT_FINISH_ATTACK, 20000); - events.PopEvent(); break; } case EVENT_FINISH_ATTACK: diff --git a/src/server/scripts/Events/hallows_end.cpp b/src/server/scripts/Events/hallows_end.cpp index 2e5b19a72..423f29265 100644 --- a/src/server/scripts/Events/hallows_end.cpp +++ b/src/server/scripts/Events/hallows_end.cpp @@ -679,18 +679,16 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 1: me->MonsterYell("Prepare yourselves, the bells have tolled! Shelter your weak, your young and your old! Each of you shall pay the final sum! Cry for mercy; the reckoning has come!", LANG_UNIVERSAL, 0); me->PlayDirectSound(11966); - events.PopEvent(); break; case 2: { if (Unit* trigger = getTrigger()) me->CastSpell(trigger, SPELL_START_FIRE, true); - events.PopEvent(); break; } case 3: @@ -710,7 +708,6 @@ public: } FinishEvent(failed); - events.PopEvent(); } return; } @@ -1103,7 +1100,7 @@ public: if (inFight && !UpdateVictim()) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_HH_PLAYER_TALK: { @@ -1132,7 +1129,6 @@ public: case 4: me->CastSpell(me, SPELL_SHAKE_CAMERA_MEDIUM, true); player->MonsterSay("Now, know demise!", LANG_UNIVERSAL, 0); - events.PopEvent(); talkCount = 0; return; // pop and return, skip repeat } @@ -1147,7 +1143,6 @@ public: AttackStart(player); me->GetMotionMaster()->MoveChase(player); } - events.PopEvent(); break; } case EVENT_HORSEMAN_CLEAVE: @@ -1173,7 +1168,6 @@ public: if (me->GetHealth() == me->GetMaxHealth()) { me->CastSpell(me, SPELL_BODY_RESTORED_INFO, true); - events.PopEvent(); return; } diff --git a/src/server/scripts/Events/love_in_air.cpp b/src/server/scripts/Events/love_in_air.cpp index 2d2656897..7cc6d0727 100644 --- a/src/server/scripts/Events/love_in_air.cpp +++ b/src/server/scripts/Events/love_in_air.cpp @@ -371,20 +371,20 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_CALL_BAXTER: { EntryCheckPredicate pred(NPC_APOTHECARY_BAXTER); summons.DoAction(ACTION_RELEASE_HELPER, pred); - events.PopEvent(); + break; } case EVENT_CALL_FRYE: { EntryCheckPredicate pred(NPC_APOTHECARY_FRYE); summons.DoAction(ACTION_RELEASE_HELPER, pred); - events.PopEvent(); + break; } case EVENT_SPELL_PERFUME_SPRAY: @@ -455,7 +455,6 @@ public: void JustDied(Unit* ) { me->MonsterSay("...please don't think less of me.", LANG_UNIVERSAL, 0); } - void UpdateAI(uint32 diff) { if (!UpdateVictim()) @@ -465,7 +464,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_PERFUME_SPRAY: me->CastSpell(me->GetVictim(), SPELL_COLOGNE_SPRAY, false); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_epoch.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_epoch.cpp index 8913fc5eb..666001e6a 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_epoch.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_epoch.cpp @@ -98,7 +98,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_CURSE_OF_EXERTION: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 50.0f, true)) diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite.cpp index 561e75962..d056b1e91 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite.cpp @@ -122,7 +122,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_VOID_STRIKE: me->CastSpell(me->GetVictim(), SPELL_VOID_STRIKE, false); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp index 36533e613..a470f278a 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp @@ -129,7 +129,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_CARRION_SWARM: me->CastSpell(me->GetVictim(), DUNGEON_MODE(SPELL_CARRION_SWARM_N, SPELL_CARRION_SWARM_H), false); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp index 1c71bfbfd..2b12401ea 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp @@ -81,7 +81,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_DISEASE_EXPULSION: me->CastSpell(me, DUNGEON_MODE(SPELL_DISEASE_EXPULSION_N, SPELL_DISEASE_EXPULSION_H), false); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm.cpp index bcaf86831..a45645ce2 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm.cpp @@ -112,7 +112,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_SHADOW_BOLT: me->CastSpell(me->GetVictim(), DUNGEON_MODE(SPELL_SHADOW_BOLT_N, SPELL_SHADOW_BOLT_H), false); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp index 8a70e130a..c3b621e11 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp @@ -659,7 +659,7 @@ public: if (eventInRun) { actionEvents.Update(diff); - switch (uint32 currentEvent = actionEvents.GetEvent()) + switch (uint32 currentEvent = actionEvents.ExecuteEvent()) { case EVENT_ACTION_PHASE1: SetRun(false); @@ -815,7 +815,7 @@ public: SetEscortPaused(false); eventInRun = false; me->SetTarget(0); - actionEvents.PopEvent(); // dont schedule next, do it in gossip select! + // dont schedule next, do it in gossip select! break; //After Gossip 1 (waypoint 8) case EVENT_ACTION_PHASE2: @@ -910,7 +910,6 @@ public: pInstance->SetData(DATA_START_WAVES, 1); SummonNextWave(); - actionEvents.PopEvent(); break; case EVENT_ACTION_PHASE2+9: if (pInstance) @@ -919,7 +918,6 @@ public: Talk(SAY_PHASE210); eventInRun = false; SetEscortPaused(false); - actionEvents.PopEvent(); break; // After waypoint 22 case EVENT_ACTION_PHASE3: @@ -1110,7 +1108,6 @@ public: pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_KILLED_EPOCH); me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - actionEvents.PopEvent(); eventInRun = false; break; case EVENT_ACTION_PHASE5: @@ -1122,7 +1119,6 @@ public: cr->AddThreat(me, 0.0f); AttackStart(cr); } - actionEvents.PopEvent(); eventInRun = false; SetEscortPaused(true); break; @@ -1150,7 +1146,6 @@ public: case EVENT_ACTION_PHASE5+3: eventInRun = false; me->SetVisible(false); - actionEvents.PopEvent(); break; } } @@ -1163,7 +1158,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (combatEvents.GetEvent()) + switch (combatEvents.ExecuteEvent()) { case EVENT_COMBAT_EXORCISM: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) @@ -1202,7 +1197,6 @@ Creature* npc_arthas::npc_arthasAI::GetEventNpc(uint32 entry) void npc_arthas::npc_arthasAI::ScheduleNextEvent(uint32 currentEvent, uint32 time) { - actionEvents.PopEvent(); actionEvents.ScheduleEvent(currentEvent + 1, time); } diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp index 414e7d9fd..e3f8237ff 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp +++ b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp @@ -323,7 +323,7 @@ public: DoMeleeAttackIfReady(); - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -358,7 +358,6 @@ public: me->StopMoving(); DoResetThreat(); me->GetMotionMaster()->MovePoint(10, OnyxiaMoveData[0].x, OnyxiaMoveData[0].y, OnyxiaMoveData[0].z); - events.PopEvent(); } break; case EVENT_LIFTOFF: @@ -374,19 +373,18 @@ public: me->SendMovementFlagUpdate(); me->GetMotionMaster()->MoveTakeoff(11, OnyxiaMoveData[1].x + 1.0f, OnyxiaMoveData[1].y, OnyxiaMoveData[1].z, 12.0f); bManyWhelpsAvailable = true; - events.PopEvent(); + events.RescheduleEvent(EVENT_END_MANY_WHELPS_TIME, 10000); } break; case EVENT_END_MANY_WHELPS_TIME: bManyWhelpsAvailable = false; - events.PopEvent(); break; case EVENT_FLY_S_TO_N: { me->SetSpeed(MOVE_RUN, 2.95f, false); me->GetMotionMaster()->MovePoint(5, OnyxiaMoveData[5].x, OnyxiaMoveData[5].y, OnyxiaMoveData[5].z); - events.PopEvent(); + whelpSpam = true; events.ScheduleEvent(EVENT_WHELP_SPAM, 90000); events.ScheduleEvent(EVENT_SUMMON_LAIR_GUARD, 30000); @@ -409,7 +407,6 @@ public: Talk(SAY_PHASE_3_TRANS); me->SendMeleeAttackStop(me->GetVictim()); me->GetMotionMaster()->MoveLand(13, OnyxiaMoveData[0].x + 1.0f, OnyxiaMoveData[0].y, OnyxiaMoveData[0].z, 12.0f); - events.PopEvent(); DoResetThreat(); } break; @@ -420,7 +417,7 @@ public: me->SetFacingToObject(v); me->CastSpell(v, SPELL_FIREBALL, false); } - events.PopEvent(); + events.ScheduleEvent(EVENT_SPELL_FIREBALL_SECOND, 4000); } break; @@ -431,7 +428,6 @@ public: me->SetFacingToObject(v); me->CastSpell(v, SPELL_FIREBALL, false); } - events.PopEvent(); uint8 rand = urand(0, 99); if( rand < 33 ) @@ -448,7 +444,6 @@ public: if( newWP > 8 ) newWP = 1; me->GetMotionMaster()->MovePoint(newWP, OnyxiaMoveData[newWP].x, OnyxiaMoveData[newWP].y, OnyxiaMoveData[newWP].z); - events.PopEvent(); } break; case EVENT_PHASE_2_STEP_ACW: @@ -457,7 +452,6 @@ public: if( newWP < 1 ) newWP = 8; me->GetMotionMaster()->MovePoint(newWP, OnyxiaMoveData[newWP].x, OnyxiaMoveData[newWP].y, OnyxiaMoveData[newWP].z); - events.PopEvent(); } break; case EVENT_PHASE_2_STEP_ACROSS: @@ -465,7 +459,7 @@ public: me->SetFacingTo(OnyxiaMoveData[CurrentWP].o); me->MonsterTextEmote("Onyxia takes in a deep breath...", 0, true); me->CastSpell(me, OnyxiaMoveData[CurrentWP].spellId, false); - events.PopEvent(); + events.ScheduleEvent(EVENT_SPELL_BREATH, 8250); } break; @@ -474,20 +468,16 @@ public: uint8 newWP = OnyxiaMoveData[CurrentWP].DestId; me->SetSpeed(MOVE_RUN, 2.95f, false); me->GetMotionMaster()->MovePoint(newWP, OnyxiaMoveData[newWP].x, OnyxiaMoveData[newWP].y, OnyxiaMoveData[newWP].z); - events.PopEvent(); } break; case EVENT_START_PHASE_3: { me->SetSpeed(MOVE_RUN, 2.95f, false); me->GetMotionMaster()->MovePoint(12, OnyxiaMoveData[1].x, OnyxiaMoveData[1].y, OnyxiaMoveData[1].z); - events.PopEvent(); } break; case EVENT_PHASE_3_ATTACK: { - events.PopEvent(); - me->SetReactState(REACT_AGGRESSIVE); AttackStart(SelectTarget(SELECT_TARGET_TOPAGGRO, 0, 0, false)); me->CastSpell(me, SPELL_BELLOWINGROAR, false); @@ -512,8 +502,6 @@ public: { if( Creature* trigger = me->SummonCreature(12758, *me, TEMPSUMMON_TIMED_DESPAWN, 1000) ) trigger->CastSpell(trigger, 17731, false); - - events.PopEvent(); } break; case EVENT_SUMMON_WHELP: @@ -577,7 +565,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; diff --git a/src/server/scripts/Kalimdor/zone_winterspring.cpp b/src/server/scripts/Kalimdor/zone_winterspring.cpp index 502693c5d..59fb44efc 100644 --- a/src/server/scripts/Kalimdor/zone_winterspring.cpp +++ b/src/server/scripts/Kalimdor/zone_winterspring.cpp @@ -156,7 +156,7 @@ public: void UpdateAI(uint32 diff) { events.Update(diff); - uint32 eventId = events.GetEvent(); + uint32 eventId = events.ExecuteEvent(); if (eventId == EVENT_CHECK_PLAYER) { Player* player = ObjectAccessor::GetPlayer(*me, playerGUID); diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp index ad74e491d..7937a4059 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp @@ -181,7 +181,6 @@ public: case EVENT_KRIK_HEALTH_CHECK: if (HealthBelowPct(10)) { - events.PopEvent(); me->CastSpell(me, SPELL_FRENZY, true); break; } diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_amanitar.cpp b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_amanitar.cpp index 3b671e787..f0eb4b24f 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_amanitar.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_amanitar.cpp @@ -120,7 +120,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_AMANITAR_SPAWN: { diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_elder_nadox.cpp b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_elder_nadox.cpp index dab73ae08..8e7f778dd 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_elder_nadox.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_elder_nadox.cpp @@ -161,7 +161,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch ( events.GetEvent() ) + switch ( events.ExecuteEvent() ) { case EVENT_CHECK_HEALTH: { @@ -177,7 +177,6 @@ public: { Talk(EMOTE_HATCHES, me); SummonHelpers(false); - events.PopEvent(); break; } case EVENT_BROOD_RAGE: @@ -208,7 +207,6 @@ public: if (me->GetPositionZ() < 24) { me->CastSpell(me, SPELL_ENRAGE, true); - events.PopEvent(); break; } diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_herald_volazj.cpp b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_herald_volazj.cpp index 5339c2528..9707cc1e3 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_herald_volazj.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_herald_volazj.cpp @@ -238,7 +238,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_HERALD_HEALTH: { diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_jedoga_shadowseeker.cpp b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_jedoga_shadowseeker.cpp index 4851abde7..f9fd6eb0e 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_jedoga_shadowseeker.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_jedoga_shadowseeker.cpp @@ -335,7 +335,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_JEDOGA_CYCLONE: { @@ -361,7 +361,6 @@ public: } case EVENT_JEDOGA_MOVE_UP: { - events.PopEvent(); if (!summons.HasEntry(NPC_INITIATE)) break; @@ -383,7 +382,6 @@ public: Talk(TEXT_SACRIFICE_2); summons.DespawnEntry(NPC_JEDOGA_CONTROLLER); MoveDown(); - events.PopEvent(); break; } } diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_prince_taldaram.cpp b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_prince_taldaram.cpp index 920dea49c..c7e6f7c70 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_prince_taldaram.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_prince_taldaram.cpp @@ -145,7 +145,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_PRINCE_BLOODTHIRST: { @@ -174,7 +174,6 @@ public: } case EVENT_PRINCE_VANISH: { - events.PopEvent(); //Count alive players uint8 count = 0; Unit* pTarget; @@ -208,13 +207,11 @@ public: me->RemoveAura(SPELL_VANISH); } - events.PopEvent(); events.ScheduleEvent(EVENT_PRINCE_RESCHEDULE, 20000); break; } case EVENT_PRINCE_RESCHEDULE: { - events.PopEvent(); ScheduleEvents(); break; } diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp index 15994e202..15899a79a 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp @@ -1,4 +1,4 @@ -/* +/* * Originally written by Xinef - Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 */ @@ -424,7 +424,7 @@ public: events.Update(diff); // Special events which needs to be fired immidiately - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case EVENT_SARTHARION_BOUNDARY: if (me->GetPositionX() < 3218.86f || me->GetPositionX() > 3275.69f || me->GetPositionY() < 484.68f || me->GetPositionY() > 572.4f) // https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp#L31 @@ -441,11 +441,11 @@ public: return; case EVENT_SARTHARION_START_LAVA: SendLavaWaves(true); - events.PopEvent(); + return; case EVENT_SARTHARION_FINISH_LAVA: SendLavaWaves(false); - events.PopEvent(); + return; } @@ -463,7 +463,7 @@ public: void boss_sartharion::boss_sartharionAI::HandleSartharionAbilities() { // Handling of Sartharion Events - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SARTHARION_CAST_CLEAVE: me->CastSpell(me->GetVictim(), SPELL_SARTHARION_CLEAVE, false); @@ -523,14 +523,14 @@ void boss_sartharion::boss_sartharionAI::HandleSartharionAbilities() cr->CastSpell(cr, SPELL_CYCLONE_AURA_PERIODIC, true); } Talk(SAY_SARTHARION_BERSERK); - events.PopEvent(); + break; } events.RepeatEvent(2000); break; case EVENT_SARTHARION_BERSERK: summons.DespawnEntry(NPC_SAFE_AREA_TRIGGER); - events.PopEvent(); + break; } } @@ -538,26 +538,26 @@ void boss_sartharion::boss_sartharionAI::HandleSartharionAbilities() void boss_sartharion::boss_sartharionAI::HandleDrakeAbilities() { // Handling of Drakes Events - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { // Dragon Calls case EVENT_SARTHARION_CALL_TENEBRON: Talk(SAY_SARTHARION_CALL_TENEBRON); if (Creature* tenebron = ObjectAccessor::GetCreature(*me, dragons[DRAGON_TENEBRON])) tenebron->AI()->DoAction(ACTION_CALL_DRAGON); - events.PopEvent(); + break; case EVENT_SARTHARION_CALL_SHADRON: Talk(SAY_SARTHARION_CALL_SHADRON); if (Creature* shadron = ObjectAccessor::GetCreature(*me, dragons[DRAGON_SHADRON])) shadron->AI()->DoAction(ACTION_CALL_DRAGON); - events.PopEvent(); + break; case EVENT_SARTHARION_CALL_VESPERON: Talk(SAY_SARTHARION_CALL_VESPERON); if (Creature* vesperon = ObjectAccessor::GetCreature(*me, dragons[DRAGON_VESPERON])) vesperon->AI()->DoAction(ACTION_CALL_DRAGON); - events.PopEvent(); + break; } } @@ -733,7 +733,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_MINIBOSS_SHADOW_BREATH: if (!urand(0, 10)) @@ -776,7 +776,6 @@ public: } events.ScheduleEvent(EVENT_MINIBOSS_HATCH_EGGS, 25000); - events.PopEvent(); break; } case EVENT_MINIBOSS_HATCH_EGGS: @@ -810,7 +809,6 @@ public: EntryCheckPredicate pred(NPC_TWILIGHT_EGG); summons.DoAction(ACTION_SWITCH_PHASE, pred); - events.PopEvent(); break; } } @@ -1005,7 +1003,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_MINIBOSS_SHADOW_BREATH: if (!urand(0, 10)) @@ -1030,7 +1028,7 @@ public: pInstance->SetData(DATA_ADD_PORTAL, 0); events.ScheduleEvent(EVENT_MINIBOSS_SPAWN_HELPERS, 2000); - events.PopEvent(); + break; case EVENT_MINIBOSS_SPAWN_HELPERS: Talk(WHISPER_SUMMON_DICIPLE); @@ -1041,7 +1039,7 @@ public: cr->SetPhaseMask(16, true); } - events.PopEvent(); + break; } @@ -1235,7 +1233,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_MINIBOSS_SHADOW_BREATH: if (!urand(0, 10)) @@ -1260,7 +1258,7 @@ public: pInstance->SetData(DATA_ADD_PORTAL, 0); events.ScheduleEvent(EVENT_MINIBOSS_SPAWN_HELPERS, 2000); - events.PopEvent(); + break; case EVENT_MINIBOSS_SPAWN_HELPERS: Talk(WHISPER_SUMMON_DICIPLE); @@ -1271,7 +1269,7 @@ public: cr->SetPhaseMask(16, true); } - events.PopEvent(); + break; } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp index 47f36d8ad..e51744fc4 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp @@ -162,7 +162,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -340,7 +340,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -357,7 +357,6 @@ public: case EVENT_SPELL_RENEW: if( !MemoryGUID ) { - events.PopEvent(); break; } if( urand(0, 1) ) @@ -417,14 +416,14 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; case EVENT_MEMORY_SCALE: me->SetObjectScale(1.0f); events.ScheduleEvent(EVENT_MEMORY_START_ATTACK, 5000); - events.PopEvent(); + break; case EVENT_MEMORY_START_ATTACK: me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -437,7 +436,6 @@ public: events.ScheduleEvent(EVENT_SPELL_OLD_WOUNDS, 8000); events.ScheduleEvent(EVENT_SPELL_SHADOWS_PAST, 4000); events.ScheduleEvent(EVENT_SPELL_WAKING_NIGHTMARE, urand(20000, 30000)); - events.PopEvent(); break; case EVENT_SPELL_OLD_WOUNDS: if( Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 10.0f, true) ) @@ -655,7 +653,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp index 35aad13da..239be1d32 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp @@ -231,7 +231,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -239,7 +239,7 @@ public: if( pInstance && !summons.empty() ) if( Creature* ghoul = pInstance->instance->GetCreature(*summons.begin()) ) ghoul->MonsterYell("[Zombie] .... . Brains ....", LANG_UNIVERSAL, 0); - events.PopEvent(); + break; case EVENT_SPELL_PLAGUE_STRIKE: if( me->GetVictim() ) @@ -440,7 +440,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -449,7 +449,7 @@ public: if (me->GetDistance(target) > 5.0f && me->GetDistance(target) < 30.0f) { me->CastSpell(target, SPELL_LEAP, false); - events.PopEvent(); + break; } events.RepeatEvent(1000); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp index c522a1a9f..bacd5beb9 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp @@ -257,7 +257,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -655,7 +655,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) || ((me->GetEntry() == NPC_JACOB || me->GetEntry() == NPC_MOKRA) && me->HasAura(SPELL_BLADESTORM)) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -711,9 +711,7 @@ public: me->GetMotionMaster()->MovePoint(7, *mount); events.RepeatEvent(200); break; - } - - events.PopEvent(); + } } break; case EVENT_MOUNT_CHARGE: @@ -831,7 +829,7 @@ public: /****************** HUNTER ******************/ case EVENT_HUNTER_SPELL_DISENGAGE: - events.PopEvent(); + break; case EVENT_HUNTER_SPELL_LIGHTNING_ARROWS: me->CastSpell((Unit*)NULL, SPELL_LIGHTNING_ARROWS, false); @@ -920,7 +918,7 @@ public: } break; case EVENT_WARRIOR_SPELL_ROLLING_THROW: - events.PopEvent(); + break; /*************** WARRIOR END ****************/ } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp index 47157f88b..0933524e5 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp @@ -759,7 +759,7 @@ public: void Update(uint32 diff) { events.Update(diff); - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case EVENT_NULL: break; @@ -776,7 +776,6 @@ public: DoSummonGrandChampion(temp1, 0); HandleGameObject(GO_MainGateGUID, true); events.ScheduleEvent(EVENT_CLOSE_GATE, 6000); - events.PopEvent(); } break; case EVENT_SUMMON_GRAND_CHAMPION_2: @@ -786,7 +785,6 @@ public: DoSummonGrandChampion(temp2, 1); HandleGameObject(GO_MainGateGUID, true); events.ScheduleEvent(EVENT_CLOSE_GATE, 6000); - events.PopEvent(); } break; case EVENT_SUMMON_GRAND_CHAMPION_3: @@ -797,23 +795,23 @@ public: DoSummonGrandChampion(number, 2); HandleGameObject(GO_MainGateGUID, true); events.ScheduleEvent(EVENT_CLOSE_GATE, 6000); - events.PopEvent(); } break; case EVENT_CLOSE_GATE: { HandleGameObject(GO_MainGateGUID, false); - events.PopEvent(); } break; case EVENT_YELL_WELCOME_2: { - if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) ) + if (Creature* tirion = instance->GetCreature(NPC_TirionGUID)) + { tirion->AI()->Talk(TEXT_WELCOME_2); + } + events.RescheduleEvent(EVENT_SUMMON_GRAND_CHAMPION_1, 8000); - events.PopEvent(); + break; } - break; case EVENT_GRAND_GROUP_1_MOVE_MIDDLE: { if( Creature* announcer = instance->GetCreature(NPC_AnnouncerGUID) ) @@ -831,7 +829,6 @@ public: } events.ScheduleEvent(EVENT_GRAND_GROUP_1_ATTACK, 3000); - events.PopEvent(); } break; case EVENT_GRAND_GROUP_1_ATTACK: @@ -846,7 +843,6 @@ public: c->AI()->DoZoneInCombat(); } Counter = 0; - events.PopEvent(); } break; case EVENT_GRAND_GROUP_2_MOVE_MIDDLE: @@ -859,7 +855,6 @@ public: } events.ScheduleEvent(EVENT_GRAND_GROUP_2_ATTACK, 3000); - events.PopEvent(); } break; case EVENT_GRAND_GROUP_2_ATTACK: @@ -873,7 +868,6 @@ public: c->AI()->AttackStart(target); c->AI()->DoZoneInCombat(); } - events.PopEvent(); } break; case EVENT_GRAND_GROUP_3_MOVE_MIDDLE: @@ -886,7 +880,6 @@ public: } events.ScheduleEvent(EVENT_GRAND_GROUP_3_ATTACK, 3000); - events.PopEvent(); } break; case EVENT_GRAND_GROUP_3_ATTACK: @@ -900,7 +893,6 @@ public: c->AI()->AttackStart(target); c->AI()->DoZoneInCombat(); } - events.PopEvent(); } break; case EVENT_GRAND_CHAMPIONS_MOVE_MIDDLE: @@ -913,7 +905,6 @@ public: } events.ScheduleEvent(EVENT_GRAND_CHAMPIONS_MOUNTS_ATTACK, 3000); - events.PopEvent(); } break; case EVENT_GRAND_CHAMPIONS_MOUNTS_ATTACK: @@ -928,7 +919,6 @@ public: c->AI()->DoZoneInCombat(); c->CastSpell(c, 67865, true); // SPELL_TRAMPLE_AURA } - events.PopEvent(); } break; case EVENT_GRAND_CHAMPIONS_MOVE_SIDE: @@ -952,7 +942,6 @@ public: } events.ScheduleEvent(EVENT_GRAND_CHAMPIONS_ATTACK, 15000); - events.PopEvent(); } break; case EVENT_GRAND_CHAMPIONS_ATTACK: @@ -967,14 +956,13 @@ public: c->AI()->DoZoneInCombat(); c->AI()->DoAction(2); } - events.PopEvent(); } break; case EVENT_GRATZ_SLAIN_CHAMPIONS: { if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) ) tirion->AI()->Talk(TEXT_GRATZ_SLAIN_CHAMPIONS); - events.PopEvent(); + HandleGameObject(GO_EnterGateGUID, true); } break; @@ -982,7 +970,6 @@ public: { if( Creature* announcer = instance->GetCreature(NPC_AnnouncerGUID) ) announcer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - events.PopEvent(); } break; case EVENT_START_ARGENT_CHALLENGE_INTRO: @@ -1032,7 +1019,6 @@ public: } } events.ScheduleEvent(EVENT_SUMMON_ARGENT_CHALLENGE, 4000); - events.PopEvent(); } break; case EVENT_SUMMON_ARGENT_CHALLENGE: @@ -1044,7 +1030,6 @@ public: events.ScheduleEvent(EVENT_CLOSE_GATE, 5000); events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_SAY_1, 4000); events.ScheduleEvent(EVENT_ARGENT_SOLDIER_GROUP_ATTACK, 12500); - events.PopEvent(); } break; case EVENT_ARGENT_CHALLENGE_SAY_1: @@ -1053,14 +1038,12 @@ public: ac->AI()->Talk(Counter ? TEXT_EADRIC_SAY_1 : TEXT_PALETRESS_SAY_1); if( !Counter ) events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_SAY_2, 6000); - events.PopEvent(); } break; case EVENT_ARGENT_CHALLENGE_SAY_2: { if( Creature* ac = instance->GetCreature(NPC_ArgentChampionGUID) ) ac->AI()->Talk(TEXT_PALETRESS_SAY_2); - events.PopEvent(); } break; case EVENT_ARGENT_SOLDIER_GROUP_ATTACK: @@ -1076,7 +1059,6 @@ public: } if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) ) tirion->AI()->Talk(TEXT_YOU_MAY_BEGIN); - events.PopEvent(); } break; case EVENT_ARGENT_CHALLENGE_MOVE_FORWARD: @@ -1086,7 +1068,6 @@ public: boss->GetMotionMaster()->MovePoint(0, 746.881f, 635.263f, 411.7f); } events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_ATTACK, 3000); - events.PopEvent(); } break; case EVENT_ARGENT_CHALLENGE_ATTACK: @@ -1099,7 +1080,6 @@ public: boss->AI()->AttackStart(target); boss->AI()->DoZoneInCombat(); } - events.PopEvent(); } break; case EVENT_ARGENT_CHALLENGE_RUN_MIDDLE: @@ -1109,7 +1089,6 @@ public: boss->GetMotionMaster()->MovePoint(1, 747.13f, 628.037f, 411.2f); events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_LEAVE_CHEST, 6000); } - events.PopEvent(); } break; case EVENT_ARGENT_CHALLENGE_LEAVE_CHEST: @@ -1128,7 +1107,6 @@ public: events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_DISAPPEAR, 4000); events.ScheduleEvent(EVENT_RESTORE_ANNOUNCER_GOSSIP, 15000); - events.PopEvent(); } break; case EVENT_ARGENT_CHALLENGE_DISAPPEAR: @@ -1138,7 +1116,6 @@ public: boss->GetMotionMaster()->MovePoint(0, SpawnPosition); boss->DespawnOrUnsummon(3000); } - events.PopEvent(); } break; case EVENT_SUMMON_BLACK_KNIGHT: @@ -1161,7 +1138,6 @@ public: announcer->SetFacingToObject(bk_vehicle); announcer->AI()->Talk(TEXT_BK_RAFTERS); } - events.PopEvent(); } break; case EVENT_START_BLACK_KNIGHT_SCENE: @@ -1174,7 +1150,6 @@ public: bk->AI()->Talk(TEXT_BK_SPOILED); } events.ScheduleEvent(EVENT_BLACK_KNIGHT_CAST_ANNOUNCER, 2000); - events.PopEvent(); } break; case EVENT_BLACK_KNIGHT_CAST_ANNOUNCER: @@ -1194,7 +1169,6 @@ public: } } events.ScheduleEvent(EVENT_BLACK_KNIGHT_KILL_ANNOUNCER, 1000); - events.PopEvent(); } break; case EVENT_BLACK_KNIGHT_KILL_ANNOUNCER: @@ -1203,7 +1177,6 @@ public: bk_vehicle->AI()->DoAction(1); events.ScheduleEvent(EVENT_BLACK_KNIGHT_MOVE_FORWARD, 4000); - events.PopEvent(); } break; case EVENT_BLACK_KNIGHT_MOVE_FORWARD: @@ -1218,7 +1191,6 @@ public: if (announcer->IsAlive()) Unit::Kill(announcer, announcer); events.ScheduleEvent(EVENT_BLACK_KNIGHT_SAY_TASK, 14000); - events.PopEvent(); } break; case EVENT_BLACK_KNIGHT_SAY_TASK: @@ -1229,7 +1201,6 @@ public: bk->AI()->Talk(TEXT_BK_TASK); } events.ScheduleEvent(EVENT_BLACK_KNIGHT_ATTACK, 5000); - events.PopEvent(); } break; case EVENT_BLACK_KNIGHT_ATTACK: @@ -1243,7 +1214,6 @@ public: bk->AI()->DoZoneInCombat(); bk->AI()->DoAction(1); } - events.PopEvent(); } break; } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp index a9bbdab1b..c6bc63e4d 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp @@ -252,14 +252,13 @@ public: return; } - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; case EVENT_ENRAGE: { me->CastSpell(me, SPELL_BERSERK, true); - events.PopEvent(); } break; case EVENT_RESPAWN_SPHERE: @@ -315,7 +314,6 @@ public: events.RescheduleEvent(EVENT_EMERGE, EMERGE_INTERVAL); events.RescheduleEvent(EVENT_SPELL_SUMMON_SPIKE, 2500); events.RescheduleEvent(EVENT_SUMMON_SCARAB, 3000); - events.PopEvent(); } break; case EVENT_SUMMON_SCARAB: @@ -332,7 +330,6 @@ public: summons.DespawnEntry(NPC_SPIKE); events.CancelEvent(EVENT_SUMMON_SCARAB); events.RescheduleEvent(EVENT_EMERGE_2, 2000); - events.PopEvent(); } break; case EVENT_EMERGE_2: @@ -346,12 +343,10 @@ public: events.RescheduleEvent(EVENT_SPELL_FREEZING_SLASH, urand(7000, 15000)); events.RescheduleEvent(EVENT_SPELL_PENETRATING_COLD, urand(15000, 20000)); events.RescheduleEvent(EVENT_SUBMERGE, SUBMERGE_INTERVAL); - events.PopEvent(); } break; case EVENT_SPELL_SUMMON_SPIKE: me->CastSpell(me, SPELL_SUMMON_SPIKE, true); - events.PopEvent(); break; } @@ -374,7 +369,6 @@ public: if( pInstance ) pInstance->SetData(TYPE_ANUBARAK, DONE); - Player* plr = nullptr; if( !pInstance->instance->GetPlayers().isEmpty() ) plr = pInstance->instance->GetPlayers().begin()->GetSource(); @@ -679,7 +673,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -697,7 +691,7 @@ public: me->CastSpell(me, SPELL_EXPOSE_WEAKNESS, true); me->CastSpell(me, SPELL_SPIDER_FRENZY, true); me->CastSpell(me, SPELL_SUBMERGE, false); - events.PopEvent(); + events.DelayEvents(15000); events.RescheduleEvent(EVENT_EMERGE, 10000); } @@ -710,7 +704,7 @@ public: me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->CastSpell(me, SPELL_EMERGE, false); me->RemoveAura(SPELL_SUBMERGE); - events.PopEvent(); + events.RescheduleEvent(EVENT_SUBMERGE, 30000); break; } @@ -813,18 +807,18 @@ public: events.Update(diff); - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; case 1: me->CastSpell(me, SPELL_SPIKE_SPEED2, true); - events.PopEvent(); + events.RescheduleEvent(2, 7000); break; case 2: me->CastSpell(me, SPELL_SPIKE_SPEED3, true); - events.PopEvent(); + break; case 3: Reset(); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp index 2156dab8a..02c79cbc6 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp @@ -293,7 +293,7 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -422,7 +422,7 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -545,7 +545,7 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -678,7 +678,7 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -801,7 +801,7 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -961,13 +961,13 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; case EVENT_SPELL_SUMMON_FELHUNTER: DoSummon(35465, *me); - events.PopEvent(); + break; case EVENT_SPELL_HELLFIRE: if( EnemiesInRange(9.0f) >= 3 ) @@ -1098,7 +1098,7 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -1252,13 +1252,13 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; case EVENT_SPELL_CALL_PET: DoSummon(35610, *me); - events.PopEvent(); + break; case EVENT_SPELL_AIMED_SHOT: if( me->GetVictim() ) @@ -1405,7 +1405,7 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -1544,7 +1544,7 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -1736,7 +1736,7 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -1893,7 +1893,7 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -2052,7 +2052,7 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -2191,7 +2191,7 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -2336,7 +2336,7 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -2411,7 +2411,7 @@ public: if( !myCanCast() ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp index 772b18d12..eec88cfe0 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp @@ -189,7 +189,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -234,14 +234,14 @@ public: Talk(EMOTE_NETHER_PORTAL); Talk(SAY_MISTRESS_OF_PAIN); me->CastSpell((Unit*)NULL, SPELL_SUMMON_NETHER_PORTAL, false); - events.PopEvent(); + events.RescheduleEvent(EVENT_SUMMON_VOLCANO, 60000); break; case EVENT_SUMMON_VOLCANO: Talk(EMOTE_INFERNAL_ERUPTION); Talk(SAY_INFERNAL_ERUPTION); me->CastSpell((Unit*)NULL, SPELL_SUMMON_VOLCANO, false); - events.PopEvent(); + events.RescheduleEvent(EVENT_SUMMON_NETHER_PORTAL, 60000); break; } @@ -317,7 +317,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -397,7 +397,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp index a242cabdf..622f537e8 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp @@ -143,14 +143,14 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; case EVENT_SPELL_SNOBOLLED: if( t->GetTypeId() == TYPEID_PLAYER ) me->CastSpell((Unit*)NULL, SPELL_SNOBOLLED, true); - events.PopEvent(); + break; case EVENT_SPELL_BATTER: if( t->GetTypeId() == TYPEID_PLAYER ) @@ -275,7 +275,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -359,7 +359,6 @@ public: } } PlayerGUID = 0; - events.PopEvent(); } break; } @@ -550,7 +549,7 @@ struct boss_jormungarAI : public ScriptedAI if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -583,7 +582,7 @@ struct boss_jormungarAI : public ScriptedAI me->UpdatePosition(Locs[LOC_CENTER].GetPositionX() + cos(angle)*dist, Locs[LOC_CENTER].GetPositionY() + sin(angle)*dist, me->GetPositionZ(), me->GetOrientation(), true); me->StopMovingOnCurrentPos(); DoResetThreat(); - events.PopEvent(); + events.RescheduleEvent(EVENT_EMERGE, 6000); } break; @@ -861,7 +860,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -893,7 +892,7 @@ public: case EVENT_SPELL_MASSIVE_CRASH: me->GetMotionMaster()->Clear(); me->CastSpell((Unit*)NULL, SPELL_MASSIVE_CRASH, false); - events.PopEvent(); + events.RescheduleEvent(EVENT_GAZE, 2000); break; case EVENT_GAZE: @@ -915,7 +914,7 @@ public: me->GetMotionMaster()->MovementExpired(); me->SetReactState(REACT_AGGRESSIVE); } - events.PopEvent(); + break; case EVENT_JUMP_BACK: { @@ -935,7 +934,6 @@ public: me->StopMoving(); me->GetMotionMaster()->MoveJump(Locs[LOC_CENTER].GetPositionX() + cos(jumpangle) * 35.0f, Locs[LOC_CENTER].GetPositionY() + sin(jumpangle) * 35.0f, Locs[LOC_CENTER].GetPositionZ() + 1.0f, 40.0f, 12.0f); - events.PopEvent(); events.RescheduleEvent(EVENT_TRAMPLE, 1500); if( pInstance ) @@ -965,7 +963,7 @@ public: me->GetMotionMaster()->MoveCharge(destX, destY, destZ + 1.0f, 65.0f); me->SetUInt64Value(UNIT_FIELD_TARGET, 0); events.RescheduleEvent(EVENT_CHECK_TRAMPLE_PLAYERS, 100); - events.PopEvent(); + break; case EVENT_CHECK_TRAMPLE_PLAYERS: if( DoTrampleIfValid() ) @@ -984,7 +982,7 @@ public: break; case EVENT_REFRESH_POSITION: //me->SetFacingTo(me->GetOrientation()); - events.PopEvent(); + break; } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp index 429c811a7..a4facef3b 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp @@ -276,7 +276,7 @@ struct boss_twin_valkyrAI : public ScriptedAI if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -288,13 +288,13 @@ struct boss_twin_valkyrAI : public ScriptedAI twin->CastSpell(twin, SPELL_BERSERK, true); twin->AI()->Talk(SAY_BERSERK); } - events.PopEvent(); + break; case EVENT_SUMMON_BALLS_1: case EVENT_SUMMON_BALLS_2: case EVENT_SUMMON_BALLS_3: { - uint8 eventId = events.GetEvent(); + uint8 eventId = events.ExecuteEvent(); uint8 count = 0; if( IsHeroic() ) count = eventId == EVENT_SUMMON_BALLS_3 ? 36 : 6; @@ -306,7 +306,7 @@ struct boss_twin_valkyrAI : public ScriptedAI if( Creature* ball = me->SummonCreature((i % 2) ? NPC_CONCENTRATED_DARK : NPC_CONCENTRATED_LIGHT, Locs[LOC_CENTER].GetPositionX() + cos(angle) * 47.0f, Locs[LOC_CENTER].GetPositionY() + sin(angle) * 47.0f, Locs[LOC_CENTER].GetPositionZ() + 1.5f, 0.0f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 1500) ) boss_twin_valkyrAI::JustSummoned(ball); } - events.PopEvent(); + switch( eventId ) { case EVENT_SUMMON_BALLS_1: @@ -448,7 +448,7 @@ struct boss_twin_valkyrAI : public ScriptedAI break; case EVENT_REMOVE_DUAL_WIELD: me->SetCanDualWield(false); - events.PopEvent(); + break; } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp index e9195f714..42edbd8e0 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp @@ -572,7 +572,7 @@ public: void Update(uint32 diff) { events.Update(diff); - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -590,20 +590,18 @@ public: case EVENT_OPEN_GATE: { HandleGameObject(GO_MainGateGUID, true); - events.PopEvent(); + break; } - break; case EVENT_CLOSE_GATE: { HandleGameObject(GO_MainGateGUID, false); - events.PopEvent(); } break; case EVENT_SCENE_001: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) c->AI()->Talk(SAY_STAGE_0_01); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_002, 22000); } break; @@ -611,7 +609,7 @@ public: { if( Creature* c = instance->GetCreature(NPC_VarianGUID) ) c->AI()->Talk(SAY_STAGE_0_03a); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_003, 5000); } break; @@ -619,7 +617,7 @@ public: { if( Creature* c = instance->GetCreature(NPC_GarroshGUID) ) c->AI()->Talk(SAY_STAGE_0_03h); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_004, 8000); } break; @@ -632,7 +630,7 @@ public: c->AI()->Talk(SAY_STAGE_0_02); HandleGameObject(GO_MainGateGUID, true); HandleGameObject(GO_EnterGateGUID, false); - events.PopEvent(); + events.RescheduleEvent(EVENT_SUMMON_GORMOK, 1000); if (instance->IsHeroic()) { @@ -655,14 +653,14 @@ public: if( Creature* c = instance->GetCreature(NPC_IcehowlGUID) ) if (c->IsAlive()) c->CastSpell(c, 26662, true); - events.PopEvent(); + break; case EVENT_SUMMON_GORMOK: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) if( Creature* gormok = c->SummonCreature(NPC_GORMOK, Locs[LOC_BEHIND_GATE].GetPositionX(), Locs[LOC_BEHIND_GATE].GetPositionY(), Locs[LOC_BEHIND_GATE].GetPositionZ(), Locs[LOC_BEHIND_GATE].GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30000) ) gormok->GetMotionMaster()->MovePoint(0, Locs[LOC_GATE_FRONT].GetPositionX(), Locs[LOC_GATE_FRONT].GetPositionY(), Locs[LOC_GATE_FRONT].GetPositionZ()); - events.PopEvent(); + events.RescheduleEvent(EVENT_GORMOK_ATTACK, 10000); events.RescheduleEvent(EVENT_CLOSE_GATE, 6000); } @@ -681,19 +679,18 @@ public: c->AI()->DoZoneInCombat(); } } - events.PopEvent(); + break; } - break; case EVENT_SCENE_005: { northrendBeastsMask |= 16; if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) c->AI()->Talk(SAY_STAGE_0_04); - events.PopEvent(); + events.RescheduleEvent(EVENT_OPEN_GATE, 3000); events.RescheduleEvent(EVENT_SUMMON_ACIDMAW_AND_DREADSCALE, 4000); + break; } - break; case EVENT_SUMMON_ACIDMAW_AND_DREADSCALE: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) @@ -703,18 +700,19 @@ public: if( Creature* acidmaw = c->SummonCreature(NPC_ACIDMAW, Locs[LOC_ACIDMAW].GetPositionX(), Locs[LOC_ACIDMAW].GetPositionY(), Locs[LOC_ACIDMAW].GetPositionZ(), Locs[LOC_ACIDMAW].GetOrientation(), TEMPSUMMON_MANUAL_DESPAWN) ) acidmaw->AddAura(53421, acidmaw); } - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_005_2, 4000); + break; } - break; + case EVENT_SCENE_005_2: { if( Creature* dreadscale = instance->GetCreature(NPC_DreadscaleGUID) ) dreadscale->GetMotionMaster()->MovePoint(0, Locs[LOC_DREADSCALE].GetPositionX(), Locs[LOC_DREADSCALE].GetPositionY(), Locs[LOC_DREADSCALE].GetPositionZ()); - events.PopEvent(); + events.RescheduleEvent(EVENT_ACIDMAW_AND_DREADSCALE_ATTACK, 7000); + break; } - break; case EVENT_ACIDMAW_AND_DREADSCALE_ATTACK: { HandleGameObject(GO_MainGateGUID, false); @@ -742,29 +740,28 @@ public: c->AI()->DoZoneInCombat(); } } - events.PopEvent(); + break; } - break; case EVENT_SCENE_006: { northrendBeastsMask |= 32; if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) c->AI()->Talk(SAY_STAGE_0_05); - events.PopEvent(); + events.RescheduleEvent(EVENT_OPEN_GATE, 2000); events.RescheduleEvent(EVENT_SUMMON_ICEHOWL, 3000); + break; } - break; case EVENT_SUMMON_ICEHOWL: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) if( Creature* icehowl = c->SummonCreature(NPC_ICEHOWL, Locs[LOC_BEHIND_GATE].GetPositionX(), Locs[LOC_BEHIND_GATE].GetPositionY(), Locs[LOC_BEHIND_GATE].GetPositionZ(), Locs[LOC_BEHIND_GATE].GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 630000000) ) icehowl->GetMotionMaster()->MovePoint(0, Locs[LOC_GATE_FRONT].GetPositionX(), Locs[LOC_GATE_FRONT].GetPositionY(), Locs[LOC_GATE_FRONT].GetPositionZ()); - events.PopEvent(); + events.RescheduleEvent(EVENT_ICEHOWL_ATTACK, 10000); events.RescheduleEvent(EVENT_CLOSE_GATE, 6000); + break; } - break; case EVENT_ICEHOWL_ATTACK: { if( Creature* c = instance->GetCreature(NPC_IcehowlGUID) ) @@ -778,18 +775,16 @@ public: c->AI()->DoZoneInCombat(); } } - events.PopEvent(); + break; } - break; case EVENT_SCENE_BEASTS_DONE: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) c->AI()->Talk(SAY_STAGE_0_06); if( Creature* c = instance->GetCreature(NPC_BarrettGUID) ) c->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - events.PopEvent(); + break; } - break; case EVENT_SCENE_101: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) @@ -811,18 +806,17 @@ public: icehowl->DestroyForNearbyPlayers(); } } - events.PopEvent(); + break; } - break; case EVENT_SCENE_102: { HandleGameObject(GO_MainGateGUID, false); if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) ) c->AI()->Talk(SAY_STAGE_1_02); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_103, 11000); + break; } - break; case EVENT_SCENE_103: { if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) ) @@ -832,10 +826,10 @@ public: if( Creature* trigger = c->SummonCreature(NPC_PURPLE_GROUND, Locs[LOC_CENTER].GetPositionX(), Locs[LOC_CENTER].GetPositionY(), Locs[LOC_CENTER].GetPositionZ(), Locs[LOC_CENTER].GetOrientation(), TEMPSUMMON_MANUAL_DESPAWN) ) NPC_PurpleGroundGUID = trigger->GetGUID(); } - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_104, 5000); + break; } - break; case EVENT_SCENE_104: { if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) ) @@ -849,10 +843,10 @@ public: } c->HandleEmoteCommand(EMOTE_STATE_SPELL_PRECAST); } - events.PopEvent(); + events.RescheduleEvent(EVENT_SUMMON_JARAXXUS, 5000); + break; } - break; case EVENT_SUMMON_JARAXXUS: { if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) ) @@ -862,10 +856,10 @@ public: c->HandleEmoteCommand(EMOTE_STATE_NONE); c->AI()->Talk(SAY_STAGE_1_04); } - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_105, 3000); + break; } - break; case EVENT_SCENE_105: { if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) ) @@ -876,26 +870,26 @@ public: if( Creature* c = instance->GetCreature(NPC_PortalGUID) ) c->DespawnOrUnsummon(); NPC_PortalGUID = 0; - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_106, 10000); + break; } - break; case EVENT_SCENE_106: { if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) ) c->AI()->Talk(SAY_STAGE_1_05); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_107, 5000); + break; } - break; case EVENT_SCENE_107: { if( Creature* c = instance->GetCreature(NPC_FizzlebangGUID) ) c->AI()->Talk(SAY_STAGE_1_06); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_108, 800); + break; } - break; case EVENT_SCENE_108: { if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) ) @@ -908,20 +902,20 @@ public: Unit::Kill(f, f); } } - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_109, 5000); + break; } - break; case EVENT_SCENE_109: { if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) ) c->SetFacingTo(3 * M_PI / 2); if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) c->AI()->Talk(SAY_STAGE_1_07); - events.PopEvent(); + events.RescheduleEvent(EVENT_JARAXXUS_ATTACK, 6000); + break; } - break; case EVENT_JARAXXUS_ATTACK: { InstanceProgress = INSTANCE_PROGRESS_JARAXXUS_INTRO_DONE; @@ -936,42 +930,40 @@ public: c->AI()->DoZoneInCombat(); } } - events.PopEvent(); + break; } - break; case EVENT_SCENE_110: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) c->AI()->Talk(SAY_STAGE_1_08); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_111, 18000); + break; } - break; case EVENT_SCENE_111: { if( Creature* c = instance->GetCreature(NPC_GarroshGUID) ) c->AI()->Talk(SAY_STAGE_1_09); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_112, 9000); + break; } - break; case EVENT_SCENE_112: { if( Creature* c = instance->GetCreature(NPC_VarianGUID) ) c->AI()->Talk(SAY_STAGE_1_10); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_113, 5000); + break; } - break; case EVENT_SCENE_113: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) c->AI()->Talk(SAY_STAGE_1_11); if( Creature* c = instance->GetCreature(NPC_BarrettGUID) ) c->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - events.PopEvent(); - } - break; + break; + } case EVENT_SCENE_201: { // move Jaraxxus to side, can't remove corpse because of loot! @@ -984,10 +976,10 @@ public: if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) c->AI()->Talk(SAY_STAGE_2_01); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_202, 9000); + break; } - break; case EVENT_SCENE_202: { Map::PlayerList const& pl = instance->GetPlayers(); @@ -1011,17 +1003,16 @@ public: c->AI()->Talk(SAY_STAGE_2_02a); events.RescheduleEvent(EVENT_SCENE_203, 18000); } - events.PopEvent(); + break; } - break; case EVENT_SCENE_203: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) c->AI()->Talk(SAY_STAGE_2_03); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_204, 5000); + break; } - break; case EVENT_SCENE_204: { if( TeamIdInInstance == TEAM_ALLIANCE ) @@ -1036,17 +1027,17 @@ public: c->AI()->Talk(SAY_STAGE_2_04a); events.RescheduleEvent(EVENT_SCENE_205, 5000); } - events.PopEvent(); + events.RescheduleEvent(EVENT_SUMMON_CHAMPIONS, 2500); + break; } - break; case EVENT_SCENE_205: { if( Creature* c = instance->GetCreature(TeamIdInInstance == TEAM_ALLIANCE ? NPC_VarianGUID : NPC_GarroshGUID) ) c->AI()->Talk(TeamIdInInstance == TEAM_ALLIANCE ? SAY_STAGE_2_05a : SAY_STAGE_2_05h); - events.PopEvent(); + + break; } - break; case EVENT_SUMMON_CHAMPIONS: { std::vector vHealerEntries; @@ -1119,10 +1110,9 @@ public: } HandleGameObject(GO_EnterGateGUID, false); - events.PopEvent(); events.RescheduleEvent(EVENT_CHAMPIONS_ATTACK, 4000); + break; } - break; case EVENT_CHAMPIONS_ATTACK: { for( std::vector::iterator itr = NPC_ChampionGUIDs.begin(); itr != NPC_ChampionGUIDs.end(); ++itr ) @@ -1138,34 +1128,32 @@ public: for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr) itr->GetSource()->AddToNotify(NOTIFY_AI_RELOCATION); EncounterStatus = IN_PROGRESS; - events.PopEvent(); + break; } - break; case EVENT_SCENE_FACTION_CHAMPIONS_DEAD: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) c->AI()->Talk(SAY_STAGE_2_06); if( Creature* c = instance->GetCreature(NPC_BarrettGUID) ) c->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - events.PopEvent(); - } - break; + break; + } case EVENT_SCENE_301: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) c->AI()->Talk(SAY_STAGE_3_01); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_302, 13000); + break; } - break; case EVENT_SCENE_302: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) c->AI()->Talk(SAY_STAGE_3_02); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_303, 3000); + break; } - break; case EVENT_SCENE_303: { HandleGameObject(GO_EnterGateGUID, false); @@ -1177,10 +1165,10 @@ public: if( Creature* t = c->SummonCreature(NPC_DARKBANE, Locs[LOC_VALKYR_LEFT].GetPositionX(), Locs[LOC_VALKYR_LEFT].GetPositionY(), Locs[LOC_VALKYR_LEFT].GetPositionZ(), Locs[LOC_VALKYR_LEFT].GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 630000000) ) t->GetMotionMaster()->MovePoint(0, Locs[LOC_VALKYR_DEST_LEFT].GetPositionX(), Locs[LOC_VALKYR_DEST_LEFT].GetPositionY(), Locs[LOC_VALKYR_DEST_LEFT].GetPositionZ()); } - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_304, 6250); + break; } - break; case EVENT_SCENE_304: { HandleGameObject(GO_MainGateGUID, false); @@ -1189,10 +1177,10 @@ public: c->GetMotionMaster()->MovePoint(0, Locs[LOC_VALKYR_DEST_2_RIGHT].GetPositionX(), Locs[LOC_VALKYR_DEST_2_RIGHT].GetPositionY(), Locs[LOC_VALKYR_DEST_2_RIGHT].GetPositionZ()); if( Creature* c = instance->GetCreature(NPC_DarkbaneGUID) ) c->GetMotionMaster()->MovePoint(0, Locs[LOC_VALKYR_DEST_2_LEFT].GetPositionX(), Locs[LOC_VALKYR_DEST_2_LEFT].GetPositionY(), Locs[LOC_VALKYR_DEST_2_LEFT].GetPositionZ()); - events.PopEvent(); + events.RescheduleEvent(EVENT_VALKYRIES_ATTACK, 3250); + break; } - break; case EVENT_VALKYRIES_ATTACK: { if( Creature* c = instance->GetCreature(NPC_LightbaneGUID) ) @@ -1215,9 +1203,8 @@ public: c->AI()->DoZoneInCombat(); }*/ } - events.PopEvent(); + break; } - break; case EVENT_SCENE_VALKYR_DEAD: { if (TeamIdInInstance == TEAM_NEUTRAL) @@ -1233,18 +1220,18 @@ public: } if( Creature* c = instance->GetCreature(TeamIdInInstance == TEAM_ALLIANCE ? NPC_VarianGUID : NPC_GarroshGUID) ) c->AI()->Talk((TeamIdInInstance == TEAM_ALLIANCE ? SAY_STAGE_3_03a : SAY_STAGE_3_03h)); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_401, 60000); + break; } - break; case EVENT_SCENE_401: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) c->AI()->Talk(SAY_STAGE_4_01); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_402, 20000); + break; } - break; case EVENT_SCENE_402: { HandleGameObject(GO_EnterGateGUID, false); @@ -1258,10 +1245,10 @@ public: t->AI()->Talk(SAY_STAGE_4_02); t->SetVisible(false); } - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_403, 2000); + break; } - break; case EVENT_SCENE_403: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) @@ -1270,10 +1257,10 @@ public: t->SetReactState(REACT_PASSIVE); t->CastSpell(t, 51807, true); } - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_404, 2000); + break; } - break; case EVENT_SCENE_404: { if( Creature* c = instance->GetCreature(NPC_LichKingGUID) ) @@ -1282,18 +1269,18 @@ public: c->SetVisible(true); c->GetMotionMaster()->MovePoint(0, Locs[LOC_ARTHAS]); } - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_405, 3000); + break; } - break; case EVENT_SCENE_405: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) c->AI()->Talk(SAY_STAGE_4_03); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_406, 7000); + break; } - break; case EVENT_SCENE_406: { if( Creature* c = instance->GetCreature(NPC_LichKingGUID) ) @@ -1301,36 +1288,39 @@ public: c->AI()->Talk(SAY_STAGE_4_04); c->HandleEmoteCommand(EMOTE_ONESHOT_LAUGH); } - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_406_2, 2500); events.RescheduleEvent(EVENT_SCENE_407, 12000); + break; } - break; case EVENT_SCENE_406_2: { if( Creature* c = instance->GetCreature(NPC_LichKingGUID) ) + { c->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK); - events.PopEvent(); + } + + break; } - break; + case EVENT_SCENE_407: { if( Creature* c = instance->GetCreature(NPC_LichKingGUID) ) c->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION); - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_408, 4000); + break; } - break; case EVENT_SCENE_408: { if( Creature* c = instance->GetCreature(NPC_LichKingGUID) ) { c->HandleEmoteCommand(EMOTE_ONESHOT_KNEEL); } - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_409, 1500); + break; } - break; case EVENT_SCENE_409: { if( Creature* c = instance->GetCreature(NPC_LichKingGUID) ) @@ -1346,10 +1336,10 @@ public: InstanceProgress = INSTANCE_PROGRESS_ANUB_ARAK; SpawnAnubArak(); } - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_410, 2000); + break; } - break; case EVENT_SCENE_410: { if( Creature* c = instance->GetCreature(NPC_LichKingGUID) ) @@ -1358,9 +1348,9 @@ public: c->AI()->Talk(SAY_STAGE_4_05); c->DespawnOrUnsummon(0); } - events.PopEvent(); + + break; } - break; case EVENT_SCENE_501: { if( Creature* c = instance->GetCreature(NPC_TirionGUID) ) @@ -1369,10 +1359,10 @@ public: c->SummonCreature(NPC_ARGENT_MAGE, Locs[LOC_MAGE].GetPositionX(), Locs[LOC_MAGE].GetPositionY(), Locs[LOC_MAGE].GetPositionZ(), Locs[LOC_MAGE].GetOrientation()); c->SummonGameObject(195682, 668.15f, 134.57f, 142.12f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 630000000); } - events.PopEvent(); + events.RescheduleEvent(EVENT_SCENE_502, 20000); + break; } - break; case EVENT_SCENE_502: { if( instance->IsHeroic() ) @@ -1420,10 +1410,9 @@ public: } } } - - events.PopEvent(); + break; } - break; + } } diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp index e4ab2197d..1d4058f5e 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp @@ -128,7 +128,7 @@ public: if (me->isAttackReady()) me->SetFacingToObject(me->GetVictim()); - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; @@ -159,7 +159,7 @@ public: me->CastSpell(me, SPELL_SOULSTORM, false); me->CastSpell(me, SPELL_TELEPORT_VISUAL, true); me->CastSpell(me, SPELL_SOULSTORM_VISUAL, true); - events.PopEvent(); + break; } diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp index e7bb9e881..41994172f 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp @@ -164,7 +164,7 @@ public: if (Spell* s = me->GetCurrentSpell(CURRENT_CHANNELED_SPELL)) if (s->m_spellInfo->Id == SPELL_MIRRORED_SOUL) { - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; @@ -190,7 +190,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp index 3204bd355..87ae805c9 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/forge_of_souls.cpp @@ -67,12 +67,12 @@ public: void UpdateAI(uint32 diff) override { events.Update(diff); - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; case 1: - events.PopEvent(); + if (me->GetEntry() == NPC_JAINA_PART1) { Talk(SAY_JAINA_INTRO_1); @@ -85,7 +85,7 @@ public: } break; case 2: - events.PopEvent(); + if (me->GetEntry() == NPC_JAINA_PART1) { Talk(SAY_JAINA_INTRO_2); @@ -98,7 +98,7 @@ public: } break; case 3: - events.PopEvent(); + if (me->GetEntry() == NPC_JAINA_PART1) { Talk(SAY_JAINA_INTRO_3); @@ -111,7 +111,7 @@ public: } break; case 4: - events.PopEvent(); + if (me->GetEntry() == NPC_JAINA_PART1) { Talk(SAY_JAINA_INTRO_4); @@ -124,7 +124,7 @@ public: } break; case 5: - events.PopEvent(); + if (me->GetEntry() == NPC_JAINA_PART1) { Talk(SAY_JAINA_INTRO_5); @@ -137,7 +137,7 @@ public: } break; case 6: - events.PopEvent(); + if (me->GetEntry() == NPC_JAINA_PART1) { Talk(SAY_JAINA_INTRO_6); @@ -149,7 +149,7 @@ public: } break; case 7: - events.PopEvent(); + if (me->GetEntry() == NPC_JAINA_PART1) { Talk(SAY_JAINA_INTRO_7); @@ -157,7 +157,7 @@ public: } break; case 8: - events.PopEvent(); + if (me->GetEntry() == NPC_JAINA_PART1) { Talk(SAY_JAINA_INTRO_8); diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp index 6a0a83935..3c5d441df 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp @@ -223,7 +223,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; @@ -244,7 +244,7 @@ public: me->GetMotionMaster()->MoveJump(northForgePos.GetPositionX(), northForgePos.GetPositionY(), northForgePos.GetPositionZ(), 25.0f, 15.0f, 0); else if (phase == 2) me->GetMotionMaster()->MoveJump(southForgePos.GetPositionX(), southForgePos.GetPositionY(), southForgePos.GetPositionZ(), 25.0f, 15.0f, 0); - events.PopEvent(); + break; case EVENT_SPELL_CHILLING_WAVE: me->CastSpell(me->GetVictim(), SPELL_CHILLING_WAVE, false); diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp index ebf6c6e17..6514c8f61 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp @@ -168,7 +168,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING | UNIT_STATE_STUNNED)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; @@ -202,7 +202,7 @@ public: me->SetReactState(REACT_AGGRESSIVE); if (!UpdateVictim()) return; - events.PopEvent(); + break; case EVENT_SPECIAL: switch(urand(0, 2)) @@ -298,7 +298,7 @@ public: void UpdateAI(uint32 diff) { events.Update(diff); - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; @@ -315,7 +315,7 @@ public: c->AI()->Reset(); } } - events.PopEvent(); + events.RescheduleEvent(1, 3000); break; case 1: @@ -335,7 +335,7 @@ public: if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_GUARD_1_GUID + i))) c->DespawnOrUnsummon(); } - events.PopEvent(); + events.RescheduleEvent(2, 7000); break; case 2: @@ -350,12 +350,12 @@ public: if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID))) c->AI()->Talk(c->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_KRICK_1 : SAY_SYLVANAS_KRICK_1); } - events.PopEvent(); + events.RescheduleEvent(3, 6500); break; case 3: Talk(SAY_OUTRO_KRICK_2); - events.PopEvent(); + events.RescheduleEvent(4, 17000); break; case 4: @@ -366,12 +366,12 @@ public: if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID))) c->AI()->Talk(c->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_KRICK_2 : SAY_SYLVANAS_KRICK_2); } - events.PopEvent(); + events.RescheduleEvent(5, 6500); break; case 5: Talk(SAY_OUTRO_KRICK_3); - events.PopEvent(); + events.RescheduleEvent(6, 6500); break; case 6: @@ -381,7 +381,7 @@ public: c->SetFacingToObject(me); c->AI()->Talk(SAY_TYRANNUS_KRICK_1); } - events.PopEvent(); + events.RescheduleEvent(7, 4000); break; case 7: @@ -392,12 +392,12 @@ public: me->SendMovementFlagUpdate(); me->GetMotionMaster()->MoveTakeoff(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 9.0f, 0.5f * 7.0f); - events.PopEvent(); + events.RescheduleEvent(8, 2000); break; case 8: Talk(SAY_OUTRO_KRICK_4); - events.PopEvent(); + events.RescheduleEvent(9, 1500); break; case 9: @@ -415,14 +415,14 @@ public: me->RemoveAllAuras(); me->GetMotionMaster()->MoveFall(0, true); - events.PopEvent(); + events.RescheduleEvent(10, 5000); break; case 10: if (pInstance) if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID))) c->AI()->Talk(SAY_TYRANNUS_KRICK_2); - events.PopEvent(); + events.RescheduleEvent(11, 9000); break; case 11: @@ -438,7 +438,7 @@ public: } me->setActive(false); Unit::Kill(me, me); - events.PopEvent(); + break; } } diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp index b4d5222a3..7e3547005 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -138,7 +138,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; @@ -146,7 +146,7 @@ public: if (me->IsWithinMeleeRange(me->GetVictim())) { me->CastSpell(me->GetVictim(), SPELL_FORCEFUL_SMASH, false); - events.PopEvent(); + events.RescheduleEvent(EVENT_SPELL_UNHOLY_POWER, 1000); break; } @@ -156,7 +156,7 @@ public: Talk(SAY_SMASH); Talk(EMOTE_SMASH); me->CastSpell(me, SPELL_UNHOLY_POWER, false); - events.PopEvent(); + events.ScheduleEvent(EVENT_SPELL_FORCEFUL_SMASH, urand(40000, 48000)); break; case EVENT_SPELL_OVERLORDS_BRAND: diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp index 87214cd7d..b25ae66a2 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp @@ -58,7 +58,7 @@ public: void UpdateAI(uint32 diff) { events.Update(diff); - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; @@ -88,7 +88,7 @@ public: } else { - events.PopEvent(); + events.RescheduleEvent(2, 2500); } } @@ -100,14 +100,14 @@ public: c->setActive(true); c->AI()->Talk(SAY_TYRANNUS_INTRO_1); } - events.PopEvent(); + events.RescheduleEvent(3, 7000); break; case 3: if (pInstance) if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID))) c->AI()->Talk(SAY_TYRANNUS_INTRO_2); - events.PopEvent(); + events.RescheduleEvent(4, 14000); break; case 4: @@ -148,19 +148,19 @@ public: } } } - events.PopEvent(); + events.RescheduleEvent(5, 1); break; case 5: Talk(me->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_INTRO_1 : SAY_SYLVANAS_INTRO_1); - events.PopEvent(); + events.RescheduleEvent(6, 1000); break; case 6: if (pInstance) if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID))) c->AI()->Talk(SAY_TYRANNUS_INTRO_3); - events.PopEvent(); + events.RescheduleEvent(7, 5000); break; case 7: @@ -190,14 +190,14 @@ public: c->GetMotionMaster()->MoveTakeoff(0, c->GetPositionX() + dist * cos(angle), c->GetPositionY() + dist * sin(angle), c->GetPositionZ() + 6.0f + (float)urand(0, 4), 1.5f + frand(0.0f, 1.5f)); } } - events.PopEvent(); + events.RescheduleEvent(8, 7000); break; case 8: if (pInstance) if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID))) c->CastSpell(c, 69753, false); - events.PopEvent(); + events.RescheduleEvent(9, 400); break; case 9: @@ -211,12 +211,12 @@ public: c->RemoveAllAuras(); c->GetMotionMaster()->MoveFall(0, true); } - events.PopEvent(); + events.RescheduleEvent(10, 1000); break; case 10: Talk(me->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_INTRO_2 : SAY_SYLVANAS_INTRO_2); - events.PopEvent(); + events.RescheduleEvent(11, 1000); break; case 11: @@ -232,7 +232,7 @@ public: c->SendMovementFlagUpdate(); c->CastSpell(c, 69350, true); } - events.PopEvent(); + events.RescheduleEvent(12, 2000); break; case 12: @@ -253,7 +253,7 @@ public: c->SetReactState(REACT_PASSIVE); } } - events.PopEvent(); + events.RescheduleEvent(13, 3000); break; case 13: @@ -273,7 +273,7 @@ public: c->SetHomePosition(me->GetPositionX() + dist * cos(angle), me->GetPositionY() + dist * sin(angle), me->GetPositionZ(), 0.0f); } } - events.PopEvent(); + events.RescheduleEvent(14, 2000); break; case 14: @@ -292,7 +292,7 @@ public: c->CastSpell(c, 70513, false); } } - events.PopEvent(); + events.RescheduleEvent(15, 2000); break; case 15: @@ -308,7 +308,7 @@ public: c->CastSpell(c, 70464, false); } } - events.PopEvent(); + events.RescheduleEvent(16, 3000); break; case 16: @@ -333,13 +333,13 @@ public: } pInstance->SetData(DATA_INSTANCE_PROGRESS, INSTANCE_PROGRESS_FINISHED_INTRO); } - events.PopEvent(); + events.RescheduleEvent(17, 5000); break; case 17: me->setActive(false); Talk(me->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_INTRO_5 : SAY_SYLVANAS_INTRO_4); - events.PopEvent(); + break; } @@ -457,7 +457,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; @@ -520,7 +520,7 @@ public: void UpdateAI(uint32 diff) { events.Update(diff); - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; @@ -542,19 +542,18 @@ public: c->GetMotionMaster()->MovePath(FBSData[i].pathId, false); ++i; } - events.PopEvent(); events.RescheduleEvent(2, 3000); break; } case 2: if (Creature* c = me->SummonCreature(NPC_TYRANNUS_VOICE, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() - 10.0f, me->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN, 1)) c->AI()->Talk(SAY_TYRANNUS_GARFROST); - events.PopEvent(); + events.RescheduleEvent(3, 4000); break; case 3: Talk(SAY_GENERAL_GARFROST); - events.PopEvent(); + break; } } @@ -1210,7 +1209,7 @@ public: { events.Update(diff); - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; @@ -1223,26 +1222,26 @@ public: c->SetHover(true); c->GetMotionMaster()->MovePoint(0, TSSindragosaPos2); } - events.PopEvent(); + break; case 2: if (pInstance) if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MARTIN_OR_GORKUN_GUID))) c->AI()->Talk(SAY_GENERAL_OUTRO_2); - events.PopEvent(); + events.RescheduleEvent(3, me->GetEntry() == NPC_JAINA_PART2 ? 7000 : 8000); break; case 3: Talk(me->GetEntry() == NPC_JAINA_PART2 ? SAY_JAINA_OUTRO_1 : SAY_SYLVANAS_OUTRO_1); me->CastSpell(me, me->GetEntry() == NPC_JAINA_PART2 ? SPELL_TELEPORT_JAINA_VISUAL : SPELL_TELEPORT_SYLVANAS_VISUAL, true); - events.PopEvent(); + events.RescheduleEvent(4, 2000); break; case 4: me->CastSpell(me, me->GetEntry() == NPC_JAINA_PART2 ? SPELL_TELEPORT_JAINA : SPELL_TELEPORT_SYLVANAS, true); if (GameObject* barrier = me->SummonGameObject(203005, 1055.49f, 115.03f, 628.15f, 2.08f, 0.0f, 0.0f, 0.0f, 0.0f, 86400, false)) barrierGUID = barrier->GetGUID(); - events.PopEvent(); + events.RescheduleEvent(5, 1500); break; case 5: @@ -1252,7 +1251,7 @@ public: if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SINDRAGOSA_GUID))) c->CastSpell(x->GetPositionX(), x->GetPositionY(), x->GetPositionZ(), SPELL_SINDRAGOSA_FROST_BOMB_POS, true); } - events.PopEvent(); + events.RescheduleEvent(6, 5000); events.RescheduleEvent(10, 2000); break; @@ -1260,7 +1259,7 @@ public: if (pInstance) if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SINDRAGOSA_GUID))) c->GetMotionMaster()->MovePoint(0, TSSindragosaPos1); - events.PopEvent(); + events.RescheduleEvent(7, 4500); break; case 7: @@ -1270,17 +1269,16 @@ public: if (GameObject* barrier = pInstance->instance->GetGameObject(barrierGUID)) barrier->Delete(); barrierGUID = 0; - events.PopEvent(); + events.RescheduleEvent(8, 2000); break; case 8: me->GetMotionMaster()->MovePath(me->GetEntry() == NPC_JAINA_PART2 ? PATH_BEGIN_VALUE + 16 : PATH_BEGIN_VALUE + 17, false); - events.PopEvent(); break; case 10: if (Creature* x = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MARTIN_OR_GORKUN_GUID))) x->AI()->DoAction(3); - events.PopEvent(); + break; } } @@ -1448,7 +1446,6 @@ public: class spell_pos_rimefang_frost_novaSpellScript : public SpellScript { - PrepareSpellScript(spell_pos_rimefang_frost_novaSpellScript); void HandleDummy(SpellEffIndex /*effIndex*/) diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp index c5264e5e0..052ae4c66 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp @@ -325,38 +325,31 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING) && !(events.GetPhaseMask() & PHASE_INTRO_MASK)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; case EVENT_INTRO_2: Talk(SAY_INTRO_2); - events.PopEvent(); break; case EVENT_INTRO_3: Talk(SAY_INTRO_3); - events.PopEvent(); break; case EVENT_INTRO_4: Talk(SAY_INTRO_4); - events.PopEvent(); break; case EVENT_INTRO_5: Talk(SAY_INTRO_5); - events.PopEvent(); break; case EVENT_INTRO_6: Talk(SAY_INTRO_6); - events.PopEvent(); break; case EVENT_INTRO_7: Talk(SAY_INTRO_7); - events.PopEvent(); break; case EVENT_BERSERK: me->CastSpell(me, SPELL_BERSERK, true); Talk(SAY_BERSERK); - events.PopEvent(); break; case EVENT_SPELL_DEATH_AND_DECAY: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM)) @@ -723,7 +716,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_FANATIC_NECROTIC_STRIKE: me->CastSpell(me->GetVictim(), SPELL_NECROTIC_STRIKE, false); @@ -749,7 +742,6 @@ public: if (Creature* ladyDeathwhisper = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_LADY_DEATHWHISPER))) ladyDeathwhisper->AI()->Talk(SAY_ANIMATE_DEAD); - events.PopEvent(); break; case EVENT_SPELL_CULTIST_DARK_MARTYRDOM: me->CastSpell(me, SPELL_PERMANENT_FEIGN_DEATH, true); @@ -761,8 +753,6 @@ public: Reset(); events.ScheduleEvent(EVENT_CULTIST_DARK_MARTYRDOM_REVIVE, 6000); break; - default: - break; } DoMeleeAttackIfReady(); @@ -839,7 +829,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_ADHERENT_FROST_FEVER: me->CastSpell(me->GetVictim(), SPELL_FROST_FEVER, false); @@ -873,7 +863,6 @@ public: if (Creature* ladyDeathwhisper = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_LADY_DEATHWHISPER))) ladyDeathwhisper->AI()->Talk(SAY_ANIMATE_DEAD); - events.PopEvent(); break; case EVENT_SPELL_CULTIST_DARK_MARTYRDOM: me->CastSpell(me, SPELL_PERMANENT_FEIGN_DEATH, true); @@ -1072,7 +1061,7 @@ public: return; } - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_DARNAVAN_BLADESTORM: me->CastSpell((Unit*)nullptr, SPELL_BLADESTORM, false); @@ -1080,7 +1069,6 @@ public: break; case EVENT_DARNAVAN_CHARGE: _canCharge = true; - events.PopEvent(); break; case EVENT_DARNAVAN_INTIMIDATING_SHOUT: me->CastSpell((Unit*)nullptr, SPELL_INTIMIDATING_SHOUT, false); @@ -1092,7 +1080,6 @@ public: break; case EVENT_DARNAVAN_SHATTERING_THROW: _canShatter = true; - events.PopEvent(); break; case EVENT_DARNAVAN_SUNDER_ARMOR: me->CastSpell(me->GetVictim(), SPELL_SUNDER_ARMOR, false); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp index f93237aaa..f93fc595d 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp @@ -154,13 +154,12 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; case EVENT_ENABLE_BONE_SLICE: _boneSlice = true; - events.PopEvent(); break; case EVENT_SPELL_BONE_SPIKE_GRAVEYARD: { @@ -177,7 +176,6 @@ public: break; case EVENT_SPELL_COLDFLAME_BONE_STORM: me->CastSpell(me, SPELL_COLDFLAME_BONE_STORM, false); - events.PopEvent(); break; case EVENT_WARN_BONE_STORM: _boneSlice = false; @@ -196,7 +194,6 @@ public: uint32 _boneStormDuration = RAID_MODE(20000, 30000, 20000, 30000); if (Aura* pStorm = me->GetAura(SPELL_BONE_STORM)) pStorm->SetDuration(int32(_boneStormDuration)); - events.PopEvent(); events.ScheduleEvent(EVENT_BONE_STORM_MOVE, 0); events.ScheduleEvent(EVENT_END_BONE_STORM, _boneStormDuration + 1); } @@ -229,7 +226,6 @@ public: me->GetMotionMaster()->MovementExpired(); me->SetReactState(REACT_AGGRESSIVE); DoStartMovement(me->GetVictim()); - events.PopEvent(); events.CancelEvent(EVENT_BONE_STORM_MOVE); events.ScheduleEvent(EVENT_ENABLE_BONE_SLICE, 10000); if (!IsHeroic()) @@ -238,7 +234,6 @@ public: case EVENT_ENRAGE: me->CastSpell(me, SPELL_BERSERK, true); Talk(SAY_BERSERK); - events.PopEvent(); break; } @@ -327,7 +322,7 @@ public: { events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; @@ -340,7 +335,6 @@ public: float ny = me->GetPositionY() + 5.0f * sin(me->GetOrientation()); if (!me->IsWithinLOS(nx, ny, 42.5f)) { - events.PopEvent(); break; } me->NearTeleportTo(nx, ny, 42.5f, me->GetOrientation()); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp index f40c1cc30..1388a68ff 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp @@ -1686,7 +1686,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING) || me->isFeared() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED) || ((me->GetEntry() == NPC_YMIRJAR_DEATHBRINGER || me->GetEntry() == NPC_YMIRJAR_FROSTBINDER) && me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED))) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; @@ -1712,7 +1712,6 @@ public: break; case 4: // Summon Warhawk me->CastSpell(me, 71705, false); - events.PopEvent(); break; case 11: // Whirlwind me->CastSpell(me->GetVictim(), 41056, false); @@ -1728,7 +1727,6 @@ public: break; case 31: // Arctic Chill me->CastSpell(me, 71270, true); - events.PopEvent(); break; case 32: // Frozen Orb if (Unit* target = SelectTarget(SELECT_TARGET_FARTHEST, 0, 30.0f, true)) @@ -1748,7 +1746,6 @@ public: events.RepeatEvent(45000); break; default: - events.PopEvent(); break; } @@ -2582,7 +2579,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; @@ -2647,7 +2644,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; @@ -2702,7 +2699,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; @@ -2764,7 +2761,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; @@ -2883,7 +2880,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; @@ -3006,7 +3003,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - if (uint32 e = events.GetEvent()) + if (uint32 e = events.ExecuteEvent()) { Unit* target = nullptr; if (sesi_spells[e - 1].targetType == 1) @@ -3105,7 +3102,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 1: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 40.0f, true)) @@ -3255,7 +3252,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 1: if (me->GetVictim() && !me->GetVictim()->HasAura(71163) && me->GetVictim()->GetDistance(me) > 5.0f && me->GetVictim()->GetDistance(me) < 30.0f) @@ -3396,7 +3393,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; diff --git a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp index 1345964c3..51eb3137f 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp @@ -171,7 +171,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_IMPALE: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) @@ -190,7 +190,7 @@ public: } case EVENT_SPELL_BERSERK: me->CastSpell(me, SPELL_BERSERK, true); - events.PopEvent(); + break; } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp index fb021ff12..b3099bd64 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp @@ -140,7 +140,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_POISON_BOLT: if (!me->HasAura(SPELL_WIDOWS_EMBRACE)) diff --git a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp index dda7bcac2..e300438fe 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp @@ -301,7 +301,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_MARK_CAST: me->CastSpell(me, TABLE_SPELL_MARK[horsemanId], false); @@ -310,7 +310,7 @@ public: case EVENT_BERSERK: Talk(SAY_SPECIAL); me->CastSpell(me, SPELL_BERSERK, true); - events.PopEvent(); + return; case EVENT_SPELL_PRIMARY: Talk(SAY_TAUNT); diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp index 0b0fb9ce1..5c003ac88 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp @@ -162,11 +162,11 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_BERSERK: me->CastSpell(me, SPELL_BERSERK, true); - events.PopEvent(); + break; case EVENT_SPELL_ENRAGE: Talk(EMOTE_ENRAGE); diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp index 8102626e1..52dd5d0a6 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp @@ -385,19 +385,19 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_INTRO_2: Talk(SAY_INTRO_2); - events.PopEvent(); + break; case EVENT_INTRO_3: Talk(SAY_INTRO_3); - events.PopEvent(); + break; case EVENT_INTRO_4: Talk(SAY_INTRO_4); - events.PopEvent(); + break; case EVENT_SPELL_SHADOW_BOLT: me->CastSpell(me->GetVictim(), RAID_MODE(SPELL_SHADOW_BOLT_10, SPELL_SHADOW_BOLT_25), false); @@ -429,7 +429,7 @@ public: go->SetGoState(GO_STATE_ACTIVE); events.CancelEvent(EVENT_TELEPORT); - events.PopEvent(); + break; } events.RepeatEvent(1000); @@ -455,7 +455,7 @@ public: events.ScheduleEvent(EVENT_SPELL_HARVEST_SOUL, urand(5000, 15000)); events.ScheduleEvent(EVENT_TELEPORT, 20000); events.ScheduleEvent(EVENT_CHECK_HEALTH, 1000); - events.PopEvent(); + } waveCount++; @@ -471,7 +471,7 @@ public: gateOpened = true; Talk(EMOTE_GATE_OPENED); } - events.PopEvent(); + break; } @@ -583,7 +583,7 @@ public: if (me->GetUnitState() == UNIT_STATE_CASTING) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_DEATH_PLAGUE: me->CastSpell(me->GetVictim(), SPELL_DEATH_PLAGUE, false); @@ -659,7 +659,6 @@ public: DoMeleeAttackIfReady(); } }; - }; class spell_gothik_shadow_bolt_volley : public SpellScriptLoader diff --git a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp index b41c889b6..2fc101a85 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp @@ -140,7 +140,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_POISON_CLOUD: me->CastSpell(me, SPELL_POISON_CLOUD, true); @@ -148,7 +148,7 @@ public: break; case EVENT_SPELL_BERSERK: me->CastSpell(me, SPELL_BERSERK, true); - events.PopEvent(); + break; case EVENT_SPELL_SLIME_SPRAY: Talk(EMOTE_SLIME); diff --git a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp index 6a4cc5fb4..073cee6dd 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp @@ -162,7 +162,7 @@ public: //if (me->HasUnitState(UNIT_STATE_CASTING)) // return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_SPELL_DISRUPTION: me->CastSpell(me, SPELL_SPELL_DISRUPTION, false); @@ -208,7 +208,6 @@ public: { if (IsInRoom(itr.GetSource()) && !itr.GetSource()->IsAlive()) { - events.PopEvent(); pInstance->SetData(DATA_DANCE_FAIL, 0); pInstance->SetData(DATA_IMMORTAL_FAIL, 0); return; diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp index a79758934..09e70784b 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp @@ -265,7 +265,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_FLOOR_CHANGE: if (pInstance) @@ -277,7 +277,7 @@ public: go->SetPhaseMask(2, true); } } - events.PopEvent(); + break; case EVENT_SUMMON_SOLDIER: if (Creature* cr = me->SummonCreature(NPC_SOLDIER_OF_THE_FROZEN_WASTES, SummonPositions[urand(0, 5)], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 20000)) @@ -386,7 +386,6 @@ public: case EVENT_SECOND_PHASE_HEALTH_CHECK: if (me->HealthBelowPct(45)) { - events.PopEvent(); Talk(SAY_REQUEST_AID); events.DelayEvents(5500); events.ScheduleEvent(EVENT_THIRD_PHASE_LICH_KING_SAY, 5000); @@ -401,7 +400,7 @@ public: for (uint8 i = 0 ; i < RAID_MODE(2, 4); ++i) events.ScheduleEvent(EVENT_SUMMON_GUARDIAN_OF_ICECROWN, 10000 + (i * 5000)); - events.PopEvent(); + break; case EVENT_SUMMON_GUARDIAN_OF_ICECROWN: if (Creature* cr = me->SummonCreature(NPC_GUARDIAN_OF_ICECROWN, SummonPositions[RAND(0, 1, 3, 4)])) @@ -410,7 +409,6 @@ public: cr->AI()->AttackStart(me->GetVictim()); } - events.PopEvent(); break; } @@ -519,7 +517,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_MINION_SPELL_MORTAL_WOUND: me->CastSpell(me->GetVictim(), SPELL_MORTAL_WOUND, false); @@ -529,7 +527,7 @@ public: if (me->HealthBelowPct(35)) { me->CastSpell(me, SPELL_FRENZY, true); - events.PopEvent(); + break; } events.RepeatEvent(1000); diff --git a/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp b/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp index 7388a5470..21f6364dc 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp @@ -120,7 +120,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SUMMON_SPORE: me->CastSpell(me, SPELL_SUMMON_SPORE, true); @@ -140,7 +140,7 @@ public: break; case EVENT_SPELL_BERSERK: me->CastSpell(me, SPELL_BERSERK, true); - events.PopEvent(); + break; } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp index acb8acb4c..f76d3ccc3 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp @@ -144,7 +144,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_WEB_SPRAY: Talk(EMOTE_WEB_SPRAY); @@ -169,7 +169,7 @@ public: if (me->GetHealthPct() < 30) { me->CastSpell(me, RAID_MODE(SPELL_FRENZY_10, SPELL_FRENZY_25), true); - events.PopEvent(); + break; } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp index 4cf8852f6..2cd40cdd5 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_noth.cpp @@ -185,7 +185,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { // GROUND case EVENT_SPELL_CURSE: @@ -202,13 +202,12 @@ public: case EVENT_SUMMON_PLAGUED_WARRIOR_REAL: me->CastSpell(me, SPELL_SUMMON_PLAGUED_WARRIORS, true); SummonHelper(NPC_PLAGUED_WARRIOR, RAID_MODE(2, 3)); - events.PopEvent(); break; case EVENT_MOVE_TO_BALCONY: Talk(EMOTE_TELEPORT_BALCONY); me->CastSpell(me, SPELL_TELEPORT, true); StartBalconyPhase(); - //events.PopEvent(); events.Reset()!! + // events.Reset()!! break; case EVENT_SPELL_BLINK: DoResetThreat(); @@ -234,7 +233,6 @@ public: } else SummonHelper(NPC_PLAGUED_GUARDIAN, RAID_MODE(2, 4)); - events.PopEvent(); break; case EVENT_MOVE_TO_GROUND: Talk(EMOTE_TELEPORT_BACK); diff --git a/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp b/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp index 30b88f5a9..ea1520e9c 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp @@ -106,7 +106,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_HATEFUL_STRIKE: { @@ -157,7 +157,7 @@ public: Talk(EMOTE_BERSERK); me->CastSpell(me, SPELL_BERSERK, true); events.ScheduleEvent(EVENT_SPELL_SLIME_BOLT, 2000); - events.PopEvent(); + break; case EVENT_SPELL_SLIME_BOLT: me->CastSpell(me, SPELL_SLIME_BOLT, false); @@ -168,7 +168,7 @@ public: { Talk(EMOTE_ENRAGE); me->CastSpell(me, SPELL_FRENZY, true); - events.PopEvent(); + break; } events.RepeatEvent(1000); diff --git a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp index a5a5ddb76..5c5c994bd 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp @@ -135,7 +135,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_UNBALANCING_STRIKE: me->CastSpell(me->GetVictim(), SPELL_UNBALANCING_STRIKE, false); @@ -214,7 +214,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING) || me->IsCharmed()) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_MINION_BLOOD_STRIKE: me->CastSpell(me->GetVictim(), SPELL_BLOOD_STRIKE, false); diff --git a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp index 4abdbd2de..0b46eee6f 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp @@ -234,12 +234,11 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_BERSERK: Talk(EMOTE_ENRAGE); - me->CastSpell(me, SPELL_BERSERK, true); - events.PopEvent(); + me->CastSpell(me, SPELL_BERSERK, true); return; case EVENT_SPELL_CLEAVE: me->CastSpell(me->GetVictim(), SPELL_CLEAVE, false); @@ -269,7 +268,7 @@ public: case EVENT_FLIGHT_START: if (me->HealthBelowPct(11)) { - events.PopEvent(); + return; } events.RepeatEvent(45000); @@ -287,13 +286,11 @@ public: me->SetDisableGravity(true); me->SetHover(true); currentTarget = 0; - events.PopEvent(); events.ScheduleEvent(EVENT_FLIGHT_ICEBOLT, 3000); iceboltCount = RAID_MODE(2, 3); return; case EVENT_FLIGHT_ICEBOLT: { - events.PopEvent(); if (currentTarget) if (Unit* target = ObjectAccessor::GetUnit(*me, currentTarget)) me->SummonGameObject(GO_ICE_BLOCK, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), target->GetOrientation(), 0.0f, 0.0f, 0.0f, 0.0f, 0); @@ -335,11 +332,9 @@ public: Talk(EMOTE_BREATH); me->CastSpell(me, SPELL_FROST_MISSILE, false); events.ScheduleEvent(EVENT_FLIGHT_SPELL_EXPLOSION, 8500); - events.PopEvent(); return; case EVENT_FLIGHT_SPELL_EXPLOSION: me->CastSpell(me, SPELL_FROST_EXPLOSION, true); - events.PopEvent(); events.ScheduleEvent(EVENT_FLIGHT_START_LAND, 3000); return; case EVENT_FLIGHT_START_LAND: @@ -351,20 +346,18 @@ public: blockList.clear(); me->RemoveAllGameObjects(); events.ScheduleEvent(EVENT_LAND, 1000); - events.PopEvent(); return; case EVENT_LAND: me->HandleEmoteCommand(EMOTE_ONESHOT_LAND); me->SetDisableGravity(false); me->SetHover(false); - events.PopEvent(); + events.ScheduleEvent(EVENT_GROUND, 1500); return; case EVENT_GROUND: me->SetReactState(REACT_AGGRESSIVE); me->SetInCombatWithZone(); - events.PopEvent(); return; case EVENT_HUNDRED_CLUB: { @@ -373,7 +366,6 @@ public: { if (itr.GetSource()->GetResistance(SPELL_SCHOOL_FROST) > 100 && pInstance) { - events.PopEvent(); pInstance->SetData(DATA_HUNDRED_CLUB, 0); return; } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp index 56cc6e6d9..93a82f8b9 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp @@ -256,14 +256,13 @@ public: } } - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_THADDIUS_START: StartEvent(); - events.PopEvent(); break; case EVENT_THADDIUS_START_2: - events.PopEvent(); + Talk(SAY_AGGRO); me->SetReactState(REACT_AGGRESSIVE); me->SetControlled(false, UNIT_STATE_STUNNED); @@ -277,7 +276,7 @@ public: return; case EVENT_THADDIUS_SPELL_BERSERK: me->CastSpell(me, SPELL_BERSERK, true); - events.PopEvent(); + break; case EVENT_THADDIUS_SPELL_CHAIN_LIGHTNING: me->CastSpell(me->GetVictim(), RAID_MODE(SPELL_CHAIN_LIGHTNING_10, SPELL_CHAIN_LIGHTNING_25), false); @@ -289,7 +288,7 @@ public: break; case EVENT_ACTIVATE_BALL_LIGHTNING: ballLightningEnabled = true; - events.PopEvent(); + break; } @@ -454,7 +453,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_MINION_SPELL_POWER_SURGE: me->CastSpell(me, RAID_MODE(SPELL_POWER_SURGE_10, SPELL_POWER_SURGE_25), false); diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp index 1fb3adce9..44594eb60 100644 --- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp +++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp @@ -822,7 +822,7 @@ public: if (Creature* kelthuzad = instance->GetCreature(_kelthuzadGUID)) kelthuzad->AI()->Talk(_currentWingTaunt); ++_currentWingTaunt; - events.PopEvent(); + break; } } diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp index 097cad3f0..85197be12 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp @@ -371,14 +371,14 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; case EVENT_BERSERK: me->CastSpell(me, SPELL_BERSERK, true); Talk(EMOTE_BERSERK); - events.PopEvent(); + break; case EVENT_INTRO_MOVE_CENTER: { @@ -393,15 +393,13 @@ public: float z = FourSidesPos[0].GetPositionZ(); me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING); me->GetMotionMaster()->MovePoint(MI_POINT_INTRO_CENTER_AIR, x, y, z); - events.PopEvent(); + break; } - break; case EVENT_INTRO_LAND: { me->GetMotionMaster()->MoveLand(MI_POINT_INTRO_LAND, me->GetPositionX(), me->GetPositionY(), CenterPos.GetPositionZ(), 7.0f); - events.PopEvent(); + break; } - break; case EVENT_START_FIGHT: { if (pInstance) @@ -415,7 +413,6 @@ public: AttackStart(target); me->GetMotionMaster()->MoveChase(target); } - events.PopEvent(); events.SetPhase(PHASE_ONE); events.RescheduleEvent(EVENT_BERSERK, 600000, 0); @@ -423,9 +420,8 @@ public: events.RescheduleEvent(EVENT_SPELL_ARCANE_STORM, urand(2000, 5000), 1); events.RescheduleEvent(EVENT_SUMMON_POWER_SPARK, urand(10000, 15000), 1); events.RescheduleEvent(EVENT_START_VORTEX_0, 30000, 1); + break; } - break; - case EVENT_SPELL_ARCANE_BREATH: me->CastSpell(me->GetVictim(), SPELL_ARCANE_BREATH, false); events.RepeatEvent(urand(12000, 15000)); @@ -467,20 +463,18 @@ public: me->SendMovementFlagUpdate(); me->GetMotionMaster()->MoveTakeoff(MI_POINT_VORTEX_TAKEOFF, me->GetPositionX(), me->GetPositionY(), CenterPos.GetPositionZ() + 20.0f, 7.0f); - events.PopEvent(); events.DelayEvents(25000, 1); // don't delay berserk (group 0) } break; case EVENT_VORTEX_FLY_TO_CENTER: me->GetMotionMaster()->MovePoint(MI_POINT_VORTEX_CENTER, CenterPos.GetPositionX(), CenterPos.GetPositionY(), CenterPos.GetPositionZ() + 20.0f); - events.PopEvent(); break; case EVENT_START_VORTEX_REAL: - me->SendMeleeAttackStop(me->GetVictim()); - me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_01); - me->HandleEmoteCommand(EMOTE_STATE_CUSTOM_SPELL_01); - { + me->SendMeleeAttackStop(me->GetVictim()); + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_01); + me->HandleEmoteCommand(EMOTE_STATE_CUSTOM_SPELL_01); + Position pos; float angle = (me->GetOrientation() >= M_PI / 4 ? me->GetOrientation() - M_PI / 4 : 7 * M_PI / 4 + me->GetOrientation()); pos.m_positionX = CenterPos.GetPositionX() + cos(angle) * 40.0f; @@ -537,13 +531,13 @@ public: } } } + + events.RescheduleEvent(EVENT_VORTEX_LAND_0, 11000, 1); + break; } - events.PopEvent(); - events.RescheduleEvent(EVENT_VORTEX_LAND_0, 11000, 1); - break; case EVENT_VORTEX_LAND_0: me->GetMotionMaster()->MoveLand(MI_POINT_VORTEX_LAND, CenterPos, 7.0f); - events.PopEvent(); + break; case EVENT_VORTEX_LAND_1: { @@ -556,7 +550,6 @@ public: AttackStart(target); me->GetMotionMaster()->MoveChase(target); } - events.PopEvent(); events.RescheduleEvent(EVENT_START_VORTEX_0, 60000, 1); break; } @@ -581,7 +574,6 @@ public: //me->SetHover(true); me->SendMovementFlagUpdate(); me->GetMotionMaster()->MoveTakeoff(MI_POINT_CENTER_AIR_PH_2, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 32.0f, 7.0f); - events.PopEvent(); events.RescheduleEvent(EVENT_START_PHASE_2_MOVE_TO_SIDE, 22500, 1); break; } @@ -617,7 +609,6 @@ public: } } - events.PopEvent(); break; case EVENT_SPELL_ARCANE_OVERLOAD: { @@ -640,7 +631,6 @@ public: float newangle = angle + 0.5f; if (newangle >= 2 * M_PI) newangle -= 2 * M_PI; me->GetMotionMaster()->MovePoint(MI_POINT_CIRCLE_OUTSIDE_PH_2, CenterPos.GetPositionX() + cos(newangle)*dist, CenterPos.GetPositionY() + sin(newangle)*dist, Phase2NorthPos.GetPositionZ()); - events.PopEvent(); } break; case EVENT_MOVE_TO_SURGE_OF_POWER: @@ -655,13 +645,11 @@ public: break; case EVENT_SURGE_OF_POWER_WARNING: Talk(EMOTE_SURGE_OF_POWER_WARNING_P2); - events.PopEvent(); events.RescheduleEvent(EVENT_SPELL_SURGE_OF_POWER, 1500, 1); break; case EVENT_SPELL_SURGE_OF_POWER: if (Creature* c = me->SummonCreature(NPC_SURGE_OF_POWER, CenterPos, TEMPSUMMON_TIMED_DESPAWN, 10000)) me->CastSpell(c, SPELL_SURGE_OF_POWER, false); - events.PopEvent(); Talk(SAY_SURGE_OF_POWER); events.RescheduleEvent(EVENT_CLEAR_TARGET, 10000, 1); events.RescheduleEvent(EVENT_RESUME_FLYING_CIRCLES_PH_2, 10000, 1); @@ -673,7 +661,6 @@ public: case EVENT_CLEAR_TARGET: me->SendMeleeAttackStop(); me->SetTarget(0); - events.PopEvent(); break; case EVENT_CHECK_TRASH_DEAD: { @@ -698,7 +685,6 @@ public: break; case EVENT_LIGHT_DIMENSION_CHANGE: me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_CHANGE_DIMENSIONS, 2 * IN_MILLISECONDS); - events.PopEvent(); break; case EVENT_DESTROY_PLATFORM_0: if (Creature* c = me->SummonCreature(NPC_WORLD_TRIGGER_LAOI, CenterPos, TEMPSUMMON_TIMED_DESPAWN, 3000)) @@ -708,7 +694,6 @@ public: c->CastSpell(c, SPELL_DESTROY_PLATFORM_EFFECT, false); } me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_OBSCURE_SPACE, 1 * IN_MILLISECONDS); - events.PopEvent(); events.RescheduleEvent(EVENT_MOVE_TO_PHASE_3_POSITION, 2000, 1); break; case EVENT_MOVE_TO_PHASE_3_POSITION: @@ -736,16 +721,13 @@ public: } } - events.PopEvent(); events.RescheduleEvent(EVENT_SAY_PHASE_3_INTRO, 3000, 1); } break; case EVENT_SAY_PHASE_3_INTRO: Talk(SAY_INTRO_PHASE_3); - events.PopEvent(); break; case EVENT_START_PHASE_3: - events.PopEvent(); events.SetPhase(PHASE_THREE); me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_OBSCURE_ARCANE_RUNES, 1 * IN_MILLISECONDS); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -1125,13 +1107,12 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; case EVENT_TELEPORT_VISUAL: me->CastSpell(me, SPELL_TELEPORT_VISUAL, true); - events.PopEvent(); break; case EVENT_NEXUS_LORD_ARCANE_SHOCK: if (Unit* victim = me->GetVictim()) @@ -1187,13 +1168,12 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; case EVENT_TELEPORT_VISUAL: me->CastSpell(me, SPELL_TELEPORT_VISUAL, true); - events.PopEvent(); break; case EVENT_SCION_OF_ETERNITY_ARCANE_BARRAGE: { @@ -1359,13 +1339,12 @@ public: { events.Update(diff); - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; case EVENT_DISK_MOVE_NEXT_POINT: DoAction(1); - events.PopEvent(); break; } } @@ -1402,7 +1381,7 @@ public: void UpdateAI(uint32 diff) override { events.Update(diff); - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; @@ -1412,22 +1391,18 @@ public: me->SummonGameObject(HEART_OF_MAGIC, 773.98f, 1275.97f, 266.254f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0); Talk(SAY_ALEXSTRASZA_ONE); - events.PopEvent(); events.RescheduleEvent(2, 6000); break; case 2: Talk(SAY_ALEXSTRASZA_TWO); - events.PopEvent(); events.RescheduleEvent(3, 5000); break; case 3: Talk(SAY_ALEXSTRASZA_THREE); - events.PopEvent(); events.RescheduleEvent(4, 22000); break; case 4: Talk(SAY_ALEXSTRASZA_FOUR); - events.PopEvent(); break; } } diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp index e081a418a..1281c519f 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_drakos.cpp @@ -123,7 +123,7 @@ public: DoMeleeAttackIfReady(); - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -161,7 +161,7 @@ public: float angle = rand_norm() * 2 * M_PI; me->SummonCreature(NPC_UNSTABLE_SPHERE, me->GetPositionX() + 5.0f * cos(angle), me->GetPositionY() + 5.0f * sin(angle), me->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN, 18000); } - events.PopEvent(); + break; } } diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp index 1598e8edf..80ca748de 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp @@ -174,7 +174,7 @@ public: DoMeleeAttackIfReady(); - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -203,7 +203,6 @@ public: float y = rand_norm() * 50.0f - 25.0f; float z = rand_norm() * 50.0f - 25.0f; me->SummonCreature(NPC_LEY_GUARDIAN_WHELP, me->GetPositionX() + x, me->GetPositionY() + y, me->GetPositionZ() + z, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); - events.PopEvent(); } break; case EVENT_SPELL_PLANAR_SHIFT: @@ -228,7 +227,6 @@ public: pa->GetMotionMaster()->MoveChase(t, 0.01f); } } - events.PopEvent(); break; } } diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp index aee14e1cd..7408dec91 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp @@ -308,7 +308,7 @@ public: DoMeleeAttackIfReady(); - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -339,7 +339,7 @@ public: me->SetControlled(false, UNIT_STATE_ROOT); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->GetMotionMaster()->MoveChase(me->GetVictim()); - events.PopEvent(); + break; } } diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp index 8a9058da6..8a4df015f 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp @@ -154,7 +154,7 @@ public: DoMeleeAttackIfReady(); - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -172,7 +172,7 @@ public: { Talk(SAY_AZURE); Talk(SAY_AZURE_EMOTE); - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case EVENT_CALL_AZURE_RING_CAPTAIN_1: me->CastSpell(me, SPELL_CALL_AZURE_RING_CAPTAIN_1, true); @@ -201,7 +201,6 @@ public: trigger->CastSpell(me, SPELL_ARCANE_BEAM_PERIODIC_DAMAGE, true); } } - events.PopEvent(); } break; case EVENT_ENERGIZE_CORES_THIN: @@ -210,7 +209,6 @@ public: me->DisableRotate(false); me->SetOrientation(ZapAngle); me->CastSpell(me, SPELL_ENERGIZE_CORES_THIN, true); - events.PopEvent(); events.ScheduleEvent(EVENT_ENERGIZE_CORES_DAMAGE, 4500); } break; @@ -225,7 +223,6 @@ public: ZapAngle += M_PI / 2; if( ZapAngle >= 2 * M_PI ) ZapAngle -= 2 * M_PI; - events.PopEvent(); events.ScheduleEvent(EVENT_ENERGIZE_CORES_THIN, 2000); } break; diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp index daa8fbd2b..8921008c1 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp @@ -292,7 +292,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_BJARNGRIM_CHANGE_STANCE: // roll new stance @@ -399,7 +399,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_ARC_WELD: me->CastSpell(me->GetVictim(), SPELL_ARC_WELD, true); diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp index 642f092ec..baadf8075 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp @@ -171,7 +171,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_BALL_LIGHTNING: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM)) @@ -195,14 +195,12 @@ public: { EntryCheckPredicate pred(NPC_SPARK_OF_IONAR); summons.DoAction(ACTION_CALLBACK, pred); - events.PopEvent(); events.ScheduleEvent(EVENT_RESTORE, 2000, 0, 2); return; } case EVENT_RESTORE: EntryCheckPredicate pred(NPC_SPARK_OF_IONAR); summons.DoAction(ACTION_SPARK_DESPAWN, pred); - events.PopEvent(); me->SetVisible(true); me->SetControlled(false, UNIT_STATE_STUNNED); diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp index 9a605e5a3..17c8a046c 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_loken.cpp @@ -200,7 +200,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_CHECK_HEALTH: if (HealthBelowPct(HealthCheck)) @@ -223,7 +223,6 @@ public: break; case EVENT_SHOCKWAVE: me->CastSpell(me, me->GetMap()->IsHeroic() ? SPELL_PULSING_SHOCKWAVE_H : SPELL_PULSING_SHOCKWAVE_N, false); - events.PopEvent(); break; case EVENT_ARC_LIGHTNING: if (Unit* target = SelectTargetFromPlayerList(100, SPELL_ARC_LIGHTNING)) @@ -233,7 +232,6 @@ public: break; case EVENT_AURA_REMOVE: me->RemoveAura(SPELL_LIGHTNING_NOVA_THUNDERS); - events.PopEvent(); break; } diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp index 736a95649..f4a026cdb 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp @@ -270,7 +270,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_HEAT: me->CastSpell(me, me->GetMap()->IsHeroic() ? SPELL_HEAT_H : SPELL_HEAT_N, true); @@ -291,7 +291,6 @@ public: case EVENT_MOVE_TO_ANVIL: GetNextPos(); me->GetMotionMaster()->MovePoint(PointID, x, y, z); - events.PopEvent(); return; case EVENT_POSITION: if (me->GetDistance(1331.9f, -106, 56) > 95) @@ -381,7 +380,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_BLAST: me->CastSpell(me, SPELL_BLAST_WAVE, false); @@ -506,11 +505,10 @@ public: return; events.Update(diff); - uint32 eventId = events.GetEvent(); + uint32 eventId = events.ExecuteEvent(); if (eventId == EVENT_UNFREEZE) { - events.PopEvent(); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->CastSpell(me, SPELL_AWAKEN, true); me->RemoveAllAuras(); diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp index 0816ebee9..d46e2e46b 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp @@ -104,7 +104,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_BOULDER: { @@ -139,13 +139,11 @@ public: me->CastSpell((Unit*)NULL, DUNGEON_MODE(SHATTER, SHATTER_H), false); Talk(SAY_SHATTER); events.RescheduleEvent(EVENT_REMOVE_STONED, 1500); - events.PopEvent(); break; } case EVENT_REMOVE_STONED: { RemoveStonedEffect(); - events.PopEvent(); break; } } @@ -238,4 +236,4 @@ void AddSC_boss_krystallus() new boss_krystallus(); new spell_krystallus_shatter(); new spell_krystallus_shatter_effect(); -} \ No newline at end of file +} diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp index dbe067007..e9164a3bd 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_maiden_of_grief.cpp @@ -87,7 +87,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case EVENT_STORM: { diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp index 998721326..8ba138d50 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp @@ -193,7 +193,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_CHECK_HEALTH: { @@ -224,7 +224,6 @@ public: events.CancelEvent(EVENT_SUMMON); events.ScheduleEvent(EVENT_SUMMON, 0); - events.PopEvent(); break; } @@ -268,7 +267,6 @@ public: brann->PlayDirectSound(14275); } - events.PopEvent(); break; } case EVENT_SUMMON: @@ -298,7 +296,6 @@ public: case PHASE_SUMMON_FRIENDLY_DWARFES: { SummonDwarfes(true); - events.PopEvent(); break; } } @@ -438,7 +435,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { // Every 5 seconds case EVENT_TOXIC_VOLLEY: @@ -482,7 +479,7 @@ public: void UpdateAI(uint32 diff) { events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_MALFORMED_OOZE_CHECK: { @@ -512,4 +509,4 @@ void AddSC_boss_sjonnir() new boss_sjonnir_dwarf(); new boss_sjonnir_malformed_ooze(); new boss_sjonnir_iron_sludge(); -} \ No newline at end of file +} diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/brann_bronzebeard.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/brann_bronzebeard.cpp index 5ab83b892..0f4412657 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/brann_bronzebeard.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/brann_bronzebeard.cpp @@ -390,24 +390,21 @@ public: void UpdateEscortAI(uint32 diff) override { events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_KADDRAK_VISUAL: { SwitchHeadVisaul(0x1, true); - events.PopEvent(); break; } case EVENT_MARNAK_VISUAL: { SwitchHeadVisaul(0x2, true); - events.PopEvent(); break; } case EVENT_ABEDNEUM_VISUAL: { SwitchHeadVisaul(0x4, true); - events.PopEvent(); break; } case EVENT_KADDRAK_HEAD: // First @@ -434,7 +431,6 @@ public: kaddrak->StopMovingOnCurrentPos(); } - events.PopEvent(); break; } case EVENT_MARNAK_HEAD: // Second @@ -727,7 +723,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_DRP_CHARGE: { @@ -785,7 +781,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_DRS_LIGHTNING_BOLD: { @@ -839,7 +835,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_IGC_CRUSH: { diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp index a0d7e94c2..a2c5cfcc4 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp @@ -606,21 +606,18 @@ public: if (!(events.GetPhaseMask() & PHASE_MASK_NO_CAST_CHECK) && me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_INTRO_1: me->RemoveAurasDueToSpell(SPELL_RIDE_THE_LIGHTNING); Talk(SAY_ALGALON_INTRO_1); - events.PopEvent(); break; case EVENT_INTRO_2: me->CastSpell((Unit*)NULL, SPELL_SUMMON_AZEROTH, true); Talk(SAY_ALGALON_INTRO_2); - events.PopEvent(); break; case EVENT_INTRO_3: Talk(SAY_ALGALON_INTRO_3); - events.PopEvent(); break; case EVENT_INTRO_FINISH: events.Reset(); @@ -631,12 +628,10 @@ public: case EVENT_START_COMBAT: m_pInstance->SetData(TYPE_ALGALON, IN_PROGRESS); Talk(SAY_ALGALON_AGGRO); - events.PopEvent(); break; case EVENT_REMOVE_UNNATTACKABLE: me->SetSheath(SHEATH_STATE_MELEE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_NPC); - events.PopEvent(); break; case EVENT_INTRO_TIMER_DONE: events.SetPhase(PHASE_NORMAL); @@ -647,7 +642,6 @@ public: if (Player* target = SelectTargetFromPlayerList(150.0f)) AttackStart(target); me->SetInCombatWithZone(); - events.PopEvent(); for (uint32 i = 0; i < LIVING_CONSTELLATION_COUNT; ++i) me->SummonCreature(NPC_LIVING_CONSTELLATION, ConstellationPos[i], TEMPSUMMON_DEAD_DESPAWN); @@ -700,7 +694,6 @@ public: Talk(SAY_ALGALON_ASCEND); me->CastSpell((Unit*)NULL, SPELL_ASCEND_TO_THE_HEAVENS, false); events.ScheduleEvent(EVENT_EVADE, 2500); - events.PopEvent(); break; case EVENT_EVADE: events.Reset(); @@ -712,88 +705,69 @@ public: m_pInstance->SetData(TYPE_ALGALON, DONE); m_pInstance->SetData(DATA_ALGALON_DEFEATED, 1); } - events.PopEvent(); break; case EVENT_OUTRO_1: me->RemoveAllAuras(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_RENAME); - events.PopEvent(); break; case EVENT_OUTRO_2: _EnterEvadeMode(); me->GetMotionMaster()->MovePoint(POINT_ALGALON_OUTRO, AlgalonOutroPos); - events.PopEvent(); break; case EVENT_OUTRO_3: me->CastSpell((Unit*)NULL, SPELL_KILL_CREDIT); // Summon Chest if (GameObject* go = me->SummonGameObject(RAID_MODE(GO_ALGALON_CHEST, GO_ALGALON_CHEST_HERO), 1632.1f, -306.561f, 417.321f, 4.69494f, 0, 0, 0, 1, 0)) go->SetUInt32Value(GAMEOBJECT_FLAGS, 0); - events.PopEvent(); break; case EVENT_OUTRO_4: me->CastSpell((Unit*)NULL, SPELL_SUPERMASSIVE_FAIL); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - events.PopEvent(); break; case EVENT_OUTRO_5: if (Creature* brann = me->SummonCreature(NPC_BRANN_BRONZBEARD_ALG, BrannOutroPos[0], TEMPSUMMON_TIMED_DESPAWN, 131500)) brann->AI()->DoAction(ACTION_OUTRO); - events.PopEvent(); break; case EVENT_OUTRO_6: Talk(SAY_ALGALON_OUTRO_1); me->SetStandState(UNIT_STAND_STATE_KNEEL); - events.PopEvent(); break; case EVENT_OUTRO_7: Talk(SAY_ALGALON_OUTRO_2); - events.PopEvent(); break; case EVENT_OUTRO_8: Talk(SAY_ALGALON_OUTRO_3); - events.PopEvent(); break; case EVENT_OUTRO_9: Talk(SAY_ALGALON_OUTRO_4); - events.PopEvent(); break; case EVENT_OUTRO_10: Talk(SAY_ALGALON_OUTRO_5); - events.PopEvent(); break; case EVENT_OUTRO_11: me->SetStandState(UNIT_STAND_STATE_STAND); me->CastSpell(me, SPELL_TELEPORT, false); me->DespawnOrUnsummon(3000); - events.PopEvent(); break; case EVENT_DESPAWN_ALGALON_1: Talk(SAY_ALGALON_DESPAWN_1); - events.PopEvent(); break; case EVENT_DESPAWN_ALGALON_2: Talk(SAY_ALGALON_DESPAWN_2); - events.PopEvent(); break; case EVENT_DESPAWN_ALGALON_3: Talk(SAY_ALGALON_DESPAWN_3); - events.PopEvent(); break; case EVENT_DESPAWN_ALGALON_4: me->CastSpell((Unit*)NULL, SPELL_ASCEND_TO_THE_HEAVENS, false); - events.PopEvent(); break; case EVENT_DESPAWN_ALGALON_5: me->SetStandState(UNIT_STAND_STATE_STAND); me->CastSpell(me, SPELL_TELEPORT, false); me->DespawnOrUnsummon(3000); - events.PopEvent(); break; case EVENT_CHECK_HERALD_ITEMS: - if (DoCheckHeraldOfTheTitans()) - events.PopEvent(); - else + if (!DoCheckHeraldOfTheTitans()) events.RepeatEvent(5000); break; } @@ -879,10 +853,9 @@ public: UpdateVictim(); events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_BRANN_MOVE_INTRO: - events.PopEvent(); if (_currentPoint < MAX_BRANN_WAYPOINTS_INTRO) me->GetMotionMaster()->MovePoint(_currentPoint, BrannIntroWaypoint[_currentPoint]); break; @@ -890,15 +863,12 @@ public: if (me->GetInstanceScript() && !me->GetInstanceScript()->GetData64(TYPE_ALGALON)) if (Creature* algalon = me->GetMap()->SummonCreature(NPC_ALGALON, AlgalonSummonPos)) algalon->AI()->DoAction(ACTION_START_INTRO); - events.PopEvent(); break; case EVENT_BRANN_OUTRO_1: Talk(SAY_BRANN_ALGALON_OUTRO); - events.PopEvent(); break; case EVENT_BRANN_OUTRO_2: me->GetMotionMaster()->MovePoint(POINT_BRANN_OUTRO_END, BrannOutroPos[2]); - events.PopEvent(); break; } } @@ -1018,7 +988,7 @@ public: return; events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_ARCANE_BARRAGE: me->CastCustomSpell(SPELL_ARCANE_BARRAGE, SPELLVALUE_MAX_TARGETS, 1, (Unit*)NULL, true); @@ -1026,7 +996,6 @@ public: break; case EVENT_RESUME_UPDATING: events.SetPhase(0); - events.PopEvent(); break; } } @@ -1140,11 +1109,10 @@ public: return; events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_DESPAWN_CONSOLE: go->Delete(); - events.PopEvent(); break; } } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp index 5ae2d8dde..8eabb3aa1 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp @@ -327,7 +327,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case EVENT_FUSION_PUNCH: me->CastSpell(me->GetVictim(), SPELL_FUSION_PUNCH, false); @@ -347,7 +347,6 @@ public: case EVENT_ENRAGE: Talk(SAY_STEELBREAKER_BERSERK); me->CastSpell(me, SPELL_BERSERK, true); - events.PopEvent(); break; } @@ -497,7 +496,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case EVENT_RUNE_OF_POWER: { @@ -529,7 +528,6 @@ public: case EVENT_ENRAGE: me->CastSpell(me, SPELL_BERSERK, true); Talk(SAY_MOLGEIM_BERSERK); - events.PopEvent(); break; } @@ -762,7 +760,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_CHAIN_LIGHTNING: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) @@ -772,7 +770,6 @@ public: break; case EVENT_IMMUNE: me->ApplySpellImmune(1, IMMUNITY_EFFECT, SPELL_EFFECT_INTERRUPT_CAST, false); - events.PopEvent(); break; case EVENT_OVERLOAD: me->ApplySpellImmune(1, IMMUNITY_EFFECT, SPELL_EFFECT_INTERRUPT_CAST, true); @@ -818,7 +815,6 @@ public: me->MonsterMoveWithSpeed(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), speed); _flyPhase = false; events.ScheduleEvent(EVENT_LAND_LAND, 1000); - events.PopEvent(); break; } case EVENT_LAND_LAND: @@ -833,13 +829,11 @@ public: me->RemoveAura(SPELL_LIGHTNING_TENDRILS); me->RemoveAura(61883); DoResetThreat(); - events.PopEvent(); me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_INTERRUPT_CAST, false); break; case EVENT_ENRAGE: Talk(SAY_BRUNDIR_BERSERK); me->CastSpell(me, SPELL_BERSERK, true); - events.PopEvent(); break; } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp index 84943afc1..0c8c61132 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp @@ -224,17 +224,15 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SUMMON_FERAL_DEFENDER: me->MonsterTextEmote("Auriaya begins to activate Feral Defender.", 0, true); me->CastSpell(me, SPELL_ACTIVATE_FERAL_DEFENDER, true); - events.PopEvent(); me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_INTERRUPT_CAST, true); events.ScheduleEvent(EVENT_REMOVE_IMMUNE, 3000); break; case EVENT_REMOVE_IMMUNE: - events.PopEvent(); me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_INTERRUPT_CAST, false); break; case EVENT_TERRIFYING_SCREECH: @@ -259,14 +257,12 @@ public: { EntryCheckPredicate pred(NPC_FERAL_DEFENDER); summons.DoAction(ACTION_FERAL_RESPAWN, pred); - events.PopEvent(); break; } case EVENT_ENRAGE: me->MonsterTextEmote("You waste my time!", 0); me->PlayDirectSound(SOUND_BERSERK); me->CastSpell(me, SPELL_ENRAGE, true); - events.PopEvent(); break; } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp index 9064c1ba1..e386b3fd3 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -384,7 +384,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_POSITION_CHECK: if (me->GetPositionX() > 450 || me->GetPositionX() < 120) @@ -423,10 +423,8 @@ public: Talk(FLAME_LEVIATHAN_SAY_HARDMODE); else Talk(FLAME_LEVIATHAN_SAY_TOWER_NONE); - events.PopEvent(); return; case EVENT_REINSTALL: - events.PopEvent(); for (uint8 i = RAID_MODE(0, 2); i < 4; ++i) if (Unit* seat = vehicle->GetPassenger(i)) if (seat->GetTypeId() == TYPEID_UNIT) @@ -441,19 +439,16 @@ public: return; case EVENT_FREYA: SummonTowerHelpers(TOWER_OF_LIFE); - events.PopEvent(); me->MonsterTextEmote("Flame Leviathan activates Freya's Ward.", 0, true); Talk(FLAME_LEVIATHAN_SAY_TOWER_NATURE); return; case EVENT_MIMIRONS_INFERNO: SummonTowerHelpers(TOWER_OF_FLAMES); - events.PopEvent(); me->MonsterTextEmote("Flame Leviathan activates Mimiron's Inferno.", 0, true); Talk(FLAME_LEVIATHAN_SAY_TOWER_FLAME); return; case EVENT_HODIRS_FURY: SummonTowerHelpers(TOWER_OF_FROST); - events.PopEvent(); me->MonsterTextEmote("Flame Leviathan activates Hodir's Fury.", 0, true); Talk(FLAME_LEVIATHAN_SAY_TOWER_FROST); return; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp index 61291b35e..17094e105 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp @@ -558,7 +558,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_FREYA_ADDS_SPAM: if (_spawnedAmount < 6) @@ -568,7 +568,6 @@ public: me->RemoveAura(SPELL_ATTUNED_TO_NATURE); events.ScheduleEvent(EVENT_FREYA_NATURE_BOMB, 5000); events.SetPhase(EVENT_PHASE_FINAL); - events.PopEvent(); return; } _spawnedAmount++; @@ -599,7 +598,6 @@ public: events.RepeatEvent(15000 + urand(0, 5000)); break; case EVENT_FREYA_RESPAWN_TRIO: - events.PopEvent(); _deforestation = 0; _respawningTrio = false; if (_trioKilled < 3) @@ -628,7 +626,6 @@ public: me->MonsterYell("You have strayed too far, wasted too much time!", LANG_UNIVERSAL, 0); me->PlayDirectSound(SOUND_BERSERK); me->CastSpell(me, SPELL_BERSERK, true); - events.PopEvent(); break; case EVENT_FREYA_GROUND_TREMOR: me->CastSpell(me, SPELL_GROUND_TREMOR_FREYA, false); @@ -742,7 +739,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_STONEBARK_FISTS_OF_STONE: me->CastSpell(me, SPELL_FISTS_OF_STONE, false); @@ -839,7 +836,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_BRIGHTLEAF_FLUX: if (Aura* aur = me->AddAura(SPELL_BRIGHTLEAF_FLUX, me)) @@ -880,7 +877,6 @@ public: } summons.DespawnAll(); - events.PopEvent(); break; } @@ -961,7 +957,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_IRONBRANCH_IMPALE: me->CastSpell(me->GetVictim(), SPELL_IMPALE, false); @@ -1193,7 +1189,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_ANCIENT_CONSERVATOR_NATURE_FURY: me->CastSpell(me->GetVictim(), SPELL_NATURE_FURY, false); @@ -1207,7 +1203,6 @@ public: break; case EVENT_WATER_SPIRIT_DAMAGE: me->CastSpell(me, SPELL_TIDAL_WAVE_DAMAGE, false); - events.PopEvent(); break; case EVENT_STORM_LASHER_LIGHTNING_LASH: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp index c62110483..3b2fe50ff 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp @@ -207,7 +207,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -216,7 +216,6 @@ public: me->CastSpell(me, SPELL_VEZAX_BERSERK, true); me->MonsterYell(TEXT_VEZAX_BERSERK, LANG_UNIVERSAL, 0); me->PlayDirectSound(SOUND_VEZAX_BERSERK, 0); - events.PopEvent(); break; case EVENT_SPELL_VEZAX_SHADOW_CRASH: { @@ -243,7 +242,6 @@ public: case EVENT_RESTORE_TARGET: if (me->GetVictim()) me->SetUInt64Value(UNIT_FIELD_TARGET, me->GetVictim()->GetGUID()); - events.PopEvent(); break; case EVENT_SPELL_SEARING_FLAMES: if(!me->HasAura(SPELL_SARONITE_BARRIER)) @@ -302,7 +300,6 @@ public: sv->GetMotionMaster()->MoveCharge(1852.78f, 81.38f, 342.461f, 28.0f); } - events.PopEvent(); events.DelayEvents(12000, 0); events.DelayEvents(12000, 1); events.ScheduleEvent(EVENT_SARONITE_VAPORS_SWIRL, 6000); @@ -316,11 +313,9 @@ public: if( Creature* sv = ObjectAccessor::GetCreature(*me, *(summons.begin())) ) sv->CastSpell(sv, SPELL_SARONITE_ANIMUS_FORMATION_VISUAL, true); - events.PopEvent(); events.ScheduleEvent(EVENT_SPELL_SUMMON_SARONITE_ANIMUS, 2000); break; } - events.PopEvent(); break; case EVENT_SPELL_SUMMON_SARONITE_ANIMUS: if (summons.size()) @@ -333,15 +328,12 @@ public: if( Creature* sv = ObjectAccessor::GetCreature(*me, *(summons.begin())) ) sv->CastSpell(sv, SPELL_SUMMON_SARONITE_ANIMUS, true); - events.PopEvent(); events.ScheduleEvent(EVENT_DESPAWN_SARONITE_VAPORS, 2500); break; } - events.PopEvent(); break; case EVENT_DESPAWN_SARONITE_VAPORS: summons.DespawnEntry(NPC_SARONITE_VAPORS); - events.PopEvent(); break; } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp index 5cb50e152..73504b584 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp @@ -396,7 +396,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch (events.ExecuteEvent()) { case 0: break; @@ -406,14 +406,12 @@ public: me->CastSpell(me, SPELL_BERSERK, true); me->MonsterYell(TEXT_HODIR_BERSERK, LANG_UNIVERSAL, 0); me->PlayDirectSound(SOUND_HODIR_BERSERK, 0); - events.PopEvent(); } break; case EVENT_HARD_MODE_MISSED: { hardmode = false; me->MonsterTextEmote(TEXTEMOTE_HODIR_HARD_MODE_MISSED, 0); - events.PopEvent(); } break; case EVENT_FLASH_FREEZE: @@ -447,7 +445,6 @@ public: case EVENT_SMALL_ICICLES_ENABLE: { SmallIcicles(true); - events.PopEvent(); } break; case EVENT_FROZEN_BLOWS: @@ -456,7 +453,6 @@ public: me->MonsterTextEmote(TEXTEMOTE_HODIR_FROZEN_BLOWS, 0); me->PlayDirectSound(SOUND_HODIR_FROZEN_BLOWS, 0); me->CastSpell(me, SPELL_FROZEN_BLOWS, true); - events.PopEvent(); } break; case EVENT_FREEZE: @@ -789,7 +785,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -801,7 +797,6 @@ public: if( Creature* hodir = ObjectAccessor::GetCreature(*me, g) ) { AttackStart(hodir); - events.PopEvent(); ScheduleAbilities(); break; } @@ -886,7 +881,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -898,7 +893,6 @@ public: if( Creature* hodir = ObjectAccessor::GetCreature(*me, g) ) { AttackStart(hodir); - events.PopEvent(); ScheduleAbilities(); break; } @@ -991,7 +985,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -1003,7 +997,6 @@ public: if( Creature* hodir = ObjectAccessor::GetCreature(*me, g) ) { AttackStart(hodir); - events.PopEvent(); ScheduleAbilities(); break; } @@ -1086,7 +1079,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -1098,7 +1091,6 @@ public: if( Creature* hodir = ObjectAccessor::GetCreature(*me, g) ) { AttackStart(hodir); - events.PopEvent(); ScheduleAbilities(); break; } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp index d2b5c0131..eb373d642 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp @@ -336,7 +336,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; @@ -347,7 +347,6 @@ public: me->MonsterYell(TEXT_BERSERK, LANG_UNIVERSAL, 0); me->PlayDirectSound(SOUND_BERSERK); me->CastSpell(me, SPELL_BERSERK, true); - events.PopEvent(); break; } events.RepeatEvent(RAID_MODE(40000, 30000)); @@ -373,7 +372,6 @@ public: case EVENT_ENABLE_ROTATE: me->SetControlled(false, UNIT_STATE_ROOT); me->DisableRotate(false); - events.PopEvent(); break; case EVENT_SPELL_FLAME_JETS: me->MonsterTextEmote(TEXT_FLAME_JETS, 0, true); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp index 32a85c802..9d2596a88 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp @@ -391,7 +391,6 @@ public: case EVENT_STONE_SHOUT: if (_left || _right) { - events.PopEvent(); return; } @@ -463,12 +462,10 @@ public: } case EVENT_RESTORE_ARM_LEFT: // shouldn't happen - events.PopEvent(); AttachLeftArm(); return; case EVENT_RESTORE_ARM_RIGHT: // shouldn't happen - events.PopEvent(); AttachRightArm(); return; } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp index d0acacba2..5eef38c74 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp @@ -429,24 +429,21 @@ public: events.Update(diff); - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; case EVENT_COMPUTER_SAY_INITIATED: if( Creature* computer = me->SummonCreature(NPC_COMPUTER, 2790.0f, 2569.44f, 364.31f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 1000) ) computer->AI()->Talk(TALK_COMPUTER_INITIATED); - events.PopEvent(); break; case EVENT_COMPUTER_SAY_MINUTES: if( Creature* computer = me->SummonCreature(NPC_COMPUTER, 2790.0f, 2569.44f, 364.31f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 1000) ) computer->AI()->Talk(minutesTalkNum++); - events.PopEvent(); break; case EVENT_MIMIRON_SAY_HARDMODE: me->MonsterYell(TEXT_HARDMODE, LANG_UNIVERSAL, 0); me->PlayDirectSound(SOUND_TANK_HARD_INTRO); - events.PopEvent(); events.ScheduleEvent(EVENT_SPAWN_FLAMES_INITIAL, 0); events.ScheduleEvent(EVENT_SIT_LMK2, 4000); break; @@ -484,7 +481,6 @@ public: me->PlayDirectSound(SOUND_BERSERK); if( hardmode ) me->SummonCreature(33576, 2744.78f, 2569.47f, 364.32f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 120000); - events.PopEvent(); events.ScheduleEvent(EVENT_BERSERK_2, 0); break; case EVENT_BERSERK_2: @@ -505,7 +501,6 @@ public: if(Creature* LMK2 = GetLMK2()) { me->EnterVehicle(LMK2, 6); - events.PopEvent(); events.ScheduleEvent(EVENT_SIT_LMK2_INTERVAL, 2000); break; } @@ -522,7 +517,6 @@ public: cannon->CastSpell(cannon, SPELL_EMERGENCY_MODE, true); } LMK2->AI()->SetData(1, 1); - events.PopEvent(); break; } EnterEvadeMode(); @@ -534,7 +528,6 @@ public: me->MonsterYell(TEXT_LMK2_DEATH, LANG_UNIVERSAL, 0); me->PlayDirectSound(SOUND_TANK_DEATH); LMK2->SetFacingTo(3.58f); - events.PopEvent(); events.ScheduleEvent(EVENT_ELEVATOR_INTERVAL_0, 6000); break; } @@ -547,7 +540,6 @@ public: elevator->UseDoorOrButton(0, false); elevator->EnableCollision(false); } - events.PopEvent(); events.ScheduleEvent(EVENT_ELEVATOR_INTERVAL_1, 6000); break; case EVENT_ELEVATOR_INTERVAL_1: @@ -559,7 +551,6 @@ public: elevator->UseDoorOrButton(0, true); elevator->EnableCollision(false); } - events.PopEvent(); events.ScheduleEvent(EVENT_ELEVATOR_INTERVAL_2, 18000); break; } @@ -569,7 +560,6 @@ public: if (Creature* VX001 = GetVX001()) { me->EnterVehicle(VX001, 0); - events.PopEvent(); events.ScheduleEvent(EVENT_SITTING_ON_VX001, 4000); break; } @@ -578,14 +568,12 @@ public: case EVENT_SITTING_ON_VX001: me->MonsterYell(TEXT_VX001_ACTIVATE, LANG_UNIVERSAL, 0); me->PlayDirectSound(SOUND_TORSO_ACTIVE); - events.PopEvent(); events.ScheduleEvent(EVENT_ENTER_VX001, 5000); break; case EVENT_ENTER_VX001: if( Creature* VX001 = GetVX001() ) { me->EnterVehicle(VX001, 1); - events.PopEvent(); events.ScheduleEvent(EVENT_EMOTE_VX001, 2000); break; } @@ -595,7 +583,6 @@ public: if( Creature* VX001 = GetVX001() ) { VX001->HandleEmoteCommand(EMOTE_ONESHOT_EMERGE); - events.PopEvent(); events.ScheduleEvent(EVENT_VX001_START_FIGHT, 1750); break; } @@ -608,7 +595,6 @@ public: VX001->CastSpell(VX001, SPELL_EMERGENCY_MODE, true); VX001->AI()->SetData(1, 2); me->SetInCombatWithZone(); - events.PopEvent(); break; } EnterEvadeMode(); @@ -618,7 +604,6 @@ public: { VX001->HandleEmoteCommand(EMOTE_STATE_DROWNED); VX001->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DROWNED); - events.PopEvent(); events.ScheduleEvent(EVENT_GET_OUT_VX001, 2500); break; } @@ -632,7 +617,6 @@ public: float speed = ACU->GetDistance(2737.75f, 2574.22f, 381.34f) / 2.0f; ACU->MonsterMoveWithSpeed(2737.75f, 2574.22f, 381.34f, speed); ACU->SetPosition(2737.75f, 2574.22f, 381.34f, M_PI); - events.PopEvent(); events.ScheduleEvent(EVENT_SAY_VX001_DEAD, 2000); break; } @@ -642,14 +626,12 @@ public: changeAllowedFlameSpreadTime = true; me->MonsterYell(TEXT_VX001_DEATH, LANG_UNIVERSAL, 0); me->PlayDirectSound(SOUND_TORSO_DEATH); - events.PopEvent(); events.ScheduleEvent(EVENT_ENTER_ACU, 7000); break; case EVENT_ENTER_ACU: if( Creature* ACU = GetACU() ) { me->EnterVehicle(ACU, 0); - events.PopEvent(); events.ScheduleEvent(EVENT_SAY_ACU_ACTIVATE, 6000); break; } @@ -658,7 +640,6 @@ public: case EVENT_SAY_ACU_ACTIVATE: me->MonsterYell(TEXT_ACU_ACTIVATE, LANG_UNIVERSAL, 0); me->PlayDirectSound(SOUND_HEAD_ACTIVE); - events.PopEvent(); events.ScheduleEvent(EVENT_ACU_START_ATTACK, 4000); break; case EVENT_ACU_START_ATTACK: @@ -668,7 +649,6 @@ public: ACU->CastSpell(ACU, SPELL_EMERGENCY_MODE, true); ACU->AI()->SetData(1, 3); me->SetInCombatWithZone(); - events.PopEvent(); break; } EnterEvadeMode(); @@ -676,14 +656,12 @@ public: case EVENT_SAY_ACU_DEAD: me->MonsterYell(TEXT_ACU_DEATH, LANG_UNIVERSAL, 0); me->PlayDirectSound(SOUND_HEAD_DEATH); - events.PopEvent(); events.ScheduleEvent(EVENT_LEVIATHAN_COME_CLOSER, 5000); break; case EVENT_LEVIATHAN_COME_CLOSER: if (Creature* LMK2 = GetLMK2()) { LMK2->GetMotionMaster()->MoveCharge(2755.77f, 2574.95f, 364.31f, 21.0f); - events.PopEvent(); events.ScheduleEvent(EVENT_VX001_EMOTE_JUMP, 4000); break; } @@ -702,7 +680,6 @@ public: VX001->SendMeleeAttackStop(); VX001->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_CUSTOM_SPELL_02); VX001->HandleEmoteCommand(EMOTE_ONESHOT_CUSTOM_SPELL_02); - events.PopEvent(); events.ScheduleEvent(EVENT_LEVIATHAN_RIDE_MIDDLE, 4800); } break; @@ -722,7 +699,6 @@ public: VX001->EnterVehicle(LMK2, 3); LMK2->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_01); LMK2->HandleEmoteCommand(EMOTE_STATE_CUSTOM_SPELL_01); - events.PopEvent(); events.ScheduleEvent(EVENT_JOIN_TOGETHER, 3000); } break; @@ -740,7 +716,6 @@ public: me->EnterVehicle(VX001, 1); me->MonsterYell(TEXT_VOLTRON_ACTIVATE, LANG_UNIVERSAL, 0); me->PlayDirectSound(SOUND_VOLTRON_ACTIVE); - events.PopEvent(); events.ScheduleEvent(EVENT_START_PHASE4, 10000); } break; @@ -768,7 +743,6 @@ public: ACU->CastSpell(ACU, SPELL_EMERGENCY_MODE, true); } me->SetInCombatWithZone(); - events.PopEvent(); } break; case EVENT_FINISH: @@ -841,7 +815,6 @@ public: if( uint32 chestId = (hardmode ? RAID_MODE(GO_MIMIRON_CHEST_HARD, GO_MIMIRON_CHEST_HERO_HARD) : RAID_MODE(GO_MIMIRON_CHEST, GO_MIMIRON_CHEST_HERO)) ) if( GameObject* go = me->SummonGameObject(chestId, 2744.65f, 2569.46f, 364.397f, 0, 0, 0, 0, 0, 0) ) go->SetUInt32Value(GAMEOBJECT_FLAGS, 0); - events.PopEvent(); events.ScheduleEvent(EVENT_DISAPPEAR, 15000); break; case EVENT_DISAPPEAR: @@ -849,7 +822,6 @@ public: pInstance->SetData(TYPE_MIMIRON, DONE); summons.DespawnAll(); me->DespawnOrUnsummon(); - events.PopEvent(); break; } } @@ -1158,7 +1130,7 @@ public: if (!cannon || cannon->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitState(UNIT_STATE_CASTING) || me->HasAuraType(SPELL_AURA_MOD_SILENCE)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; @@ -1211,13 +1183,10 @@ public: if( Creature* pmNPC = me->SummonCreature(NPC_PROXIMITY_MINE, x + v_xmin, y + v_ymin, z, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 40000) ) pmNPC->KnockbackFrom(x, y, 6.0f, 25.0f); } - - events.PopEvent(); } break; case EVENT_FLAME_SUPPRESSION_50000: me->CastSpell(me, SPELL_FLAME_SUPPRESSANT_50000yd, false); - events.PopEvent(); break; } } @@ -1471,7 +1440,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; @@ -1514,7 +1483,6 @@ public: if (!me->HandleSpellClick(accessory, i)) accessory->UnSummon(); } - events.PopEvent(); break; case EVENT_SPELL_RAPID_BURST: if (Player* p = SelectTargetFromPlayerList(80.0f)) @@ -1828,7 +1796,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; @@ -1883,19 +1851,16 @@ public: me->CastSpell(me, SPELL_SPINNING, true); me->MonsterMoveWithSpeed(me->GetPositionX(), me->GetPositionY(), 365.34f, me->GetExactDist(me->GetPositionX(), me->GetPositionY(), 365.34f)); me->UpdatePosition(me->GetPositionX(), me->GetPositionY(), 365.34f, me->GetOrientation(), false); - events.PopEvent(); events.ScheduleEvent(EVENT_MAGNETIC_CORE_FREE, 20000); break; case EVENT_MAGNETIC_CORE_FREE: me->RemoveAura(SPELL_SPINNING); me->MonsterMoveWithSpeed(me->GetPositionX(), me->GetPositionY(), 381.34f, me->GetDistance(me->GetPositionX(), me->GetPositionY(), 381.34f)); me->UpdatePosition(me->GetPositionX(), me->GetPositionY(), 381.34f, me->GetOrientation(), false); - events.PopEvent(); events.ScheduleEvent(EVENT_MAGNETIC_CORE_REMOVE_IMMOBILIZE, 1000); break; case EVENT_MAGNETIC_CORE_REMOVE_IMMOBILIZE: immobilized = false; - events.PopEvent(); break; } } @@ -2379,7 +2344,7 @@ public: events.Update(diff); - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -2395,7 +2360,6 @@ public: if (Creature* mimiron = GetMimiron()) if (CreateTime < mimiron->AI()->GetData(10)) { - events.PopEvent(); break; } @@ -2503,7 +2467,7 @@ public: void UpdateAI(uint32 diff) { events.Update(diff); - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -2521,7 +2485,6 @@ public: break; case EVENT_EMERGENCY_BOT_ATTACK: me->CastSpell((Unit*)NULL, SPELL_WATER_SPRAY, false); - events.PopEvent(); events.RescheduleEvent(EVENT_EMERGENCY_BOT_CHECK, 5000); break; } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp index 8bd6c06f3..ae850783d 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp @@ -324,7 +324,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; @@ -335,7 +335,6 @@ public: case EVENT_COMMANDER_SAY_AGGRO: if (Creature* commander = ObjectAccessor::GetCreature(*me, CommanderGUID)) commander->AI()->Talk(SAY_COMMANDER_AGGRO); - events.PopEvent(); break; case EVENT_EE_SAY_MOVE_OUT: for (uint8 i = 0; i < 3; ++i) @@ -345,7 +344,6 @@ public: c->MonsterYell(TEXT_EE_MOVE_OUT, LANG_UNIVERSAL, 0); c->AI()->SetData(1, 0); // start repairing } - events.PopEvent(); break; case EVENT_SPELL_FIREBALL: if( Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 200.0f, true) ) @@ -436,17 +434,14 @@ public: } } - events.PopEvent(); break; case EVENT_WARN_DEEP_BREATH: me->MonsterTextEmote(TEXT_DEEP_BREATH, 0, true); me->RemoveAura(62794); - events.PopEvent(); events.ScheduleEvent(EVENT_PHASE2_FLAME_BREATH, 2500); break; case EVENT_PHASE2_FLAME_BREATH: me->CastSpell(me, S_FLAMEBREATH, true); - events.PopEvent(); events.ScheduleEvent(EVENT_FLY_UP, 2000); break; case EVENT_FLY_UP: @@ -484,7 +479,6 @@ public: me->GetMotionMaster()->MoveChase(target); } bGroundPhase = true; - events.PopEvent(); events.CancelEvent(EVENT_SPELL_FIREBALL); events.CancelEvent(EVENT_SPELL_DEVOURING_FLAME); events.CancelEvent(EVENT_SUMMON_MOLE_MACHINES); @@ -512,7 +506,6 @@ public: events.ScheduleEvent(EVENT_RESUME_FIXING, 22000); } - events.PopEvent(); break; case EVENT_RESUME_FIXING: for (uint8 i = 0; i < 3; ++i) @@ -522,7 +515,6 @@ public: c->MonsterYell(TEXT_EE_FIRES_OUT, LANG_UNIVERSAL, 0); c->AI()->SetData(1, 0); // start repairing } - events.PopEvent(); break; case EVENT_SPELL_FLAME_BREATH: me->CastSpell(me->GetVictim(), S_FLAMEBREATH, false); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp index ff023c7a1..6a106e9d5 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp @@ -668,13 +668,12 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_THORIM_AGGRO: me->MonsterYell("Interlopers! You mortals who dare to interfere with my sport will pay... Wait--you...", LANG_UNIVERSAL, 0); me->PlayDirectSound(SOUND_AGGRO1); events.ScheduleEvent(EVENT_THORIM_AGGRO2, 9000); - events.PopEvent(); if (GameObject* go = GetThorimObject(DATA_THORIM_FENCE)) go->SetGoState(GO_STATE_READY); @@ -684,7 +683,6 @@ public: { me->MonsterYell("I remember you... In the mountains... But you... what is this? Where am--", LANG_UNIVERSAL, 0); me->PlayDirectSound(SOUND_AGGRO2); - events.PopEvent(); EntryCheckPredicate pred(NPC_SIF); summons.DoAction(ACTION_SIF_START_TALK, pred); @@ -692,7 +690,6 @@ public: } case EVENT_THORIM_START_PHASE1: { - events.PopEvent(); events.ScheduleEvent(EVENT_THORIM_STORMHAMMER, 8000, 0, EVENT_PHASE_START); events.ScheduleEvent(EVENT_THORIM_CHARGE_ORB, 14000, 0, EVENT_PHASE_START); events.ScheduleEvent(EVENT_THORIM_FILL_ARENA, 0, 0, EVENT_PHASE_START); @@ -728,13 +725,11 @@ public: me->SummonCreature(NPC_LIGHTNING_ORB, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()); _isArenaEmpty = true; - events.PopEvent(); events.CancelEvent(EVENT_THORIM_NOT_REACH_IN_TIME); break; } case EVENT_THORIM_NOT_REACH_IN_TIME: _isArenaEmpty = true; - events.PopEvent(); events.CancelEvent(EVENT_THORIM_LIGHTNING_ORB); me->CastSpell(me, SPELL_BERSERK_FRIENDS, true); me->SummonCreature(NPC_LIGHTNING_ORB, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()); @@ -750,7 +745,6 @@ public: break; case EVENT_THORIM_LIGHTNING_CHARGE: me->CastSpell(me, SPELL_LIGHTNING_PILLAR_P2, true); - events.PopEvent(); break; case EVENT_THORIM_CHAIN_LIGHTNING: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) @@ -759,12 +753,10 @@ public: break; case EVENT_THORIM_BERSERK: me->CastSpell(me, SPELL_BERSERK, true); - events.PopEvent(); me->MonsterYell("My patience has reached its limit!", LANG_UNIVERSAL, 0); me->PlayDirectSound(SOUND_BERSERK); break; case EVENT_THORIM_OUTRO1: - events.PopEvent(); if (_hardMode) { me->MonsterYell("You! Fiend! You are not my beloved! Be gone!", LANG_UNIVERSAL, 0); @@ -781,7 +773,6 @@ public: } break; case EVENT_THORIM_OUTRO2: - events.PopEvent(); if (_hardMode) { me->MonsterYell("Behold the hand behind all the evil that has befallen Ulduar! Left my kingdom in ruins, corrupted my brother and slain my wife!", LANG_UNIVERSAL, 0); @@ -796,7 +787,6 @@ public: } break; case EVENT_THORIM_OUTRO3: - events.PopEvent(); if (_hardMode) { me->MonsterYell("And now it falls to you, champions, to avenge us all! The task before you is great, but I will lend you my aid as I am able. You must prevail!", LANG_UNIVERSAL, 0); @@ -883,23 +873,20 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SIF_FINISH_DOMINION: - events.PopEvent(); me->PlayDirectSound(SOUND_SIF_DESPAWN); me->MonsterYell("This pathetic morons are harmless. Relive my station, dispose of them!", LANG_UNIVERSAL, 0); me->DespawnOrUnsummon(5000); break; case EVENT_SIF_START_TALK: - events.PopEvent(); me->MonsterYell("Thorim, my lord, why else would these invaders have come into your sanctum but to slay you? They must be stopped!", LANG_UNIVERSAL, 0); me->PlayDirectSound(SOUND_SIF_START); break; case EVENT_SIF_JOIN_TALK: me->PlayDirectSound(SOUND_SIF_EVENT); me->MonsterYell("Impossible! Lord Thorim, I will bring your foes a frigid death!", LANG_UNIVERSAL, 0); - events.PopEvent(); events.ScheduleEvent(EVENT_SIF_FROST_NOVA_START, 1000); events.ScheduleEvent(EVENT_SIF_FROSTBOLT_VALLEY, 11000); events.ScheduleEvent(EVENT_SIF_BLIZZARD, 15000); @@ -922,7 +909,6 @@ public: case EVENT_SIF_FROST_NOVA_CAST: _allowCast = true; me->CastSpell(me, SPELL_FROST_NOVA, false); - events.PopEvent(); return; } @@ -1210,7 +1196,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_DR_ACOLYTE_GH: if (HealthBelowPct(60)) @@ -1327,7 +1313,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_IR_GUARD_IMPALE: me->CastSpell(me->GetVictim(), SPELL_IMPALE, false); @@ -1470,13 +1456,11 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_RC_RUNIC_SMASH_TRIGGER: _nextTriggerPos += 16.0f; - if (_nextTriggerPos > -260.0f) - events.PopEvent(); - else + if (!(_nextTriggerPos > -260.0f)) events.RescheduleEvent(EVENT_RC_RUNIC_SMASH_TRIGGER, 500); RunRunicSmash(true); @@ -1573,7 +1557,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_ARG_RD: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) @@ -1691,7 +1675,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_DR_WARBRINGER_RS: me->CastSpell(me->GetVictim(), SPELL_RUNIC_STRIKE, false); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp index 74202e634..0a294b0bf 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp @@ -303,13 +303,12 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { // Control events case EVENT_HEALTH_CHECK: if (_hardMode) { - events.PopEvent(); return; } @@ -338,12 +337,10 @@ public: // Abilities events case EVENT_GRAVITY_BOMB: me->CastCustomSpell(SPELL_GRAVITY_BOMB, SPELLVALUE_MAX_TARGETS, 1, me, true); - events.PopEvent(); events.ScheduleEvent(EVENT_SEARING_LIGHT, 10000, 1); break; case EVENT_SEARING_LIGHT: me->CastCustomSpell(SPELL_SEARING_LIGHT, SPELLVALUE_MAX_TARGETS, 1, me, true); - events.PopEvent(); events.ScheduleEvent(EVENT_GRAVITY_BOMB, 10000, 1); break; case EVENT_TYMPANIC_TANTARUM: @@ -357,7 +354,6 @@ public: me->MonsterYell("I'm tired of these toys. I don't want to play anymore!", LANG_UNIVERSAL, 0); me->PlayDirectSound(XT_SOUND_SUMMON); me->CastSpell(me, SPELL_XT002_ENRAGE, true); - events.PopEvent(); break; // Animation events @@ -368,13 +364,11 @@ public: heart->GetAI()->DoAction(ACTION_AWAKEN_HEART); events.ScheduleEvent(EVENT_RESTORE, 30000); - events.PopEvent(); return; // Restore from heartbreak case EVENT_RESTORE: if (_hardMode) { - events.PopEvent(); return; } @@ -387,14 +381,12 @@ public: heart->GetAI()->DoAction(ACTION_HIDE_HEART); events.ScheduleEvent(EVENT_REMOVE_EMOTE, 4000); - events.PopEvent(); return; case EVENT_REMOVE_EMOTE: me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); me->SetControlled(false, UNIT_STATE_STUNNED); RescheduleEvents(); - events.PopEvent(); return; } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp index c23a1d8d2..3525f60fd 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp @@ -740,7 +740,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case EVENT_SARA_P1_DOORS_CLOSE: // Whispers of YS @@ -751,7 +751,6 @@ public: go->SetGoState(GO_STATE_READY); events.ScheduleEvent(EVENT_SARA_P1_SPELLS, 0, 1, EVENT_PHASE_ONE); - events.PopEvent(); break; case EVENT_SARA_P1_SUMMON: events.RepeatEvent(20000 - (std::min(_summonedGuardiansCount, (uint8)5) * 2000)); @@ -768,7 +767,6 @@ public: } case EVENT_SARA_P2_START: { - events.PopEvent(); EntryCheckPredicate pred(NPC_YOGG_SARON); summons.DoAction(ACTION_YOGG_SARON_APPEAR, pred); events.RescheduleEvent(EVENT_SARA_P2_SPAWN_START_TENTACLES, 500, 0, EVENT_PHASE_TWO); @@ -817,13 +815,10 @@ public: case EVENT_SARA_P2_REMOVE_STUN: { me->RemoveAura(SPELL_SHATTERED_ILLUSION); - events.PopEvent(); summons.DoAction(ACTION_REMOVE_STUN); break; } case EVENT_SARA_P2_SPAWN_START_TENTACLES: - events.PopEvent(); - me->SetOrientation(M_PI); me->SetDisplayId(SARA_TRANSFORM_MODEL); @@ -1148,7 +1143,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_YS_LUNATIC_GAZE: me->MonsterYell("Hoohehehahahaha... AHAHAHAHAHAHA!", LANG_UNIVERSAL, 0); @@ -2235,11 +2230,10 @@ public: void UpdateAI(uint32 diff) { events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 40: { - events.PopEvent(); uint64 _guid = _targets.at(_current); ++_current; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp index 1cf1b7d18..80313cfac 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp @@ -995,12 +995,11 @@ public: return; _events.Update(diff); - switch (_events.GetEvent()) + switch (_events.ExecuteEvent()) { case EVENT_UPDATE_ALGALON_TIMER: if (m_algalonTimer == TIMER_ALGALON_DEFEATED) { - _events.PopEvent(); return; } @@ -1012,7 +1011,6 @@ public: return; } - _events.PopEvent(); SetData(DATA_ALGALON_DEFEATED, 1); if (Creature* algalon = instance->GetCreature(m_uiAlgalonGUID)) algalon->AI()->DoAction(ACTION_DESPAWN_ALGALON); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp index 098833fea..43ae1b9bb 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp @@ -294,7 +294,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; @@ -407,7 +407,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp index 1058075db..88a84780a 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp @@ -237,17 +237,15 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; case EVENT_YELL_DEAD_1: Talk(YELL_DEAD_1); - events.PopEvent(); break; case EVENT_START_RESURRECTION: me->CastSpell(me, SPELL_SUMMON_VALKYR, true); - events.PopEvent(); events.RescheduleEvent(EVENT_VALKYR_BEAM, 7000); events.RescheduleEvent(EVENT_VALKYR_MOVE, 1); events.RescheduleEvent(EVENT_ANNHYLDE_YELL, 3000); @@ -255,35 +253,29 @@ public: case EVENT_VALKYR_MOVE: if( Creature* s = ObjectAccessor::GetCreature(*me, ValkyrGUID) ) s->GetMotionMaster()->MovePoint(1, s->GetPositionX(), s->GetPositionY(), s->GetPositionZ() - 15.0f); - events.PopEvent(); break; case EVENT_ANNHYLDE_YELL: if( Creature* s = ObjectAccessor::GetCreature(*me, ValkyrGUID) ) s->AI()->Talk(YELL_ANHYLDE_2); - events.PopEvent(); break; case EVENT_VALKYR_BEAM: me->RemoveAura(SPELL_SUMMON_VALKYR); if( Creature* c = ObjectAccessor::GetCreature(*me, ValkyrGUID) ) c->CastSpell(me, SPELL_RESURRECTION_BEAM, false); - events.PopEvent(); events.RescheduleEvent(EVENT_RESURRECTION_BALL, 4000); break; case EVENT_RESURRECTION_BALL: me->CastSpell(me, SPELL_RESURRECTION_BALL, true); - events.PopEvent(); events.RescheduleEvent(EVENT_RESURRECTION_HEAL, 4000); break; case EVENT_RESURRECTION_HEAL: me->RemoveAura(SPELL_RESURRECTION_BALL); me->CastSpell(me, SPELL_RESURRECTION_HEAL, true); FeignDeath(false); - events.PopEvent(); events.RescheduleEvent(EVENT_MORPH_TO_UNDEAD, 3000); break; case EVENT_MORPH_TO_UNDEAD: me->CastSpell(me, SPELL_INGVAR_TRANSFORM, true); - events.PopEvent(); events.RescheduleEvent(EVENT_START_PHASE_2, 1000); break; case EVENT_START_PHASE_2: @@ -292,7 +284,6 @@ public: c->DespawnOrUnsummon(); summons.DespawnAll(); } - events.PopEvent(); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); AttackStart(me->GetVictim()); me->GetMotionMaster()->MoveChase(me->GetVictim()); @@ -310,7 +301,6 @@ public: case EVENT_UNROOT: me->SetControlled(false, UNIT_STATE_ROOT); me->DisableRotate(false); - events.PopEvent(); break; case EVENT_SPELL_ROAR: Talk(EMOTE_ROAR); @@ -369,7 +359,6 @@ public: case EVENT_AXE_RETURN: if (Creature* c = ObjectAccessor::GetCreature(*me, ThrowGUID)) c->GetMotionMaster()->MoveCharge(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 0.5f); - events.PopEvent(); events.RescheduleEvent(EVENT_AXE_PICKUP, 1500); break; case EVENT_AXE_PICKUP: @@ -381,7 +370,6 @@ public: } ThrowGUID = 0; SetEquipmentSlots(true); - events.PopEvent(); break; } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp index 1aa89ac8b..49db4f62a 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp @@ -176,7 +176,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -209,7 +209,6 @@ public: DoZoneInCombat(c); } } - events.PopEvent(); break; } @@ -296,7 +295,7 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -311,7 +310,6 @@ public: events.RepeatEvent(urand(40000, 120000)); break; case EVENT_RESURRECT: - events.PopEvent(); events.DelayEvents(3500); DoCast(me, SPELL_SCOURGE_RESURRECTION, true); me->SetStandState(UNIT_STAND_STATE_STAND); @@ -324,7 +322,6 @@ public: me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->SetControlled(false, UNIT_STATE_ROOT); me->GetMotionMaster()->MoveChase(me->GetVictim()); - events.PopEvent(); break; } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp index 57f6438dc..a5812d4c0 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp @@ -163,13 +163,12 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; case EVENT_MATE_DIED: Talk(YELL_SKARVALD_DAL_DIEDFIRST); - events.PopEvent(); break; case EVENT_SPELL_CHARGE: if( Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, (IsHeroic() ? 100.0f : 30.0f), true) ) @@ -317,17 +316,15 @@ public: if( me->HasUnitState(UNIT_STATE_CASTING) ) return; - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; case EVENT_YELL_DALRONN_AGGRO: Talk(YELL_DALRONN_AGGRO); - events.PopEvent(); break; case EVENT_MATE_DIED: Talk(YELL_DALRONN_SKA_DIEDFIRST); - events.PopEvent(); break; case EVENT_SPELL_SHADOW_BOLT: if( Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 42.0f, true) ) diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp index 20a0f7a0b..e41141222 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp @@ -222,7 +222,7 @@ public: return; events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_UNFREEZE_MONSTER: { @@ -238,7 +238,6 @@ public: else EnterEvadeMode(); } - events.PopEvent(); break; } case EVENT_UNFREEZE_MONSTER2: @@ -253,7 +252,6 @@ public: else EnterEvadeMode(); } - events.PopEvent(); break; } case EVENT_PALEHOOF_START: @@ -263,7 +261,6 @@ public: orb->CastSpell(me, SPELL_AWAKEN_SUBBOSS, true); events.ScheduleEvent(EVENT_PALEHOOF_START2, 6000); } - events.PopEvent(); break; } case EVENT_PALEHOOF_START2: @@ -281,7 +278,6 @@ public: events.ScheduleEvent(EVENT_PALEHOOF_WITHERING_ROAR, 10000); events.ScheduleEvent(EVENT_PALEHOOF_IMPALE, 12000); events.ScheduleEvent(EVENT_PALEHOOF_ARCING_SMASH, 15000); - events.PopEvent(); break; } case EVENT_PALEHOOF_WITHERING_ROAR: @@ -402,7 +398,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_JORMUNGAR_ACID_SPIT: { @@ -526,7 +522,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_RHINO_STOMP: { @@ -636,7 +632,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_FURBOLG_CHAIN: { @@ -744,7 +740,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_WORGEN_MORTAL: { diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp index 2c78308a5..1dad059d6 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp @@ -191,7 +191,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SKADI_START: { @@ -204,7 +204,6 @@ public: else EnterEvadeMode(); - events.PopEvent(); break; } case EVENT_SKADI_CRUSH: @@ -430,7 +429,7 @@ public: void UpdateAI(uint32 diff) { events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_GRAUF_CHECK: { @@ -447,7 +446,6 @@ public: SpawnHelpers(0); events.ScheduleEvent(EVENT_GRAUF_MOVE, 15000); events.ScheduleEvent(EVENT_GRAUF_SUMMON_HELPERS, 20000); - events.PopEvent(); break; } case EVENT_GRAUF_MOVE: @@ -478,7 +476,6 @@ public: { RemoveSkadi(false); me->DespawnOrUnsummon(); - events.PopEvent(); break; } } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp index 0fc66d4fc..3ef8ec980 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp @@ -198,7 +198,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_YMIRON_HEALTH_CHECK: { @@ -275,7 +275,6 @@ public: } } - events.PopEvent(); break; } case EVENT_YMIRON_BJORN_ABILITY: @@ -288,7 +287,6 @@ public: sf->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); sf->GetMotionMaster()->MoveFollow(me->GetVictim(), 0, rand_norm()*M_PI * 2); } - events.PopEvent(); break; } case EVENT_YMIRON_HALDOR_ABILITY: @@ -345,4 +343,4 @@ public: void AddSC_boss_ymiron() { new boss_ymiron(); -} \ No newline at end of file +} diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp index e55ec4bb7..2302d7988 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp @@ -101,7 +101,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_ROCK_SHARDS: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) @@ -127,12 +127,10 @@ public: } case EVENT_IMPALE: me->CastSpell(me->GetVictim(), RAID_MODE(SPELL_IMPALE_10, SPELL_IMPALE_25), false); - events.PopEvent(); break; case EVENT_BERSERK: me->CastSpell(me, SPELL_BERSERK, true); Talk(EMOTE_BERSERK); - events.PopEvent(); break; default: break; diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp index 0f1e80eda..1033e6f63 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp @@ -153,7 +153,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_CHAIN_LIGHTNING: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) @@ -176,7 +176,6 @@ public: break; case EVENT_SUMMON_NEXT_MINION: me->SummonCreature(NPC_TEMPEST_MINION, TempestMinions[urand(0, 3)], TEMPSUMMON_CORPSE_DESPAWN, 0); - events.PopEvent(); break; default: break; diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp index 77aa4922e..881cd1d56 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp @@ -121,7 +121,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_BURNING_BREATH: rotateTimer = 1500; diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp index 8abcbf771..4499c2625 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp @@ -116,8 +116,6 @@ public: void UpdateAI(uint32 diff) { - - if (!UpdateVictim()) return; @@ -125,7 +123,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_FREEZING_GROUND: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) @@ -144,7 +142,6 @@ public: case EVENT_CAST_WHITEOUT_GROUND_EFFECT: // Whiteout Ground effect trigger if (Unit* whiteOutGround = me->SummonCreature(NPC_WHITEOUT_GROUND_EFFECT, -43.3316, -288.708, 92.2511, 1.58825, TEMPSUMMON_TIMED_DESPAWN, 4000)) whiteOutGround->CastSpell(whiteOutGround, SPELL_WHITEOUT_VISUAL, false); // Cast the spell - events.PopEvent(); break; } diff --git a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp index d7d8ea179..0c86a850f 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp @@ -105,7 +105,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; @@ -119,7 +119,7 @@ public: break; case EVENT_UNROOT: me->SetControlled(false, UNIT_STATE_ROOT); - events.PopEvent(); + break; case EVENT_SPELL_BLIZZARD: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 45.0f, true)) diff --git a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp index 1ed445fe6..4fabac821 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp @@ -104,7 +104,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; @@ -269,7 +269,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; diff --git a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp index 1e86f555e..6b4916a81 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp @@ -75,7 +75,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; diff --git a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp index f937f8369..019cb8c48 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp @@ -77,7 +77,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; diff --git a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp index fe7e9c6cd..2ea7efdef 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp @@ -91,7 +91,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; @@ -101,7 +101,6 @@ public: break; case EVENT_SPELL_ARCANE_BUFFET: me->CastSpell(me->GetVictim(), SPELL_ARCANE_BUFFET, false); - events.PopEvent(); break; case EVENT_SUMMON_SPHERES: { diff --git a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp index 13e760cab..80b2b7e39 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp @@ -90,7 +90,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp index 26f2bf76a..0476784c7 100644 --- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp @@ -405,7 +405,7 @@ public: void Update(uint32 diff) { events.Update(diff); - switch( events.GetEvent() ) + switch( events.ExecuteEvent() ) { case 0: break; @@ -426,7 +426,6 @@ public: c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING); c->GetMotionMaster()->MovePoint(0, guardMovePosition); } - events.PopEvent(); events.RescheduleEvent(EVENT_GUARDS_DISAPPEAR, 5000); } break; @@ -435,7 +434,6 @@ public: for (uint8 i = 0; i < 4; ++i) if (Creature* c = instance->GetCreature(NPC_GuardGUID[i])) c->SetVisible(false); - events.PopEvent(); events.RescheduleEvent(EVENT_SINCLARI_FALL_BACK, 2000); } break; @@ -447,7 +445,6 @@ public: c->GetMotionMaster()->MovePoint(0, sinclariOutsidePosition); } SetData(DATA_ACTIVATE_DEFENSE_SYSTEM, 0); - events.PopEvent(); events.RescheduleEvent(EVENT_START_ENCOUNTER, 4000); } break; @@ -467,7 +464,6 @@ public: HandleGameObject(0, false, go); // not used yet go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); // make it useable } - events.PopEvent(); events.RescheduleEvent(EVENT_SUMMON_PORTAL, 4000); } break; @@ -501,7 +497,6 @@ public: events.RescheduleEvent(EVENT_CYANIGOSSA_TRANSFORM, 10000); } } - events.PopEvent(); break; case EVENT_CYANIGOSSA_TRANSFORM: if (Creature* c = instance->GetCreature(NPC_CyanigosaGUID)) @@ -510,12 +505,10 @@ public: c->CastSpell(c, SPELL_CYANIGOSA_TRANSFORM, 0); events.RescheduleEvent(EVENT_CYANIGOSA_ATTACK, 2500); } - events.PopEvent(); break; case EVENT_CYANIGOSA_ATTACK: if (Creature* c = instance->GetCreature(NPC_CyanigosaGUID)) c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); - events.PopEvent(); break; } } diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp index 975c6665c..08a1c6af4 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp @@ -146,7 +146,7 @@ public: events.Update(diff); - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; @@ -155,7 +155,6 @@ public: spawned = true; if (Creature* c = DoSummon(RAND(NPC_PORTAL_GUARDIAN, NPC_PORTAL_KEEPER), me, 2.0f, 0, TEMPSUMMON_DEAD_DESPAWN)) me->CastSpell(c, SPELL_PORTAL_CHANNEL, false); - events.PopEvent(); events.RescheduleEvent(EVENT_SUMMON_KEEPER_TRASH, 20000); break; case EVENT_SUMMON_KEEPER_TRASH: @@ -174,12 +173,10 @@ public: DoSummon(entry, me, 2.0f, 20000, TEMPSUMMON_DEAD_DESPAWN); } me->SetVisible(false); - events.PopEvent(); break; case EVENT_SUMMON_SABOTEOUR: DoSummon(NPC_SABOTEOUR, me, 2.0f, 0, TEMPSUMMON_CORPSE_DESPAWN); me->DespawnOrUnsummon(3000); - events.PopEvent(); break; } diff --git a/src/server/scripts/Northrend/isle_of_conquest.cpp b/src/server/scripts/Northrend/isle_of_conquest.cpp index ec6ea9991..1ce29eb62 100644 --- a/src/server/scripts/Northrend/isle_of_conquest.cpp +++ b/src/server/scripts/Northrend/isle_of_conquest.cpp @@ -259,7 +259,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_CHECK_RAGE: CheckRageBuff(); diff --git a/src/server/scripts/Northrend/zone_dalaran.cpp b/src/server/scripts/Northrend/zone_dalaran.cpp index 5666691b1..9adb94d01 100644 --- a/src/server/scripts/Northrend/zone_dalaran.cpp +++ b/src/server/scripts/Northrend/zone_dalaran.cpp @@ -181,12 +181,11 @@ public: void UpdateAI(uint32 diff) override { _events.Update(diff); - switch (_events.GetEvent()) + switch (_events.ExecuteEvent()) { case EVENT_INTRO_DH1: Talk(SAY_SHANDY3); _events.ScheduleEvent(EVENT_INTRO_DH2, 15000); - _events.PopEvent(); break; case EVENT_INTRO_DH2: if (_lCount++ > 6) @@ -194,28 +193,23 @@ public: else RollTask(); - _events.PopEvent(); break; case EVENT_INTRO_DH3: Talk(SAY_SHANDY4); _events.ScheduleEvent(EVENT_INTRO_DH4, 20000); - _events.PopEvent(); break; case EVENT_INTRO_DH4: Talk(SAY_SHANDY5); _events.ScheduleEvent(EVENT_INTRO_DH5, 3000); - _events.PopEvent(); break; case EVENT_INTRO_DH5: me->SummonGameObject(201384, 5798.74f, 693.19f, 657.94f, 0.91f, 0, 0, 0, 0, 90000000); _events.ScheduleEvent(EVENT_INTRO_DH6, 1000); - _events.PopEvent(); break; case EVENT_INTRO_DH6: me->SetWalk(true); me->GetMotionMaster()->MovePoint(0, 5797.55f, 691.97f, 657.94f); _events.RescheduleEvent(EVENT_OUTRO_DH, 30000); - _events.PopEvent(); break; case EVENT_OUTRO_DH: me->GetMotionMaster()->MoveTargetedHome(); diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp index fb1008d24..ff14af3d4 100644 --- a/src/server/scripts/Northrend/zone_dragonblight.cpp +++ b/src/server/scripts/Northrend/zone_dragonblight.cpp @@ -347,18 +347,16 @@ public: void UpdateAI(uint32 diff) { events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_START_EVENT: if (Creature* cr = getFuture()) cr->MonsterWhisper(IsFuture() ? "Hey there, $N, don't be alarmed. It's me... you... from the future. I'm here to help." : "Whoa! You're me, but from the future! Hey, my equipment got an upgrade! Cool!", getSummoner()); - events.PopEvent(); events.ScheduleEvent(EVENT_FIGHT_1, 7000); break; case EVENT_FIGHT_1: if (Creature* cr = getFuture()) cr->MonsterWhisper(IsFuture() ? "Heads up... here they come. I'll help as much as I can. Let's just keep them off the hourglass!" : "Here come the Infinites! I've got to keep the hourglass safe. Can you help?", getSummoner()); - events.PopEvent(); events.ScheduleEvent(EVENT_FIGHT_2, 6000); break; case EVENT_FIGHT_2: @@ -390,13 +388,11 @@ public: cr->AI()->AttackStart(me); } - events.PopEvent(); events.ScheduleEvent(EVENT_CHECK_FINISH, 20000); return; } - phase++; - events.PopEvent(); + ++phase; events.ScheduleEvent(EVENT_FIGHT_2, 35000); break; } @@ -412,14 +408,12 @@ public: player->GroupEventHappens(IsFuture() ? QUEST_MYSTERY_OF_THE_INFINITE : QUEST_MYSTERY_OF_THE_INFINITE_REDUX, me); me->MonsterWhisper(IsFuture() ? "Look, $N, the hourglass has revealed Nozdormu!" : "What the heck? Nozdormu is up there!", getSummoner()); - events.PopEvent(); events.ScheduleEvent(EVENT_FINISH_EVENT, 6000); break; } case EVENT_FINISH_EVENT: { me->MonsterWhisper(IsFuture() ? "Farewell, $N. Keep us alive and get some better equipment!" : "I feel like I'm being pulled away through time. Thanks for the help....", getSummoner()); - events.PopEvent(); me->DespawnOrUnsummon(500); if (getFuture()) getFuture()->DespawnOrUnsummon(500); @@ -1303,7 +1297,7 @@ public: events.Update(diff); if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case 0: break; @@ -1312,7 +1306,6 @@ public: me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); if (Unit* t = me->SelectNearestTarget(50.0f)) AttackStart(t); - events.PopEvent(); break; case 2: me->CastSpell((Unit*)NULL, 70866, false); @@ -1336,7 +1329,6 @@ public: case 6: Talk(0); me->CastSpell(me, SPELL_SAC_EMERGE, true); - events.PopEvent(); break; } DoMeleeAttackIfReady(); diff --git a/src/server/scripts/Northrend/zone_icecrown.cpp b/src/server/scripts/Northrend/zone_icecrown.cpp index a5759e9d5..7fea587d6 100644 --- a/src/server/scripts/Northrend/zone_icecrown.cpp +++ b/src/server/scripts/Northrend/zone_icecrown.cpp @@ -216,7 +216,7 @@ public: void UpdateAI(uint32 diff) { events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_VALHALAS_FIRST: { @@ -250,7 +250,6 @@ public: me->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 20.0f); me->SetPosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 20.0f, me->GetOrientation()); - events.PopEvent(); break; } case EVENT_VALHALAS_SECOND: @@ -277,19 +276,16 @@ public: } PrepareSummons(); - events.PopEvent(); break; } case EVENT_VALHALAS_THIRD: { - events.PopEvent(); me->MonsterYell("In defeating him, he and his fighting companions have proven themselves worthy of battle in this most sacred place of vrykul honor.", LANG_UNIVERSAL, ObjectAccessor::GetPlayer(*me, playerGUID)); events.ScheduleEvent(EVENT_VALHALAS_THIRD + 2, 7000); break; } case EVENT_VALHALAS_THIRD+2: { - events.PopEvent(); me->MonsterYell("ALL HAIL $N, CHAMPION OF VALHALAS! ", LANG_UNIVERSAL, ObjectAccessor::GetPlayer(*me, playerGUID2)); break; } diff --git a/src/server/scripts/Northrend/zone_sholazar_basin.cpp b/src/server/scripts/Northrend/zone_sholazar_basin.cpp index 5c75e5f69..bb642339a 100644 --- a/src/server/scripts/Northrend/zone_sholazar_basin.cpp +++ b/src/server/scripts/Northrend/zone_sholazar_basin.cpp @@ -212,7 +212,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_ARTRUIS_HP_CHECK: if (me->GetHealthPct() <= 30) @@ -220,23 +220,19 @@ public: me->SetControlled(true, UNIT_STATE_STUNNED); me->MonsterTextEmote("Artruis is shielded. You must choose your side quickly to break his spell.", 0, true); SummonsAction(ACTION_BIND_MINIONS); - events.PopEvent(); break; } events.RepeatEvent(1000); break; case EVENT_ARTRUIS_TALK1: me->MonsterYell("I have weathered a hundred years of war and suffering. Do you truly think it wise to pit your mortal bodies against a being that cannot die? I'd venture you have more to lose.", LANG_UNIVERSAL, 0); - events.PopEvent(); events.RescheduleEvent(EVENT_ARTRUIS_TALK2, 10000); break; case EVENT_ARTRUIS_TALK2: me->MonsterYell("Even shattered into countless pieces, the crystals all around weaken me... perhaps i should not have underestimated the titans so...", LANG_UNIVERSAL, 0); - events.PopEvent(); break; case EVENT_ARTRUIS_TALK3: me->MonsterYell("Arthas once mustered strength... of the very same sort... perhaps he is the path that you will follow.", LANG_UNIVERSAL, 0); - events.PopEvent(); break; case EVENT_CAST_FROST_BOLT: me->CastSpell(me->GetVictim(), SPELL_ARTRUIS_FROSTBOLT, false); diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp index ef3b5e643..a3c354ade 100644 --- a/src/server/scripts/Northrend/zone_storm_peaks.cpp +++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp @@ -275,7 +275,7 @@ public: return; events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case SPELL_TIME_SHIFT: me->CastSpell(me, SPELL_TIME_SHIFT, false); diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp index 8ed3bc04f..5c7a7f8ce 100644 --- a/src/server/scripts/Northrend/zone_zuldrak.cpp +++ b/src/server/scripts/Northrend/zone_zuldrak.cpp @@ -489,11 +489,10 @@ public: void UpdateAI(uint32 diff) { events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_BETRAYAL_1: Talk(SAY_DRAKURU_0); - events.PopEvent(); events.ScheduleEvent(EVENT_BETRAYAL_2, 5000); break; case EVENT_BETRAYAL_2: @@ -501,7 +500,6 @@ public: me->SummonCreature(NPC_BLIGHTBLOOD_TROLL, 6222.9f, -2026.5f, 586.76f, 2.9f); me->SummonCreature(NPC_BLIGHTBLOOD_TROLL, 6166.2f, -2065.4f, 586.76f, 1.4f); me->SummonCreature(NPC_BLIGHTBLOOD_TROLL, 6127.5f, -2008.7f, 586.76f, 0.0f); - events.PopEvent(); events.ScheduleEvent(EVENT_BETRAYAL_3, 5000); break; case EVENT_BETRAYAL_3: @@ -511,34 +509,28 @@ public: player->CastSpell(player, SPELL_SCOURGE_DISGUISE_EXPIRING, true); if (Aura* aur = me->AddAura(SPELL_BLIGHT_FOG, me)) aur->SetDuration(22000); - events.PopEvent(); break; case EVENT_BETRAYAL_4: Talk(SAY_DRAKURU_5); events.ScheduleEvent(EVENT_BETRAYAL_5, 6000); - events.PopEvent(); break; case EVENT_BETRAYAL_5: Talk(SAY_DRAKURU_6); me->CastSpell(me, SPELL_THROW_PORTAL_CRYSTAL, true); events.ScheduleEvent(EVENT_BETRAYAL_6, 8000); - events.PopEvent(); break; case EVENT_BETRAYAL_6: me->SummonCreature(NPC_LICH_KING, 6142.9f, -2011.6f, 590.86f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 41000); events.ScheduleEvent(EVENT_BETRAYAL_7, 8000); - events.PopEvent(); break; case EVENT_BETRAYAL_7: Talk(SAY_DRAKURU_7); events.ScheduleEvent(EVENT_BETRAYAL_8, 5000); - events.PopEvent(); break; case EVENT_BETRAYAL_8: if (Creature* lich = ObjectAccessor::GetCreature(*me, lichGUID)) lich->AI()->Talk(SAY_LICH_7); events.ScheduleEvent(EVENT_BETRAYAL_9, 6000); - events.PopEvent(); break; case EVENT_BETRAYAL_9: if (Creature* lich = ObjectAccessor::GetCreature(*me, lichGUID)) @@ -547,26 +539,22 @@ public: lich->CastSpell(me, SPELL_TOUCH_OF_DEATH, false); } events.ScheduleEvent(EVENT_BETRAYAL_10, 4000); - events.PopEvent(); break; case EVENT_BETRAYAL_10: me->SetVisible(false); if (Creature* lich = ObjectAccessor::GetCreature(*me, lichGUID)) lich->AI()->Talk(SAY_LICH_9); events.ScheduleEvent(EVENT_BETRAYAL_11, 4000); - events.PopEvent(); break; case EVENT_BETRAYAL_11: if (Creature* lich = ObjectAccessor::GetCreature(*me, lichGUID)) lich->AI()->Talk(SAY_LICH_10); events.ScheduleEvent(EVENT_BETRAYAL_12, 6000); - events.PopEvent(); break; case EVENT_BETRAYAL_12: if (Creature* lich = ObjectAccessor::GetCreature(*me, lichGUID)) lich->AI()->Talk(SAY_LICH_11); events.ScheduleEvent(EVENT_BETRAYAL_13, 3000); - events.PopEvent(); break; case EVENT_BETRAYAL_13: if (Creature* lich = ObjectAccessor::GetCreature(*me, lichGUID)) @@ -575,7 +563,6 @@ public: lich->GetMotionMaster()->MovePoint(0, 6143.8f, -2011.5f, 590.9f); } events.ScheduleEvent(EVENT_BETRAYAL_14, 7000); - events.PopEvent(); break; case EVENT_BETRAYAL_14: playerGUID = 0; @@ -590,7 +577,7 @@ public: if (!UpdateVictim()) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_BETRAYAL_SHADOW_BOLT: if (!me->IsWithinMeleeRange(me->GetVictim())) diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp index 7ce029595..d70436567 100644 --- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp +++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp @@ -97,14 +97,13 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_CHECK_HEALTH: if (HealthBelowPct(25)) { Talk(SAY_SUMMON); me->CastSpell(me, SPELL_SUMMON_AVATAR, false); - events.PopEvent(); return; } events.RepeatEvent(2000); @@ -190,7 +189,7 @@ public: return; events.Update(diff); - if (events.GetEvent() == EVENT_STOLEN_SOUL_SPELL) + if (events.ExecuteEvent() == EVENT_STOLEN_SOUL_SPELL) { switch (myClass) { diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp index 7a55b024d..58045e309 100644 --- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp +++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp @@ -98,7 +98,7 @@ public: void UpdateAI(uint32 diff) { events.Update(diff); - uint32 eventId = events.GetEvent(); + uint32 eventId = events.ExecuteEvent(); if (eventId == EVENT_SPELL_INHIBIT_MAGIC) { @@ -157,11 +157,9 @@ public: case EVENT_SPELL_FOCUS_FIRE_2: if (Unit* flare = ObjectAccessor::GetCreature(*me, focusGUID)) me->CastSpell(flare, SPELL_FOCUS_CAST, true); - events.PopEvent(); break; case EVENT_SPELL_FOCUS_FIRE_3: me->SetControlled(false, UNIT_STATE_ROOT); - events.PopEvent(); break; } diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp index b8bfae7e8..4aeb73287 100644 --- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp +++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp @@ -125,7 +125,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_FROST_NOVA: me->CastSpell(me, SPELL_FROSTNOVA, false); @@ -139,7 +139,6 @@ public: break; case EVENT_SPELL_BLINK: me->CastSpell(me, SPELL_BLINK, false); - events.PopEvent(); events.RescheduleEvent(EVENT_SPELL_FR_FI, 0); break; case EVENT_SPELL_BEACON: diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp index 8bdca07e4..e2ce5fd23 100644 --- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp +++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp @@ -81,7 +81,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_VOID_BLAST: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp index 49620c2d4..b0cf5b58a 100644 --- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp +++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_talon_king_ikiss.cpp @@ -105,7 +105,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_ARCANE_VOLLEY: me->CastSpell(me, SPELL_ARCANE_VOLLEY_N, false); @@ -124,7 +124,6 @@ public: if (me->HealthBelowPct(20)) { me->CastSpell(me, SPELL_MANA_SHIELD, false); - events.PopEvent(); return; } events.RepeatEvent(1000); @@ -145,7 +144,6 @@ public: case EVENT_SPELL_BLINK_2: me->CastSpell(me, SPELL_ARCANE_EXPLOSION_N, false); me->CastSpell(me, SPELL_ARCANE_BUBBLE, true); - events.PopEvent(); break; } @@ -271,7 +269,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING | UNIT_STATE_STUNNED)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_SCREECH: me->CastSpell(me, SPELL_PARALYZING_SCREECH, false); @@ -294,7 +292,6 @@ public: if (me->HealthBelowPct(66)) { SummonBroods(); - events.PopEvent(); events.DelayEvents(10000); return; } @@ -304,7 +301,6 @@ public: if (me->HealthBelowPct(33)) { SummonBroods(); - events.PopEvent(); events.DelayEvents(10000); return; } diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp index 8a2a9f213..89a616e74 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp @@ -133,7 +133,7 @@ public: } events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_CORROSIVE: me->CastSpell(me->GetVictim(), SPELL_CORROSIVE_ACID, false); @@ -145,7 +145,6 @@ public: break; case EVENT_SPELL_ENRAGE: me->CastSpell(me->GetVictim(), SPELL_ENRAGE, false); - events.PopEvent(); break; } diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp index f101d382f..4925566de 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp @@ -94,11 +94,10 @@ public: return; events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_INCITE_WAIT: InciteChaos = false; - events.PopEvent(); break; case EVENT_SPELL_INCITE: { diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp index b0b508dc4..d90b8c561 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp @@ -155,7 +155,7 @@ public: return; events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_SHADOWBOLT: me->CastSpell(me, SPELL_SHADOWBOLT_VOLLEY, false); diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp index 85094b464..3ed4957ba 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp @@ -91,7 +91,7 @@ public: return; events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_SONIC_BOOM: Talk(EMOTE_SONIC_BOOM); @@ -102,7 +102,6 @@ public: return; case EVENT_SPELL_SONIC_BOOM_EFFECT: me->CastSpell(me, DUNGEON_MODE(SPELL_SONIC_BOOM_EFFECT_N, SPELL_SONIC_BOOM_EFFECT_H), true); - events.PopEvent(); break; case EVENT_SPELL_MURMURS_TOUCH: if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 80.0f, true)) diff --git a/src/server/scripts/Outland/CoilfangReservoir/SlavePens/boss_ahune.cpp b/src/server/scripts/Outland/CoilfangReservoir/SlavePens/boss_ahune.cpp index 69c0fb13d..e9462be65 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SlavePens/boss_ahune.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SlavePens/boss_ahune.cpp @@ -128,20 +128,18 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch(events.GetEvent()) + switch(events.ExecuteEvent()) { case 0: break; case EVENT_EMERGE: me->SetVisible(true); me->CastSpell(me, SPELL_EMERGE_0, false); - events.PopEvent(); events.RescheduleEvent(EVENT_ATTACK, 2000); break; case EVENT_SUMMON_TOTEMS: for (uint8 i = 0; i < 3; ++i) DoSummon(NPC_TOTEM, TotemPos[i], 10 * 60 * 1000, TEMPSUMMON_TIMED_DESPAWN); - events.PopEvent(); break; case EVENT_INVOKER_SAY_1: if (Player* plr = ObjectAccessor::GetPlayer(*me, InvokerGUID)) @@ -149,19 +147,16 @@ public: plr->MonsterSay("The Ice Stone has melted!", LANG_UNIVERSAL, 0); plr->CastSpell(plr, SPELL_MAKE_BONFIRE, true); } - events.PopEvent(); events.RescheduleEvent(EVENT_INVOKER_SAY_2, 2000); break; case EVENT_INVOKER_SAY_2: if (Player* plr = ObjectAccessor::GetPlayer(*me, InvokerGUID)) plr->MonsterSay("Ahune, your strength grows no more!", LANG_UNIVERSAL, 0); - events.PopEvent(); events.RescheduleEvent(EVENT_INVOKER_SAY_3, 2000); break; case EVENT_INVOKER_SAY_3: if (Player* plr = ObjectAccessor::GetPlayer(*me, InvokerGUID)) plr->MonsterSay("Your frozen reign will not come to pass!", LANG_UNIVERSAL, 0); - events.PopEvent(); break; case EVENT_ATTACK: events.Reset(); @@ -180,7 +175,6 @@ public: for (uint8 i = 0; i < 3; ++i) if (Creature* bunny = me->FindNearestCreature(NPC_TOTEM_BUNNY_1 + i, 150.0f, true)) bunny->CastSpell(me, SPELL_TOTEM_BEAM, false); - events.PopEvent(); events.RescheduleEvent(EVENT_SUBMERGE, 10000); break; case EVENT_SUBMERGE: @@ -198,7 +192,6 @@ public: break; case EVENT_EMERGE_WARNING: me->MonsterTextEmote(TEXT_RESURFACE, 0, true); - events.PopEvent(); break; case EVENT_COMBAT_EMERGE: me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); @@ -206,7 +199,6 @@ public: me->CastSpell(me, SPELL_EMERGE_0, false); // me->CastSpell(me, SPELL_AHUNE_RESURFACES, true); // done in SummonedCreatureDespawn me->RemoveAura(SPELL_SUBMERGE_0); - events.PopEvent(); StartPhase1(); break; @@ -246,7 +238,6 @@ public: break; default: - events.PopEvent(); break; } diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp index c622c97eb..8db0943d5 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp @@ -79,7 +79,7 @@ public: return; events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_LIGHTNING: for (uint8 i = 0; i < DUNGEON_MODE(1, 2); ++i) diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp index 9fb60186e..9ec0a9a95 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp @@ -106,7 +106,7 @@ public: return; events.Update(diff); - switch (uint32 eventId = events.GetEvent()) + switch (uint32 eventId = events.ExecuteEvent()) { case EVENT_SPELL_SHRINK: me->CastSpell(me->GetVictim(), SPELL_SUPER_SHRINK_RAY, false); @@ -130,7 +130,6 @@ public: if (me->HealthBelowPct(eventId * 25)) { SummonMechanics(); - events.PopEvent(); return; } events.RepeatEvent(2000); diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp index 389aa84bc..228ca56db 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp @@ -85,7 +85,7 @@ public: return; events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_REFLECTION: me->CastSpell(me, SPELL_SPELL_REFLECTION, false); diff --git a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp index 55bc3c97c..7ed926993 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/underbog/boss_the_black_stalker.cpp @@ -101,7 +101,7 @@ public: return; events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_CHECK: float x, y, z, o; @@ -149,7 +149,6 @@ public: events.ScheduleEvent(EVENT_LEVITATE_TARGET_2, 1500); } } - events.PopEvent(); break; case EVENT_LEVITATE_TARGET_2: if (Unit* target = ObjectAccessor::GetUnit(*me, lTarget)) @@ -162,7 +161,6 @@ public: lTarget = 0; } } - events.PopEvent(); break; } diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp index 371cf8416..28f6fc682 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp @@ -75,7 +75,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_SLIME: me->CastSpell(me->GetVictim(), SPELL_SLIME_SPRAY, false); diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp index 53cb95239..c66601c78 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp @@ -223,7 +223,6 @@ public: CheckChannelers(); if (!me->HasUnitState(UNIT_STATE_CASTING)) me->CastSpell(me, SPELL_EVOCATION, false); - } return; } @@ -232,7 +231,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_VOLLEY: me->CastSpell(me, SPELL_SHADOW_BOLT_VOLLEY, false); @@ -258,7 +257,6 @@ public: break; case EVENT_SPELL_FIRE_NOVA: me->CastSpell(me, SPELL_FIRE_NOVA, true); - events.PopEvent(); break; } @@ -321,7 +319,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_SHADOW_BOLT: me->CastSpell(me->GetVictim(), IsHeroic() ? SPELL_SHADOW_BOLT_H : SPELL_SHADOW_BOLT, false); diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp index b1444272e..6febb914d 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp @@ -94,7 +94,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_SPELL_ACID: me->CastSpell(me->GetVictim(), SPELL_ACID_SPRAY, false); diff --git a/src/server/scripts/Pet/pet_mage.cpp b/src/server/scripts/Pet/pet_mage.cpp index b1c36902d..1df774172 100644 --- a/src/server/scripts/Pet/pet_mage.cpp +++ b/src/server/scripts/Pet/pet_mage.cpp @@ -203,7 +203,7 @@ public: if (me->HasUnitState(UNIT_STATE_CASTING)) return; - if (uint32 spellId = events.GetEvent()) + if (uint32 spellId = events.ExecuteEvent()) { events.RescheduleEvent(spellId, spellId == 59637 ? 6500 : 2500); me->CastSpell(me->GetVictim(), spellId, false); diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index 0790d50a0..dc4253ad6 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -104,7 +104,7 @@ public: void UpdateAI(uint32 diff) override { events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_CLEARWATER_ANNOUNCE: { @@ -130,7 +130,6 @@ public: if (!finished) { me->DespawnOrUnsummon(); - events.PopEvent(); break; } } @@ -249,7 +248,7 @@ public: void UpdateAI(uint32 diff) override { events.Update(diff); - switch (events.GetEvent()) + switch (events.ExecuteEvent()) { case EVENT_RIGGLE_ANNOUNCE: { @@ -269,7 +268,6 @@ public: if (!finished) { me->DespawnOrUnsummon(); - events.PopEvent(); break; } }