FakeFishGames / Barotrauma

A 2D online multiplayer game taking place in a submarine travelling through the icy depths of Jupiter's moon Europa.
http://www.barotraumagame.com/
1.75k stars 407 forks source link

[Unstable 0.17.7.0] Game crashes when clicking a dead player on tab crew list #8743

Closed Rokvach closed 2 years ago

Rokvach commented 2 years ago

Steps To Reproduce When there's two players dead and you select the last dead player from the crewlist the game crashes image.png

Version Unstable 0.17.7.0

Additional information

Exception: Object reference not set to an instance of an object. (System.NullReferenceException)
Target site: Void RetrieveValue()
Stack trace: 
   at Barotrauma.ConcatLString.RetrieveValue() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Text\LocalizedString\ConcatLString.cs:line 18
   at Barotrauma.LocalizedString.get_Value() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Text\LocalizedString\LocalizedString.cs:line 25
   at System.Linq.Enumerable.SelectArrayIterator`2.MoveNext()
   at System.String.Join(String separator, IEnumerable`1 values)
   at Barotrauma.AddedPunctuationLString.RetrieveValue() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Text\LocalizedString\AddedPunctuationLString.cs:line 17
   at Barotrauma.LocalizedString.get_Value() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Text\LocalizedString\LocalizedString.cs:line 25
   at Barotrauma.RichString.RetrieveValue() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Text\RichString.cs:line 117
   at Barotrauma.RichString.get_SanitizedValue() in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Text\RichString.cs:line 19
   at Barotrauma.RichString.op_Equality(RichString a, RichString b) in <DEV>\Barotrauma\BarotraumaShared\SharedSource\Text\RichString.cs:line 154
   at Barotrauma.GUITextBlock.set_Text(RichString value) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GUI\GUITextBlock.cs:line 91
   at Barotrauma.GUITextBlock..ctor(RectTransform rectT, RichString text, Nullable`1 textColor, GUIFont font, Alignment textAlignment, Boolean wrap, String style, Nullable`1 color, Boolean playerInput) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GUI\GUITextBlock.cs:line 300
   at Barotrauma.CharacterInfo.CreateInfoFrame(GUIFrame frame, Boolean returnParent, Sprite permissionIcon) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Characters\CharacterInfo.cs:line 157
   at Barotrauma.TabMenu.CreateClientInfoFrame(GUIFrame frame, Client client, Sprite permissionIcon) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GUI\TabMenu.cs:line 1295
   at Barotrauma.TabMenu.SelectElement(Object userData, GUIComponent crewList) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GUI\TabMenu.cs:line 943
   at Barotrauma.TabMenu.<>c__DisplayClass47_2.<CreateCrewListFrame>b__6(GUIComponent component, Object obj) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GUI\TabMenu.cs:line 455
   at Barotrauma.GUIListBox.Select(Int32 childIndex, Boolean force, Boolean autoScroll, Boolean takeKeyBoardFocus) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GUI\GUIListBox.cs:line 1016
   at Barotrauma.GUIListBox.UpdateChildrenRect() in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GUI\GUIListBox.cs:line 736
   at Barotrauma.GUIListBox.Update(Single deltaTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GUI\GUIListBox.cs:line 856
   at Barotrauma.GUI.Update(Single deltaTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GUI\GUI.cs:line 1190
   at Barotrauma.GameMain.Update(GameTime gameTime) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\GameMain.cs:line 887
   at Microsoft.Xna.Framework.Game.DoUpdate(GameTime gameTime) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 656
   at Microsoft.Xna.Framework.Game.Tick() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 500
   at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\SDL\SDLGamePlatform.cs:line 92
   at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 397
   at Microsoft.Xna.Framework.Game.Run() in <DEV>\Libraries\MonoGame.Framework\Src\MonoGame.Framework\Game.cs:line 367
   at Barotrauma.Program.Main(String[] args) in <DEV>\Barotrauma\BarotraumaClient\ClientSource\Program.cs:line 58
Regalis11 commented 2 years ago

Fixed in https://github.com/Regalis11/Barotrauma-development/commit/3a5cc6e9b24264b395ba29936d193613d02bcab2

Rokvach commented 2 years ago

Tested, working correctly. Closing.