Faction Test 100.4.0.0

This commit is contained in:
Markus Isberg
2022-11-14 18:28:28 +02:00
parent 87426b68b2
commit c772b61fc1
412 changed files with 16984 additions and 5530 deletions
@@ -18,7 +18,7 @@ namespace Barotrauma
#if OSX
//"/*user*/Library/Application Support/Daedalic Entertainment GmbH/" on Mac
public static readonly string SaveFolder = Path.Combine(
public static readonly string DefaultSaveFolder = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.Personal),
"Library",
"Application Support",
@@ -27,13 +27,13 @@ namespace Barotrauma
#else
//"C:/Users/*user*/AppData/Local/Daedalic Entertainment GmbH/" on Windows
//"/home/*user*/.local/share/Daedalic Entertainment GmbH/" on Linux
public static readonly string SaveFolder = Path.Combine(
public static readonly string DefaultSaveFolder = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
"Daedalic Entertainment GmbH",
"Barotrauma");
#endif
public static string MultiplayerSaveFolder = Path.Combine(SaveFolder, "Multiplayer");
public static string DefaultMultiplayerSaveFolder = Path.Combine(DefaultSaveFolder, "Multiplayer");
public static readonly string SubmarineDownloadFolder = Path.Combine("Submarines", "Downloaded");
public static readonly string CampaignDownloadFolder = Path.Combine("Data", "Saves", "Multiplayer_Downloaded");
@@ -43,9 +43,9 @@ namespace Barotrauma
public static string TempPath
{
#if SERVER
get { return Path.Combine(SaveFolder, "temp_server"); }
get { return Path.Combine(GetSaveFolder(SaveType.Singleplayer), "temp_server"); }
#else
get { return Path.Combine(SaveFolder, "temp"); }
get { return Path.Combine(GetSaveFolder(SaveType.Singleplayer), "temp"); }
#endif
}
@@ -198,7 +198,10 @@ namespace Barotrauma
}
//deleting a multiplayer save file -> also delete character data
if (Path.GetFullPath(Path.GetDirectoryName(filePath)).Equals(Path.GetFullPath(MultiplayerSaveFolder)))
var fullPath = Path.GetFullPath(Path.GetDirectoryName(filePath));
if (fullPath.Equals(Path.GetFullPath(DefaultMultiplayerSaveFolder)) ||
fullPath == Path.GetFullPath(GetSaveFolder(SaveType.Multiplayer)))
{
string characterDataSavePath = MultiPlayerCampaign.GetCharacterDataSavePath(filePath);
if (File.Exists(characterDataSavePath))
@@ -215,35 +218,70 @@ namespace Barotrauma
}
}
public static string GetSavePath(SaveType saveType, string saveName)
public static string GetSaveFolder(SaveType saveType)
{
string folder = saveType == SaveType.Singleplayer ? SaveFolder : MultiplayerSaveFolder;
return Path.Combine(folder, saveName);
string folder = string.Empty;
if (!string.IsNullOrEmpty(GameSettings.CurrentConfig.SavePath))
{
folder = GameSettings.CurrentConfig.SavePath;
if (saveType == SaveType.Multiplayer)
{
folder = Path.Combine(folder, "Multiplayer");
}
if (!Directory.Exists(folder))
{
DebugConsole.AddWarning($"Could not find the custom save folder \"{folder}\", creating the folder...");
try
{
Directory.CreateDirectory(folder);
}
catch (Exception e)
{
DebugConsole.ThrowError($"Could not find the custom save folder \"{folder}\". Using the default save path instead.", e);
folder = string.Empty;
}
}
}
if (string.IsNullOrEmpty(folder))
{
folder = saveType == SaveType.Singleplayer ? DefaultSaveFolder : DefaultMultiplayerSaveFolder;
}
return folder;
}
public static IReadOnlyList<CampaignMode.SaveInfo> GetSaveFiles(SaveType saveType, bool includeInCompatible = true)
{
string folder = saveType == SaveType.Singleplayer ? SaveFolder : MultiplayerSaveFolder;
if (!Directory.Exists(folder))
string defaultFolder = saveType == SaveType.Singleplayer ? DefaultSaveFolder : DefaultMultiplayerSaveFolder;
if (!Directory.Exists(defaultFolder))
{
DebugConsole.Log("Save folder \"" + folder + " not found! Attempting to create a new folder...");
DebugConsole.Log("Save folder \"" + defaultFolder + " not found! Attempting to create a new folder...");
try
{
Directory.CreateDirectory(folder);
Directory.CreateDirectory(defaultFolder);
}
catch (Exception e)
{
DebugConsole.ThrowError("Failed to create the folder \"" + folder + "\"!", e);
DebugConsole.ThrowError("Failed to create the folder \"" + defaultFolder + "\"!", e);
}
}
List<string> files = Directory.GetFiles(folder, "*.save", System.IO.SearchOption.TopDirectoryOnly).ToList();
List<string> files = Directory.GetFiles(defaultFolder, "*.save", System.IO.SearchOption.TopDirectoryOnly).ToList();
var folder = GetSaveFolder(saveType);
if (!string.IsNullOrEmpty(folder) && Directory.Exists(folder))
{
files.AddRange(Directory.GetFiles(folder, "*.save", System.IO.SearchOption.TopDirectoryOnly));
}
string legacyFolder = saveType == SaveType.Singleplayer ? LegacySaveFolder : LegacyMultiplayerSaveFolder;
if (Directory.Exists(legacyFolder))
{
files.AddRange(Directory.GetFiles(legacyFolder, "*.save", System.IO.SearchOption.TopDirectoryOnly));
}
files = files.Distinct().ToList();
List<CampaignMode.SaveInfo> saveInfos = new List<CampaignMode.SaveInfo>();
foreach (string file in files)
{
@@ -305,7 +343,7 @@ namespace Barotrauma
{
fileName = ToolBox.RemoveInvalidFileNameChars(fileName);
string folder = saveType == SaveType.Singleplayer ? SaveFolder : MultiplayerSaveFolder;
string folder = GetSaveFolder(saveType);
if (fileName == "Save_Default")
{
fileName = TextManager.Get("SaveFile.DefaultName").Value;