From 855c5c4210f8ecdfd11de856d6372048975c1b09 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Sat, 14 Mar 2026 09:23:45 -0700 Subject: [PATCH] Move exit code constants to networktransport.h and eliminate magic numbers Move EXIT_ROOM_FULL/EXIT_CONNECTION_LOST from NetworkManager (where they were unused) to the Multiplayer namespace in networktransport.h so both backends can reference them. Pass them into the emscripten inline JS as parameters instead of hardcoding 10/11. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../include/extensions/multiplayer/networkmanager.h | 2 -- .../include/extensions/multiplayer/networktransport.h | 3 +++ .../platforms/emscripten/websockettransport.cpp | 8 ++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/extensions/include/extensions/multiplayer/networkmanager.h b/extensions/include/extensions/multiplayer/networkmanager.h index cab005be..47926ade 100644 --- a/extensions/include/extensions/multiplayer/networkmanager.h +++ b/extensions/include/extensions/multiplayer/networkmanager.h @@ -150,8 +150,6 @@ class NetworkManager : public MxCore { static const uint32_t BROADCAST_INTERVAL_MS = 66; // ~15Hz static const uint32_t TIMEOUT_MS = 5000; // 5 second timeout - static const int EXIT_ROOM_FULL = 10; - static const int EXIT_CONNECTION_LOST = 11; }; } // namespace Multiplayer diff --git a/extensions/include/extensions/multiplayer/networktransport.h b/extensions/include/extensions/multiplayer/networktransport.h index ea033377..7fd8876e 100644 --- a/extensions/include/extensions/multiplayer/networktransport.h +++ b/extensions/include/extensions/multiplayer/networktransport.h @@ -7,6 +7,9 @@ namespace Multiplayer { +static const int EXIT_ROOM_FULL = 10; +static const int EXIT_CONNECTION_LOST = 11; + class NetworkTransport { public: virtual ~NetworkTransport() = default; diff --git a/extensions/src/multiplayer/platforms/emscripten/websockettransport.cpp b/extensions/src/multiplayer/platforms/emscripten/websockettransport.cpp index fdc14c44..5e7a70ad 100644 --- a/extensions/src/multiplayer/platforms/emscripten/websockettransport.cpp +++ b/extensions/src/multiplayer/platforms/emscripten/websockettransport.cpp @@ -44,6 +44,8 @@ void WebSocketTransport::Connect(const char* p_roomId) var connPtr = $1; var discPtr = $2; var everConnPtr = $3; + var exitRoomFull = $4; + var exitConnLost = $5; var socketId = Module._mpNextSocketId++; Module._mpMessageQueues[socketId] = []; @@ -67,9 +69,7 @@ void WebSocketTransport::Connect(const char* p_roomId) var wasEverConnected = Atomics.load(HEAP32, everConnPtr >> 2); Atomics.store(HEAP32, connPtr >> 2, 0); Atomics.store(HEAP32, discPtr >> 2, 1); - // 10 = room full / server rejected before connecting - // 11 = connection lost after successful connect - Module._exitCode = wasEverConnected ? 11 : 10; + Module._exitCode = wasEverConnected ? exitConnLost : exitRoomFull; }; ws.onerror = function() { @@ -83,7 +83,7 @@ void WebSocketTransport::Connect(const char* p_roomId) } return socketId; - }, url.c_str(), &m_connectedFlag, &m_disconnectedFlag, &m_wasEverConnected); + }, url.c_str(), &m_connectedFlag, &m_disconnectedFlag, &m_wasEverConnected, EXIT_ROOM_FULL, EXIT_CONNECTION_LOST); // clang-format on if (m_socketId <= 0) {