aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-11-10 19:55:29 +0100
committerShauren <shauren.trinity@gmail.com>2025-11-10 19:55:29 +0100
commitc24dcf62acd80519360943f606cfc0986a0507f1 (patch)
tree2d31f565fd16853967a6df8aca533b7b9da419b7 /src/server/scripts
parentff662f4d0738733af1541c23f2c8ace0f7672218 (diff)
Core/Movement: Use std::span argument instead of std::vector in MoveSplineInit::MovebyPath to avoid having to construct temporary containers
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp6
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp6
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp12
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp12
5 files changed, 12 insertions, 30 deletions
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index ccd5dbe4b7d..5e2fd5062f2 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -429,8 +429,7 @@ enum EyeOfAcherusMisc
POINT_NEW_AVALON = 1
};
-static constexpr uint8 const EyeOfAcherusPathSize = 4;
-G3D::Vector3 const EyeOfAcherusPath[EyeOfAcherusPathSize] =
+G3D::Vector3 const EyeOfAcherusPath[] =
{
{ 2361.21f, -5660.45f, 496.744f },
{ 2341.571f, -5672.797f, 538.3942f },
@@ -486,8 +485,7 @@ struct npc_eye_of_acherus : public ScriptedAI
{
std::function<void(Movement::MoveSplineInit&)> initializer = [=, me = me](Movement::MoveSplineInit& init)
{
- Movement::PointsArray path(EyeOfAcherusPath, EyeOfAcherusPath + EyeOfAcherusPathSize);
- init.MovebyPath(path);
+ init.MovebyPath(EyeOfAcherusPath);
init.SetFly();
if (Unit* owner = me->GetCharmerOrOwner())
init.SetVelocity(owner->GetSpeed(MOVE_RUN));
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp
index 7f5099679f1..5340ddef002 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp
@@ -502,8 +502,7 @@ static std::array<Position, NUM_POSITIONS> const ArthasPositions =
}
};
-uint32 const chromiePathSize = 3;
-G3D::Vector3 const ChromieSplinePos[chromiePathSize] =
+G3D::Vector3 const ChromieSplinePos[] =
{
{ 2320.632f, 1507.193f, 152.5081f },
{ 2319.823f, 1506.605f, 152.5081f },
@@ -1468,10 +1467,9 @@ public:
chromie->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
std::function<void(Movement::MoveSplineInit&)> initializer = [](Movement::MoveSplineInit& init)
{
- Movement::PointsArray path(ChromieSplinePos, ChromieSplinePos + chromiePathSize);
init.SetFly();
init.SetWalk(true);
- init.MovebyPath(path, 0);
+ init.MovebyPath(ChromieSplinePos);
};
chromie->GetMotionMaster()->LaunchMoveSpline(std::move(initializer), 0, MOTION_PRIORITY_NORMAL, POINT_MOTION_TYPE);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
index bb32cd14c0d..9c50461a495 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
@@ -225,8 +225,7 @@ Position const OrgrimsHammerTeleportExit = { 7.461699f, 0.158853f, 35.72989f, 0.
Position const OrgrimsHammerTeleportPortal = { 47.550990f, -0.101778f, 37.61111f, 0.0f };
Position const SkybreakerTeleportExit = { -17.55738f, -0.090421f, 21.18366f, 0.0f };
-uint32 const MuradinExitPathSize = 10;
-G3D::Vector3 const MuradinExitPath[MuradinExitPathSize] =
+G3D::Vector3 const MuradinExitPath[] =
{
{ 8.130936f, -0.2699585f, 20.31728f },
{ 6.380936f, -0.2699585f, 20.31728f },
@@ -240,8 +239,7 @@ G3D::Vector3 const MuradinExitPath[MuradinExitPathSize] =
{ -14.88477f, 25.20844f, 21.59985f },
};
-uint32 const SaurfangExitPathSize = 13;
-G3D::Vector3 const SaurfangExitPath[SaurfangExitPathSize] =
+G3D::Vector3 const SaurfangExitPath[] =
{
{ 30.43987f, 0.1475817f, 36.10674f },
{ 21.36141f, -3.056458f, 35.42970f },
@@ -935,9 +933,8 @@ struct npc_high_overlord_saurfang_igb : public ScriptedAI
{
std::function<void(Movement::MoveSplineInit&)> initializer = [](Movement::MoveSplineInit& init)
{
- Movement::PointsArray path(SaurfangExitPath, SaurfangExitPath + SaurfangExitPathSize);
init.DisableTransportPathTransformations();
- init.MovebyPath(path, 0);
+ init.MovebyPath(SaurfangExitPath);
};
me->GetMotionMaster()->LaunchMoveSpline(std::move(initializer), 0, MOTION_PRIORITY_NORMAL, POINT_MOTION_TYPE);
@@ -1192,9 +1189,8 @@ struct npc_muradin_bronzebeard_igb : public ScriptedAI
{
std::function<void(Movement::MoveSplineInit&)> initializer = [](Movement::MoveSplineInit& init)
{
- Movement::PointsArray path(MuradinExitPath, MuradinExitPath + MuradinExitPathSize);
init.DisableTransportPathTransformations();
- init.MovebyPath(path, 0);
+ init.MovebyPath(MuradinExitPath);
};
me->GetMotionMaster()->LaunchMoveSpline(std::move(initializer), 0, MOTION_PRIORITY_NORMAL, POINT_MOTION_TYPE);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
index 01bd394f43c..e89993a116c 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
@@ -271,7 +271,7 @@ constexpr uint32 SummonMinionsSpells[4] =
SPELL_TRIGGER_SUMMON_IRON_VRYKUL
};
-constexpr Position RazorscalePath[] =
+G3D::Vector3 const RazorscalePath[] =
{
{ 657.0227f, -361.1278f, 519.5406f },
{ 698.9319f, -340.9654f, 520.4857f },
@@ -329,9 +329,7 @@ struct boss_razorscale : public BossAI
{
std::function<void(Movement::MoveSplineInit&)> initializer = [](Movement::MoveSplineInit& init)
{
- Movement::PointsArray path(std::size(RazorscalePath));
- std::ranges::transform(RazorscalePath, path.begin(), PositionToVector3);
- init.MovebyPath(path, 0);
+ init.MovebyPath(RazorscalePath);
init.SetCyclic();
init.SetFly();
};
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
index 68df6132735..96729d2b71a 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
@@ -321,7 +321,7 @@ enum DisplayIds
THORIM_WEAPON_DISPLAY_ID = 45900
};
-Position const LightningOrbPath[] =
+G3D::Vector3 const LightningOrbPath[] =
{
{ 2134.889893f, -298.632996f, 438.247467f },
{ 2134.570068f, -440.317993f, 438.247467f },
@@ -332,7 +332,6 @@ Position const LightningOrbPath[] =
{ 2202.208008f, -262.939270f, 412.168976f },
{ 2182.310059f, -263.233093f, 414.739410f }
};
-std::size_t const LightningOrbPathSize = std::extent<decltype(LightningOrbPath)>::value;
// used for trash jump calculation
Position const ArenaCenter = { 2134.77f, -262.307f };
@@ -635,14 +634,7 @@ class boss_thorim : public CreatureScript
std::function<void(Movement::MoveSplineInit&)> initializer = [](Movement::MoveSplineInit& init)
{
- Movement::PointsArray path;
- path.reserve(LightningOrbPathSize);
- std::transform(std::begin(LightningOrbPath), std::end(LightningOrbPath), std::back_inserter(path), [](Position const& pos)
- {
- return G3D::Vector3(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ());
- });
-
- init.MovebyPath(path);
+ init.MovebyPath(LightningOrbPath);
};
summon->GetMotionMaster()->LaunchMoveSpline(std::move(initializer), 0, MOTION_PRIORITY_NORMAL, POINT_MOTION_TYPE);
break;