Index: ps/trunk/binaries/data/mods/public/gui/page_replaymenu.xml =================================================================== --- ps/trunk/binaries/data/mods/public/gui/page_replaymenu.xml +++ ps/trunk/binaries/data/mods/public/gui/page_replaymenu.xml @@ -8,5 +8,6 @@ common/sprites.xml common/styles.xml + replaymenu/sprites.xml replaymenu/replay_menu.xml Index: ps/trunk/binaries/data/mods/public/gui/replaymenu/replay_menu.js =================================================================== --- ps/trunk/binaries/data/mods/public/gui/replaymenu/replay_menu.js +++ ps/trunk/binaries/data/mods/public/gui/replaymenu/replay_menu.js @@ -254,6 +254,7 @@ Engine.GetGUIObjectByName("replayInfoEmpty").hidden = replaySelected; Engine.GetGUIObjectByName("startReplayButton").enabled = replaySelected; Engine.GetGUIObjectByName("deleteReplayButton").enabled = replaySelected; + Engine.GetGUIObjectByName("replayFilename").hidden = !replaySelected; Engine.GetGUIObjectByName("summaryButton").hidden = true; if (!replaySelected) @@ -267,6 +268,7 @@ Engine.GetGUIObjectByName("sgVictory").caption = translateVictoryCondition(replay.attribs.settings.GameType); Engine.GetGUIObjectByName("sgNbPlayers").caption = sprintf(translate("Players: %(numberOfPlayers)s"), { "numberOfPlayers": replay.attribs.settings.PlayerData.length }); + Engine.GetGUIObjectByName("replayFilename").caption = escapeText(Engine.GetReplayDirectoryName(replay.directory)); let metadata = Engine.GetReplayMetadata(replay.directory); Engine.GetGUIObjectByName("sgPlayersNames").caption = Index: ps/trunk/binaries/data/mods/public/gui/replaymenu/replay_menu.xml =================================================================== --- ps/trunk/binaries/data/mods/public/gui/replaymenu/replay_menu.xml +++ ps/trunk/binaries/data/mods/public/gui/replaymenu/replay_menu.xml @@ -65,7 +65,7 @@ + + + Index: ps/trunk/binaries/data/mods/public/gui/replaymenu/sprites.xml =================================================================== --- ps/trunk/binaries/data/mods/public/gui/replaymenu/sprites.xml +++ ps/trunk/binaries/data/mods/public/gui/replaymenu/sprites.xml @@ -0,0 +1,9 @@ + + + + + + Index: ps/trunk/source/ps/scripting/JSInterface_VisualReplay.h =================================================================== --- ps/trunk/source/ps/scripting/JSInterface_VisualReplay.h +++ ps/trunk/source/ps/scripting/JSInterface_VisualReplay.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2016 Wildfire Games. +/* Copyright (C) 2017 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -30,6 +30,7 @@ bool HasReplayMetadata(ScriptInterface::CxPrivate* pCxPrivate, const CStrW& directoryName); JS::Value GetReplayMetadata(ScriptInterface::CxPrivate* pCxPrivate, const CStrW& directoryName); void RegisterScriptFunctions(ScriptInterface& scriptInterface); + CStrW GetReplayDirectoryName(ScriptInterface::CxPrivate* pCxPrivate, const CStrW& directoryName); } #endif Index: ps/trunk/source/ps/scripting/JSInterface_VisualReplay.cpp =================================================================== --- ps/trunk/source/ps/scripting/JSInterface_VisualReplay.cpp +++ ps/trunk/source/ps/scripting/JSInterface_VisualReplay.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2016 Wildfire Games. +/* Copyright (C) 2017 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -53,6 +53,11 @@ return VisualReplay::GetReplayMetadata(pCxPrivate, directoryName); } +CStrW JSI_VisualReplay::GetReplayDirectoryName(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), const CStrW& directoryName) +{ + return OsPath(VisualReplay::GetDirectoryName() / directoryName).string(); +} + void JSI_VisualReplay::RegisterScriptFunctions(ScriptInterface& scriptInterface) { scriptInterface.RegisterFunction("GetReplays"); @@ -61,4 +66,5 @@ scriptInterface.RegisterFunction("GetReplayAttributes"); scriptInterface.RegisterFunction("GetReplayMetadata"); scriptInterface.RegisterFunction("HasReplayMetadata"); + scriptInterface.RegisterFunction("GetReplayDirectoryName"); }