summaryrefslogtreecommitdiff
path: root/plugins/zone.cpp
diff options
context:
space:
mode:
authorTimothy Collett2012-09-10 11:54:56 -0400
committerTimothy Collett2012-09-10 11:54:56 -0400
commit96abc903abb93b7bf7418f2da3455ee6da5ad942 (patch)
treea5326ef1dbd492086b319c888854e707c59d2a56 /plugins/zone.cpp
parent274d6038adce5797b58cee78a330eb5d639bf59e (diff)
parent21904fd607d0f2037782e28ff7284300663931ab (diff)
downloaddfhack-96abc903abb93b7bf7418f2da3455ee6da5ad942.tar.gz
dfhack-96abc903abb93b7bf7418f2da3455ee6da5ad942.tar.bz2
dfhack-96abc903abb93b7bf7418f2da3455ee6da5ad942.tar.xz
Merge branch 'master' of http://github.com/peterix/dfhack
Diffstat (limited to 'plugins/zone.cpp')
-rw-r--r--plugins/zone.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/plugins/zone.cpp b/plugins/zone.cpp
index b5e45f5c..c496f49b 100644
--- a/plugins/zone.cpp
+++ b/plugins/zone.cpp
@@ -420,6 +420,7 @@ bool isTame(df::unit* creature)
{
switch (creature->training_level)
{
+ case df::animal_training_level::SemiWild: //??
case df::animal_training_level::Trained:
case df::animal_training_level::WellTrained:
case df::animal_training_level::SkilfullyTrained:
@@ -429,7 +430,6 @@ bool isTame(df::unit* creature)
case df::animal_training_level::Domesticated:
tame=true;
break;
- case df::animal_training_level::SemiWild: //??
case df::animal_training_level::Unk8: //??
case df::animal_training_level::WildUntamed:
default:
@@ -1232,7 +1232,7 @@ bool isFreeEgglayer(df::unit * unit)
{
if( !isDead(unit) && !isUndead(unit)
&& isFemale(unit)
- && isDomesticated(unit) // better strict than sorry (medium trained wild animals can revert into wild state)
+ && isTame(unit)
&& isOwnCiv(unit)
&& isEggLayer(unit)
&& !isAssigned(unit)
@@ -1856,14 +1856,18 @@ command_result df_zone (color_ostream &out, vector <string> & parameters)
// if followed by another parameter, check if it's numeric
if(i < parameters.size()-1)
{
- stringstream ss(parameters[i+1]);
- int new_building = -1;
- ss >> new_building;
- if(new_building != -1)
+ auto & str = parameters[i+1];
+ if(str.size() > 0 && str[0] >= '0' && str[0] <= '9')
{
- i++;
- target_building = new_building;
- out << "Assign selected unit(s) to building #" << target_building <<std::endl;
+ stringstream ss(parameters[i+1]);
+ int new_building = -1;
+ ss >> new_building;
+ if(new_building != -1)
+ {
+ i++;
+ target_building = new_building;
+ out << "Assign selected unit(s) to building #" << target_building <<std::endl;
+ }
}
}
if(target_building == -1)