Move PGN export to the right place

This commit is contained in:
Loic Guegan 2022-03-01 15:58:02 +01:00
parent 9cba705e66
commit cb4f5ada5c
6 changed files with 61 additions and 54 deletions

View file

@ -99,7 +99,6 @@ bool Game::Play(std::string move) {
if (moves == NULL) {
moves = m;
}
wxLogDebug("%s", GetPGN());
return (true);
}
return (false);
@ -139,17 +138,7 @@ std::string Game::GetFen() {
return (current->GetFen());
}
std::string Game::GetPGN() {
std::string pgn;
if (moves != NULL) {
for (auto const &element : tags) {
pgn += '[' + element.first + " \"" + element.second + "\"]\n";
}
pgn += moves->GetPGN();
}
pgn += " " + result;
return (pgn);
}
std::string Game::GetResult() { return (result); }
void Game::SetResult(std::string result) { this->result = result; }

View file

@ -26,6 +26,7 @@ public:
HalfMove *GetCurrentMove();
HalfMove *GetMoves();
std::string GetFen();
std::string GetResult();
bool Play(std::string move);
bool IsBlackToPlay();
void Previous();
@ -35,7 +36,6 @@ public:
void SetMoveAsMainline(HalfMove *m);
void SetCurrent(HalfMove *m);
std::vector<std::string> ListTags();
std::string GetPGN();
void SetResult(std::string result);
/**
* @brief Build current game

View file

@ -172,42 +172,9 @@ bool HalfMove::IsVariation() {
std::string HalfMove::GetFen() { return (fen); }
std::string HalfMove::GetPGN() { return (GetPGN(IsBlack)); }
std::vector<HalfMove *> HalfMove::GetVariations() { return (variations); }
std::string HalfMove::GetPGN(bool needDots) {
std::string part;
bool newNeedDots = false;
if (!IsBlack || needDots) {
part += std::to_string(Number) + ".";
if (needDots) {
part += "..";
}
}
part += move;
if (GetNbLineComment() > 0) {
part += " {";
part += GetComment();
part += "}";
newNeedDots = true;
}
if (variations.size() > 0) {
newNeedDots = true;
for (HalfMove *v : variations) {
part += " (";
part += v->GetPGN(IsBlack);
part += ")";
}
}
if (mainline != NULL) {
part += " " + mainline->GetPGN(!IsBlack && newNeedDots);
}
return (part);
}
bool HalfMove::IsABlackMove() { return (IsBlack); }
void HalfMove::BuildAndVerify(HalfMove *m, std::string fen) {
arbiter.Setup(fen);

View file

@ -20,7 +20,6 @@ class HalfMove : public cgeditor::CGEHalfMove {
std::vector<HalfMove *> variations;
std::string fen;
char capture;
std::string GetPGN(bool needDots);
void BuildAndVerify(HalfMove *m, std::string fen);
public:
@ -47,6 +46,8 @@ public:
/// @brief Get parent of the current move
HalfMove *GetParent();
HalfMove *GetMainline();
std::vector<HalfMove *> GetVariations();
std::map<char, std::uint8_t> GetLineCaptures();
/// @brief Set parent of the current move
@ -54,7 +55,7 @@ public:
std::string GetFen();
void SetFen(std::string fen);
void SetCapture(char c);
std::string GetPGN();
bool IsABlackMove();
/**
* @brief Build current move