cseelhoff / RimThreaded

RimThreaded is a RimWorld mod designed to enable RimWorld to utilize multiple threads.
MIT License
119 stars 21 forks source link

[Signs and Comments] Doesn't seem to have null handling. #660

Closed Niilo007 closed 2 years ago

Niilo007 commented 2 years ago

IMPORTANT:

Please first search existing bugs to ensure you are not creating a duplicate bug report!
Make sure you have the latest version of Rimworld!

Describe the bug

with the mod Signs and Comments pressing the toggle to hide the comments when none are placed, brakes the hud and spams error

Steps to reproduce the behavior (VERY IMPORTANT)

  1. Press the button to hide the comments (bottom right)
  2. Error spam
  3. Only happens when there are no comments placed

Error Logs

Root level exception in OnGUI(): System.NullReferenceException: Object reference not set to an instance of an object
  at Dark.Signs.DoPlaySettingsGlobalControls_ShowCommentToggle.RefreshAllSigns () [0x00000] in <2e70e6f2c98449859b83063c978d5672>:0 
  at Dark.Signs.DoPlaySettingsGlobalControls_ShowCommentToggle.Postfix (Verse.WidgetRow row, System.Boolean worldView) [0x00043] in <2e70e6f2c98449859b83063c978d5672>:0 
  at (wrapper dynamic-method) RimWorld.PlaySettings.RimWorld.PlaySettings.DoPlaySettingsGlobalControls_Patch11(RimWorld.PlaySettings,Verse.WidgetRow,bool)
  at RimWorld.GlobalControlsUtility.DoPlaySettings (Verse.WidgetRow rowVisibility, System.Boolean worldView, System.Single& curBaseY) [0x0002b] in <b64badbf3c3d41018b3ca5d3e8c77771>:0 
  at RimWorld.GlobalControls.GlobalControlsOnGUI () [0x0005e] in <b64badbf3c3d41018b3ca5d3e8c77771>:0 
  at (wrapper dynamic-method) RimWorld.MapInterface.RimWorld.MapInterface.MapInterfaceOnGUI_BeforeMainTabs_Patch3(RimWorld.MapInterface)
  at (wrapper dynamic-method) RimWorld.UIRoot_Play.RimWorld.UIRoot_Play.UIRootOnGUI_Patch1(RimWorld.UIRoot_Play)
  at (wrapper dynamic-method) Verse.Root.Verse.Root.OnGUI_Patch1(Verse.Root)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch3 (string)
(wrapper dynamic-method) Verse.Root:Verse.Root.OnGUI_Patch1 (Verse.Root)

Player.log

!!! Link to contents of Player.log or Error.log (MUST BE LINK) !!!

HugsLib log

https://gist.github.com/495f25b9333d24e956341afb3c334a7b https://gist.github.com/028b1711a23a132b25c15589820ce414

Save file

!!! Please add a save file where the issue occurs to speed up testing and fixing of the issue !!!

Screenshots

image

Mod list (Preferably a RimPy compatible list.)

