static int main_extract(SaveBlock & save, int argc, char ** argv) { (void)argv; if(argc != 0) { return -1; } if(!save.open()) { return 2; } vector<string> files = save.getFiles(); for(vector<string>::iterator file = files.begin(); file != files.end(); ++file) { size_t size; char * data = save.load(*file, size); if(!data) { cerr << "error loading " << *file << " from save" << endl; continue; } fs::ofstream h(*file, std::ios_base::out | std::ios_base::binary); if(!h.is_open()) { cerr << "error opening " << *file << " for writing" << endl; continue; } if(h.write(data, size).fail()) { cerr << "error writing to " << *file << endl; } } return 0; }