コード例 #1
0
ファイル: auto_pickup.cpp プロジェクト: Reikim/Cataclysm-DDA
void auto_pickup::load(const bool bCharacter)
{
    bChar = bCharacter;

    std::ifstream fin;
    std::string sFile = FILENAMES["autopickup"];
    if (bCharacter) {
        sFile = world_generator->active_world->world_path + "/" + base64_encode(g->u.name) + ".apu.json";
    }

    fin.open(sFile.c_str(), std::ifstream::in | std::ifstream::binary);

    if( !fin.good() ) {
        if (load_legacy(bCharacter)) {
            if (save(bCharacter)) {
                remove_file(sFile);
            }
        }
    } else {
        try {
            JsonIn jsin(fin);
            deserialize(jsin);
        } catch( const JsonError &e ) {
            DebugLog(D_ERROR, DC_ALL) << "auto_pickup::load: " << e;
        }
    }

    fin.close();
}
コード例 #2
0
void monster::load_info(std::string data)
{
    std::stringstream dump;
    dump << data;
    if ( dump.peek() == '{' ) {
        JsonIn jsin(dump);
        try {
            deserialize(jsin);
        } catch (std::string jsonerr) {
            debugmsg("monster:load_info: Bad monster json\n%s", jsonerr.c_str() );
        }
        return;
    } else {
        load_legacy(dump);
    }
}