2013-07-21 02:23:57 +02:00
|
|
|
function sortDecreasingDate(a, b)
|
|
|
|
{
|
|
|
|
return b.metadata.time - a.metadata.time;
|
|
|
|
}
|
|
|
|
|
2014-01-21 23:49:42 +01:00
|
|
|
function generateLabel(metadata, engineInfo)
|
2013-07-21 02:23:57 +02:00
|
|
|
{
|
2014-04-20 22:51:48 +02:00
|
|
|
var dateTimeString = Engine.FormatMillisecondsIntoDateString(metadata.time*1000, translate("yyyy-MM-dd HH:mm:ss"));
|
2014-11-16 03:10:28 +01:00
|
|
|
var dateString = sprintf(translate("\\[%(date)s]"), { date: dateTimeString });
|
2014-01-21 23:49:42 +01:00
|
|
|
if (engineInfo)
|
|
|
|
{
|
|
|
|
if (!hasSameVersion(metadata, engineInfo))
|
2014-04-20 22:51:48 +02:00
|
|
|
dateString = "[color=\"red\"]" + dateString + "[/color]";
|
2014-01-21 23:49:42 +01:00
|
|
|
else if (!hasSameMods(metadata, engineInfo))
|
2014-04-20 22:51:48 +02:00
|
|
|
dateString = "[color=\"orange\"]" + dateString + "[/color]";
|
2014-01-21 23:49:42 +01:00
|
|
|
}
|
2014-04-20 22:51:48 +02:00
|
|
|
if (metadata.description)
|
|
|
|
return sprintf(translate("%(dateString)s %(map)s - %(description)s"), { dateString: dateString, map: metadata.initAttributes.map, description: metadata.description });
|
|
|
|
else
|
|
|
|
return sprintf(translate("%(dateString)s %(map)s"), { dateString: dateString, map: metadata.initAttributes.map });
|
2014-01-21 23:49:42 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Check the version compatibility between the saved game to be loaded and the engine
|
|
|
|
*/
|
|
|
|
function hasSameVersion(metadata, engineInfo)
|
|
|
|
{
|
|
|
|
return (metadata.version_major == engineInfo.version_major);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Check the mod compatibility between the saved game to be loaded and the engine
|
|
|
|
*/
|
|
|
|
function hasSameMods(metadata, engineInfo)
|
|
|
|
{
|
|
|
|
if (!metadata.mods) // only here for backwards compatibility with previous saved games
|
|
|
|
var gameMods = [];
|
|
|
|
else
|
|
|
|
var gameMods = metadata.mods;
|
|
|
|
|
|
|
|
if (gameMods.length != engineInfo.mods.length)
|
|
|
|
return false;
|
|
|
|
for (var i = 0; i < gameMods.length; ++i)
|
|
|
|
if (gameMods[i] != engineInfo.mods[i])
|
|
|
|
return false;
|
|
|
|
return true;
|
2013-07-21 02:23:57 +02:00
|
|
|
}
|