Fix Thunder Bluff elevator transport overrides

This commit is contained in:
Kelsi 2026-02-12 15:11:23 -08:00
parent 3dac9ae657
commit e4e61c5f3d
2 changed files with 25 additions and 24 deletions

View file

@ -1232,7 +1232,7 @@ void Application::setupUICallbacks() {
const bool shipOrZeppelinDisplay = const bool shipOrZeppelinDisplay =
(displayId == 3015 || displayId == 3031 || displayId == 7546 || (displayId == 3015 || displayId == 3031 || displayId == 7546 ||
displayId == 7446 || displayId == 1587 || displayId == 2454 || displayId == 7446 || displayId == 1587 || displayId == 2454 ||
displayId == 807 || displayId == 808 || displayId == 455 || displayId == 462); displayId == 807 || displayId == 808);
bool hasUsablePath = transportManager->hasPathForEntry(entry); bool hasUsablePath = transportManager->hasPathForEntry(entry);
if (shipOrZeppelinDisplay) { if (shipOrZeppelinDisplay) {
// For true transports, reject tiny XY tracks that effectively look stationary. // For true transports, reject tiny XY tracks that effectively look stationary.
@ -1332,7 +1332,7 @@ void Application::setupUICallbacks() {
const bool shipOrZeppelinDisplay = const bool shipOrZeppelinDisplay =
(displayId == 3015 || displayId == 3031 || displayId == 7546 || (displayId == 3015 || displayId == 3031 || displayId == 7546 ||
displayId == 7446 || displayId == 1587 || displayId == 2454 || displayId == 7446 || displayId == 1587 || displayId == 2454 ||
displayId == 807 || displayId == 808 || displayId == 455 || displayId == 462); displayId == 807 || displayId == 808);
bool hasUsablePath = transportManager->hasPathForEntry(entry); bool hasUsablePath = transportManager->hasPathForEntry(entry);
if (shipOrZeppelinDisplay) { if (shipOrZeppelinDisplay) {
hasUsablePath = transportManager->hasUsableMovingPathForEntry(entry, 25.0f); hasUsablePath = transportManager->hasUsableMovingPathForEntry(entry, 25.0f);
@ -3348,10 +3348,11 @@ void Application::spawnOnlineGameObject(uint64_t guid, uint32_t entry, uint32_t
bool isTransport = gameHandler && gameHandler->isTransportGuid(guid); bool isTransport = gameHandler && gameHandler->isTransportGuid(guid);
if (isTransport) { if (isTransport) {
// Map common transport displayIds to correct WMO paths // Map common transport displayIds to correct WMO paths
// DisplayIds 455, 462 = Elevators/Ships → try standard ship // NOTE: displayIds 455/462 are elevators in Thunder Bluff and should NOT be forced to ships.
// Keep ship/zeppelin overrides entry-driven where possible.
// DisplayIds 807, 808 = Zeppelins // DisplayIds 807, 808 = Zeppelins
// DisplayIds 2454, 1587 = Special ships/icebreakers // DisplayIds 2454, 1587 = Special ships/icebreakers
if (displayId == 455 || displayId == 462 || entry == 20808 || entry == 176231 || entry == 176310) { if (entry == 20808 || entry == 176231 || entry == 176310) {
modelPath = "World\\wmo\\transports\\transport_ship\\transportship.wmo"; modelPath = "World\\wmo\\transports\\transport_ship\\transportship.wmo";
LOG_INFO("Overriding transport entry/display ", entry, "/", displayId, " → transportship.wmo"); LOG_INFO("Overriding transport entry/display ", entry, "/", displayId, " → transportship.wmo");
} else if (displayId == 807 || displayId == 808 || displayId == 175080 || displayId == 176495 || displayId == 164871) { } else if (displayId == 807 || displayId == 808 || displayId == 175080 || displayId == 176495 || displayId == 164871) {

View file

@ -998,7 +998,7 @@ uint32_t TransportManager::pickFallbackMovingPath(uint32_t entry, uint32_t displ
// Fallback by display model family. // Fallback by display model family.
const bool looksLikeShip = const bool looksLikeShip =
(displayId == 3015u || displayId == 2454u || displayId == 7446u || displayId == 455u || displayId == 462u); (displayId == 3015u || displayId == 2454u || displayId == 7446u);
const bool looksLikeZeppelin = const bool looksLikeZeppelin =
(displayId == 3031u || displayId == 7546u || displayId == 1587u || displayId == 807u || displayId == 808u); (displayId == 3031u || displayId == 7546u || displayId == 1587u || displayId == 807u || displayId == 808u);