diff --git a/binaries/data/mods/public/gui/page_replaymenu.xml b/binaries/data/mods/public/gui/page_replaymenu.xml
index 0510474ffb..2b699527f9 100644
--- a/binaries/data/mods/public/gui/page_replaymenu.xml
+++ b/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
diff --git a/binaries/data/mods/public/gui/replaymenu/replay_menu.js b/binaries/data/mods/public/gui/replaymenu/replay_menu.js
index e05ef4df94..80266c8919 100644
--- a/binaries/data/mods/public/gui/replaymenu/replay_menu.js
+++ b/binaries/data/mods/public/gui/replaymenu/replay_menu.js
@@ -254,6 +254,7 @@ function displayReplayDetails()
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 @@ function displayReplayDetails()
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 =
diff --git a/binaries/data/mods/public/gui/replaymenu/replay_menu.xml b/binaries/data/mods/public/gui/replaymenu/replay_menu.xml
index 19242509ca..cc7b904143 100644
--- a/binaries/data/mods/public/gui/replaymenu/replay_menu.xml
+++ b/binaries/data/mods/public/gui/replaymenu/replay_menu.xml
@@ -65,7 +65,7 @@
diff --git a/binaries/data/mods/public/gui/replaymenu/sprites.xml b/binaries/data/mods/public/gui/replaymenu/sprites.xml
new file mode 100644
index 0000000000..2b4954eab1
--- /dev/null
+++ b/binaries/data/mods/public/gui/replaymenu/sprites.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/source/ps/scripting/JSInterface_VisualReplay.cpp b/source/ps/scripting/JSInterface_VisualReplay.cpp
index dde841d08a..51a9444915 100644
--- a/source/ps/scripting/JSInterface_VisualReplay.cpp
+++ b/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 @@ JS::Value JSI_VisualReplay::GetReplayMetadata(ScriptInterface::CxPrivate* pCxPri
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 @@ void JSI_VisualReplay::RegisterScriptFunctions(ScriptInterface& scriptInterface)
scriptInterface.RegisterFunction("GetReplayAttributes");
scriptInterface.RegisterFunction("GetReplayMetadata");
scriptInterface.RegisterFunction("HasReplayMetadata");
+ scriptInterface.RegisterFunction("GetReplayDirectoryName");
}
diff --git a/source/ps/scripting/JSInterface_VisualReplay.h b/source/ps/scripting/JSInterface_VisualReplay.h
index 2c97a82ef5..9481cb0456 100644
--- a/source/ps/scripting/JSInterface_VisualReplay.h
+++ b/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 @@ namespace JSI_VisualReplay
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