Added ChessGameState, related classes and tests.
[tagua/yd.git] / tests / hlvariants / prototype / chess / move.h
blobcb36476a4364b59fb30b043a49a79a2eb8265c20
1 #ifndef HLVARIANT__CHESS__MOVE_H
2 #define HLVARIANT__CHESS__MOVE_H
4 #include "point.h"
6 namespace HLVariant {
7 namespace Chess {
9 class Move {
10 public:
11 enum Type {
12 NORMAL,
13 EN_PASSANT_CAPTURE,
14 EN_PASSANT_TRIGGER,
15 KING_SIDE_CASTLING,
16 QUEEN_SIDE_CASTLING,
17 PROMOTION
19 private:
20 Type m_type;
22 Point m_from;
23 Point m_to;
24 int m_promotion;
25 public:
26 Move(const Point& from, const Point& to, int promotionType = -1);
27 virtual ~Move();
29 virtual Point enPassantTrigger() const;
30 virtual Point captureSquare() const;
31 virtual int promoteTo() const;
32 virtual bool kingSideCastling() const;
33 virtual bool queenSideCastling() const;
35 virtual Point from() const;
36 virtual Point to() const;
38 virtual void setType(Type type);
41 } // namespace Chess
42 } // namespace HLVariant
44 #endif // HLVARIANT__CHESS__MOVE_H