From 66e6137a9f89ec36c2559dd315d2de798e07abdf Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Tue, 10 Nov 2026 13:11:10 -0600 Subject: [PATCH] fix: a launchpad sends its rockets to its own zone A zone transfer from a launchpad took the zone from the message when the message asked for that. The client never does, so the zone is now always the launchpad's default zone or the zone the player picked on it. The log line no longer uses the sender named in the message. Co-Authored-By: Claude Fable 5.2 --- dGame/dGameMessages/ObjectMessages.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/dGame/dGameMessages/ObjectMessages.cpp b/dGame/dGameMessages/ObjectMessages.cpp index e3d7f65ad..1a1d6b956 100644 --- a/dGame/dGameMessages/ObjectMessages.cpp +++ b/dGame/dGameMessages/ObjectMessages.cpp @@ -76,11 +76,8 @@ namespace GameMessages { cloneId = rocketPad->GetSelectedCloneId(player->GetObjectID()); - if (param2) { - mapId = rocketPad->GetDefaultZone(); - } else { - mapId = param3; - } + // The launchpad decides where its rockets go: its own zone, or the one the player picked on it + mapId = rocketPad->GetDefaultZone(); if (mapId == 0) { mapId = rocketPad->GetSelectedMapId(player->GetObjectID()); @@ -90,11 +87,11 @@ namespace GameMessages { mapId = Game::zoneManager->GetZoneID().GetMapID(); // Fallback to sending the player back to the same zone. } - LOG("Player %llu has requested zone transfer to (%i, %i).", sender->GetObjectID(), static_cast(mapId), static_cast(cloneId)); + LOG("Player %llu has requested zone transfer to (%i, %i).", player->GetObjectID(), static_cast(mapId), static_cast(cloneId)); auto* character = player->GetCharacter(); - if (mapId <= 0) { + if (mapId <= 0 || !character) { return; }