From aac892c560c5cca3d97ee50236b3ef4ea2dbe64a Mon Sep 17 00:00:00 2001 From: lethosor Date: Thu, 14 Jun 2018 10:30:35 -0400 Subject: [PATCH] Adapted to changed Units functions Squashed version of #1307 Closes #1307 --- library/RemoteTools.cpp | 2 ++ library/modules/EventManager.cpp | 6 +++--- plugins/buildingplan-lib.cpp | 2 +- plugins/dwarfmonitor.cpp | 8 ++++---- plugins/misery.cpp | 2 +- plugins/zone.cpp | 26 +++++++++++--------------- 6 files changed, 22 insertions(+), 24 deletions(-) diff --git a/library/RemoteTools.cpp b/library/RemoteTools.cpp index d0bdee00f..26833a3a3 100644 --- a/library/RemoteTools.cpp +++ b/library/RemoteTools.cpp @@ -590,6 +590,8 @@ static command_result ListUnits(color_ostream &stream, { auto unit = vec[i]; + if (!Units::isActive(unit) && !Units::isKilled(unit)) + continue; if (in->has_race() && unit->race != in->race()) continue; if (in->has_civ_id() && unit->civ_id != in->civ_id()) diff --git a/library/modules/EventManager.cpp b/library/modules/EventManager.cpp index 92a4f3f94..798ac1eaf 100644 --- a/library/modules/EventManager.cpp +++ b/library/modules/EventManager.cpp @@ -537,7 +537,7 @@ static void manageUnitDeathEvent(color_ostream& out) { for ( size_t a = 0; a < df::global::world->units.all.size(); a++ ) { df::unit* unit = df::global::world->units.all[a]; //if ( unit->counters.death_id == -1 ) { - if ( ! unit->flags1.bits.dead ) { + if ( Units::isActive(unit) ) { livingUnits.insert(unit->id); continue; } @@ -927,7 +927,7 @@ static void manageUnitAttackEvent(color_ostream& out) { } } - if ( unit1->flags1.bits.dead ) { + if ( Units::isKilled(unit1) ) { UnitAttackData data; data.attacker = unit2->id; data.defender = unit1->id; @@ -939,7 +939,7 @@ static void manageUnitAttackEvent(color_ostream& out) { } } - if ( unit2->flags1.bits.dead ) { + if ( Units::isKilled(unit2) ) { UnitAttackData data; data.attacker = unit1->id; data.defender = unit2->id; diff --git a/plugins/buildingplan-lib.cpp b/plugins/buildingplan-lib.cpp index 0d63a98e4..4e7cfd3fd 100644 --- a/plugins/buildingplan-lib.cpp +++ b/plugins/buildingplan-lib.cpp @@ -300,7 +300,7 @@ bool ReservedRoom::checkRoomAssignment() if (!Units::isCitizen(unit)) continue; - if (DFHack::Units::isDead(unit)) + if (!Units::isActive(unit)) continue; np = getUniqueNoblePositions(unit); diff --git a/plugins/dwarfmonitor.cpp b/plugins/dwarfmonitor.cpp index 3b911d340..e786b21dd 100644 --- a/plugins/dwarfmonitor.cpp +++ b/plugins/dwarfmonitor.cpp @@ -338,7 +338,7 @@ public: for (auto it = work_history.begin(); it != work_history.end();) { auto unit = it->first; - if (Units::isDead(unit)) + if (!Units::isActive(unit)) { work_history.erase(it++); continue; @@ -583,7 +583,7 @@ public: for (auto it = work_history.begin(); it != work_history.end();) { auto unit = it->first; - if (Units::isDead(unit)) + if (!Units::isActive(unit)) { work_history.erase(it++); continue; @@ -1372,7 +1372,7 @@ public: if (!Units::isCitizen(unit)) continue; - if (DFHack::Units::isDead(unit)) + if (!DFHack::Units::isActive(unit)) continue; if (!unit->status.current_soul) @@ -1788,7 +1788,7 @@ static void update_dwarf_stats(bool is_paused) if (!Units::isCitizen(unit)) continue; - if (DFHack::Units::isDead(unit)) + if (!DFHack::Units::isActive(unit)) { auto it = work_history.find(unit); if (it != work_history.end()) diff --git a/plugins/misery.cpp b/plugins/misery.cpp index 6a67dc90f..19dac8330 100644 --- a/plugins/misery.cpp +++ b/plugins/misery.cpp @@ -44,7 +44,7 @@ const int STRENGTH_MULTIPLIER = 100; bool is_valid_unit (df::unit *unit) { if (!Units::isOwnRace(unit) || !Units::isOwnCiv(unit)) return false; - if (Units::isDead(unit)) + if (!Units::isActive(unit)) return false; return true; } diff --git a/plugins/zone.cpp b/plugins/zone.cpp index 1dfc10dc2..071d67a23 100644 --- a/plugins/zone.cpp +++ b/plugins/zone.cpp @@ -789,7 +789,7 @@ df::building* findFreeNestboxZone() bool isFreeEgglayer(df::unit * unit) { - if( !isDead(unit) && !isUndead(unit) + return isActive(unit) && !isUndead(unit) && isFemale(unit) && isTame(unit) && isOwnCiv(unit) @@ -797,11 +797,7 @@ bool isFreeEgglayer(df::unit * unit) && !isAssigned(unit) && !isGrazer(unit) // exclude grazing birds because they're messy && !isMerchant(unit) // don't steal merchant mounts - && !isForest(unit) // don't steal birds from traders, they hate that - ) - return true; - else - return false; + && !isForest(unit); // don't steal birds from traders, they hate that } df::unit * findFreeEgglayer() @@ -2078,8 +2074,8 @@ command_result df_zone (color_ostream &out, vector & parameters) { df::unit *unit = *unit_it; - // ignore dead and undead units - if (isDead(unit) || isUndead(unit)) { + // ignore inactive and undead units + if (!isActive(unit) || isUndead(unit)) { continue; } @@ -3032,7 +3028,7 @@ command_result autoButcher( color_ostream &out, bool verbose = false ) // then let autowatch add units to the watchlist which will probably start breeding (owned pets, war animals, ...) // then process units counting those which can't be butchered (war animals, named pets, ...) // so that they are treated as "own stock" as well and count towards the target quota - if( isDead(unit) + if( !isActive(unit) || isUndead(unit) || isMarkedForSlaughter(unit) || isMerchant(unit) // ignore merchants' draught animals @@ -3273,7 +3269,7 @@ WatchedRace * checkRaceStocksTotal(int race) if(unit->race != race) continue; - if( isDead(unit) + if( !isActive(unit) || isUndead(unit) || isMerchant(unit) // ignore merchants' draught animals || isForest(unit) // ignore merchants' caged animals @@ -3302,7 +3298,7 @@ WatchedRace * checkRaceStocksProtected(int race) if(unit->race != race) continue; - if( isDead(unit) + if( !isActive(unit) || isUndead(unit) || isMerchant(unit) // ignore merchants' draught animals || isForest(unit) // ignore merchants' caged animals @@ -3339,7 +3335,7 @@ WatchedRace * checkRaceStocksButcherable(int race) if(unit->race != race) continue; - if( isDead(unit) + if( !isActive(unit) || isUndead(unit) || isMerchant(unit) // ignore merchants' draught animals || isForest(unit) // ignore merchants' caged animals @@ -3376,7 +3372,7 @@ WatchedRace * checkRaceStocksButcherFlag(int race) if(unit->race != race) continue; - if( isDead(unit) + if( !isActive(unit) || isUndead(unit) || isMerchant(unit) // ignore merchants' draught animals || isForest(unit) // ignore merchants' caged animals @@ -3404,7 +3400,7 @@ void butcherRace(int race) if(unit->race != race) continue; - if( isDead(unit) + if( !isActive(unit) || isUndead(unit) || isMerchant(unit) // ignore merchants' draught animals || isForest(unit) // ignore merchants' caged animals @@ -3439,7 +3435,7 @@ void unbutcherRace(int race) if(unit->race != race) continue; - if( isDead(unit) + if( !isActive(unit) || isUndead(unit) || !isMarkedForSlaughter(unit) )