MCPcopy Create free account
hub / github.com/DFHack/dfhack / get_dwarf_buckets

Function get_dwarf_buckets

plugins/spectate.cpp:439–472  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

437}
438
439static void get_dwarf_buckets(color_ostream &out,
440 vector<df::unit*> &citizen_combat_units,
441 vector<df::unit*> &other_combat_units,
442 vector<df::unit*> &nicknamed_units,
443 vector<df::unit*> &job_units,
444 vector<df::unit*> &other_units)
445{
446 for (auto unit : world->units.active) {
447 if (Units::isDead(unit) || !Units::isActive(unit) || unit->flags1.bits.caged || unit->flags1.bits.chained || Units::isHidden(unit))
448 continue;
449 if (!config.include_animals && Units::isAnimal(unit))
450 continue;
451 if (!config.include_hostiles && Units::isDanger(unit))
452 continue;
453 if (!config.include_visitors && Units::isVisitor(unit))
454 continue;
455 if (!config.include_wildlife && Units::isWildlife(unit))
456 continue;
457
458 if (is_in_combat(unit)) {
459 TRACE(cycle, out).print("unit {} is in combat: {}\n", unit->id, DF2CONSOLE(Units::getReadableName(unit)));
460 if (Units::isCitizen(unit, true) || Units::isResident(unit, true))
461 citizen_combat_units.push_back(unit);
462 else
463 other_combat_units.push_back(unit);
464 } else if (config.prefer_nicknamed && !unit->name.nickname.empty()) {
465 nicknamed_units.push_back(unit);
466 } else if (unit->job.current_job && !boring_jobs.contains(unit->job.current_job->job_type)) {
467 job_units.push_back(unit);
468 } else {
469 other_units.push_back(unit);
470 }
471 }
472}
473
474static void add_bucket_to_vectors(const vector<df::unit*> &bucket, vector<df::unit*> &units, vector<float> &intervals, vector<float> &weights, float weight) {
475 if (bucket.empty())

Callers 1

follow_a_dwarfFunction · 0.85

Calls 4

is_in_combatFunction · 0.85
containsMethod · 0.80
printMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected