diff options
| author | Alexander Gavrilov | 2012-01-27 21:17:50 +0400 |
|---|---|---|
| committer | Alexander Gavrilov | 2012-01-27 21:17:50 +0400 |
| commit | ef256e145310195076ef599ba31165a2f01522c1 (patch) | |
| tree | 88a80ca3b13f32ea86f0b73d8933298df7f0420f /plugins/workflow.cpp | |
| parent | 1d7ed144427a01844abc465ea9b4bdfcd273af73 (diff) | |
| download | dfhack-ef256e145310195076ef599ba31165a2f01522c1.tar.gz dfhack-ef256e145310195076ef599ba31165a2f01522c1.tar.bz2 dfhack-ef256e145310195076ef599ba31165a2f01522c1.tar.xz | |
Detect incomplete thread and cloth items in workflow.
Diffstat (limited to 'plugins/workflow.cpp')
| -rw-r--r-- | plugins/workflow.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/plugins/workflow.cpp b/plugins/workflow.cpp index 5a2073f1..dffce5a4 100644 --- a/plugins/workflow.cpp +++ b/plugins/workflow.cpp @@ -1086,9 +1086,25 @@ static void map_job_items(Core *c) int16_t imattype = item->getActualMaterial(); int32_t imatindex = item->getActualMaterialIndex(); + bool is_invalid = false; + // Special handling - if (dry_buckets && itype == item_type::BUCKET && !item->flags.bits.in_job) - dryBucket(item); + switch (itype) { + case item_type::BUCKET: + if (dry_buckets && !item->flags.bits.in_job) + dryBucket(item); + break; + + case item_type::THREAD: + if (item->getTotalDimension() < 15000) + is_invalid = true; + break; + + case item_type::CLOTH: + if (item->getTotalDimension() < 10000) + is_invalid = true; + break; + } if (item->flags.bits.melt && !item->flags.bits.owned && !itemBusy(item)) meltable_count++; @@ -1119,7 +1135,8 @@ static void map_job_items(Core *c) if (!ok) continue; - if (item->flags.bits.owned || + if (is_invalid || + item->flags.bits.owned || item->flags.bits.in_chest || item->isAssignedToStockpile() || itemInRealJob(item) || |
