summaryrefslogtreecommitdiff
path: root/plugins/zone.cpp
diff options
context:
space:
mode:
authorKelly Martin2012-04-08 01:07:29 -0500
committerKelly Martin2012-04-08 01:07:29 -0500
commitad657c68a36ddba6462dd24999e8788535d10ae4 (patch)
tree0ea4327b1c753bf4b8ee4d21bad0a68b801ad66c /plugins/zone.cpp
parentde960e65f5557b2a49b015d354cdad88d4e6578e (diff)
downloaddfhack-ad657c68a36ddba6462dd24999e8788535d10ae4.tar.gz
dfhack-ad657c68a36ddba6462dd24999e8788535d10ae4.tar.bz2
dfhack-ad657c68a36ddba6462dd24999e8788535d10ae4.tar.xz
Leave merchant stuff alone, even if they're certainly dwarfs.
Diffstat (limited to 'plugins/zone.cpp')
-rw-r--r--plugins/zone.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/plugins/zone.cpp b/plugins/zone.cpp
index 44eb8eb1..a117bdda 100644
--- a/plugins/zone.cpp
+++ b/plugins/zone.cpp
@@ -310,6 +310,7 @@ bool isWar(df::unit* creature);
bool isHunter(df::unit* creature);
bool isOwnCiv(df::unit* creature);
bool isMerchant(df::unit* creature);
+bool isForest(df::unit* creature);
bool isActivityZone(df::building * building);
bool isPenPasture(df::building * building);
@@ -350,6 +351,11 @@ bool isMerchant(df::unit* unit)
return unit->flags1.bits.merchant;
}
+bool isForest(df::unit* unit)
+{
+ return unit->flags1.bits.forest;
+}
+
bool isMarkedForSlaughter(df::unit* unit)
{
return unit->flags2.bits.slaughter;
@@ -590,8 +596,8 @@ void unitInfo(color_ostream & out, df::unit* unit, bool verbose = false)
}
out << ")";
out << ", age: " << getUnitAge(unit);
-
- if(isTame(unit))
+
+ if(isTame(unit))
out << ", tame";
if(isOwnCiv(unit))
out << ", owned";
@@ -599,6 +605,10 @@ void unitInfo(color_ostream & out, df::unit* unit, bool verbose = false)
out << ", war";
if(isHunter(unit))
out << ", hunter";
+ if(isMerchant(unit))
+ out << ", merchant";
+ if(isForest(unit))
+ out << ", forest";
if(verbose)
{
@@ -970,6 +980,8 @@ bool isFreeEgglayer(df::unit * unit)
&& isEggLayer(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
@@ -1621,8 +1633,9 @@ command_result df_zone (color_ostream &out, vector <string> & parameters)
continue;
// ignore merchant units
- if (isMerchant(unit))
+ if (isMerchant(unit) || isForest(unit))
continue;
+
if(find_race && getRaceName(unit) != target_race)
continue;
// ignore own dwarves by default