Fix mount stability, speed parsing, combat dismount, and self-targeting

- Fix SMSG_FORCE_RUN_SPEED_CHANGE parsing (missing uint32 field caused garbage speed)
- Always send speed ACK to prevent server stall, even on invalid values
- Defer mount model loading to next frame to avoid render-loop hang
- Compute mount height from tight vertex bounds instead of M2 header bounds
- Dismount when entering combat or casting spells while mounted
- Prevent auto-attacking yourself when self-targeted
- Leave combat when 40+ yards from target, close vendor at 15+ yards
- Pre-open X11 display for reliable mouse release in signal handlers
This commit is contained in:
Kelsi 2026-02-07 18:33:14 -08:00
parent 643611ee79
commit 0874f4f239
6 changed files with 242 additions and 146 deletions

View file

@ -154,6 +154,8 @@ private:
// Mount model tracking
uint32_t mountInstanceId_ = 0;
uint32_t mountModelId_ = 0;
uint32_t pendingMountDisplayId_ = 0; // Deferred mount load (0 = none pending)
void processPendingMount();
bool creatureLookupsBuilt_ = false;
// Deferred creature spawn queue (throttles spawning to avoid hangs)