diff options
| author | Shauren <shauren.trinity@gmail.com> | 2024-04-23 11:09:59 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2024-04-23 11:09:59 +0200 |
| commit | a02804fa0246851436bb195d8d06d991de523bb0 (patch) | |
| tree | c59f40a8d2c7188b0599f3b62b8d0634dc4fe161 /src/server/game/Server | |
| parent | 1da162d71dd0dc7540db0384e45b7aaa7e6f0d64 (diff) | |
Core/Movement: Refactor MoveSplineFlag to get rid of undefined behavior (cast in raw()) and unify enum to string formatting for it
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/MovementPackets.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp index 8545ac6e59d..895c12fb704 100644 --- a/src/server/game/Server/Packets/MovementPackets.cpp +++ b/src/server/game/Server/Packets/MovementPackets.cpp @@ -381,17 +381,17 @@ void WorldPackets::Movement::CommonMovement::WriteCreateObjectSplineDataBlock(:: if (hasSplineMove) // MovementSplineMove { - data << uint32(moveSpline.splineflags.raw()); // SplineFlags + data << uint32(moveSpline.splineflags.Raw.AsUnderlyingType()); // SplineFlags data << int32(moveSpline.timePassed()); // Elapsed data << uint32(moveSpline.Duration()); // Duration data << float(1.0f); // DurationModifier data << float(1.0f); // NextDurationModifier data.WriteBits(moveSpline.facing.type, 2); // Face - bool hasFadeObjectTime = data.WriteBit(moveSpline.splineflags.fadeObject && moveSpline.effect_start_time < moveSpline.Duration()); + bool hasFadeObjectTime = data.WriteBit(moveSpline.splineflags.FadeObject && moveSpline.effect_start_time < moveSpline.Duration()); data.WriteBits(moveSpline.getPath().size(), 16); data.WriteBit(false); // HasSplineFilter data.WriteBit(moveSpline.spell_effect_extra.has_value()); // HasSpellEffectExtraData - bool hasJumpExtraData = data.WriteBit(moveSpline.splineflags.parabolic && (!moveSpline.spell_effect_extra || moveSpline.effect_start_time)); + bool hasJumpExtraData = data.WriteBit(moveSpline.splineflags.Parabolic && (!moveSpline.spell_effect_extra || moveSpline.effect_start_time)); data.WriteBit(moveSpline.anim_tier.has_value()); // HasAnimTierTransition data.WriteBit(false); // HasUnknown901 data.FlushBits(); @@ -522,7 +522,7 @@ void WorldPackets::Movement::MonsterMove::InitializeSplineData(::Movement::MoveS WorldPackets::Movement::MovementSpline& movementSpline = SplineData.Move; ::Movement::MoveSplineFlag splineFlags = moveSpline.splineflags; - movementSpline.Flags = uint32(splineFlags & uint32(~::Movement::MoveSplineFlag::Mask_No_Monster_Move)); + movementSpline.Flags = uint32(splineFlags & ~::Movement::MoveSplineFlagEnum::Mask_No_Monster_Move); movementSpline.Face = moveSpline.facing.type; movementSpline.FaceDirection = moveSpline.facing.angle; movementSpline.FaceGUID = moveSpline.facing.target; @@ -538,14 +538,14 @@ void WorldPackets::Movement::MonsterMove::InitializeSplineData(::Movement::MoveS movementSpline.MoveTime = moveSpline.Duration(); - if (splineFlags.parabolic && (!moveSpline.spell_effect_extra || moveSpline.effect_start_time)) + if (splineFlags.Parabolic && (!moveSpline.spell_effect_extra || moveSpline.effect_start_time)) { movementSpline.JumpExtraData.emplace(); movementSpline.JumpExtraData->JumpGravity = moveSpline.vertical_acceleration; movementSpline.JumpExtraData->StartTime = moveSpline.effect_start_time; } - if (splineFlags.fadeObject) + if (splineFlags.FadeObject) movementSpline.FadeObjectTime = moveSpline.effect_start_time; if (moveSpline.spell_effect_extra) @@ -561,15 +561,15 @@ void WorldPackets::Movement::MonsterMove::InitializeSplineData(::Movement::MoveS ::Movement::Spline<int32> const& spline = moveSpline.spline; std::vector<G3D::Vector3> const& array = spline.getPoints(); - if (splineFlags & ::Movement::MoveSplineFlag::UncompressedPath) + if (splineFlags.UncompressedPath) { - uint32 count = spline.getPointCount() - (splineFlags.cyclic ? 4 : 3); + uint32 count = spline.getPointCount() - (splineFlags.Cyclic ? 4 : 3); for (uint32 i = 0; i < count; ++i) movementSpline.Points.emplace_back(array[i + 2].x, array[i + 2].y, array[i + 2].z); } else { - uint32 lastIdx = spline.getPointCount() - (splineFlags.cyclic ? 4 : 3); + uint32 lastIdx = spline.getPointCount() - (splineFlags.Cyclic ? 4 : 3); G3D::Vector3 const* realPath = &array[1]; movementSpline.Points.emplace_back(realPath[lastIdx].x, realPath[lastIdx].y, realPath[lastIdx].z); |
