mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-05 20:53:52 +00:00
fix: suspend gravity for 10s after world entry to prevent WMO fall-through
Stormwind WMO collision takes 25+ seconds to fully load. The warmup ground check couldn't detect the WMO floor because collision data wasn't finalized yet. Player spawned and immediately fell through the unloaded WMO floor into the terrain below (Dun Morogh). New approach: suspendGravityFor(10s) after world entry. Gravity is disabled (Z position frozen) until either: 1. A floor is detected by the collision system (gravity resumes instantly) 2. The 10-second timer expires (gravity resumes as fallback) This handles the case where WMO collision loads during the first few seconds of gameplay — the player hovers at spawn Z until the floor appears, then lands normally. Also fixes faction language for chat (ORCISH for Horde, COMMON for Alliance) and adds SMSG_MESSAGECHAT diagnostic logging.
This commit is contained in:
parent
b1e2b8866d
commit
91c6eef967
4 changed files with 25 additions and 1 deletions
|
|
@ -2175,6 +2175,7 @@ void Application::update(float deltaTime) {
|
|||
if (renderer && renderer->getCameraController()) {
|
||||
renderer->getCameraController()->clearMovementInputs();
|
||||
renderer->getCameraController()->suppressMovementFor(1.0f);
|
||||
renderer->getCameraController()->suspendGravityFor(10.0f);
|
||||
}
|
||||
loadOnlineWorldTerrain(entry.mapId, entry.x, entry.y, entry.z);
|
||||
}
|
||||
|
|
@ -2419,6 +2420,7 @@ void Application::setupUICallbacks() {
|
|||
if (ft) *ft = renderPos;
|
||||
renderer->getCameraController()->clearMovementInputs();
|
||||
renderer->getCameraController()->suppressMovementFor(1.0f);
|
||||
renderer->getCameraController()->suspendGravityFor(10.0f);
|
||||
}
|
||||
worldEntryMovementGraceTimer_ = 2.0f;
|
||||
taxiLandingClampTimer_ = 0.0f;
|
||||
|
|
@ -2457,6 +2459,7 @@ void Application::setupUICallbacks() {
|
|||
if (ft) *ft = renderPos;
|
||||
renderer->getCameraController()->clearMovementInputs();
|
||||
renderer->getCameraController()->suppressMovementFor(1.0f);
|
||||
renderer->getCameraController()->suspendGravityFor(10.0f);
|
||||
}
|
||||
pendingWorldEntry_ = PendingWorldEntry{mapId, x, y, z};
|
||||
return;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue