mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
physics: apply server flight speed to flying mount movement
serverFlightSpeed_ (from SMSG_FORCE_FLIGHT_SPEED_CHANGE) was stored but never synced to CameraController. Add getServerFlightSpeed() accessor, flightSpeedOverride_ field, and use it in the flying physics path so normal vs epic flying mounts actually move at their correct speeds.
This commit is contained in:
parent
27d18b2189
commit
a1ee9827d8
4 changed files with 8 additions and 1 deletions
|
|
@ -1011,6 +1011,7 @@ void Application::update(float deltaTime) {
|
|||
renderer->getCameraController()->setRunSpeedOverride(gameHandler->getServerRunSpeed());
|
||||
renderer->getCameraController()->setWalkSpeedOverride(gameHandler->getServerWalkSpeed());
|
||||
renderer->getCameraController()->setSwimSpeedOverride(gameHandler->getServerSwimSpeed());
|
||||
renderer->getCameraController()->setFlightSpeedOverride(gameHandler->getServerFlightSpeed());
|
||||
renderer->getCameraController()->setMovementRooted(gameHandler->isPlayerRooted());
|
||||
renderer->getCameraController()->setGravityDisabled(gameHandler->isGravityDisabled());
|
||||
renderer->getCameraController()->setFeatherFallActive(gameHandler->isFeatherFalling());
|
||||
|
|
|
|||
|
|
@ -714,7 +714,10 @@ void CameraController::update(float deltaTime) {
|
|||
if (flyDescend) flyMove.z -= 1.0f;
|
||||
if (glm::length(flyMove) > 0.001f) {
|
||||
flyMove = glm::normalize(flyMove);
|
||||
targetPos += flyMove * speed * physicsDeltaTime;
|
||||
float flySpeed = (flightSpeedOverride_ > 0.0f && flightSpeedOverride_ < 200.0f
|
||||
&& !std::isnan(flightSpeedOverride_))
|
||||
? flightSpeedOverride_ : speed;
|
||||
targetPos += flyMove * flySpeed * physicsDeltaTime;
|
||||
}
|
||||
targetPos.z += verticalVelocity * physicsDeltaTime;
|
||||
// Skip all ground physics — go straight to collision/WMO sections
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue