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