[Mod list length: 70] Harmony [https://steamcommunity.com/sharedfiles/filedetails/?id=2009463077] BetterLoading [https://steamcommunity.com/sharedfiles/filedetails/?id=1999454301] Core [https:// no link (local mod)] Royalty [Official DLC] [https:// no link (local mod)] Ideology [Official DLC] [https:// no link (local mod)] HugsLib [https://steamcommunity.com/sharedfiles/filedetails/?id=818773962] Achtung! [https://steamcommunity.com/sharedfiles/filedetails/?id=730936602] Allow Tool [https://steamcommunity.com/sharedfiles/filedetails/?id=761421485] Auto-Cut Blight [https://steamcommunity.com/sharedfiles/filedetails/?id=1885186534] Best Mix (Continued) [https://steamcommunity.com/sharedfiles/filedetails/?id=2195986094] Better Map Sizes [https://steamcommunity.com/sharedfiles/filedetails/?id=2099101052] Better Roads [https://steamcommunity.com/sharedfiles/filedetails/?id=1489564822] Bradson's Main Button Icons for Vanilla Textures Expanded [https://steamcommunity.com/sharedfiles/filedetails/?id=2361775777] CM Color Coded Mood Bar [1.1+] [https://steamcommunity.com/sharedfiles/filedetails/?id=2006605356] Camera+ [https://steamcommunity.com/sharedfiles/filedetails/?id=867467808] Compact Hediffs [https://steamcommunity.com/sharedfiles/filedetails/?id=2031734067] Dormitories (Not Barracks) [https://steamcommunity.com/sharedfiles/filedetails/?id=2558890999] EdB Prepare Carefully [https://steamcommunity.com/sharedfiles/filedetails/?id=735106432] Enable Oversized Weapons [https://steamcommunity.com/sharedfiles/filedetails/?id=2543371889] FrameRateControl [https://steamcommunity.com/sharedfiles/filedetails/?id=1591142767] RWLayout [https://steamcommunity.com/sharedfiles/filedetails/?id=2209393954] Grouped Pawns Lists [https://steamcommunity.com/sharedfiles/filedetails/?id=2340773428] Heat Map [https://steamcommunity.com/sharedfiles/filedetails/?id=947972722] Ignite Everything [https://steamcommunity.com/sharedfiles/filedetails/?id=1607884210] Immunities Reset (Continued) [https://steamcommunity.com/sharedfiles/filedetails/?id=2195961535] Injured Carry [https://steamcommunity.com/sharedfiles/filedetails/?id=2413690575] Less Arbitrary Surgery (Continued) [https://steamcommunity.com/sharedfiles/filedetails/?id=2018250654] Locks [https://steamcommunity.com/sharedfiles/filedetails/?id=1157085076] Map Reroll [https://steamcommunity.com/sharedfiles/filedetails/?id=761315214] MinifyEverything [https://steamcommunity.com/sharedfiles/filedetails/?id=872762753] ModDiff [https://steamcommunity.com/sharedfiles/filedetails/?id=2200054867] More filters for animals' pen [https://steamcommunity.com/sharedfiles/filedetails/?id=2558978295] Mortar Accuracy [https://steamcommunity.com/sharedfiles/filedetails/?id=1729446857] No Debris 1.1/1.2 [https://steamcommunity.com/sharedfiles/filedetails/?id=2010756536] No Job Authors [https://steamcommunity.com/sharedfiles/filedetails/?id=2009825774] No Lazy Doctors [https://steamcommunity.com/sharedfiles/filedetails/?id=2476396157] OgreStack [https://steamcommunity.com/sharedfiles/filedetails/?id=1447140290] Architect Icons [https://steamcommunity.com/sharedfiles/filedetails/?id=1195427067] Optional Icons for Architect Icons [https://steamcommunity.com/sharedfiles/filedetails/?id=1966995052] Prepare Landing [https://steamcommunity.com/sharedfiles/filedetails/?id=1095331978] Prisoners Dont Have Keys [https:// no link (local mod)] Quality Of Building [https://steamcommunity.com/sharedfiles/filedetails/?id=2101676323] Quality Overlay [https://steamcommunity.com/sharedfiles/filedetails/?id=2568283376] QualityBuilder [https://steamcommunity.com/sharedfiles/filedetails/?id=754637870] Raiders Never Die (Continued) [https://steamcommunity.com/sharedfiles/filedetails/?id=2024330186] Realistic Rooms Rewritten [https://steamcommunity.com/sharedfiles/filedetails/?id=2558042766] Recipe icons [https://steamcommunity.com/sharedfiles/filedetails/?id=1616643195] Replace Stuff [https://steamcommunity.com/sharedfiles/filedetails/?id=1372003680] ResearchPal - Forked [https://steamcommunity.com/sharedfiles/filedetails/?id=2351393394] Ruined by temperature filter [https://steamcommunity.com/sharedfiles/filedetails/?id=2554476852] RunAndGun [https://steamcommunity.com/sharedfiles/filedetails/?id=1204108550] Safely Hidden Away [https://steamcommunity.com/sharedfiles/filedetails/?id=1322196379] Share The Load [https://steamcommunity.com/sharedfiles/filedetails/?id=1356838246] Show Draftees Weapon [https://steamcommunity.com/sharedfiles/filedetails/?id=1690978457] Signs and Comments [https://steamcommunity.com/sharedfiles/filedetails/?id=2576219203] Simple sidearms [https://steamcommunity.com/sharedfiles/filedetails/?id=927155256] Interaction Bubbles [https://steamcommunity.com/sharedfiles/filedetails/?id=1516158345] SpeakUp [https://steamcommunity.com/sharedfiles/filedetails/?id=2502518544] Suppression (Continued) [https://steamcommunity.com/sharedfiles/filedetails/?id=2559826227] Tilled Soil [https://steamcommunity.com/sharedfiles/filedetails/?id=725747149] Ugh You Got Me [https://steamcommunity.com/sharedfiles/filedetails/?id=1542424705] Use Minified Buildings [https://steamcommunity.com/sharedfiles/filedetails/?id=2185809028] Vanilla Textures Expanded [https://steamcommunity.com/sharedfiles/filedetails/?id=2016436324] Pick Up And Haul [https://steamcommunity.com/sharedfiles/filedetails/?id=1279012058] While You're Up / PUAH+ [https://steamcommunity.com/sharedfiles/filedetails/?id=2034960453] World Map Beautification Project [https://steamcommunity.com/sharedfiles/filedetails/?id=2314407956] [KV] Save Storage, Outfit, Crafting, Drug, & Operation Settings [https://steamcommunity.com/sharedfiles/filedetails/?id=1180718516] [WD] Partially-Passable Wind Turbines [https://steamcommunity.com/sharedfiles/filedetails/?id=1621527381] [XND] Tiny Tweaks (Continued) [https://steamcommunity.com/sharedfiles/filedetails/?id=2270049772] RimThreaded [https://steamcommunity.com/sharedfiles/filedetails/?id=2222907981]

Sernior commented 2 years ago

this one seems the flecksystembase. fixed it yesterday.

Niilo007 commented 2 years ago

Still happens in 2.5.16

Edit: idk why i posted this error, it doesnt look like the right one, maybe it is idk

Exception ticking AncientCryptosleepCasket297664 (at (102, 0, 141)): System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
  at System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) [0x00029] in <eae584ce26bc40229c1b1aa476bfa589>:0 
  at System.ThrowHelper.ThrowArgumentOutOfRangeException () [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0 
  at System.Collections.Generic.List`1[T].RemoveAt (System.Int32 index) [0x00009] in <eae584ce26bc40229c1b1aa476bfa589>:0 
  at Verse.SimplePool`1[T].Get () [0x0002a] in <b64badbf3c3d41018b3ca5d3e8c77771>:0 
  at RimThreaded.SituationalThoughtHandler_Patch.RemoveAll[Pawn,CachedSocialThoughts] (System.Collections.Generic.Dictionary`2[TKey,TValue] dictionary, System.Predicate`1[T] predicate) [0x0001f] in <86c14ce4cb7c40ce813d62d5517d4792>:0 
  at RimThreaded.SituationalThoughtHandler_Patch.RemoveExpiredThoughtsFromCache (RimWorld.SituationalThoughtHandler __instance) [0x00018] in <86c14ce4cb7c40ce813d62d5517d4792>:0 
  at (wrapper dynamic-method) RimWorld.SituationalThoughtHandler.RimWorld.SituationalThoughtHandler.RemoveExpiredThoughtsFromCache_Patch1(RimWorld.SituationalThoughtHandler)
  at RimWorld.SituationalThoughtHandler.SituationalThoughtInterval () [0x00000] in <b64badbf3c3d41018b3ca5d3e8c77771>:0 
  at RimWorld.ThoughtHandler.ThoughtInterval () [0x00000] in <b64badbf3c3d41018b3ca5d3e8c77771>:0 
  at (wrapper dynamic-method) RimWorld.Need_Mood.RimWorld.Need_Mood.NeedInterval_Patch1(RimWorld.Need_Mood)
  at RimWorld.Pawn_NeedsTracker.NeedsTrackerTick () [0x00022] in <b64badbf3c3d41018b3ca5d3e8c77771>:0 
  at (wrapper dynamic-method) Verse.Pawn.Verse.Pawn.Tick_Patch1(Verse.Pawn)
  at Verse.ThingOwner.ThingOwnerTick (System.Boolean removeIfDestroyed) [0x00021] in <b64badbf3c3d41018b3ca5d3e8c77771>:0 
  at (wrapper dynamic-method) RimWorld.Building_Casket.RimWorld.Building_Casket.Tick_Patch1(RimWorld.Building_Casket)
  at RimThreaded.TickList_Patch.NormalThingTick () [0x00025] in <86c14ce4cb7c40ce813d62d5517d4792>:0 
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch3 (string)
RimThreaded.TickList_Patch:NormalThingTick ()
RimThreaded.RimThreaded:ExecuteTicks ()
RimThreaded.RimThreaded:ProcessTicks (RimThreaded.RimThreaded/ThreadInfo)
RimThreaded.RimThreaded:InitializeThread (object)
System.Threading.ThreadHelper:ThreadStart_Context (object)
System.Threading.ExecutionContext:RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object)
System.Threading.ThreadHelper:ThreadStart (object)
Niilo007 commented 2 years ago

Here is the error i get in 2.5.16

Root level exception in OnGUI(): System.NullReferenceException: Object reference not set to an instance of an object
  at Dark.Signs.DoPlaySettingsGlobalControls_ShowCommentToggle.RefreshAllSigns () [0x00000] in <2e70e6f2c98449859b83063c978d5672>:0 
  at Dark.Signs.DoPlaySettingsGlobalControls_ShowCommentToggle.Postfix (Verse.WidgetRow row, System.Boolean worldView) [0x00043] in <2e70e6f2c98449859b83063c978d5672>:0 
  at (wrapper dynamic-method) RimWorld.PlaySettings.RimWorld.PlaySettings.DoPlaySettingsGlobalControls_Patch11(RimWorld.PlaySettings,Verse.WidgetRow,bool)
  at RimWorld.GlobalControlsUtility.DoPlaySettings (Verse.WidgetRow rowVisibility, System.Boolean worldView, System.Single& curBaseY) [0x0002b] in <b64badbf3c3d41018b3ca5d3e8c77771>:0 
  at RimWorld.GlobalControls.GlobalControlsOnGUI () [0x0005e] in <b64badbf3c3d41018b3ca5d3e8c77771>:0 
  at (wrapper dynamic-method) RimWorld.MapInterface.RimWorld.MapInterface.MapInterfaceOnGUI_BeforeMainTabs_Patch3(RimWorld.MapInterface)
  at (wrapper dynamic-method) RimWorld.UIRoot_Play.RimWorld.UIRoot_Play.UIRootOnGUI_Patch1(RimWorld.UIRoot_Play)
  at (wrapper dynamic-method) Verse.Root.Verse.Root.OnGUI_Patch1(Verse.Root)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch3 (string)
(wrapper dynamic-method) Verse.Root:Verse.Root.OnGUI_Patch1 (Verse.Root)
Niilo007 commented 2 years ago

What the bug looks like in game (RT 2.5.16 RW 1.3.3117)

The UI is partly broken and its spamming an error

image

Here is the error

Root level exception in OnGUI(): System.NullReferenceException: Object reference not set to an instance of an object
  at Dark.Signs.DoPlaySettingsGlobalControls_ShowCommentToggle.RefreshAllSigns () [0x00000] in <2e70e6f2c98449859b83063c978d5672>:0 
  at Dark.Signs.DoPlaySettingsGlobalControls_ShowCommentToggle.Postfix (Verse.WidgetRow row, System.Boolean worldView) [0x00043] in <2e70e6f2c98449859b83063c978d5672>:0 
  at (wrapper dynamic-method) RimWorld.PlaySettings.RimWorld.PlaySettings.DoPlaySettingsGlobalControls_Patch11(RimWorld.PlaySettings,Verse.WidgetRow,bool)
  at RimWorld.GlobalControlsUtility.DoPlaySettings (Verse.WidgetRow rowVisibility, System.Boolean worldView, System.Single& curBaseY) [0x0002b] in <b64badbf3c3d41018b3ca5d3e8c77771>:0 
  at RimWorld.GlobalControls.GlobalControlsOnGUI () [0x0005e] in <b64badbf3c3d41018b3ca5d3e8c77771>:0 
  at (wrapper dynamic-method) RimWorld.MapInterface.RimWorld.MapInterface.MapInterfaceOnGUI_BeforeMainTabs_Patch3(RimWorld.MapInterface)
  at (wrapper dynamic-method) RimWorld.UIRoot_Play.RimWorld.UIRoot_Play.UIRootOnGUI_Patch1(RimWorld.UIRoot_Play)
  at (wrapper dynamic-method) Verse.Root.Verse.Root.OnGUI_Patch1(Verse.Root)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch3 (string)
(wrapper dynamic-method) Verse.Root:Verse.Root.OnGUI_Patch1 (Verse.Root)
Niilo007 commented 2 years ago

tried out today, seems it happens even without rimthreaded, meaning it has nothing to do with multithreading