void load_artifacts_from_ifstream(std::ifstream &f) { // read and create artifacts from json array in artifacts.gsav JsonIn artifact_json(f); artifact_json.start_array(); while (!artifact_json.end_array()) { JsonObject jo = artifact_json.get_object(); std::string type = jo.get_string("type"); std::string id = jo.get_string("id"); if (type == "artifact_tool") { it_artifact_tool *art = new it_artifact_tool(jo); item_controller->add_item_type( art ); } else if (type == "artifact_armor") { it_artifact_armor *art = new it_artifact_armor(jo); item_controller->add_item_type( art ); } else { throw jo.line_number() + ": unrecognized artifact type."; } } }
void load_artifacts_from_ifstream(std::ifstream &f, itypemap &itypes) { // delete current artefact ids artifact_itype_ids.clear(); // read and create artifacts from json array in artifacts.gsav JsonIn artifact_json(f); artifact_json.start_array(); while (!artifact_json.end_array()) { JsonObject jo = artifact_json.get_object(); std::string type = jo.get_string("type"); std::string id = jo.get_string("id"); if (type == "artifact_tool") { it_artifact_tool *art = new it_artifact_tool(jo); itypes[id] = art; artifact_itype_ids.push_back(id); } else if (type == "artifact_armor") { it_artifact_armor *art = new it_artifact_armor(jo); itypes[id] = art; artifact_itype_ids.push_back(id); } else { throw jo.line_number() + ": unrecognized artifact type."; } } }