diff options
author | Shauren <shauren.trinity@gmail.com> | 2024-04-23 11:11:32 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2024-04-23 11:11:32 +0200 |
commit | 3af5cafec782ab4d5d5d8478927caae0e6258174 (patch) | |
tree | d4b55d005633788a750efbf1dc296eb9a4a6f0f8 /src | |
parent | a02804fa0246851436bb195d8d06d991de523bb0 (diff) |
Core/Movement: Change default spline flags - Steering replaces SmoothGroundPath
Diffstat (limited to 'src')
3 files changed, 4 insertions, 7 deletions
diff --git a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp index 7f98b77d83a..7b86af01cbf 100644 --- a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp @@ -517,10 +517,6 @@ void WaypointMovementGenerator<Creature>::StartMove(Creature* owner, bool relaun Movement::MoveSplineInit init(owner); - // because steering flag can cause position on client to not be perfectly accurate, dont do it in combat - if (!owner->IsInCombat()) - init.SetSteering(); - //! If creature is on transport, we assume waypoints set in DB are already transport offsets if (transportPath) init.DisableTransportPathTransformations(); @@ -576,6 +572,7 @@ void WaypointMovementGenerator<Creature>::StartMove(Creature* owner, bool relaun if (!IsExactSplinePath() && duration > 2 * SEND_NEXT_POINT_EARLY_DELTA && !lastWaypointForSegment->Delay + && path->Nodes.size() > 2 // don't cut movement short at ends of path if its not a looping path or if it can be traversed backwards && ((_currentNode != 0 && _currentNode != path->Nodes.size() - 1) || (!IsFollowingPathBackwardsFromEndToStart() && _repeating))) duration -= SEND_NEXT_POINT_EARLY_DELTA; diff --git a/src/server/game/Movement/Spline/MoveSplineFlag.h b/src/server/game/Movement/Spline/MoveSplineFlag.h index 0434657df25..b44ac9d0adc 100644 --- a/src/server/game/Movement/Spline/MoveSplineFlag.h +++ b/src/server/game/Movement/Spline/MoveSplineFlag.h @@ -66,7 +66,7 @@ namespace Movement Mask_No_Monster_Move = Done, // SKIP // Unused, not suported flags Mask_Unused = No_Spline | Enter_Cycle | Frozen | Unknown_0x8 | Unknown_0x100 | Unknown_0x20000 | Unknown_0x40000 - | Unknown_0x800000 | FastSteering | FadeObject | UnlimitedSpeed | Unknown_0x40000000 | Unknown_0x80000000 // SKIP + | Unknown_0x800000 | FadeObject | UnlimitedSpeed | Unknown_0x40000000 | Unknown_0x80000000 // SKIP }; DEFINE_ENUM_FLAG(MoveSplineFlagEnum); diff --git a/src/server/game/Movement/Spline/MoveSplineInit.cpp b/src/server/game/Movement/Spline/MoveSplineInit.cpp index decaf4fb4b8..6601e4d45a7 100644 --- a/src/server/game/Movement/Spline/MoveSplineInit.cpp +++ b/src/server/game/Movement/Spline/MoveSplineInit.cpp @@ -204,8 +204,8 @@ namespace Movement args.walk = unit->HasUnitMovementFlag(MOVEMENTFLAG_WALKING); args.flags.CanSwim = unit->CanSwim(); args.flags.Flying = unit->HasUnitMovementFlag(MovementFlags(MOVEMENTFLAG_CAN_FLY | MOVEMENTFLAG_DISABLE_GRAVITY)); - args.flags.Steering = unit->HasNpcFlag2(UNIT_NPC_FLAG_2_STEERING); - args.flags.SmoothGroundPath = !args.flags.Flying && !args.flags.Steering; // enabled by default, CatmullRom mode or client config "pathSmoothing" will disable this + args.flags.FastSteering = true; + args.flags.Steering = unit->HasNpcFlag2(UNIT_NPC_FLAG_2_STEERING) || !unit->IsInCombat(); } MoveSplineInit::~MoveSplineInit() = default; |