|
|
@ -1278,44 +1278,45 @@ void embark_assist::survey::survey_mid_level_tile(embark_assist::defs::geo_data
|
|
|
|
|
|
|
|
|
|
|
|
for (uint8_t i = 0; i < 16; i++) {
|
|
|
|
for (uint8_t i = 0; i < 16; i++) {
|
|
|
|
for (uint8_t k = 0; k < 16; k++) {
|
|
|
|
for (uint8_t k = 0; k < 16; k++) {
|
|
|
|
tile.aquifer |= mlt->at(i).at(k).aquifer;
|
|
|
|
embark_assist::defs::mid_level_tile &mid_level_tile = mlt->at(i).at(k);
|
|
|
|
if (mlt->at(i).at(k).clay) { tile.clay_count++; }
|
|
|
|
tile.aquifer |= mid_level_tile.aquifer;
|
|
|
|
if (mlt->at(i).at(k).sand) { tile.sand_count++; }
|
|
|
|
if (mid_level_tile.clay) { tile.clay_count++; }
|
|
|
|
if (mlt->at(i).at(k).flux) { tile.flux_count++; }
|
|
|
|
if (mid_level_tile.sand) { tile.sand_count++; }
|
|
|
|
if (mlt->at(i).at(k).coal) { tile.coal_count++; }
|
|
|
|
if (mid_level_tile.flux) { tile.flux_count++; }
|
|
|
|
|
|
|
|
if (mid_level_tile.coal) { tile.coal_count++; }
|
|
|
|
|
|
|
|
|
|
|
|
if (mlt->at(i).at(k).soil_depth < tile.min_region_soil) {
|
|
|
|
if (mid_level_tile.soil_depth < tile.min_region_soil) {
|
|
|
|
tile.min_region_soil = mlt->at(i).at(k).soil_depth;
|
|
|
|
tile.min_region_soil = mid_level_tile.soil_depth;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (mlt->at(i).at(k).soil_depth > tile.max_region_soil) {
|
|
|
|
if (mid_level_tile.soil_depth > tile.max_region_soil) {
|
|
|
|
tile.max_region_soil = mlt->at(i).at(k).soil_depth;
|
|
|
|
tile.max_region_soil = mid_level_tile.soil_depth;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (mlt->at(i).at(k).river_size != embark_assist::defs::river_sizes::None) {
|
|
|
|
if (mid_level_tile.river_size != embark_assist::defs::river_sizes::None) {
|
|
|
|
if (tile.min_river_size == embark_assist::defs::river_sizes::None ||
|
|
|
|
if (tile.min_river_size == embark_assist::defs::river_sizes::None ||
|
|
|
|
mlt->at(i).at(k).river_size < tile.min_river_size) {
|
|
|
|
mid_level_tile.river_size < tile.min_river_size) {
|
|
|
|
tile.min_river_size = mlt->at(i).at(k).river_size;
|
|
|
|
tile.min_river_size = mid_level_tile.river_size;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (tile.max_river_size < mlt->at(i).at(k).river_size) {
|
|
|
|
if (tile.max_river_size < mid_level_tile.river_size) {
|
|
|
|
tile.max_river_size = mlt->at(i).at(k).river_size;
|
|
|
|
tile.max_river_size = mid_level_tile.river_size;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (i < 15 &&
|
|
|
|
if (i < 15 &&
|
|
|
|
mlt->at(i + 1).at(k).river_size != embark_assist::defs::river_sizes::None &&
|
|
|
|
mlt->at(i + 1).at(k).river_size != embark_assist::defs::river_sizes::None &&
|
|
|
|
abs (mlt->at(i).at(k).river_elevation - mlt->at(i + 1).at(k).river_elevation) >
|
|
|
|
abs (mid_level_tile.river_elevation - mlt->at(i + 1).at(k).river_elevation) >
|
|
|
|
tile.max_waterfall) {
|
|
|
|
tile.max_waterfall) {
|
|
|
|
tile.max_waterfall =
|
|
|
|
tile.max_waterfall =
|
|
|
|
abs(mlt->at(i).at(k).river_elevation - mlt->at(i + 1).at(k).river_elevation);
|
|
|
|
abs(mid_level_tile.river_elevation - mlt->at(i + 1).at(k).river_elevation);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (k < 15 &&
|
|
|
|
if (k < 15 &&
|
|
|
|
mlt->at(i).at(k + 1).river_size != embark_assist::defs::river_sizes::None &&
|
|
|
|
mlt->at(i).at(k + 1).river_size != embark_assist::defs::river_sizes::None &&
|
|
|
|
abs(mlt->at(i).at(k).river_elevation - mlt->at(i).at(k + 1).river_elevation) >
|
|
|
|
abs(mid_level_tile.river_elevation - mlt->at(i).at(k + 1).river_elevation) >
|
|
|
|
tile.max_waterfall) {
|
|
|
|
tile.max_waterfall) {
|
|
|
|
tile.max_waterfall =
|
|
|
|
tile.max_waterfall =
|
|
|
|
abs(mlt->at(i).at(k).river_elevation - mlt->at(i).at(k + 1).river_elevation);
|
|
|
|
abs(mid_level_tile.river_elevation - mlt->at(i).at(k + 1).river_elevation);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1325,16 +1326,16 @@ void embark_assist::survey::survey_mid_level_tile(embark_assist::defs::geo_data
|
|
|
|
// reanimating handled separately
|
|
|
|
// reanimating handled separately
|
|
|
|
// thralling handled separately
|
|
|
|
// thralling handled separately
|
|
|
|
|
|
|
|
|
|
|
|
if (tile.min_tree_level > mlt->at(i).at(k).trees) tile.min_tree_level = mlt->at(i).at(k).trees;
|
|
|
|
if (tile.min_tree_level > mid_level_tile.trees) tile.min_tree_level = mid_level_tile.trees;
|
|
|
|
if (tile.max_tree_level < mlt->at(i).at(k).trees) tile.max_tree_level = mlt->at(i).at(k).trees;
|
|
|
|
if (tile.max_tree_level < mid_level_tile.trees) tile.max_tree_level = mid_level_tile.trees;
|
|
|
|
|
|
|
|
|
|
|
|
tile.savagery_count[mlt->at(i).at(k).savagery_level]++;
|
|
|
|
tile.savagery_count[mid_level_tile.savagery_level]++;
|
|
|
|
tile.evilness_count[mlt->at(i).at(k).evilness_level]++;
|
|
|
|
tile.evilness_count[mid_level_tile.evilness_level]++;
|
|
|
|
|
|
|
|
|
|
|
|
for (uint16_t l = 0; l < state->max_inorganic; l++) {
|
|
|
|
for (uint16_t l = 0; l < state->max_inorganic; l++) {
|
|
|
|
if (mlt->at(i).at(k).metals[l]) { tile.metals[l] = true; }
|
|
|
|
if (mid_level_tile.metals[l]) { tile.metals[l] = true; }
|
|
|
|
if (mlt->at(i).at(k).economics[l]) { tile.economics[l] = true; }
|
|
|
|
if (mid_level_tile.economics[l]) { tile.economics[l] = true; }
|
|
|
|
if (mlt->at(i).at(k).minerals[l]) { tile.minerals[l] = true; }
|
|
|
|
if (mid_level_tile.minerals[l]) { tile.minerals[l] = true; }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|