Disabled AI crew commands in multiplayer, attempting to give commands to a character with no AIController doesn't crash the game

This commit is contained in:
Regalis
2017-04-05 21:09:24 +03:00
parent 3246e2c521
commit 7700854935
2 changed files with 10 additions and 4 deletions
@@ -148,7 +148,7 @@ namespace Barotrauma
frame.RemoveChild(child); frame.RemoveChild(child);
} }
List<Character> aliveCharacters = crewManager.characters.FindAll(c => !c.IsDead); List<Character> aliveCharacters = crewManager.characters.FindAll(c => !c.IsDead && c.AIController is HumanAIController);
characterFrameBottom = 0; characterFrameBottom = 0;
+8 -2
View File
@@ -138,6 +138,11 @@ namespace Barotrauma
frame.SelectedColor = Color.Gold * 0.5f; frame.SelectedColor = Color.Gold * 0.5f;
var ai = character.AIController as HumanAIController; var ai = character.AIController as HumanAIController;
if (ai == null)
{
DebugConsole.ThrowError("Error in crewmanager - attempted to give orders to a character with no HumanAIController");
return;
}
SetCharacterOrder(character, ai.CurrentOrder); SetCharacterOrder(character, ai.CurrentOrder);
} }
@@ -152,8 +157,9 @@ namespace Barotrauma
{ {
guiFrame.Update(deltaTime); guiFrame.Update(deltaTime);
//TODO: implement AI commands in multiplayer?
if (GameMain.Config.KeyBind(InputType.CrewOrders).IsHit()) if (GameMain.NetworkMember != null &&
GameMain.Config.KeyBind(InputType.CrewOrders).IsHit())
{ {
//deselect construction unless it's the ladders the character is climbing //deselect construction unless it's the ladders the character is climbing
if (!commander.IsOpen && Character.Controlled != null && if (!commander.IsOpen && Character.Controlled != null &&