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

Function ListMaterials

library/RemoteTools.cpp:520–569  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

518}
519
520static command_result ListMaterials(color_ostream &stream,
521 const ListMaterialsIn *in, ListMaterialsOut *out)
522{
523 auto mask = in->has_mask() ? &in->mask() : NULL;
524
525 for (int i = 0; i < in->id_list_size(); i++)
526 {
527 auto &elt = in->id_list(i);
528 listMaterial(out, elt.type(), elt.index(), mask);
529 }
530
531 if (in->builtin())
532 {
533 for (int i = 0; i < MaterialInfo::NUM_BUILTIN; i++)
534 listMaterial(out, i, -1, mask);
535 }
536
537 if (in->inorganic())
538 {
539 auto &vec = df::inorganic_raw::get_vector();
540 for (size_t i = 0; i < vec.size(); i++)
541 listMaterial(out, 0, i, mask);
542 }
543
544 if (in->creatures())
545 {
546 auto &vec = df::creature_raw::get_vector();
547 for (size_t i = 0; i < vec.size(); i++)
548 {
549 auto praw = vec[i];
550
551 for (size_t j = 0; j < praw->material.size(); j++)
552 listMaterial(out, MaterialInfo::CREATURE_BASE+j, i, mask);
553 }
554 }
555
556 if (in->plants())
557 {
558 auto &vec = df::plant_raw::get_vector();
559 for (size_t i = 0; i < vec.size(); i++)
560 {
561 auto praw = vec[i];
562
563 for (size_t j = 0; j < praw->material.size(); j++)
564 listMaterial(out, MaterialInfo::PLANT_BASE+j, i, mask);
565 }
566 }
567
568 return out->value_size() ? CR_OK : CR_NOT_FOUND;
569}
570
571static command_result ListUnits(color_ostream &stream,
572 const ListUnitsIn *in, ListUnitsOut *out)

Callers

nothing calls this directly

Calls 5

listMaterialFunction · 0.85
indexMethod · 0.80
value_sizeMethod · 0.80
typeMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected