diff options
| author | RossM | 2012-04-02 23:40:56 -0700 |
|---|---|---|
| committer | RossM | 2012-04-02 23:40:56 -0700 |
| commit | 288acf4b79660686a9ec871e12f6f85a9841a3be (patch) | |
| tree | fb05ff4ff1ca82161d779e6148da6a9a27bb4127 /plugins/autolabor.cpp | |
| parent | 3bd499ff93b87bd74b1ec0f5cb351dc1bddafa73 (diff) | |
| download | dfhack-288acf4b79660686a9ec871e12f6f85a9841a3be.tar.gz dfhack-288acf4b79660686a9ec871e12f6f85a9841a3be.tar.bz2 dfhack-288acf4b79660686a9ec871e12f6f85a9841a3be.tar.xz | |
Tweak autolabor.
Diffstat (limited to 'plugins/autolabor.cpp')
| -rw-r--r-- | plugins/autolabor.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/plugins/autolabor.cpp b/plugins/autolabor.cpp index 57c035b3..97719f8e 100644 --- a/plugins/autolabor.cpp +++ b/plugins/autolabor.cpp @@ -846,7 +846,11 @@ DFhackCExport command_result plugin_onupdate ( color_ostream &out ) if (df::enums::unit_labor::FISH == labor && !has_fishery) min_dwarfs = max_dwarfs = 0; - for (int i = 0; i < candidates.size() && labor_infos[labor].active_dwarfs < max_dwarfs; i++) + bool want_idle_dwarf = true; + if (state_count[IDLE] < 2) + want_idle_dwarf = false; + + for (int i = 0; i < candidates.size() && labor_infos[labor].active_dwarfs < max_dwarfs && (labor_infos[labor].active_dwarfs < min_dwarfs || want_idle_dwarf); i++) { int dwarf = candidates[i]; @@ -874,8 +878,8 @@ DFhackCExport command_result plugin_onupdate ( color_ostream &out ) if (dwarf_info[dwarf].state == IDLE || dwarf_info[dwarf].state == BUSY) labor_infos[labor].active_dwarfs++; - if (labor_infos[labor].active_dwarfs >= min_dwarfs && (dwarf_info[dwarf].state == IDLE || state_count[IDLE] < 2)) - break; + if (labor_infos[labor].active_dwarfs >= min_dwarfs && dwarf_info[dwarf].state == IDLE) + want_idle_dwarf = false; } } |
