| 489 | } |
| 490 | |
| 491 | static void scan_stockpile(color_ostream &out, df::building_stockpilest *bld, |
| 492 | MeltStockProcessor &melt_stock_processor, |
| 493 | TradeStockProcessor &trade_stock_processor, |
| 494 | DumpStockProcessor &dump_stock_processor, |
| 495 | TrainStockProcessor &train_stock_processor, |
| 496 | ForbidStockProcessor &forbid_stock_processor, |
| 497 | ClaimStockProcessor &claim_stock_processor) { |
| 498 | auto id = bld->id; |
| 499 | Buildings::StockpileIterator items; |
| 500 | for (items.begin(bld); !items.done(); ++items) { |
| 501 | df::item *item = *items; |
| 502 | if (item->flags.whole & bad_flags.whole) { |
| 503 | TRACE(cycle,out).print("rejected flag check\n"); |
| 504 | continue; |
| 505 | } |
| 506 | if (!item->isAssignedToThisStockpile(id) && non_accepted_storage_item(bld, item)) |
| 507 | continue; |
| 508 | scan_item(out, item, trade_stock_processor); |
| 509 | if (item->isAssignedToThisStockpile(id)) { |
| 510 | TRACE(cycle,out).print("assignedToStockpile\n"); |
| 511 | vector<df::item *> contents; |
| 512 | Items::getContainedItems(item, &contents); |
| 513 | for (df::item *contained_item : contents) { |
| 514 | scan_item(out, contained_item, forbid_stock_processor); |
| 515 | scan_item(out, contained_item, claim_stock_processor); |
| 516 | scan_item(out, contained_item, melt_stock_processor); |
| 517 | scan_item(out, contained_item, dump_stock_processor); |
| 518 | } |
| 519 | continue; |
| 520 | } |
| 521 | scan_item(out, item, forbid_stock_processor); |
| 522 | scan_item(out, item, claim_stock_processor); |
| 523 | scan_item(out, item, melt_stock_processor); |
| 524 | scan_item(out, item, dump_stock_processor); |
| 525 | scan_item(out, item, train_stock_processor); |
| 526 | } |
| 527 | } |
| 528 | |
| 529 | #include <df/unit.h> |
| 530 | static void train_partials(color_ostream& out, int32_t& train_count) { |
no test coverage detected