mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-05-03 11:04:04 +00:00
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) <noreply@anthropic.com>
This commit is contained in:
parent
37587beda4
commit
855c5c4210
@ -150,8 +150,6 @@ class NetworkManager : public MxCore {
|
|||||||
|
|
||||||
static const uint32_t BROADCAST_INTERVAL_MS = 66; // ~15Hz
|
static const uint32_t BROADCAST_INTERVAL_MS = 66; // ~15Hz
|
||||||
static const uint32_t TIMEOUT_MS = 5000; // 5 second timeout
|
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
|
} // namespace Multiplayer
|
||||||
|
|||||||
@ -7,6 +7,9 @@
|
|||||||
namespace Multiplayer
|
namespace Multiplayer
|
||||||
{
|
{
|
||||||
|
|
||||||
|
static const int EXIT_ROOM_FULL = 10;
|
||||||
|
static const int EXIT_CONNECTION_LOST = 11;
|
||||||
|
|
||||||
class NetworkTransport {
|
class NetworkTransport {
|
||||||
public:
|
public:
|
||||||
virtual ~NetworkTransport() = default;
|
virtual ~NetworkTransport() = default;
|
||||||
|
|||||||
@ -44,6 +44,8 @@ void WebSocketTransport::Connect(const char* p_roomId)
|
|||||||
var connPtr = $1;
|
var connPtr = $1;
|
||||||
var discPtr = $2;
|
var discPtr = $2;
|
||||||
var everConnPtr = $3;
|
var everConnPtr = $3;
|
||||||
|
var exitRoomFull = $4;
|
||||||
|
var exitConnLost = $5;
|
||||||
var socketId = Module._mpNextSocketId++;
|
var socketId = Module._mpNextSocketId++;
|
||||||
Module._mpMessageQueues[socketId] = [];
|
Module._mpMessageQueues[socketId] = [];
|
||||||
|
|
||||||
@ -67,9 +69,7 @@ void WebSocketTransport::Connect(const char* p_roomId)
|
|||||||
var wasEverConnected = Atomics.load(HEAP32, everConnPtr >> 2);
|
var wasEverConnected = Atomics.load(HEAP32, everConnPtr >> 2);
|
||||||
Atomics.store(HEAP32, connPtr >> 2, 0);
|
Atomics.store(HEAP32, connPtr >> 2, 0);
|
||||||
Atomics.store(HEAP32, discPtr >> 2, 1);
|
Atomics.store(HEAP32, discPtr >> 2, 1);
|
||||||
// 10 = room full / server rejected before connecting
|
Module._exitCode = wasEverConnected ? exitConnLost : exitRoomFull;
|
||||||
// 11 = connection lost after successful connect
|
|
||||||
Module._exitCode = wasEverConnected ? 11 : 10;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ws.onerror = function() {
|
ws.onerror = function() {
|
||||||
@ -83,7 +83,7 @@ void WebSocketTransport::Connect(const char* p_roomId)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return socketId;
|
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
|
// clang-format on
|
||||||
|
|
||||||
if (m_socketId <= 0) {
|
if (m_socketId <= 0) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user