File indexing completed on 2024-04-21 04:04:02
0001 /* 0002 KShisen - A japanese game similar to Mahjongg 0003 SPDX-FileCopyrightText: 2016 Frederik Schwarzer <schwarzer@kde.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 // own 0009 #include "move.h" 0010 0011 namespace KShisen 0012 { 0013 Move::Move(TilePos tilePos1, TilePos tilePos2, int tile1, int tile2) 0014 : m_tilePos1(tilePos1) 0015 , m_tilePos2(tilePos2) 0016 , m_tile1(tile1) 0017 , m_tile2(tile2) 0018 , m_hasSlide(false) 0019 , m_slide(Slide()) 0020 { 0021 } 0022 0023 Move::Move(TilePos tilePos1, TilePos tilePos2, int tile1, int tile2, Slide const & slide) 0024 : m_tilePos1(tilePos1) 0025 , m_tilePos2(tilePos2) 0026 , m_tile1(tile1) 0027 , m_tile2(tile2) 0028 , m_hasSlide(true) 0029 , m_slide(slide) 0030 { 0031 } 0032 0033 int Move::x1() const 0034 { 0035 return m_tilePos1.x(); 0036 } 0037 0038 int Move::y1() const 0039 { 0040 return m_tilePos1.y(); 0041 } 0042 0043 int Move::x2() const 0044 { 0045 return m_tilePos2.x(); 0046 } 0047 0048 int Move::y2() const 0049 { 0050 return m_tilePos2.y(); 0051 } 0052 0053 int Move::tile1() const 0054 { 0055 return m_tile1; 0056 } 0057 0058 int Move::tile2() const 0059 { 0060 return m_tile2; 0061 } 0062 0063 bool Move::hasSlide() const 0064 { 0065 return m_hasSlide; 0066 } 0067 0068 Slide Move::slide() const 0069 { 0070 return m_slide; 0071 } 0072 0073 int Move::slideX1() const 0074 { 0075 if (m_slide.empty()) { 0076 return 0; 0077 } 0078 return m_slide.front().x(); 0079 } 0080 0081 int Move::slideY1() const 0082 { 0083 if (m_slide.empty()) { 0084 return 0; 0085 } 0086 return m_slide.front().y(); 0087 } 0088 0089 int Move::slideX2() const 0090 { 0091 if (m_slide.empty()) { 0092 return 0; 0093 } 0094 return m_slide.back().x(); 0095 } 0096 0097 int Move::slideY2() const 0098 { 0099 if (m_slide.empty()) { 0100 return 0; 0101 } 0102 return m_slide.back().y(); 0103 } 0104 0105 void Move::swapTiles() 0106 { 0107 std::swap(m_tilePos1, m_tilePos2); 0108 std::swap(m_tile1, m_tile2); 0109 } 0110 } // namespace KShisen 0111 0112 // vim: expandtab:tabstop=4:shiftwidth=4 0113 // kate: space-indent on; indent-width 4