Dwarf Fortress Bug Tracker - Dwarf Fortress
View Issue Details
0009740Dwarf FortressDwarf Mode -- Jobs, Generalpublic2016-05-10 23:382016-06-13 11:11
Veroule 
 
normalminoralways
newopen 
Virtual Box x86_64Windows8.1
0.43.01 
 
0009740: Conditional work orders only look at existence of items, not availability
I created work orders at smelters, kitchen, 2 farmers workshop, and 4 still. Each work order is conditioned on required items.
The kitchen constantly produces a cancellation messages because I have a stack of tallow forbidden. Correction: observe the forbidden state when checking for availability.
The stills regularly produce cancellation messages because pig tails are not allowed to be brewed. Correction: check the cook/brew settings when determining availability.
The smelters produce cancellation messages because the ores are not in the special stockpile that supplies them. Correction: check to make sure that specific workshop can access the item.
A farmers workshop produces cancellation messages when the last pig tail is being processed in the other workshop. Correction: check the tasked flag to determine availability.

There are probably other edge cases I have not yet found.
It might be fewer clock cycles and simpler to block cancellation messages when an item required by a conditional work order turns out to not be available. With such a method any required item that is not part of the conditions should produce a message. For example I removed the barrel requirement from my brew job conditions; if a cancellation occurred for lack of barrel I would want to be told, but do not want to be told about lack of plants since that is the required condition that I expect the program to handle.
No tags attached.
related to 0009741new  Job Manager - Perpetual orders with conditions never stop 
Issue History
2016-05-10 23:38VerouleNew Issue
2016-05-11 00:52VerouleNote Added: 0035129
2016-05-11 00:53VerouleNote Edited: 0035129bug_revision_view_page.php?bugnote_id=0035129#r14171
2016-05-11 15:13DwarfuRelationship addedrelated to 0009741
2016-05-11 15:14DwarfuNote Added: 0035140
2016-05-29 12:48ChthonIssue Monitored: Chthon
2016-06-09 23:09BumberNote Added: 0035390
2016-06-09 23:10BumberNote Edited: 0035390bug_revision_view_page.php?bugnote_id=0035390#r14265
2016-06-09 23:12BumberNote Edited: 0035390bug_revision_view_page.php?bugnote_id=0035390#r14266
2016-06-09 23:13BumberNote Edited: 0035390bug_revision_view_page.php?bugnote_id=0035390#r14267
2016-06-13 00:03BumberNote Added: 0035399
2016-06-13 11:11chaosvoltNote Added: 0035400
2016-06-13 11:12chaosvoltIssue Monitored: chaosvolt

Notes
(0035129)
Veroule   
2016-05-11 00:52   
(edited on: 2016-05-11 00:53)
Additionally when a work order has passed the conditional checks and gets set to "active", it will remain active permanently. In other words, after completing a job the work order does not go back to the "checking" state; and after failing and cancelling the work order does not go back to the "checking" state.

(0035140)
Dwarfu   
2016-05-11 15:14   
I'm relating this to 0009741 for now; if it turns out that it would be more "complete" to wrap this one into that one, let me know.
(0035390)
Bumber   
2016-06-09 23:09   
(edited on: 2016-06-09 23:13)
Hauling tasks (tasked bins), at least, seem to affect the count. Hospital-stored (in chests, haven't checked in-zone stockpiles) items, too.

Perpetual orders is a different issue. Those never stop because the check is made every time an infinite-sized batch is done.

(0035399)
Bumber   
2016-06-13 00:03   
Claimed bolts and tasked items in general also seem to be taken into account.
(0035400)
chaosvolt   
2016-06-13 11:11   
Hmm. It seems like suppressing cancellation messages for when required items exist but are unavailable would be a logical improvement for conditional work orders. Only have the messages occur if the previously-available items get used up, forbidden, or tied up in construction?

Granted, unsure how complex that would be to implement.