mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
physics: sync all server movement speeds to CameraController
Previously only run speed was synced. Now all server-driven movement speeds are forwarded to the camera controller each frame: - runSpeedOverride_: server run speed (existing) - walkSpeedOverride_: server walk speed (Ctrl key movement) - swimSpeedOverride_: swim speed (Swim Form, Engineering fins) - flightSpeedOverride_: flight speed (epic vs normal flying mounts) - runBackSpeedOverride_: back-pedal speed Each uses the server value when non-zero/sane, falling back to the hardcoded WoW default constant otherwise.
This commit is contained in:
parent
a1ee9827d8
commit
56ec49f837
4 changed files with 7 additions and 1 deletions
|
|
@ -1155,6 +1155,7 @@ public:
|
||||||
float getServerWalkSpeed() const { return serverWalkSpeed_; }
|
float getServerWalkSpeed() const { return serverWalkSpeed_; }
|
||||||
float getServerSwimSpeed() const { return serverSwimSpeed_; }
|
float getServerSwimSpeed() const { return serverSwimSpeed_; }
|
||||||
float getServerFlightSpeed() const { return serverFlightSpeed_; }
|
float getServerFlightSpeed() const { return serverFlightSpeed_; }
|
||||||
|
float getServerRunBackSpeed() const { return serverRunBackSpeed_; }
|
||||||
bool isPlayerRooted() const {
|
bool isPlayerRooted() const {
|
||||||
return (movementInfo.flags & static_cast<uint32_t>(MovementFlags::ROOT)) != 0;
|
return (movementInfo.flags & static_cast<uint32_t>(MovementFlags::ROOT)) != 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,7 @@ public:
|
||||||
void setWalkSpeedOverride(float speed) { walkSpeedOverride_ = speed; }
|
void setWalkSpeedOverride(float speed) { walkSpeedOverride_ = speed; }
|
||||||
void setSwimSpeedOverride(float speed) { swimSpeedOverride_ = speed; }
|
void setSwimSpeedOverride(float speed) { swimSpeedOverride_ = speed; }
|
||||||
void setFlightSpeedOverride(float speed) { flightSpeedOverride_ = speed; }
|
void setFlightSpeedOverride(float speed) { flightSpeedOverride_ = speed; }
|
||||||
|
void setRunBackSpeedOverride(float speed) { runBackSpeedOverride_ = speed; }
|
||||||
void setMovementRooted(bool rooted) { movementRooted_ = rooted; }
|
void setMovementRooted(bool rooted) { movementRooted_ = rooted; }
|
||||||
bool isMovementRooted() const { return movementRooted_; }
|
bool isMovementRooted() const { return movementRooted_; }
|
||||||
void setGravityDisabled(bool disabled) { gravityDisabled_ = disabled; }
|
void setGravityDisabled(bool disabled) { gravityDisabled_ = disabled; }
|
||||||
|
|
@ -280,6 +281,7 @@ private:
|
||||||
float walkSpeedOverride_ = 0.0f;
|
float walkSpeedOverride_ = 0.0f;
|
||||||
float swimSpeedOverride_ = 0.0f;
|
float swimSpeedOverride_ = 0.0f;
|
||||||
float flightSpeedOverride_ = 0.0f;
|
float flightSpeedOverride_ = 0.0f;
|
||||||
|
float runBackSpeedOverride_ = 0.0f;
|
||||||
// Server-driven root state: when true, block all horizontal movement input.
|
// Server-driven root state: when true, block all horizontal movement input.
|
||||||
bool movementRooted_ = false;
|
bool movementRooted_ = false;
|
||||||
// Server-driven gravity disable (levitate/hover): skip gravity accumulation.
|
// Server-driven gravity disable (levitate/hover): skip gravity accumulation.
|
||||||
|
|
|
||||||
|
|
@ -1012,6 +1012,7 @@ void Application::update(float deltaTime) {
|
||||||
renderer->getCameraController()->setWalkSpeedOverride(gameHandler->getServerWalkSpeed());
|
renderer->getCameraController()->setWalkSpeedOverride(gameHandler->getServerWalkSpeed());
|
||||||
renderer->getCameraController()->setSwimSpeedOverride(gameHandler->getServerSwimSpeed());
|
renderer->getCameraController()->setSwimSpeedOverride(gameHandler->getServerSwimSpeed());
|
||||||
renderer->getCameraController()->setFlightSpeedOverride(gameHandler->getServerFlightSpeed());
|
renderer->getCameraController()->setFlightSpeedOverride(gameHandler->getServerFlightSpeed());
|
||||||
|
renderer->getCameraController()->setRunBackSpeedOverride(gameHandler->getServerRunBackSpeed());
|
||||||
renderer->getCameraController()->setMovementRooted(gameHandler->isPlayerRooted());
|
renderer->getCameraController()->setMovementRooted(gameHandler->isPlayerRooted());
|
||||||
renderer->getCameraController()->setGravityDisabled(gameHandler->isGravityDisabled());
|
renderer->getCameraController()->setGravityDisabled(gameHandler->isGravityDisabled());
|
||||||
renderer->getCameraController()->setFeatherFallActive(gameHandler->isFeatherFalling());
|
renderer->getCameraController()->setFeatherFallActive(gameHandler->isFeatherFalling());
|
||||||
|
|
|
||||||
|
|
@ -318,7 +318,9 @@ void CameraController::update(float deltaTime) {
|
||||||
if (useWoWSpeed) {
|
if (useWoWSpeed) {
|
||||||
// Movement speeds (WoW-like: Ctrl walk, default run, backpedal slower)
|
// Movement speeds (WoW-like: Ctrl walk, default run, backpedal slower)
|
||||||
if (nowBackward && !nowForward) {
|
if (nowBackward && !nowForward) {
|
||||||
speed = WOW_BACK_SPEED;
|
speed = (runBackSpeedOverride_ > 0.0f && runBackSpeedOverride_ < 100.0f
|
||||||
|
&& !std::isnan(runBackSpeedOverride_))
|
||||||
|
? runBackSpeedOverride_ : WOW_BACK_SPEED;
|
||||||
} else if (ctrlDown) {
|
} else if (ctrlDown) {
|
||||||
speed = (walkSpeedOverride_ > 0.0f && walkSpeedOverride_ < 100.0f && !std::isnan(walkSpeedOverride_))
|
speed = (walkSpeedOverride_ > 0.0f && walkSpeedOverride_ < 100.0f && !std::isnan(walkSpeedOverride_))
|
||||||
? walkSpeedOverride_ : WOW_WALK_SPEED;
|
? walkSpeedOverride_ : WOW_WALK_SPEED;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue