1// SuperTux
2// Copyright (C) 2016 Hume2 <teratux.mail@gmail.com>
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17#include "editor/tile_selection.hpp"
18
19TileSelection::TileSelection() :
20 m_tiles(1),
21 m_width(1),
22 m_height(1)
23{
24}
25
26uint32_t
27TileSelection::pos(int x, int y) const
28{
29 x = x % m_width;
30 y = y % m_height;
31 if (x < 0) {
32 x += m_width;
33 }
34 if (y < 0) {
35 y += m_height;
36 }
37
38 return m_tiles[x + y * m_width];
39}
40
41void
42TileSelection::set_tile(uint32_t tile)
43{
44 m_tiles.clear();
45 m_width = 1;
46 m_height = 1;
47 m_tiles.push_back(tile);
48}
49
50bool
51TileSelection::empty() const
52{
53 for (const auto& tile : m_tiles) {
54 if (tile != 0) {
55 return false;
56 }
57 }
58 return true;
59}
60
61/* EOF */
62