Esempio n. 1
0
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.";
        }
    }
}
Esempio n. 2
0
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.";
        }
    }
}