From cb992c7d6682ad3445138f6701c30d30826663d6 Mon Sep 17 00:00:00 2001 From: Regalis Date: Mon, 10 Oct 2016 21:38:19 +0300 Subject: [PATCH] Fixed crashing if a matching waypoint isn't found when spawning a monster --- Subsurface/Source/DebugConsole.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Subsurface/Source/DebugConsole.cs b/Subsurface/Source/DebugConsole.cs index 2bebba230..d0ed6f87d 100644 --- a/Subsurface/Source/DebugConsole.cs +++ b/Subsurface/Source/DebugConsole.cs @@ -226,18 +226,17 @@ namespace Barotrauma Character spawnedCharacter = null; Vector2 spawnPosition = Vector2.Zero; - - spawnPosition = Vector2.Zero; + WayPoint spawnPoint = null; if (commands.Length > 2) { switch (commands[2].ToLowerInvariant()) { case "inside": - spawnPosition = WayPoint.GetRandom(SpawnType.Human, null, Submarine.MainSub).WorldPosition; + spawnPoint = WayPoint.GetRandom(SpawnType.Human, null, Submarine.MainSub); break; case "outside": - spawnPosition = WayPoint.GetRandom(SpawnType.Enemy).WorldPosition; + spawnPoint = WayPoint.GetRandom(SpawnType.Enemy); break; case "near": case "close": @@ -253,7 +252,7 @@ namespace Barotrauma if (closestDist < 0.0f || dist < closestDist) { - spawnPosition = wp.WorldPosition; + spawnPoint = wp; closestDist = dist; } } @@ -262,16 +261,17 @@ namespace Barotrauma spawnPosition = GameMain.GameScreen.Cam.ScreenToWorld(PlayerInput.MousePosition); break; default: - spawnPosition = WayPoint.GetRandom(commands[1].ToLowerInvariant()=="human" ? SpawnType.Human : SpawnType.Enemy).WorldPosition; + spawnPoint = WayPoint.GetRandom(commands[1].ToLowerInvariant() == "human" ? SpawnType.Human : SpawnType.Enemy); break; } - } else { - spawnPosition = WayPoint.GetRandom(commands[1].ToLowerInvariant() == "human" ? SpawnType.Human : SpawnType.Enemy).WorldPosition; + spawnPoint = WayPoint.GetRandom(commands[1].ToLowerInvariant() == "human" ? SpawnType.Human : SpawnType.Enemy); } + if (spawnPoint != null) spawnPosition = spawnPoint.WorldPosition; + if (commands[1].ToLowerInvariant()=="human") { spawnedCharacter = Character.Create(Character.HumanConfigFile, spawnPosition);