diff options
Diffstat (limited to 'src/base_tab/gamebase')
| -rw-r--r-- | src/base_tab/gamebase/GameBase.cpp | 16 | ||||
| -rw-r--r-- | src/base_tab/gamebase/GameBase.hpp | 3 |
2 files changed, 18 insertions, 1 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 diff --git a/src/base_tab/gamebase/GameBase.hpp b/src/base_tab/gamebase/GameBase.hpp index b84047b..1ef5f59 100644 --- a/src/base_tab/gamebase/GameBase.hpp +++ b/src/base_tab/gamebase/GameBase.hpp @@ -43,4 +43,5 @@ std::shared_ptr<GameBase> OpenDatabase(const std::string &dbpath, bool createIfN * @param id * @return std::shared_ptr<Game> */ -std::shared_ptr<Game> OpenGameX(const std::string &dbpath, long id);
\ No newline at end of file +std::shared_ptr<Game> OpenGameX(const std::string &dbpath, long id); +void SaveGame(const std::string &dbpath, std::shared_ptr<Game> g);
\ No newline at end of file |
