Example #1
0
void save_auto_pickup(bool bCharacter)
{
    std::ofstream fout;
    std::string sFile = "data/auto_pickup.txt";

    if (bCharacter) {
        sFile = "save/" + base64_encode(g->u.name) + ".apu.txt";
        std::ifstream fin;

        fin.open(("save/" + base64_encode(g->u.name) + ".sav").c_str());
        if(!fin.is_open()) {
            return;
        }
        fin.close();
    }

    fout.open(sFile.c_str());

    if(!fout.is_open()) {
        return;
    }

    fout << auto_pickup_header(bCharacter) << std::endl;
    for(int i = 0; i < vAutoPickupRules[(bCharacter) ? 2 : 1].size(); i++) {
        fout << vAutoPickupRules[(bCharacter) ? 2 : 1][i].sRule << ";";
        fout << (vAutoPickupRules[(bCharacter) ? 2 : 1][i].bActive ? "T" : "F") << ";";
        fout << (vAutoPickupRules[(bCharacter) ? 2 : 1][i].bExclude ? "T" : "F");
        fout << "\n";
    }

    if (!bCharacter) {
        merge_vector();
        createPickupRules();
    }
}
Example #2
0
void create_default_auto_pickup(bool bCharacter)
{
    std::ofstream fout;
    std::string sFile = "data/auto_pickup.txt";

    if (bCharacter) {
        sFile = "save/" + base64_encode(g->u.name) + ".apu.txt";
    }

    fout.open(sFile.c_str());
    if(!fout.is_open()) {
        return;
    }

    fout << auto_pickup_header(bCharacter);
    fout.close();
}
Example #3
0
void create_default_auto_pickup(bool bCharacter)
{
    std::ofstream fout;
    std::string sFile = FILENAMES["autopickup"];

    if (bCharacter) {
        sFile = world_generator->active_world->world_path + "/" + base64_encode(g->u.name) + ".apu.txt";
    }

    fout.open(sFile.c_str());
    if(!fout.is_open()) {
        return;
    }

    fout << auto_pickup_header(bCharacter);
    fout.close();
}
bool save_auto_pickup(bool bCharacter)
{
    std::ofstream fout;
    std::string sFile = FILENAMES["autopickup"];

    if (bCharacter) {
        sFile = world_generator->active_world->world_path + "/" + base64_encode(g->u.name) + ".apu.txt";
        std::ifstream fin;

        fin.open((world_generator->active_world->world_path + "/" +
                  base64_encode(g->u.name) + ".sav").c_str());
        if(!fin.is_open()) {
            return true;
        }
        fin.close();
    }

    fout.exceptions(std::ios::badbit | std::ios::failbit);
    try {
        assure_dir_exist(FILENAMES["config_dir"]);
        fout.open(sFile.c_str());

        fout << auto_pickup_header(bCharacter) << std::endl;
        for (std::vector<cPickupRules>::iterator it =
                 vAutoPickupRules[(bCharacter) ? APU_CHARACTER : APU_GLOBAL].begin();
             it != vAutoPickupRules[(bCharacter) ? APU_CHARACTER : APU_GLOBAL].end(); ++it) {
            fout << it->sRule << ";";
            fout << (it->bActive ? "T" : "F") << ";";
            fout << (it->bExclude ? "T" : "F");
            fout << "\n";
        }

        if (!bCharacter) {
            merge_vector();
            createPickupRules();
        }
        fout.close();
        return true;
    } catch(std::ios::failure &) {
        popup(_("Failed to write autopickup rules to %s"), sFile.c_str());
        return false;
    }
}
Example #5
0
bool save_auto_pickup(bool bCharacter)
{
    std::ofstream fout;
    std::string sFile = "data/auto_pickup.txt";

    if (bCharacter) {
        sFile = world_generator->active_world->world_path + "/" + base64_encode(g->u.name) + ".apu.txt";
        std::ifstream fin;

        fin.open((world_generator->active_world->world_path + "/" +
                  base64_encode(g->u.name) + ".sav").c_str());
        if(!fin.is_open()) {
            return true;
        }
        fin.close();
    }

    fout.exceptions(std::ios::badbit | std::ios::failbit);
    try {
        fout.open(sFile.c_str());

        fout << auto_pickup_header(bCharacter) << std::endl;
        for (unsigned i = 0; i < vAutoPickupRules[(bCharacter) ? 2 : 1].size(); i++) {
            fout << vAutoPickupRules[(bCharacter) ? 2 : 1][i].sRule << ";";
            fout << (vAutoPickupRules[(bCharacter) ? 2 : 1][i].bActive ? "T" : "F") << ";";
            fout << (vAutoPickupRules[(bCharacter) ? 2 : 1][i].bExclude ? "T" : "F");
            fout << "\n";
        }

        if (!bCharacter) {
            merge_vector();
            createPickupRules();
        }
        fout.close();
        return true;
    } catch(std::ios::failure &) {
        popup(_("Failed to write autopickup rules to %s"), sFile.c_str());
        return false;
    }
}