aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-11-25 13:39:25 +0100
committerShauren <shauren.trinity@gmail.com>2025-11-25 13:39:25 +0100
commit645da5a3f9baf6c8f8d106f2c975686f2f90f62b (patch)
tree221b563e9af2742435b223ea54e1246e6112a774 /src/server/game
parent95ca7148246ab28d9b860cc20443121eb3ca499f (diff)
Core/Movement: Remove deprecated jump functions and update SAI scripts using them
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp13
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.h6
-rw-r--r--src/server/game/Movement/MotionMaster.cpp82
-rw-r--r--src/server/game/Movement/MotionMaster.h6
4 files changed, 7 insertions, 100 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index 1f25f2d2d6b..28ee26256ed 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -1923,15 +1923,10 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
if (waitEvent)
actionResultSetter = Scripting::v2::ActionResult<MovementStopReason>::GetResultSetter(waitEvent);
- if (e.action.jump.Gravity || e.action.jump.UseDefaultGravity)
- {
- float gravity = e.action.jump.UseDefaultGravity ? Movement::gravity : e.action.jump.Gravity;
- me->GetMotionMaster()->MoveJumpWithGravity_OLD_DEPRECATED(pos, float(e.action.jump.SpeedXY), gravity, e.action.jump.PointId,
- {}, false, nullptr, nullptr, std::move(actionResultSetter));
- }
- else
- me->GetMotionMaster()->MoveJump_OLD_DEPRECATED(pos, float(e.action.jump.SpeedXY), float(e.action.jump.SpeedZ), e.action.jump.PointId,
- {}, false, nullptr, nullptr, std::move(actionResultSetter));
+ me->GetMotionMaster()->MoveJump(e.action.jump.PointId, pos, float(e.action.jump.SpeedXY),
+ e.action.jump.minHeight ? Optional<float>(e.action.jump.minHeight) : std::nullopt,
+ e.action.jump.maxHeight ? Optional<float>(e.action.jump.maxHeight) : std::nullopt,
+ {}, false, false, {}, nullptr, nullptr, std::move(actionResultSetter));
mTimedActionWaitEvent = std::move(waitEvent);
break;
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
index a9127a33f8a..65098245dbd 100644
--- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h
+++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
@@ -1005,9 +1005,9 @@ struct SmartAction
struct
{
uint32 SpeedXY;
- uint32 SpeedZ;
- uint32 Gravity;
- SAIBool UseDefaultGravity;
+ uint32 minHeight;
+ uint32 maxHeight;
+ uint32 unused;
uint32 PointId;
uint32 ContactDistance;
} jump;
diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp
index be58d1a3828..af61fd0a27f 100644
--- a/src/server/game/Movement/MotionMaster.cpp
+++ b/src/server/game/Movement/MotionMaster.cpp
@@ -859,47 +859,6 @@ void MotionMaster::MoveKnockbackFrom(Position const& origin, float speedXY, floa
Add(movement);
}
-void MotionMaster::MoveJump_OLD_DEPRECATED(Position const& pos, float speedXY, float speedZ, uint32 id /*= EVENT_JUMP*/, MovementFacingTarget const& facing /*= {}*/,
- bool orientationFixed /*= false*/, JumpArrivalCastArgs const* arrivalCast /*= nullptr*/, Movement::SpellEffectExtraData const* spellEffectExtraData /*= nullptr*/,
- Optional<Scripting::v2::ActionResultSetter<MovementStopReason>>&& scriptResult /*= {}*/)
-{
- TC_LOG_DEBUG("movement.motionmaster", "MotionMaster::MoveJump: '{}', jumps to point Id: {} ({})", _owner->GetGUID(), id, pos.ToString());
- if (speedXY < 0.01f)
- {
- if (scriptResult)
- scriptResult->SetResult(MovementStopReason::Interrupted);
- return;
- }
-
- float moveTimeHalf = speedZ / Movement::gravity;
- float max_height = -Movement::computeFallElevation(moveTimeHalf, false, -speedZ);
-
- std::function<void(Movement::MoveSplineInit&)> initializer = [=, effect = (spellEffectExtraData ? Optional<Movement::SpellEffectExtraData>(*spellEffectExtraData) : Optional<Movement::SpellEffectExtraData>())](Movement::MoveSplineInit& init)
- {
- init.MoveTo(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), false);
- init.SetParabolic(max_height, 0);
- init.SetVelocity(speedXY);
- std::visit(Movement::MoveSplineInitFacingVisitor(init), facing);
- init.SetJumpOrientationFixed(orientationFixed);
- if (effect)
- init.SetSpellEffectExtraData(*effect);
- };
-
- uint32 arrivalSpellId = 0;
- ObjectGuid arrivalSpellTargetGuid;
- if (arrivalCast)
- {
- arrivalSpellId = arrivalCast->SpellId;
- arrivalSpellTargetGuid = arrivalCast->Target;
- }
-
- GenericMovementGenerator* movement = new GenericMovementGenerator(std::move(initializer), EFFECT_MOTION_TYPE, id,
- { .ArrivalSpellId = arrivalSpellId, .ArrivalSpellTarget = arrivalSpellTargetGuid, .ScriptResult = std::move(scriptResult) });
- movement->Priority = MOTION_PRIORITY_HIGHEST;
- movement->BaseUnitState = UNIT_STATE_JUMPING;
- Add(movement);
-}
-
void MotionMaster::MoveJump(uint32 id, Position const& pos, std::variant<std::monostate, float, Milliseconds> speedOrTime /*= {}*/,
Optional<float> minHeight /*= {}*/, Optional<float> maxHeight /*= {}*/,
MovementFacingTarget const& facing /*= {}*/, bool orientationFixed, bool unlimitedSpeed /*= false*/, Optional<float> speedMultiplier /*= {}*/,
@@ -976,47 +935,6 @@ void MotionMaster::MoveJump(uint32 id, Position const& pos, std::variant<std::mo
Add(movement);
}
-void MotionMaster::MoveJumpWithGravity_OLD_DEPRECATED(Position const& pos, float speedXY, float gravity, uint32 id/* = EVENT_JUMP*/, MovementFacingTarget const& facing/* = {}*/,
- bool orientationFixed /*= false*/, JumpArrivalCastArgs const* arrivalCast /*= nullptr*/, Movement::SpellEffectExtraData const* spellEffectExtraData /*= nullptr*/,
- Optional<Scripting::v2::ActionResultSetter<MovementStopReason>>&& scriptResult /*= {}*/)
-{
- TC_LOG_DEBUG("movement.motionmaster", "MotionMaster::MoveJumpWithGravity: '{}', jumps to point Id: {} ({})", _owner->GetGUID(), id, pos.ToString());
- if (speedXY < 0.01f)
- {
- if (scriptResult)
- scriptResult->SetResult(MovementStopReason::Interrupted);
- return;
- }
-
- std::function<void(Movement::MoveSplineInit&)> initializer = [=, effect = (spellEffectExtraData ? Optional<Movement::SpellEffectExtraData>(*spellEffectExtraData) : Optional<Movement::SpellEffectExtraData>())](Movement::MoveSplineInit& init)
- {
- init.MoveTo(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), false);
- init.SetParabolicVerticalAcceleration(gravity, 0);
- init.SetUncompressed();
- init.SetVelocity(speedXY);
- init.SetUnlimitedSpeed();
- std::visit(Movement::MoveSplineInitFacingVisitor(init), facing);
- init.SetJumpOrientationFixed(orientationFixed);
- if (effect)
- init.SetSpellEffectExtraData(*effect);
- };
-
- uint32 arrivalSpellId = 0;
- ObjectGuid arrivalSpellTargetGuid;
- if (arrivalCast)
- {
- arrivalSpellId = arrivalCast->SpellId;
- arrivalSpellTargetGuid = arrivalCast->Target;
- }
-
- GenericMovementGenerator* movement = new GenericMovementGenerator(std::move(initializer), EFFECT_MOTION_TYPE, id,
- { .ArrivalSpellId = arrivalSpellId, .ArrivalSpellTarget = arrivalSpellTargetGuid, .ScriptResult = std::move(scriptResult) });
- movement->Priority = MOTION_PRIORITY_HIGHEST;
- movement->BaseUnitState = UNIT_STATE_JUMPING;
- movement->AddFlag(MOVEMENTGENERATOR_FLAG_PERSIST_ON_DEATH);
- Add(movement);
-}
-
void MotionMaster::MoveCirclePath(float x, float y, float z, float radius, bool clockwise, uint8 stepCount,
Optional<Milliseconds> duration /*= {}*/, Optional<float> speed /*= {}*/,
MovementWalkRunSpeedSelectionMode speedSelectionMode /*= MovementWalkRunSpeedSelectionMode::Default*/,
diff --git a/src/server/game/Movement/MotionMaster.h b/src/server/game/Movement/MotionMaster.h
index dcd053a9a94..1126b6a5cab 100644
--- a/src/server/game/Movement/MotionMaster.h
+++ b/src/server/game/Movement/MotionMaster.h
@@ -191,17 +191,11 @@ class TC_GAME_API MotionMaster
void MoveCharge(float x, float y, float z, float speed = SPEED_CHARGE, uint32 id = EVENT_CHARGE, bool generatePath = false, Unit const* target = nullptr, Movement::SpellEffectExtraData const* spellEffectExtraData = nullptr);
void MoveCharge(PathGenerator const& path, float speed = SPEED_CHARGE, Unit const* target = nullptr, Movement::SpellEffectExtraData const* spellEffectExtraData = nullptr);
void MoveKnockbackFrom(Position const& origin, float speedXY, float speedZ, float angle = M_PI, Movement::SpellEffectExtraData const* spellEffectExtraData = nullptr);
- void MoveJump_OLD_DEPRECATED(Position const& pos, float speedXY, float speedZ, uint32 id = EVENT_JUMP, MovementFacingTarget const& facing = {},
- bool orientationFixed = false, JumpArrivalCastArgs const* arrivalCast = nullptr, Movement::SpellEffectExtraData const* spellEffectExtraData = nullptr,
- Optional<Scripting::v2::ActionResultSetter<MovementStopReason>>&& scriptResult = {});
void MoveJump(uint32 id, Position const& pos, std::variant<std::monostate, float, Milliseconds> speedOrTime = {},
Optional<float> minHeight = {}, Optional<float> maxHeight = {},
MovementFacingTarget const& facing = {}, bool orientationFixed = false, bool unlimitedSpeed = false, Optional<float> speedMultiplier = {},
JumpArrivalCastArgs const* arrivalCast = nullptr, Movement::SpellEffectExtraData const* spellEffectExtraData = nullptr,
Optional<Scripting::v2::ActionResultSetter<MovementStopReason>>&& scriptResult = {});
- void MoveJumpWithGravity_OLD_DEPRECATED(Position const& pos, float speedXY, float gravity, uint32 id = EVENT_JUMP, MovementFacingTarget const& facing = {},
- bool orientationFixed = false, JumpArrivalCastArgs const* arrivalCast = nullptr, Movement::SpellEffectExtraData const* spellEffectExtraData = nullptr,
- Optional<Scripting::v2::ActionResultSetter<MovementStopReason>>&& scriptResult = {});
void MoveCirclePath(float x, float y, float z, float radius, bool clockwise, uint8 stepCount,
Optional<Milliseconds> duration = {}, Optional<float> speed = {},
MovementWalkRunSpeedSelectionMode speedSelectionMode = MovementWalkRunSpeedSelectionMode::Default,