From fd8f95cd7f9d7302e9450babe002a1f6c55d4652 Mon Sep 17 00:00:00 2001
From: Paolo Capriotti
Date: Wed, 8 Aug 2007 14:08:55 +0200
Subject: [PATCH] Removed all old variants.
---
src/CMakeLists.txt | 10 +-
src/algebraicnotation.cpp | 144 ------
src/algebraicnotation.h | 94 ----
src/entities/engineentity.cpp | 1 -
src/entities/examinationentity.cpp | 5 +-
src/entities/gameentity.cpp | 4 +-
src/entities/icsentity.cpp | 3 -
src/game.cpp | 2 +-
src/hlvariant/animator.impl.h | 1 -
src/icsconnection.cpp | 3 +-
src/icsgamedata.cpp | 2 +-
src/mainwindow.cpp | 6 +-
src/moveserializer.impl.h | 1 -
src/newgame.cpp | 2 +-
src/pgnparser.cpp | 1 +
src/pgnparser.h | 1 -
src/poolinfo.cpp | 3 +-
src/positioninfo.cpp | 9 +-
src/pref_theme.cpp | 2 +-
src/tagua_wrapped.h | 1 -
src/ui.cpp | 17 -
src/ui.h | 4 -
src/{variants => }/variants.cpp | 14 -
src/{variants => }/variants.h | 0
src/variants/atomic.cpp_ | 275 ----------
src/variants/atomic.h_ | 23 -
src/variants/chainreaction.cpp_ | 479 -----------------
src/variants/chainreaction.h_ | 23 -
src/variants/chess.cpp | 226 --------
src/variants/chess.h | 50 --
src/variants/connect4.cpp_ | 248 ---------
src/variants/connect4.h_ | 23 -
src/variants/crazyhouse.cpp | 276 ----------
src/variants/crazyhouse.h | 24 -
src/variants/crazyhouse_p.h | 169 ------
src/variants/dummy.cpp_ | 175 -------
src/variants/dummy.h_ | 24 -
src/variants/king4pawns.cpp_ | 111 ----
src/variants/king4pawns.h_ | 22 -
src/variants/progressive.cpp_ | 90 ----
src/variants/progressive.h_ | 22 -
src/variants/reversi.cpp_ | 410 ---------------
src/variants/reversi.h_ | 23 -
src/variants/rubyvariant.cpp_ | 569 --------------------
src/variants/rubyvariant.h_ | 24 -
src/variants/shogi.cpp | 816 -----------------------------
src/variants/shogi.cpp_ | 743 ---------------------------
src/variants/shogi.h | 23 -
src/variants/shogi.h_ | 23 -
src/variants/suicide.h__ | 13 -
src/variants/tagua.rb | 91 ----
src/variants/tictactoe.rb | 110 ----
src/variants/trivialanimator.h_ | 22 -
src/variants/ultima.cpp__ | 356 -------------
src/variants/ultima.h__ | 178 -------
src/variants/variants-autogen | 12 -
src/variants/xchess/animator.h | 69 ---
src/variants/xchess/animator.impl.h | 202 --------
src/variants/xchess/dropanimator.h | 26 -
src/variants/xchess/dropanimator.impl.h | 102 ----
src/variants/xchess/generator.h | 175 -------
src/variants/xchess/move.cpp | 52 --
src/variants/xchess/move.h | 57 ---
src/variants/xchess/piece.cpp | 201 --------
src/variants/xchess/piece.h | 195 -------
src/variants/xchess/piecetype.h | 30 --
src/variants/xchess/pool.h | 210 --------
src/variants/xchess/position.h | 883 --------------------------------
src/variants/xiangqi.cpp_ | 640 -----------------------
src/variants/xiangqi.h_ | 13 -
70 files changed, 18 insertions(+), 8840 deletions(-)
delete mode 100644 src/algebraicnotation.cpp
delete mode 100644 src/algebraicnotation.h
rename src/{variants => }/variants.cpp (75%)
rename src/{variants => }/variants.h (100%)
delete mode 100644 src/variants/atomic.cpp_
delete mode 100644 src/variants/atomic.h_
delete mode 100644 src/variants/chainreaction.cpp_
delete mode 100644 src/variants/chainreaction.h_
delete mode 100644 src/variants/chess.cpp
delete mode 100644 src/variants/chess.h
delete mode 100644 src/variants/connect4.cpp_
delete mode 100644 src/variants/connect4.h_
delete mode 100644 src/variants/crazyhouse.cpp
delete mode 100644 src/variants/crazyhouse.h
delete mode 100644 src/variants/crazyhouse_p.h
delete mode 100644 src/variants/dummy.cpp_
delete mode 100644 src/variants/dummy.h_
delete mode 100644 src/variants/king4pawns.cpp_
delete mode 100644 src/variants/king4pawns.h_
delete mode 100644 src/variants/progressive.cpp_
delete mode 100644 src/variants/progressive.h_
delete mode 100644 src/variants/reversi.cpp_
delete mode 100644 src/variants/reversi.h_
delete mode 100644 src/variants/rubyvariant.cpp_
delete mode 100644 src/variants/rubyvariant.h_
delete mode 100644 src/variants/shogi.cpp
delete mode 100644 src/variants/shogi.cpp_
delete mode 100644 src/variants/shogi.h
delete mode 100644 src/variants/shogi.h_
delete mode 100644 src/variants/suicide.h__
delete mode 100644 src/variants/tagua.rb
delete mode 100644 src/variants/tictactoe.rb
delete mode 100644 src/variants/trivialanimator.h_
delete mode 100644 src/variants/ultima.cpp__
delete mode 100644 src/variants/ultima.h__
delete mode 100644 src/variants/variants-autogen
delete mode 100644 src/variants/xchess/animator.h
delete mode 100644 src/variants/xchess/animator.impl.h
delete mode 100644 src/variants/xchess/dropanimator.h
delete mode 100755 src/variants/xchess/dropanimator.impl.h
delete mode 100644 src/variants/xchess/generator.h
delete mode 100644 src/variants/xchess/move.cpp
delete mode 100644 src/variants/xchess/move.h
delete mode 100644 src/variants/xchess/piece.cpp
delete mode 100644 src/variants/xchess/piece.h
delete mode 100644 src/variants/xchess/piecetype.h
delete mode 100644 src/variants/xchess/pool.h
delete mode 100644 src/variants/xchess/position.h
delete mode 100644 src/variants/xiangqi.cpp_
delete mode 100644 src/variants/xiangqi.h_
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index cf5ad11..0f842ed 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -22,14 +22,6 @@ set(tagua_SRC
entities/entity.cpp
entities/engineentity.cpp
entities/icsentity.cpp
-
- variants/variants.cpp
- variants/xchess/move.cpp
- variants/xchess/piece.cpp
-
- variants/chess.cpp
- variants/crazyhouse.cpp
- variants/shogi.cpp
hlvariant/chess/variant.cpp
hlvariant/chess/san.cpp
@@ -78,7 +70,6 @@ set(tagua_SRC
clock.cpp
chesstable.cpp
index.cpp
- algebraicnotation.cpp
mastersettings.cpp
location.cpp
hline.cpp
@@ -112,6 +103,7 @@ set(tagua_SRC
icsgamedata.cpp
turnpolicy.cpp
decoratedmove.cpp
+ variants.cpp
)
# remove spurious xpressive warnings
diff --git a/src/algebraicnotation.cpp b/src/algebraicnotation.cpp
deleted file mode 100644
index 996dd6e..0000000
--- a/src/algebraicnotation.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- Copyright (c) 2006 Paolo Capriotti
- (c) 2006 Maurizio Monge
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-*/
-
-#include
-#include
-#include "algebraicnotation.h"
-#include "variants/xchess/piece.h"
-#include "variants/xchess/move.h"
-
-//BEGIN AlgebraicNotation
-
-// 1 2 3
-QRegExp AlgebraicNotation::pattern("^([PRNBKQ])?([a-wyzA-Z]?\\d*|x\\d+)([-x@])?"
-// 4 5 6
- "([a-zA-Z]\\d+)(=?([RNBKQrnbkq]))?[+#]?[\?!]*");
-QRegExp AlgebraicNotation::kingCastlingPattern("^[oO0]-?[oO0][+#]?");
-QRegExp AlgebraicNotation::queenCastlingPattern("^[oO0]-?[oO0]-?[oO0][+#]?");
-QRegExp AlgebraicNotation::nonePattern("^none");
-
-AlgebraicNotation::AlgebraicNotation()
-: from(Point::invalid())
-, to(Point::invalid())
-, type(-1)
-, promotion(-1)
-, castling(NoCastling)
-, drop(false) {
-}
-
-AlgebraicNotation::AlgebraicNotation(const QString& str, int ysize)
-: from(Point::invalid())
-, to(Point::invalid())
-, type(-1)
-, promotion(-1)
-, castling(NoCastling)
-, drop(false) {
-
- int offset = 0;
- init(str, offset, ysize);
-}
-
-AlgebraicNotation::AlgebraicNotation(const QString& str, int& offset, int ysize)
-: from(Point::invalid())
-, to(Point::invalid())
-, type(-1)
-, promotion(-1)
-, castling(NoCastling)
-, drop(false) {
-
- init(str, offset, ysize);
-}
-
-void AlgebraicNotation::init(const QString& str, int& offset, int ysize) {
- if (nonePattern.indexIn(str, offset, QRegExp::CaretAtOffset) != -1) {
- from = Point::invalid();
- to = Point::invalid();
- offset += nonePattern.matchedLength();
- }
- else if (pattern.indexIn(str, offset, QRegExp::CaretAtOffset) != -1) {
- type = ChessPiece::getType(pattern.cap(1));
- drop = pattern.cap(3) == "@";
- if (drop)
- from = Point::invalid();
- else
- from = Point(pattern.cap(2), ysize);
- to = Point(pattern.cap(4), ysize);
- promotion = pattern.cap(6).isEmpty() ? -1 : ChessPiece::getType(pattern.cap(6));
- castling = NoCastling;
- offset += pattern.matchedLength();
- }
- else if (queenCastlingPattern.indexIn(str, offset, QRegExp::CaretAtOffset) != -1) {
- castling = QueenSide;
-
- offset += queenCastlingPattern.matchedLength();
- }
- else if (kingCastlingPattern.indexIn(str, offset, QRegExp::CaretAtOffset) != -1) {
- castling = KingSide;
-
- offset += kingCastlingPattern.matchedLength();
- }
- else {
- //std::cout << "error!!!! " << str.mid(offset) << std::endl;
- to = Point::invalid();
- }
-}
-
-std::ostream& operator<<(std::ostream& os, const AlgebraicNotation& move) {
- if (move.castling == AlgebraicNotation::KingSide)
- return os << "O-O";
- else if (move.castling == AlgebraicNotation::QueenSide)
- return os << "O-O-O";
- else
- return os << move.type << ": " << move.from << " -> " << move.to;
-}
-
-//END AlgebraicNotation
-
-
-//BEGIN VerboseNotation
-// 1 2 3 5
-QRegExp VerboseNotation::pattern("([PRNBKQ])/([a-zA-Z]\\d+|@@)-([a-zA-Z]\\d+)(=([PRNBKQ]))?");
-QRegExp VerboseNotation::kingCastlingPattern("[oO0]-[oO0]");
-QRegExp VerboseNotation::queenCastlingPattern("[oO0]-[oO0]-[oO0]");
-QRegExp VerboseNotation::nonePattern("none");
-
-VerboseNotation::VerboseNotation(const QString& str, int ysize)
-: promotion(INVALID_TYPE) {
- if (nonePattern.indexIn(str) == 0) {
- from = Point::invalid();
- to = Point::invalid();
- }
- else if (pattern.indexIn(str) == 0) {
- if (pattern.cap(2) == "@@")
- from = Point::invalid();
- else
- from = Point(pattern.cap(2), ysize);
-
- to = Point(pattern.cap(3), ysize);
-
- type = ChessPiece::getType(pattern.cap(1));
- if (!pattern.cap(5).isEmpty())
- promotion = ChessPiece::getType(pattern.cap(6));
- else
- promotion = INVALID_TYPE;
- castling = AlgebraicNotation::NoCastling;
- }
- else if (queenCastlingPattern.indexIn(str) == 0)
- castling = AlgebraicNotation::QueenSide;
- else if (kingCastlingPattern.indexIn(str) == 0)
- castling = AlgebraicNotation::KingSide;
- else {
- from = Point::invalid();
- to = Point::invalid();
- castling = AlgebraicNotation::NoCastling;
- }
-}
-
-//END VerboseNotation
diff --git a/src/algebraicnotation.h b/src/algebraicnotation.h
deleted file mode 100644
index ea6c547..0000000
--- a/src/algebraicnotation.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- Copyright (c) 2006 Paolo Capriotti
- (c) 2006 Maurizio Monge
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-*/
-
-#ifndef ALGEBRAICNOTATION_H
-#define ALGEBRAICNOTATION_H
-
-#include
-#include "common.h"
-#include "point.h"
-
-class QRegExp;
-class QString;
-
-class AlgebraicNotation {
- friend std::ostream& operator<<(std::ostream& os, const AlgebraicNotation& move);
-
- static QRegExp pattern;
- static QRegExp kingCastlingPattern;
- static QRegExp queenCastlingPattern;
- static QRegExp nonePattern;
-public:
- enum CastlingType {
- NoCastling,
- KingSide,
- QueenSide
- };
-
- AlgebraicNotation(const QString&, int& offset, int ysize);
- explicit AlgebraicNotation(const QString&, int ysize);
- AlgebraicNotation();
-
- void init(const QString&, int& offset, int ysize);
-
- Point from, to;
- int type;
- int promotion;
- CastlingType castling;
- bool drop;
-
- inline bool invalid() const { return (to == Point::invalid()) && (castling == NoCastling); }
- inline bool valid() const { return !invalid(); }
-};
-
-class VerboseNotation {
- static QRegExp pattern;
- static QRegExp kingCastlingPattern;
- static QRegExp queenCastlingPattern;
- static QRegExp nonePattern;
-
-public:
- explicit VerboseNotation(const QString&, int ysize);
- Point from, to;
- int type, promotion;
- AlgebraicNotation::CastlingType castling;
- inline bool invalid() const { return (from == Point::invalid() && to == Point::invalid()); }
- inline bool valid() const { return !invalid(); }
-};
-
-// IMPLEMENTATION
-
-
-#define TRY(x) ref.getMove(x, ok); if (ok) return;
-template
-void minimalNotation(AlgebraicNotation& san, const Pos& ref) {
- Point from = san.from;
- san.castling = AlgebraicNotation::NoCastling;
- bool ok;
-
- // try notation without starting point
- san.from = Point::invalid();
- TRY(san);
-
- // add column indication
- san.from = Point(from.x, -1);
- TRY(san);
-
- // add row indication
- san.from = Point(-1, from.y);
- TRY(san);
-
- // add complete starting point
- san.from = from;
-}
-#undef TRY
-
-
-#endif // ALGEBRAICNOTATION_H
diff --git a/src/entities/engineentity.cpp b/src/entities/engineentity.cpp
index 7bae3bc..4f2d764 100644
--- a/src/entities/engineentity.cpp
+++ b/src/entities/engineentity.cpp
@@ -10,7 +10,6 @@
#include "engineentity.h"
#include "game.h"
-#include "algebraicnotation.h"
#include "engine.h"
#include
diff --git a/src/entities/examinationentity.cpp b/src/entities/examinationentity.cpp
index 0fd80b4..3c525cd 100644
--- a/src/entities/examinationentity.cpp
+++ b/src/entities/examinationentity.cpp
@@ -12,9 +12,8 @@
#include "game.h"
#include "icsconnection.h"
#include "positioninfo.h"
-#include "algebraicnotation.h"
#include "pgnparser.h"
-#include "variants/xchess/piecetype.h"
+#include "hlvariant/chess/piece.h"
#include "icsapi.h"
#include
@@ -22,7 +21,7 @@
ExaminationEntity::ExaminationEntity(VariantInfo* variant, const boost::shared_ptr& game,
int game_number, const boost::shared_ptr& connection,
AgentGroup* group)
-: UserEntity(game, QUEEN)
+: UserEntity(game, HLVariant::Chess::Piece::QUEEN)
, m_variant(variant)
, m_icsapi(variant->icsAPI())
, m_game_number(game_number)
diff --git a/src/entities/gameentity.cpp b/src/entities/gameentity.cpp
index 879ea48..0879150 100644
--- a/src/entities/gameentity.cpp
+++ b/src/entities/gameentity.cpp
@@ -13,13 +13,13 @@
#include "game.h"
#include "board.h"
#include "pgnparser.h"
-#include "variants/xchess/piecetype.h"
+#include "hlvariant/chess/piece.h"
using namespace boost;
GameEntity::GameEntity(VariantInfo* variant, const boost::shared_ptr& game,
Board* chessboard, AgentGroup* group)
-: UserEntity(game, QUEEN)
+: UserEntity(game, HLVariant::Chess::Piece::QUEEN)
, m_variant(variant)
, m_chessboard(chessboard)
, m_dispatcher(group, this) {
diff --git a/src/entities/icsentity.cpp b/src/entities/icsentity.cpp
index 8237e62..6ec86ab 100644
--- a/src/entities/icsentity.cpp
+++ b/src/entities/icsentity.cpp
@@ -10,7 +10,6 @@
#include "icsentity.h"
#include "game.h"
-#include "algebraicnotation.h"
#include "icsconnection.h"
#include "positioninfo.h"
#include "poolinfo.h"
@@ -126,8 +125,6 @@ void ICSEntity::notifyStyle12(const PositionInfo& style12, bool is_starting) {
AbstractPosition::Ptr position = m_game->position(style12.index() - 1);
if (position) {
AbstractMove::Ptr mv = position->getMove(style12.lastMoveSAN);
- std::cout << "mv = " << mv->toString(position) << std::endl;
- std::cout << "last = " << last_move->toString(position) << std::endl;
if (!mv || !mv->equals(last_move)) {
std::cout <<
"[server inconsistency] SAN for last move is different from verbose notation"
diff --git a/src/game.cpp b/src/game.cpp
index 6bee74a..4e227f3 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -19,7 +19,7 @@
#include
#endif
#ifndef NO_PGN
-#include "variants/variants.h"
+#include "variants.h"
#include "pgnparser.h"
#include "tagua.h"
#endif //NO_PGN
diff --git a/src/hlvariant/animator.impl.h b/src/hlvariant/animator.impl.h
index 4ab6255..a7f66d6 100644
--- a/src/hlvariant/animator.impl.h
+++ b/src/hlvariant/animator.impl.h
@@ -15,7 +15,6 @@
#include "animationfactory.h"
#include "common.h"
#include "namedsprite.h"
-#include "variants/xchess/piecetype.h"
namespace HLVariant {
diff --git a/src/icsconnection.cpp b/src/icsconnection.cpp
index 3e6bc62..1248b98 100644
--- a/src/icsconnection.cpp
+++ b/src/icsconnection.cpp
@@ -15,12 +15,11 @@
#include "icsconnection.h"
#include "poolinfo.h"
#include "positioninfo.h"
-#include "algebraicnotation.h"
#include "player.h"
#include "gameinfo.h"
#include "pgnparser.h"
#include "icslistener.h"
-#include "variants/variants.h"
+#include "variants.h"
using namespace boost;
diff --git a/src/icsgamedata.cpp b/src/icsgamedata.cpp
index 006f49e..2df4724 100644
--- a/src/icsgamedata.cpp
+++ b/src/icsgamedata.cpp
@@ -11,7 +11,7 @@
#include "icsgamedata.h"
#include "tagua.h"
#include "gameinfo.h"
-#include "variants/variants.h"
+#include "variants.h"
ICSGameData::ICSGameData()
: index(0) {
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index f089e50..bc9366b 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -31,9 +31,7 @@
#include "console.h"
#include "clock.h"
#include "newgame.h"
-#include "variants/variants.h"
-#include "variants/xchess/piecetype.h"
-#include "variants/chess.h"
+#include "variants.h"
#include "gameinfo.h"
#include "controllers/editgame.h"
#include "controllers/editposition.h"
@@ -362,7 +360,7 @@ void MainWindow::setupGame(const GameInfo* gameInfo, const PositionInfo& style12
void MainWindow::setupExaminedGame(const GameInfo* /*gameInfo*/, const PositionInfo& style12) {
shared_ptr controller(new EditGameController(
- table(), ChessVariant::info()));
+ table(), Variant::variant("chess")));
if (controller->setExaminationMode(style12.gameNumber, m_connection)) {
table()->setPlayers(Player(style12.whitePlayer, -1),
Player(style12.blackPlayer, -1));
diff --git a/src/moveserializer.impl.h b/src/moveserializer.impl.h
index 6bfb483..e172f1f 100644
--- a/src/moveserializer.impl.h
+++ b/src/moveserializer.impl.h
@@ -12,7 +12,6 @@
#define MOVESERIALIZER_IMPL_H
#include "moveserializer.h"
-#include "algebraicnotation.h"
/**
* Assume the move has already been tested against @a ref.
diff --git a/src/newgame.cpp b/src/newgame.cpp
index 504d242..0cc3a4e 100644
--- a/src/newgame.cpp
+++ b/src/newgame.cpp
@@ -12,7 +12,7 @@
#include
#include
#include "common.h"
-#include "variants/variants.h"
+#include "variants.h"
#include "tagua.h"
#include "newgame.h"
diff --git a/src/pgnparser.cpp b/src/pgnparser.cpp
index 938039a..9d2e967 100644
--- a/src/pgnparser.cpp
+++ b/src/pgnparser.cpp
@@ -11,6 +11,7 @@
#include
#include
#include "pgnparser.h"
+#include "common.h"
QRegExp PGN::number("^(\\d+)(?:(?:\\.\\s+)?(\\.\\.\\.)|\\.?)?");
QRegExp PGN::begin_var("^\\(");
diff --git a/src/pgnparser.h b/src/pgnparser.h
index fcca880..49ffdbf 100644
--- a/src/pgnparser.h
+++ b/src/pgnparser.h
@@ -23,7 +23,6 @@
#include
#endif
#include
-#include "algebraicnotation.h"
class QRegExp;
diff --git a/src/poolinfo.cpp b/src/poolinfo.cpp
index e90d159..221e442 100644
--- a/src/poolinfo.cpp
+++ b/src/poolinfo.cpp
@@ -10,8 +10,7 @@
#include "poolinfo.h"
#include "gameinfo.h"
-#include "variants/chess.h"
-#include "variants/variants.h"
+#include "variants.h"
QRegExp PoolInfo::s_pattern("^\\s+game\\s+(\\d+)" //game num
"\\s+white\\s+\\[([QKBNRP]*)\\]" // white pieces
diff --git a/src/positioninfo.cpp b/src/positioninfo.cpp
index 4451ec6..65b050b 100644
--- a/src/positioninfo.cpp
+++ b/src/positioninfo.cpp
@@ -9,8 +9,7 @@
*/
#include "positioninfo.h"
-#include "variants/chess.h"
-#include "variants/variants.h"
+#include "variants.h"
#include "gameinfo.h"
#include "icsapi.h"
@@ -68,7 +67,7 @@ PositionInfo::PositionRow::PositionRow(const ICSAPIPtr& icsapi, const QString& s
*/
int PositionInfo::index() const {
int res = (moveIndex - 1) * 2;
- if (turn == BLACK) res++;
+ if (turn == 1) res++;
return res;
}
@@ -99,13 +98,13 @@ PositionInfo::PositionInfo(const std::map& games, const QStrin
moveIndex = pattern.cap(CaptureIndexes::MoveOrdinal).toInt();
whitePlayer = pattern.cap(CaptureIndexes::WhitePlayer);
blackPlayer = pattern.cap(CaptureIndexes::BlackPlayer);
- turn = pattern.cap(CaptureIndexes::Turn) == "W"? WHITE : BLACK;
+ turn = pattern.cap(CaptureIndexes::Turn) == "W"? 0 : 1;
int ep = pattern.cap(CaptureIndexes::EnPassant).toInt();
if (ep == -1)
enPassantSquare = Point::invalid();
else
- enPassantSquare = Point(ep, turn == WHITE? 2 : 5);
+ enPassantSquare = Point(ep, turn == 0? 2 : 5);
bool wkCastle = pattern.cap(CaptureIndexes::WhiteKingCastle).toInt() == 1;
bool wqCastle = pattern.cap(CaptureIndexes::WhiteQueenCastle).toInt() == 1;
diff --git a/src/pref_theme.cpp b/src/pref_theme.cpp
index 04cbd2e..8715888 100644
--- a/src/pref_theme.cpp
+++ b/src/pref_theme.cpp
@@ -17,7 +17,7 @@
#include "foreach.h"
#include "mastersettings.h"
#include "luaapi/loader.h"
-#include "variants/variants.h"
+#include "variants.h"
#include "tagua.h"
#include "pref_theme.h"
diff --git a/src/tagua_wrapped.h b/src/tagua_wrapped.h
index 919a7e3..9933fc5 100644
--- a/src/tagua_wrapped.h
+++ b/src/tagua_wrapped.h
@@ -20,7 +20,6 @@
#include "piecefactory.h"
#include "moveserializer.h"
#include "nopool.h"
-#include "algebraicnotation.h"
template class WrappedPiece;
template class WrappedMove;
diff --git a/src/ui.cpp b/src/ui.cpp
index b8cf539..e557f46 100644
--- a/src/ui.cpp
+++ b/src/ui.cpp
@@ -13,7 +13,6 @@
#include
#include "ui.h"
#include "controllers/abstract.h"
-#include "variants/xchess/piecetype.h"
using namespace boost;
@@ -102,22 +101,6 @@ void UI::pgnPaste(const QString&) {
//controller()->loadPGN(pgn);
}
-void UI::promoteToQueen() {
- controller()->setPromotionType(QUEEN);
-}
-
-void UI::promoteToRook() {
- controller()->setPromotionType(ROOK);
-}
-
-void UI::promoteToBishop() {
- controller()->setPromotionType(BISHOP);
-}
-
-void UI::promoteToKnight() {
- controller()->setPromotionType(KNIGHT);
-}
-
int UI::promotionType() const {
return controller()->promotionType();
}
diff --git a/src/ui.h b/src/ui.h
index abbef65..9609389 100644
--- a/src/ui.h
+++ b/src/ui.h
@@ -53,10 +53,6 @@ public Q_SLOTS:
void pgnPaste(const QString&);
// promotion type
- void promoteToQueen();
- void promoteToRook();
- void promoteToBishop();
- void promoteToKnight();
int promotionType() const;
// do promotion
diff --git a/src/variants/variants.cpp b/src/variants.cpp
similarity index 75%
rename from src/variants/variants.cpp
rename to src/variants.cpp
index 03b02d9..ecbf0a9 100644
--- a/src/variants/variants.cpp
+++ b/src/variants.cpp
@@ -10,9 +10,6 @@
#include "variants.h"
#include "tagua.h"
-#include "variants/chess.h"
-#include "variants/crazyhouse.h"
-#include "variants/shogi.h"
#include "hlvariant/chess/variant.h"
#include "hlvariant/crazyhouse/variant.h"
#include "hlvariant/dummy/variant.h"
@@ -41,17 +38,6 @@ void Variant::register_variant() {
}
void Variant::initialize() {
- register_variant();
- register_variant();
- // register_variant();
- // register_variant();
- // register_variant();
- // register_variant();
- // register_variant();
- // register_variant();
- // register_variant();
- register_variant();
- // register_variant();
register_variant();
register_variant();
register_variant();
diff --git a/src/variants/variants.h b/src/variants.h
similarity index 100%
rename from src/variants/variants.h
rename to src/variants.h
diff --git a/src/variants/atomic.cpp_ b/src/variants/atomic.cpp_
deleted file mode 100644
index a527304..0000000
--- a/src/variants/atomic.cpp_
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- Copyright (c) 2006 Paolo Capriotti
- (c) 2006 Maurizio Monge
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-*/
-
-#include "atomic.h"
-#include "highlevel.h"
-#include "xchess/position.h"
-#include "moveserializer.impl.h"
-#include "xchess/animator.impl.h"
-#include "graphicalposition.h"
-#include "pointconverter.h"
-#include "animation.h"
-
-#define USE_DELAYED_EXPLOSIONS
-
-using namespace boost;
-
-class AtomicPosition : public ChessPosition {
-public:
- typedef ChessPosition::Piece Piece;
- AtomicPosition();
- AtomicPosition(const OptList& l);
- AtomicPosition(const ChessPosition&);
- AtomicPosition(Piece::Color turn, bool wk, bool wq,
- bool bk, bool bq, const Point& ep);
- virtual AtomicPosition* clone() const { return new AtomicPosition(*this); }
- virtual bool attacks(Color, const Point& destination) const;
- virtual bool attacks(Color, const Point& destination, Point& source) const;
- virtual void move(const ChessMove&);
- virtual bool testMove(ChessMove&) const;
- virtual bool pseudolegal(ChessMove&) const;
- virtual QString type() const { return "atomic"; }
-};
-
-AtomicPosition::AtomicPosition() { }
-
-AtomicPosition::AtomicPosition(const OptList&) { }
-
-AtomicPosition::AtomicPosition(const ChessPosition& other)
-: ChessPosition(other) { }
-
-AtomicPosition::AtomicPosition(Piece::Color turn, bool wk, bool wq,
- bool bk, bool bq, const Point& ep)
-: ChessPosition(turn, wk, wq, bk, bq, ep) { }
-
-bool AtomicPosition::attacks(Color color, const Point& destination) const {
- Point source;
- if (ChessPosition::attacks(color, destination)) {
- if (!m_board[destination]) return true;
-
- // a piece does not attack occupied squares near its own king
- Piece king(color, KING);
- for (int i = -1; i <= 1; i++)
- for (int j = -1; j <= 1; j++) {
- Point p = destination + Point(i,j);
- if (valid(p) && king == m_board[p]) return false;
- }
-
- return true;
- }
- else return false;
-}
-
-bool AtomicPosition::attacks(Color color, const Point& destination, Point& source) const {
- bool b = ChessPosition::attacks(color, destination, source);
- printf("VAL: %d!\n",b);
- return b;
-}
-
-void AtomicPosition::move(const ChessMove& mv) {
- bool cap = m_board[mv.to];
- ChessPosition::move(mv);
-
- if (!cap) return;
-
- for (int i = -1; i <= 1; i++)
- for (int j = -1; j <= 1; j++) {
- Point p = mv.to + Point(i,j);
- if (!valid(p)) continue;
- Piece piece = m_board[p];
- if (piece && (piece.type() != PAWN ||
- (i == 0 && j == 0))) {
- m_board[p] = Piece();
- }
- }
-}
-
-bool AtomicPosition::pseudolegal(ChessMove& mv) const {
- if (!ChessPosition::pseudolegal(mv)) return false;
-
- // a move that causes the explosion of one's king
- // is not pseudolegal
- Piece::Color color = m_board[mv.from].color();
-
- { std::auto_ptr temp(clone());
-
- temp->move(mv);
- if (temp->findPiece(color, KING) == Point::invalid())
- {
- printf("CUSP!\n");
- return false;
- }
- }
-
- return true;
-}
-
-bool AtomicPosition::testMove(ChessMove& move) const {
- if (move.status == ChessMove::Untested) {
- if (pseudolegal(move)) {
- ChessPiece::Color turn = moveTurn(move);
-
- // check king safety
- std::auto_ptr tempPosition(clone());
- std::cout << "[atomic_position] cloned" << std::endl;
- tempPosition->move(move);
- std::cout << "[atomic_position] move tried" << std::endl;
- Point kingPos = tempPosition->findPiece(turn, KING);
- std::cout << "[atomic_position] found king: " << kingPos << std::endl;
- Point kingPos2 = tempPosition->findPiece(ChessPiece::oppositeColor(turn), KING);
- std::cout << "[atomic_position] found king: " << kingPos << std::endl;
-
- if (kingPos == Point::invalid())
- move.status = ChessMove::Illegal;
- else if (kingPos2 == Point::invalid())
- move.status = ChessMove::Legal;
- else if (tempPosition->attacks(ChessPiece::oppositeColor(turn), kingPos))
- move.status = ChessMove::Illegal;
- else
- move.status = ChessMove::Legal;
- }
- else move.status = ChessMove::Illegal;
- }
-
- return move.status == ChessMove::Legal ? true : false;
-}
-
-#if 0
-class AtomicAnimator : public ChessAnimator {
-public:
- AtomicAnimator(PointConverter* converter, GraphicalPosition* position)
- : ChessAnimator(converter, position) { }
-
- virtual shared_ptr createCapture(
- const Point& point,
- const Element& piece,
- const Element& captured,
- AbstractPosition::Ptr pos) {
- if(m_anim_explode) {
-#ifdef USE_DELAYED_EXPLOSIONS
- shared_ptr res(new DelayedAnimationSet(m_random));
-#else // USE_DELAYED_EXPLOSIONS
-#define addAnimation addPreAnimation
- AnimationPtr res(new AnimationGroup);
-#endif // USE_DELAYED_EXPLOSIONS
-
- res->addAnimation(ChessAnimator::createCapture(point, piece, captured, pos));
-
- if(captured) {
- // add explosions
- for (int i = -1; i <= 1; i++)
- for (int j = -1; j <= 1; j++) {
- if (i == 0 && j == 0) continue;
- Point p = point + Point(i,j);
- Element element = m_position->getElement(p);
- if (!pos->get(p) && element) {
- m_position->removeElement(p);
- res->addAnimation(shared_ptr(
- new ExplodeAnimation(element.sprite(), m_random)));
- }
- }
-
- // explode the capturing piece too :)
- res->addAnimation(shared_ptr(
- new ExplodeAnimation(piece.sprite(), m_random)));
- }
-
- return res;
- }
- else {
- AnimationPtr res(new AnimationGroup);
-
- res->addPreAnimation(ChessAnimator::createCapture(point, piece, captured, pos));
-
- if(captured) {
- // add explosions
- for (int i = -1; i <= 1; i++)
- for (int j = -1; j <= 1; j++) {
- if (i == 0 && j == 0) continue;
- Point p = point + Point(i,j);
- Element element = m_position->getElement(p);
- if (!pos->get(p) && element) {
- m_position->removeElement(p);
- res->addPreAnimation(
- m_anim_fade
- ? shared_ptr(new FadeAnimation(element.sprite(),
- m_converter->toReal(p), 255, 0))
- : shared_ptr(new CaptureAnimation(element.sprite()))
- );
- }
- }
-
- // explode the capturing piece too :)
- res->addPreAnimation(
- m_anim_fade
- ? shared_ptr(new FadeAnimation(piece.sprite(),
- m_converter->toReal(point), 255, 0))
- : shared_ptr(new CaptureAnimation(piece.sprite()))
- );
- }
-
- return res;
- }
- }
-
- virtual void finalizeBackAnimation(AnimationPtr animation,
- AbstractPosition::Ptr pos,
- const ChessMove& move) {
- // undo explosions
- for (int i = -1; i <= 1; i++)
- for (int j = -1; j <= 1; j++) {
- if (i == 0 && j == 0) continue;
- Point p = move.to + Point(i,j);
- Element element = m_position->getElement(p);
- if (pos->get(p) && !element) {
- QPoint real = m_converter->toReal(p);
- animation->addPreAnimation(
- m_anim_fade
- ? shared_ptr(new FadeAnimation(
- m_position->setPiece(p, pos->get(p)), real, 0, 255))
- : shared_ptr(new DropAnimation(
- m_position->setPiece(p, pos->get(p))))
- );
- }
- }
- }
-};
-#endif
-
-class AtomicVariantInfo {
-public:
- typedef AtomicPosition Position;
- typedef Position::Move Move;
- typedef Position::Piece Piece;
- typedef SimpleAnimator Animator;
- static const bool m_simple_moves = false;
- static void forallPieces(PieceFunction& f);
- static int moveListLayout(){ return 0; }
- static const char *m_name;
- static const char *m_theme_proxy;
- static OptList positionOptions() { return OptList(); }
-};
-
-const char *AtomicVariantInfo::m_name = "Atomic";
-const char *AtomicVariantInfo::m_theme_proxy = "Chess";
-
-void AtomicVariantInfo::forallPieces(PieceFunction& f) {
- ChessVariant::forallPieces(f);
-}
-
-
-VariantInfo* AtomicVariant::static_atomic_variant = 0;
-
-VariantInfo* AtomicVariant::info() {
- if (!static_atomic_variant)
- static_atomic_variant = new WrappedVariantInfo;
- return static_atomic_variant;
-}
-
diff --git a/src/variants/atomic.h_ b/src/variants/atomic.h_
deleted file mode 100644
index 5b4a7bf..0000000
--- a/src/variants/atomic.h_
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- Copyright (c) 2006 Paolo Capriotti
- (c) 2006 Maurizio Monge
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-*/
-
-#ifndef ATOMICVARIANT_H
-#define ATOMICVARIANT_H
-
-#include "chess.h"
-
-class AtomicVariant {
-private:
- static VariantInfo* static_atomic_variant;
-public:
- static VariantInfo* info();
-};
-
-#endif // ATOMICVARIANT_H
diff --git a/src/variants/chainreaction.cpp_ b/src/variants/chainreaction.cpp_
deleted file mode 100644
index 1e0e0df..0000000
--- a/src/variants/chainreaction.cpp_
+++ /dev/null
@@ -1,479 +0,0 @@
-/*
- Copyright (c) 2006 Paolo Capriotti
- (c) 2006 Maurizio Monge
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-*/
-
-#include "chainreaction.h"
-#include