feat(Core/Movement): port smooth waypoint movement from Cataclysm Preservation Project (#25106)

Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>
Co-authored-by: Ovahlord <dreadkiller@gmx.de>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Kitzunu <Kitzunu@users.noreply.github.com>
This commit is contained in:
blinkysc
2026-03-23 08:08:14 -05:00
committed by GitHub
parent 3da6e30196
commit 4201acddd5
69 changed files with 844 additions and 386 deletions

View File

@@ -233,6 +233,7 @@ public:
zarithrian->AI()->JustSummoned(me);
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 waypointId) override
{
if (waypointId == MAX_PATH_FLAMECALLER_WAYPOINTS)

View File

@@ -519,6 +519,7 @@ public:
bCheck = false;
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 uiPoint) override
{
if (uiPoint == 1)

View File

@@ -340,6 +340,7 @@ public:
}
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 i) override
{
if (i == 12)

View File

@@ -592,6 +592,7 @@ public:
void EnterEvadeMode(EvadeReason /*why*/) override {}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 i) override
{
if (!pInstance)

View File

@@ -791,6 +791,7 @@ public:
}
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 waypointId) override
{
switch (waypointId)

View File

@@ -267,6 +267,7 @@ struct boss_bjarngrim : public npc_escortAI
m_uiStance = stance;
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 Point) override
{
if (Point == 1)

View File

@@ -312,6 +312,7 @@ public:
TalkEvent = false;
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 id) override;
void InitializeEvent();

View File

@@ -974,6 +974,7 @@ struct npc_mimirons_inferno : public npc_escortAI
void AttackStart(Unit*) override { }
void MoveInLineOfSight(Unit*) override { }
using CreatureAI::WaypointReached;
void WaypointReached(uint32 /*waypointId*/) override { }
void DoAction(int32 param) override

View File

@@ -895,6 +895,7 @@ struct boss_thorim_lightning_orb : public npc_escortAI
me->CastSpell(me, SPELL_LIGHTNING_DESTRUCTION, true);
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 /*point*/) override
{
}
@@ -960,6 +961,7 @@ struct boss_thorim_sif_blizzard : public npc_escortAI
me->CastSpell(me, SPELL_BLIZZARD, true);
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 /*point*/) override
{
}

View File

@@ -934,6 +934,7 @@ struct boss_yoggsaron_cloud : public npc_escortAI
void MoveInLineOfSight(Unit* /*who*/) override {}
void AttackStart(Unit* /*who*/) override {}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 /*point*/) override {}
void Reset() override

View File

@@ -312,6 +312,7 @@ struct violet_hold_trashAI : public npc_escortAI
CreatureStartAttackDoor();
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 id) override
{
if (PLoc < 6)
@@ -1021,6 +1022,7 @@ public:
uint32 timer;
uint8 count;
using CreatureAI::WaypointReached;
void WaypointReached(uint32 uiWPointId) override
{
if (!pInstance)

View File

@@ -377,6 +377,7 @@ public:
}
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 waypointId) override
{
switch (waypointId)
@@ -752,6 +753,7 @@ public:
player->FailQuest(QUEST_ESCAPING_THE_MIST);
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 waypointId) override
{
Player* player = GetPlayerForEscort();
@@ -849,6 +851,7 @@ public:
else Bonker_agro = 0;
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 waypointId) override
{
Player* player = GetPlayerForEscort();

View File

@@ -75,6 +75,7 @@ public:
summoned->AI()->AttackStart(me->GetVictim());
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 waypointId) override
{
Player* player = GetPlayerForEscort();

View File

@@ -126,6 +126,7 @@ public:
DoMeleeAttackIfReady();
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 waypointId) override
{
Player* player = GetPlayerForEscort();
@@ -210,6 +211,7 @@ public:
Start(false, summonerGUID);
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 waypointId) override
{
if (waypointId != 26)

View File

@@ -747,6 +747,7 @@ public:
summons.Despawn(summon);
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 pointId) override
{
switch (pointId)

View File

@@ -521,6 +521,7 @@ public:
uint32 m_uiChatTimer;
using CreatureAI::WaypointReached;
void WaypointReached(uint32 waypointId) override
{
Player* player = GetPlayerForEscort();

View File

@@ -73,6 +73,7 @@ struct npc_frosthound : public npc_escortAI
return;
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 waypointId) override
{
Player* player = GetPlayerForEscort();
@@ -568,6 +569,7 @@ public:
}
}
using CreatureAI::WaypointReached;
void WaypointReached(uint32 /*waypointId*/) override { }
void JustDied(Unit* /*killer*/) override { }
void OnCharmed(bool /*apply*/) override { }