From f4749a8e2c5bf8414eae4e1aadde37f678b0bbbe Mon Sep 17 00:00:00 2001 From: elexis Date: Wed, 4 Apr 2018 12:43:25 +0000 Subject: [PATCH] Simplify GUI g_IsController variable init, equivalent to 100be98215. Just test if a NetServer is present rather than passing a state boolean from GUI page to GUI page. This was SVN commit r21651. --- binaries/data/mods/public/gui/aiconfig/aiconfig.js | 9 +++++++-- binaries/data/mods/public/gui/gamesetup/gamesetup.js | 9 +++------ binaries/data/mods/public/gui/session/session.js | 11 +++++------ source/network/scripting/JSInterface_Network.cpp | 8 +++++++- source/network/scripting/JSInterface_Network.h | 1 + 5 files changed, 23 insertions(+), 15 deletions(-) diff --git a/binaries/data/mods/public/gui/aiconfig/aiconfig.js b/binaries/data/mods/public/gui/aiconfig/aiconfig.js index 631ce709aa..9d44575564 100644 --- a/binaries/data/mods/public/gui/aiconfig/aiconfig.js +++ b/binaries/data/mods/public/gui/aiconfig/aiconfig.js @@ -1,3 +1,8 @@ +/** + * Is this user in control of game settings (i.e. is a network server, or offline player). + */ +const g_IsController = !Engine.HasNetClient() || Engine.HasNetServer(); + var g_PlayerSlot; var g_AIDescriptions = [{ @@ -33,11 +38,11 @@ function init(settings) let control = Engine.GetGUIObjectByName(name); control.list = g_AIControls[name].labels; control.selected = g_AIControls[name].selected(settings); - control.hidden = !settings.isController; + control.hidden = !g_IsController; let label = Engine.GetGUIObjectByName(name + "Text"); label.caption = control.list[control.selected]; - label.hidden = settings.isController; + label.hidden = g_IsController; } checkBehavior(); diff --git a/binaries/data/mods/public/gui/gamesetup/gamesetup.js b/binaries/data/mods/public/gui/gamesetup/gamesetup.js index e928fe2796..cd0d596a16 100644 --- a/binaries/data/mods/public/gui/gamesetup/gamesetup.js +++ b/binaries/data/mods/public/gui/gamesetup/gamesetup.js @@ -228,9 +228,9 @@ var g_TriggerDifficultyList; const g_IsNetworked = Engine.HasNetClient(); /** - * Is this user in control of game settings (i.e. singleplayer or host of a multiplayergame). + * Is this user in control of game settings (i.e. is a network server, or offline player). */ -var g_IsController; +const g_IsController = !g_IsNetworked || Engine.HasNetServer(); /** * Whether this is a tutorial. @@ -1106,7 +1106,6 @@ function init(attribs) return; } - g_IsController = attribs.type != "client"; g_IsTutorial = !!attribs.tutorial; g_ServerName = attribs.serverName; g_ServerPort = attribs.serverPort; @@ -1506,8 +1505,7 @@ function handleGamestartMessage(message) Engine.SwitchGuiPage("page_loading.xml", { "attribs": g_GameAttributes, - "playerAssignments": g_PlayerAssignments, - "isController": g_IsController + "playerAssignments": g_PlayerAssignments }); } @@ -2363,7 +2361,6 @@ function openAIConfig(playerSlot) Engine.PushGuiPage("page_aiconfig.xml", { "callback": "AIConfigCallback", - "isController": g_IsController, "playerSlot": playerSlot, "id": g_GameAttributes.settings.PlayerData[playerSlot].AI, "difficulty": g_GameAttributes.settings.PlayerData[playerSlot].AIDiff, diff --git a/binaries/data/mods/public/gui/session/session.js b/binaries/data/mods/public/gui/session/session.js index c1102aa1fc..03bbbec9f6 100644 --- a/binaries/data/mods/public/gui/session/session.js +++ b/binaries/data/mods/public/gui/session/session.js @@ -44,16 +44,16 @@ var g_Ambient = ["audio/ambient/dayscape/day_temperate_gen_03.ogg"]; */ const g_GameAttributes = deepfreeze(Engine.GetInitAttributes()); -/** - * Is this user in control of game settings (i.e. is a network server, or offline player). - */ -var g_IsController; - /** * True if this is a multiplayer game. */ const g_IsNetworked = Engine.HasNetClient(); +/** + * Is this user in control of game settings (i.e. is a network server, or offline player). + */ +var g_IsController = !g_IsNetworked || Engine.HasNetServer(); + /** * Whether we have finished the synchronization and * can start showing simulation related message boxes. @@ -263,7 +263,6 @@ function init(initData, hotloadData) if (initData) { - g_IsController = initData.isController; g_PlayerAssignments = initData.playerAssignments; g_ReplaySelectionData = initData.replaySelectionData; g_HasRejoined = initData.isRejoining; diff --git a/source/network/scripting/JSInterface_Network.cpp b/source/network/scripting/JSInterface_Network.cpp index f273422fd8..005e235cc5 100644 --- a/source/network/scripting/JSInterface_Network.cpp +++ b/source/network/scripting/JSInterface_Network.cpp @@ -34,9 +34,14 @@ u16 JSI_Network::GetDefaultPort(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)) return PS_DEFAULT_PORT; } +bool JSI_Network::HasNetServer(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)) +{ + return g_NetServer; +} + bool JSI_Network::HasNetClient(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)) { - return !!g_NetClient; + return g_NetClient; } JS::Value JSI_Network::FindStunEndpoint(ScriptInterface::CxPrivate* pCxPrivate, int port) @@ -219,6 +224,7 @@ void JSI_Network::SetTurnLength(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), void JSI_Network::RegisterScriptFunctions(const ScriptInterface& scriptInterface) { scriptInterface.RegisterFunction("GetDefaultPort"); + scriptInterface.RegisterFunction("HasNetServer"); scriptInterface.RegisterFunction("HasNetClient"); scriptInterface.RegisterFunction("FindStunEndpoint"); scriptInterface.RegisterFunction("StartNetworkHost"); diff --git a/source/network/scripting/JSInterface_Network.h b/source/network/scripting/JSInterface_Network.h index 0b52b3b708..91d5e5afd6 100644 --- a/source/network/scripting/JSInterface_Network.h +++ b/source/network/scripting/JSInterface_Network.h @@ -24,6 +24,7 @@ namespace JSI_Network { u16 GetDefaultPort(ScriptInterface::CxPrivate* pCxPrivate); + bool HasNetServer(ScriptInterface::CxPrivate* pCxPrivate); bool HasNetClient(ScriptInterface::CxPrivate* pCxPrivate); void StartNetworkGame(ScriptInterface::CxPrivate* pCxPrivate); void SetNetworkGameAttributes(ScriptInterface::CxPrivate* pCxPrivate, JS::HandleValue attribs1);