aboutsummaryrefslogtreecommitdiff
path: root/src/base_tab/gamebase/PGNGameBase.hpp
blob: ee1c99b30e27a0588976cd1b2ce56adef7271201 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "GameBase.hpp"
#include "pgnp.hpp"

class PGNGameBase : public GameBase {
  pgnp::PGN *pgn;
  bool hasNextGame;
  std::string file;

public:
  PGNGameBase(std::string pgn_file);
  ~PGNGameBase();
  std::shared_ptr<Game> GetGame(std::uint32_t id);
  bool NextGame();
  std::shared_ptr<Game> GetCurrentGame();
  std::string GetTag(std::string tag);
  void Save(std::vector<std::uint32_t> to_ignore,
            std::vector<std::shared_ptr<GameBase>> new_games_bases,
            std::vector<std::shared_ptr<Game>> new_games);
  void Reset();
  void Export(std::shared_ptr<GameBase> base);
  static std::string GetMovesPGN(HalfMove *m, bool needDots);
  static std::string GetPGN(std::shared_ptr<Game> g);
};