Peoplemon  0.1.0
Peoplemon 3 game source documentation
Item.hpp
Go to the documentation of this file.
1 #ifndef CORE_MAPS_ITEM_HPP
2 #define CORE_MAPS_ITEM_HPP
3 
4 #include <BLIB/Serialization.hpp>
5 
6 namespace core
7 {
8 namespace map
9 {
16 struct Item {
17  std::uint16_t id;
18  std::uint16_t mapId;
19  sf::Vector2i position;
20  std::uint8_t level;
21  bool visible;
22 
27  Item();
28 
38  Item(std::uint16_t id, std::uint16_t mapId, const sf::Vector2i& pos, std::uint8_t level,
39  bool visible);
40 };
41 
42 } // namespace map
43 } // namespace core
44 
45 namespace bl
46 {
47 namespace serial
48 {
49 template<>
50 struct SerializableObject<core::map::Item> : public SerializableObjectBase {
51  using I = core::map::Item;
52 
53  SerializableField<1, I, std::uint16_t> id;
54  SerializableField<2, I, std::uint16_t> mapId;
55  SerializableField<3, I, sf::Vector2i> position;
56  SerializableField<4, I, std::uint8_t> level;
57  SerializableField<5, I, bool> visible;
58 
60  : SerializableObjectBase("MapItem")
61  , id("id", *this, &I::id, SerializableFieldBase::Required{})
62  , mapId("mapid", *this, &I::mapId, SerializableFieldBase::Required{})
63  , position("position", *this, &I::position, SerializableFieldBase::Required{})
64  , level("level", *this, &I::level, SerializableFieldBase::Required{})
65  , visible("visible", *this, &I::visible, SerializableFieldBase::Required{}) {}
66 };
67 
68 } // namespace serial
69 } // namespace bl
70 
71 #endif
Core classes and functionality for both the editor and game.
Basic struct representing a pickup-able item in Map.
Definition: Item.hpp:16
std::uint16_t id
Definition: Item.hpp:17
Item()
Makes an empty item.
Definition: Item.cpp:7
std::uint8_t level
Definition: Item.hpp:20
sf::Vector2i position
Definition: Item.hpp:19
std::uint16_t mapId
Definition: Item.hpp:18
bool visible
Definition: Item.hpp:21
SerializableField< 2, I, std::uint16_t > mapId
Definition: Item.hpp:54
SerializableField< 5, I, bool > visible
Definition: Item.hpp:57
SerializableField< 1, I, std::uint16_t > id
Definition: Item.hpp:53
SerializableField< 4, I, std::uint8_t > level
Definition: Item.hpp:56
SerializableField< 3, I, sf::Vector2i > position
Definition: Item.hpp:55