aboutsummaryrefslogtreecommitdiff
path: root/src/base_tab/gamebase/PGNGameBase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/base_tab/gamebase/PGNGameBase.cpp')
-rw-r--r--src/base_tab/gamebase/PGNGameBase.cpp39
1 files changed, 30 insertions, 9 deletions
diff --git a/src/base_tab/gamebase/PGNGameBase.cpp b/src/base_tab/gamebase/PGNGameBase.cpp
index bd83abc..dc6341c 100644
--- a/src/base_tab/gamebase/PGNGameBase.cpp
+++ b/src/base_tab/gamebase/PGNGameBase.cpp
@@ -68,11 +68,16 @@ void PGNGameBase::Save(std::vector<std::uint32_t> to_ignore,
Reset();
std::uint32_t id = 0;
+ bool several = false;
while (NextGame()) {
if (std::find(to_ignore.begin(), to_ignore.end(), id) == to_ignore.end()) {
+ if (several) {
+ new_pgn.Write("\n\n");
+ } else {
+ several = true;
+ }
Game *g = GetCurrentGame();
new_pgn.Write(g->GetPGN());
- new_pgn.Write("\n\n");
delete g;
}
id++;
@@ -80,18 +85,34 @@ void PGNGameBase::Save(std::vector<std::uint32_t> to_ignore,
// Now add new games
for (Game *g : new_games) {
+ if (several) {
+ new_pgn.Write("\n\n");
+ } else {
+ several = true;
+ }
new_pgn.Write(g->GetPGN());
- new_pgn.Write("\n\n");
}
- // new_games->Reset();
- // while (new_games->NextGame()) {
- // Game *g = new_games->GetCurrentGame();
- // new_pgn.Write(g->GetPGN());
- // delete g;
- // }
-
new_pgn.Close();
wxCopyFile(tmp, file);
wxRemoveFile(tmp);
}
+
+void PGNGameBase::Save(GameBase *base) {
+ wxFile new_pgn(file, wxFile::write);
+
+ base->Reset();
+ bool several = false;
+ while (base->NextGame()) {
+ if (several) {
+ new_pgn.Write("\n\n");
+ } else {
+ several = true;
+ }
+ Game *g = base->GetCurrentGame();
+ new_pgn.Write(g->GetPGN());
+ delete g;
+ }
+
+ new_pgn.Close();
+}