Fix instance portals: WDT byte order, box trigger sizing, suppress ping-pong, WMO cache cleanup

- Fix WDT chunk magic constants to big-endian ASCII (matching ADTLoader)
- Add minimum effective size for box area triggers (90 units, like sphere 45-unit radius)
- Add areaTriggerSuppressFirst_ flag to prevent portal ping-pong on map transfer
- Add WMORenderer::clearAll() to clear models/textures on map change (prevents GPU crash)
- Increase WMO texture cache default to 8GB
- Fix setMapName called after loadTestTerrain so WMO renderer exists
- Save/restore player position around CMSG_AREATRIGGER to prevent bad DB persistence
This commit is contained in:
Kelsi 2026-02-27 04:59:12 -08:00
parent d0e8b44866
commit 16d88f19fc
6 changed files with 120 additions and 41 deletions

View file

@ -25,12 +25,12 @@ float readF32(const uint8_t* data, size_t offset) {
return v;
}
// Chunk magic constants (little-endian)
constexpr uint32_t MVER = 0x5245564D; // "REVM"
constexpr uint32_t MPHD = 0x4448504D; // "DHPM"
constexpr uint32_t MAIN = 0x4E49414D; // "NIAM"
constexpr uint32_t MWMO = 0x4F4D574D; // "OMWM"
constexpr uint32_t MODF = 0x46444F4D; // "FDOM"
// Chunk magic constants (big-endian ASCII, same as ADTLoader)
constexpr uint32_t MVER = 0x4D564552; // "MVER"
constexpr uint32_t MPHD = 0x4D504844; // "MPHD"
constexpr uint32_t MAIN = 0x4D41494E; // "MAIN"
constexpr uint32_t MWMO = 0x4D574D4F; // "MWMO"
constexpr uint32_t MODF = 0x4D4F4446; // "MODF"
} // anonymous namespace