liblcf
rpg_terrain.h
Go to the documentation of this file.
1 /* !!!! GENERATED FILE - DO NOT EDIT !!!!
2  * --------------------------------------
3  *
4  * This file is part of liblcf. Copyright (c) 2020 liblcf authors.
5  * https://github.com/EasyRPG/liblcf - https://easyrpg.org
6  *
7  * liblcf is Free/Libre Open Source Software, released under the MIT License.
8  * For the full copyright and license information, please view the COPYING
9  * file that was distributed with this source code.
10  */
11 
12 #ifndef LCF_RPG_TERRAIN_H
13 #define LCF_RPG_TERRAIN_H
14 
15 // Headers
16 #include <array>
17 #include <stdint.h>
18 #include <string>
19 #include "enum_tags.h"
20 #include "rpg_sound.h"
21 
25 namespace RPG {
26  class Terrain {
27  public:
28  enum BushDepth {
32  BushDepth_full = 3
33  };
34  static constexpr auto kBushDepthTags = makeEnumTags<BushDepth>(
35  "normal",
36  "third",
37  "half",
38  "full"
39  );
43  };
44  static constexpr auto kBGAssociationTags = makeEnumTags<BGAssociation>(
45  "background",
46  "frame"
47  );
48 
49  int ID = 0;
50  std::string name;
51  int32_t damage = 0;
52  int32_t encounter_rate = 100;
53  std::string background_name;
54  bool boat_pass = false;
55  bool ship_pass = false;
56  bool airship_pass = true;
57  bool airship_land = true;
58  int32_t bush_depth = 0;
60  bool on_damage_se = false;
61  int32_t background_type = 0;
62  std::string background_a_name;
63  bool background_a_scrollh = false;
64  bool background_a_scrollv = false;
67  bool background_b = false;
68  std::string background_b_name;
69  bool background_b_scrollh = false;
70  bool background_b_scrollv = false;
73  struct Flags {
74  union {
75  struct {
76  bool back_party;
80  };
81  std::array<bool, 4> flags;
82  };
83  //TODO: Should try to switch to member initializers when we upgrade to VS2017.
84  Flags() noexcept: back_party(false), back_enemies(false), lateral_party(false), lateral_enemies(false)
85  {}
86  } special_flags;
87  int32_t special_back_party = 15;
88  int32_t special_back_enemies = 10;
89  int32_t special_lateral_party = 10;
91  int32_t grid_location = 0;
92  int32_t grid_top_y = 120;
93  int32_t grid_elongation = 392;
94  int32_t grid_inclination = 16000;
95  };
96 
97  inline bool operator==(const Terrain::Flags& l, const Terrain::Flags& r) {
98  return l.flags == r.flags;
99  }
100 
101  inline bool operator!=(const Terrain::Flags& l, const Terrain::Flags& r) {
102  return !(l == r);
103  }
104 
105  inline bool operator==(const Terrain& l, const Terrain& r) {
106  return l.name == r.name
107  && l.damage == r.damage
110  && l.boat_pass == r.boat_pass
111  && l.ship_pass == r.ship_pass
112  && l.airship_pass == r.airship_pass
113  && l.airship_land == r.airship_land
114  && l.bush_depth == r.bush_depth
115  && l.footstep == r.footstep
116  && l.on_damage_se == r.on_damage_se
123  && l.background_b == r.background_b
129  && l.special_flags == r.special_flags
134  && l.grid_location == r.grid_location
135  && l.grid_top_y == r.grid_top_y
138  }
139 
140  inline bool operator!=(const Terrain& l, const Terrain& r) {
141  return !(l == r);
142  }
143 }
144 
145 #endif
bool background_b
Definition: rpg_terrain.h:67
bool airship_pass
Definition: rpg_terrain.h:56
bool boat_pass
Definition: rpg_terrain.h:54
std::string name
Definition: rpg_terrain.h:50
bool background_b_scrollv
Definition: rpg_terrain.h:70
static constexpr auto kBGAssociationTags
Definition: rpg_terrain.h:44
int32_t grid_inclination
Definition: rpg_terrain.h:94
int32_t special_back_enemies
Definition: rpg_terrain.h:88
bool on_damage_se
Definition: rpg_terrain.h:60
bool background_b_scrollh
Definition: rpg_terrain.h:69
int32_t damage
Definition: rpg_terrain.h:51
int32_t background_type
Definition: rpg_terrain.h:61
int32_t background_b_scrollv_speed
Definition: rpg_terrain.h:72
@ BGAssociation_background
Definition: rpg_terrain.h:41
@ BGAssociation_frame
Definition: rpg_terrain.h:42
struct RPG::Terrain::Flags special_flags
bool ship_pass
Definition: rpg_terrain.h:55
bool airship_land
Definition: rpg_terrain.h:57
int32_t grid_top_y
Definition: rpg_terrain.h:92
std::string background_name
Definition: rpg_terrain.h:53
bool background_a_scrollh
Definition: rpg_terrain.h:63
int32_t grid_elongation
Definition: rpg_terrain.h:93
int32_t background_a_scrollh_speed
Definition: rpg_terrain.h:65
int32_t special_lateral_enemies
Definition: rpg_terrain.h:90
int32_t bush_depth
Definition: rpg_terrain.h:58
int32_t background_a_scrollv_speed
Definition: rpg_terrain.h:66
bool background_a_scrollv
Definition: rpg_terrain.h:64
std::string background_b_name
Definition: rpg_terrain.h:68
int32_t grid_location
Definition: rpg_terrain.h:91
int32_t special_lateral_party
Definition: rpg_terrain.h:89
int32_t encounter_rate
Definition: rpg_terrain.h:52
std::string background_a_name
Definition: rpg_terrain.h:62
int32_t background_b_scrollh_speed
Definition: rpg_terrain.h:71
int32_t special_back_party
Definition: rpg_terrain.h:87
Sound footstep
Definition: rpg_terrain.h:59
static constexpr auto kBushDepthTags
Definition: rpg_terrain.h:34
Definition: rpg_actor.h:26
bool operator==(const Actor &l, const Actor &r)
Definition: rpg_actor.h:64
bool operator!=(const Actor &l, const Actor &r)
Definition: rpg_actor.h:98
Flags() noexcept
Definition: rpg_terrain.h:84
std::array< bool, 4 > flags
Definition: rpg_terrain.h:81