Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js
Show All 12 Lines | |||||
*/ | */ | ||||
var g_ServerName = ""; | var g_ServerName = ""; | ||||
/** | /** | ||||
* Identifier if server is using password. | * Identifier if server is using password. | ||||
*/ | */ | ||||
var g_ServerHasPassword = false; | var g_ServerHasPassword = false; | ||||
/** | |||||
* Identifier if server is using ACLs | |||||
*/ | |||||
var g_ServerHasACLs = false; | |||||
var g_ServerId; | var g_ServerId; | ||||
var g_IsRejoining = false; | var g_IsRejoining = false; | ||||
var g_PlayerAssignments; // used when rejoining | var g_PlayerAssignments; // used when rejoining | ||||
var g_UserRating; | var g_UserRating; | ||||
function init(attribs) | function init(attribs) | ||||
{ | { | ||||
Show All 18 Lines | else if (startJoinFromLobby(attribs.name, attribs.hostJID, "")) | ||||
switchSetupPage("pageConnecting"); | switchSetupPage("pageConnecting"); | ||||
break; | break; | ||||
} | } | ||||
case "host": | case "host": | ||||
{ | { | ||||
let hasXmppClient = Engine.HasXmppClient(); | let hasXmppClient = Engine.HasXmppClient(); | ||||
Engine.GetGUIObjectByName("hostSTUNWrapper").hidden = !hasXmppClient; | Engine.GetGUIObjectByName("hostSTUNWrapper").hidden = !hasXmppClient; | ||||
Engine.GetGUIObjectByName("hostPasswordWrapper").hidden = !hasXmppClient; | Engine.GetGUIObjectByName("hostPasswordWrapper").hidden = !hasXmppClient; | ||||
Engine.GetGUIObjectByName("aclsWrapper").hidden = !(Engine.ConfigDB_GetValue("user", "acls.showoption") == "true"); | |||||
if (hasXmppClient) | if (hasXmppClient) | ||||
{ | { | ||||
Engine.GetGUIObjectByName("hostPlayerName").caption = attribs.name; | Engine.GetGUIObjectByName("hostPlayerName").caption = attribs.name; | ||||
Engine.GetGUIObjectByName("hostServerName").caption = | Engine.GetGUIObjectByName("hostServerName").caption = | ||||
sprintf(translate("%(name)s's game"), { "name": attribs.name }); | sprintf(translate("%(name)s's game"), { "name": attribs.name }); | ||||
Engine.GetGUIObjectByName("useSTUN").checked = Engine.ConfigDB_GetValue("user", "lobby.stun.enabled") == "true"; | Engine.GetGUIObjectByName("useSTUN").checked = Engine.ConfigDB_GetValue("user", "lobby.stun.enabled") == "true"; | ||||
Engine.GetGUIObjectByName("useACLs").checked = Engine.ConfigDB_GetValue("user", "acls.server.enable") == "true"; | |||||
} | } | ||||
switchSetupPage("pageHost"); | switchSetupPage("pageHost"); | ||||
break; | break; | ||||
} | } | ||||
default: | default: | ||||
error("Unrecognised multiplayer game type: " + attribs.multiplayerGameType); | error("Unrecognised multiplayer game type: " + attribs.multiplayerGameType); | ||||
break; | break; | ||||
▲ Show 20 Lines • Show All 90 Lines • ▼ Show 20 Lines | |||||
function getConnectionFailReason(reason) | function getConnectionFailReason(reason) | ||||
{ | { | ||||
switch (reason) | switch (reason) | ||||
{ | { | ||||
case "not_server": return translate("Server is not running."); | case "not_server": return translate("Server is not running."); | ||||
case "invalid_password": return translate("Password is invalid."); | case "invalid_password": return translate("Password is invalid."); | ||||
case "banned": return translate("You have been banned."); | case "banned": return translate("You have been banned."); | ||||
case "not_allowed": return translate("The hoster's Access Control List does not allow you to join this game. Ask the hoster what is necessary for you to change in order to be allowed to join the game."); | |||||
case "local_ip_failed": return translate("Failed to get local IP of the server (it was assumed to be on the same network)."); | case "local_ip_failed": return translate("Failed to get local IP of the server (it was assumed to be on the same network)."); | ||||
default: | default: | ||||
warn("Unknown connection failure reason: " + reason); | warn("Unknown connection failure reason: " + reason); | ||||
return sprintf(translate("\\[Invalid value %(reason)s]"), { "reason": reason }); | return sprintf(translate("\\[Invalid value %(reason)s]"), { "reason": reason }); | ||||
} | } | ||||
} | } | ||||
function reportConnectionFail(reason) | function reportConnectionFail(reason) | ||||
▲ Show 20 Lines • Show All 104 Lines • ▼ Show 20 Lines | // Not rejoining - just trying to connect to server. | ||||
if (message.rejoining) | if (message.rejoining) | ||||
{ | { | ||||
Engine.GetGUIObjectByName("connectionStatus").caption = translate("Game has already started, rejoining..."); | Engine.GetGUIObjectByName("connectionStatus").caption = translate("Game has already started, rejoining..."); | ||||
g_IsRejoining = true; | g_IsRejoining = true; | ||||
return; // we'll process the game setup messages in the next tick | return; // we'll process the game setup messages in the next tick | ||||
} | } | ||||
Engine.SwitchGuiPage("page_gamesetup.xml", { | Engine.SwitchGuiPage("page_gamesetup.xml", { | ||||
"serverName": g_ServerName, | "serverName": g_ServerName, | ||||
"hasPassword": g_ServerHasPassword | "hasPassword": g_ServerHasPassword, | ||||
"hasACLs": g_ServerHasACLs | |||||
}); | }); | ||||
return; // don't process any more messages - leave them for the game GUI loop | return; // don't process any more messages - leave them for the game GUI loop | ||||
case "disconnected": | case "disconnected": | ||||
cancelSetup(); | cancelSetup(); | ||||
reportDisconnect(message.reason, false); | reportDisconnect(message.reason, false); | ||||
return; | return; | ||||
Show All 19 Lines | function switchSetupPage(newPage) | ||||
let multiplayerPages = Engine.GetGUIObjectByName("multiplayerPages"); | let multiplayerPages = Engine.GetGUIObjectByName("multiplayerPages"); | ||||
for (let page of multiplayerPages.children) | for (let page of multiplayerPages.children) | ||||
if (page.name.startsWith("page")) | if (page.name.startsWith("page")) | ||||
page.hidden = true; | page.hidden = true; | ||||
if (newPage == "pageJoin" || newPage == "pageHost") | if (newPage == "pageJoin" || newPage == "pageHost") | ||||
{ | { | ||||
let pageSize = multiplayerPages.size; | let pageSize = multiplayerPages.size; | ||||
let halfHeight = newPage == "pageJoin" ? 145 : Engine.HasXmppClient() ? 140 : 125; | let halfHeight = newPage == "pageJoin" ? 145 : 140; | ||||
pageSize.top = -halfHeight; | pageSize.top = -halfHeight; | ||||
pageSize.bottom = halfHeight; | pageSize.bottom = halfHeight; | ||||
multiplayerPages.size = pageSize; | multiplayerPages.size = pageSize; | ||||
} | } | ||||
else if (newPage == "pagePassword") | else if (newPage == "pagePassword") | ||||
{ | { | ||||
let pageSize = multiplayerPages.size; | let pageSize = multiplayerPages.size; | ||||
let halfHeight = 60; | let halfHeight = 60; | ||||
Show All 26 Lines | function startHost(playername, servername, port, password) | ||||
{ | { | ||||
cancelSetup(); | cancelSetup(); | ||||
hostFeedback.caption = translate("Game name already in use."); | hostFeedback.caption = translate("Game name already in use."); | ||||
return false; | return false; | ||||
} | } | ||||
let useSTUN = Engine.HasXmppClient() && Engine.GetGUIObjectByName("useSTUN").checked; | let useSTUN = Engine.HasXmppClient() && Engine.GetGUIObjectByName("useSTUN").checked; | ||||
let useACLs = Engine.GetGUIObjectByName("useACLs").checked; | |||||
try | try | ||||
{ | { | ||||
Engine.StartNetworkHost(playername + (g_UserRating ? " (" + g_UserRating + ")" : ""), port, useSTUN, password, true); | Engine.StartNetworkHost(playername + (g_UserRating ? " (" + g_UserRating + ")" : ""), port, useSTUN, password, true); | ||||
} | } | ||||
catch (e) | catch (e) | ||||
{ | { | ||||
cancelSetup(); | cancelSetup(); | ||||
messageBox( | messageBox( | ||||
400, 200, | 400, 200, | ||||
sprintf(translate("Cannot host game: %(message)s."), { "message": e.message }), | sprintf(translate("Cannot host game: %(message)s."), { "message": e.message }), | ||||
translate("Error") | translate("Error") | ||||
); | ); | ||||
return false; | return false; | ||||
} | } | ||||
g_ServerName = servername; | g_ServerName = servername; | ||||
g_ServerHasPassword = !!password; | g_ServerHasPassword = !!password; | ||||
g_ServerHasACLs = !!useACLs; | |||||
if (Engine.HasXmppClient()) | if (Engine.HasXmppClient()) | ||||
Engine.LobbySetPlayerPresence("playing"); | Engine.LobbySetPlayerPresence("playing"); | ||||
return true; | return true; | ||||
} | } | ||||
/** | /** | ||||
▲ Show 20 Lines • Show All 82 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator