diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2023-01-19 15:51:12 +0100 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2023-01-19 15:51:12 +0100 |
| commit | 81f06cb209d9d3f092e3ed0ef2e2dbc6b288f1de (patch) | |
| tree | e610487345e8f8ea78571d262946e978b7ae6247 /src | |
| parent | da8857549304590d8d32e643a22617318add542a (diff) | |
Integrate Chess Move Interface
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 { |
