commit 4d05e984
Save replays with a good filename
Changed files
| M | source/code/replayhandler.cpp before |
diff --git a/source/code/replayhandler.cpp b/source/code/replayhandler.cpp
index ade9f4b..6ebcdf1 100644
--- a/source/code/replayhandler.cpp
+++ b/source/code/replayhandler.cpp
@@ -26,20 +26,36 @@ http://www.blockattack.net
#include "cereal/archives/json.hpp"
#include "sago/SagoMisc.hpp"
-static void SaveReplayToFile(const SavedReplayStruct& sr, const char* filename) {
+static std::tm GetLocalTime() {
+ std::time_t t = std::time(nullptr);
+ std::tm ret = *std::localtime(&t);
+ return ret;
+}
+
+static std::string CreateFileName(const std::tm& t ) {
+ std::string ret = "replays/blockattack_game_";
+ char buffer[200];
+ snprintf(buffer, sizeof(buffer), "replays/blockattack_game_%i-%02i-%02iT%02i_%02i_%02i_AUTO.replay", t.tm_year+1900, t.tm_mon+1, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec);
+ ret = buffer;
+ return ret;
+}
+
+static void SaveReplayToFile(const SavedReplayStruct& sr, const std::string& filename) {
std::stringstream ss;
{
cereal::JSONOutputArchive archive(ss,cereal::JSONOutputArchive::Options::NoIndent());
archive(cereal::make_nvp("savedReplay", sr));
}
- sago::WriteFileContent(filename, ss.str());
+ sago::WriteFileContent(filename.c_str(), ss.str());
}
void SaveReplay(const BlockGameInfo& game1) {
SavedReplayStruct sr;
sr.numberOfPlayers = 1;
sr.playerInfo.push_back(game1);
- SaveReplayToFile(sr, "SavedSinglePlayerGame");
+ std::tm t = GetLocalTime();
+ std::string filename = CreateFileName(t);
+ SaveReplayToFile(sr, filename);
}
void SaveReplay(const BlockGameInfo& game1, const BlockGameInfo& game2) {
@@ -47,5 +63,7 @@ void SaveReplay(const BlockGameInfo& game1, const BlockGameInfo& game2) {
sr.numberOfPlayers = 2;
sr.playerInfo.push_back(game1);
sr.playerInfo.push_back(game2);
- SaveReplayToFile(sr, "SavedTwoPlayerGame");
+ std::tm t = GetLocalTime();
+ std::string filename = CreateFileName(t);
+ SaveReplayToFile(sr, filename);
}
\ No newline at end of file