1
0
forked from 0ad/0ad

Check for replay compatibility when opening summary screen

Summary screen and mainly its statistics can be influenced by mod as
much as replay itself with mod removing or adding classes and trackers
to the game.
Summary screen allows to replay the match without checking
compatibility, that is fine I think if it is prevented to see summary of
incompatible replay in a first place.

Therefore this is adding compatibility check for opening summary of
replay.

Differential revision: D3799
Fixes: #6119
Tested by: @Langbart
This was SVN commit r25268.
This commit is contained in:
Angen 2021-04-15 17:19:27 +00:00
parent 894fc1dd5d
commit f1a1cf11d3

View File

@ -101,16 +101,25 @@ function displayReplayCompatibilityError(replay)
}
/**
* Opens the summary screen of the given replay, if its data was found in that directory.
* Opens the summary screen of the given replay, if its data was found in that directory, , or shows an error message in case of incompatibility.
*/
function showReplaySummary()
{
var selected = Engine.GetGUIObjectByName("replaySelection").selected;
let selected = Engine.GetGUIObjectByName("replaySelection").selected;
if (selected == -1)
return;
let replay = g_ReplaysFiltered[selected];
if (isReplayCompatible(replay))
reallyShowReplaySummary(replay.directory);
else
displayReplayCompatibilityError(replay);
}
function reallyShowReplaySummary(directory)
{
// Load summary screen data from the selected replay directory
let simData = Engine.GetReplayMetadata(g_ReplaysFiltered[selected].directory);
let simData = Engine.GetReplayMetadata(directory);
if (!simData)
{
@ -123,8 +132,8 @@ function showReplaySummary()
"gui": {
"dialog": false,
"isReplay": true,
"replayDirectory": g_ReplaysFiltered[selected].directory,
"replaySelectionData": createReplaySelectionData(g_ReplaysFiltered[selected].directory),
"replayDirectory": directory,
"replaySelectionData": createReplaySelectionData(directory),
"summarySelection": g_SummarySelection
}
});