Fix mount sounds, grey WMO meshes, taxi landing, tree animations, and classic dismount

- Per-family mount sounds (kodo, tallstrider, mechanostrider, etc.) detected from M2 model path
- Skip WMO groups with SHOW_SKYBOX flag or all-untextured batches (grey mesh in Orgrimmar)
- Freeze physics during taxi landing until terrain loads to prevent falling through void
- Disable bone animations on tropical vegetation (palm, bamboo, banana, etc.) to fix wiggling
- Snap player to final taxi waypoint on flight completion
- Extract mount aura spell ID from classic UNIT_FIELD_AURAS for CMSG_CANCEL_AURA dismount
- Increase /unstuck forward nudge to 5 units
This commit is contained in:
Kelsi 2026-02-14 21:04:20 -08:00
parent bf31da8c13
commit d27387d744
13 changed files with 525 additions and 217 deletions

View file

@ -400,9 +400,12 @@ bool WMORenderer::loadModel(const pipeline::WMOModel& model, uint32_t id) {
}
groupRes.mergedBatches.reserve(batchMap.size());
bool anyTextured = false;
for (auto& [key, mb] : batchMap) {
if (mb.hasTexture) anyTextured = true;
groupRes.mergedBatches.push_back(std::move(mb));
}
groupRes.allUntextured = !anyTextured && !groupRes.mergedBatches.empty();
}
// Copy portal data for visibility culling
@ -1198,6 +1201,18 @@ void WMORenderer::render(const Camera& camera, const glm::mat4& view, const glm:
for (uint32_t gi : dl.visibleGroups) {
const auto& group = model.groups[gi];
// Skip groups with SHOW_SKYBOX flag (0x20000) — these are transparent
// sky windows meant to show the skybox behind them, not solid geometry
if (group.groupFlags & 0x20000) {
continue;
}
// Skip groups where ALL batches use the fallback white texture —
// these are collision/placeholder/LOD shell groups with no visual data
if (group.allUntextured) {
continue;
}
// STORMWIND.WMO specific fix: LOD shell visibility control
// Combination of distance culling + backface culling for best results
bool isLODShell = false;