liblcf
Loading...
Searching...
No Matches
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
25namespace RPG {
26 class Terrain {
27 public:
28 enum BushDepth {
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;
67 bool background_b = false;
68 std::string background_b_name;
73 struct Flags {
74 union {
75 struct {
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 {}
87 int32_t special_back_party = 15;
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
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
int32_t grid_inclination
Definition: rpg_terrain.h:94
int32_t special_back_enemies
Definition: rpg_terrain.h:88
static constexpr auto kBushDepthTags
Definition: rpg_terrain.h:34
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 kBGAssociationTags
Definition: rpg_terrain.h:44
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