MCPcopy Create free account
hub / github.com/OpenXcom/OpenXcom / load

Method load

src/Savegame/Transfer.cpp:58–95  ·  view source on GitHub ↗

* Loads the transfer from a YAML file. * @param node YAML node. * @param base Destination base. * @param rule Game ruleset. * @param save Pointer to savegame. * @return Was the transfer content valid? */

Source from the content-addressed store, hash-verified

56 * @return Was the transfer content valid?
57 */
58bool Transfer::load(const YAML::Node& node, Base *base, const Ruleset *rule, SavedGame *save)
59{
60 _hours = node["hours"].as<int>(_hours);
61 if (const YAML::Node &soldier = node["soldier"])
62 {
63 _soldier = new Soldier(rule->getSoldier("XCOM"), rule->getArmor("STR_NONE_UC"));
64 _soldier->load(soldier, rule, save);
65 }
66 if (const YAML::Node &craft = node["craft"])
67 {
68 std::string type = craft["type"].as<std::string>();
69 if (rule->getCraft(type) != 0)
70 {
71 _craft = new Craft(rule->getCraft(type), base);
72 _craft->load(craft, rule, 0);
73 }
74 else
75 {
76 delete this;
77 return false;
78 }
79
80 }
81 if (const YAML::Node &item = node["itemId"])
82 {
83 _itemId = item.as<std::string>(_itemId);
84 if (rule->getItem(_itemId) == 0)
85 {
86 delete this;
87 return false;
88 }
89 }
90 _itemQty = node["itemQty"].as<int>(_itemQty);
91 _scientists = node["scientists"].as<int>(_scientists);
92 _engineers = node["engineers"].as<int>(_engineers);
93 _delivered = node["delivered"].as<bool>(_delivered);
94 return true;
95}
96
97/**
98 * Saves the transfer to a YAML file.

Callers

nothing calls this directly

Calls 4

getSoldierMethod · 0.45
getArmorMethod · 0.45
getCraftMethod · 0.45
getItemMethod · 0.45

Tested by

no test coverage detected