Index: binaries/data/mods/mod/gui/modmod/modmod.js =================================================================== --- binaries/data/mods/mod/gui/modmod/modmod.js +++ binaries/data/mods/mod/gui/modmod/modmod.js @@ -26,7 +26,7 @@ /** * Every mod needs to define these properties. */ -var g_RequiredProperties = ["name", "label", "description", "dependencies", "version"]; +var g_RequiredProperties = ["name", "label", "description", "dependencies", "version", "label_version"]; /** * Version checks in mod dependencies can use these operators. @@ -84,7 +84,9 @@ if (g_RequiredProperties.every(prop => mods[folder][prop] !== undefined)) g_Mods[folder] = mods[folder]; else - warn("Skipping mod '" + mod + "' which does not define '" + property + "'."); + warn("Skipping incomplete mod '" + folder + "'"); + + translateObjectKeys(g_Mods, ["label", "label_version", "description"]); deepfreeze(g_Mods); Index: binaries/data/mods/public/gui/common/functions_utility.js =================================================================== --- binaries/data/mods/public/gui/common/functions_utility.js +++ binaries/data/mods/public/gui/common/functions_utility.js @@ -7,6 +7,11 @@ "nick": { "soundfile": "audio/interface/ui/chat_alert.ogg", "threshold": 3000 } }; +function getCurrentModInfo() +{ + return Engine.ReadJSONFile("mod.json"); +} + // Get list of XML files in pathname with recursion, excepting those starting with _ function getXMLFileList(pathname) { Index: binaries/data/mods/public/gui/pregame/mainmenu.js =================================================================== --- binaries/data/mods/public/gui/pregame/mainmenu.js +++ binaries/data/mods/public/gui/pregame/mainmenu.js @@ -2,6 +2,8 @@ var MARGIN = 4; // menu border size var g_ShowSplashScreens; +var g_ModFont = "sans-bold-16"; + /** * Available backdrops */ @@ -21,6 +23,12 @@ global.music.setState(global.music.states.MENU); + Engine.GetGUIObjectByName("versionLabel").caption = + '[font="' + g_ModFont + '"]' + + translate(getCurrentModInfo().label_version) + + "[/font]" + "\n\n" + + translate("WARNING: This is an early development version of the game. Many features have not been added yet."); + // Initialize currentSubmenuType with placeholder to avoid null when switching currentSubmenuType = "submenuSinglePlayer"; Index: binaries/data/mods/public/gui/pregame/mainmenu.xml =================================================================== --- binaries/data/mods/public/gui/pregame/mainmenu.xml +++ binaries/data/mods/public/gui/pregame/mainmenu.xml @@ -520,20 +520,13 @@ - - - [font="sans-bold-16"] - Alpha XXIII: Ken Wood - [/font]\n\n - WARNING: This is an early development version of the game. Many features have not been added yet. - - + /> - - ALPHA XXIII : Ken Wood - this.caption = getBuildString() Index: binaries/data/mods/public/l10n/messages.json =================================================================== --- binaries/data/mods/public/l10n/messages.json +++ binaries/data/mods/public/l10n/messages.json @@ -296,6 +296,19 @@ { "extractor": "json", "filemasks": [ + "mod.json" + ], + "options": { + "keywords": [ + "label", + "label_version", + "description" + ] + } + }, + { + "extractor": "json", + "filemasks": [ "gui/credits/texts/**.json" ], "options": { Index: binaries/data/mods/public/mod.json =================================================================== --- binaries/data/mods/public/mod.json +++ binaries/data/mods/public/mod.json @@ -2,6 +2,7 @@ "name": "0ad", "version": "0.0.23", "label": "0 A.D. Empires Ascendant", + "label_version": "ALPHA XXIII: Ken Wood", "url": "play0ad.com", "description": "A free, open-source, historical RTS game.", "dependencies": [],