diff options
Diffstat (limited to 'src/base_tab/gamebase')
| -rw-r--r-- | src/base_tab/gamebase/PGNGameBase.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/base_tab/gamebase/PGNGameBase.cpp b/src/base_tab/gamebase/PGNGameBase.cpp index a969451..01da01f 100644 --- a/src/base_tab/gamebase/PGNGameBase.cpp +++ b/src/base_tab/gamebase/PGNGameBase.cpp @@ -69,13 +69,16 @@ void PGNGameBase::Reset() { std::shared_ptr<Game> PGNGameBase::GetGame(std::uint32_t id) { Reset(); std::uint32_t curid = 0; - while (NextGame()) { - if (id == curid) { - return (GetCurrentGame()); + while(curid!= id){ + try { + pgn->GotoNextGame(); // Faster than pgn->ParseNextGame() + } catch (...) { + return nullptr; } curid++; } - return nullptr; + pgn->ParseNextGame(); + return GetCurrentGame(); } void PGNGameBase::Save(std::vector<std::uint32_t> to_delete, |
