From 047b9157ad4ffc8fc4374f6f54042c0cd619ee73 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Wed, 11 Mar 2026 16:06:36 -0700 Subject: [PATCH] Validate transport registration before player attachment Add upfront validation to setPlayerOnTransport to ensure the transport GUID is registered in transportGuids_ before attaching the player. This prevents transport desyncs when movement packets reference transports that haven't been spawned/registered yet. --- include/game/game_handler.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/game/game_handler.hpp b/include/game/game_handler.hpp index 25b6b8de..17efaaa7 100644 --- a/include/game/game_handler.hpp +++ b/include/game/game_handler.hpp @@ -825,6 +825,11 @@ public: glm::vec3 getComposedWorldPosition(); // Compose transport transform * local offset TransportManager* getTransportManager() { return transportManager_.get(); } void setPlayerOnTransport(uint64_t transportGuid, const glm::vec3& localOffset) { + // Validate transport is registered before attaching player + // (defer if transport not yet registered to prevent desyncs) + if (transportGuid != 0 && !isTransportGuid(transportGuid)) { + return; // Transport not yet registered; skip attachment + } playerTransportGuid_ = transportGuid; playerTransportOffset_ = localOffset; playerTransportStickyGuid_ = transportGuid;