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

Function unserialize_list_creature

plugins/stockpiles/StockpileSerializer.cpp:688–710  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

686}
687
688static void unserialize_list_creature(color_ostream& out, const char* subcat, bool all, char val, const vector<string>& filters,
689 FuncReadImport read_value, int32_t list_size, vector<char>& pile_list) {
690 size_t num_elems = world->raws.creatures.all.size();
691 pile_list.resize(num_elems, '\0');
692 if (all) {
693 for (size_t idx = 0; idx < num_elems; ++idx) {
694 auto r = find_creature(idx);
695 set_filter_elem(out, subcat, filters, val, get_filter_string(r), r->creature_id, pile_list.at(idx));
696 }
697 return;
698 }
699
700 for (auto i = 0; i < list_size; ++i) {
701 string id = read_value(i);
702 int idx = find_creature(id);
703 if (idx < 0 || size_t(idx) >= num_elems) {
704 WARN(log, out).print("animal index invalid: {}\n", idx);
705 continue;
706 }
707 auto r = find_creature(idx);
708 set_filter_elem(out, subcat, filters, val, get_filter_string(r), r->creature_id, pile_list.at(idx));
709 }
710}
711
712template<typename T_cat_set>
713static void write_cat(color_ostream& out, const char* name, bool include_types, uint32_t cat_flags,

Callers 3

read_animalsMethod · 0.85
read_corpsesMethod · 0.85
read_refuseMethod · 0.85

Calls 6

find_creatureFunction · 0.85
set_filter_elemFunction · 0.85
get_filter_stringFunction · 0.85
sizeMethod · 0.45
resizeMethod · 0.45
printMethod · 0.45

Tested by

no test coverage detected