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 getServerSwimSpeed() const { return serverSwimSpeed_; }
|
||||
float getServerFlightSpeed() const { return serverFlightSpeed_; }
|
||||
float getServerRunBackSpeed() const { return serverRunBackSpeed_; }
|
||||
bool isPlayerRooted() const {
|
||||
return (movementInfo.flags & static_cast<uint32_t>(MovementFlags::ROOT)) != 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,6 +95,7 @@ public:
|
|||
void setWalkSpeedOverride(float speed) { walkSpeedOverride_ = speed; }
|
||||
void setSwimSpeedOverride(float speed) { swimSpeedOverride_ = speed; }
|
||||
void setFlightSpeedOverride(float speed) { flightSpeedOverride_ = speed; }
|
||||
void setRunBackSpeedOverride(float speed) { runBackSpeedOverride_ = speed; }
|
||||
void setMovementRooted(bool rooted) { movementRooted_ = rooted; }
|
||||
bool isMovementRooted() const { return movementRooted_; }
|
||||
void setGravityDisabled(bool disabled) { gravityDisabled_ = disabled; }
|
||||
|
|
@ -280,6 +281,7 @@ private:
|
|||
float walkSpeedOverride_ = 0.0f;
|
||||
float swimSpeedOverride_ = 0.0f;
|
||||
float flightSpeedOverride_ = 0.0f;
|
||||
float runBackSpeedOverride_ = 0.0f;
|
||||
// Server-driven root state: when true, block all horizontal movement input.
|
||||
bool movementRooted_ = false;
|
||||
// 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()->setSwimSpeedOverride(gameHandler->getServerSwimSpeed());
|
||||
renderer->getCameraController()->setFlightSpeedOverride(gameHandler->getServerFlightSpeed());
|
||||
renderer->getCameraController()->setRunBackSpeedOverride(gameHandler->getServerRunBackSpeed());
|
||||
renderer->getCameraController()->setMovementRooted(gameHandler->isPlayerRooted());
|
||||
renderer->getCameraController()->setGravityDisabled(gameHandler->isGravityDisabled());
|
||||
renderer->getCameraController()->setFeatherFallActive(gameHandler->isFeatherFalling());
|
||||
|
|
|
|||
|
|
@ -318,7 +318,9 @@ void CameraController::update(float deltaTime) {
|
|||
if (useWoWSpeed) {
|
||||
// Movement speeds (WoW-like: Ctrl walk, default run, backpedal slower)
|
||||
if (nowBackward && !nowForward) {
|
||||
speed = WOW_BACK_SPEED;
|
||||
speed = (runBackSpeedOverride_ > 0.0f && runBackSpeedOverride_ < 100.0f
|
||||
&& !std::isnan(runBackSpeedOverride_))
|
||||
? runBackSpeedOverride_ : WOW_BACK_SPEED;
|
||||
} else if (ctrlDown) {
|
||||
speed = (walkSpeedOverride_ > 0.0f && walkSpeedOverride_ < 100.0f && !std::isnan(walkSpeedOverride_))
|
||||
? walkSpeedOverride_ : WOW_WALK_SPEED;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue