From 33f0b1c967ff606521b20bd3a94d4cb414321f98 Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Sun, 17 Dec 2017 22:38:13 +0200 Subject: [PATCH] Character.DisplayName looks at the Card slot directly instead of finding the first ID card in the inventory and seeing if it's in the Card slot. + reduced nesting --- .../Source/Characters/CharacterInfo.cs | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/Barotrauma/BarotraumaShared/Source/Characters/CharacterInfo.cs b/Barotrauma/BarotraumaShared/Source/Characters/CharacterInfo.cs index 12e5d93c4..ff85a049e 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/CharacterInfo.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/CharacterInfo.cs @@ -14,30 +14,34 @@ namespace Barotrauma public string Name; public string DisplayName { - get { + get + { string disguiseName = "?"; - if (Character != null && Character.HideFace) + if (Character == null || !Character.HideFace) { - if (Character.Inventory != null) + return Name; + } + + if (Character.Inventory != null) + { + int cardSlotIndex = Character.Inventory.FindLimbSlot(InvSlotType.Card); + if (cardSlotIndex < 0) return disguiseName; + + var idCard = Character.Inventory.Items[cardSlotIndex]; + if (idCard == null) return disguiseName; + + //Disguise as the ID card name if it's equipped + string[] readTags = idCard.Tags.Split(','); + foreach (string tag in readTags) { - var idCard = Character.Inventory.FindItem("ID Card"); - if (idCard != null && Character.Inventory.IsInLimbSlot(idCard, InvSlotType.Card)) //Disguise as the ID card name if it's equipped + string[] s = tag.Split(':'); + if (s[0] == "name") { - string[] readTags = idCard.Tags.Split(','); - foreach (string tag in readTags) - { - string[] s = tag.Split(':'); - if (s[0] == "name") - { - disguiseName = s[1]; - break; - } - } + return s[1]; } } - return disguiseName; } - return Name; + return disguiseName; } } public Character Character;