ManaPlus
mapitem.h
Go to the documentation of this file.
1 /*
2  * The ManaPlus Client
3  * Copyright (C) 2011-2018 The ManaPlus Developers
4  *
5  * This file is part of The ManaPlus Client.
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 #ifndef RESOURCES_MAP_MAPITEM_H
22 #define RESOURCES_MAP_MAPITEM_H
23 
24 #include <string>
25 
26 #include "localconsts.h"
27 
28 class Graphics;
29 class Image;
30 
32 {
33  public:
34  friend class Map;
35  friend class MapLayer;
36  friend class SpecialLayer;
37 
38  MapItem();
39 
40  explicit MapItem(const int type);
41 
42  MapItem(const int type,
43  const std::string &comment);
44 
45  MapItem(const int type,
46  const std::string &comment,
47  const int x,
48  const int y);
49 
51 
52  ~MapItem();
53 
55  { return mType; }
56 
57  void setType(const int type);
58 
59  void setPos(const int x, const int y);
60 
62  { return mX; }
63 
65  { return mY; }
66 
67  const std::string &getComment() const noexcept2 A_WARN_UNUSED
68  { return mComment; }
69 
70  void setComment(const std::string &comment) noexcept2
71  { mComment = comment; }
72 
73  const std::string &getName() const noexcept2 A_WARN_UNUSED
74  { return mName; }
75 
76  void setName(const std::string &name) noexcept2
77  { mName = name; }
78 
79  void draw(Graphics *const graphics,
80  const int x, const int y,
81  const int dx, const int dy) const A_NONNULL(2);
82 
83  private:
85  std::string mComment;
86  std::string mName;
87  int mType;
88  int mX;
89  int mY;
90 };
91 
92 #endif // RESOURCES_MAP_MAPITEM_H
#define A_DELETE_COPY(func)
Definition: localconsts.h:52
const std::string & getName() const
Definition: mapitem.h:73
int getY() const
Definition: mapitem.h:64
int mType
Definition: mapitem.h:87
MapItem()
Definition: mapitem.cpp:38
const std::string & getComment() const
Definition: mapitem.h:67
int mY
Definition: mapitem.h:89
#define A_WARN_UNUSED
Definition: localconsts.h:152
#define final
Definition: localconsts.h:45
void setName(const std::string &name)
Definition: mapitem.h:76
#define A_NONNULL(...)
Definition: localconsts.h:159
std::string mComment
Definition: mapitem.h:85
int getType() const
Definition: mapitem.h:54
int getX() const
Definition: mapitem.h:61
std::string mName
Definition: mapitem.h:86
void setType(const int type)
Definition: mapitem.cpp:95
int mX
Definition: mapitem.h:88
Definition: map.h:71
Image * mImage
Definition: mapitem.h:84
~MapItem()
Definition: mapitem.cpp:86
Definition: image.h:61
void setComment(const std::string &comment)
Definition: mapitem.h:70
void draw(Graphics *const graphics, const int x, const int y, const int dx, const int dy) const
Definition: mapitem.cpp:132
#define noexcept2
Definition: localconsts.h:49
void setPos(const int x, const int y)
Definition: mapitem.cpp:126