|
|
|
@ -1641,10 +1641,10 @@ uint8_t embark_assist::survey::translate_corner(embark_assist::defs::world_tile
|
|
|
|
|
bool n_region_type_active;
|
|
|
|
|
bool w_region_type_active;
|
|
|
|
|
bool home_region_type_active;
|
|
|
|
|
uint8_t nw_region_type_level;
|
|
|
|
|
uint8_t n_region_type_level;
|
|
|
|
|
uint8_t w_region_type_level;
|
|
|
|
|
uint8_t home_region_type_level;
|
|
|
|
|
int8_t nw_region_type_level;
|
|
|
|
|
int8_t n_region_type_level;
|
|
|
|
|
int8_t w_region_type_level;
|
|
|
|
|
int8_t home_region_type_level;
|
|
|
|
|
|
|
|
|
|
if (corner_location == 4) { // We're the reference. No change.
|
|
|
|
|
}
|
|
|
|
@ -1666,6 +1666,39 @@ uint8_t embark_assist::survey::translate_corner(embark_assist::defs::world_tile
|
|
|
|
|
return 4;
|
|
|
|
|
}
|
|
|
|
|
else { // East side corners of the east edge of the world
|
|
|
|
|
nw_region_type = embark_assist::survey::region_type_of(survey_results, x, y, effective_i - 1, effective_k - 1);
|
|
|
|
|
w_region_type = embark_assist::survey::region_type_of(survey_results, x, y, effective_i - 1, effective_k);
|
|
|
|
|
|
|
|
|
|
if (nw_region_type == df::world_region_type::Lake ||
|
|
|
|
|
nw_region_type == df::world_region_type::Ocean) {
|
|
|
|
|
nw_region_type_level = 0;
|
|
|
|
|
}
|
|
|
|
|
else if (nw_region_type == df::world_region_type::Mountains) {
|
|
|
|
|
nw_region_type_level = 1;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
nw_region_type_level = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (w_region_type == df::world_region_type::Lake ||
|
|
|
|
|
w_region_type == df::world_region_type::Ocean) {
|
|
|
|
|
w_region_type_level = 0;
|
|
|
|
|
}
|
|
|
|
|
else if (w_region_type == df::world_region_type::Mountains) {
|
|
|
|
|
w_region_type_level = 1;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
w_region_type_level = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nw_region_type_level < w_region_type_level) {
|
|
|
|
|
return 4;
|
|
|
|
|
}
|
|
|
|
|
else if (nw_region_type_level > w_region_type_level) {
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Neither tile will automatically yield to the other
|
|
|
|
|
if (corner_location == 5) {
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
@ -1675,11 +1708,44 @@ uint8_t embark_assist::survey::translate_corner(embark_assist::defs::world_tile
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (effective_y == world_data->world_height) {
|
|
|
|
|
nw_region_type = embark_assist::survey::region_type_of(survey_results, x, y, effective_i - 1, effective_k - 1);
|
|
|
|
|
n_region_type = embark_assist::survey::region_type_of(survey_results, x, y, effective_i, effective_k - 1);
|
|
|
|
|
|
|
|
|
|
if (nw_region_type == df::world_region_type::Lake ||
|
|
|
|
|
nw_region_type == df::world_region_type::Ocean) {
|
|
|
|
|
nw_region_type_level = 0;
|
|
|
|
|
}
|
|
|
|
|
else if (nw_region_type == df::world_region_type::Mountains) {
|
|
|
|
|
nw_region_type_level = 1;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
nw_region_type_level = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (n_region_type == df::world_region_type::Lake ||
|
|
|
|
|
n_region_type == df::world_region_type::Ocean) {
|
|
|
|
|
n_region_type_level = 0;
|
|
|
|
|
}
|
|
|
|
|
else if (n_region_type == df::world_region_type::Mountains) {
|
|
|
|
|
n_region_type_level = 1;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
n_region_type_level = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nw_region_type_level < n_region_type_level) {
|
|
|
|
|
return 4;
|
|
|
|
|
}
|
|
|
|
|
else if (nw_region_type_level > n_region_type_level) {
|
|
|
|
|
return 5;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Neither tile will automatically yield to the other
|
|
|
|
|
if (corner_location == 7) {
|
|
|
|
|
return 4;
|
|
|
|
|
}
|
|
|
|
|
else { // Can only be corner_location == 8
|
|
|
|
|
return 3;
|
|
|
|
|
return 5;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|