diff options
| author | Alexander Gavrilov | 2012-03-18 15:35:38 +0400 |
|---|---|---|
| committer | Alexander Gavrilov | 2012-03-18 15:35:38 +0400 |
| commit | d4626f9751be95e392cf1a0862648bae1e2d0e43 (patch) | |
| tree | 91a8f0bc890e97b5dbeb0c60fd56dbece854949f /library/RemoteTools.cpp | |
| parent | e33414fa6923d0eb917046dcc24f55135622d80b (diff) | |
| download | dfhack-d4626f9751be95e392cf1a0862648bae1e2d0e43.tar.gz dfhack-d4626f9751be95e392cf1a0862648bae1e2d0e43.tar.bz2 dfhack-d4626f9751be95e392cf1a0862648bae1e2d0e43.tar.xz | |
Add unit professions and filtering on status.
Diffstat (limited to 'library/RemoteTools.cpp')
| -rw-r--r-- | library/RemoteTools.cpp | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/library/RemoteTools.cpp b/library/RemoteTools.cpp index 9323c936..68f29e4f 100644 --- a/library/RemoteTools.cpp +++ b/library/RemoteTools.cpp @@ -273,6 +273,7 @@ void DFHack::describeUnit(BasicUnitInfo *info, df::unit *unit, info->set_civ_id(unit->civ_id); if (unit->hist_figure_id >= 0) info->set_histfig_id(unit->hist_figure_id); + if (unit->counters.death_id >= 0) { info->set_death_id(unit->counters.death_id); @@ -280,10 +281,18 @@ void DFHack::describeUnit(BasicUnitInfo *info, df::unit *unit, info->set_death_flags(death->flags.whole); } - if (unit->military.squad_index >= 0) + if (mask && mask->profession()) { - info->set_squad_id(unit->military.squad_index); - info->set_squad_position(unit->military.squad_position); + if (unit->profession >= 0) + info->set_profession(unit->profession); + if (!unit->custom_profession.empty()) + info->set_custom_profession(unit->custom_profession); + + if (unit->military.squad_index >= 0) + { + info->set_squad_id(unit->military.squad_index); + info->set_squad_position(unit->military.squad_position); + } } if (mask && mask->labors()) @@ -429,6 +438,8 @@ static command_result ListEnums(color_ostream &stream, describe_bitfield<df::death_info::T_flags>(out->mutable_death_info_flags()); + ENUM(profession); + #undef ENUM #undef BITFIELD } @@ -505,7 +516,8 @@ static command_result ListUnits(color_ostream &stream, describeUnit(out->add_value(), unit, mask); } } - else + + if (in->scan_all()) { auto &vec = df::unit::get_vector(); @@ -515,7 +527,13 @@ static command_result ListUnits(color_ostream &stream, if (in->has_race() && unit->race != in->race()) continue; - if (in->civ_id() && unit->civ_id != in->civ_id()) + if (in->has_civ_id() && unit->civ_id != in->civ_id()) + continue; + if (in->has_dead() && Units::isDead(unit) != in->dead()) + continue; + if (in->has_alive() && Units::isAlive(unit) != in->alive()) + continue; + if (in->has_sane() && Units::isSane(unit) != in->sane()) continue; describeUnit(out->add_value(), unit, mask); |
