|
|
|
@ -198,7 +198,7 @@ namespace embark_assist {
|
|
|
|
|
x = world_data->rivers[i]->path.x[k];
|
|
|
|
|
y = world_data->rivers[i]->path.y[k];
|
|
|
|
|
|
|
|
|
|
if (world_data->rivers[i]->unk_8c[k] < 5000) {
|
|
|
|
|
if (world_data->rivers[i]->flow[k] < 5000) {
|
|
|
|
|
if (world_data->region_map[x][y].flags.is_set(df::region_map_entry_flags::is_brook)) {
|
|
|
|
|
survey_results->at(x).at(y).river_size = embark_assist::defs::river_sizes::Brook;
|
|
|
|
|
}
|
|
|
|
@ -206,10 +206,10 @@ namespace embark_assist {
|
|
|
|
|
survey_results->at(x).at(y).river_size = embark_assist::defs::river_sizes::Stream;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (world_data->rivers[i]->unk_8c[k] < 10000) {
|
|
|
|
|
else if (world_data->rivers[i]->flow[k] < 10000) {
|
|
|
|
|
survey_results->at(x).at(y).river_size = embark_assist::defs::river_sizes::Minor;
|
|
|
|
|
}
|
|
|
|
|
else if (world_data->rivers[i]->unk_8c[k] < 20000) {
|
|
|
|
|
else if (world_data->rivers[i]->flow[k] < 20000) {
|
|
|
|
|
survey_results->at(x).at(y).river_size = embark_assist::defs::river_sizes::Medium;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
@ -227,7 +227,7 @@ namespace embark_assist {
|
|
|
|
|
if (x >= 0 && y >= 0 && x < world->worldgen.worldgen_parms.dim_x && y < world->worldgen.worldgen_parms.dim_y) {
|
|
|
|
|
if (survey_results->at(x).at(y).river_size == embark_assist::defs::river_sizes::None) {
|
|
|
|
|
if (world_data->rivers[i]->path.x.size() &&
|
|
|
|
|
world_data->rivers[i]->unk_8c[world_data->rivers[i]->path.x.size() - 1] < 5000) {
|
|
|
|
|
world_data->rivers[i]->flow[world_data->rivers[i]->path.x.size() - 1] < 5000) {
|
|
|
|
|
if (world_data->region_map[x][y].flags.is_set(df::region_map_entry_flags::is_brook)) {
|
|
|
|
|
survey_results->at(x).at(y).river_size = embark_assist::defs::river_sizes::Brook;
|
|
|
|
|
}
|
|
|
|
@ -235,10 +235,10 @@ namespace embark_assist {
|
|
|
|
|
survey_results->at(x).at(y).river_size = embark_assist::defs::river_sizes::Stream;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (world_data->rivers[i]->unk_8c[world_data->rivers[i]->path.x.size() - 1] < 10000) {
|
|
|
|
|
else if (world_data->rivers[i]->flow[world_data->rivers[i]->path.x.size() - 1] < 10000) {
|
|
|
|
|
survey_results->at(x).at(y).river_size = embark_assist::defs::river_sizes::Minor;
|
|
|
|
|
}
|
|
|
|
|
else if (world_data->rivers[i]->unk_8c[world_data->rivers[i]->path.x.size() - 1] < 20000) {
|
|
|
|
|
else if (world_data->rivers[i]->flow[world_data->rivers[i]->path.x.size() - 1] < 20000) {
|
|
|
|
|
survey_results->at(x).at(y).river_size = embark_assist::defs::river_sizes::Medium;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
@ -268,11 +268,11 @@ namespace embark_assist {
|
|
|
|
|
reanimating = true;
|
|
|
|
|
}
|
|
|
|
|
else if (interaction->targets[k]->getType() == 2) {// Returns wrong type.. Should be df::interaction_target_type::MATERIAL
|
|
|
|
|
df::interaction_target_materialst* material = static_cast<df::interaction_target_materialst*>(interaction->targets[k]);
|
|
|
|
|
if (DFHack::MaterialInfo(material->anon_1, material->anon_2).isInorganic()) {
|
|
|
|
|
for (uint16_t l = 0; l < world->raws.inorganics[material->anon_2]->material.syndrome.size(); l++) {
|
|
|
|
|
for (uint16_t m = 0; m < world->raws.inorganics[material->anon_2]->material.syndrome[l]->ce.size(); m++) {
|
|
|
|
|
if (world->raws.inorganics[material->anon_2]->material.syndrome[l]->ce[m]->getType() == df::creature_interaction_effect_type::FLASH_TILE) {
|
|
|
|
|
df::interaction_target_materialst* material = virtual_cast<df::interaction_target_materialst>(interaction->targets[k]);
|
|
|
|
|
if (material && DFHack::MaterialInfo(material->mat_type, material->mat_index).isInorganic()) {
|
|
|
|
|
for (uint16_t l = 0; l < world->raws.inorganics[material->mat_index]->material.syndrome.size(); l++) {
|
|
|
|
|
for (uint16_t m = 0; m < world->raws.inorganics[material->mat_index]->material.syndrome[l]->ce.size(); m++) {
|
|
|
|
|
if (world->raws.inorganics[material->mat_index]->material.syndrome[l]->ce[m]->getType() == df::creature_interaction_effect_type::FLASH_TILE) {
|
|
|
|
|
// Using this as a proxy. There seems to be a group of 4 effects for thralls:
|
|
|
|
|
// display symbol, flash symbol, phys att change and one more.
|
|
|
|
|
thralling = true;
|
|
|
|
|