1 /*
2 KShisen - A japanese game similar to Mahjongg
3 SPDX-FileCopyrightText: 2016 Frederik Schwarzer <schwarzer@kde.org>
4
5 SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
8 // own
9 #include "move.h"
10
11 namespace KShisen
12 {
Move(TilePos tilePos1,TilePos tilePos2,int tile1,int tile2)13 Move::Move(TilePos tilePos1, TilePos tilePos2, int tile1, int tile2)
14 : m_tilePos1(tilePos1)
15 , m_tilePos2(tilePos2)
16 , m_tile1(tile1)
17 , m_tile2(tile2)
18 , m_hasSlide(false)
19 , m_slide(Slide())
20 {
21 }
22
Move(TilePos tilePos1,TilePos tilePos2,int tile1,int tile2,Slide const & slide)23 Move::Move(TilePos tilePos1, TilePos tilePos2, int tile1, int tile2, Slide const & slide)
24 : m_tilePos1(tilePos1)
25 , m_tilePos2(tilePos2)
26 , m_tile1(tile1)
27 , m_tile2(tile2)
28 , m_hasSlide(true)
29 , m_slide(slide)
30 {
31 }
32
x1() const33 int Move::x1() const
34 {
35 return m_tilePos1.x();
36 }
37
y1() const38 int Move::y1() const
39 {
40 return m_tilePos1.y();
41 }
42
x2() const43 int Move::x2() const
44 {
45 return m_tilePos2.x();
46 }
47
y2() const48 int Move::y2() const
49 {
50 return m_tilePos2.y();
51 }
52
tile1() const53 int Move::tile1() const
54 {
55 return m_tile1;
56 }
57
tile2() const58 int Move::tile2() const
59 {
60 return m_tile2;
61 }
62
hasSlide() const63 bool Move::hasSlide() const
64 {
65 return m_hasSlide;
66 }
67
slide() const68 Slide Move::slide() const
69 {
70 return m_slide;
71 }
72
slideX1() const73 int Move::slideX1() const
74 {
75 if (m_slide.empty()) {
76 return 0;
77 }
78 return m_slide.front().x();
79 }
80
slideY1() const81 int Move::slideY1() const
82 {
83 if (m_slide.empty()) {
84 return 0;
85 }
86 return m_slide.front().y();
87 }
88
slideX2() const89 int Move::slideX2() const
90 {
91 if (m_slide.empty()) {
92 return 0;
93 }
94 return m_slide.back().x();
95 }
96
slideY2() const97 int Move::slideY2() const
98 {
99 if (m_slide.empty()) {
100 return 0;
101 }
102 return m_slide.back().y();
103 }
104
swapTiles()105 void Move::swapTiles()
106 {
107 std::swap(m_tilePos1, m_tilePos2);
108 std::swap(m_tile1, m_tile2);
109 }
110 } // namespace KShisen
111
112 // vim: expandtab:tabstop=4:shiftwidth=4
113 // kate: space-indent on; indent-width 4
114