diff --git a/binaries/data/mods/public/gui/gamesetup/gamesetup.js b/binaries/data/mods/public/gui/gamesetup/gamesetup.js index f0d0cf7d67..e928fe2796 100644 --- a/binaries/data/mods/public/gui/gamesetup/gamesetup.js +++ b/binaries/data/mods/public/gui/gamesetup/gamesetup.js @@ -225,7 +225,7 @@ var g_TriggerDifficultyList; /** * Whether this is a single- or multiplayer match. */ -var g_IsNetworked; +const g_IsNetworked = Engine.HasNetClient(); /** * Is this user in control of game settings (i.e. singleplayer or host of a multiplayergame). @@ -1106,7 +1106,6 @@ function init(attribs) return; } - g_IsNetworked = attribs.type != "offline"; g_IsController = attribs.type != "client"; g_IsTutorial = !!attribs.tutorial; g_ServerName = attribs.serverName; @@ -1507,7 +1506,6 @@ function handleGamestartMessage(message) Engine.SwitchGuiPage("page_loading.xml", { "attribs": g_GameAttributes, - "isNetworked": g_IsNetworked, "playerAssignments": g_PlayerAssignments, "isController": g_IsController }); @@ -2237,7 +2235,6 @@ function launchGame() Engine.StartGame(g_GameAttributes, playerID); Engine.SwitchGuiPage("page_loading.xml", { "attribs": g_GameAttributes, - "isNetworked": g_IsNetworked, "playerAssignments": g_PlayerAssignments }); } diff --git a/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js b/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js index e397b24c2f..2ee2cb0197 100644 --- a/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js +++ b/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js @@ -197,7 +197,6 @@ function pollAndHandleNetworkClient() Engine.SwitchGuiPage("page_loading.xml", { "attribs": g_GameAttributes, - "isNetworked": true, "isRejoining": g_IsRejoining, "playerAssignments": g_PlayerAssignments }); diff --git a/binaries/data/mods/public/gui/loadgame/load.js b/binaries/data/mods/public/gui/loadgame/load.js index fc41e2375f..caa183693d 100644 --- a/binaries/data/mods/public/gui/loadgame/load.js +++ b/binaries/data/mods/public/gui/loadgame/load.js @@ -191,7 +191,6 @@ function reallyLoadGame(gameId) Engine.SwitchGuiPage("page_loading.xml", { "attribs": metadata.initAttributes, - "isNetworked": false, "playerAssignments": { "local": { "name": pData ? pData.Name : singleplayerName(), diff --git a/binaries/data/mods/public/gui/replaymenu/replay_actions.js b/binaries/data/mods/public/gui/replaymenu/replay_actions.js index 60dced9d11..7fb3d49d8d 100644 --- a/binaries/data/mods/public/gui/replaymenu/replay_actions.js +++ b/binaries/data/mods/public/gui/replaymenu/replay_actions.js @@ -65,7 +65,6 @@ function reallyStartVisualReplay(replayDirectory) Engine.SwitchGuiPage("page_loading.xml", { "attribs": Engine.GetReplayAttributes(replayDirectory), - "isNetworked": false, "playerAssignments": { "local": { "name": singleplayerName(), diff --git a/binaries/data/mods/public/gui/session/session.js b/binaries/data/mods/public/gui/session/session.js index 3cd20c4729..c1102aa1fc 100644 --- a/binaries/data/mods/public/gui/session/session.js +++ b/binaries/data/mods/public/gui/session/session.js @@ -52,7 +52,7 @@ var g_IsController; /** * True if this is a multiplayer game. */ -var g_IsNetworked = false; +const g_IsNetworked = Engine.HasNetClient(); /** * Whether we have finished the synchronization and @@ -263,7 +263,6 @@ function init(initData, hotloadData) if (initData) { - g_IsNetworked = initData.isNetworked; g_IsController = initData.isController; g_PlayerAssignments = initData.playerAssignments; g_ReplaySelectionData = initData.replaySelectionData; diff --git a/binaries/data/mods/public/gui/summary/summary.js b/binaries/data/mods/public/gui/summary/summary.js index 0f3c7200ee..2636ba960c 100644 --- a/binaries/data/mods/public/gui/summary/summary.js +++ b/binaries/data/mods/public/gui/summary/summary.js @@ -487,7 +487,6 @@ function startReplay() Engine.SwitchGuiPage("page_loading.xml", { "attribs": Engine.GetReplayAttributes(g_GameData.gui.replayDirectory), - "isNetworked": false, "playerAssignments": { "local": { "name": singleplayerName(), diff --git a/source/network/scripting/JSInterface_Network.cpp b/source/network/scripting/JSInterface_Network.cpp index 298e26afbb..f273422fd8 100644 --- a/source/network/scripting/JSInterface_Network.cpp +++ b/source/network/scripting/JSInterface_Network.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2017 Wildfire Games. +/* Copyright (C) 2018 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -34,6 +34,11 @@ u16 JSI_Network::GetDefaultPort(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)) return PS_DEFAULT_PORT; } +bool JSI_Network::HasNetClient(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)) +{ + return !!g_NetClient; +} + JS::Value JSI_Network::FindStunEndpoint(ScriptInterface::CxPrivate* pCxPrivate, int port) { return StunClient::FindStunEndpointHost(*(pCxPrivate->pScriptInterface), port); @@ -214,6 +219,7 @@ void JSI_Network::SetTurnLength(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), void JSI_Network::RegisterScriptFunctions(const ScriptInterface& scriptInterface) { scriptInterface.RegisterFunction("GetDefaultPort"); + scriptInterface.RegisterFunction("HasNetClient"); scriptInterface.RegisterFunction("FindStunEndpoint"); scriptInterface.RegisterFunction("StartNetworkHost"); scriptInterface.RegisterFunction("StartNetworkJoin"); diff --git a/source/network/scripting/JSInterface_Network.h b/source/network/scripting/JSInterface_Network.h index 93bb2f9c5c..0b52b3b708 100644 --- a/source/network/scripting/JSInterface_Network.h +++ b/source/network/scripting/JSInterface_Network.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2017 Wildfire Games. +/* Copyright (C) 2018 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -24,6 +24,7 @@ namespace JSI_Network { u16 GetDefaultPort(ScriptInterface::CxPrivate* pCxPrivate); + bool HasNetClient(ScriptInterface::CxPrivate* pCxPrivate); void StartNetworkGame(ScriptInterface::CxPrivate* pCxPrivate); void SetNetworkGameAttributes(ScriptInterface::CxPrivate* pCxPrivate, JS::HandleValue attribs1); void StartNetworkHost(ScriptInterface::CxPrivate* pCxPrivate, const CStrW& playerName, const u16 serverPort, const CStr& hostLobbyName, bool useLobbyAuth);