Ejemplo n.º 1
0
void SaveManager::removeOldBackups() {
	vector<string> backupFiles = getSaveFiles(".bak");
	if(Settings::get().getMaxBackups() < backupFiles.size()) {
		SDLOG(1, "SaveManager: Removing %u old backups\n", backupFiles.size() - Settings::get().getMaxBackups());
		for(size_t i=Settings::get().getMaxBackups(); i<backupFiles.size(); ++i) {
			DeleteFile(backupFiles[i].c_str());
		}
	}
}
Ejemplo n.º 2
0
time_t SaveManager::getLastBackupTime() {
	if(lastBackupTime == 0) {
		vector<string> backupFiles = getSaveFiles(".bak");
		if(!backupFiles.empty()) {
			string fn = getFileNameFromPath(backupFiles.front());
			sscanf_s(fn.c_str(), "%lu", &lastBackupTime);
		}
	}
	SDLOG(3, "SaveManager: last backup time %ld\n", lastBackupTime);
	return lastBackupTime;
}
Ejemplo n.º 3
0
void MainLoop::getSaveOptions(const vector<pair<Model::GameType, string>>& games,
    vector<View::ListElem>& options, vector<SaveFileInfo>& allFiles) {
  for (auto elem : games) {
    vector<SaveFileInfo> files = getSaveFiles(userPath, getSaveSuffix(elem.first));
    files = ::filter(files, [this] (const SaveFileInfo& info) { return isCompatible(getSaveVersion(info));});
    append(allFiles, files);
    if (!files.empty()) {
      options.emplace_back(elem.second, View::TITLE);
      append(options, transform2<View::ListElem>(files,
            [this] (const SaveFileInfo& info) { return getGameName(info);}));
    }
  }
}
Ejemplo n.º 4
0
void SaveManager::backup(const time_t curTime) {
	SDLOG(1, "SaveManager: Backing up save files\n");
	char buffer[MAX_PATH];
	vector<string> saveFiles = getSaveFiles();
	for(size_t i=0; i<saveFiles.size(); ++i) {
		string fn = getFileNameFromPath(saveFiles[i]);
		sprintf_s(buffer, "%s\\%0" TIMESTAMP_LENGTH_STR "lu_", userSaveFolder.c_str(), curTime);
		string newPath = string(buffer) + fn + ".bak";
		if(CopyFile(saveFiles[i].c_str(), newPath.c_str(), false) == 0) {
			SDLOG(0, "ERROR: SaveManager failed to back up file! (Copying %s to %s)\n", saveFiles[i].c_str(), buffer);
		} else {
			SDLOG(1, "SaveManager: Backed up %s\n", fn.c_str());
		}
	}
	removeOldBackups();
}