aboutsummaryrefslogtreecommitdiff
path: root/examples/wxWidgets/MyHalfMove.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/wxWidgets/MyHalfMove.cpp')
-rw-r--r--examples/wxWidgets/MyHalfMove.cpp122
1 files changed, 7 insertions, 115 deletions
diff --git a/examples/wxWidgets/MyHalfMove.cpp b/examples/wxWidgets/MyHalfMove.cpp
index 0e08113..510ff70 100644
--- a/examples/wxWidgets/MyHalfMove.cpp
+++ b/examples/wxWidgets/MyHalfMove.cpp
@@ -1,114 +1,6 @@
#include "MyHalfMove.hpp"
-MyHalfMove::MyHalfMove(std::string move) { this->move = move; }
-MyHalfMove::~MyHalfMove() {}
-
-void MyHalfMove::AddVariation(MyHalfMove *m) {
- m->IsBlack = this->IsBlack;
- m->Number = this->Number;
- MyHalfMove::variations.push_back(m);
- cgeditor::CGEHalfMove::variations.push_back(m);
- m->SetParent(this);
-}
-
-void MyHalfMove::SetMainline(MyHalfMove *m) {
- if (!this->IsBlack) {
- m->IsBlack = true;
- m->Number = this->Number;
- } else {
- m->IsBlack = false;
- m->Number = this->Number + 1;
- }
- MyHalfMove::mainline = m;
- cgeditor::CGEHalfMove::MainLine = m;
- if (m != NULL) {
- m->SetParent(this);
- }
-}
-void MyHalfMove::SetParent(MyHalfMove *m) {
- MyHalfMove::parent = m;
- CGEHalfMove::Parent = m;
-}
-void MyHalfMove::RemoveChild(MyHalfMove *m) {
- std::uint32_t i = 0;
- bool found = false;
- for (i; i < MyHalfMove::variations.size(); i++) {
- if (MyHalfMove::variations[i] == m) {
- found = true;
- break;
- }
- }
- if (found) {
- MyHalfMove::variations.erase(MyHalfMove::variations.begin() + i);
- }
- if (MyHalfMove::MainLine == m) {
- MyHalfMove::MainLine = NULL;
- }
- cgeditor::CGEHalfMove::RemoveChild((CGEHalfMove *)m);
-}
-
-MyHalfMove *MyHalfMove::GetParent() { return (parent); }
-
-MyHalfMove *MyHalfMove::GetRoot() {
- MyHalfMove *m = this;
- MyHalfMove *p = MyHalfMove::parent;
- while (p != NULL) {
- if (p->mainline != m) {
- return (m);
- }
- m = p;
- p = m->MyHalfMove::parent;
- }
- return (m);
-}
-
-void MyHalfMove::SetAsMainline() {
- MyHalfMove *root = GetRoot();
- MyHalfMove *lastRoot;
- do {
- lastRoot = root;
- root->MyHalfMove::Promote();
- root = GetRoot();
- } while (root != lastRoot);
-
- // std::cout << IsVariation() << std::endl << std::flush;
-}
-
-void MyHalfMove::Promote() {
- if (MyHalfMove::parent != NULL) {
- MyHalfMove *p = MyHalfMove::parent;
- if (p->MyHalfMove::mainline != this) {
- if (MyHalfMove::parent->MyHalfMove::parent != NULL) {
- MyHalfMove *pp = MyHalfMove::parent->MyHalfMove::parent;
- if (pp->MyHalfMove::mainline == p) {
- pp->MyHalfMove::SetMainline(this);
- } else {
- pp->AddVariation(this);
- pp->MyHalfMove::RemoveChild(p);
- }
- }
- if (p->MyHalfMove::mainline == this) {
- p->MyHalfMove::SetMainline(NULL);
- } else {
- p->MyHalfMove::RemoveChild(this);
- }
- this->AddVariation(p);
- }
- }
-}
-
-bool MyHalfMove::IsVariation() {
- MyHalfMove *m = this;
- MyHalfMove *p = MyHalfMove::parent;
- while (p != NULL) {
- if (p->mainline != m) {
- return (true);
- }
- m = p;
- p = m->MyHalfMove::parent;
- }
- return (false);
-}
+MyHalfMove::MyHalfMove(std::string move){SetSAN(move); }
MyHalfMove *BuildExampleGame() {
MyHalfMove *m = new MyHalfMove("e4");
@@ -128,7 +20,7 @@ MyHalfMove *BuildExampleGame() {
m2 = new MyHalfMove("Bc4");
m->SetMainline(m2);
- m->comment="Italian Opening";
+ m->SetComment("Italian Opening");
m = m2;
m2 = new MyHalfMove("Bc5");
@@ -136,7 +28,7 @@ MyHalfMove *BuildExampleGame() {
m = m2;
m2 = new MyHalfMove("c3");
- m2->comment="Giuoco Pianissimo";
+ m2->SetComment("Giuoco Pianissimo");
m->SetMainline(m2);
m = m2;
@@ -158,7 +50,7 @@ MyHalfMove *BuildExampleGame() {
{
MyHalfMove *var = new MyHalfMove("Re1");
- var->comment="Also possible";
+ var->SetComment("Also possible");
m->AddVariation(var);
MyHalfMove *var2 = new MyHalfMove("a6");
@@ -185,8 +77,8 @@ MyHalfMove *BuildExampleGame() {
m2 = new MyHalfMove("a6");
m->SetMainline(m2);
- m->comment="Test for a very long comment, to see how line breaks are handle by the framework.";
- m->comment+="Test for a very long comment, to see how line breaks are handle by the framework.";
+ m->SetComment("Test for a very long comment, to see how line breaks are handle by the framework.");
+ m->SetComment(m->GetComment()+"Test for a very long comment, to see how line breaks are handle by the framework.");
m = m2;
m2 = new MyHalfMove("Bb3");
@@ -198,7 +90,7 @@ MyHalfMove *BuildExampleGame() {
m = m2;
m2 = new MyHalfMove("Re1");
- m2->nag="!!";
+ m2->SetNAG(3);
m->SetMainline(m2);
m = m2;