From 762a5f3941ee9498f062111f71713df1e40c5e13 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Sun, 1 Mar 2026 10:35:16 -0800 Subject: [PATCH] Add configurable room name, fix parameter naming in multiplayer extension Read "multiplayer:room" from INI options (default "default") and use it in Connect() instead of a hardcoded string. Return early if room is blank, matching the relay URL check. Rename p_mgr to p_networkManager for consistency. --- ISLE/emscripten/config.cpp | 1 + extensions/include/extensions/multiplayer.h | 3 ++- extensions/src/multiplayer.cpp | 10 ++++++---- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/ISLE/emscripten/config.cpp b/ISLE/emscripten/config.cpp index 023b2e5f..26034910 100644 --- a/ISLE/emscripten/config.cpp +++ b/ISLE/emscripten/config.cpp @@ -21,6 +21,7 @@ void Emscripten_SetupDefaultConfigOverrides(dictionary* p_dictionary) iniparser_set(p_dictionary, "extensions:multiplayer", "true"); iniparser_set(p_dictionary, "multiplayer", NULL); iniparser_set(p_dictionary, "multiplayer:relay url", "ws://localhost:8787"); + iniparser_set(p_dictionary, "multiplayer:room", "default"); // Emscripten-only for now Emscripten_SetScaleAspect(iniparser_getboolean(p_dictionary, "isle:Original Aspect Ratio", true)); diff --git a/extensions/include/extensions/multiplayer.h b/extensions/include/extensions/multiplayer.h index d701d601..c2fc5a80 100644 --- a/extensions/include/extensions/multiplayer.h +++ b/extensions/include/extensions/multiplayer.h @@ -31,8 +31,9 @@ class MultiplayerExt { static bool enabled; static std::string relayUrl; + static std::string room; - static void SetNetworkManager(Multiplayer::NetworkManager* p_mgr); + static void SetNetworkManager(Multiplayer::NetworkManager* p_networkManager); static Multiplayer::NetworkManager* GetNetworkManager(); private: diff --git a/extensions/src/multiplayer.cpp b/extensions/src/multiplayer.cpp index b673c237..1332bb8f 100644 --- a/extensions/src/multiplayer.cpp +++ b/extensions/src/multiplayer.cpp @@ -16,14 +16,16 @@ using namespace Extensions; std::map MultiplayerExt::options; bool MultiplayerExt::enabled = false; std::string MultiplayerExt::relayUrl; +std::string MultiplayerExt::room; Multiplayer::NetworkManager* MultiplayerExt::s_networkManager = nullptr; Multiplayer::NetworkTransport* MultiplayerExt::s_transport = nullptr; void MultiplayerExt::Initialize() { relayUrl = options["multiplayer:relay url"]; + room = options["multiplayer:room"]; - if (relayUrl.empty()) { + if (relayUrl.empty() || room.empty()) { return; } @@ -33,7 +35,7 @@ void MultiplayerExt::Initialize() s_networkManager = new Multiplayer::NetworkManager(); s_networkManager->Initialize(s_transport); - s_networkManager->Connect("default"); + s_networkManager->Connect(room.c_str()); #endif } @@ -98,9 +100,9 @@ MxBool MultiplayerExt::HandleEntityNotify(LegoEntity* p_entity) return s_networkManager->HandleEntityMutation(p_entity, changeType); } -void MultiplayerExt::SetNetworkManager(Multiplayer::NetworkManager* p_mgr) +void MultiplayerExt::SetNetworkManager(Multiplayer::NetworkManager* p_networkManager) { - s_networkManager = p_mgr; + s_networkManager = p_networkManager; } Multiplayer::NetworkManager* MultiplayerExt::GetNetworkManager()