From 5671543da463f291bca747b247d0a738f573c911 Mon Sep 17 00:00:00 2001
From: Paolo Capriotti
Date: Wed, 1 Aug 2007 16:12:10 +0200
Subject: [PATCH] Added Crazyhouse stub.
---
src/CMakeLists.txt | 2 ++
src/hlvariant/chess/variant.cpp | 2 +-
src/hlvariant/crazyhouse/gamestate.h | 23 ++++++++++++++
src/hlvariant/{chess => crazyhouse}/variant.cpp | 5 ++-
src/hlvariant/crazyhouse/variant.h | 42 +++++++++++++++++++++++++
src/variants/chess.cpp | 2 +-
src/variants/crazyhouse.cpp | 2 +-
src/variants/shogi.cpp | 2 +-
src/variants/variants.cpp | 9 ++++++
tests/hlvariants/CMakeLists.txt | 1 +
10 files changed, 83 insertions(+), 7 deletions(-)
create mode 100644 src/hlvariant/crazyhouse/gamestate.h
copy src/hlvariant/{chess => crazyhouse}/variant.cpp (85%)
create mode 100644 src/hlvariant/crazyhouse/variant.h
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 366c518..b31a2d0 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -35,6 +35,8 @@ set(tagua_SRC
hlvariant/chess/move.cpp
hlvariant/chess/gamestate.cpp
hlvariant/chess/piece.cpp
+
+ hlvariant/crazyhouse/variant.cpp
animationfactory.cpp
constrainedtext.cpp
diff --git a/src/hlvariant/chess/variant.cpp b/src/hlvariant/chess/variant.cpp
index d0b2a1b..5fda079 100644
--- a/src/hlvariant/chess/variant.cpp
+++ b/src/hlvariant/chess/variant.cpp
@@ -5,7 +5,7 @@
namespace HLVariant {
namespace Chess {
-const char* Variant::m_name = "Chess_NEW";
+const char* Variant::m_name = "Chess";
const char* Variant::m_theme_proxy = "Chess";
VariantInfo* Variant::static_chess_variant = 0;
diff --git a/src/hlvariant/crazyhouse/gamestate.h b/src/hlvariant/crazyhouse/gamestate.h
new file mode 100644
index 0000000..4c454be
--- /dev/null
+++ b/src/hlvariant/crazyhouse/gamestate.h
@@ -0,0 +1,23 @@
+#ifndef HLVARIANT__CRAZYHOUSE__GAMESTATE_H
+#define HLVARIANT__CRAZYHOUSE__GAMESTATE_H
+
+#include "../chess/gamestate.h"
+
+namespace HLVariant {
+namespace Crazyhouse {
+
+template
+class GameState : public HLVariant::Chess::GameState<_Board, _Move> {
+ typedef HLVariant::Chess::GameState<_Board, _Move> Base;
+public:
+ typedef typename Base::Board Board;
+ typedef typename Base::Move Move;
+ typedef typename Base::Piece Piece;
+ typedef NoPool Pool;
+};
+
+} // namespace Crazyhouse
+} // namespace HLVariant
+
+#endif // HLVARIANT__CRAZYHOUSE__GAMESTATE_H
+
diff --git a/src/hlvariant/chess/variant.cpp b/src/hlvariant/crazyhouse/variant.cpp
similarity index 85%
copy from src/hlvariant/chess/variant.cpp
copy to src/hlvariant/crazyhouse/variant.cpp
index d0b2a1b..90b3fbe 100644
--- a/src/hlvariant/chess/variant.cpp
+++ b/src/hlvariant/crazyhouse/variant.cpp
@@ -3,13 +3,12 @@
#include "../animator.impl.h"
namespace HLVariant {
-namespace Chess {
+namespace Crazyhouse {
-const char* Variant::m_name = "Chess_NEW";
+const char* Variant::m_name = "Crazyhouse";
const char* Variant::m_theme_proxy = "Chess";
VariantInfo* Variant::static_chess_variant = 0;
-
VariantInfo* Variant::info() {
if (!static_chess_variant)
static_chess_variant = new WrappedVariantInfo;
diff --git a/src/hlvariant/crazyhouse/variant.h b/src/hlvariant/crazyhouse/variant.h
new file mode 100644
index 0000000..4b99a38
--- /dev/null
+++ b/src/hlvariant/crazyhouse/variant.h
@@ -0,0 +1,42 @@
+#ifndef HLVARIANT__CRAZYHOUSE__VARIANT_H
+#define HLVARIANT__CRAZYHOUSE__VARIANT_H
+
+#include "../chess/movegenerator.h"
+#include "../chess/serializer.h"
+#include "gamestate.h"
+#include "export.h"
+#include "option.h"
+#include "../animator.h"
+
+class VariantInfo;
+
+namespace HLVariant {
+namespace Crazyhouse {
+
+struct TAGUA_EXPORT Variant {
+ typedef Chess::Move Move;
+ typedef Chess::Piece Piece;
+ typedef Board Board;
+ typedef GameState GameState;
+ typedef Chess::LegalityCheck LegalityCheck;
+ typedef Chess::MoveGenerator MoveGenerator;
+ typedef Chess::Serializer Serializer;
+ typedef SimpleAnimator Animator;
+
+ static const bool hasICS = false;
+ static const bool m_simple_moves = false;
+ static const char *m_name;
+ static const char *m_theme_proxy;
+
+ static int moveListLayout() { return 0; }
+
+ static VariantInfo* static_chess_variant;
+ static VariantInfo* info();
+ static OptList positionOptions() { return OptList(); }
+
+};
+
+} // namespace Chess
+} // namespace HLVariant
+
+#endif // HLVARIANT__CRAZYHOUSE__VARIANT_H
diff --git a/src/variants/chess.cpp b/src/variants/chess.cpp
index dd50e75..bab064e 100644
--- a/src/variants/chess.cpp
+++ b/src/variants/chess.cpp
@@ -22,7 +22,7 @@
using namespace boost;
typedef boost::shared_ptr AnimationPtr;
-const char *ChessVariant::m_name = "Chess";
+const char *ChessVariant::m_name = "Chess_OLD";
const char *ChessVariant::m_theme_proxy = "Chess";
VariantInfo* ChessVariant::static_chess_variant = 0;
diff --git a/src/variants/crazyhouse.cpp b/src/variants/crazyhouse.cpp
index 01586a7..1333c7c 100644
--- a/src/variants/crazyhouse.cpp
+++ b/src/variants/crazyhouse.cpp
@@ -258,7 +258,7 @@ public:
//BEGIN CrazyhouseVariant
-const char *CrazyhouseVariantInfo::m_name = "Crazyhouse";
+const char *CrazyhouseVariantInfo::m_name = "Crazyhouse_OLD";
const char *CrazyhouseVariantInfo::m_theme_proxy = "Chess";
VariantInfo* CrazyhouseVariant::static_crazyhouse_variant = 0;
diff --git a/src/variants/shogi.cpp b/src/variants/shogi.cpp
index c6899c3..6f13a40 100644
--- a/src/variants/shogi.cpp
+++ b/src/variants/shogi.cpp
@@ -618,7 +618,7 @@ public:
static const char *m_theme_proxy;
};
-const char *ShogiVariantInfo::m_name = "Shogi";
+const char *ShogiVariantInfo::m_name = "Shogi_OLD";
const char *ShogiVariantInfo::m_theme_proxy = "Shogi";
diff --git a/src/variants/variants.cpp b/src/variants/variants.cpp
index e1f8337..bec5229 100644
--- a/src/variants/variants.cpp
+++ b/src/variants/variants.cpp
@@ -14,6 +14,14 @@
#include "variants/crazyhouse.h"
#include "variants/shogi.h"
#include "hlvariant/chess/variant.h"
+#include "hlvariant/crazyhouse/variant.h"
+
+// remove me
+namespace HLVariant {
+namespace Crazyhouse {
+class Variant;
+}
+}
#if 0
#include "variants/atomic.h"
@@ -52,6 +60,7 @@ void Variant::initialize() {
register_variant();
// register_variant();
register_variant();
+ register_variant();
s_initialized = true;
}
diff --git a/tests/hlvariants/CMakeLists.txt b/tests/hlvariants/CMakeLists.txt
index 6e7c392..51e922b 100644
--- a/tests/hlvariants/CMakeLists.txt
+++ b/tests/hlvariants/CMakeLists.txt
@@ -9,6 +9,7 @@ SET(hl_SRC
chesslegalitytest.cpp
chesswrappedtest.cpp
chessserializationtest.cpp
+ pooltest.cpp
)
include_directories(
--
2.11.4.GIT