Campaign saving fixes

This commit is contained in:
Joonas Rikkonen
2017-09-03 13:08:10 +03:00
parent 1e41abadd1
commit 3feee93c53
9 changed files with 39 additions and 26 deletions
@@ -110,7 +110,7 @@ namespace Barotrauma
Map.MoveToNextLocation();
}
SaveUtil.SaveGame(GameMain.GameSession.SaveFile);
SaveUtil.SaveGame(GameMain.GameSession.SavePath);
}
@@ -15,7 +15,7 @@ namespace Barotrauma
//two locations used as the start and end in the MP mode
private Location[] dummyLocations;
private string saveFile;
private string savePath;
private Submarine submarine;
@@ -76,12 +76,12 @@ namespace Barotrauma
set { submarine = value; }
}
public string SaveFile
public string SavePath
{
get { return saveFile; }
get { return savePath; }
}
public GameSession(Submarine submarine, string saveFile, GameModePreset gameModePreset = null, string missionType = "")
public GameSession(Submarine submarine, string savePath, GameModePreset gameModePreset = null, string missionType = "")
{
Submarine.MainSub = submarine;
@@ -89,7 +89,7 @@ namespace Barotrauma
EventManager = new EventManager(this);
this.saveFile = saveFile;
this.savePath = savePath;
#if CLIENT
CrewManager = new CrewManager();
@@ -114,6 +114,13 @@ namespace Barotrauma
}
}
public static string GetSavePath(SaveType saveType, string saveName)
{
string folder = saveType == SaveType.Singleplayer ? SaveFolder : MultiplayerSaveFolder;
return Path.Combine(folder, saveName);
}
public static string[] GetSaveFiles(SaveType saveType)
{
string folder = saveType == SaveType.Singleplayer ? SaveFolder : MultiplayerSaveFolder;
@@ -140,17 +147,24 @@ namespace Barotrauma
return files;
}
public static string CreateSavePath(string fileName = "Save")
public static string CreateSavePath(SaveType saveType, string fileName = "Save")
{
string folder = saveType == SaveType.Singleplayer ? SaveFolder : MultiplayerSaveFolder;
if (!Directory.Exists(SaveFolder))
{
DebugConsole.ThrowError("Save folder \"" + SaveFolder + "\" not found. Created new folder");
Directory.CreateDirectory(SaveFolder);
DebugConsole.ThrowError("Save folder \"" + folder + "\" not found. Created new folder");
Directory.CreateDirectory(folder);
}
string extension = ".save";
string pathWithoutExtension = Path.Combine(SaveFolder, fileName);
string pathWithoutExtension = Path.Combine(folder, fileName);
if (!File.Exists(pathWithoutExtension + extension))
{
return pathWithoutExtension + extension;
}
int i = 0;
while (File.Exists(pathWithoutExtension + " " + i + extension))
@@ -158,7 +172,7 @@ namespace Barotrauma
i++;
}
return pathWithoutExtension + " " + i;
return pathWithoutExtension + " " + i + extension;
}
public static void CompressStringToFile(string fileName, string value)