mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-06-20 23:24:16 +00:00
Remove Engine.SwitchGuiPage from replay menu
This commit is contained in:
@@ -37,17 +37,30 @@ function createReplaySelectionData(selectedDirectory)
|
||||
/**
|
||||
* Starts the selected visual replay, or shows an error message in case of incompatibility.
|
||||
*/
|
||||
function startReplay()
|
||||
function startReplayHandler()
|
||||
{
|
||||
var selected = Engine.GetGUIObjectByName("replaySelection").selected;
|
||||
if (selected == -1)
|
||||
return;
|
||||
return new Promise(resolve =>
|
||||
{
|
||||
const startReplay = () =>
|
||||
{
|
||||
const selected = Engine.GetGUIObjectByName("replaySelection").selected;
|
||||
if (selected == -1)
|
||||
return;
|
||||
|
||||
var replay = g_ReplaysFiltered[selected];
|
||||
if (isReplayCompatible(replay))
|
||||
reallyStartVisualReplay(replay.directory);
|
||||
else
|
||||
displayReplayCompatibilityError(replay);
|
||||
const replay = g_ReplaysFiltered[selected];
|
||||
if (!isReplayCompatible(replay))
|
||||
{
|
||||
displayReplayCompatibilityError(replay);
|
||||
return;
|
||||
}
|
||||
|
||||
const ret = reallyStartVisualReplay(replay.directory);
|
||||
if (ret !== undefined)
|
||||
resolve(ret);
|
||||
};
|
||||
Engine.GetGUIObjectByName("startReplayButton").onPress = startReplay;
|
||||
Engine.GetGUIObjectByName("replaySelection").onMouseLeftDoubleClickItem = startReplay;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -60,20 +73,23 @@ function reallyStartVisualReplay(replayDirectory)
|
||||
if (!Engine.StartVisualReplay(replayDirectory))
|
||||
{
|
||||
warn('Replay "' + escapeText(Engine.GetReplayDirectoryName(replayDirectory)) + '" not found! Please click on reload cache.');
|
||||
return;
|
||||
return undefined;
|
||||
}
|
||||
|
||||
Engine.SwitchGuiPage("page_loading.xml", {
|
||||
"attribs": Engine.GetReplayAttributes(replayDirectory),
|
||||
"playerAssignments": {
|
||||
"local": {
|
||||
"name": singleplayerName(),
|
||||
"player": -1
|
||||
}
|
||||
},
|
||||
"savedGUIData": "",
|
||||
"replaySelectionData": createReplaySelectionData(replayDirectory)
|
||||
});
|
||||
return {
|
||||
"page": "page_loading.xml",
|
||||
"argument": {
|
||||
"attribs": Engine.GetReplayAttributes(replayDirectory),
|
||||
"playerAssignments": {
|
||||
"local": {
|
||||
"name": singleplayerName(),
|
||||
"player": -1
|
||||
}
|
||||
},
|
||||
"savedGUIData": "",
|
||||
"replaySelectionData": createReplaySelectionData(replayDirectory)
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -106,15 +122,26 @@ function displayReplayCompatibilityError(replay)
|
||||
*/
|
||||
function showReplaySummary()
|
||||
{
|
||||
const selected = Engine.GetGUIObjectByName("replaySelection").selected;
|
||||
if (selected == -1)
|
||||
return;
|
||||
return new Promise(closePageCallback =>
|
||||
{
|
||||
Engine.GetGUIObjectByName("summaryButton").onPress = () =>
|
||||
{
|
||||
const selected = Engine.GetGUIObjectByName("replaySelection").selected;
|
||||
if (selected == -1)
|
||||
return;
|
||||
|
||||
const replay = g_ReplaysFiltered[selected];
|
||||
if (isReplayCompatible(replay))
|
||||
reallyShowReplaySummary(replay.directory);
|
||||
else
|
||||
displayReplayCompatibilityError(replay);
|
||||
const replay = g_ReplaysFiltered[selected];
|
||||
if (!isReplayCompatible(replay))
|
||||
{
|
||||
displayReplayCompatibilityError(replay);
|
||||
return;
|
||||
}
|
||||
|
||||
const ret = reallyShowReplaySummary(replay.directory);
|
||||
if (ret !== undefined)
|
||||
closePageCallback(ret);
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
function reallyShowReplaySummary(directory)
|
||||
@@ -125,19 +152,22 @@ function reallyShowReplaySummary(directory)
|
||||
if (!simData)
|
||||
{
|
||||
messageBox(500, 200, translate("No summary data available."), translate("Error"));
|
||||
return;
|
||||
return undefined;
|
||||
}
|
||||
|
||||
Engine.SwitchGuiPage("page_summary.xml", {
|
||||
"sim": simData,
|
||||
"gui": {
|
||||
"dialog": false,
|
||||
"isReplay": true,
|
||||
"replayDirectory": directory,
|
||||
"replaySelectionData": createReplaySelectionData(directory),
|
||||
"summarySelection": g_SummarySelection
|
||||
return {
|
||||
"page": "page_summary.xml",
|
||||
"argument": {
|
||||
"sim": simData,
|
||||
"gui": {
|
||||
"dialog": false,
|
||||
"isReplay": true,
|
||||
"replayDirectory": directory,
|
||||
"replaySelectionData": createReplaySelectionData(directory),
|
||||
"summarySelection": g_SummarySelection
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
function reloadCache()
|
||||
|
||||
@@ -58,12 +58,13 @@ var g_MapCache = new MapCache();
|
||||
/**
|
||||
* Initializes globals, loads replays and displays the list.
|
||||
*/
|
||||
function init(data)
|
||||
async function init(data)
|
||||
{
|
||||
if (!g_Settings)
|
||||
{
|
||||
Engine.SwitchGuiPage("page_pregame.xml");
|
||||
return;
|
||||
return { [Engine.openRequest]: {
|
||||
"page": "page_pregame.xml"
|
||||
} };
|
||||
}
|
||||
|
||||
g_SummarySelection = data && data.summarySelection;
|
||||
@@ -72,12 +73,23 @@ function init(data)
|
||||
|
||||
if (!g_Replays)
|
||||
{
|
||||
Engine.SwitchGuiPage("page_pregame.xml");
|
||||
return;
|
||||
return { [Engine.openRequest]: {
|
||||
"page": "page_pregame.xml"
|
||||
} };
|
||||
}
|
||||
|
||||
initHotkeyTooltips();
|
||||
displayReplayList();
|
||||
|
||||
const closePromise = new Promise(closePageCallback =>
|
||||
{
|
||||
Engine.GetGUIObjectByName("mainMenu").onPress = closePageCallback.bind(undefined, {
|
||||
"page": "page_pregame.xml"
|
||||
});
|
||||
});
|
||||
|
||||
const ret = await Promise.race([ closePromise, startReplayHandler(), showReplaySummary() ]);
|
||||
return { [Engine.openRequest]: ret };
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -64,7 +64,6 @@
|
||||
|
||||
<action on="SelectionChange">displayReplayDetails();</action>
|
||||
<action on="SelectionColumnChange">displayReplayList();</action>
|
||||
<action on="MouseLeftDoubleClickItem">startReplay();</action>
|
||||
|
||||
<!-- Columns -->
|
||||
<column id="months" textcolor="172 172 212" width="12%">
|
||||
@@ -224,9 +223,8 @@
|
||||
<object name="bottomPanel" size="25 100%-56 100%-5 100%-24" >
|
||||
|
||||
<!-- Main Menu Button -->
|
||||
<object type="button" style="StoneButton" size="0 0 19% 100%">
|
||||
<object name="mainMenu" type="button" style="StoneButton" size="0 0 19% 100%">
|
||||
<translatableAttribute id="caption">Main Menu</translatableAttribute>
|
||||
<action on="Press">Engine.SwitchGuiPage("page_pregame.xml");</action>
|
||||
</object>
|
||||
|
||||
<!-- Delete Button -->
|
||||
@@ -245,13 +243,11 @@
|
||||
<!-- Summary Button -->
|
||||
<object name="summaryButton" type="button" style="StoneButton" size="60% 0 79% 100%" hotkey="summary">
|
||||
<translatableAttribute id="caption">Summary</translatableAttribute>
|
||||
<action on="Press">showReplaySummary();</action>
|
||||
</object>
|
||||
|
||||
<!-- Start Replay Button -->
|
||||
<object name="startReplayButton" type="button" style="StoneButton" size="80% 0 99% 100%">
|
||||
<translatableAttribute id="caption">Start Replay</translatableAttribute>
|
||||
<action on="Press">startReplay();</action>
|
||||
</object>
|
||||
|
||||
</object>
|
||||
|
||||
Reference in New Issue
Block a user