mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-23 07:40:14 +00:00
Fix MLIQ water parsing, skip interior water, clear movement on teleport
Some checks are pending
Build / Build (arm64) (push) Waiting to run
Build / Build (x86-64) (push) Waiting to run
Build / Build (macOS arm64) (push) Waiting to run
Build / Build (windows-arm64) (push) Waiting to run
Build / Build (windows-x86-64) (push) Waiting to run
Security / CodeQL (C/C++) (push) Waiting to run
Security / Semgrep (push) Waiting to run
Security / Sanitizer Build (ASan/UBSan) (push) Waiting to run
Some checks are pending
Build / Build (arm64) (push) Waiting to run
Build / Build (x86-64) (push) Waiting to run
Build / Build (macOS arm64) (push) Waiting to run
Build / Build (windows-arm64) (push) Waiting to run
Build / Build (windows-x86-64) (push) Waiting to run
Security / CodeQL (C/C++) (push) Waiting to run
Security / Semgrep (push) Waiting to run
Security / Sanitizer Build (ASan/UBSan) (push) Waiting to run
- Remove bogus 2-byte skip after materialId in MLIQ parser that shifted all vertex heights and tile flags by 2 bytes (garbage data) - Skip liquid loading for interior WMO groups (flag 0x2000) to prevent indoor water from rendering as outdoor canal water - Clear movement inputs on teleport/portal to prevent auto-running after zone transfer (held keys persist through loading screen)
This commit is contained in:
parent
16daa2baf7
commit
08d40583c9
4 changed files with 15 additions and 11 deletions
|
|
@ -970,6 +970,10 @@ void Application::update(float deltaTime) {
|
|||
bool onTransportNow = gameHandler && gameHandler->isOnTransport();
|
||||
if (worldEntryMovementGraceTimer_ > 0.0f) {
|
||||
worldEntryMovementGraceTimer_ -= deltaTime;
|
||||
// Clear stale movement from before teleport each frame
|
||||
// until grace period expires (keys may still be held)
|
||||
if (renderer && renderer->getCameraController())
|
||||
renderer->getCameraController()->clearMovementInputs();
|
||||
}
|
||||
if (renderer && renderer->getCameraController()) {
|
||||
const bool externallyDrivenMotion = onTaxi || onTransportNow || chargeActive_;
|
||||
|
|
@ -1550,6 +1554,9 @@ void Application::setupUICallbacks() {
|
|||
worldEntryMovementGraceTimer_ = 2.0f;
|
||||
taxiLandingClampTimer_ = 0.0f;
|
||||
lastTaxiFlight_ = false;
|
||||
// Stop any movement that was active before the teleport
|
||||
if (renderer->getCameraController())
|
||||
renderer->getCameraController()->clearMovementInputs();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1565,6 +1572,9 @@ void Application::setupUICallbacks() {
|
|||
worldEntryMovementGraceTimer_ = 2.0f;
|
||||
taxiLandingClampTimer_ = 0.0f;
|
||||
lastTaxiFlight_ = false;
|
||||
// Stop any movement that was active before the teleport
|
||||
if (renderer && renderer->getCameraController())
|
||||
renderer->getCameraController()->clearMovementInputs();
|
||||
loadOnlineWorldTerrain(mapId, x, y, z);
|
||||
// loadedMapId_ is set inside loadOnlineWorldTerrain (including
|
||||
// any deferred entries it processes), so we must NOT override it here.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue