diff --git a/Subsurface/Source/CoroutineManager.cs b/Subsurface/Source/CoroutineManager.cs index 6a4995610..7d9187e9c 100644 --- a/Subsurface/Source/CoroutineManager.cs +++ b/Subsurface/Source/CoroutineManager.cs @@ -93,7 +93,7 @@ namespace Barotrauma catch (Exception e) { - DebugConsole.ThrowError("Coroutine " + Coroutines[i] + " threw an exception: " + e.Message); + DebugConsole.ThrowError("Coroutine " + Coroutines[i].Name + " threw an exception: " + e.Message); #if DEBUG throw e; diff --git a/Subsurface/Source/Map/Levels/Level.cs b/Subsurface/Source/Map/Levels/Level.cs index 5cd936d59..338de50a6 100644 --- a/Subsurface/Source/Map/Levels/Level.cs +++ b/Subsurface/Source/Map/Levels/Level.cs @@ -870,23 +870,39 @@ namespace Barotrauma private void Unload() { - if (renderer!=null) renderer.Dispose(); - renderer = null; - - ruins.Clear(); - - for (int side = 0; side < 2; side++) + if (renderer!=null) { - for (int i = 0; i < 2; i++) - { - wrappingWalls[side, i].Dispose(); - } + renderer.Dispose(); + renderer = null; } - + + if (ruins != null) + { + ruins.Clear(); + ruins = null; + } + + if (wrappingWalls!=null) + { + for (int side = 0; side < 2; side++) + { + for (int i = 0; i < 2; i++) + { + wrappingWalls[side, i].Dispose(); + } + } + + wrappingWalls = null; + } + + cells = null; - bodies.Clear(); - bodies = null; + if (bodies != null) + { + bodies.Clear(); + bodies = null; + } loaded = null; }