MCPcopy Create free account
hub / github.com/DFHack/dfhack / scan_stockpile

Function scan_stockpile

plugins/logistics.cpp:491–527  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

489}
490
491static 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>
530static void train_partials(color_ostream& out, int32_t& train_count) {

Callers 2

do_cycleFunction · 0.85

Calls 4

scan_itemFunction · 0.70
beginMethod · 0.45
printMethod · 0.45

Tested by

no test coverage detected