Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/gui/gamesetup/gamesetup.js
const g_MatchSettings_SP = "config/matchsettings.json"; | const g_MatchSettings_SP = "config/matchsettings.json"; | ||||
const g_MatchSettings_MP = "config/matchsettings.mp.json"; | const g_MatchSettings_MP = "config/matchsettings.mp.json"; | ||||
const g_Ceasefire = prepareForDropdown(g_Settings && g_Settings.Ceasefire); | const g_Ceasefire = prepareForDropdown(g_Settings && g_Settings.Ceasefire); | ||||
const g_MapSizes = prepareForDropdown(g_Settings && g_Settings.MapSizes); | const g_MapSizes = prepareForDropdown(g_Settings && g_Settings.MapSizes); | ||||
const g_MapTypes = prepareForDropdown(g_Settings && g_Settings.MapTypes); | const g_MapTypes = prepareForDropdown(g_Settings && g_Settings.MapTypes); | ||||
const g_TriggerDifficulties = prepareForDropdown(g_Settings && g_Settings.TriggerDifficulties); | const g_TriggerDifficulties = prepareForDropdown(g_Settings && g_Settings.TriggerDifficulties); | ||||
const g_PopulationCapacities = prepareForDropdown(g_Settings && g_Settings.PopulationCapacities); | const g_PopulationCapacities = prepareForDropdown(g_Settings && g_Settings.PopulationCapacities); | ||||
const g_StartingResources = prepareForDropdown(g_Settings && g_Settings.StartingResources); | const g_StartingResources = prepareForDropdown(g_Settings && g_Settings.StartingResources); | ||||
const g_VictoryDurations = prepareForDropdown(g_Settings && g_Settings.VictoryDurations); | const g_VictoryDurations = prepareForDropdown(g_Settings && g_Settings.VictoryDurations); | ||||
const g_VictoryConditions = g_Settings && g_Settings.VictoryConditions; | const g_VictoryConditions = g_Settings && g_Settings.VictoryConditions; | ||||
var g_GameSpeeds = getGameSpeedChoices(false); | var g_GameSpeeds = getGameSpeedChoices(false); | ||||
var g_NetworkDialogManager = new NetworkDialogManager(); | |||||
/** | /** | ||||
* Offer users to select playable civs only. | * Offer users to select playable civs only. | ||||
* Load unselectable civs as they could appear in scenario maps. | * Load unselectable civs as they could appear in scenario maps. | ||||
*/ | */ | ||||
const g_CivData = loadCivData(false, false); | const g_CivData = loadCivData(false, false); | ||||
/** | /** | ||||
* Store civilization code and page (structree or history) opened in civilization info. | * Store civilization code and page (structree or history) opened in civilization info. | ||||
▲ Show 20 Lines • Show All 112 Lines • ▼ Show 20 Lines | var g_ReadyData = [ | ||||
} | } | ||||
]; | ]; | ||||
/** | /** | ||||
* Processes a CNetMessage (see NetMessage.h, NetMessages.h) sent by the CNetServer. | * Processes a CNetMessage (see NetMessage.h, NetMessages.h) sent by the CNetServer. | ||||
*/ | */ | ||||
var g_NetMessageTypes = { | var g_NetMessageTypes = { | ||||
"netstatus": msg => handleNetStatusMessage(msg), | "netstatus": msg => handleNetStatusMessage(msg), | ||||
"netwarn": msg => addNetworkWarning(msg), | |||||
"gamesetup": msg => handleGamesetupMessage(msg), | "gamesetup": msg => handleGamesetupMessage(msg), | ||||
"players": msg => handlePlayerAssignmentMessage(msg), | "players": msg => handlePlayerAssignmentMessage(msg), | ||||
"ready": msg => handleReadyMessage(msg), | "ready": msg => handleReadyMessage(msg), | ||||
"start": msg => handleGamestartMessage(msg), | "start": msg => handleGamestartMessage(msg), | ||||
"kicked": msg => addChatMessage({ | "kicked": msg => addChatMessage({ | ||||
"type": msg.banned ? "banned" : "kicked", | "type": msg.banned ? "banned" : "kicked", | ||||
"username": msg.username | "username": msg.username | ||||
}), | }), | ||||
▲ Show 20 Lines • Show All 906 Lines • ▼ Show 20 Lines | var g_MiscControls = { | ||||
}, | }, | ||||
"lobbyButton": { | "lobbyButton": { | ||||
"onPress": () => function() { | "onPress": () => function() { | ||||
if (Engine.HasXmppClient()) | if (Engine.HasXmppClient()) | ||||
Engine.PushGuiPage("page_lobby.xml", { "dialog": true }); | Engine.PushGuiPage("page_lobby.xml", { "dialog": true }); | ||||
}, | }, | ||||
"hidden": () => !Engine.HasXmppClient() | "hidden": () => !Engine.HasXmppClient() | ||||
}, | }, | ||||
"networkButton": { | |||||
"onPress": () => function() { | |||||
if (g_IsNetworked) | |||||
g_NetworkDialogManager.open(); | |||||
}, | |||||
"hidden": () => !g_IsNetworked | |||||
}, | |||||
"spTips": { | "spTips": { | ||||
"hidden": () => { | "hidden": () => { | ||||
let settingsPanel = Engine.GetGUIObjectByName("settingsPanel"); | let settingsPanel = Engine.GetGUIObjectByName("settingsPanel"); | ||||
let spTips = Engine.GetGUIObjectByName("spTips"); | let spTips = Engine.GetGUIObjectByName("spTips"); | ||||
return g_IsNetworked || | return g_IsNetworked || | ||||
Engine.ConfigDB_GetValue("user", "gui.gamesetup.enabletips") !== "true" || | Engine.ConfigDB_GetValue("user", "gui.gamesetup.enabletips") !== "true" || | ||||
spTips.size.right > settingsPanel.getComputedSize().left; | spTips.size.right > settingsPanel.getComputedSize().left; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 326 Lines • ▼ Show 20 Lines | for (let tab in g_SettingsTabsGUI) | ||||
g_SettingsTabsGUI[tab].tooltip = | g_SettingsTabsGUI[tab].tooltip = | ||||
sprintf(translate("Toggle the %(name)s settings tab."), { "name": g_SettingsTabsGUI[tab].label }) + | sprintf(translate("Toggle the %(name)s settings tab."), { "name": g_SettingsTabsGUI[tab].label }) + | ||||
colorizeHotkey("\n" + translate("Use %(hotkey)s to move a settings tab down."), "tab.next") + | colorizeHotkey("\n" + translate("Use %(hotkey)s to move a settings tab down."), "tab.next") + | ||||
colorizeHotkey("\n" + translate("Use %(hotkey)s to move a settings tab up."), "tab.prev"); | colorizeHotkey("\n" + translate("Use %(hotkey)s to move a settings tab up."), "tab.prev"); | ||||
let settingTabButtons = Engine.GetGUIObjectByName("settingTabButtons"); | let settingTabButtons = Engine.GetGUIObjectByName("settingTabButtons"); | ||||
let settingTabButtonsSize = settingTabButtons.size; | let settingTabButtonsSize = settingTabButtons.size; | ||||
settingTabButtonsSize.bottom = settingTabButtonsSize.top + g_SettingsTabsGUI.length * (g_TabButtonHeight + g_TabButtonDist); | settingTabButtonsSize.bottom = settingTabButtonsSize.top + g_SettingsTabsGUI.length * (g_TabButtonHeight + g_TabButtonDist); | ||||
settingTabButtonsSize.right = g_MiscControls.lobbyButton.hidden() ? | settingTabButtonsSize.right = (g_MiscControls.lobbyButton.hidden() && g_MiscControls.networkButton.hidden()) ? | ||||
settingTabButtonsSize.right : | settingTabButtonsSize.right : | ||||
Engine.GetGUIObjectByName("lobbyButton").size.left - g_LobbyButtonSpacing; | Engine.GetGUIObjectByName("lobbyButton").size.left - g_LobbyButtonSpacing; | ||||
settingTabButtons.size = settingTabButtonsSize; | settingTabButtons.size = settingTabButtonsSize; | ||||
let settingTabButtonsBackground = Engine.GetGUIObjectByName("settingTabButtonsBackground"); | let settingTabButtonsBackground = Engine.GetGUIObjectByName("settingTabButtonsBackground"); | ||||
settingTabButtonsBackground.size = settingTabButtonsSize; | settingTabButtonsBackground.size = settingTabButtonsSize; | ||||
let gameDescription = Engine.GetGUIObjectByName("mapInfoDescriptionFrame"); | let gameDescription = Engine.GetGUIObjectByName("mapInfoDescriptionFrame"); | ||||
▲ Show 20 Lines • Show All 150 Lines • ▼ Show 20 Lines | function handleGamesetupMessage(message) | ||||
} | } | ||||
Engine.SetRankedGame(!!g_GameAttributes.settings.RatingEnabled); | Engine.SetRankedGame(!!g_GameAttributes.settings.RatingEnabled); | ||||
resetReadyData(); | resetReadyData(); | ||||
updateGUIObjects(); | updateGUIObjects(); | ||||
g_NetworkDialogManager.refresh(); | |||||
hideLoadingWindow(); | hideLoadingWindow(); | ||||
} | } | ||||
/** | /** | ||||
* Called whenever a client joins/leaves or any gamesetting is changed. | * Called whenever a client joins/leaves or any gamesetting is changed. | ||||
*/ | */ | ||||
function handlePlayerAssignmentMessage(message) | function handlePlayerAssignmentMessage(message) | ||||
{ | { | ||||
Show All 17 Lines | function handlePlayerAssignmentMessage(message) | ||||
sanitizePlayerData(g_GameAttributes.settings.PlayerData); | sanitizePlayerData(g_GameAttributes.settings.PlayerData); | ||||
updateGUIObjects(); | updateGUIObjects(); | ||||
if (playerChange) | if (playerChange) | ||||
sendRegisterGameStanzaImmediate(); | sendRegisterGameStanzaImmediate(); | ||||
else | else | ||||
sendRegisterGameStanza(); | sendRegisterGameStanza(); | ||||
g_NetworkDialogManager.refresh(); | |||||
} | } | ||||
function onClientJoin(newGUID, newAssignments) | function onClientJoin(newGUID, newAssignments) | ||||
{ | { | ||||
let playername = newAssignments[newGUID].name; | let playername = newAssignments[newGUID].name; | ||||
addChatMessage({ | addChatMessage({ | ||||
"type": "connect", | "type": "connect", | ||||
▲ Show 20 Lines • Show All 375 Lines • ▼ Show 20 Lines | function onTick() | ||||
{ | { | ||||
initGUIObjects(); | initGUIObjects(); | ||||
++g_LoadingState; | ++g_LoadingState; | ||||
} | } | ||||
else if (g_LoadingState == 2) | else if (g_LoadingState == 2) | ||||
handleNetMessages(); | handleNetMessages(); | ||||
updateTimers(); | updateTimers(); | ||||
pollNetworkWarnings(); | |||||
let now = Date.now(); | let now = Date.now(); | ||||
let tickLength = now - g_LastTickTime; | let tickLength = now - g_LastTickTime; | ||||
g_LastTickTime = now; | g_LastTickTime = now; | ||||
slideSettingsPanel(tickLength); | slideSettingsPanel(tickLength); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 759 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator