cseelhoff / RimThreaded

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

[TD Enhancement Pack] skill gain & loss arrows cause occasional errors #630

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!

Describe the bug

TD Enhancement Pack has not yet updated to 1.3 but the bug in question was present in 1.2 so its probably best to wait for TD to update before testing this bug

an issue with TD since forever ago just making a report to track if it still happens

Steps to reproduce the behavior (VERY IMPORTANT)

  1. The arrows need to be enabled in mod options
  2. Occasional ticking errors, othervice everything seems to work fine
  3. Needs more testing

Error Log

Exception ticking Peter (at (248, 0, 268)): System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
  at System.ThrowHelper.ThrowInvalidOperationException (System.ExceptionResource resource) [0x0000b] in <eae584ce26bc40229c1b1aa476bfa589>:0 
  at System.Collections.Generic.List`1+Enumerator[T].MoveNextRare () [0x00013] in <eae584ce26bc40229c1b1aa476bfa589>:0 
  at System.Collections.Generic.List`1+Enumerator[T].MoveNext () [0x0004a] in <eae584ce26bc40229c1b1aa476bfa589>:0 
  at System.Linq.Enumerable.TryGetFirst[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] predicate, System.Boolean& found) [0x0004f] in <351e49e2a5bf4fd6beabb458ce2255f3>:0 
  at System.Linq.Enumerable.FirstOrDefault[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] predicate) [0x00000] in <351e49e2a5bf4fd6beabb458ce2255f3>:0 
  at TD_Enhancement_Pack.Learn_Patch.Postfix (RimWorld.SkillRecord __instance, System.Single xp) [0x00036] in <f3d9394f19614afdbb224af1f4d5d58b>:0 
  at (wrapper dynamic-method) RimWorld.SkillRecord.RimWorld.SkillRecord.Learn_Patch4(RimWorld.SkillRecord,single,bool)
  at (wrapper dynamic-method) RimWorld.SkillRecord.RimWorld.SkillRecord.Interval_Patch2(RimWorld.SkillRecord)
  at RimWorld.Pawn_SkillTracker.SkillsTick () [0x0008f] in <b64badbf3c3d41018b3ca5d3e8c77771>:0 
  at Verse.Pawn.Tick () [0x0016b] in <b64badbf3c3d41018b3ca5d3e8c77771>:0 
  at RimThreaded.TickList_Patch.NormalThingTick () [0x00025] in <2d357d0020314110b5286267826f0a0a>: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)

Save file Not avaible as of now

Screenshots Not avaible as of now

Mod list (Preferably a RimPy compatible list.)

sealvessel commented 2 years ago

I can confirm. Disabling the arrows fixes the continuous error.

Niilo007 commented 2 years ago

Fred made a patch for this mod for the next release

Niilo007 commented 2 years ago

closing this as its on the steam experimental branch