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) {