created struct mid_level_tile_incursion_base that only contains attributes that are relevant for incursion processing

- def.h: make attributes/fields of mid_level_tile_incursion_base available in mid_level_tile by inheriting from mid_level_tile_incursion_base which also allows treating mid_level_tile as a mid_level_tile_incursion_base
develop
bseiller 2021-01-18 23:23:50 +01:00
parent e7b770b65a
commit cc68767336
1 changed files with 13 additions and 8 deletions

@ -68,24 +68,29 @@ namespace embark_assist {
Woodland, Woodland,
Heavily_Forested Heavily_Forested
}; };
struct mid_level_tile { // only contains those attributes that are being handled during incursion processing
struct mid_level_tile_incursion_base {
uint8_t aquifer = Clear_Aquifer_Bits; uint8_t aquifer = Clear_Aquifer_Bits;
bool clay = false; bool clay = false;
bool sand = false; bool sand = false;
int8_t soil_depth;
int16_t elevation;
int8_t biome_offset;
tree_levels trees;
uint8_t savagery_level; // 0 - 2
uint8_t evilness_level; // 0 - 2
};
// contains all attributes (some by inheritance), used for regular survey/matching
struct mid_level_tile : public mid_level_tile_incursion_base {
bool flux = false; bool flux = false;
bool coal = false; bool coal = false;
int8_t soil_depth;
int8_t offset; int8_t offset;
int16_t elevation;
river_sizes river_size = river_sizes::None; river_sizes river_size = river_sizes::None;
int16_t river_elevation = 100; int16_t river_elevation = 100;
int8_t adamantine_level; // -1 = none, 0 .. 3 = cavern 1 .. magma sea. Currently not used beyond present/absent. int8_t adamantine_level; // -1 = none, 0 .. 3 = cavern 1 .. magma sea. Currently not used beyond present/absent.
int8_t magma_level; // -1 = none, 0 .. 3 = cavern 3 .. surface/volcano int8_t magma_level; // -1 = none, 0 .. 3 = cavern 3 .. surface/volcano
int8_t biome_offset;
tree_levels trees;
uint8_t savagery_level; // 0 - 2
uint8_t evilness_level; // 0 - 2
std::vector<bool> metals; std::vector<bool> metals;
std::vector<bool> economics; std::vector<bool> economics;
std::vector<bool> minerals; std::vector<bool> minerals;