Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/gui/loadgame/load.js
Show All 15 Lines | function init(data) | ||||
let confirmButton = Engine.GetGUIObjectByName("confirmButton"); | let confirmButton = Engine.GetGUIObjectByName("confirmButton"); | ||||
confirmButton.caption = save ? translate("Save") : translate("Load"); | confirmButton.caption = save ? translate("Save") : translate("Load"); | ||||
confirmButton.onPress = save ? () => { g_SavegameWriter.saveGame(); } : loadGame; | confirmButton.onPress = save ? () => { g_SavegameWriter.saveGame(); } : loadGame; | ||||
Engine.GetGUIObjectByName("title").caption = save ? translate("Save Game") : translate("Load Game") | Engine.GetGUIObjectByName("title").caption = save ? translate("Save Game") : translate("Load Game") | ||||
Engine.GetGUIObjectByName("saveGameDesc").hidden = !save; | Engine.GetGUIObjectByName("saveGameDesc").hidden = !save; | ||||
updateSavegameList(); | updateSavegameList(); | ||||
// Select the most recent savegame to be loaded, or no savegame to be overwritten | |||||
let gameSelection = Engine.GetGUIObjectByName("gameSelection"); | let gameSelection = Engine.GetGUIObjectByName("gameSelection"); | ||||
gameSelection.multiSelected = []; | |||||
// Select the most recent savegame to be loaded, or no savegame to be overwritten | |||||
if (!save && gameSelection.list.length) | if (!save && gameSelection.list.length) | ||||
gameSelection.selected = 0; | gameSelection.selected = 0; | ||||
else | else | ||||
selectionChanged(); | selectionChanged(); | ||||
} | } | ||||
function updateSavegameList() | function updateSavegameList() | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 82 Lines • ▼ Show 20 Lines | function updateSavegameList() | ||||
else if (gameSelection.selected >= g_SavedGamesMetadata.length) // happens when deleting the last saved game | else if (gameSelection.selected >= g_SavedGamesMetadata.length) // happens when deleting the last saved game | ||||
gameSelection.selected = g_SavedGamesMetadata.length - 1; | gameSelection.selected = g_SavedGamesMetadata.length - 1; | ||||
Engine.GetGUIObjectByName("deleteGameButton").tooltip = deleteTooltip(); | Engine.GetGUIObjectByName("deleteGameButton").tooltip = deleteTooltip(); | ||||
} | } | ||||
function selectionChanged() | function selectionChanged() | ||||
{ | { | ||||
let metadata = g_SavedGamesMetadata[Engine.GetGUIObjectByName("gameSelection").selected]; | let gameSelection = Engine.GetGUIObjectByName("gameSelection"); | ||||
let index = gameSelection.multiSelected.length ? gameSelection.multiSelected[0] : -1; | |||||
let metadata = g_SavedGamesMetadata[index]; | |||||
Engine.GetGUIObjectByName("invalidGame").hidden = !!metadata; | Engine.GetGUIObjectByName("invalidGame").hidden = !!metadata; | ||||
Engine.GetGUIObjectByName("validGame").hidden = !metadata; | Engine.GetGUIObjectByName("validGame").hidden = !metadata; | ||||
Engine.GetGUIObjectByName("confirmButton").enabled = !!metadata || Engine.IsGameStarted(); | |||||
Engine.GetGUIObjectByName("confirmButton").enabled = | |||||
(!!metadata || Engine.IsGameStarted()) && | |||||
gameSelection.multiSelected.length == 1;; | |||||
Engine.GetGUIObjectByName("deleteGameButton").enabled = !!metadata; | Engine.GetGUIObjectByName("deleteGameButton").enabled = !!metadata; | ||||
if (!metadata) | if (!metadata) | ||||
return; | return; | ||||
Engine.GetGUIObjectByName("savedMapName").caption = translate(metadata.initAttributes.settings.Name); | Engine.GetGUIObjectByName("savedMapName").caption = translate(metadata.initAttributes.settings.Name); | ||||
Engine.GetGUIObjectByName("savedInfoPreview").sprite = getMapPreviewImage( | Engine.GetGUIObjectByName("savedInfoPreview").sprite = getMapPreviewImage( | ||||
getMapDescriptionAndPreview(metadata.initAttributes.mapType, metadata.initAttributes.map, metadata.initAttributes).preview); | getMapDescriptionAndPreview(metadata.initAttributes.mapType, metadata.initAttributes.map, metadata.initAttributes).preview); | ||||
Show All 12 Lines | Engine.GetGUIObjectByName("savedPlayersNames").caption = formatPlayerInfo( | ||||
metadata.initAttributes.settings.PlayerData, | metadata.initAttributes.settings.PlayerData, | ||||
metadata.gui.states | metadata.gui.states | ||||
); | ); | ||||
} | } | ||||
function loadGame() | function loadGame() | ||||
{ | { | ||||
let gameSelection = Engine.GetGUIObjectByName("gameSelection"); | let gameSelection = Engine.GetGUIObjectByName("gameSelection"); | ||||
let gameId = gameSelection.list_data[gameSelection.selected]; | let gameId = gameSelection.list_data[gameSelection.multiSelected[0]]; | ||||
let metadata = g_SavedGamesMetadata[gameSelection.selected]; | let metadata = g_SavedGamesMetadata[gameSelection.multiSelected[0]]; | ||||
// Check compatibility before really loading it | // Check compatibility before really loading it | ||||
let engineInfo = Engine.GetEngineInfo(); | let engineInfo = Engine.GetEngineInfo(); | ||||
let sameMods = hasSameMods(metadata.mods, engineInfo.mods); | let sameMods = hasSameMods(metadata.mods, engineInfo.mods); | ||||
let sameEngineVersion = hasSameEngineVersion(metadata, engineInfo); | let sameEngineVersion = hasSameEngineVersion(metadata, engineInfo); | ||||
if (sameEngineVersion && sameMods) | if (sameEngineVersion && sameMods) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 57 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator