diff --git a/Subsurface/Barotrauma.csproj b/Subsurface/Barotrauma.csproj index f29daa602..3e95f82d0 100644 --- a/Subsurface/Barotrauma.csproj +++ b/Subsurface/Barotrauma.csproj @@ -468,7 +468,7 @@ PreserveNewest - + PreserveNewest @@ -641,10 +641,10 @@ PreserveNewest Designer - + PreserveNewest - + PreserveNewest Designer diff --git a/Subsurface/Source/Characters/Character.cs b/Subsurface/Source/Characters/Character.cs index 2fadac1c6..5fbd13970 100644 --- a/Subsurface/Source/Characters/Character.cs +++ b/Subsurface/Source/Characters/Character.cs @@ -393,7 +393,34 @@ namespace Barotrauma public static Character Create(string file, Vector2 position, CharacterInfo characterInfo = null, bool isNetworkPlayer = false, bool hasAi=true) { - if (!System.IO.File.Exists(file)) return null; +#if LINUX + if (!System.IO.File.Exists(file)) + { + + //if the file was not found, attempt to convert the name of the folder to upper case + var splitPath = file.Split('/'); + if (splitPath.Length > 2) + { + splitPath[splitPath.Length-2] = + splitPath[splitPath.Length-2].First().ToString().ToUpper() + splitPath[splitPath.Length-2].Substring(1); + + file = string.Join("/", splitPath); + } + + if (!System.IO.File.Exists(file)) + { + DebugConsole.ThrowError("Spawning a character failed - file ''"+file+"'' not found!"); + return null; + } + } +#else + if (!System.IO.File.Exists(file)) + { + DebugConsole.ThrowError("Spawning a character failed - file ''"+file+"'' not found!"); + return null; + } +#endif + if (file != humanConfigFile) { diff --git a/Subsurface/Source/Items/Item.cs b/Subsurface/Source/Items/Item.cs index 57297b9f5..a427cbac5 100644 --- a/Subsurface/Source/Items/Item.cs +++ b/Subsurface/Source/Items/Item.cs @@ -1645,7 +1645,7 @@ namespace Barotrauma #if DEBUG System.Diagnostics.Debug.Assert(body != null, "Tried to send a PhysicsBodyPosition message for an item that has no physics body ("+Name+")"); #else - if (body == null) return; + if (body == null) return false; #endif body.FillNetworkData(message);