diff options
| author | ccrs <ccrs@users.noreply.github.com> | 2017-08-12 01:40:25 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2020-08-23 00:45:46 +0200 |
| commit | 97585597f0b1aff93873fe4d757556731bc0c1b2 (patch) | |
| tree | fda9b11c6e7abb9e4d3a6108a09def640c3eb2af /src/server/scripts/Northrend | |
| parent | a86870622dd02921c4d2e32983a5a98ee91e5263 (diff) | |
Core/Movement: waypoint movement (#20121)
Following the work done in #19361 this is the cleanup and improvement of the related logic of waypoint management.
Ref 28050f3 #18020
(taking the good parts and ignoring the incomplete work)
(cherry picked from commit 7fff83d67526efff63867d41b9e036a19a9287b3)
Diffstat (limited to 'src/server/scripts/Northrend')
12 files changed, 62 insertions, 70 deletions
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 a48ae6e5890..aa940b3fd62 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp @@ -505,9 +505,9 @@ public: npc_argent_soldier() : CreatureScript("npc_argent_soldier") { } // THIS AI NEEDS MORE IMPROVEMENTS - struct npc_argent_soldierAI : public npc_escortAI + struct npc_argent_soldierAI : public EscortAI { - npc_argent_soldierAI(Creature* creature) : npc_escortAI(creature) + npc_argent_soldierAI(Creature* creature) : EscortAI(creature) { instance = creature->GetInstanceScript(); me->SetReactState(REACT_DEFENSIVE); @@ -519,7 +519,7 @@ public: uint8 uiWaypoint; - void WaypointReached(uint32 waypointId) override + void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { if (waypointId == 0) { @@ -592,7 +592,7 @@ public: void UpdateAI(uint32 uiDiff) override { - npc_escortAI::UpdateAI(uiDiff); + EscortAI::UpdateAI(uiDiff); if (!UpdateVictim()) return; 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 c343c997196..fe048f21934 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp @@ -354,18 +354,16 @@ class npc_black_knight_skeletal_gryphon : public CreatureScript public: npc_black_knight_skeletal_gryphon() : CreatureScript("npc_black_knight_skeletal_gryphon") { } - struct npc_black_knight_skeletal_gryphonAI : public npc_escortAI + struct npc_black_knight_skeletal_gryphonAI : public EscortAI { - npc_black_knight_skeletal_gryphonAI(Creature* creature) : npc_escortAI(creature) + npc_black_knight_skeletal_gryphonAI(Creature* creature) : EscortAI(creature) { Start(false, true); } - void WaypointReached(uint32 /*waypointId*/) override { } - void UpdateAI(uint32 uiDiff) override { - npc_escortAI::UpdateAI(uiDiff); + EscortAI::UpdateAI(uiDiff); UpdateVictim(); } 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 21de4505ed9..f5aef90a1ae 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp @@ -151,9 +151,9 @@ class generic_vehicleAI_toc5 : public CreatureScript public: generic_vehicleAI_toc5() : CreatureScript("generic_vehicleAI_toc5") { } - struct generic_vehicleAI_toc5AI : public npc_escortAI + struct generic_vehicleAI_toc5AI : public EscortAI { - generic_vehicleAI_toc5AI(Creature* creature) : npc_escortAI(creature) + generic_vehicleAI_toc5AI(Creature* creature) : EscortAI(creature) { Initialize(); SetDespawnAtEnd(false); @@ -211,7 +211,7 @@ public: Start(false, true); } - void WaypointReached(uint32 waypointId) override + void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { switch (waypointId) { @@ -238,7 +238,7 @@ public: void UpdateAI(uint32 uiDiff) override { - npc_escortAI::UpdateAI(uiDiff); + EscortAI::UpdateAI(uiDiff); if (!UpdateVictim()) return; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp index fc2afe45817..882bf88c363 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp @@ -959,9 +959,9 @@ class npc_crok_scourgebane : public CreatureScript public: npc_crok_scourgebane() : CreatureScript("npc_crok_scourgebane") { } - struct npc_crok_scourgebaneAI : public npc_escortAI + struct npc_crok_scourgebaneAI : public EscortAI { - npc_crok_scourgebaneAI(Creature* creature) : npc_escortAI(creature), + npc_crok_scourgebaneAI(Creature* creature) : EscortAI(creature), _instance(creature->GetInstanceScript()), _respawnTime(creature->GetRespawnDelay()), _corpseDelay(creature->GetCorpseDelay()) { @@ -1040,7 +1040,7 @@ class npc_crok_scourgebane : public CreatureScript } } - void WaypointReached(uint32 waypointId) override + void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { switch (waypointId) { @@ -1071,7 +1071,7 @@ class npc_crok_scourgebane : public CreatureScript } } - void WaypointStart(uint32 waypointId) override + void WaypointStarted(uint32 waypointId, uint32 /*pathId*/) override { _currentWPid = waypointId; switch (waypointId) diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp index f69c1f83b7c..dce0790d997 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp @@ -271,9 +271,9 @@ class npc_brann_hos : public CreatureScript public: npc_brann_hos() : CreatureScript("npc_brann_hos") { } - struct npc_brann_hosAI : public npc_escortAI + struct npc_brann_hosAI : public EscortAI { - npc_brann_hosAI(Creature* creature) : npc_escortAI(creature) + npc_brann_hosAI(Creature* creature) : EscortAI(creature) { Initialize(); instance = creature->GetInstanceScript(); @@ -326,7 +326,7 @@ public: lDwarfGUIDList.clear(); } - void WaypointReached(uint32 waypointId) override + void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { switch (waypointId) { 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 fad51515ba4..92c0ffeac4c 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -975,9 +975,9 @@ class npc_mimirons_inferno : public CreatureScript public: npc_mimirons_inferno() : CreatureScript("npc_mimirons_inferno") { } - struct npc_mimirons_infernoAI : public npc_escortAI + struct npc_mimirons_infernoAI : public EscortAI { - npc_mimirons_infernoAI(Creature* creature) : npc_escortAI(creature) + npc_mimirons_infernoAI(Creature* creature) : EscortAI(creature) { Initialize(); me->AddUnitFlag(UnitFlags(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE)); @@ -990,11 +990,6 @@ public: infernoTimer = 2000; } - void WaypointReached(uint32 /*waypointId*/) override - { - - } - void Reset() override { Initialize(); @@ -1004,7 +999,7 @@ public: void UpdateAI(uint32 diff) override { - npc_escortAI::UpdateAI(diff); + EscortAI::UpdateAI(diff); if (!HasEscortState(STATE_ESCORT_ESCORTING)) Start(false, true, ObjectGuid::Empty, nullptr, false, true); diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp index bc655b752e2..5a83845fbe3 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp @@ -821,9 +821,9 @@ class npc_violet_hold_teleportation_portal_intro : public CreatureScript } }; -struct violet_hold_trashAI : public npc_escortAI +struct violet_hold_trashAI : public EscortAI { - violet_hold_trashAI(Creature* creature) : npc_escortAI(creature) + violet_hold_trashAI(Creature* creature) : EscortAI(creature) { _instance = creature->GetInstanceScript(); @@ -899,7 +899,7 @@ struct violet_hold_trashAI : public npc_escortAI } } - void WaypointReached(uint32 waypointId) override + void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { if (waypointId == _lastWaypointId) CreatureStartAttackDoor(); @@ -907,7 +907,7 @@ struct violet_hold_trashAI : public npc_escortAI void EnterCombat(Unit* who) override { - npc_escortAI::EnterCombat(who); + EscortAI::EnterCombat(who); ScheduledTasks(); } @@ -920,7 +920,7 @@ struct violet_hold_trashAI : public npc_escortAI return; _scheduler.Update(diff, - std::bind(&npc_escortAI::DoMeleeAttackIfReady, this)); + std::bind(&EscortAI::DoMeleeAttackIfReady, this)); } virtual void ScheduledTasks() { } diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp index baadf2361a4..7901c1fe6e5 100644 --- a/src/server/scripts/Northrend/zone_borean_tundra.cpp +++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp @@ -568,9 +568,9 @@ class npc_lurgglbr : public CreatureScript public: npc_lurgglbr() : CreatureScript("npc_lurgglbr") { } - struct npc_lurgglbrAI : public npc_escortAI + struct npc_lurgglbrAI : public EscortAI { - npc_lurgglbrAI(Creature* creature) : npc_escortAI(creature) + npc_lurgglbrAI(Creature* creature) : EscortAI(creature) { Initialize(); } @@ -590,7 +590,7 @@ public: Initialize(); } - void WaypointReached(uint32 waypointId) override + void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { switch (waypointId) { @@ -656,7 +656,7 @@ public: } } else IntroTimer -= diff; } - npc_escortAI::UpdateAI(diff); + EscortAI::UpdateAI(diff); if (!UpdateVictim()) return; @@ -791,9 +791,9 @@ class npc_thassarian : public CreatureScript public: npc_thassarian() : CreatureScript("npc_thassarian") { } - struct npc_thassarianAI : public npc_escortAI + struct npc_thassarianAI : public EscortAI { - npc_thassarianAI(Creature* creature) : npc_escortAI(creature) + npc_thassarianAI(Creature* creature) : EscortAI(creature) { Initialize(); } @@ -835,7 +835,7 @@ public: Initialize(); } - void WaypointReached(uint32 waypointId) override + void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { Player* player = GetPlayerForEscort(); if (!player) @@ -870,7 +870,7 @@ public: void UpdateAI(uint32 diff) override { - npc_escortAI::UpdateAI(diff); + EscortAI::UpdateAI(diff); if (arthasInPosition && talbotInPosition) { @@ -1635,9 +1635,9 @@ class npc_mootoo_the_younger : public CreatureScript public: npc_mootoo_the_younger() : CreatureScript("npc_mootoo_the_younger") { } - struct npc_mootoo_the_youngerAI : public npc_escortAI + struct npc_mootoo_the_youngerAI : public EscortAI { - npc_mootoo_the_youngerAI(Creature* creature) : npc_escortAI(creature) { } + npc_mootoo_the_youngerAI(Creature* creature) : EscortAI(creature) { } void Reset() override { @@ -1650,7 +1650,7 @@ public: player->FailQuest(QUEST_ESCAPING_THE_MIST); } - void WaypointReached(uint32 waypointId) override + void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { Player* player = GetPlayerForEscort(); if (!player) @@ -1724,9 +1724,9 @@ class npc_bonker_togglevolt : public CreatureScript public: npc_bonker_togglevolt() : CreatureScript("npc_bonker_togglevolt") { } - struct npc_bonker_togglevoltAI : public npc_escortAI + struct npc_bonker_togglevoltAI : public EscortAI { - npc_bonker_togglevoltAI(Creature* creature) : npc_escortAI(creature) + npc_bonker_togglevoltAI(Creature* creature) : EscortAI(creature) { Initialize(); } @@ -1764,7 +1764,7 @@ public: else Bonker_agro=0; } - void WaypointReached(uint32 waypointId) override + void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { Player* player = GetPlayerForEscort(); if (!player) diff --git a/src/server/scripts/Northrend/zone_grizzly_hills.cpp b/src/server/scripts/Northrend/zone_grizzly_hills.cpp index 716b2a2e094..4d4f6d74cc3 100644 --- a/src/server/scripts/Northrend/zone_grizzly_hills.cpp +++ b/src/server/scripts/Northrend/zone_grizzly_hills.cpp @@ -62,9 +62,9 @@ class npc_emily : public CreatureScript public: npc_emily() : CreatureScript("npc_emily") { } - struct npc_emilyAI : public npc_escortAI + struct npc_emilyAI : public EscortAI { - npc_emilyAI(Creature* creature) : npc_escortAI(creature) { } + npc_emilyAI(Creature* creature) : EscortAI(creature) { } void JustSummoned(Creature* summoned) override { @@ -74,7 +74,7 @@ public: summoned->AI()->AttackStart(me->GetVictim()); } - void WaypointReached(uint32 waypointId) override + void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { Player* player = GetPlayerForEscort(); if (!player) diff --git a/src/server/scripts/Northrend/zone_howling_fjord.cpp b/src/server/scripts/Northrend/zone_howling_fjord.cpp index 6c51cfcdf15..83ef9f8e355 100644 --- a/src/server/scripts/Northrend/zone_howling_fjord.cpp +++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp @@ -80,9 +80,9 @@ class npc_apothecary_hanes : public CreatureScript public: npc_apothecary_hanes() : CreatureScript("npc_apothecary_hanes") { } - struct npc_Apothecary_HanesAI : public npc_escortAI + struct npc_Apothecary_HanesAI : public EscortAI { - npc_Apothecary_HanesAI(Creature* creature) : npc_escortAI(creature) + npc_Apothecary_HanesAI(Creature* creature) : EscortAI(creature) { Initialize(); } @@ -133,7 +133,7 @@ public: if (GetAttack() && UpdateVictim()) DoMeleeAttackIfReady(); - npc_escortAI::UpdateAI(diff); + EscortAI::UpdateAI(diff); if (me->IsInCombat()) return; @@ -156,7 +156,7 @@ public: events.Reset(); me->SetFaction(FACTION_ESCORTEE_H_PASSIVE); me->SetReactState(REACT_AGGRESSIVE); - ENSURE_AI(npc_escortAI, (me->AI()))->Start(true, true, _player); + ENSURE_AI(EscortAI, (me->AI()))->Start(true, true, _player); break; case EVENT_TALK_1: if (Player* player = ObjectAccessor::GetPlayer(*me, _player)) @@ -202,7 +202,7 @@ public: } } - void WaypointReached(uint32 waypointId) override + void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { if (!GetPlayerForEscort()) return; @@ -271,9 +271,9 @@ class npc_plaguehound_tracker : public CreatureScript public: npc_plaguehound_tracker() : CreatureScript("npc_plaguehound_tracker") { } - struct npc_plaguehound_trackerAI : public npc_escortAI + struct npc_plaguehound_trackerAI : public EscortAI { - npc_plaguehound_trackerAI(Creature* creature) : npc_escortAI(creature) { } + npc_plaguehound_trackerAI(Creature* creature) : EscortAI(creature) { } void Reset() override { @@ -291,7 +291,7 @@ public: Start(false, false, summonerGUID); } - void WaypointReached(uint32 waypointId) override + void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { if (waypointId != 26) return; diff --git a/src/server/scripts/Northrend/zone_sholazar_basin.cpp b/src/server/scripts/Northrend/zone_sholazar_basin.cpp index 5ace31b5cdd..025bfe214c2 100644 --- a/src/server/scripts/Northrend/zone_sholazar_basin.cpp +++ b/src/server/scripts/Northrend/zone_sholazar_basin.cpp @@ -253,9 +253,9 @@ class npc_engineer_helice : public CreatureScript public: npc_engineer_helice() : CreatureScript("npc_engineer_helice") { } - struct npc_engineer_heliceAI : public npc_escortAI + struct npc_engineer_heliceAI : public EscortAI { - npc_engineer_heliceAI(Creature* creature) : npc_escortAI(creature) + npc_engineer_heliceAI(Creature* creature) : EscortAI(creature) { Initialize(); } @@ -267,7 +267,7 @@ public: uint32 m_uiChatTimer; - void WaypointReached(uint32 waypointId) override + void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { Player* player = GetPlayerForEscort(); @@ -322,7 +322,7 @@ public: void UpdateAI(uint32 uiDiff) override { - npc_escortAI::UpdateAI(uiDiff); + EscortAI::UpdateAI(uiDiff); if (HasEscortState(STATE_ESCORT_ESCORTING)) { diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp index 659a071216f..bae7b81a96c 100644 --- a/src/server/scripts/Northrend/zone_storm_peaks.cpp +++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp @@ -48,11 +48,11 @@ class npc_injured_goblin : public CreatureScript public: npc_injured_goblin() : CreatureScript("npc_injured_goblin") { } - struct npc_injured_goblinAI : public npc_escortAI + struct npc_injured_goblinAI : public EscortAI { - npc_injured_goblinAI(Creature* creature) : npc_escortAI(creature) { } + npc_injured_goblinAI(Creature* creature) : EscortAI(creature) { } - void WaypointReached(uint32 waypointId) override + void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { Player* player = GetPlayerForEscort(); if (!player) @@ -82,7 +82,7 @@ public: void UpdateAI(uint32 uiDiff) override { - npc_escortAI::UpdateAI(uiDiff); + EscortAI::UpdateAI(uiDiff); if (!UpdateVictim()) return; DoMeleeAttackIfReady(); @@ -347,9 +347,9 @@ class npc_icefang : public CreatureScript public: npc_icefang() : CreatureScript("npc_icefang") { } - struct npc_icefangAI : public npc_escortAI + struct npc_icefangAI : public EscortAI { - npc_icefangAI(Creature* creature) : npc_escortAI(creature) { } + npc_icefangAI(Creature* creature) : EscortAI(creature) { } void AttackStart(Unit* /*who*/) override { } void EnterCombat(Unit* /*who*/) override { } @@ -364,13 +364,12 @@ public: } } - void WaypointReached(uint32 /*waypointId*/) override { } void JustDied(Unit* /*killer*/) override { } void OnCharmed(bool /*apply*/) override { } void UpdateAI(uint32 diff) override { - npc_escortAI::UpdateAI(diff); + EscortAI::UpdateAI(diff); if (!UpdateVictim()) return; |
