From dcf6c01e54c5306fac464706cff81e75ee8f05bf Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Sun, 1 Jan 2023 19:13:34 +0100 Subject: [PATCH] Update Game tab --- src/game_tab/HalfMove.cpp | 15 +++++++++++++++ src/game_tab/HalfMove.hpp | 2 ++ 2 files changed, 17 insertions(+) diff --git a/src/game_tab/HalfMove.cpp b/src/game_tab/HalfMove.cpp index 7f19480..01621e2 100644 --- a/src/game_tab/HalfMove.cpp +++ b/src/game_tab/HalfMove.cpp @@ -177,6 +177,21 @@ void HalfMove::Promote() { } } +bool HalfMove::HasParent(HalfMove*m){ + return m==parent; +} + +bool HalfMove::HasChild(HalfMove*m){ + if(mainline==m){ + return true; + } + for(auto var: variations){ + if(var == m) + return true; + } + return false; +} + bool HalfMove::IsVariation() { HalfMove *m = this; HalfMove *p = HalfMove::parent; diff --git a/src/game_tab/HalfMove.hpp b/src/game_tab/HalfMove.hpp index 3d5177e..08a190b 100644 --- a/src/game_tab/HalfMove.hpp +++ b/src/game_tab/HalfMove.hpp @@ -46,6 +46,8 @@ public: /// @brief Check if current half move is within a variation bool IsVariation(); /// @brief Get the root of a variation + bool HasParent(HalfMove*m); + bool HasChild(HalfMove*m); HalfMove *GetRoot(); /// @brief Get parent of the current move HalfMove *GetParent();