aboutsummaryrefslogtreecommitdiff
path: root/src/base_tab/gamebase/GameBase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/base_tab/gamebase/GameBase.cpp')
-rw-r--r--src/base_tab/gamebase/GameBase.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/base_tab/gamebase/GameBase.cpp b/src/base_tab/gamebase/GameBase.cpp
index 3d7b5d3..a5710df 100644
--- a/src/base_tab/gamebase/GameBase.cpp
+++ b/src/base_tab/gamebase/GameBase.cpp
@@ -16,4 +16,20 @@ std::shared_ptr<GameBase> OpenDatabase(const std::string &dbpath, bool createIfN
std::shared_ptr<Game> OpenGameX(const std::string &dbpath, long id){
std::shared_ptr<GameBase> base=OpenDatabase(dbpath);
return base->GetGame(id);
+}
+
+void SaveGame(const std::string &dbpath, std::shared_ptr<Game> g){
+ wxFileName file(dbpath);
+ wxString ext = file.GetExt().Lower();
+ // Create data structure
+ std::vector<std::shared_ptr<Game>> new_games;
+ new_games.push_back(g);
+ std::vector<std::string> dummy_empty_bases;
+ std::vector<std::uint32_t> dummy_empty_ignores;
+ // Save the game
+ if (ext == "pgn") {
+ PGNGameBase::CreateDatabaseFile(dbpath); // Erase if exist
+ GameBase *b=new PGNGameBase(dbpath);
+ b->Save(dummy_empty_ignores,dummy_empty_bases, new_games);
+ }
} \ No newline at end of file