aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Northrend
diff options
context:
space:
mode:
authorccrs <ccrs@users.noreply.github.com>2017-08-12 01:40:25 +0200
committerShauren <shauren.trinity@gmail.com>2020-08-23 00:45:46 +0200
commit97585597f0b1aff93873fe4d757556731bc0c1b2 (patch)
treefda9b11c6e7abb9e4d3a6108a09def640c3eb2af /src/server/scripts/Northrend
parenta86870622dd02921c4d2e32983a5a98ee91e5263 (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')
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp8
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp8
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp8
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp8
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp11
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.cpp10
-rw-r--r--src/server/scripts/Northrend/zone_borean_tundra.cpp28
-rw-r--r--src/server/scripts/Northrend/zone_grizzly_hills.cpp6
-rw-r--r--src/server/scripts/Northrend/zone_howling_fjord.cpp16
-rw-r--r--src/server/scripts/Northrend/zone_sholazar_basin.cpp8
-rw-r--r--src/server/scripts/Northrend/zone_storm_peaks.cpp15
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;