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