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.
This commit is contained in:
Kelsi 2026-03-11 16:06:36 -07:00
parent e2e049b718
commit 047b9157ad

View file

@ -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;