-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmoves.cpp
67 lines (55 loc) · 1.29 KB
/
moves.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "boardsettings.h"
#include "tiles.h"
#include "pieces.h"
#include "moves.h"
Move::Move() {}
Move::Move(Tile* s, Piece* p, Tile* d) {
source = s;
piece = p;
destination = d;
}
Move::Move(Tile* s, Piece* p, Tile* d, Piece* e) {
source = s;
piece = p;
destination = d;
eat = e;
}
Move::Move(Tile* s, Piece* p, Tile* d, Piece* e, Tile* et) {
source = s;
piece = p;
destination = d;
eat = e;
eat_tile = et;
}
void Move::highlight() {
source->highlightRecent();
destination->highlightRecent();
}
void Move::unhighlight() {
source->unhighlightRecent();
destination->unhighlightRecent();
}
MoveCastle::MoveCastle(Tile* sk, Tile* sr, Piece* k, Piece* r, Tile* dk, Tile* dr) {
source = sk;
source_rook = sr;
piece = k;
piece_rook = r;
destination = dk;
destination_rook = dr;
castle = true;
}
MovePromotion::MovePromotion(Tile* s, Piece* p, Tile* d, PieceType pt) {
source = s;
piece = p;
destination = d;
piece_type = pt;
promotion = true;
}
MovePromotion::MovePromotion(Tile* s, Piece* p, Tile* d, Piece* e, PieceType pt) {
source = s;
piece = p;
destination = d;
eat = e;
piece_type = pt;
promotion = true;
}