diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/HalfMove.cpp | 16 | ||||
| -rw-r--r-- | src/HalfMove.hpp | 4 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/HalfMove.cpp b/src/HalfMove.cpp index 81d9a67..c1e4667 100644 --- a/src/HalfMove.cpp +++ b/src/HalfMove.cpp @@ -78,4 +78,20 @@ HalfMove *HalfMove::GetHalfMoveAt(int distance) { return (tmp); } +CMI::HalfMove *HalfMove::GetAsCMI(){ + CMI::HalfMove *m=new CMI::HalfMove(); + m->SetSAN(move); + m->SetNumber(count); + m->SetIsBlack(isBlack); + m->SetComment(comment); + m->SetNAG(NAG); + if(MainLine!=NULL){ + m->SetMainline(MainLine->GetAsCMI()); + } + for (HalfMove *var : variations) { + m->AddVariation(var->GetAsCMI()); + } + return m; +} + } // namespace pgnp
\ No newline at end of file diff --git a/src/HalfMove.hpp b/src/HalfMove.hpp index 45eb96c..c836a3e 100644 --- a/src/HalfMove.hpp +++ b/src/HalfMove.hpp @@ -5,6 +5,8 @@ #include <string> #include <vector> +#include "CMI.hpp" + namespace pgnp { /** @@ -40,6 +42,8 @@ public: void Copy(HalfMove *copy); /// @brief Get HalfMove located x down the MainLine HalfMove *GetHalfMoveAt(int); + /// @brief Get CMI version of HalfMove + CMI::HalfMove *GetAsCMI(); }; struct HalfMoveOutOfRange : public std::exception { |
