aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/HalfMove.cpp16
-rw-r--r--src/HalfMove.hpp4
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 {