0% found this document useful (0 votes)
264 views455 pages

Harmony Log

This document contains code for patching several RimWorld classes and methods. It patches the JobDriver_Lovin class to add logic for lovers gaining a memory after intimacy and potentially getting pregnant. It patches JobDriver_Wear to add toils for going to apparel, preparing to wear it, and actually wearing it. It also patches the CanGetThought method to add checks for traits nullifying or requiring a thought.

Uploaded by

Oliver Zybul
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
Download as txt, pdf, or txt
0% found this document useful (0 votes)
264 views455 pages

Harmony Log

This document contains code for patching several RimWorld classes and methods. It patches the JobDriver_Lovin class to add logic for lovers gaining a memory after intimacy and potentially getting pregnant. It patches JobDriver_Wear to add toils for going to apparel, preparing to wear it, and actually wearing it. It also patches the CanGetThought method to add checks for traits nullifying or requiring a thought.

Uploaded by

Oliver Zybul
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1/ 455

PATCHING RimWorld.

JobDriver_Lovin+<MakeNewToils>c__Iterator0 Void <>m__4()


L_0000: Local var #0 RimWorld.Thought_Memory
L_0000: ldsfld RimWorld.ThoughtDef GotSomeLovin
L_0005: call RimWorld.Thought MakeThought(RimWorld.ThoughtDef)
L_000a: castclass RimWorld.Thought_Memory
L_000f: stloc.0
L_0010: ldarg.0
L_0011: ldfld RimWorld.JobDriver_Lovin $this
L_0016: ldfld Verse.Pawn pawn
L_001b: ldfld RimWorld.Pawn_NeedsTracker needs
L_0020: ldfld RimWorld.Need_Mood mood
L_0025: ldfld RimWorld.ThoughtHandler thoughts
L_002a: ldfld RimWorld.MemoryThoughtHandler memories
L_002f: ldloc.0
L_0030: ldarg.0
L_0031: ldfld RimWorld.JobDriver_Lovin $this
L_0036: call Verse.Pawn get_Partner()
L_003b: callvirt Void TryGainMemory(RimWorld.Thought_Memory, Verse.Pawn)
L_0040: ldarg.0
L_0041: ldfld RimWorld.JobDriver_Lovin $this
L_0046: ldfld Verse.Pawn pawn
L_004b: ldfld Verse.AI.Pawn_MindState mindState
L_0050: call Verse.TickManager get_TickManager()
L_0055: callvirt Int32 get_TicksGame()
L_005a: ldarg.0
L_005b: ldfld RimWorld.JobDriver_Lovin $this
L_0060: ldarg.0
L_0061: ldfld RimWorld.JobDriver_Lovin $this
L_0066: ldfld Verse.Pawn pawn
L_006b: call Int32 GenerateRandomMinTicksToNextLovin(Verse.Pawn)
L_0070: add
L_0071: stfld System.Int32 canLovinTick
L_0076: ldarg.0
L_0077: ldfld RimWorld.JobDriver_Lovin $this
L_007c: ldfld Verse.Pawn pawn
L_0081: ldarg.0
L_0082: ldfld RimWorld.JobDriver_Lovin $this
L_0087: call Verse.Pawn get_Partner()
L_008c: call Void TryToImpregnate(Verse.Pawn, Verse.Pawn)
L_0091: br Label #0
L_0096: Label #0
L_0096: ret
DONE

PATCHING RimWorld.JobDriver_Wear+<MakeNewToils>c__Iterator0 Boolean MoveNext()


L_0000: Local var #0 System.UInt32
L_0000: ldarg.0
L_0001: ldfld System.Int32 $PC
L_0006: stloc.0
L_0007: ldarg.0
L_0008: ldc.i4.m1
L_0009: stfld System.Int32 $PC
L_000e: ldloc.0
L_000f: switch Labels #2 #3 #4 #5
L_0024: br Label #6
L_0029: Label #2
L_0029: ldarg.0
L_002a: ldfld RimWorld.JobDriver_Wear $this
L_002f: call RimWorld.JobDriver_Wear FailOnBaby[JobDriver_Wear]
(RimWorld.JobDriver_Wear)
L_0034: pop
L_0035: ldarg.0
L_0036: newobj Void .ctor()
L_003b: stfld Verse.AI.Toil <gotoApparel>__1
L_0040: ldarg.0
L_0041: ldfld Verse.AI.Toil <gotoApparel>__1
L_0046: ldarg.0
L_0047: ldftn Void <>m__0()
L_004d: newobj Void .ctor(Object, IntPtr)
L_0052: stfld System.Action initAction
L_0057: ldarg.0
L_0058: ldfld Verse.AI.Toil <gotoApparel>__1
L_005d: ldc.i4.2
L_005e: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0063: ldarg.0
L_0064: ldfld Verse.AI.Toil <gotoApparel>__1
L_0069: ldc.i4.1
L_006a: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_006f: pop
L_0070: ldarg.0
L_0071: ldarg.0
L_0072: ldfld Verse.AI.Toil <gotoApparel>__1
L_0077: stfld Verse.AI.Toil $current
L_007c: ldarg.0
L_007d: ldfld System.Boolean $disposing
L_0082: brtrue Label #7
L_0087: ldarg.0
L_0088: ldc.i4.1
L_0089: stfld System.Int32 $PC
L_008e: Label #7
L_008e: br Label #8
L_0093: Label #3
L_0093: ldarg.0
L_0094: newobj Void .ctor()
L_0099: stfld Verse.AI.Toil <prepare>__2
L_009e: ldarg.0
L_009f: ldfld Verse.AI.Toil <prepare>__2
L_00a4: ldc.i4.3
L_00a5: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_00aa: ldarg.0
L_00ab: ldfld Verse.AI.Toil <prepare>__2
L_00b0: ldc.i4.s 60
L_00b2: stfld System.Int32 defaultDuration
L_00b7: ldarg.0
L_00b8: ldfld Verse.AI.Toil <prepare>__2
L_00bd: ldc.i4.1
L_00be: ldc.i4.0
L_00bf: ldc.r4 -0.5
L_00c4: call Verse.AI.Toil WithProgressBarToilDelay(Verse.AI.Toil, TargetIndex,
Boolean, Single)
L_00c9: pop
L_00ca: ldarg.0
L_00cb: ldfld Verse.AI.Toil <prepare>__2
L_00d0: ldc.i4.1
L_00d1: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_00d6: pop
L_00d7: ldarg.0
L_00d8: ldarg.0
L_00d9: ldfld Verse.AI.Toil <prepare>__2
L_00de: stfld Verse.AI.Toil $current
L_00e3: ldarg.0
L_00e4: ldfld System.Boolean $disposing
L_00e9: brtrue Label #9
L_00ee: ldarg.0
L_00ef: ldc.i4.2
L_00f0: stfld System.Int32 $PC
L_00f5: Label #9
L_00f5: br Label #10
L_00fa: Label #4
L_00fa: ldarg.0
L_00fb: newobj Void .ctor()
L_0100: stfld Verse.AI.Toil <wear>__3
L_0105: ldarg.0
L_0106: ldfld Verse.AI.Toil <wear>__3
L_010b: ldarg.0
L_010c: ldftn Void <>m__1()
L_0112: newobj Void .ctor(Object, IntPtr)
L_0117: stfld System.Action initAction
L_011c: ldarg.0
L_011d: ldfld Verse.AI.Toil <wear>__3
L_0122: ldc.i4.1
L_0123: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0128: ldarg.0
L_0129: ldarg.0
L_012a: ldfld Verse.AI.Toil <wear>__3
L_012f: stfld Verse.AI.Toil $current
L_0134: ldarg.0
L_0135: ldfld System.Boolean $disposing
L_013a: brtrue Label #11
L_013f: ldarg.0
L_0140: ldc.i4.3
L_0141: stfld System.Int32 $PC
L_0146: Label #11
L_0146: br Label #12
L_014b: Label #5
L_014b: ldarg.0
L_014c: ldc.i4.m1
L_014d: stfld System.Int32 $PC
L_0152: Label #6
L_0152: ldc.i4.0
L_0153: br Label #0
L_0158: Label #8
L_0158: Label #10
L_0158: Label #12
L_0158: ldc.i4.1
L_0159: br Label #0
L_015e: Label #0
L_015e: ret
DONE

PATCHING RimWorld.ThoughtUtility Boolean CanGetThought(Verse.Pawn,


RimWorld.ThoughtDef)
L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Int32
L_0000: Local var #2 System.Boolean
L_0000: Local var #3 System.Int32
L_0000: Local var #4 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 4 (System.Boolean)
L_0007: ldarg.1
L_0008: ldfld System.Boolean validWhileDespawned
L_000d: brtrue Label #2
L_0012: ldarg.0
L_0013: callvirt Boolean get_Spawned()
L_0018: brtrue Label #3
L_001d: ldarg.1
L_001e: callvirt Boolean get_IsMemory()
L_0023: brtrue Label #4
L_0028: ldc.i4.0
L_0029: stloc.0
L_002a: leave Label #5
L_002f: Label #2
L_002f: Label #3
L_002f: Label #4
L_002f: ldarg.1
L_0030: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0035: brfalse Label #6
L_003a: ldc.i4.0
L_003b: stloc.1
L_003c: br Label #7
L_0041: Label #10
L_0041: ldarg.0
L_0042: ldfld RimWorld.Pawn_StoryTracker story
L_0047: ldfld RimWorld.TraitSet traits
L_004c: ldarg.1
L_004d: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0052: ldloc.1
L_0053: callvirt RimWorld.TraitDef get_Item(Int32)
L_0058: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_005d: brfalse Label #8
L_0062: ldc.i4.0
L_0063: stloc.0
L_0064: leave Label #9
L_0069: Label #8
L_0069: ldloc.1
L_006a: ldc.i4.1
L_006b: add
L_006c: stloc.1
L_006d: Label #7
L_006d: ldloc.1
L_006e: ldarg.1
L_006f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0074: callvirt Int32 get_Count()
L_0079: blt Label #10
L_007e: Label #6
L_007e: ldarg.1
L_007f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0084: call Boolean NullOrEmpty[TraitDef](IList`1)
L_0089: brtrue Label #11
L_008e: ldc.i4.0
L_008f: stloc.2
L_0090: ldc.i4.0
L_0091: stloc.3
L_0092: br Label #12
L_0097: Label #19
L_0097: ldarg.0
L_0098: ldfld RimWorld.Pawn_StoryTracker story
L_009d: ldfld RimWorld.TraitSet traits
L_00a2: ldarg.1
L_00a3: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00a8: ldloc.3
L_00a9: callvirt RimWorld.TraitDef get_Item(Int32)
L_00ae: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_00b3: brtrue Label #13
L_00b8: leave Label #14
L_00bd: Label #13
L_00bd: ldarg.1
L_00be: callvirt Boolean get_RequiresSpecificTraitsDegree()
L_00c3: brfalse Label #15
L_00c8: ldarg.1
L_00c9: ldfld System.Int32 requiredTraitsDegree
L_00ce: ldarg.0
L_00cf: ldfld RimWorld.Pawn_StoryTracker story
L_00d4: ldfld RimWorld.TraitSet traits
L_00d9: ldarg.1
L_00da: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00df: ldloc.3
L_00e0: callvirt RimWorld.TraitDef get_Item(Int32)
L_00e5: callvirt Int32 DegreeOfTrait(RimWorld.TraitDef)
L_00ea: beq Label #16
L_00ef: leave Label #17
L_00f4: Label #15
L_00f4: Label #16
L_00f4: ldc.i4.1
L_00f5: stloc.2
L_00f6: leave Label #18
L_00fb: Label #14
L_00fb: Label #17
L_00fb: ldloc.3
L_00fc: ldc.i4.1
L_00fd: add
L_00fe: stloc.3
L_00ff: Label #12
L_00ff: ldloc.3
L_0100: ldarg.1
L_0101: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0106: callvirt Int32 get_Count()
L_010b: blt Label #19
L_0110: Label #18
L_0110: ldloc.2
L_0111: brtrue Label #20
L_0116: ldc.i4.0
L_0117: stloc.0
L_0118: leave Label #21
L_011d: Label #11
L_011d: Label #20
L_011d: ldarg.1
L_011e: ldfld System.Boolean nullifiedIfNotColonist
L_0123: brfalse Label #22
L_0128: ldarg.0
L_0129: callvirt Boolean get_IsColonist()
L_012e: brtrue Label #23
L_0133: ldc.i4.0
L_0134: stloc.0
L_0135: leave Label #24
L_013a: Label #22
L_013a: Label #23
L_013a: ldarg.1
L_013b: ldarg.0
L_013c: call Boolean IsSituationalThoughtNullifiedByHediffs(RimWorld.ThoughtDef,
Verse.Pawn)
L_0141: brfalse Label #25
L_0146: ldc.i4.0
L_0147: stloc.0
L_0148: leave Label #26
L_014d: Label #25
L_014d: ldarg.1
L_014e: ldarg.0
L_014f: call Boolean IsThoughtNullifiedByOwnTales(RimWorld.ThoughtDef, Verse.Pawn)
L_0154: brfalse Label #27
L_0159: ldc.i4.0
L_015a: stloc.0
L_015b: leave Label #28
L_0160: Label #27
L_0160: leave Label #29
L_0165: endfinally
L_0166: Label #29
L_0166: ldc.i4.1
L_0167: br Label #0
L_016c: Label #5
L_016c: Label #9
L_016c: Label #21
L_016c: Label #24
L_016c: Label #26
L_016c: Label #28
L_016c: ldloc.0
L_016d: br Label #0
L_0172: Label #0
L_0172: stloc 4 (System.Boolean)
L_0174: ldarga 0
L_017a: ldarga 1
L_0180: ldloca 4 (System.Boolean)
L_0182: call Void CanGetThought_Patch(Verse.Pawn ByRef, RimWorld.ThoughtDef ByRef,
Boolean ByRef)
L_0187: ldloc 4 (System.Boolean)
L_0189: ret
DONE

PATCHING RimWorld.JobGiver_SocialFighting Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Verb
L_0000: Local var #2 Verse.AI.Job
L_0000: Local var #3 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 3 (Verse.AI.Job)
L_0002: ldarg.1
L_0003: callvirt Verse.RaceProperties get_RaceProps()
L_0008: callvirt Boolean get_Humanlike()
L_000d: brfalse Label #2
L_0012: ldarg.1
L_0013: ldfld RimWorld.Pawn_StoryTracker story
L_0018: ldc.i4.8
L_0019: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_001e: brfalse Label #3
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: Label #3
L_0029: ldarg.1
L_002a: callvirt Verse.AI.MentalState get_MentalState()
L_002f: castclass Verse.AI.MentalState_SocialFighting
L_0034: ldfld Verse.Pawn otherPawn
L_0039: stloc.0
L_003a: ldarg.1
L_003b: ldloca.s 1 (Verse.Verb)
L_003d: call Boolean TryGetRandomVerbForSocialFight(Verse.Pawn, Verse.Verb ByRef)
L_0042: brtrue Label #4
L_0047: ldnull
L_0048: br Label #0
L_004d: Label #4
L_004d: ldsfld Verse.JobDef SocialFight
L_0052: ldloc.0
L_0053: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0058: newobj Void .ctor(JobDef, LocalTargetInfo)
L_005d: stloc.2
L_005e: ldloc.2
L_005f: ldc.i4.1
L_0060: stfld System.Int32 maxNumMeleeAttacks
L_0065: ldloc.2
L_0066: ldloc.1
L_0067: stfld Verse.Verb verbToUse
L_006c: ldloc.2
L_006d: br Label #0
L_0072: Label #0
L_0072: stloc 3 (Verse.AI.Job)
L_0073: ldarga 1
L_0079: ldloca 3 (Verse.AI.Job)
L_007b: call Void TryGiveJob_Postfix(Verse.Pawn ByRef, Verse.AI.Job ByRef)
L_0080: ldloc 3 (Verse.AI.Job)
L_0081: ret
DONE

PATCHING RimWorld.Pawn_ApparelTracker Void ApparelChanged()


L_0000: ldarg.0
L_0001: ldftn Void <ApparelChanged>m__1()
L_0007: newobj Void .ctor(Object, IntPtr)
L_000c: call Void ExecuteWhenFinished(System.Action)
L_0011: br Label #0
L_0016: Label #0
L_0016: ldarga 0
L_001c: call Void ApparelChanged_Postfix(RimWorld.Pawn_ApparelTracker ByRef)
L_0021: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveAllGraphics()


L_0000: Local var #0 Verse.PawnKindLifeStage
L_0000: ldarg.0
L_0001: call Void ClearCache()
L_0006: ldarg.0
L_0007: ldfld Verse.Pawn pawn
L_000c: callvirt Verse.RaceProperties get_RaceProps()
L_0011: callvirt Boolean get_Humanlike()
L_0016: brfalse Label #2
L_001b: ldarg.0
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_StoryTracker story
L_0027: ldfld RimWorld.BodyType bodyType
L_002c: ldsfld UnityEngine.Shader CutoutSkin
L_0031: ldarg.0
L_0032: ldfld Verse.Pawn pawn
L_0037: ldfld RimWorld.Pawn_StoryTracker story
L_003c: callvirt Color get_SkinColor()
L_0041: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_0046: stfld Verse.Graphic nakedGraphic
L_004b: ldarg.0
L_004c: ldarg.0
L_004d: ldfld Verse.Pawn pawn
L_0052: ldfld RimWorld.Pawn_StoryTracker story
L_0057: ldfld RimWorld.BodyType bodyType
L_005c: ldsfld UnityEngine.Shader CutoutSkin
L_0061: ldsfld UnityEngine.Color RottingColor
L_0066: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_006b: stfld Verse.Graphic rottingGraphic
L_0070: ldarg.0
L_0071: ldstr "Things/Pawn/Humanlike/HumanoidDessicated"
L_0076: ldsfld UnityEngine.Shader Cutout
L_007b: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader)
L_0080: stfld Verse.Graphic dessicatedGraphic
L_0085: ldarg.0
L_0086: ldarg.0
L_0087: ldfld Verse.Pawn pawn
L_008c: ldfld RimWorld.Pawn_StoryTracker story
L_0091: callvirt System.String get_HeadGraphicPath()
L_0096: ldarg.0
L_0097: ldfld Verse.Pawn pawn
L_009c: ldfld RimWorld.Pawn_StoryTracker story
L_00a1: callvirt Color get_SkinColor()
L_00a6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00ab: stfld Verse.Graphic headGraphic
L_00b0: ldarg.0
L_00b1: ldarg.0
L_00b2: ldfld Verse.Pawn pawn
L_00b7: ldfld RimWorld.Pawn_StoryTracker story
L_00bc: callvirt System.String get_HeadGraphicPath()
L_00c1: ldsfld UnityEngine.Color RottingColor
L_00c6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00cb: stfld Verse.Graphic desiccatedHeadGraphic
L_00d0: ldarg.0
L_00d1: call Verse.Graphic_Multi GetSkull()
L_00d6: stfld Verse.Graphic skullGraphic
L_00db: ldarg.0
L_00dc: ldarg.0
L_00dd: ldfld Verse.Pawn pawn
L_00e2: ldfld RimWorld.Pawn_StoryTracker story
L_00e7: callvirt Color get_SkinColor()
L_00ec: call Verse.Graphic_Multi GetStump(Color)
L_00f1: stfld Verse.Graphic headStumpGraphic
L_00f6: ldarg.0
L_00f7: ldsfld UnityEngine.Color RottingColor
L_00fc: call Verse.Graphic_Multi GetStump(Color)
L_0101: stfld Verse.Graphic desiccatedHeadStumpGraphic
L_0106: ldarg.0
L_0107: ldarg.0
L_0108: ldfld Verse.Pawn pawn
L_010d: ldfld RimWorld.Pawn_StoryTracker story
L_0112: ldfld RimWorld.HairDef hairDef
L_0117: ldfld System.String texPath
L_011c: ldsfld UnityEngine.Shader Cutout
L_0121: call Vector2 get_one()
L_0126: ldarg.0
L_0127: ldfld Verse.Pawn pawn
L_012c: ldfld RimWorld.Pawn_StoryTracker story
L_0131: ldfld UnityEngine.Color hairColor
L_0136: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_013b: stfld Verse.Graphic hairGraphic
L_0140: ldarg.0
L_0141: call Void ResolveApparelGraphics()
L_0146: br Label #3
L_014b: Label #2
L_014b: ldarg.0
L_014c: ldfld Verse.Pawn pawn
L_0151: ldfld Verse.Pawn_AgeTracker ageTracker
L_0156: callvirt Verse.PawnKindLifeStage get_CurKindLifeStage()
L_015b: stloc.0
L_015c: ldarg.0
L_015d: ldfld Verse.Pawn pawn
L_0162: ldfld Verse.Gender gender
L_0167: ldc.i4.2
L_0168: bne.un Label #4
L_016d: ldloc.0
L_016e: ldfld Verse.GraphicData femaleGraphicData
L_0173: brtrue Label #5
L_0178: Label #4
L_0178: ldarg.0
L_0179: ldloc.0
L_017a: ldfld Verse.GraphicData bodyGraphicData
L_017f: callvirt Verse.Graphic get_Graphic()
L_0184: stfld Verse.Graphic nakedGraphic
L_0189: br Label #6
L_018e: Label #5
L_018e: ldarg.0
L_018f: ldloc.0
L_0190: ldfld Verse.GraphicData femaleGraphicData
L_0195: callvirt Verse.Graphic get_Graphic()
L_019a: stfld Verse.Graphic nakedGraphic
L_019f: Label #6
L_019f: ldarg.0
L_01a0: ldarg.0
L_01a1: ldfld Verse.Graphic nakedGraphic
L_01a6: ldsfld UnityEngine.Shader CutoutSkin
L_01ab: ldsfld UnityEngine.Color RottingColor
L_01b0: ldsfld UnityEngine.Color RottingColor
L_01b5: callvirt Verse.Graphic GetColoredVersion(UnityEngine.Shader, Color, Color)
L_01ba: stfld Verse.Graphic rottingGraphic
L_01bf: ldarg.0
L_01c0: ldfld Verse.Pawn pawn
L_01c5: callvirt Verse.RaceProperties get_RaceProps()
L_01ca: ldfld System.Boolean packAnimal
L_01cf: brfalse Label #7
L_01d4: ldarg.0
L_01d5: ldarg.0
L_01d6: ldfld Verse.Graphic nakedGraphic
L_01db: ldfld System.String path
L_01e0: ldstr "Pack"
L_01e5: call System.String Concat(System.String, System.String)
L_01ea: ldsfld UnityEngine.Shader Cutout
L_01ef: ldarg.0
L_01f0: ldfld Verse.Graphic nakedGraphic
L_01f5: ldfld UnityEngine.Vector2 drawSize
L_01fa: call Color get_white()
L_01ff: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_0204: stfld Verse.Graphic packGraphic
L_0209: Label #7
L_0209: ldloc.0
L_020a: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_020f: brfalse Label #8
L_0214: ldarg.0
L_0215: ldloc.0
L_0216: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_021b: ldarg.0
L_021c: ldfld Verse.Pawn pawn
L_0221: callvirt Verse.Graphic GraphicColoredFor(Verse.Thing)
L_0226: stfld Verse.Graphic dessicatedGraphic
L_022b: Label #3
L_022b: Label #8
L_022b: br Label #0
L_0230: Label #0
L_0230: ldarga 0
L_0236: call Void ResolveAllGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_023b: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveApparelGraphics()


L_0000: Local var #0 RimWorld.Apparel
L_0000: Local var #1 System.Collections.Generic.IEnumerator`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 RimWorld.ApparelGraphicRecord
L_0000: ldarga 0
L_0006: call Void ResolveApparelGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_000b: ldarg.0
L_000c: call Void ClearCache()
L_0011: ldarg.0
L_0012: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0017: callvirt Void Clear()
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_ApparelTracker apparel
L_0027: callvirt IEnumerable`1 get_WornApparelInDrawOrder()
L_002c: callvirt IEnumerator`1 GetEnumerator()
L_0031: stloc.1
L_0032: br Label #2
L_0037: Label #4
L_0037: ldloc.1
L_0038: callvirt RimWorld.Apparel get_Current()
L_003d: stloc.0
L_003e: ldloc.0
L_003f: ldarg.0
L_0040: ldfld Verse.Pawn pawn
L_0045: call BodyType ModifyChildBodyType(Verse.Pawn)
L_004a: ldloca.s 2 (RimWorld.ApparelGraphicRecord)
L_004c: call Boolean TryGetGraphicApparel(RimWorld.Apparel, BodyType,
ApparelGraphicRecord ByRef)
L_0051: brfalse Label #3
L_0056: ldarg.0
L_0057: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_005c: ldloc.2
L_005d: callvirt Void Add(ApparelGraphicRecord)
L_0062: Label #2
L_0062: Label #3
L_0062: ldloc.1
L_0063: callvirt Boolean MoveNext()
L_0068: brtrue Label #4
L_006d: leave Label #5
L_0072: ldloc.1
L_0073: brfalse Label #6
L_0078: ldloc.1
L_0079: callvirt Void Dispose()
L_007e: Label #6
L_007e: endfinally
L_007f: Label #5
L_007f: br Label #0
L_0084: Label #0
L_0084: ret
DONE

PATCHING Verse.PawnRenderer Void RenderPawnInternal(Vector3, Quaternion, Boolean,


Rot4, Rot4, RotDrawMode, Boolean, Boolean)
L_0000: Local var #0 UnityEngine.Mesh
L_0000: Local var #1 UnityEngine.Vector3
L_0000: Local var #2 System.Collections.Generic.List`1[[UnityEngine.Material,
UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #3 System.Int32
L_0000: Local var #4 UnityEngine.Material
L_0000: Local var #5 UnityEngine.Vector3
L_0000: Local var #6 UnityEngine.Vector3
L_0000: Local var #7 UnityEngine.Vector3
L_0000: Local var #8 UnityEngine.Vector3
L_0000: Local var #9 UnityEngine.Material
L_0000: Local var #10 UnityEngine.Mesh
L_0000: Local var #11 UnityEngine.Vector3
L_0000: Local var #12 System.Boolean
L_0000: Local var #13 UnityEngine.Mesh
L_0000: Local var #14
System.Collections.Generic.List`1[[RimWorld.ApparelGraphicRecord, Assembly-CSharp,
Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #15 System.Int32
L_0000: Local var #16 RimWorld.ApparelGraphicRecord
L_0000: Local var #17 RimWorld.ApparelGraphicRecord
L_0000: Local var #18 UnityEngine.Material
L_0000: Local var #19 RimWorld.ApparelGraphicRecord
L_0000: Local var #20 UnityEngine.Material
L_0000: Local var #21 RimWorld.ApparelGraphicRecord
L_0000: Local var #22 UnityEngine.Vector3
L_0000: Local var #23 UnityEngine.Mesh
L_0000: Local var #24 UnityEngine.Material
L_0000: Local var #25 System.Int32
L_0000: Local var #26 RimWorld.ApparelGraphicRecord
L_0000: Local var #27 UnityEngine.Material
L_0000: Local var #28 System.Collections.Generic.List`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #29 System.Int32
L_0000: Local var #30 UnityEngine.Vector3
L_0000: ldarg.0
L_0001: ldfld Verse.PawnGraphicSet graphics
L_0006: callvirt Boolean get_AllResolved()
L_000b: brtrue Label #2
L_0010: ldarg.0
L_0011: ldfld Verse.PawnGraphicSet graphics
L_0016: callvirt Void ResolveAllGraphics()
L_001b: Label #2
L_001b: ldnull
L_001c: stloc.0
L_001d: ldarg.0
L_001e: ldfld Verse.Pawn pawn
L_0023: ldfld Verse.Pawn_AgeTracker ageTracker
L_0028: call Int32 get_CurLifeStageIndex()
L_002d: ldc.i4.2
L_002e: blt Label #43
L_0033: ldarg.3
L_0034: brfalse Label #3
L_0039: Label #43
L_0039: ldarg.1
L_003a: ldarg.0
L_003b: ldfld Verse.Pawn pawn
L_0040: ldarg.s 7
L_0045: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_004a: stloc.1
L_004b: ldloca.s 1 (UnityEngine.Vector3)
L_004d: dup
L_004e: ldfld System.Single y
L_0053: ldc.r4 0.0078125
L_0058: add
L_0059: stfld System.Single y
L_005e: ldarg.s 6
L_0060: ldc.i4.2
L_0061: bne.un Label #4
L_0066: ldarg.0
L_0067: ldfld Verse.Pawn pawn
L_006c: callvirt Verse.RaceProperties get_RaceProps()
L_0071: callvirt Boolean get_Humanlike()
L_0076: brtrue Label #5
L_007b: ldarg.0
L_007c: ldfld Verse.PawnGraphicSet graphics
L_0081: ldfld Verse.Graphic dessicatedGraphic
L_0086: brfalse Label #6
L_008b: ldarg.s 7
L_008d: brtrue Label #7
L_0092: ldarg.0
L_0093: ldfld Verse.PawnGraphicSet graphics
L_0098: ldfld Verse.Graphic dessicatedGraphic
L_009d: ldloc.1
L_009e: ldarg.s 4
L_00a0: ldarg.0
L_00a1: ldfld Verse.Pawn pawn
L_00a6: ldc.r4 0
L_00ab: callvirt Void Draw(Vector3, Rot4, Verse.Thing, Single)
L_00b0: br Label #8
L_00b5: Label #4
L_00b5: Label #5
L_00b5: Label #6
L_00b5: Label #7
L_00b5: ldarg.0
L_00b6: ldfld Verse.Pawn pawn
L_00bb: callvirt Verse.RaceProperties get_RaceProps()
L_00c0: callvirt Boolean get_Humanlike()
L_00c5: brfalse Label #9
L_00ca: ldsfld Verse.GraphicMeshSet humanlikeBodySet
L_00cf: ldarg.s 4
L_00d1: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00d6: stloc.0
L_00d7: br Label #10
L_00dc: Label #9
L_00dc: ldarg.0
L_00dd: ldfld Verse.PawnGraphicSet graphics
L_00e2: ldfld Verse.Graphic nakedGraphic
L_00e7: ldarg.s 4
L_00e9: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00ee: stloc.0
L_00ef: Label #10
L_00ef: ldarg.0
L_00f0: ldfld Verse.PawnGraphicSet graphics
L_00f5: ldarg.s 4
L_00f7: ldarg.s 6
L_00f9: callvirt System.Collections.Generic.List`1[UnityEngine.Material]
MatsBodyBaseAt(Rot4, RotDrawMode)
L_00fe: stloc.2
L_00ff: ldc.i4.0
L_0100: stloc.3
L_0101: br Label #11
L_0106: Label #12
L_0106: ldarg.0
L_0107: ldfld Verse.PawnGraphicSet graphics
L_010c: ldfld Verse.DamageFlasher flasher
L_0111: ldloc.2
L_0112: ldloc.3
L_0113: callvirt UnityEngine.Material get_Item(Int32)
L_0118: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_011d: stloc.s 4 (UnityEngine.Material)
L_011f: ldloc.s 4
L_0124: ldarg.0
L_0125: ldfld Verse.Pawn pawn
L_012a: ldarg.s 4
L_012f: call UnityEngine.Material ModifyClothingForChild(UnityEngine.Material,
Verse.Pawn, Rot4)
L_0134: stloc.s 4
L_0139: ldloc.0
L_013a: ldloc.1
L_013b: ldarg.2
L_013c: ldloc.s 4 (UnityEngine.Material)
L_013e: ldarg.s 7
L_0140: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_0145: ldloca.s 1 (UnityEngine.Vector3)
L_0147: dup
L_0148: ldfld System.Single y
L_014d: ldloc.s 18
L_0152: ldarg.0
L_0153: ldfld Verse.Pawn pawn
L_0158: call UnityEngine.Material ModifyHatForChild(UnityEngine.Material,
Verse.Pawn)
L_015d: stloc.s 18
L_0162: ldc.r4 0.00390625
L_0167: add
L_0168: stfld System.Single y
L_016d: ldloc.3
L_016e: ldc.i4.1
L_016f: add
L_0170: stloc.3
L_0171: Label #11
L_0171: ldloc.3
L_0172: ldloc.2
L_0173: callvirt Int32 get_Count()
L_0178: blt Label #12
L_017d: ldarg.s 6
L_017f: brtrue Label #13
L_0184: ldarg.1
L_0185: ldarg.0
L_0186: ldfld Verse.Pawn pawn
L_018b: ldarg.s 7
L_0190: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0195: stloc.s 5 (UnityEngine.Vector3)
L_0197: ldloca.s 5 (UnityEngine.Vector3)
L_0199: dup
L_019a: ldfld System.Single y
L_019f: ldc.r4 0.01953125
L_01a4: add
L_01a5: stfld System.Single y
L_01aa: ldarg.0
L_01ab: ldfld RimWorld.PawnWoundDrawer woundOverlays
L_01b0: ldloc.s 5 (UnityEngine.Vector3)
L_01b2: ldloc.0
L_01b3: ldarg.2
L_01b4: ldarg.s 7
L_01b6: callvirt Void RenderOverBody(Vector3, UnityEngine.Mesh, Quaternion,
Boolean)
L_01bb: Label #3
L_01bb: Label #8
L_01bb: Label #13
L_01bb: ldarg.1
L_01bc: ldarg.0
L_01bd: ldfld Verse.Pawn pawn
L_01c2: ldarg.s 7
L_01c7: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01cc: stloc.s 6 (UnityEngine.Vector3)
L_01ce: ldarg.1
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldarg.s 7
L_01da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01df: stloc.s 7 (UnityEngine.Vector3)
L_01e1: ldarg.s 4
L_01e3: call Rot4 get_North()
L_01e8: call Boolean op_Inequality(Rot4, Rot4)
L_01ed: brfalse Label #14
L_01f2: ldloca.s 7 (UnityEngine.Vector3)
L_01f4: dup
L_01f5: ldfld System.Single y
L_01fa: ldc.r4 0.02734375
L_01ff: add
L_0200: stfld System.Single y
L_0205: ldloca.s 6 (UnityEngine.Vector3)
L_0207: dup
L_0208: ldfld System.Single y
L_020d: ldc.r4 0.0234375
L_0212: add
L_0213: stfld System.Single y
L_0218: br Label #15
L_021d: Label #14
L_021d: ldloca.s 7 (UnityEngine.Vector3)
L_021f: dup
L_0220: ldfld System.Single y
L_0225: ldc.r4 0.0234375
L_022a: add
L_022b: stfld System.Single y
L_0230: ldloca.s 6 (UnityEngine.Vector3)
L_0232: dup
L_0233: ldfld System.Single y
L_0238: ldc.r4 0.02734375
L_023d: add
L_023e: stfld System.Single y
L_0243: Label #15
L_0243: ldarg.0
L_0244: ldfld Verse.PawnGraphicSet graphics
L_0249: ldfld Verse.Graphic headGraphic
L_024e: brfalse Label #16
L_0253: ldarg.0
L_0254: ldfld Verse.Pawn pawn
L_0259: call Boolean RaceUsesChildren(Verse.Pawn)
L_025e: brfalse Label #44
L_0263: ldarg.0
L_0264: ldfld Verse.Pawn pawn
L_0269: call Boolean EnsurePawnIsChildOrOlder(Verse.Pawn)
L_026e: brfalse Label #16
L_0273: Label #44
L_0273: nop
L_0274: ldarg.2
L_0275: ldarg.0
L_0276: ldarg.s 5
L_0278: call Vector3 BaseHeadOffsetAt(Rot4)
L_027d: call Vector3 op_Multiply(Quaternion, Vector3)
L_0282: stloc.s 8 (UnityEngine.Vector3)
L_0284: ldarg.0
L_0285: ldfld Verse.PawnGraphicSet graphics
L_028a: ldarg.s 5
L_028c: ldarg.s 6
L_028e: ldarg.s 8
L_0290: callvirt UnityEngine.Material HeadMatAt(Rot4, RotDrawMode, Boolean)
L_0295: stloc.s 9 (UnityEngine.Material)
L_0297: ldloc.s 9 (UnityEngine.Material)
L_0299: ldnull
L_029a: call Boolean op_Inequality(UnityEngine.Object, UnityEngine.Object)
L_029f: brfalse Label #17
L_02a4: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_02a9: ldarg.s 5
L_02ab: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_02b0: stloc.s 10 (UnityEngine.Mesh)
L_02b2: ldloc.s 10 (UnityEngine.Mesh)
L_02b4: ldloc.s 7 (UnityEngine.Vector3)
L_02b6: ldloc.s 8 (UnityEngine.Vector3)
L_02b8: call Vector3 op_Addition(Vector3, Vector3)
L_02bd: ldarg.2
L_02be: ldloc.s 9 (UnityEngine.Material)
L_02c0: ldarg.s 7
L_02c2: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_02c7: Label #17
L_02c7: ldarg.1
L_02c8: ldloc.s 8 (UnityEngine.Vector3)
L_02ca: call Vector3 op_Addition(Vector3, Vector3)
L_02cf: ldarg.0
L_02d0: ldfld Verse.Pawn pawn
L_02d5: ldarg.s 7
L_02da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_02df: stloc.s 11 (UnityEngine.Vector3)
L_02e1: ldloca.s 11 (UnityEngine.Vector3)
L_02e3: dup
L_02e4: ldfld System.Single y
L_02e9: ldc.r4 0.03125
L_02ee: add
L_02ef: stfld System.Single y
L_02f4: ldc.i4.0
L_02f5: stloc.s 12 (System.Boolean)
L_02f7: ldarg.s 7
L_02f9: brfalse Label #18
L_02fe: call Boolean get_HatsOnlyOnMap()
L_0303: brtrue Label #19
L_0308: Label #18
L_0308: ldarg.0
L_0309: ldfld Verse.PawnGraphicSet graphics
L_030e: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_0313: ldarg.s 5
L_0315: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_031a: stloc.s 13 (UnityEngine.Mesh)
L_031c: ldarg.0
L_031d: ldfld Verse.PawnGraphicSet graphics
L_0322: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0327: stloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0329: ldc.i4.0
L_032a: stloc.s 15 (System.Int32)
L_032c: br Label #20
L_0331: Label #26
L_0331: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0333: ldloc.s 15 (System.Int32)
L_0335: callvirt ApparelGraphicRecord get_Item(Int32)
L_033a: stloc.s 16 (RimWorld.ApparelGraphicRecord)
L_033c: ldloca.s 16 (RimWorld.ApparelGraphicRecord)
L_033e: ldfld RimWorld.Apparel sourceApparel
L_0343: ldfld Verse.ThingDef def
L_0348: ldfld RimWorld.ApparelProperties apparel
L_034d: callvirt ApparelLayer get_LastLayer()
L_0352: ldc.i4.4
L_0353: bne.un Label #21
L_0358: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_035a: ldloc.s 15 (System.Int32)
L_035c: callvirt ApparelGraphicRecord get_Item(Int32)
L_0361: stloc.s 17 (RimWorld.ApparelGraphicRecord)
L_0363: ldloca.s 17 (RimWorld.ApparelGraphicRecord)
L_0365: ldfld RimWorld.Apparel sourceApparel
L_036a: ldfld Verse.ThingDef def
L_036f: ldfld RimWorld.ApparelProperties apparel
L_0374: ldfld System.Boolean hatRenderedFrontOfFace
L_0379: brtrue Label #22
L_037e: ldc.i4.1
L_037f: stloc.s 12 (System.Boolean)
L_0381: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0383: ldloc.s 15 (System.Int32)
L_0385: callvirt ApparelGraphicRecord get_Item(Int32)
L_038a: stloc.s 19 (RimWorld.ApparelGraphicRecord)
L_038c: ldloca.s 19 (RimWorld.ApparelGraphicRecord)
L_038e: ldfld Verse.Graphic graphic
L_0393: ldarg.s 4
L_0395: ldnull
L_0396: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_039b: stloc.s 18 (UnityEngine.Material)
L_039d: ldarg.0
L_039e: ldfld Verse.PawnGraphicSet graphics
L_03a3: ldfld Verse.DamageFlasher flasher
L_03a8: ldloc.s 18 (UnityEngine.Material)
L_03aa: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03af: stloc.s 18 (UnityEngine.Material)
L_03b1: ldloc.s 13 (UnityEngine.Mesh)
L_03b3: ldloc.s 11 (UnityEngine.Vector3)
L_03b5: ldarg.2
L_03b6: ldloc.s 18 (UnityEngine.Material)
L_03b8: ldarg.s 7
L_03ba: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_03bf: br Label #23
L_03c4: Label #22
L_03c4: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_03c6: ldloc.s 15 (System.Int32)
L_03c8: callvirt ApparelGraphicRecord get_Item(Int32)
L_03cd: stloc.s 21 (RimWorld.ApparelGraphicRecord)
L_03cf: ldloca.s 21 (RimWorld.ApparelGraphicRecord)
L_03d1: ldfld Verse.Graphic graphic
L_03d6: ldarg.s 4
L_03d8: ldnull
L_03d9: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_03de: stloc.s 20 (UnityEngine.Material)
L_03e0: ldarg.0
L_03e1: ldfld Verse.PawnGraphicSet graphics
L_03e6: ldfld Verse.DamageFlasher flasher
L_03eb: ldloc.s 20 (UnityEngine.Material)
L_03ed: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03f2: stloc.s 20 (UnityEngine.Material)
L_03f4: ldarg.1
L_03f5: ldloc.s 8 (UnityEngine.Vector3)
L_03f7: call Vector3 op_Addition(Vector3, Vector3)
L_03fc: stloc.s 22 (UnityEngine.Vector3)
L_03fe: ldloca.s 22 (UnityEngine.Vector3)
L_0400: dup
L_0401: ldfld System.Single y
L_0406: ldarg.s 4
L_0408: call Rot4 get_North()
L_040d: call Boolean op_Equality(Rot4, Rot4)
L_0412: brfalse Label #24
L_0417: ldc.r4 0.00390625
L_041c: br Label #25
L_0421: Label #24
L_0421: ldc.r4 0.03515625
L_0426: Label #25
L_0426: add
L_0427: stfld System.Single y
L_042c: ldloc.s 13 (UnityEngine.Mesh)
L_042e: ldloc.s 22 (UnityEngine.Vector3)
L_0430: ldarg.2
L_0431: ldloc.s 20 (UnityEngine.Material)
L_0433: ldarg.s 7
L_0435: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_043a: Label #21
L_043a: Label #23
L_043a: ldloc.s 15 (System.Int32)
L_043c: ldc.i4.1
L_043d: add
L_043e: stloc.s 15 (System.Int32)
L_0440: Label #20
L_0440: ldloc.s 15 (System.Int32)
L_0442: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0444: callvirt Int32 get_Count()
L_0449: blt Label #26
L_044e: Label #19
L_044e: ldloc.s 12 (System.Boolean)
L_0450: brtrue Label #27
L_0455: ldarg.s 6
L_0457: ldc.i4.2
L_0458: beq Label #28
L_045d: ldarg.s 8
L_045f: brtrue Label #29
L_0464: ldarg.0
L_0465: ldfld Verse.PawnGraphicSet graphics
L_046a: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_046f: ldarg.s 5
L_0471: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0476: stloc.s 23 (UnityEngine.Mesh)
L_0478: ldarg.0
L_0479: ldfld Verse.PawnGraphicSet graphics
L_047e: ldarg.s 5
L_0480: callvirt UnityEngine.Material HairMatAt(Rot4)
L_0485: stloc.s 24 (UnityEngine.Material)
L_0487: ldloc.s 24
L_048c: ldarg.0
L_048d: ldfld Verse.Pawn pawn
L_0492: call UnityEngine.Material ModifyHairForChild(UnityEngine.Material,
Verse.Pawn)
L_0497: stloc.s 24
L_049c: ldloc.s 23 (UnityEngine.Mesh)
L_049e: ldloc.s 11 (UnityEngine.Vector3)
L_04a0: ldarg.2
L_04a1: ldloc.s 24 (UnityEngine.Material)
L_04a3: ldarg.s 7
L_04a5: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_04aa: Label #16
L_04aa: Label #27
L_04aa: Label #28
L_04aa: Label #29
L_04aa: ldarg.3
L_04ab: brfalse Label #30
L_04b0: ldc.i4.0
L_04b1: stloc.s 25 (System.Int32)
L_04b3: br Label #31
L_04b8: Label #33
L_04b8: ldarg.0
L_04b9: ldfld Verse.PawnGraphicSet graphics
L_04be: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_04c3: ldloc.s 25 (System.Int32)
L_04c5: callvirt ApparelGraphicRecord get_Item(Int32)
L_04ca: stloc.s 26 (RimWorld.ApparelGraphicRecord)
L_04cc: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ce: ldfld RimWorld.Apparel sourceApparel
L_04d3: ldfld Verse.ThingDef def
L_04d8: ldfld RimWorld.ApparelProperties apparel
L_04dd: callvirt ApparelLayer get_LastLayer()
L_04e2: ldc.i4.2
L_04e3: bne.un Label #32
L_04e8: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ea: ldfld Verse.Graphic graphic
L_04ef: ldarg.s 4
L_04f1: ldnull
L_04f2: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_04f7: stloc.s 27 (UnityEngine.Material)
L_04f9: ldarg.0
L_04fa: ldfld Verse.PawnGraphicSet graphics
L_04ff: ldfld Verse.DamageFlasher flasher
L_0504: ldloc.s 27 (UnityEngine.Material)
L_0506: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_050b: stloc.s 27 (UnityEngine.Material)
L_050d: ldloc.0
L_050e: ldloc.s 6 (UnityEngine.Vector3)
L_0510: ldarg.2
L_0511: ldloc.s 27 (UnityEngine.Material)
L_0513: ldarg.s 7
L_0515: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_051a: Label #32
L_051a: ldloc.s 25 (System.Int32)
L_051c: ldc.i4.1
L_051d: add
L_051e: stloc.s 25 (System.Int32)
L_0520: Label #31
L_0520: ldloc.s 25 (System.Int32)
L_0522: ldarg.0
L_0523: ldfld Verse.PawnGraphicSet graphics
L_0528: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_052d: callvirt Int32 get_Count()
L_0532: blt Label #33
L_0537: Label #30
L_0537: ldarg.s 7
L_0539: brtrue Label #34
L_053e: ldarg.0
L_053f: ldfld Verse.Pawn pawn
L_0544: callvirt Verse.RaceProperties get_RaceProps()
L_0549: callvirt Boolean get_Animal()
L_054e: brfalse Label #35
L_0553: ldarg.0
L_0554: ldfld Verse.Pawn pawn
L_0559: ldfld Verse.Pawn_InventoryTracker inventory
L_055e: brfalse Label #36
L_0563: ldarg.0
L_0564: ldfld Verse.Pawn pawn
L_0569: ldfld Verse.Pawn_InventoryTracker inventory
L_056e: ldfld Verse.ThingOwner`1[Verse.Thing] innerContainer
L_0573: callvirt Int32 get_Count()
L_0578: ldc.i4.0
L_0579: ble Label #37
L_057e: ldarg.0
L_057f: ldfld Verse.PawnGraphicSet graphics
L_0584: ldfld Verse.Graphic packGraphic
L_0589: brfalse Label #38
L_058e: ldloc.0
L_058f: ldloc.s 6 (UnityEngine.Vector3)
L_0591: ldarg.2
L_0592: ldarg.0
L_0593: ldfld Verse.PawnGraphicSet graphics
L_0598: ldfld Verse.Graphic packGraphic
L_059d: ldarg.s 4
L_059f: ldnull
L_05a0: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_05a5: ldc.i4.0
L_05a6: call Void DrawMesh(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Int32)
L_05ab: Label #34
L_05ab: Label #35
L_05ab: Label #36
L_05ab: Label #37
L_05ab: Label #38
L_05ab: ldarg.s 7
L_05ad: brtrue Label #39
L_05b2: ldarg.0
L_05b3: ldarg.1
L_05b4: call Void DrawEquipment(Vector3)
L_05b9: ldarg.0
L_05ba: ldfld Verse.Pawn pawn
L_05bf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05c4: brfalse Label #40
L_05c9: ldarg.0
L_05ca: ldfld Verse.Pawn pawn
L_05cf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05d4: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_05d9: stloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05db: ldc.i4.0
L_05dc: stloc.s 29 (System.Int32)
L_05de: br Label #41
L_05e3: Label #42
L_05e3: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05e5: ldloc.s 29 (System.Int32)
L_05e7: callvirt RimWorld.Apparel get_Item(Int32)
L_05ec: callvirt Void DrawWornExtras()
L_05f1: ldloc.s 29 (System.Int32)
L_05f3: ldc.i4.1
L_05f4: add
L_05f5: stloc.s 29 (System.Int32)
L_05f7: Label #41
L_05f7: ldloc.s 29 (System.Int32)
L_05f9: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05fb: callvirt Int32 get_Count()
L_0600: blt Label #42
L_0605: Label #40
L_0605: ldarg.1
L_0606: ldarg.0
L_0607: ldfld Verse.Pawn pawn
L_060c: ldarg.s 7
L_0611: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0616: stloc.s 30 (UnityEngine.Vector3)
L_0618: ldloca.s 30 (UnityEngine.Vector3)
L_061a: dup
L_061b: ldfld System.Single y
L_0620: ldc.r4 0.04296875
L_0625: add
L_0626: stfld System.Single y
L_062b: ldarg.0
L_062c: ldfld Verse.PawnHeadOverlays statusOverlays
L_0631: ldloc.s 30 (UnityEngine.Vector3)
L_0633: ldarg.2
L_0634: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_0639: ldarg.s 5
L_063b: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0640: callvirt Void RenderStatusOverlays(Vector3, Quaternion, UnityEngine.Mesh)
L_0645: Label #39
L_0645: br Label #0
L_064a: Label #0
L_064a: ret
DONE

PATCHING Verse.PawnGenerator Verse.Pawn GeneratePawn(PawnGenerationRequest)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Pawn
L_0000: ldnull
L_0001: stloc 1 (Verse.Pawn)
L_0002: ldarg.0
L_0003: call Verse.Pawn GeneratePawnInternal(PawnGenerationRequest)
L_0008: stloc.0
L_0009: leave Label #2
L_000e: endfinally
L_000f: Label #2
L_000f: ldloc.0
L_0010: br Label #0
L_0015: Label #0
L_0015: stloc 1 (Verse.Pawn)
L_0016: ldarga 0
L_001c: ldloca 1 (Verse.Pawn)
L_001e: call Void _GeneratePawn(PawnGenerationRequest ByRef, Verse.Pawn ByRef)
L_0023: ldloc 1 (Verse.Pawn)
L_0024: ret
DONE

PATCHING RimWorld.JobGiver_OptimizeApparel Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 RimWorld.Outfit
L_0000: Local var #1 System.Collections.Generic.List`1[[RimWorld.Apparel, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 System.Int32
L_0000: Local var #3 Verse.AI.Job
L_0000: Local var #4 Verse.Thing
L_0000: Local var #5 System.Single
L_0000: Local var #6 System.Collections.Generic.List`1[[Verse.Thing, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #7 System.Int32
L_0000: Local var #8 RimWorld.Apparel
L_0000: Local var #9 RimWorld.SlotGroup
L_0000: Local var #10 System.Single
L_0000: Local var #11 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 11 (Verse.AI.Job)
L_0003: ldarg.1
L_0004: ldfld RimWorld.Pawn_OutfitTracker outfits
L_0009: brtrue Label #2
L_000e: ldarg.1
L_000f: ldstr " tried to run JobGiver_OptimizeApparel without an OutfitTracker"
L_0014: call System.String Concat(System.Object, System.Object)
L_0019: ldc.i4 5643897
L_001e: call Void ErrorOnce(System.String, Int32)
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: ldarg.1
L_002a: callvirt RimWorld.Faction get_Faction()
L_002f: call RimWorld.Faction get_OfPlayer()
L_0034: beq Label #3
L_0039: ldstr "Non-colonist "
L_003e: ldarg.1
L_003f: ldstr " tried to optimize apparel."
L_0044: call System.String Concat(System.Object, System.Object, System.Object)
L_0049: ldc.i4 764323
L_004e: call Void ErrorOnce(System.String, Int32)
L_0053: ldnull
L_0054: br Label #0
L_0059: Label #3
L_0059: ldsfld System.Boolean debugApparelOptimize
L_005e: brtrue Label #4
L_0063: call Verse.TickManager get_TickManager()
L_0068: callvirt Int32 get_TicksGame()
L_006d: ldarg.1
L_006e: ldfld Verse.AI.Pawn_MindState mindState
L_0073: ldfld System.Int32 nextApparelOptimizeTick
L_0078: bge Label #5
L_007d: ldnull
L_007e: br Label #0
L_0083: Label #5
L_0083: br Label #6
L_0088: Label #4
L_0088: newobj Void .ctor()
L_008d: stsfld System.Text.StringBuilder debugSb
L_0092: ldsfld System.Text.StringBuilder debugSb
L_0097: ldc.i4.4
L_0098: newarr System.Object
L_009d: dup
L_009e: ldc.i4.0
L_009f: ldstr "Scanning for "
L_00a4: stelem.ref
L_00a5: dup
L_00a6: ldc.i4.1
L_00a7: ldarg.1
L_00a8: stelem.ref
L_00a9: dup
L_00aa: ldc.i4.2
L_00ab: ldstr " at "
L_00b0: stelem.ref
L_00b1: dup
L_00b2: ldc.i4.3
L_00b3: ldarg.1
L_00b4: callvirt IntVec3 get_Position()
L_00b9: box Verse.IntVec3
L_00be: stelem.ref
L_00bf: call System.String Concat(System.Object[])
L_00c4: callvirt System.Text.StringBuilder AppendLine(System.String)
L_00c9: pop
L_00ca: Label #6
L_00ca: ldarg.1
L_00cb: ldfld RimWorld.Pawn_OutfitTracker outfits
L_00d0: callvirt RimWorld.Outfit get_CurrentOutfit()
L_00d5: stloc.0
L_00d6: ldarg.1
L_00d7: ldfld RimWorld.Pawn_ApparelTracker apparel
L_00dc: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_00e1: stloc.1
L_00e2: ldloc.1
L_00e3: callvirt Int32 get_Count()
L_00e8: ldc.i4.1
L_00e9: sub
L_00ea: stloc.2
L_00eb: br Label #7
L_00f0: Label #10
L_00f0: ldloc.0
L_00f1: ldfld Verse.ThingFilter filter
L_00f6: ldloc.1
L_00f7: ldloc.2
L_00f8: callvirt RimWorld.Apparel get_Item(Int32)
L_00fd: callvirt Boolean Allows(Verse.Thing)
L_0102: brtrue Label #8
L_0107: ldarg.1
L_0108: ldfld RimWorld.Pawn_OutfitTracker outfits
L_010d: ldfld RimWorld.OutfitForcedHandler forcedHandler
L_0112: ldloc.1
L_0113: ldloc.2
L_0114: callvirt RimWorld.Apparel get_Item(Int32)
L_0119: callvirt Boolean AllowedToAutomaticallyDrop(RimWorld.Apparel)
L_011e: brfalse Label #9
L_0123: ldsfld Verse.JobDef RemoveApparel
L_0128: ldloc.1
L_0129: ldloc.2
L_012a: callvirt RimWorld.Apparel get_Item(Int32)
L_012f: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0134: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0139: stloc.3
L_013a: ldloc.3
L_013b: ldc.i4.1
L_013c: stfld System.Boolean haulDroppedApparel
L_0141: ldloc.3
L_0142: br Label #0
L_0147: Label #8
L_0147: Label #9
L_0147: ldloc.2
L_0148: ldc.i4.1
L_0149: sub
L_014a: stloc.2
L_014b: Label #7
L_014b: ldloc.2
L_014c: ldc.i4.0
L_014d: bge Label #10
L_0152: ldnull
L_0153: stloc.s 4 (Verse.Thing)
L_0155: ldc.r4 0
L_015a: stloc.s 5 (System.Single)
L_015c: ldarg.1
L_015d: callvirt Verse.Map get_Map()
L_0162: ldfld Verse.ListerThings listerThings
L_0167: ldc.i4.s 26
L_0169: callvirt System.Collections.Generic.List`1[Verse.Thing]
ThingsInGroup(ThingRequestGroup)
L_016e: stloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0170: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0172: callvirt Int32 get_Count()
L_0177: brtrue Label #11
L_017c: ldarg.0
L_017d: ldarg.1
L_017e: call Void SetNextOptimizeTick(Verse.Pawn)
L_0183: ldnull
L_0184: br Label #0
L_0189: Label #11
L_0189: ldarg.1
L_018a: ldarg.1
L_018b: callvirt Verse.Map get_Map()
L_0190: callvirt Int32 get_Tile()
L_0195: ldarg.1
L_0196: call Twelfth Twelfth(Verse.Thing)
L_019b: call NeededWarmth CalculateNeededWarmth(Verse.Pawn, Int32, Twelfth)
L_01a0: stsfld RimWorld.NeededWarmth neededWarmth
L_01a5: ldc.i4.0
L_01a6: stloc.s 7 (System.Int32)
L_01a8: br Label #12
L_01ad: Label #27
L_01ad: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_01af: ldloc.s 7 (System.Int32)
L_01b1: callvirt Verse.Thing get_Item(Int32)
L_01b6: castclass RimWorld.Apparel
L_01bb: stloc.s 8 (RimWorld.Apparel)
L_01bd: ldloc.0
L_01be: ldfld Verse.ThingFilter filter
L_01c3: ldloc.s 8 (RimWorld.Apparel)
L_01c5: callvirt Boolean Allows(Verse.Thing)
L_01ca: brtrue Label #13
L_01cf: br Label #14
L_01d4: Label #13
L_01d4: ldloc.s 8 (RimWorld.Apparel)
L_01d6: callvirt Verse.Map get_Map()
L_01db: ldfld RimWorld.SlotGroupManager slotGroupManager
L_01e0: ldloc.s 8 (RimWorld.Apparel)
L_01e2: callvirt IntVec3 get_Position()
L_01e7: callvirt RimWorld.SlotGroup SlotGroupAt(IntVec3)
L_01ec: stloc.s 9 (RimWorld.SlotGroup)
L_01ee: ldloc.s 9 (RimWorld.SlotGroup)
L_01f0: brtrue Label #15
L_01f5: br Label #16
L_01fa: Label #15
L_01fa: ldloc.s 8 (RimWorld.Apparel)
L_01fc: ldarg.1
L_01fd: call Boolean IsForbidden(Verse.Thing, Verse.Pawn)
L_0202: brfalse Label #17
L_0207: br Label #18
L_020c: Label #17
L_020c: ldarg.1
L_020d: ldloc.s 8 (RimWorld.Apparel)
L_020f: call Single ApparelScoreGain(Verse.Pawn, RimWorld.Apparel)
L_0214: stloc.s 10 (System.Single)
L_0216: ldsfld System.Boolean debugApparelOptimize
L_021b: brfalse Label #19
L_0220: ldsfld System.Text.StringBuilder debugSb
L_0225: ldloc.s 8 (RimWorld.Apparel)
L_0227: callvirt System.String get_LabelCap()
L_022c: ldstr ": "
L_0231: ldloca.s 10 (System.Single)
L_0233: ldstr "F2"
L_0238: call System.String ToString(System.String)
L_023d: call System.String Concat(System.String, System.String, System.String)
L_0242: callvirt System.Text.StringBuilder AppendLine(System.String)
L_0247: pop
L_0248: Label #19
L_0248: ldloc.s 10 (System.Single)
L_024a: ldc.r4 0.05
L_024f: blt Label #20
L_0254: ldloc.s 10 (System.Single)
L_0256: ldloc.s 5 (System.Single)
L_0258: bge.un Label #21
L_025d: Label #20
L_025d: br Label #22
L_0262: Label #21
L_0262: ldarg.1
L_0263: ldloc.s 8 (RimWorld.Apparel)
L_0265: ldfld Verse.ThingDef def
L_026a: call Boolean HasPartsToWear(Verse.Pawn, Verse.ThingDef)
L_026f: brtrue Label #23
L_0274: br Label #24
L_0279: Label #23
L_0279: ldarg.1
L_027a: ldloc.s 8 (RimWorld.Apparel)
L_027c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0281: ldc.i4.1
L_0282: ldarg.1
L_0283: call Danger NormalMaxDanger(Verse.Pawn)
L_0288: ldc.i4.1
L_0289: ldc.i4.m1
L_028a: ldnull
L_028b: ldc.i4.0
L_028c: call Boolean CanReserveAndReach(Verse.Pawn, LocalTargetInfo, PathEndMode,
Danger, Int32, Int32, Verse.ReservationLayerDef, Boolean)
L_0291: brtrue Label #25
L_0296: br Label #26
L_029b: Label #25
L_029b: ldloc.s 8 (RimWorld.Apparel)
L_029d: stloc.s 4 (Verse.Thing)
L_029f: ldloc.s 10 (System.Single)
L_02a1: stloc.s 5 (System.Single)
L_02a3: Label #14
L_02a3: Label #16
L_02a3: Label #18
L_02a3: Label #22
L_02a3: Label #24
L_02a3: Label #26
L_02a3: ldloc.s 7 (System.Int32)
L_02a5: ldc.i4.1
L_02a6: add
L_02a7: stloc.s 7 (System.Int32)
L_02a9: Label #12
L_02a9: ldloc.s 7 (System.Int32)
L_02ab: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_02ad: callvirt Int32 get_Count()
L_02b2: blt Label #27
L_02b7: ldsfld System.Boolean debugApparelOptimize
L_02bc: brfalse Label #28
L_02c1: ldsfld System.Text.StringBuilder debugSb
L_02c6: ldstr "BEST: "
L_02cb: ldloc.s 4 (Verse.Thing)
L_02cd: call System.String Concat(System.Object, System.Object)
L_02d2: callvirt System.Text.StringBuilder AppendLine(System.String)
L_02d7: pop
L_02d8: ldsfld System.Text.StringBuilder debugSb
L_02dd: callvirt System.String ToString()
L_02e2: call Void Message(System.String)
L_02e7: ldnull
L_02e8: stsfld System.Text.StringBuilder debugSb
L_02ed: Label #28
L_02ed: ldloc.s 4 (Verse.Thing)
L_02ef: brtrue Label #29
L_02f4: ldarg.0
L_02f5: ldarg.1
L_02f6: call Void SetNextOptimizeTick(Verse.Pawn)
L_02fb: ldnull
L_02fc: br Label #0
L_0301: Label #29
L_0301: ldsfld Verse.JobDef Wear
L_0306: ldloc.s 4 (Verse.Thing)
L_0308: call LocalTargetInfo op_Implicit(Verse.Thing)
L_030d: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0312: br Label #0
L_0317: Label #0
L_0317: stloc 11 (Verse.AI.Job)
L_0319: ldloca 11 (Verse.AI.Job)
L_031b: ldarga 1
L_0321: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_0326: ldloc 11 (Verse.AI.Job)
L_0328: ret
DONE

PATCHING Verse.Pawn_HealthTracker Boolean ShouldBeDowned()


L_0000: Local var #0 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 0 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean get_InPainShock()
L_000c: brtrue Label #2
L_0011: ldarg.0
L_0012: ldfld Verse.PawnCapacitiesHandler capacities
L_0017: callvirt Boolean get_CanBeAwake()
L_001c: brfalse Label #3
L_0021: ldarg.0
L_0022: ldfld Verse.PawnCapacitiesHandler capacities
L_0027: ldsfld Verse.PawnCapacityDef Moving
L_002c: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0031: ldc.i4.0
L_0032: ceq
L_0034: br Label #4
L_0039: Label #2
L_0039: Label #3
L_0039: ldc.i4.1
L_003a: Label #4
L_003a: br Label #0
L_003f: Label #0
L_003f: stloc 0 (System.Boolean)
L_0040: ldarga 0
L_0046: ldloca 0 (System.Boolean)
L_0048: call Void SBD(Verse.Pawn_HealthTracker ByRef, Boolean ByRef)
L_004d: ldloc 0 (System.Boolean)
L_004e: ret
DONE

PATCHING Verse.Pawn_HealthTracker Void CheckForStateChange(Nullable`1,


Verse.Hediff)
L_0000: Local var #0 System.Single
L_0000: Local var #1 Verse.DamageInfo
L_0000: Local var #2 Verse.ThingWithComps
L_0000: ldarg.0
L_0001: call Boolean get_Dead()
L_0006: brtrue Label #2
L_000b: ldarg.0
L_000c: call Boolean ShouldBeDead()
L_0011: brfalse Label #3
L_0016: ldarg.0
L_0017: ldfld Verse.Pawn pawn
L_001c: callvirt Boolean get_Destroyed()
L_0021: brtrue Label #4
L_0026: ldarg.0
L_0027: ldfld Verse.Pawn pawn
L_002c: ldarg.1
L_002d: ldarg.2
L_002e: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_0033: Label #4
L_0033: br Label #0
L_0038: Label #3
L_0038: ldarg.0
L_0039: call Boolean get_Downed()
L_003e: brtrue Label #5
L_0043: ldarg.0
L_0044: call Boolean ShouldBeDowned()
L_0049: brfalse Label #6
L_004e: ldarg.0
L_004f: ldfld Verse.Pawn pawn
L_0054: callvirt Verse.RaceProperties get_RaceProps()
L_0059: callvirt Boolean get_Animal()
L_005e: brfalse Label #7
L_0063: ldc.r4 0.47
L_0068: br Label #8
L_006d: Label #7
L_006d: ldc.r4 0.67
L_0072: Label #8
L_0072: stloc.0
L_0073: ldarg.0
L_0074: ldfld System.Boolean forceIncap
L_0079: brtrue Label #9
L_007e: ldarga.s 1
L_0080: call Boolean get_HasValue()
L_0085: brfalse Label #10
L_008a: ldarga.s 1
L_008c: call DamageInfo get_Value()
L_0091: stloc.1
L_0092: ldloca.s 1 (Verse.DamageInfo)
L_0094: call Verse.DamageDef get_Def()
L_0099: ldfld System.Boolean externalViolence
L_009e: brfalse Label #11
L_00a3: ldarg.0
L_00a4: ldfld Verse.Pawn pawn
L_00a9: callvirt RimWorld.Faction get_Faction()
L_00ae: brfalse Label #12
L_00b3: ldarg.0
L_00b4: ldfld Verse.Pawn pawn
L_00b9: callvirt RimWorld.Faction get_Faction()
L_00be: callvirt Boolean get_IsPlayer()
L_00c3: brtrue Label #13
L_00c8: br Label #13
L_00cd: Label #12
L_00cd: ldarg.0
L_00ce: ldfld Verse.Pawn pawn
L_00d3: callvirt Boolean get_IsPrisonerOfColony()
L_00d8: brtrue Label #14
L_00dd: ldarg.0
L_00de: ldfld Verse.Pawn pawn
L_00e3: callvirt Verse.RaceProperties get_RaceProps()
L_00e8: callvirt Boolean get_IsFlesh()
L_00ed: brfalse Label #15
L_00f2: call Single get_Value()
L_00f7: ldloc.0
L_00f8: bge.un Label #16
L_00fd: ldarg.0
L_00fe: ldfld Verse.Pawn pawn
L_0103: ldarg.1
L_0104: ldnull
L_0105: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_010a: br Label #0
L_010f: Label #9
L_010f: Label #10
L_010f: Label #11
L_010f: Label #13
L_010f: Label #14
L_010f: Label #15
L_010f: Label #16
L_010f: ldarg.0
L_0110: ldc.i4.0
L_0111: stfld System.Boolean forceIncap
L_0116: ldarg.0
L_0117: ldarg.1
L_0118: ldarg.2
L_0119: call Void MakeDowned(Nullable`1, Verse.Hediff)
L_011e: br Label #0
L_0123: Label #6
L_0123: ldarg.0
L_0124: ldfld Verse.PawnCapacitiesHandler capacities
L_0129: ldsfld Verse.PawnCapacityDef Manipulation
L_012e: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0133: brtrue Label #17
L_0138: ldarg.0
L_0139: ldfld Verse.Pawn pawn
L_013e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0143: brfalse Label #18
L_0148: ldarg.0
L_0149: ldfld Verse.Pawn pawn
L_014e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0153: callvirt Verse.Thing get_CarriedThing()
L_0158: brfalse Label #19
L_015d: ldarg.0
L_015e: ldfld Verse.Pawn pawn
L_0163: ldfld Verse.AI.Pawn_JobTracker jobs
L_0168: brfalse Label #20
L_016d: ldarg.0
L_016e: ldfld Verse.Pawn pawn
L_0173: callvirt Verse.AI.Job get_CurJob()
L_0178: brfalse Label #21
L_017d: ldarg.0
L_017e: ldfld Verse.Pawn pawn
L_0183: ldfld Verse.AI.Pawn_JobTracker jobs
L_0188: ldc.i4.5
L_0189: ldc.i4.1
L_018a: callvirt Void EndCurrentJob(JobCondition, Boolean)
L_018f: Label #18
L_018f: Label #19
L_018f: Label #20
L_018f: Label #21
L_018f: ldarg.0
L_0190: ldfld Verse.Pawn pawn
L_0195: ldfld Verse.Pawn_EquipmentTracker equipment
L_019a: brfalse Label #22
L_019f: ldarg.0
L_01a0: ldfld Verse.Pawn pawn
L_01a5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01aa: callvirt Verse.ThingWithComps get_Primary()
L_01af: brfalse Label #23
L_01b4: ldarg.0
L_01b5: ldfld Verse.Pawn pawn
L_01ba: callvirt Boolean get_InContainerEnclosed()
L_01bf: brfalse Label #24
L_01c4: ldarg.0
L_01c5: ldfld Verse.Pawn pawn
L_01ca: ldfld Verse.Pawn_EquipmentTracker equipment
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01da: callvirt Verse.ThingWithComps get_Primary()
L_01df: ldarg.0
L_01e0: ldfld Verse.Pawn pawn
L_01e5: ldfld Verse.ThingOwner holdingOwner
L_01ea: callvirt Boolean TryTransferEquipmentToContainer(Verse.ThingWithComps,
Verse.ThingOwner)
L_01ef: pop
L_01f0: br Label #25
L_01f5: Label #24
L_01f5: ldarg.0
L_01f6: ldfld Verse.Pawn pawn
L_01fb: callvirt Boolean get_SpawnedOrAnyParentSpawned()
L_0200: brfalse Label #26
L_0205: ldarg.0
L_0206: ldfld Verse.Pawn pawn
L_020b: ldfld Verse.Pawn_EquipmentTracker equipment
L_0210: ldarg.0
L_0211: ldfld Verse.Pawn pawn
L_0216: ldfld Verse.Pawn_EquipmentTracker equipment
L_021b: callvirt Verse.ThingWithComps get_Primary()
L_0220: ldloca.s 2 (Verse.ThingWithComps)
L_0222: ldarg.0
L_0223: ldfld Verse.Pawn pawn
L_0228: callvirt IntVec3 get_PositionHeld()
L_022d: ldc.i4.1
L_022e: callvirt Boolean TryDropEquipment(Verse.ThingWithComps,
Verse.ThingWithComps ByRef, IntVec3, Boolean)
L_0233: pop
L_0234: br Label #27
L_0239: Label #26
L_0239: ldarg.0
L_023a: ldfld Verse.Pawn pawn
L_023f: ldfld Verse.Pawn_EquipmentTracker equipment
L_0244: ldarg.0
L_0245: ldfld Verse.Pawn pawn
L_024a: ldfld Verse.Pawn_EquipmentTracker equipment
L_024f: callvirt Verse.ThingWithComps get_Primary()
L_0254: callvirt Void DestroyEquipment(Verse.ThingWithComps)
L_0259: Label #17
L_0259: Label #22
L_0259: Label #23
L_0259: Label #25
L_0259: Label #27
L_0259: br Label #28
L_025e: Label #5
L_025e: ldarg.0
L_025f: call Boolean ShouldBeDowned()
L_0264: brtrue Label #29
L_0269: ldarg.0
L_026a: call Void MakeUndowned()
L_026f: br Label #0
L_0274: Label #2
L_0274: Label #28
L_0274: Label #29
L_0274: br Label #0
L_0279: Label #0
L_0279: ret
DONE

PATCHING RimWorld.RestUtility Single WakeThreshold(Verse.Pawn)


L_0000: Local var #0 Verse.AI.Group.Lord
L_0000: Local var #1 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #2 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #3 System.Single
L_0000: ldc.r4 0
L_0005: stloc 3 (System.Single)
L_0006: ldarg.0
L_0007: call Verse.AI.Group.Lord GetLord(Verse.Pawn)
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldloc.0
L_0014: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0019: brfalse Label #3
L_001e: ldloc.0
L_001f: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0024: callvirt Nullable`1 get_CustomWakeThreshold()
L_0029: stloc.1
L_002a: ldloca.s 1 (System.Nullable`1[System.Single])
L_002c: call Boolean get_HasValue()
L_0031: brfalse Label #4
L_0036: ldloc.0
L_0037: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_003c: callvirt Nullable`1 get_CustomWakeThreshold()
L_0041: stloc.2
L_0042: ldloca.s 2 (System.Nullable`1[System.Single])
L_0044: call Single get_Value()
L_0049: br Label #0
L_004e: Label #2
L_004e: Label #3
L_004e: Label #4
L_004e: ldc.r4 1
L_0053: br Label #0
L_0058: Label #0
L_0058: stloc 3 (System.Single)
L_0059: ldloca 3 (System.Single)
L_005b: ldarga 0
L_0061: call Void WakeThreshold_Patch(Single ByRef, Verse.Pawn ByRef)
L_0066: ldloc 3 (System.Single)
L_0067: ret
DONE

PATCHING Verse.Verb_Shoot Boolean TryCastShot()


L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 1 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean TryCastShot()
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldarg.0
L_0014: call Boolean get_CasterIsPawn()
L_0019: brfalse Label #3
L_001e: ldarg.0
L_001f: call Verse.Pawn get_CasterPawn()
L_0024: ldfld RimWorld.Pawn_RecordsTracker records
L_0029: ldsfld RimWorld.RecordDef ShotsFired
L_002e: callvirt Void Increment(RimWorld.RecordDef)
L_0033: Label #2
L_0033: Label #3
L_0033: ldloc.0
L_0034: br Label #0
L_0039: Label #0
L_0039: stloc 1 (System.Boolean)
L_003a: ldarga 0
L_0040: call Void TryCastShot_Patch(Verse.Verb_Shoot ByRef)
L_0045: ldloc 1 (System.Boolean)
L_0046: ret
DONE

PATCHING Verse.Pawn_EquipmentTracker Void


Notify_EquipmentAdded(Verse.ThingWithComps)
L_0000: Local var #0 Verse.Verb
L_0000: Local var #1 System.Collections.Generic.List`1+Enumerator[[Verse.Verb,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: ldarg.1
L_0001: callvirt Verse.CompEquippable GetComp[CompEquippable]()
L_0006: callvirt System.Collections.Generic.List`1[Verse.Verb] get_AllVerbs()
L_000b: callvirt Enumerator GetEnumerator()
L_0010: stloc.1
L_0011: br Label #2
L_0016: Label #3
L_0016: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0018: call Verse.Verb get_Current()
L_001d: stloc.0
L_001e: ldloc.0
L_001f: ldarg.0
L_0020: ldfld Verse.Pawn pawn
L_0025: stfld Verse.Thing caster
L_002a: ldloc.0
L_002b: callvirt Void Notify_PickedUp()
L_0030: Label #2
L_0030: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0032: call Boolean MoveNext()
L_0037: brtrue Label #3
L_003c: leave Label #4
L_0041: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0043: constrained. System.Collections.Generic.List`1+Enumerator[Verse.Verb]
L_0049: callvirt Void Dispose()
L_004e: endfinally
L_004f: Label #4
L_004f: br Label #0
L_0054: Label #0
L_0054: ldarga 1
L_005a: ldarga 0
L_0060: call Void Notify_EquipmentAdded_Patch(Verse.ThingWithComps ByRef,
Verse.Pawn_EquipmentTracker ByRef)
L_0065: ret
DONE

PATCHING RimWorld.PawnWeaponGenerator Void TryGenerateWeaponFor(Verse.Pawn)


L_0000: Local var #0 System.Single
L_0000: Local var #1 System.Int32
L_0000: Local var #2
RimWorld.PawnWeaponGenerator+<TryGenerateWeaponFor>c__AnonStorey2
L_0000: Local var #3 RimWorld.ThingStuffPair
L_0000: Local var #4 Verse.ThingWithComps
L_0000: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0005: callvirt Void Clear()
L_000a: ldarg.0
L_000b: ldfld Verse.PawnKindDef kindDef
L_0010: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0015: brfalse Label #2
L_001a: ldarg.0
L_001b: ldfld Verse.PawnKindDef kindDef
L_0020: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0025: callvirt Int32 get_Count()
L_002a: brtrue Label #3
L_002f: Label #2
L_002f: br Label #0
L_0034: Label #3
L_0034: ldarg.0
L_0035: callvirt Verse.RaceProperties get_RaceProps()
L_003a: callvirt Boolean get_ToolUser()
L_003f: brtrue Label #4
L_0044: br Label #0
L_0049: Label #4
L_0049: ldarg.0
L_004a: ldfld Verse.Pawn_HealthTracker health
L_004f: ldfld Verse.PawnCapacitiesHandler capacities
L_0054: ldsfld Verse.PawnCapacityDef Manipulation
L_0059: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_005e: brtrue Label #5
L_0063: br Label #0
L_0068: Label #5
L_0068: ldarg.0
L_0069: ldfld RimWorld.Pawn_StoryTracker story
L_006e: brfalse Label #6
L_0073: ldarg.0
L_0074: ldfld RimWorld.Pawn_StoryTracker story
L_0079: ldc.i4.8
L_007a: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_007f: brfalse Label #7
L_0084: br Label #0
L_0089: Label #6
L_0089: Label #7
L_0089: ldarg.0
L_008a: ldfld Verse.PawnKindDef kindDef
L_008f: ldflda Verse.FloatRange weaponMoney
L_0094: call Single get_RandomInRange()
L_0099: stloc.0
L_009a: ldc.i4.0
L_009b: stloc.1
L_009c: br Label #8
L_00a1: Label #16
L_00a1: newobj Void .ctor()
L_00a6: stloc.2
L_00a7: ldloc.2
L_00a8: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_00ad: ldloc.1
L_00ae: callvirt ThingStuffPair get_Item(Int32)
L_00b3: stfld RimWorld.ThingStuffPair w
L_00b8: ldloc.2
L_00b9: ldflda RimWorld.ThingStuffPair w
L_00be: call Single get_Price()
L_00c3: ldloc.0
L_00c4: ble.un Label #9
L_00c9: br Label #10
L_00ce: Label #9
L_00ce: ldarg.0
L_00cf: ldfld Verse.PawnKindDef kindDef
L_00d4: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_00d9: ldloc.2
L_00da: ldftn Boolean <>m__0(System.String)
L_00e0: newobj Void .ctor(Object, IntPtr)
L_00e5: call Boolean Any[String](System.Collections.Generic.List`1[System.String],
System.Predicate`1[System.String])
L_00ea: brtrue Label #11
L_00ef: br Label #12
L_00f4: Label #11
L_00f4: ldloc.2
L_00f5: ldflda RimWorld.ThingStuffPair w
L_00fa: ldfld Verse.ThingDef thing
L_00ff: ldfld System.Single generateAllowChance
L_0104: ldc.r4 1
L_0109: bge.un Label #13
L_010e: ldarg.0
L_010f: ldfld System.Int32 thingIDNumber
L_0114: ldc.i4 28554824
L_0119: xor
L_011a: call Single ValueSeeded(Int32)
L_011f: ldloc.2
L_0120: ldflda RimWorld.ThingStuffPair w
L_0125: ldfld Verse.ThingDef thing
L_012a: ldfld System.Single generateAllowChance
L_012f: ble.un Label #14
L_0134: br Label #15
L_0139: Label #13
L_0139: Label #14
L_0139: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_013e: ldloc.2
L_013f: ldfld RimWorld.ThingStuffPair w
L_0144: callvirt Void Add(ThingStuffPair)
L_0149: Label #10
L_0149: Label #12
L_0149: Label #15
L_0149: ldloc.1
L_014a: ldc.i4.1
L_014b: add
L_014c: stloc.1
L_014d: Label #8
L_014d: ldloc.1
L_014e: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_0153: callvirt Int32 get_Count()
L_0158: blt Label #16
L_015d: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0162: callvirt Int32 get_Count()
L_0167: brtrue Label #17
L_016c: br Label #0
L_0171: ldarg.0
L_0172: ldloc.2
L_0173: callvirt System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
FilterChildWeapons(Verse.Pawn,
System.Collections.Generic.List`1[RimWorld.ThingStuffPair])
L_0178: stloc.2
L_0179: Label #17
L_0179: ldarg.0
L_017a: ldfld Verse.Pawn_EquipmentTracker equipment
L_017f: ldc.i4.0
L_0180: callvirt Void DestroyAllEquipment(DestroyMode)
L_0185: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_018a: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_018f: brtrue Label #18
L_0194: ldnull
L_0195: ldftn Single <TryGenerateWeaponFor>m__2(ThingStuffPair)
L_019b: newobj Void .ctor(Object, IntPtr)
L_01a0: stsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01a5: Label #18
L_01a5: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01aa: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01ac: call Boolean TryRandomElementByWeight[ThingStuffPair](IEnumerable`1,
System.Func`2[RimWorld.ThingStuffPair,System.Single], ThingStuffPair ByRef)
L_01b1: brfalse Label #19
L_01b6: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01b8: ldfld Verse.ThingDef thing
L_01bd: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01bf: ldfld Verse.ThingDef stuff
L_01c4: call Verse.Thing MakeThing(Verse.ThingDef, Verse.ThingDef)
L_01c9: castclass Verse.ThingWithComps
L_01ce: stloc.s 4 (Verse.ThingWithComps)
L_01d0: ldloc.s 4 (Verse.ThingWithComps)
L_01d2: ldarg.0
L_01d3: call Void PostProcessGeneratedGear(Verse.Thing, Verse.Pawn)
L_01d8: ldarg.0
L_01d9: ldfld Verse.Pawn_EquipmentTracker equipment
L_01de: ldloc.s 4 (Verse.ThingWithComps)
L_01e0: callvirt Void AddEquipment(Verse.ThingWithComps)
L_01e5: Label #19
L_01e5: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_01ea: callvirt Void Clear()
L_01ef: br Label #0
L_01f4: Label #0
L_01f4: ret
DONE

PATCHING RimWorld.Bill_Medical Void Notify_DoBillStarted(Verse.Pawn)


L_0000: Local var #0 System.Collections.Generic.List`1[[Verse.ThingStackPartClass,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #1 System.Int32
L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void Notify_DoBillStarted(Verse.Pawn)
L_0007: ldarg.0
L_0008: ldnull
L_0009: stfld Verse.ThingDef consumedInitialMedicineDef
L_000e: ldarg.0
L_000f: call Verse.Pawn get_GiverPawn()
L_0014: callvirt Boolean get_Dead()
L_0019: brtrue Label #2
L_001e: ldarg.0
L_001f: ldfld Verse.RecipeDef recipe
L_0024: call Boolean RecipeHasNoIngredients(Verse.RecipeDef)
L_0029: brtrue Label #2
L_002e: ldarg.0
L_002f: ldfld Verse.RecipeDef recipe
L_0034: ldfld System.Boolean anesthetize
L_0039: brfalse Label #3
L_003e: ldarg.0
L_003f: call Verse.Pawn get_GiverPawn()
L_0044: call Boolean TryAnesthetize(Verse.Pawn)
L_0049: brfalse Label #4
L_004e: ldarg.1
L_004f: callvirt Verse.AI.Job get_CurJob()
L_0054: ldfld System.Collections.Generic.List`1[Verse.ThingStackPartClass]
placedThings
L_0059: stloc.0
L_005a: ldc.i4.0
L_005b: stloc.1
L_005c: br Label #5
L_0061: Label #10
L_0061: ldloc.0
L_0062: ldloc.1
L_0063: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0068: ldfld Verse.Thing thing
L_006d: isinst RimWorld.Medicine
L_0072: brfalse Label #6
L_0077: ldarg.0
L_0078: ldfld Verse.RecipeDef recipe
L_007d: callvirt Verse.RecipeWorker get_Worker()
L_0082: ldloc.0
L_0083: ldloc.1
L_0084: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0089: ldfld Verse.Thing thing
L_008e: ldc.i4.1
L_008f: callvirt Verse.Thing SplitOff(Int32)
L_0094: ldarg.0
L_0095: ldfld Verse.RecipeDef recipe
L_009a: ldarg.1
L_009b: callvirt Verse.Map get_MapHeld()
L_00a0: callvirt Void ConsumeIngredient(Verse.Thing, Verse.RecipeDef, Verse.Map)
L_00a5: ldloc.0
L_00a6: ldloc.1
L_00a7: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ac: dup
L_00ad: callvirt Int32 get_Count()
L_00b2: ldc.i4.1
L_00b3: sub
L_00b4: callvirt Void set_Count(Int32)
L_00b9: ldarg.0
L_00ba: ldloc.0
L_00bb: ldloc.1
L_00bc: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00c1: ldfld Verse.Thing thing
L_00c6: ldfld Verse.ThingDef def
L_00cb: stfld Verse.ThingDef consumedInitialMedicineDef
L_00d0: ldloc.0
L_00d1: ldloc.1
L_00d2: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00d7: ldfld Verse.Thing thing
L_00dc: callvirt Boolean get_Destroyed()
L_00e1: brtrue Label #7
L_00e6: ldloc.0
L_00e7: ldloc.1
L_00e8: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ed: callvirt Int32 get_Count()
L_00f2: ldc.i4.0
L_00f3: bgt Label #8
L_00f8: Label #7
L_00f8: ldloc.0
L_00f9: ldloc.1
L_00fa: callvirt Void RemoveAt(Int32)
L_00ff: Label #8
L_00ff: br Label #9
L_0104: Label #6
L_0104: ldloc.1
L_0105: ldc.i4.1
L_0106: add
L_0107: stloc.1
L_0108: Label #5
L_0108: ldloc.1
L_0109: ldloc.0
L_010a: callvirt Int32 get_Count()
L_010f: blt Label #10
L_0114: Label #2
L_0114: Label #3
L_0114: Label #4
L_0114: Label #9
L_0114: br Label #0
L_0119: Label #0
L_0119: ret
DONE

PATCHING RimWorld.Building_Bed IEnumerable`1 get_AssigningCandidates()


L_0000: ldarg.0
L_0001: callvirt IEnumerable`1 BedCandidates(RimWorld.Building_Bed)
L_0006: Label #0
L_0006: ret
DONE

PATCHING RimWorld.RestUtility RimWorld.Building_Bed FindBedFor(Verse.Pawn,


Verse.Pawn, Boolean, Boolean, Boolean)
L_0000: Local var #0 RimWorld.RestUtility+<FindBedFor>c__AnonStorey0
L_0000: Local var #1 RimWorld.Building_Bed
L_0000: Local var #2 Verse.Pawn
L_0000: Local var #3 Verse.Pawn
L_0000: Local var #4 System.Boolean
L_0000: Local var #5 System.Boolean
L_0000: Local var #6 System.Boolean
L_0000: Local var #7 System.Int32
L_0000: Local var #8 Verse.ThingDef
L_0000: Local var #9 System.Int32
L_0000: Local var #10 RimWorld.RestUtility+<FindBedFor>c__AnonStorey1
L_0000: Local var #11 RimWorld.Building_Bed
L_0000: Local var #12 RimWorld.DirectPawnRelation
L_0000: Local var #13 RimWorld.Building_Bed
L_0000: Local var #14 System.Int32
L_0000: Local var #15 RimWorld.RestUtility+<FindBedFor>c__AnonStorey2
L_0000: Local var #16 System.Int32
L_0000: Local var #17 Verse.ThingDef
L_0000: Local var #18 RimWorld.Building_Bed
L_0000: Local var #19 RimWorld.Building_Bed
L_0000: ldnull
L_0001: stloc 19 (RimWorld.Building_Bed)
L_0003: newobj Void .ctor()
L_0008: stloc.0
L_0009: ldloc.0
L_000a: ldarg.0
L_000b: stfld Verse.Pawn sleeper
L_0010: ldloc.0
L_0011: ldarg.1
L_0012: stfld Verse.Pawn traveler
L_0017: ldloc.0
L_0018: ldarg.2
L_0019: stfld System.Boolean sleeperWillBePrisoner
L_001e: ldloc.0
L_001f: ldarg.3
L_0020: stfld System.Boolean checkSocialProperness
L_0025: ldloc.0
L_0026: ldarg.s 4
L_0028: stfld System.Boolean ignoreOtherReservations
L_002d: ldloc.0
L_002e: ldfld Verse.Pawn sleeper
L_0033: call Boolean ShouldSeekMedicalRest(Verse.Pawn)
L_0038: brfalse Label #2
L_003d: ldloc.0
L_003e: ldfld Verse.Pawn sleeper
L_0043: call Boolean InBed(Verse.Pawn)
L_0048: brfalse Label #3
L_004d: ldloc.0
L_004e: ldfld Verse.Pawn sleeper
L_0053: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0058: callvirt Boolean get_Medical()
L_005d: brfalse Label #4
L_0062: ldloc.0
L_0063: ldfld Verse.Pawn sleeper
L_0068: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_006d: stloc.1
L_006e: ldloc.0
L_006f: ldfld Verse.Pawn sleeper
L_0074: stloc.2
L_0075: ldloc.0
L_0076: ldfld Verse.Pawn traveler
L_007b: stloc.3
L_007c: ldloc.0
L_007d: ldfld System.Boolean sleeperWillBePrisoner
L_0082: stloc.s 4 (System.Boolean)
L_0084: ldloc.0
L_0085: ldfld System.Boolean checkSocialProperness
L_008a: stloc.s 5 (System.Boolean)
L_008c: ldloc.0
L_008d: ldfld System.Boolean ignoreOtherReservations
L_0092: stloc.s 6 (System.Boolean)
L_0094: ldloc.1
L_0095: ldloc.2
L_0096: ldloc.3
L_0097: ldloc.s 4 (System.Boolean)
L_0099: ldloc.s 5 (System.Boolean)
L_009b: ldc.i4.0
L_009c: ldloc.s 6 (System.Boolean)
L_009e: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_00a3: brfalse Label #5
L_00a8: ldloc.0
L_00a9: ldfld Verse.Pawn sleeper
L_00ae: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00b3: br Label #0
L_00b8: Label #3
L_00b8: Label #4
L_00b8: Label #5
L_00b8: ldc.i4.0
L_00b9: stloc.s 7 (System.Int32)
L_00bb: br Label #6
L_00c0: Label #14
L_00c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_00c5: ldloc.s 7 (System.Int32)
L_00c7: callvirt Verse.ThingDef get_Item(Int32)
L_00cc: stloc.s 8 (Verse.ThingDef)
L_00ce: ldloc.0
L_00cf: ldfld Verse.Pawn sleeper
L_00d4: ldloc.s 8 (Verse.ThingDef)
L_00d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_00db: brtrue Label #7
L_00e0: br Label #8
L_00e5: Label #7
L_00e5: ldc.i4.0
L_00e6: stloc.s 9 (System.Int32)
L_00e8: br Label #9
L_00ed: Label #13
L_00ed: newobj Void .ctor()
L_00f2: stloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f4: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f6: ldloc.0
L_00f7: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_00fc: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00fe: ldloc.s 9 (System.Int32)
L_0100: brtrue Label #10
L_0105: ldc.i4.1
L_0106: br Label #11
L_010b: Label #10
L_010b: ldc.i4.3
L_010c: Label #11
L_010c: stfld Verse.Danger maxDanger
L_0111: ldloc.0
L_0112: ldfld Verse.Pawn sleeper
L_0117: callvirt IntVec3 get_Position()
L_011c: ldloc.0
L_011d: ldfld Verse.Pawn sleeper
L_0122: callvirt Verse.Map get_Map()
L_0127: ldloc.s 8 (Verse.ThingDef)
L_0129: call ThingRequest ForDef(Verse.ThingDef)
L_012e: ldc.i4.1
L_012f: ldloc.0
L_0130: ldfld Verse.Pawn traveler
L_0135: ldc.i4.3
L_0136: ldc.i4.0
L_0137: ldc.i4.0
L_0138: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_013d: ldc.r4 9999
L_0142: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_0144: ldftn Boolean <>m__0(Verse.Thing)
L_014a: newobj Void .ctor(Object, IntPtr)
L_014f: ldnull
L_0150: ldc.i4.0
L_0151: ldc.i4.m1
L_0152: ldc.i4.0
L_0153: ldc.i4.6
L_0154: ldc.i4.0
L_0155: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_015a: castclass RimWorld.Building_Bed
L_015f: stloc.s 11 (RimWorld.Building_Bed)
L_0161: ldloc.s 11 (RimWorld.Building_Bed)
L_0163: brfalse Label #12
L_0168: ldloc.s 11 (RimWorld.Building_Bed)
L_016a: br Label #0
L_016f: Label #12
L_016f: ldloc.s 9 (System.Int32)
L_0171: ldc.i4.1
L_0172: add
L_0173: stloc.s 9 (System.Int32)
L_0175: Label #9
L_0175: ldloc.s 9 (System.Int32)
L_0177: ldc.i4.2
L_0178: blt Label #13
L_017d: Label #8
L_017d: ldloc.s 7 (System.Int32)
L_017f: ldc.i4.1
L_0180: add
L_0181: stloc.s 7 (System.Int32)
L_0183: Label #6
L_0183: ldloc.s 7 (System.Int32)
L_0185: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_018a: callvirt Int32 get_Count()
L_018f: blt Label #14
L_0194: Label #2
L_0194: ldloc.0
L_0195: ldfld Verse.Pawn sleeper
L_019a: ldfld RimWorld.Pawn_Ownership ownership
L_019f: brfalse Label #15
L_01a4: ldloc.0
L_01a5: ldfld Verse.Pawn sleeper
L_01aa: ldfld RimWorld.Pawn_Ownership ownership
L_01af: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01b4: brfalse Label #16
L_01b9: ldloc.0
L_01ba: ldfld Verse.Pawn sleeper
L_01bf: ldfld RimWorld.Pawn_Ownership ownership
L_01c4: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01c9: stloc.1
L_01ca: ldloc.0
L_01cb: ldfld Verse.Pawn sleeper
L_01d0: stloc.3
L_01d1: ldloc.0
L_01d2: ldfld Verse.Pawn traveler
L_01d7: stloc.2
L_01d8: ldloc.0
L_01d9: ldfld System.Boolean sleeperWillBePrisoner
L_01de: stloc.s 6 (System.Boolean)
L_01e0: ldloc.0
L_01e1: ldfld System.Boolean checkSocialProperness
L_01e6: stloc.s 5 (System.Boolean)
L_01e8: ldloc.0
L_01e9: ldfld System.Boolean ignoreOtherReservations
L_01ee: stloc.s 4 (System.Boolean)
L_01f0: ldloc.1
L_01f1: ldloc.3
L_01f2: ldloc.2
L_01f3: ldloc.s 6 (System.Boolean)
L_01f5: ldloc.s 5 (System.Boolean)
L_01f7: ldc.i4.0
L_01f8: ldloc.s 4 (System.Boolean)
L_01fa: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_01ff: brfalse Label #17
L_0204: ldloc.0
L_0205: ldfld Verse.Pawn sleeper
L_020a: ldfld RimWorld.Pawn_Ownership ownership
L_020f: callvirt RimWorld.Building_Bed get_OwnedBed()
L_0214: br Label #0
L_0219: Label #15
L_0219: Label #16
L_0219: Label #17
L_0219: ldloc.0
L_021a: ldfld Verse.Pawn sleeper
L_021f: ldc.i4.0
L_0220: call RimWorld.DirectPawnRelation
ExistingMostLikedLovePartnerRel(Verse.Pawn, Boolean)
L_0225: stloc.s 12 (RimWorld.DirectPawnRelation)
L_0227: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0229: brfalse Label #18
L_022e: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0230: ldfld Verse.Pawn otherPawn
L_0235: ldfld RimWorld.Pawn_Ownership ownership
L_023a: callvirt RimWorld.Building_Bed get_OwnedBed()
L_023f: stloc.s 13 (RimWorld.Building_Bed)
L_0241: ldloc.s 13 (RimWorld.Building_Bed)
L_0243: brfalse Label #19
L_0248: ldloc.s 13 (RimWorld.Building_Bed)
L_024a: stloc.1
L_024b: ldloc.0
L_024c: ldfld Verse.Pawn sleeper
L_0251: stloc.2
L_0252: ldloc.0
L_0253: ldfld Verse.Pawn traveler
L_0258: stloc.3
L_0259: ldloc.0
L_025a: ldfld System.Boolean sleeperWillBePrisoner
L_025f: stloc.s 4 (System.Boolean)
L_0261: ldloc.0
L_0262: ldfld System.Boolean checkSocialProperness
L_0267: stloc.s 5 (System.Boolean)
L_0269: ldloc.0
L_026a: ldfld System.Boolean ignoreOtherReservations
L_026f: stloc.s 6 (System.Boolean)
L_0271: ldloc.1
L_0272: ldloc.2
L_0273: ldloc.3
L_0274: ldloc.s 4 (System.Boolean)
L_0276: ldloc.s 5 (System.Boolean)
L_0278: ldc.i4.0
L_0279: ldloc.s 6 (System.Boolean)
L_027b: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_0280: brfalse Label #20
L_0285: ldloc.s 13 (RimWorld.Building_Bed)
L_0287: br Label #0
L_028c: Label #18
L_028c: Label #19
L_028c: Label #20
L_028c: ldc.i4.0
L_028d: stloc.s 14 (System.Int32)
L_028f: br Label #21
L_0294: Label #29
L_0294: newobj Void .ctor()
L_0299: stloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029b: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029d: ldloc.0
L_029e: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_02a3: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_02a5: ldloc.s 14 (System.Int32)
L_02a7: brtrue Label #22
L_02ac: ldc.i4.1
L_02ad: br Label #23
L_02b2: Label #22
L_02b2: ldc.i4.3
L_02b3: Label #23
L_02b3: stfld Verse.Danger maxDanger
L_02b8: ldc.i4.0
L_02b9: stloc.s 16 (System.Int32)
L_02bb: br Label #24
L_02c0: Label #28
L_02c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_02c5: ldloc.s 16 (System.Int32)
L_02c7: callvirt Verse.ThingDef get_Item(Int32)
L_02cc: stloc.s 17 (Verse.ThingDef)
L_02ce: ldloc.0
L_02cf: ldfld Verse.Pawn sleeper
L_02d4: ldloc.s 17 (Verse.ThingDef)
L_02d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_02db: brtrue Label #25
L_02e0: br Label #26
L_02e5: Label #25
L_02e5: ldloc.0
L_02e6: ldfld Verse.Pawn sleeper
L_02eb: callvirt IntVec3 get_Position()
L_02f0: ldloc.0
L_02f1: ldfld Verse.Pawn sleeper
L_02f6: callvirt Verse.Map get_Map()
L_02fb: ldloc.s 17 (Verse.ThingDef)
L_02fd: call ThingRequest ForDef(Verse.ThingDef)
L_0302: ldc.i4.1
L_0303: ldloc.0
L_0304: ldfld Verse.Pawn traveler
L_0309: ldc.i4.3
L_030a: ldc.i4.0
L_030b: ldc.i4.0
L_030c: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_0311: ldc.r4 9999
L_0316: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_0318: ldftn Boolean <>m__0(Verse.Thing)
L_031e: newobj Void .ctor(Object, IntPtr)
L_0323: ldnull
L_0324: ldc.i4.0
L_0325: ldc.i4.m1
L_0326: ldc.i4.0
L_0327: ldc.i4.6
L_0328: ldc.i4.0
L_0329: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_032e: castclass RimWorld.Building_Bed
L_0333: stloc.s 18 (RimWorld.Building_Bed)
L_0335: ldloc.s 18 (RimWorld.Building_Bed)
L_0337: brfalse Label #27
L_033c: ldloc.s 18 (RimWorld.Building_Bed)
L_033e: br Label #0
L_0343: Label #26
L_0343: Label #27
L_0343: ldloc.s 16 (System.Int32)
L_0345: ldc.i4.1
L_0346: add
L_0347: stloc.s 16 (System.Int32)
L_0349: Label #24
L_0349: ldloc.s 16 (System.Int32)
L_034b: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_0350: callvirt Int32 get_Count()
L_0355: blt Label #28
L_035a: ldloc.s 14 (System.Int32)
L_035c: ldc.i4.1
L_035d: add
L_035e: stloc.s 14 (System.Int32)
L_0360: Label #21
L_0360: ldloc.s 14 (System.Int32)
L_0362: ldc.i4.2
L_0363: blt Label #29
L_0368: ldnull
L_0369: br Label #0
L_036e: Label #0
L_036e: stloc 19 (RimWorld.Building_Bed)
L_0370: ldarga 0
L_0376: ldloca 19 (RimWorld.Building_Bed)
L_0378: ldarga 1
L_037e: ldarga 4
L_0384: ldarga 2
L_038a: ldarga 3
L_0390: call Void FindBedFor_Patch(Verse.Pawn ByRef, RimWorld.Building_Bed ByRef,
Verse.Pawn ByRef, Boolean ByRef, Boolean ByRef, Boolean ByRef)
L_0395: ldloc 19 (RimWorld.Building_Bed)
L_0397: ret
DONE

PATCHING RimWorld.JobGiver_DoLovin Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 1 (Verse.AI.Job)
L_0002: call Verse.TickManager get_TickManager()
L_0007: callvirt Int32 get_TicksGame()
L_000c: ldarg.1
L_000d: ldfld Verse.AI.Pawn_MindState mindState
L_0012: ldfld System.Int32 canLovinTick
L_0017: bge Label #2
L_001c: ldnull
L_001d: br Label #0
L_0022: Label #2
L_0022: ldarg.1
L_0023: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0028: brfalse Label #3
L_002d: ldarg.1
L_002e: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0033: callvirt Boolean get_Medical()
L_0038: brtrue Label #4
L_003d: ldarg.1
L_003e: ldfld Verse.Pawn_HealthTracker health
L_0043: ldfld Verse.PawnCapacitiesHandler capacities
L_0048: callvirt Boolean get_CanBeAwake()
L_004d: brtrue Label #5
L_0052: Label #3
L_0052: Label #4
L_0052: ldnull
L_0053: br Label #0
L_0058: Label #5
L_0058: ldarg.1
L_0059: call Verse.Pawn GetPartnerInMyBed(Verse.Pawn)
L_005e: stloc.0
L_005f: ldloc.0
L_0060: brfalse Label #6
L_0065: ldloc.0
L_0066: ldfld Verse.Pawn_HealthTracker health
L_006b: ldfld Verse.PawnCapacitiesHandler capacities
L_0070: callvirt Boolean get_CanBeAwake()
L_0075: brfalse Label #7
L_007a: call Verse.TickManager get_TickManager()
L_007f: callvirt Int32 get_TicksGame()
L_0084: ldloc.0
L_0085: ldfld Verse.AI.Pawn_MindState mindState
L_008a: ldfld System.Int32 canLovinTick
L_008f: bge Label #8
L_0094: Label #6
L_0094: Label #7
L_0094: ldnull
L_0095: br Label #0
L_009a: Label #8
L_009a: ldarg.1
L_009b: ldloc.0
L_009c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00a1: ldc.i4.1
L_00a2: ldc.i4.m1
L_00a3: ldnull
L_00a4: ldc.i4.0
L_00a5: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00aa: brfalse Label #9
L_00af: ldloc.0
L_00b0: ldarg.1
L_00b1: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00b6: ldc.i4.1
L_00b7: ldc.i4.m1
L_00b8: ldnull
L_00b9: ldc.i4.0
L_00ba: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00bf: brtrue Label #10
L_00c4: Label #9
L_00c4: ldnull
L_00c5: br Label #0
L_00ca: Label #10
L_00ca: ldsfld Verse.JobDef Lovin
L_00cf: ldloc.0
L_00d0: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00d5: ldarg.1
L_00d6: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00db: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00e0: newobj Void .ctor(JobDef, LocalTargetInfo, LocalTargetInfo)
L_00e5: br Label #0
L_00ea: Label #0
L_00ea: stloc 1 (Verse.AI.Job)
L_00eb: ldloca 1 (Verse.AI.Job)
L_00ed: ldarga 1
L_00f3: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_00f8: ldloc 1 (Verse.AI.Job)
L_00f9: ret
DONE

PATCHING RimWorld.JobDriver_Lovin+<MakeNewToils>c__Iterator0 Void <>m__4()


L_0000: Local var #0 RimWorld.Thought_Memory
L_0000: ldsfld RimWorld.ThoughtDef GotSomeLovin
L_0005: call RimWorld.Thought MakeThought(RimWorld.ThoughtDef)
L_000a: castclass RimWorld.Thought_Memory
L_000f: stloc.0
L_0010: ldarg.0
L_0011: ldfld RimWorld.JobDriver_Lovin $this
L_0016: ldfld Verse.Pawn pawn
L_001b: ldfld RimWorld.Pawn_NeedsTracker needs
L_0020: ldfld RimWorld.Need_Mood mood
L_0025: ldfld RimWorld.ThoughtHandler thoughts
L_002a: ldfld RimWorld.MemoryThoughtHandler memories
L_002f: ldloc.0
L_0030: ldarg.0
L_0031: ldfld RimWorld.JobDriver_Lovin $this
L_0036: call Verse.Pawn get_Partner()
L_003b: callvirt Void TryGainMemory(RimWorld.Thought_Memory, Verse.Pawn)
L_0040: ldarg.0
L_0041: ldfld RimWorld.JobDriver_Lovin $this
L_0046: ldfld Verse.Pawn pawn
L_004b: ldfld Verse.AI.Pawn_MindState mindState
L_0050: call Verse.TickManager get_TickManager()
L_0055: callvirt Int32 get_TicksGame()
L_005a: ldarg.0
L_005b: ldfld RimWorld.JobDriver_Lovin $this
L_0060: ldarg.0
L_0061: ldfld RimWorld.JobDriver_Lovin $this
L_0066: ldfld Verse.Pawn pawn
L_006b: call Int32 GenerateRandomMinTicksToNextLovin(Verse.Pawn)
L_0070: add
L_0071: stfld System.Int32 canLovinTick
L_0076: ldarg.0
L_0077: ldfld RimWorld.JobDriver_Lovin $this
L_007c: ldfld Verse.Pawn pawn
L_0081: ldarg.0
L_0082: ldfld RimWorld.JobDriver_Lovin $this
L_0087: call Verse.Pawn get_Partner()
L_008c: call Void TryToImpregnate(Verse.Pawn, Verse.Pawn)
L_0091: br Label #0
L_0096: Label #0
L_0096: ret
DONE

PATCHING RimWorld.JobDriver_Wear+<MakeNewToils>c__Iterator0 Boolean MoveNext()


L_0000: Local var #0 System.UInt32
L_0000: ldarg.0
L_0001: ldfld System.Int32 $PC
L_0006: stloc.0
L_0007: ldarg.0
L_0008: ldc.i4.m1
L_0009: stfld System.Int32 $PC
L_000e: ldloc.0
L_000f: switch Labels #2 #3 #4 #5
L_0024: br Label #6
L_0029: Label #2
L_0029: ldarg.0
L_002a: ldfld RimWorld.JobDriver_Wear $this
L_002f: call RimWorld.JobDriver_Wear FailOnBaby[JobDriver_Wear]
(RimWorld.JobDriver_Wear)
L_0034: pop
L_0035: ldarg.0
L_0036: newobj Void .ctor()
L_003b: stfld Verse.AI.Toil <gotoApparel>__1
L_0040: ldarg.0
L_0041: ldfld Verse.AI.Toil <gotoApparel>__1
L_0046: ldarg.0
L_0047: ldftn Void <>m__0()
L_004d: newobj Void .ctor(Object, IntPtr)
L_0052: stfld System.Action initAction
L_0057: ldarg.0
L_0058: ldfld Verse.AI.Toil <gotoApparel>__1
L_005d: ldc.i4.2
L_005e: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0063: ldarg.0
L_0064: ldfld Verse.AI.Toil <gotoApparel>__1
L_0069: ldc.i4.1
L_006a: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_006f: pop
L_0070: ldarg.0
L_0071: ldarg.0
L_0072: ldfld Verse.AI.Toil <gotoApparel>__1
L_0077: stfld Verse.AI.Toil $current
L_007c: ldarg.0
L_007d: ldfld System.Boolean $disposing
L_0082: brtrue Label #7
L_0087: ldarg.0
L_0088: ldc.i4.1
L_0089: stfld System.Int32 $PC
L_008e: Label #7
L_008e: br Label #8
L_0093: Label #3
L_0093: ldarg.0
L_0094: newobj Void .ctor()
L_0099: stfld Verse.AI.Toil <prepare>__2
L_009e: ldarg.0
L_009f: ldfld Verse.AI.Toil <prepare>__2
L_00a4: ldc.i4.3
L_00a5: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_00aa: ldarg.0
L_00ab: ldfld Verse.AI.Toil <prepare>__2
L_00b0: ldc.i4.s 60
L_00b2: stfld System.Int32 defaultDuration
L_00b7: ldarg.0
L_00b8: ldfld Verse.AI.Toil <prepare>__2
L_00bd: ldc.i4.1
L_00be: ldc.i4.0
L_00bf: ldc.r4 -0.5
L_00c4: call Verse.AI.Toil WithProgressBarToilDelay(Verse.AI.Toil, TargetIndex,
Boolean, Single)
L_00c9: pop
L_00ca: ldarg.0
L_00cb: ldfld Verse.AI.Toil <prepare>__2
L_00d0: ldc.i4.1
L_00d1: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_00d6: pop
L_00d7: ldarg.0
L_00d8: ldarg.0
L_00d9: ldfld Verse.AI.Toil <prepare>__2
L_00de: stfld Verse.AI.Toil $current
L_00e3: ldarg.0
L_00e4: ldfld System.Boolean $disposing
L_00e9: brtrue Label #9
L_00ee: ldarg.0
L_00ef: ldc.i4.2
L_00f0: stfld System.Int32 $PC
L_00f5: Label #9
L_00f5: br Label #10
L_00fa: Label #4
L_00fa: ldarg.0
L_00fb: newobj Void .ctor()
L_0100: stfld Verse.AI.Toil <wear>__3
L_0105: ldarg.0
L_0106: ldfld Verse.AI.Toil <wear>__3
L_010b: ldarg.0
L_010c: ldftn Void <>m__1()
L_0112: newobj Void .ctor(Object, IntPtr)
L_0117: stfld System.Action initAction
L_011c: ldarg.0
L_011d: ldfld Verse.AI.Toil <wear>__3
L_0122: ldc.i4.1
L_0123: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0128: ldarg.0
L_0129: ldarg.0
L_012a: ldfld Verse.AI.Toil <wear>__3
L_012f: stfld Verse.AI.Toil $current
L_0134: ldarg.0
L_0135: ldfld System.Boolean $disposing
L_013a: brtrue Label #11
L_013f: ldarg.0
L_0140: ldc.i4.3
L_0141: stfld System.Int32 $PC
L_0146: Label #11
L_0146: br Label #12
L_014b: Label #5
L_014b: ldarg.0
L_014c: ldc.i4.m1
L_014d: stfld System.Int32 $PC
L_0152: Label #6
L_0152: ldc.i4.0
L_0153: br Label #0
L_0158: Label #8
L_0158: Label #10
L_0158: Label #12
L_0158: ldc.i4.1
L_0159: br Label #0
L_015e: Label #0
L_015e: ret
DONE

PATCHING RimWorld.ThoughtUtility Boolean CanGetThought(Verse.Pawn,


RimWorld.ThoughtDef)
L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Int32
L_0000: Local var #2 System.Boolean
L_0000: Local var #3 System.Int32
L_0000: Local var #4 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 4 (System.Boolean)
L_0007: ldarg.1
L_0008: ldfld System.Boolean validWhileDespawned
L_000d: brtrue Label #2
L_0012: ldarg.0
L_0013: callvirt Boolean get_Spawned()
L_0018: brtrue Label #3
L_001d: ldarg.1
L_001e: callvirt Boolean get_IsMemory()
L_0023: brtrue Label #4
L_0028: ldc.i4.0
L_0029: stloc.0
L_002a: leave Label #5
L_002f: Label #2
L_002f: Label #3
L_002f: Label #4
L_002f: ldarg.1
L_0030: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0035: brfalse Label #6
L_003a: ldc.i4.0
L_003b: stloc.1
L_003c: br Label #7
L_0041: Label #10
L_0041: ldarg.0
L_0042: ldfld RimWorld.Pawn_StoryTracker story
L_0047: ldfld RimWorld.TraitSet traits
L_004c: ldarg.1
L_004d: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0052: ldloc.1
L_0053: callvirt RimWorld.TraitDef get_Item(Int32)
L_0058: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_005d: brfalse Label #8
L_0062: ldc.i4.0
L_0063: stloc.0
L_0064: leave Label #9
L_0069: Label #8
L_0069: ldloc.1
L_006a: ldc.i4.1
L_006b: add
L_006c: stloc.1
L_006d: Label #7
L_006d: ldloc.1
L_006e: ldarg.1
L_006f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0074: callvirt Int32 get_Count()
L_0079: blt Label #10
L_007e: Label #6
L_007e: ldarg.1
L_007f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0084: call Boolean NullOrEmpty[TraitDef](IList`1)
L_0089: brtrue Label #11
L_008e: ldc.i4.0
L_008f: stloc.2
L_0090: ldc.i4.0
L_0091: stloc.3
L_0092: br Label #12
L_0097: Label #19
L_0097: ldarg.0
L_0098: ldfld RimWorld.Pawn_StoryTracker story
L_009d: ldfld RimWorld.TraitSet traits
L_00a2: ldarg.1
L_00a3: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00a8: ldloc.3
L_00a9: callvirt RimWorld.TraitDef get_Item(Int32)
L_00ae: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_00b3: brtrue Label #13
L_00b8: leave Label #14
L_00bd: Label #13
L_00bd: ldarg.1
L_00be: callvirt Boolean get_RequiresSpecificTraitsDegree()
L_00c3: brfalse Label #15
L_00c8: ldarg.1
L_00c9: ldfld System.Int32 requiredTraitsDegree
L_00ce: ldarg.0
L_00cf: ldfld RimWorld.Pawn_StoryTracker story
L_00d4: ldfld RimWorld.TraitSet traits
L_00d9: ldarg.1
L_00da: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00df: ldloc.3
L_00e0: callvirt RimWorld.TraitDef get_Item(Int32)
L_00e5: callvirt Int32 DegreeOfTrait(RimWorld.TraitDef)
L_00ea: beq Label #16
L_00ef: leave Label #17
L_00f4: Label #15
L_00f4: Label #16
L_00f4: ldc.i4.1
L_00f5: stloc.2
L_00f6: leave Label #18
L_00fb: Label #14
L_00fb: Label #17
L_00fb: ldloc.3
L_00fc: ldc.i4.1
L_00fd: add
L_00fe: stloc.3
L_00ff: Label #12
L_00ff: ldloc.3
L_0100: ldarg.1
L_0101: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0106: callvirt Int32 get_Count()
L_010b: blt Label #19
L_0110: Label #18
L_0110: ldloc.2
L_0111: brtrue Label #20
L_0116: ldc.i4.0
L_0117: stloc.0
L_0118: leave Label #21
L_011d: Label #11
L_011d: Label #20
L_011d: ldarg.1
L_011e: ldfld System.Boolean nullifiedIfNotColonist
L_0123: brfalse Label #22
L_0128: ldarg.0
L_0129: callvirt Boolean get_IsColonist()
L_012e: brtrue Label #23
L_0133: ldc.i4.0
L_0134: stloc.0
L_0135: leave Label #24
L_013a: Label #22
L_013a: Label #23
L_013a: ldarg.1
L_013b: ldarg.0
L_013c: call Boolean IsSituationalThoughtNullifiedByHediffs(RimWorld.ThoughtDef,
Verse.Pawn)
L_0141: brfalse Label #25
L_0146: ldc.i4.0
L_0147: stloc.0
L_0148: leave Label #26
L_014d: Label #25
L_014d: ldarg.1
L_014e: ldarg.0
L_014f: call Boolean IsThoughtNullifiedByOwnTales(RimWorld.ThoughtDef, Verse.Pawn)
L_0154: brfalse Label #27
L_0159: ldc.i4.0
L_015a: stloc.0
L_015b: leave Label #28
L_0160: Label #27
L_0160: leave Label #29
L_0165: endfinally
L_0166: Label #29
L_0166: ldc.i4.1
L_0167: br Label #0
L_016c: Label #5
L_016c: Label #9
L_016c: Label #21
L_016c: Label #24
L_016c: Label #26
L_016c: Label #28
L_016c: ldloc.0
L_016d: br Label #0
L_0172: Label #0
L_0172: stloc 4 (System.Boolean)
L_0174: ldarga 0
L_017a: ldarga 1
L_0180: ldloca 4 (System.Boolean)
L_0182: call Void CanGetThought_Patch(Verse.Pawn ByRef, RimWorld.ThoughtDef ByRef,
Boolean ByRef)
L_0187: ldloc 4 (System.Boolean)
L_0189: ret
DONE

PATCHING RimWorld.JobGiver_SocialFighting Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Verb
L_0000: Local var #2 Verse.AI.Job
L_0000: Local var #3 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 3 (Verse.AI.Job)
L_0002: ldarg.1
L_0003: callvirt Verse.RaceProperties get_RaceProps()
L_0008: callvirt Boolean get_Humanlike()
L_000d: brfalse Label #2
L_0012: ldarg.1
L_0013: ldfld RimWorld.Pawn_StoryTracker story
L_0018: ldc.i4.8
L_0019: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_001e: brfalse Label #3
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: Label #3
L_0029: ldarg.1
L_002a: callvirt Verse.AI.MentalState get_MentalState()
L_002f: castclass Verse.AI.MentalState_SocialFighting
L_0034: ldfld Verse.Pawn otherPawn
L_0039: stloc.0
L_003a: ldarg.1
L_003b: ldloca.s 1 (Verse.Verb)
L_003d: call Boolean TryGetRandomVerbForSocialFight(Verse.Pawn, Verse.Verb ByRef)
L_0042: brtrue Label #4
L_0047: ldnull
L_0048: br Label #0
L_004d: Label #4
L_004d: ldsfld Verse.JobDef SocialFight
L_0052: ldloc.0
L_0053: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0058: newobj Void .ctor(JobDef, LocalTargetInfo)
L_005d: stloc.2
L_005e: ldloc.2
L_005f: ldc.i4.1
L_0060: stfld System.Int32 maxNumMeleeAttacks
L_0065: ldloc.2
L_0066: ldloc.1
L_0067: stfld Verse.Verb verbToUse
L_006c: ldloc.2
L_006d: br Label #0
L_0072: Label #0
L_0072: stloc 3 (Verse.AI.Job)
L_0073: ldarga 1
L_0079: ldloca 3 (Verse.AI.Job)
L_007b: call Void TryGiveJob_Postfix(Verse.Pawn ByRef, Verse.AI.Job ByRef)
L_0080: ldloc 3 (Verse.AI.Job)
L_0081: ret
DONE

PATCHING RimWorld.Pawn_ApparelTracker Void ApparelChanged()


L_0000: ldarg.0
L_0001: ldftn Void <ApparelChanged>m__1()
L_0007: newobj Void .ctor(Object, IntPtr)
L_000c: call Void ExecuteWhenFinished(System.Action)
L_0011: br Label #0
L_0016: Label #0
L_0016: ldarga 0
L_001c: call Void ApparelChanged_Postfix(RimWorld.Pawn_ApparelTracker ByRef)
L_0021: ret
DONE
PATCHING Verse.PawnGraphicSet Void ResolveAllGraphics()
L_0000: Local var #0 Verse.PawnKindLifeStage
L_0000: ldarg.0
L_0001: call Void ClearCache()
L_0006: ldarg.0
L_0007: ldfld Verse.Pawn pawn
L_000c: callvirt Verse.RaceProperties get_RaceProps()
L_0011: callvirt Boolean get_Humanlike()
L_0016: brfalse Label #2
L_001b: ldarg.0
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_StoryTracker story
L_0027: ldfld RimWorld.BodyType bodyType
L_002c: ldsfld UnityEngine.Shader CutoutSkin
L_0031: ldarg.0
L_0032: ldfld Verse.Pawn pawn
L_0037: ldfld RimWorld.Pawn_StoryTracker story
L_003c: callvirt Color get_SkinColor()
L_0041: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_0046: stfld Verse.Graphic nakedGraphic
L_004b: ldarg.0
L_004c: ldarg.0
L_004d: ldfld Verse.Pawn pawn
L_0052: ldfld RimWorld.Pawn_StoryTracker story
L_0057: ldfld RimWorld.BodyType bodyType
L_005c: ldsfld UnityEngine.Shader CutoutSkin
L_0061: ldsfld UnityEngine.Color RottingColor
L_0066: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_006b: stfld Verse.Graphic rottingGraphic
L_0070: ldarg.0
L_0071: ldstr "Things/Pawn/Humanlike/HumanoidDessicated"
L_0076: ldsfld UnityEngine.Shader Cutout
L_007b: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader)
L_0080: stfld Verse.Graphic dessicatedGraphic
L_0085: ldarg.0
L_0086: ldarg.0
L_0087: ldfld Verse.Pawn pawn
L_008c: ldfld RimWorld.Pawn_StoryTracker story
L_0091: callvirt System.String get_HeadGraphicPath()
L_0096: ldarg.0
L_0097: ldfld Verse.Pawn pawn
L_009c: ldfld RimWorld.Pawn_StoryTracker story
L_00a1: callvirt Color get_SkinColor()
L_00a6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00ab: stfld Verse.Graphic headGraphic
L_00b0: ldarg.0
L_00b1: ldarg.0
L_00b2: ldfld Verse.Pawn pawn
L_00b7: ldfld RimWorld.Pawn_StoryTracker story
L_00bc: callvirt System.String get_HeadGraphicPath()
L_00c1: ldsfld UnityEngine.Color RottingColor
L_00c6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00cb: stfld Verse.Graphic desiccatedHeadGraphic
L_00d0: ldarg.0
L_00d1: call Verse.Graphic_Multi GetSkull()
L_00d6: stfld Verse.Graphic skullGraphic
L_00db: ldarg.0
L_00dc: ldarg.0
L_00dd: ldfld Verse.Pawn pawn
L_00e2: ldfld RimWorld.Pawn_StoryTracker story
L_00e7: callvirt Color get_SkinColor()
L_00ec: call Verse.Graphic_Multi GetStump(Color)
L_00f1: stfld Verse.Graphic headStumpGraphic
L_00f6: ldarg.0
L_00f7: ldsfld UnityEngine.Color RottingColor
L_00fc: call Verse.Graphic_Multi GetStump(Color)
L_0101: stfld Verse.Graphic desiccatedHeadStumpGraphic
L_0106: ldarg.0
L_0107: ldarg.0
L_0108: ldfld Verse.Pawn pawn
L_010d: ldfld RimWorld.Pawn_StoryTracker story
L_0112: ldfld RimWorld.HairDef hairDef
L_0117: ldfld System.String texPath
L_011c: ldsfld UnityEngine.Shader Cutout
L_0121: call Vector2 get_one()
L_0126: ldarg.0
L_0127: ldfld Verse.Pawn pawn
L_012c: ldfld RimWorld.Pawn_StoryTracker story
L_0131: ldfld UnityEngine.Color hairColor
L_0136: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_013b: stfld Verse.Graphic hairGraphic
L_0140: ldarg.0
L_0141: call Void ResolveApparelGraphics()
L_0146: br Label #3
L_014b: Label #2
L_014b: ldarg.0
L_014c: ldfld Verse.Pawn pawn
L_0151: ldfld Verse.Pawn_AgeTracker ageTracker
L_0156: callvirt Verse.PawnKindLifeStage get_CurKindLifeStage()
L_015b: stloc.0
L_015c: ldarg.0
L_015d: ldfld Verse.Pawn pawn
L_0162: ldfld Verse.Gender gender
L_0167: ldc.i4.2
L_0168: bne.un Label #4
L_016d: ldloc.0
L_016e: ldfld Verse.GraphicData femaleGraphicData
L_0173: brtrue Label #5
L_0178: Label #4
L_0178: ldarg.0
L_0179: ldloc.0
L_017a: ldfld Verse.GraphicData bodyGraphicData
L_017f: callvirt Verse.Graphic get_Graphic()
L_0184: stfld Verse.Graphic nakedGraphic
L_0189: br Label #6
L_018e: Label #5
L_018e: ldarg.0
L_018f: ldloc.0
L_0190: ldfld Verse.GraphicData femaleGraphicData
L_0195: callvirt Verse.Graphic get_Graphic()
L_019a: stfld Verse.Graphic nakedGraphic
L_019f: Label #6
L_019f: ldarg.0
L_01a0: ldarg.0
L_01a1: ldfld Verse.Graphic nakedGraphic
L_01a6: ldsfld UnityEngine.Shader CutoutSkin
L_01ab: ldsfld UnityEngine.Color RottingColor
L_01b0: ldsfld UnityEngine.Color RottingColor
L_01b5: callvirt Verse.Graphic GetColoredVersion(UnityEngine.Shader, Color, Color)
L_01ba: stfld Verse.Graphic rottingGraphic
L_01bf: ldarg.0
L_01c0: ldfld Verse.Pawn pawn
L_01c5: callvirt Verse.RaceProperties get_RaceProps()
L_01ca: ldfld System.Boolean packAnimal
L_01cf: brfalse Label #7
L_01d4: ldarg.0
L_01d5: ldarg.0
L_01d6: ldfld Verse.Graphic nakedGraphic
L_01db: ldfld System.String path
L_01e0: ldstr "Pack"
L_01e5: call System.String Concat(System.String, System.String)
L_01ea: ldsfld UnityEngine.Shader Cutout
L_01ef: ldarg.0
L_01f0: ldfld Verse.Graphic nakedGraphic
L_01f5: ldfld UnityEngine.Vector2 drawSize
L_01fa: call Color get_white()
L_01ff: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_0204: stfld Verse.Graphic packGraphic
L_0209: Label #7
L_0209: ldloc.0
L_020a: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_020f: brfalse Label #8
L_0214: ldarg.0
L_0215: ldloc.0
L_0216: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_021b: ldarg.0
L_021c: ldfld Verse.Pawn pawn
L_0221: callvirt Verse.Graphic GraphicColoredFor(Verse.Thing)
L_0226: stfld Verse.Graphic dessicatedGraphic
L_022b: Label #3
L_022b: Label #8
L_022b: br Label #0
L_0230: Label #0
L_0230: ldarga 0
L_0236: call Void ResolveAllGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_023b: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveApparelGraphics()


L_0000: Local var #0 RimWorld.Apparel
L_0000: Local var #1 System.Collections.Generic.IEnumerator`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 RimWorld.ApparelGraphicRecord
L_0000: ldarga 0
L_0006: call Void ResolveApparelGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_000b: ldarg.0
L_000c: call Void ClearCache()
L_0011: ldarg.0
L_0012: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0017: callvirt Void Clear()
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_ApparelTracker apparel
L_0027: callvirt IEnumerable`1 get_WornApparelInDrawOrder()
L_002c: callvirt IEnumerator`1 GetEnumerator()
L_0031: stloc.1
L_0032: br Label #2
L_0037: Label #4
L_0037: ldloc.1
L_0038: callvirt RimWorld.Apparel get_Current()
L_003d: stloc.0
L_003e: ldloc.0
L_003f: ldarg.0
L_0040: ldfld Verse.Pawn pawn
L_0045: call BodyType ModifyChildBodyType(Verse.Pawn)
L_004a: ldloca.s 2 (RimWorld.ApparelGraphicRecord)
L_004c: call Boolean TryGetGraphicApparel(RimWorld.Apparel, BodyType,
ApparelGraphicRecord ByRef)
L_0051: brfalse Label #3
L_0056: ldarg.0
L_0057: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_005c: ldloc.2
L_005d: callvirt Void Add(ApparelGraphicRecord)
L_0062: Label #2
L_0062: Label #3
L_0062: ldloc.1
L_0063: callvirt Boolean MoveNext()
L_0068: brtrue Label #4
L_006d: leave Label #5
L_0072: ldloc.1
L_0073: brfalse Label #6
L_0078: ldloc.1
L_0079: callvirt Void Dispose()
L_007e: Label #6
L_007e: endfinally
L_007f: Label #5
L_007f: br Label #0
L_0084: Label #0
L_0084: ret
DONE

PATCHING Verse.PawnRenderer Void RenderPawnInternal(Vector3, Quaternion, Boolean,


Rot4, Rot4, RotDrawMode, Boolean, Boolean)
L_0000: Local var #0 UnityEngine.Mesh
L_0000: Local var #1 UnityEngine.Vector3
L_0000: Local var #2 System.Collections.Generic.List`1[[UnityEngine.Material,
UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #3 System.Int32
L_0000: Local var #4 UnityEngine.Material
L_0000: Local var #5 UnityEngine.Vector3
L_0000: Local var #6 UnityEngine.Vector3
L_0000: Local var #7 UnityEngine.Vector3
L_0000: Local var #8 UnityEngine.Vector3
L_0000: Local var #9 UnityEngine.Material
L_0000: Local var #10 UnityEngine.Mesh
L_0000: Local var #11 UnityEngine.Vector3
L_0000: Local var #12 System.Boolean
L_0000: Local var #13 UnityEngine.Mesh
L_0000: Local var #14
System.Collections.Generic.List`1[[RimWorld.ApparelGraphicRecord, Assembly-CSharp,
Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #15 System.Int32
L_0000: Local var #16 RimWorld.ApparelGraphicRecord
L_0000: Local var #17 RimWorld.ApparelGraphicRecord
L_0000: Local var #18 UnityEngine.Material
L_0000: Local var #19 RimWorld.ApparelGraphicRecord
L_0000: Local var #20 UnityEngine.Material
L_0000: Local var #21 RimWorld.ApparelGraphicRecord
L_0000: Local var #22 UnityEngine.Vector3
L_0000: Local var #23 UnityEngine.Mesh
L_0000: Local var #24 UnityEngine.Material
L_0000: Local var #25 System.Int32
L_0000: Local var #26 RimWorld.ApparelGraphicRecord
L_0000: Local var #27 UnityEngine.Material
L_0000: Local var #28 System.Collections.Generic.List`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #29 System.Int32
L_0000: Local var #30 UnityEngine.Vector3
L_0000: ldarg.0
L_0001: ldfld Verse.PawnGraphicSet graphics
L_0006: callvirt Boolean get_AllResolved()
L_000b: brtrue Label #2
L_0010: ldarg.0
L_0011: ldfld Verse.PawnGraphicSet graphics
L_0016: callvirt Void ResolveAllGraphics()
L_001b: Label #2
L_001b: ldnull
L_001c: stloc.0
L_001d: ldarg.0
L_001e: ldfld Verse.Pawn pawn
L_0023: ldfld Verse.Pawn_AgeTracker ageTracker
L_0028: call Int32 get_CurLifeStageIndex()
L_002d: ldc.i4.2
L_002e: blt Label #43
L_0033: ldarg.3
L_0034: brfalse Label #3
L_0039: Label #43
L_0039: ldarg.1
L_003a: ldarg.0
L_003b: ldfld Verse.Pawn pawn
L_0040: ldarg.s 7
L_0045: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_004a: stloc.1
L_004b: ldloca.s 1 (UnityEngine.Vector3)
L_004d: dup
L_004e: ldfld System.Single y
L_0053: ldc.r4 0.0078125
L_0058: add
L_0059: stfld System.Single y
L_005e: ldarg.s 6
L_0060: ldc.i4.2
L_0061: bne.un Label #4
L_0066: ldarg.0
L_0067: ldfld Verse.Pawn pawn
L_006c: callvirt Verse.RaceProperties get_RaceProps()
L_0071: callvirt Boolean get_Humanlike()
L_0076: brtrue Label #5
L_007b: ldarg.0
L_007c: ldfld Verse.PawnGraphicSet graphics
L_0081: ldfld Verse.Graphic dessicatedGraphic
L_0086: brfalse Label #6
L_008b: ldarg.s 7
L_008d: brtrue Label #7
L_0092: ldarg.0
L_0093: ldfld Verse.PawnGraphicSet graphics
L_0098: ldfld Verse.Graphic dessicatedGraphic
L_009d: ldloc.1
L_009e: ldarg.s 4
L_00a0: ldarg.0
L_00a1: ldfld Verse.Pawn pawn
L_00a6: ldc.r4 0
L_00ab: callvirt Void Draw(Vector3, Rot4, Verse.Thing, Single)
L_00b0: br Label #8
L_00b5: Label #4
L_00b5: Label #5
L_00b5: Label #6
L_00b5: Label #7
L_00b5: ldarg.0
L_00b6: ldfld Verse.Pawn pawn
L_00bb: callvirt Verse.RaceProperties get_RaceProps()
L_00c0: callvirt Boolean get_Humanlike()
L_00c5: brfalse Label #9
L_00ca: ldsfld Verse.GraphicMeshSet humanlikeBodySet
L_00cf: ldarg.s 4
L_00d1: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00d6: stloc.0
L_00d7: br Label #10
L_00dc: Label #9
L_00dc: ldarg.0
L_00dd: ldfld Verse.PawnGraphicSet graphics
L_00e2: ldfld Verse.Graphic nakedGraphic
L_00e7: ldarg.s 4
L_00e9: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00ee: stloc.0
L_00ef: Label #10
L_00ef: ldarg.0
L_00f0: ldfld Verse.PawnGraphicSet graphics
L_00f5: ldarg.s 4
L_00f7: ldarg.s 6
L_00f9: callvirt System.Collections.Generic.List`1[UnityEngine.Material]
MatsBodyBaseAt(Rot4, RotDrawMode)
L_00fe: stloc.2
L_00ff: ldc.i4.0
L_0100: stloc.3
L_0101: br Label #11
L_0106: Label #12
L_0106: ldarg.0
L_0107: ldfld Verse.PawnGraphicSet graphics
L_010c: ldfld Verse.DamageFlasher flasher
L_0111: ldloc.2
L_0112: ldloc.3
L_0113: callvirt UnityEngine.Material get_Item(Int32)
L_0118: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_011d: stloc.s 4 (UnityEngine.Material)
L_011f: ldloc.s 4
L_0124: ldarg.0
L_0125: ldfld Verse.Pawn pawn
L_012a: ldarg.s 4
L_012f: call UnityEngine.Material ModifyClothingForChild(UnityEngine.Material,
Verse.Pawn, Rot4)
L_0134: stloc.s 4
L_0139: ldloc.0
L_013a: ldloc.1
L_013b: ldarg.2
L_013c: ldloc.s 4 (UnityEngine.Material)
L_013e: ldarg.s 7
L_0140: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_0145: ldloca.s 1 (UnityEngine.Vector3)
L_0147: dup
L_0148: ldfld System.Single y
L_014d: ldloc.s 18
L_0152: ldarg.0
L_0153: ldfld Verse.Pawn pawn
L_0158: call UnityEngine.Material ModifyHatForChild(UnityEngine.Material,
Verse.Pawn)
L_015d: stloc.s 18
L_0162: ldc.r4 0.00390625
L_0167: add
L_0168: stfld System.Single y
L_016d: ldloc.3
L_016e: ldc.i4.1
L_016f: add
L_0170: stloc.3
L_0171: Label #11
L_0171: ldloc.3
L_0172: ldloc.2
L_0173: callvirt Int32 get_Count()
L_0178: blt Label #12
L_017d: ldarg.s 6
L_017f: brtrue Label #13
L_0184: ldarg.1
L_0185: ldarg.0
L_0186: ldfld Verse.Pawn pawn
L_018b: ldarg.s 7
L_0190: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0195: stloc.s 5 (UnityEngine.Vector3)
L_0197: ldloca.s 5 (UnityEngine.Vector3)
L_0199: dup
L_019a: ldfld System.Single y
L_019f: ldc.r4 0.01953125
L_01a4: add
L_01a5: stfld System.Single y
L_01aa: ldarg.0
L_01ab: ldfld RimWorld.PawnWoundDrawer woundOverlays
L_01b0: ldloc.s 5 (UnityEngine.Vector3)
L_01b2: ldloc.0
L_01b3: ldarg.2
L_01b4: ldarg.s 7
L_01b6: callvirt Void RenderOverBody(Vector3, UnityEngine.Mesh, Quaternion,
Boolean)
L_01bb: Label #3
L_01bb: Label #8
L_01bb: Label #13
L_01bb: ldarg.1
L_01bc: ldarg.0
L_01bd: ldfld Verse.Pawn pawn
L_01c2: ldarg.s 7
L_01c7: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01cc: stloc.s 6 (UnityEngine.Vector3)
L_01ce: ldarg.1
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldarg.s 7
L_01da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01df: stloc.s 7 (UnityEngine.Vector3)
L_01e1: ldarg.s 4
L_01e3: call Rot4 get_North()
L_01e8: call Boolean op_Inequality(Rot4, Rot4)
L_01ed: brfalse Label #14
L_01f2: ldloca.s 7 (UnityEngine.Vector3)
L_01f4: dup
L_01f5: ldfld System.Single y
L_01fa: ldc.r4 0.02734375
L_01ff: add
L_0200: stfld System.Single y
L_0205: ldloca.s 6 (UnityEngine.Vector3)
L_0207: dup
L_0208: ldfld System.Single y
L_020d: ldc.r4 0.0234375
L_0212: add
L_0213: stfld System.Single y
L_0218: br Label #15
L_021d: Label #14
L_021d: ldloca.s 7 (UnityEngine.Vector3)
L_021f: dup
L_0220: ldfld System.Single y
L_0225: ldc.r4 0.0234375
L_022a: add
L_022b: stfld System.Single y
L_0230: ldloca.s 6 (UnityEngine.Vector3)
L_0232: dup
L_0233: ldfld System.Single y
L_0238: ldc.r4 0.02734375
L_023d: add
L_023e: stfld System.Single y
L_0243: Label #15
L_0243: ldarg.0
L_0244: ldfld Verse.PawnGraphicSet graphics
L_0249: ldfld Verse.Graphic headGraphic
L_024e: brfalse Label #16
L_0253: ldarg.0
L_0254: ldfld Verse.Pawn pawn
L_0259: call Boolean RaceUsesChildren(Verse.Pawn)
L_025e: brfalse Label #44
L_0263: ldarg.0
L_0264: ldfld Verse.Pawn pawn
L_0269: call Boolean EnsurePawnIsChildOrOlder(Verse.Pawn)
L_026e: brfalse Label #16
L_0273: Label #44
L_0273: nop
L_0274: ldarg.2
L_0275: ldarg.0
L_0276: ldarg.s 5
L_0278: call Vector3 BaseHeadOffsetAt(Rot4)
L_027d: call Vector3 op_Multiply(Quaternion, Vector3)
L_0282: stloc.s 8 (UnityEngine.Vector3)
L_0284: ldarg.0
L_0285: ldfld Verse.PawnGraphicSet graphics
L_028a: ldarg.s 5
L_028c: ldarg.s 6
L_028e: ldarg.s 8
L_0290: callvirt UnityEngine.Material HeadMatAt(Rot4, RotDrawMode, Boolean)
L_0295: stloc.s 9 (UnityEngine.Material)
L_0297: ldloc.s 9 (UnityEngine.Material)
L_0299: ldnull
L_029a: call Boolean op_Inequality(UnityEngine.Object, UnityEngine.Object)
L_029f: brfalse Label #17
L_02a4: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_02a9: ldarg.s 5
L_02ab: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_02b0: stloc.s 10 (UnityEngine.Mesh)
L_02b2: ldloc.s 10 (UnityEngine.Mesh)
L_02b4: ldloc.s 7 (UnityEngine.Vector3)
L_02b6: ldloc.s 8 (UnityEngine.Vector3)
L_02b8: call Vector3 op_Addition(Vector3, Vector3)
L_02bd: ldarg.2
L_02be: ldloc.s 9 (UnityEngine.Material)
L_02c0: ldarg.s 7
L_02c2: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_02c7: Label #17
L_02c7: ldarg.1
L_02c8: ldloc.s 8 (UnityEngine.Vector3)
L_02ca: call Vector3 op_Addition(Vector3, Vector3)
L_02cf: ldarg.0
L_02d0: ldfld Verse.Pawn pawn
L_02d5: ldarg.s 7
L_02da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_02df: stloc.s 11 (UnityEngine.Vector3)
L_02e1: ldloca.s 11 (UnityEngine.Vector3)
L_02e3: dup
L_02e4: ldfld System.Single y
L_02e9: ldc.r4 0.03125
L_02ee: add
L_02ef: stfld System.Single y
L_02f4: ldc.i4.0
L_02f5: stloc.s 12 (System.Boolean)
L_02f7: ldarg.s 7
L_02f9: brfalse Label #18
L_02fe: call Boolean get_HatsOnlyOnMap()
L_0303: brtrue Label #19
L_0308: Label #18
L_0308: ldarg.0
L_0309: ldfld Verse.PawnGraphicSet graphics
L_030e: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_0313: ldarg.s 5
L_0315: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_031a: stloc.s 13 (UnityEngine.Mesh)
L_031c: ldarg.0
L_031d: ldfld Verse.PawnGraphicSet graphics
L_0322: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0327: stloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0329: ldc.i4.0
L_032a: stloc.s 15 (System.Int32)
L_032c: br Label #20
L_0331: Label #26
L_0331: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0333: ldloc.s 15 (System.Int32)
L_0335: callvirt ApparelGraphicRecord get_Item(Int32)
L_033a: stloc.s 16 (RimWorld.ApparelGraphicRecord)
L_033c: ldloca.s 16 (RimWorld.ApparelGraphicRecord)
L_033e: ldfld RimWorld.Apparel sourceApparel
L_0343: ldfld Verse.ThingDef def
L_0348: ldfld RimWorld.ApparelProperties apparel
L_034d: callvirt ApparelLayer get_LastLayer()
L_0352: ldc.i4.4
L_0353: bne.un Label #21
L_0358: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_035a: ldloc.s 15 (System.Int32)
L_035c: callvirt ApparelGraphicRecord get_Item(Int32)
L_0361: stloc.s 17 (RimWorld.ApparelGraphicRecord)
L_0363: ldloca.s 17 (RimWorld.ApparelGraphicRecord)
L_0365: ldfld RimWorld.Apparel sourceApparel
L_036a: ldfld Verse.ThingDef def
L_036f: ldfld RimWorld.ApparelProperties apparel
L_0374: ldfld System.Boolean hatRenderedFrontOfFace
L_0379: brtrue Label #22
L_037e: ldc.i4.1
L_037f: stloc.s 12 (System.Boolean)
L_0381: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0383: ldloc.s 15 (System.Int32)
L_0385: callvirt ApparelGraphicRecord get_Item(Int32)
L_038a: stloc.s 19 (RimWorld.ApparelGraphicRecord)
L_038c: ldloca.s 19 (RimWorld.ApparelGraphicRecord)
L_038e: ldfld Verse.Graphic graphic
L_0393: ldarg.s 4
L_0395: ldnull
L_0396: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_039b: stloc.s 18 (UnityEngine.Material)
L_039d: ldarg.0
L_039e: ldfld Verse.PawnGraphicSet graphics
L_03a3: ldfld Verse.DamageFlasher flasher
L_03a8: ldloc.s 18 (UnityEngine.Material)
L_03aa: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03af: stloc.s 18 (UnityEngine.Material)
L_03b1: ldloc.s 13 (UnityEngine.Mesh)
L_03b3: ldloc.s 11 (UnityEngine.Vector3)
L_03b5: ldarg.2
L_03b6: ldloc.s 18 (UnityEngine.Material)
L_03b8: ldarg.s 7
L_03ba: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_03bf: br Label #23
L_03c4: Label #22
L_03c4: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_03c6: ldloc.s 15 (System.Int32)
L_03c8: callvirt ApparelGraphicRecord get_Item(Int32)
L_03cd: stloc.s 21 (RimWorld.ApparelGraphicRecord)
L_03cf: ldloca.s 21 (RimWorld.ApparelGraphicRecord)
L_03d1: ldfld Verse.Graphic graphic
L_03d6: ldarg.s 4
L_03d8: ldnull
L_03d9: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_03de: stloc.s 20 (UnityEngine.Material)
L_03e0: ldarg.0
L_03e1: ldfld Verse.PawnGraphicSet graphics
L_03e6: ldfld Verse.DamageFlasher flasher
L_03eb: ldloc.s 20 (UnityEngine.Material)
L_03ed: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03f2: stloc.s 20 (UnityEngine.Material)
L_03f4: ldarg.1
L_03f5: ldloc.s 8 (UnityEngine.Vector3)
L_03f7: call Vector3 op_Addition(Vector3, Vector3)
L_03fc: stloc.s 22 (UnityEngine.Vector3)
L_03fe: ldloca.s 22 (UnityEngine.Vector3)
L_0400: dup
L_0401: ldfld System.Single y
L_0406: ldarg.s 4
L_0408: call Rot4 get_North()
L_040d: call Boolean op_Equality(Rot4, Rot4)
L_0412: brfalse Label #24
L_0417: ldc.r4 0.00390625
L_041c: br Label #25
L_0421: Label #24
L_0421: ldc.r4 0.03515625
L_0426: Label #25
L_0426: add
L_0427: stfld System.Single y
L_042c: ldloc.s 13 (UnityEngine.Mesh)
L_042e: ldloc.s 22 (UnityEngine.Vector3)
L_0430: ldarg.2
L_0431: ldloc.s 20 (UnityEngine.Material)
L_0433: ldarg.s 7
L_0435: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_043a: Label #21
L_043a: Label #23
L_043a: ldloc.s 15 (System.Int32)
L_043c: ldc.i4.1
L_043d: add
L_043e: stloc.s 15 (System.Int32)
L_0440: Label #20
L_0440: ldloc.s 15 (System.Int32)
L_0442: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0444: callvirt Int32 get_Count()
L_0449: blt Label #26
L_044e: Label #19
L_044e: ldloc.s 12 (System.Boolean)
L_0450: brtrue Label #27
L_0455: ldarg.s 6
L_0457: ldc.i4.2
L_0458: beq Label #28
L_045d: ldarg.s 8
L_045f: brtrue Label #29
L_0464: ldarg.0
L_0465: ldfld Verse.PawnGraphicSet graphics
L_046a: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_046f: ldarg.s 5
L_0471: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0476: stloc.s 23 (UnityEngine.Mesh)
L_0478: ldarg.0
L_0479: ldfld Verse.PawnGraphicSet graphics
L_047e: ldarg.s 5
L_0480: callvirt UnityEngine.Material HairMatAt(Rot4)
L_0485: stloc.s 24 (UnityEngine.Material)
L_0487: ldloc.s 24
L_048c: ldarg.0
L_048d: ldfld Verse.Pawn pawn
L_0492: call UnityEngine.Material ModifyHairForChild(UnityEngine.Material,
Verse.Pawn)
L_0497: stloc.s 24
L_049c: ldloc.s 23 (UnityEngine.Mesh)
L_049e: ldloc.s 11 (UnityEngine.Vector3)
L_04a0: ldarg.2
L_04a1: ldloc.s 24 (UnityEngine.Material)
L_04a3: ldarg.s 7
L_04a5: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_04aa: Label #16
L_04aa: Label #27
L_04aa: Label #28
L_04aa: Label #29
L_04aa: ldarg.3
L_04ab: brfalse Label #30
L_04b0: ldc.i4.0
L_04b1: stloc.s 25 (System.Int32)
L_04b3: br Label #31
L_04b8: Label #33
L_04b8: ldarg.0
L_04b9: ldfld Verse.PawnGraphicSet graphics
L_04be: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_04c3: ldloc.s 25 (System.Int32)
L_04c5: callvirt ApparelGraphicRecord get_Item(Int32)
L_04ca: stloc.s 26 (RimWorld.ApparelGraphicRecord)
L_04cc: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ce: ldfld RimWorld.Apparel sourceApparel
L_04d3: ldfld Verse.ThingDef def
L_04d8: ldfld RimWorld.ApparelProperties apparel
L_04dd: callvirt ApparelLayer get_LastLayer()
L_04e2: ldc.i4.2
L_04e3: bne.un Label #32
L_04e8: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ea: ldfld Verse.Graphic graphic
L_04ef: ldarg.s 4
L_04f1: ldnull
L_04f2: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_04f7: stloc.s 27 (UnityEngine.Material)
L_04f9: ldarg.0
L_04fa: ldfld Verse.PawnGraphicSet graphics
L_04ff: ldfld Verse.DamageFlasher flasher
L_0504: ldloc.s 27 (UnityEngine.Material)
L_0506: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_050b: stloc.s 27 (UnityEngine.Material)
L_050d: ldloc.0
L_050e: ldloc.s 6 (UnityEngine.Vector3)
L_0510: ldarg.2
L_0511: ldloc.s 27 (UnityEngine.Material)
L_0513: ldarg.s 7
L_0515: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_051a: Label #32
L_051a: ldloc.s 25 (System.Int32)
L_051c: ldc.i4.1
L_051d: add
L_051e: stloc.s 25 (System.Int32)
L_0520: Label #31
L_0520: ldloc.s 25 (System.Int32)
L_0522: ldarg.0
L_0523: ldfld Verse.PawnGraphicSet graphics
L_0528: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_052d: callvirt Int32 get_Count()
L_0532: blt Label #33
L_0537: Label #30
L_0537: ldarg.s 7
L_0539: brtrue Label #34
L_053e: ldarg.0
L_053f: ldfld Verse.Pawn pawn
L_0544: callvirt Verse.RaceProperties get_RaceProps()
L_0549: callvirt Boolean get_Animal()
L_054e: brfalse Label #35
L_0553: ldarg.0
L_0554: ldfld Verse.Pawn pawn
L_0559: ldfld Verse.Pawn_InventoryTracker inventory
L_055e: brfalse Label #36
L_0563: ldarg.0
L_0564: ldfld Verse.Pawn pawn
L_0569: ldfld Verse.Pawn_InventoryTracker inventory
L_056e: ldfld Verse.ThingOwner`1[Verse.Thing] innerContainer
L_0573: callvirt Int32 get_Count()
L_0578: ldc.i4.0
L_0579: ble Label #37
L_057e: ldarg.0
L_057f: ldfld Verse.PawnGraphicSet graphics
L_0584: ldfld Verse.Graphic packGraphic
L_0589: brfalse Label #38
L_058e: ldloc.0
L_058f: ldloc.s 6 (UnityEngine.Vector3)
L_0591: ldarg.2
L_0592: ldarg.0
L_0593: ldfld Verse.PawnGraphicSet graphics
L_0598: ldfld Verse.Graphic packGraphic
L_059d: ldarg.s 4
L_059f: ldnull
L_05a0: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_05a5: ldc.i4.0
L_05a6: call Void DrawMesh(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Int32)
L_05ab: Label #34
L_05ab: Label #35
L_05ab: Label #36
L_05ab: Label #37
L_05ab: Label #38
L_05ab: ldarg.s 7
L_05ad: brtrue Label #39
L_05b2: ldarg.0
L_05b3: ldarg.1
L_05b4: call Void DrawEquipment(Vector3)
L_05b9: ldarg.0
L_05ba: ldfld Verse.Pawn pawn
L_05bf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05c4: brfalse Label #40
L_05c9: ldarg.0
L_05ca: ldfld Verse.Pawn pawn
L_05cf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05d4: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_05d9: stloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05db: ldc.i4.0
L_05dc: stloc.s 29 (System.Int32)
L_05de: br Label #41
L_05e3: Label #42
L_05e3: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05e5: ldloc.s 29 (System.Int32)
L_05e7: callvirt RimWorld.Apparel get_Item(Int32)
L_05ec: callvirt Void DrawWornExtras()
L_05f1: ldloc.s 29 (System.Int32)
L_05f3: ldc.i4.1
L_05f4: add
L_05f5: stloc.s 29 (System.Int32)
L_05f7: Label #41
L_05f7: ldloc.s 29 (System.Int32)
L_05f9: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05fb: callvirt Int32 get_Count()
L_0600: blt Label #42
L_0605: Label #40
L_0605: ldarg.1
L_0606: ldarg.0
L_0607: ldfld Verse.Pawn pawn
L_060c: ldarg.s 7
L_0611: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0616: stloc.s 30 (UnityEngine.Vector3)
L_0618: ldloca.s 30 (UnityEngine.Vector3)
L_061a: dup
L_061b: ldfld System.Single y
L_0620: ldc.r4 0.04296875
L_0625: add
L_0626: stfld System.Single y
L_062b: ldarg.0
L_062c: ldfld Verse.PawnHeadOverlays statusOverlays
L_0631: ldloc.s 30 (UnityEngine.Vector3)
L_0633: ldarg.2
L_0634: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_0639: ldarg.s 5
L_063b: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0640: callvirt Void RenderStatusOverlays(Vector3, Quaternion, UnityEngine.Mesh)
L_0645: Label #39
L_0645: br Label #0
L_064a: Label #0
L_064a: ret
DONE
PATCHING Verse.PawnGenerator Verse.Pawn GeneratePawn(PawnGenerationRequest)
L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Pawn
L_0000: ldnull
L_0001: stloc 1 (Verse.Pawn)
L_0002: ldarg.0
L_0003: call Verse.Pawn GeneratePawnInternal(PawnGenerationRequest)
L_0008: stloc.0
L_0009: leave Label #2
L_000e: endfinally
L_000f: Label #2
L_000f: ldloc.0
L_0010: br Label #0
L_0015: Label #0
L_0015: stloc 1 (Verse.Pawn)
L_0016: ldarga 0
L_001c: ldloca 1 (Verse.Pawn)
L_001e: call Void _GeneratePawn(PawnGenerationRequest ByRef, Verse.Pawn ByRef)
L_0023: ldloc 1 (Verse.Pawn)
L_0024: ret
DONE

PATCHING RimWorld.JobGiver_OptimizeApparel Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 RimWorld.Outfit
L_0000: Local var #1 System.Collections.Generic.List`1[[RimWorld.Apparel, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 System.Int32
L_0000: Local var #3 Verse.AI.Job
L_0000: Local var #4 Verse.Thing
L_0000: Local var #5 System.Single
L_0000: Local var #6 System.Collections.Generic.List`1[[Verse.Thing, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #7 System.Int32
L_0000: Local var #8 RimWorld.Apparel
L_0000: Local var #9 RimWorld.SlotGroup
L_0000: Local var #10 System.Single
L_0000: Local var #11 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 11 (Verse.AI.Job)
L_0003: ldarg.1
L_0004: ldfld RimWorld.Pawn_OutfitTracker outfits
L_0009: brtrue Label #2
L_000e: ldarg.1
L_000f: ldstr " tried to run JobGiver_OptimizeApparel without an OutfitTracker"
L_0014: call System.String Concat(System.Object, System.Object)
L_0019: ldc.i4 5643897
L_001e: call Void ErrorOnce(System.String, Int32)
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: ldarg.1
L_002a: callvirt RimWorld.Faction get_Faction()
L_002f: call RimWorld.Faction get_OfPlayer()
L_0034: beq Label #3
L_0039: ldstr "Non-colonist "
L_003e: ldarg.1
L_003f: ldstr " tried to optimize apparel."
L_0044: call System.String Concat(System.Object, System.Object, System.Object)
L_0049: ldc.i4 764323
L_004e: call Void ErrorOnce(System.String, Int32)
L_0053: ldnull
L_0054: br Label #0
L_0059: Label #3
L_0059: ldsfld System.Boolean debugApparelOptimize
L_005e: brtrue Label #4
L_0063: call Verse.TickManager get_TickManager()
L_0068: callvirt Int32 get_TicksGame()
L_006d: ldarg.1
L_006e: ldfld Verse.AI.Pawn_MindState mindState
L_0073: ldfld System.Int32 nextApparelOptimizeTick
L_0078: bge Label #5
L_007d: ldnull
L_007e: br Label #0
L_0083: Label #5
L_0083: br Label #6
L_0088: Label #4
L_0088: newobj Void .ctor()
L_008d: stsfld System.Text.StringBuilder debugSb
L_0092: ldsfld System.Text.StringBuilder debugSb
L_0097: ldc.i4.4
L_0098: newarr System.Object
L_009d: dup
L_009e: ldc.i4.0
L_009f: ldstr "Scanning for "
L_00a4: stelem.ref
L_00a5: dup
L_00a6: ldc.i4.1
L_00a7: ldarg.1
L_00a8: stelem.ref
L_00a9: dup
L_00aa: ldc.i4.2
L_00ab: ldstr " at "
L_00b0: stelem.ref
L_00b1: dup
L_00b2: ldc.i4.3
L_00b3: ldarg.1
L_00b4: callvirt IntVec3 get_Position()
L_00b9: box Verse.IntVec3
L_00be: stelem.ref
L_00bf: call System.String Concat(System.Object[])
L_00c4: callvirt System.Text.StringBuilder AppendLine(System.String)
L_00c9: pop
L_00ca: Label #6
L_00ca: ldarg.1
L_00cb: ldfld RimWorld.Pawn_OutfitTracker outfits
L_00d0: callvirt RimWorld.Outfit get_CurrentOutfit()
L_00d5: stloc.0
L_00d6: ldarg.1
L_00d7: ldfld RimWorld.Pawn_ApparelTracker apparel
L_00dc: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_00e1: stloc.1
L_00e2: ldloc.1
L_00e3: callvirt Int32 get_Count()
L_00e8: ldc.i4.1
L_00e9: sub
L_00ea: stloc.2
L_00eb: br Label #7
L_00f0: Label #10
L_00f0: ldloc.0
L_00f1: ldfld Verse.ThingFilter filter
L_00f6: ldloc.1
L_00f7: ldloc.2
L_00f8: callvirt RimWorld.Apparel get_Item(Int32)
L_00fd: callvirt Boolean Allows(Verse.Thing)
L_0102: brtrue Label #8
L_0107: ldarg.1
L_0108: ldfld RimWorld.Pawn_OutfitTracker outfits
L_010d: ldfld RimWorld.OutfitForcedHandler forcedHandler
L_0112: ldloc.1
L_0113: ldloc.2
L_0114: callvirt RimWorld.Apparel get_Item(Int32)
L_0119: callvirt Boolean AllowedToAutomaticallyDrop(RimWorld.Apparel)
L_011e: brfalse Label #9
L_0123: ldsfld Verse.JobDef RemoveApparel
L_0128: ldloc.1
L_0129: ldloc.2
L_012a: callvirt RimWorld.Apparel get_Item(Int32)
L_012f: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0134: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0139: stloc.3
L_013a: ldloc.3
L_013b: ldc.i4.1
L_013c: stfld System.Boolean haulDroppedApparel
L_0141: ldloc.3
L_0142: br Label #0
L_0147: Label #8
L_0147: Label #9
L_0147: ldloc.2
L_0148: ldc.i4.1
L_0149: sub
L_014a: stloc.2
L_014b: Label #7
L_014b: ldloc.2
L_014c: ldc.i4.0
L_014d: bge Label #10
L_0152: ldnull
L_0153: stloc.s 4 (Verse.Thing)
L_0155: ldc.r4 0
L_015a: stloc.s 5 (System.Single)
L_015c: ldarg.1
L_015d: callvirt Verse.Map get_Map()
L_0162: ldfld Verse.ListerThings listerThings
L_0167: ldc.i4.s 26
L_0169: callvirt System.Collections.Generic.List`1[Verse.Thing]
ThingsInGroup(ThingRequestGroup)
L_016e: stloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0170: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0172: callvirt Int32 get_Count()
L_0177: brtrue Label #11
L_017c: ldarg.0
L_017d: ldarg.1
L_017e: call Void SetNextOptimizeTick(Verse.Pawn)
L_0183: ldnull
L_0184: br Label #0
L_0189: Label #11
L_0189: ldarg.1
L_018a: ldarg.1
L_018b: callvirt Verse.Map get_Map()
L_0190: callvirt Int32 get_Tile()
L_0195: ldarg.1
L_0196: call Twelfth Twelfth(Verse.Thing)
L_019b: call NeededWarmth CalculateNeededWarmth(Verse.Pawn, Int32, Twelfth)
L_01a0: stsfld RimWorld.NeededWarmth neededWarmth
L_01a5: ldc.i4.0
L_01a6: stloc.s 7 (System.Int32)
L_01a8: br Label #12
L_01ad: Label #27
L_01ad: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_01af: ldloc.s 7 (System.Int32)
L_01b1: callvirt Verse.Thing get_Item(Int32)
L_01b6: castclass RimWorld.Apparel
L_01bb: stloc.s 8 (RimWorld.Apparel)
L_01bd: ldloc.0
L_01be: ldfld Verse.ThingFilter filter
L_01c3: ldloc.s 8 (RimWorld.Apparel)
L_01c5: callvirt Boolean Allows(Verse.Thing)
L_01ca: brtrue Label #13
L_01cf: br Label #14
L_01d4: Label #13
L_01d4: ldloc.s 8 (RimWorld.Apparel)
L_01d6: callvirt Verse.Map get_Map()
L_01db: ldfld RimWorld.SlotGroupManager slotGroupManager
L_01e0: ldloc.s 8 (RimWorld.Apparel)
L_01e2: callvirt IntVec3 get_Position()
L_01e7: callvirt RimWorld.SlotGroup SlotGroupAt(IntVec3)
L_01ec: stloc.s 9 (RimWorld.SlotGroup)
L_01ee: ldloc.s 9 (RimWorld.SlotGroup)
L_01f0: brtrue Label #15
L_01f5: br Label #16
L_01fa: Label #15
L_01fa: ldloc.s 8 (RimWorld.Apparel)
L_01fc: ldarg.1
L_01fd: call Boolean IsForbidden(Verse.Thing, Verse.Pawn)
L_0202: brfalse Label #17
L_0207: br Label #18
L_020c: Label #17
L_020c: ldarg.1
L_020d: ldloc.s 8 (RimWorld.Apparel)
L_020f: call Single ApparelScoreGain(Verse.Pawn, RimWorld.Apparel)
L_0214: stloc.s 10 (System.Single)
L_0216: ldsfld System.Boolean debugApparelOptimize
L_021b: brfalse Label #19
L_0220: ldsfld System.Text.StringBuilder debugSb
L_0225: ldloc.s 8 (RimWorld.Apparel)
L_0227: callvirt System.String get_LabelCap()
L_022c: ldstr ": "
L_0231: ldloca.s 10 (System.Single)
L_0233: ldstr "F2"
L_0238: call System.String ToString(System.String)
L_023d: call System.String Concat(System.String, System.String, System.String)
L_0242: callvirt System.Text.StringBuilder AppendLine(System.String)
L_0247: pop
L_0248: Label #19
L_0248: ldloc.s 10 (System.Single)
L_024a: ldc.r4 0.05
L_024f: blt Label #20
L_0254: ldloc.s 10 (System.Single)
L_0256: ldloc.s 5 (System.Single)
L_0258: bge.un Label #21
L_025d: Label #20
L_025d: br Label #22
L_0262: Label #21
L_0262: ldarg.1
L_0263: ldloc.s 8 (RimWorld.Apparel)
L_0265: ldfld Verse.ThingDef def
L_026a: call Boolean HasPartsToWear(Verse.Pawn, Verse.ThingDef)
L_026f: brtrue Label #23
L_0274: br Label #24
L_0279: Label #23
L_0279: ldarg.1
L_027a: ldloc.s 8 (RimWorld.Apparel)
L_027c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0281: ldc.i4.1
L_0282: ldarg.1
L_0283: call Danger NormalMaxDanger(Verse.Pawn)
L_0288: ldc.i4.1
L_0289: ldc.i4.m1
L_028a: ldnull
L_028b: ldc.i4.0
L_028c: call Boolean CanReserveAndReach(Verse.Pawn, LocalTargetInfo, PathEndMode,
Danger, Int32, Int32, Verse.ReservationLayerDef, Boolean)
L_0291: brtrue Label #25
L_0296: br Label #26
L_029b: Label #25
L_029b: ldloc.s 8 (RimWorld.Apparel)
L_029d: stloc.s 4 (Verse.Thing)
L_029f: ldloc.s 10 (System.Single)
L_02a1: stloc.s 5 (System.Single)
L_02a3: Label #14
L_02a3: Label #16
L_02a3: Label #18
L_02a3: Label #22
L_02a3: Label #24
L_02a3: Label #26
L_02a3: ldloc.s 7 (System.Int32)
L_02a5: ldc.i4.1
L_02a6: add
L_02a7: stloc.s 7 (System.Int32)
L_02a9: Label #12
L_02a9: ldloc.s 7 (System.Int32)
L_02ab: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_02ad: callvirt Int32 get_Count()
L_02b2: blt Label #27
L_02b7: ldsfld System.Boolean debugApparelOptimize
L_02bc: brfalse Label #28
L_02c1: ldsfld System.Text.StringBuilder debugSb
L_02c6: ldstr "BEST: "
L_02cb: ldloc.s 4 (Verse.Thing)
L_02cd: call System.String Concat(System.Object, System.Object)
L_02d2: callvirt System.Text.StringBuilder AppendLine(System.String)
L_02d7: pop
L_02d8: ldsfld System.Text.StringBuilder debugSb
L_02dd: callvirt System.String ToString()
L_02e2: call Void Message(System.String)
L_02e7: ldnull
L_02e8: stsfld System.Text.StringBuilder debugSb
L_02ed: Label #28
L_02ed: ldloc.s 4 (Verse.Thing)
L_02ef: brtrue Label #29
L_02f4: ldarg.0
L_02f5: ldarg.1
L_02f6: call Void SetNextOptimizeTick(Verse.Pawn)
L_02fb: ldnull
L_02fc: br Label #0
L_0301: Label #29
L_0301: ldsfld Verse.JobDef Wear
L_0306: ldloc.s 4 (Verse.Thing)
L_0308: call LocalTargetInfo op_Implicit(Verse.Thing)
L_030d: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0312: br Label #0
L_0317: Label #0
L_0317: stloc 11 (Verse.AI.Job)
L_0319: ldloca 11 (Verse.AI.Job)
L_031b: ldarga 1
L_0321: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_0326: ldloc 11 (Verse.AI.Job)
L_0328: ret
DONE

PATCHING Verse.Pawn_HealthTracker Boolean ShouldBeDowned()


L_0000: Local var #0 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 0 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean get_InPainShock()
L_000c: brtrue Label #2
L_0011: ldarg.0
L_0012: ldfld Verse.PawnCapacitiesHandler capacities
L_0017: callvirt Boolean get_CanBeAwake()
L_001c: brfalse Label #3
L_0021: ldarg.0
L_0022: ldfld Verse.PawnCapacitiesHandler capacities
L_0027: ldsfld Verse.PawnCapacityDef Moving
L_002c: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0031: ldc.i4.0
L_0032: ceq
L_0034: br Label #4
L_0039: Label #2
L_0039: Label #3
L_0039: ldc.i4.1
L_003a: Label #4
L_003a: br Label #0
L_003f: Label #0
L_003f: stloc 0 (System.Boolean)
L_0040: ldarga 0
L_0046: ldloca 0 (System.Boolean)
L_0048: call Void SBD(Verse.Pawn_HealthTracker ByRef, Boolean ByRef)
L_004d: ldloc 0 (System.Boolean)
L_004e: ret
DONE

PATCHING Verse.Pawn_HealthTracker Void CheckForStateChange(Nullable`1,


Verse.Hediff)
L_0000: Local var #0 System.Single
L_0000: Local var #1 Verse.DamageInfo
L_0000: Local var #2 Verse.ThingWithComps
L_0000: ldarg.0
L_0001: call Boolean get_Dead()
L_0006: brtrue Label #2
L_000b: ldarg.0
L_000c: call Boolean ShouldBeDead()
L_0011: brfalse Label #3
L_0016: ldarg.0
L_0017: ldfld Verse.Pawn pawn
L_001c: callvirt Boolean get_Destroyed()
L_0021: brtrue Label #4
L_0026: ldarg.0
L_0027: ldfld Verse.Pawn pawn
L_002c: ldarg.1
L_002d: ldarg.2
L_002e: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_0033: Label #4
L_0033: br Label #0
L_0038: Label #3
L_0038: ldarg.0
L_0039: call Boolean get_Downed()
L_003e: brtrue Label #5
L_0043: ldarg.0
L_0044: call Boolean ShouldBeDowned()
L_0049: brfalse Label #6
L_004e: ldarg.0
L_004f: ldfld Verse.Pawn pawn
L_0054: callvirt Verse.RaceProperties get_RaceProps()
L_0059: callvirt Boolean get_Animal()
L_005e: brfalse Label #7
L_0063: ldc.r4 0.47
L_0068: br Label #8
L_006d: Label #7
L_006d: ldc.r4 0.67
L_0072: Label #8
L_0072: stloc.0
L_0073: ldarg.0
L_0074: ldfld System.Boolean forceIncap
L_0079: brtrue Label #9
L_007e: ldarga.s 1
L_0080: call Boolean get_HasValue()
L_0085: brfalse Label #10
L_008a: ldarga.s 1
L_008c: call DamageInfo get_Value()
L_0091: stloc.1
L_0092: ldloca.s 1 (Verse.DamageInfo)
L_0094: call Verse.DamageDef get_Def()
L_0099: ldfld System.Boolean externalViolence
L_009e: brfalse Label #11
L_00a3: ldarg.0
L_00a4: ldfld Verse.Pawn pawn
L_00a9: callvirt RimWorld.Faction get_Faction()
L_00ae: brfalse Label #12
L_00b3: ldarg.0
L_00b4: ldfld Verse.Pawn pawn
L_00b9: callvirt RimWorld.Faction get_Faction()
L_00be: callvirt Boolean get_IsPlayer()
L_00c3: brtrue Label #13
L_00c8: br Label #13
L_00cd: Label #12
L_00cd: ldarg.0
L_00ce: ldfld Verse.Pawn pawn
L_00d3: callvirt Boolean get_IsPrisonerOfColony()
L_00d8: brtrue Label #14
L_00dd: ldarg.0
L_00de: ldfld Verse.Pawn pawn
L_00e3: callvirt Verse.RaceProperties get_RaceProps()
L_00e8: callvirt Boolean get_IsFlesh()
L_00ed: brfalse Label #15
L_00f2: call Single get_Value()
L_00f7: ldloc.0
L_00f8: bge.un Label #16
L_00fd: ldarg.0
L_00fe: ldfld Verse.Pawn pawn
L_0103: ldarg.1
L_0104: ldnull
L_0105: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_010a: br Label #0
L_010f: Label #9
L_010f: Label #10
L_010f: Label #11
L_010f: Label #13
L_010f: Label #14
L_010f: Label #15
L_010f: Label #16
L_010f: ldarg.0
L_0110: ldc.i4.0
L_0111: stfld System.Boolean forceIncap
L_0116: ldarg.0
L_0117: ldarg.1
L_0118: ldarg.2
L_0119: call Void MakeDowned(Nullable`1, Verse.Hediff)
L_011e: br Label #0
L_0123: Label #6
L_0123: ldarg.0
L_0124: ldfld Verse.PawnCapacitiesHandler capacities
L_0129: ldsfld Verse.PawnCapacityDef Manipulation
L_012e: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0133: brtrue Label #17
L_0138: ldarg.0
L_0139: ldfld Verse.Pawn pawn
L_013e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0143: brfalse Label #18
L_0148: ldarg.0
L_0149: ldfld Verse.Pawn pawn
L_014e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0153: callvirt Verse.Thing get_CarriedThing()
L_0158: brfalse Label #19
L_015d: ldarg.0
L_015e: ldfld Verse.Pawn pawn
L_0163: ldfld Verse.AI.Pawn_JobTracker jobs
L_0168: brfalse Label #20
L_016d: ldarg.0
L_016e: ldfld Verse.Pawn pawn
L_0173: callvirt Verse.AI.Job get_CurJob()
L_0178: brfalse Label #21
L_017d: ldarg.0
L_017e: ldfld Verse.Pawn pawn
L_0183: ldfld Verse.AI.Pawn_JobTracker jobs
L_0188: ldc.i4.5
L_0189: ldc.i4.1
L_018a: callvirt Void EndCurrentJob(JobCondition, Boolean)
L_018f: Label #18
L_018f: Label #19
L_018f: Label #20
L_018f: Label #21
L_018f: ldarg.0
L_0190: ldfld Verse.Pawn pawn
L_0195: ldfld Verse.Pawn_EquipmentTracker equipment
L_019a: brfalse Label #22
L_019f: ldarg.0
L_01a0: ldfld Verse.Pawn pawn
L_01a5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01aa: callvirt Verse.ThingWithComps get_Primary()
L_01af: brfalse Label #23
L_01b4: ldarg.0
L_01b5: ldfld Verse.Pawn pawn
L_01ba: callvirt Boolean get_InContainerEnclosed()
L_01bf: brfalse Label #24
L_01c4: ldarg.0
L_01c5: ldfld Verse.Pawn pawn
L_01ca: ldfld Verse.Pawn_EquipmentTracker equipment
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01da: callvirt Verse.ThingWithComps get_Primary()
L_01df: ldarg.0
L_01e0: ldfld Verse.Pawn pawn
L_01e5: ldfld Verse.ThingOwner holdingOwner
L_01ea: callvirt Boolean TryTransferEquipmentToContainer(Verse.ThingWithComps,
Verse.ThingOwner)
L_01ef: pop
L_01f0: br Label #25
L_01f5: Label #24
L_01f5: ldarg.0
L_01f6: ldfld Verse.Pawn pawn
L_01fb: callvirt Boolean get_SpawnedOrAnyParentSpawned()
L_0200: brfalse Label #26
L_0205: ldarg.0
L_0206: ldfld Verse.Pawn pawn
L_020b: ldfld Verse.Pawn_EquipmentTracker equipment
L_0210: ldarg.0
L_0211: ldfld Verse.Pawn pawn
L_0216: ldfld Verse.Pawn_EquipmentTracker equipment
L_021b: callvirt Verse.ThingWithComps get_Primary()
L_0220: ldloca.s 2 (Verse.ThingWithComps)
L_0222: ldarg.0
L_0223: ldfld Verse.Pawn pawn
L_0228: callvirt IntVec3 get_PositionHeld()
L_022d: ldc.i4.1
L_022e: callvirt Boolean TryDropEquipment(Verse.ThingWithComps,
Verse.ThingWithComps ByRef, IntVec3, Boolean)
L_0233: pop
L_0234: br Label #27
L_0239: Label #26
L_0239: ldarg.0
L_023a: ldfld Verse.Pawn pawn
L_023f: ldfld Verse.Pawn_EquipmentTracker equipment
L_0244: ldarg.0
L_0245: ldfld Verse.Pawn pawn
L_024a: ldfld Verse.Pawn_EquipmentTracker equipment
L_024f: callvirt Verse.ThingWithComps get_Primary()
L_0254: callvirt Void DestroyEquipment(Verse.ThingWithComps)
L_0259: Label #17
L_0259: Label #22
L_0259: Label #23
L_0259: Label #25
L_0259: Label #27
L_0259: br Label #28
L_025e: Label #5
L_025e: ldarg.0
L_025f: call Boolean ShouldBeDowned()
L_0264: brtrue Label #29
L_0269: ldarg.0
L_026a: call Void MakeUndowned()
L_026f: br Label #0
L_0274: Label #2
L_0274: Label #28
L_0274: Label #29
L_0274: br Label #0
L_0279: Label #0
L_0279: ret
DONE

PATCHING RimWorld.RestUtility Single WakeThreshold(Verse.Pawn)


L_0000: Local var #0 Verse.AI.Group.Lord
L_0000: Local var #1 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #2 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #3 System.Single
L_0000: ldc.r4 0
L_0005: stloc 3 (System.Single)
L_0006: ldarg.0
L_0007: call Verse.AI.Group.Lord GetLord(Verse.Pawn)
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldloc.0
L_0014: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0019: brfalse Label #3
L_001e: ldloc.0
L_001f: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0024: callvirt Nullable`1 get_CustomWakeThreshold()
L_0029: stloc.1
L_002a: ldloca.s 1 (System.Nullable`1[System.Single])
L_002c: call Boolean get_HasValue()
L_0031: brfalse Label #4
L_0036: ldloc.0
L_0037: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_003c: callvirt Nullable`1 get_CustomWakeThreshold()
L_0041: stloc.2
L_0042: ldloca.s 2 (System.Nullable`1[System.Single])
L_0044: call Single get_Value()
L_0049: br Label #0
L_004e: Label #2
L_004e: Label #3
L_004e: Label #4
L_004e: ldc.r4 1
L_0053: br Label #0
L_0058: Label #0
L_0058: stloc 3 (System.Single)
L_0059: ldloca 3 (System.Single)
L_005b: ldarga 0
L_0061: call Void WakeThreshold_Patch(Single ByRef, Verse.Pawn ByRef)
L_0066: ldloc 3 (System.Single)
L_0067: ret
DONE

PATCHING Verse.Verb_Shoot Boolean TryCastShot()


L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 1 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean TryCastShot()
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldarg.0
L_0014: call Boolean get_CasterIsPawn()
L_0019: brfalse Label #3
L_001e: ldarg.0
L_001f: call Verse.Pawn get_CasterPawn()
L_0024: ldfld RimWorld.Pawn_RecordsTracker records
L_0029: ldsfld RimWorld.RecordDef ShotsFired
L_002e: callvirt Void Increment(RimWorld.RecordDef)
L_0033: Label #2
L_0033: Label #3
L_0033: ldloc.0
L_0034: br Label #0
L_0039: Label #0
L_0039: stloc 1 (System.Boolean)
L_003a: ldarga 0
L_0040: call Void TryCastShot_Patch(Verse.Verb_Shoot ByRef)
L_0045: ldloc 1 (System.Boolean)
L_0046: ret
DONE

PATCHING Verse.Pawn_EquipmentTracker Void


Notify_EquipmentAdded(Verse.ThingWithComps)
L_0000: Local var #0 Verse.Verb
L_0000: Local var #1 System.Collections.Generic.List`1+Enumerator[[Verse.Verb,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: ldarg.1
L_0001: callvirt Verse.CompEquippable GetComp[CompEquippable]()
L_0006: callvirt System.Collections.Generic.List`1[Verse.Verb] get_AllVerbs()
L_000b: callvirt Enumerator GetEnumerator()
L_0010: stloc.1
L_0011: br Label #2
L_0016: Label #3
L_0016: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0018: call Verse.Verb get_Current()
L_001d: stloc.0
L_001e: ldloc.0
L_001f: ldarg.0
L_0020: ldfld Verse.Pawn pawn
L_0025: stfld Verse.Thing caster
L_002a: ldloc.0
L_002b: callvirt Void Notify_PickedUp()
L_0030: Label #2
L_0030: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0032: call Boolean MoveNext()
L_0037: brtrue Label #3
L_003c: leave Label #4
L_0041: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0043: constrained. System.Collections.Generic.List`1+Enumerator[Verse.Verb]
L_0049: callvirt Void Dispose()
L_004e: endfinally
L_004f: Label #4
L_004f: br Label #0
L_0054: Label #0
L_0054: ldarga 1
L_005a: ldarga 0
L_0060: call Void Notify_EquipmentAdded_Patch(Verse.ThingWithComps ByRef,
Verse.Pawn_EquipmentTracker ByRef)
L_0065: ret
DONE

PATCHING RimWorld.PawnWeaponGenerator Void TryGenerateWeaponFor(Verse.Pawn)


L_0000: Local var #0 System.Single
L_0000: Local var #1 System.Int32
L_0000: Local var #2
RimWorld.PawnWeaponGenerator+<TryGenerateWeaponFor>c__AnonStorey2
L_0000: Local var #3 RimWorld.ThingStuffPair
L_0000: Local var #4 Verse.ThingWithComps
L_0000: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0005: callvirt Void Clear()
L_000a: ldarg.0
L_000b: ldfld Verse.PawnKindDef kindDef
L_0010: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0015: brfalse Label #2
L_001a: ldarg.0
L_001b: ldfld Verse.PawnKindDef kindDef
L_0020: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0025: callvirt Int32 get_Count()
L_002a: brtrue Label #3
L_002f: Label #2
L_002f: br Label #0
L_0034: Label #3
L_0034: ldarg.0
L_0035: callvirt Verse.RaceProperties get_RaceProps()
L_003a: callvirt Boolean get_ToolUser()
L_003f: brtrue Label #4
L_0044: br Label #0
L_0049: Label #4
L_0049: ldarg.0
L_004a: ldfld Verse.Pawn_HealthTracker health
L_004f: ldfld Verse.PawnCapacitiesHandler capacities
L_0054: ldsfld Verse.PawnCapacityDef Manipulation
L_0059: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_005e: brtrue Label #5
L_0063: br Label #0
L_0068: Label #5
L_0068: ldarg.0
L_0069: ldfld RimWorld.Pawn_StoryTracker story
L_006e: brfalse Label #6
L_0073: ldarg.0
L_0074: ldfld RimWorld.Pawn_StoryTracker story
L_0079: ldc.i4.8
L_007a: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_007f: brfalse Label #7
L_0084: br Label #0
L_0089: Label #6
L_0089: Label #7
L_0089: ldarg.0
L_008a: ldfld Verse.PawnKindDef kindDef
L_008f: ldflda Verse.FloatRange weaponMoney
L_0094: call Single get_RandomInRange()
L_0099: stloc.0
L_009a: ldc.i4.0
L_009b: stloc.1
L_009c: br Label #8
L_00a1: Label #16
L_00a1: newobj Void .ctor()
L_00a6: stloc.2
L_00a7: ldloc.2
L_00a8: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_00ad: ldloc.1
L_00ae: callvirt ThingStuffPair get_Item(Int32)
L_00b3: stfld RimWorld.ThingStuffPair w
L_00b8: ldloc.2
L_00b9: ldflda RimWorld.ThingStuffPair w
L_00be: call Single get_Price()
L_00c3: ldloc.0
L_00c4: ble.un Label #9
L_00c9: br Label #10
L_00ce: Label #9
L_00ce: ldarg.0
L_00cf: ldfld Verse.PawnKindDef kindDef
L_00d4: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_00d9: ldloc.2
L_00da: ldftn Boolean <>m__0(System.String)
L_00e0: newobj Void .ctor(Object, IntPtr)
L_00e5: call Boolean Any[String](System.Collections.Generic.List`1[System.String],
System.Predicate`1[System.String])
L_00ea: brtrue Label #11
L_00ef: br Label #12
L_00f4: Label #11
L_00f4: ldloc.2
L_00f5: ldflda RimWorld.ThingStuffPair w
L_00fa: ldfld Verse.ThingDef thing
L_00ff: ldfld System.Single generateAllowChance
L_0104: ldc.r4 1
L_0109: bge.un Label #13
L_010e: ldarg.0
L_010f: ldfld System.Int32 thingIDNumber
L_0114: ldc.i4 28554824
L_0119: xor
L_011a: call Single ValueSeeded(Int32)
L_011f: ldloc.2
L_0120: ldflda RimWorld.ThingStuffPair w
L_0125: ldfld Verse.ThingDef thing
L_012a: ldfld System.Single generateAllowChance
L_012f: ble.un Label #14
L_0134: br Label #15
L_0139: Label #13
L_0139: Label #14
L_0139: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_013e: ldloc.2
L_013f: ldfld RimWorld.ThingStuffPair w
L_0144: callvirt Void Add(ThingStuffPair)
L_0149: Label #10
L_0149: Label #12
L_0149: Label #15
L_0149: ldloc.1
L_014a: ldc.i4.1
L_014b: add
L_014c: stloc.1
L_014d: Label #8
L_014d: ldloc.1
L_014e: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_0153: callvirt Int32 get_Count()
L_0158: blt Label #16
L_015d: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0162: callvirt Int32 get_Count()
L_0167: brtrue Label #17
L_016c: br Label #0
L_0171: ldarg.0
L_0172: ldloc.2
L_0173: callvirt System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
FilterChildWeapons(Verse.Pawn,
System.Collections.Generic.List`1[RimWorld.ThingStuffPair])
L_0178: stloc.2
L_0179: Label #17
L_0179: ldarg.0
L_017a: ldfld Verse.Pawn_EquipmentTracker equipment
L_017f: ldc.i4.0
L_0180: callvirt Void DestroyAllEquipment(DestroyMode)
L_0185: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_018a: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_018f: brtrue Label #18
L_0194: ldnull
L_0195: ldftn Single <TryGenerateWeaponFor>m__2(ThingStuffPair)
L_019b: newobj Void .ctor(Object, IntPtr)
L_01a0: stsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01a5: Label #18
L_01a5: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01aa: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01ac: call Boolean TryRandomElementByWeight[ThingStuffPair](IEnumerable`1,
System.Func`2[RimWorld.ThingStuffPair,System.Single], ThingStuffPair ByRef)
L_01b1: brfalse Label #19
L_01b6: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01b8: ldfld Verse.ThingDef thing
L_01bd: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01bf: ldfld Verse.ThingDef stuff
L_01c4: call Verse.Thing MakeThing(Verse.ThingDef, Verse.ThingDef)
L_01c9: castclass Verse.ThingWithComps
L_01ce: stloc.s 4 (Verse.ThingWithComps)
L_01d0: ldloc.s 4 (Verse.ThingWithComps)
L_01d2: ldarg.0
L_01d3: call Void PostProcessGeneratedGear(Verse.Thing, Verse.Pawn)
L_01d8: ldarg.0
L_01d9: ldfld Verse.Pawn_EquipmentTracker equipment
L_01de: ldloc.s 4 (Verse.ThingWithComps)
L_01e0: callvirt Void AddEquipment(Verse.ThingWithComps)
L_01e5: Label #19
L_01e5: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_01ea: callvirt Void Clear()
L_01ef: br Label #0
L_01f4: Label #0
L_01f4: ret
DONE

PATCHING RimWorld.Bill_Medical Void Notify_DoBillStarted(Verse.Pawn)


L_0000: Local var #0 System.Collections.Generic.List`1[[Verse.ThingStackPartClass,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #1 System.Int32
L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void Notify_DoBillStarted(Verse.Pawn)
L_0007: ldarg.0
L_0008: ldnull
L_0009: stfld Verse.ThingDef consumedInitialMedicineDef
L_000e: ldarg.0
L_000f: call Verse.Pawn get_GiverPawn()
L_0014: callvirt Boolean get_Dead()
L_0019: brtrue Label #2
L_001e: ldarg.0
L_001f: ldfld Verse.RecipeDef recipe
L_0024: call Boolean RecipeHasNoIngredients(Verse.RecipeDef)
L_0029: brtrue Label #2
L_002e: ldarg.0
L_002f: ldfld Verse.RecipeDef recipe
L_0034: ldfld System.Boolean anesthetize
L_0039: brfalse Label #3
L_003e: ldarg.0
L_003f: call Verse.Pawn get_GiverPawn()
L_0044: call Boolean TryAnesthetize(Verse.Pawn)
L_0049: brfalse Label #4
L_004e: ldarg.1
L_004f: callvirt Verse.AI.Job get_CurJob()
L_0054: ldfld System.Collections.Generic.List`1[Verse.ThingStackPartClass]
placedThings
L_0059: stloc.0
L_005a: ldc.i4.0
L_005b: stloc.1
L_005c: br Label #5
L_0061: Label #10
L_0061: ldloc.0
L_0062: ldloc.1
L_0063: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0068: ldfld Verse.Thing thing
L_006d: isinst RimWorld.Medicine
L_0072: brfalse Label #6
L_0077: ldarg.0
L_0078: ldfld Verse.RecipeDef recipe
L_007d: callvirt Verse.RecipeWorker get_Worker()
L_0082: ldloc.0
L_0083: ldloc.1
L_0084: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0089: ldfld Verse.Thing thing
L_008e: ldc.i4.1
L_008f: callvirt Verse.Thing SplitOff(Int32)
L_0094: ldarg.0
L_0095: ldfld Verse.RecipeDef recipe
L_009a: ldarg.1
L_009b: callvirt Verse.Map get_MapHeld()
L_00a0: callvirt Void ConsumeIngredient(Verse.Thing, Verse.RecipeDef, Verse.Map)
L_00a5: ldloc.0
L_00a6: ldloc.1
L_00a7: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ac: dup
L_00ad: callvirt Int32 get_Count()
L_00b2: ldc.i4.1
L_00b3: sub
L_00b4: callvirt Void set_Count(Int32)
L_00b9: ldarg.0
L_00ba: ldloc.0
L_00bb: ldloc.1
L_00bc: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00c1: ldfld Verse.Thing thing
L_00c6: ldfld Verse.ThingDef def
L_00cb: stfld Verse.ThingDef consumedInitialMedicineDef
L_00d0: ldloc.0
L_00d1: ldloc.1
L_00d2: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00d7: ldfld Verse.Thing thing
L_00dc: callvirt Boolean get_Destroyed()
L_00e1: brtrue Label #7
L_00e6: ldloc.0
L_00e7: ldloc.1
L_00e8: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ed: callvirt Int32 get_Count()
L_00f2: ldc.i4.0
L_00f3: bgt Label #8
L_00f8: Label #7
L_00f8: ldloc.0
L_00f9: ldloc.1
L_00fa: callvirt Void RemoveAt(Int32)
L_00ff: Label #8
L_00ff: br Label #9
L_0104: Label #6
L_0104: ldloc.1
L_0105: ldc.i4.1
L_0106: add
L_0107: stloc.1
L_0108: Label #5
L_0108: ldloc.1
L_0109: ldloc.0
L_010a: callvirt Int32 get_Count()
L_010f: blt Label #10
L_0114: Label #2
L_0114: Label #3
L_0114: Label #4
L_0114: Label #9
L_0114: br Label #0
L_0119: Label #0
L_0119: ret
DONE

PATCHING RimWorld.Building_Bed IEnumerable`1 get_AssigningCandidates()


L_0000: ldarg.0
L_0001: callvirt IEnumerable`1 BedCandidates(RimWorld.Building_Bed)
L_0006: Label #0
L_0006: ret
DONE

PATCHING RimWorld.RestUtility RimWorld.Building_Bed FindBedFor(Verse.Pawn,


Verse.Pawn, Boolean, Boolean, Boolean)
L_0000: Local var #0 RimWorld.RestUtility+<FindBedFor>c__AnonStorey0
L_0000: Local var #1 RimWorld.Building_Bed
L_0000: Local var #2 Verse.Pawn
L_0000: Local var #3 Verse.Pawn
L_0000: Local var #4 System.Boolean
L_0000: Local var #5 System.Boolean
L_0000: Local var #6 System.Boolean
L_0000: Local var #7 System.Int32
L_0000: Local var #8 Verse.ThingDef
L_0000: Local var #9 System.Int32
L_0000: Local var #10 RimWorld.RestUtility+<FindBedFor>c__AnonStorey1
L_0000: Local var #11 RimWorld.Building_Bed
L_0000: Local var #12 RimWorld.DirectPawnRelation
L_0000: Local var #13 RimWorld.Building_Bed
L_0000: Local var #14 System.Int32
L_0000: Local var #15 RimWorld.RestUtility+<FindBedFor>c__AnonStorey2
L_0000: Local var #16 System.Int32
L_0000: Local var #17 Verse.ThingDef
L_0000: Local var #18 RimWorld.Building_Bed
L_0000: Local var #19 RimWorld.Building_Bed
L_0000: ldnull
L_0001: stloc 19 (RimWorld.Building_Bed)
L_0003: newobj Void .ctor()
L_0008: stloc.0
L_0009: ldloc.0
L_000a: ldarg.0
L_000b: stfld Verse.Pawn sleeper
L_0010: ldloc.0
L_0011: ldarg.1
L_0012: stfld Verse.Pawn traveler
L_0017: ldloc.0
L_0018: ldarg.2
L_0019: stfld System.Boolean sleeperWillBePrisoner
L_001e: ldloc.0
L_001f: ldarg.3
L_0020: stfld System.Boolean checkSocialProperness
L_0025: ldloc.0
L_0026: ldarg.s 4
L_0028: stfld System.Boolean ignoreOtherReservations
L_002d: ldloc.0
L_002e: ldfld Verse.Pawn sleeper
L_0033: call Boolean ShouldSeekMedicalRest(Verse.Pawn)
L_0038: brfalse Label #2
L_003d: ldloc.0
L_003e: ldfld Verse.Pawn sleeper
L_0043: call Boolean InBed(Verse.Pawn)
L_0048: brfalse Label #3
L_004d: ldloc.0
L_004e: ldfld Verse.Pawn sleeper
L_0053: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0058: callvirt Boolean get_Medical()
L_005d: brfalse Label #4
L_0062: ldloc.0
L_0063: ldfld Verse.Pawn sleeper
L_0068: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_006d: stloc.1
L_006e: ldloc.0
L_006f: ldfld Verse.Pawn sleeper
L_0074: stloc.2
L_0075: ldloc.0
L_0076: ldfld Verse.Pawn traveler
L_007b: stloc.3
L_007c: ldloc.0
L_007d: ldfld System.Boolean sleeperWillBePrisoner
L_0082: stloc.s 4 (System.Boolean)
L_0084: ldloc.0
L_0085: ldfld System.Boolean checkSocialProperness
L_008a: stloc.s 5 (System.Boolean)
L_008c: ldloc.0
L_008d: ldfld System.Boolean ignoreOtherReservations
L_0092: stloc.s 6 (System.Boolean)
L_0094: ldloc.1
L_0095: ldloc.2
L_0096: ldloc.3
L_0097: ldloc.s 4 (System.Boolean)
L_0099: ldloc.s 5 (System.Boolean)
L_009b: ldc.i4.0
L_009c: ldloc.s 6 (System.Boolean)
L_009e: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_00a3: brfalse Label #5
L_00a8: ldloc.0
L_00a9: ldfld Verse.Pawn sleeper
L_00ae: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00b3: br Label #0
L_00b8: Label #3
L_00b8: Label #4
L_00b8: Label #5
L_00b8: ldc.i4.0
L_00b9: stloc.s 7 (System.Int32)
L_00bb: br Label #6
L_00c0: Label #14
L_00c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_00c5: ldloc.s 7 (System.Int32)
L_00c7: callvirt Verse.ThingDef get_Item(Int32)
L_00cc: stloc.s 8 (Verse.ThingDef)
L_00ce: ldloc.0
L_00cf: ldfld Verse.Pawn sleeper
L_00d4: ldloc.s 8 (Verse.ThingDef)
L_00d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_00db: brtrue Label #7
L_00e0: br Label #8
L_00e5: Label #7
L_00e5: ldc.i4.0
L_00e6: stloc.s 9 (System.Int32)
L_00e8: br Label #9
L_00ed: Label #13
L_00ed: newobj Void .ctor()
L_00f2: stloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f4: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f6: ldloc.0
L_00f7: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_00fc: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00fe: ldloc.s 9 (System.Int32)
L_0100: brtrue Label #10
L_0105: ldc.i4.1
L_0106: br Label #11
L_010b: Label #10
L_010b: ldc.i4.3
L_010c: Label #11
L_010c: stfld Verse.Danger maxDanger
L_0111: ldloc.0
L_0112: ldfld Verse.Pawn sleeper
L_0117: callvirt IntVec3 get_Position()
L_011c: ldloc.0
L_011d: ldfld Verse.Pawn sleeper
L_0122: callvirt Verse.Map get_Map()
L_0127: ldloc.s 8 (Verse.ThingDef)
L_0129: call ThingRequest ForDef(Verse.ThingDef)
L_012e: ldc.i4.1
L_012f: ldloc.0
L_0130: ldfld Verse.Pawn traveler
L_0135: ldc.i4.3
L_0136: ldc.i4.0
L_0137: ldc.i4.0
L_0138: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_013d: ldc.r4 9999
L_0142: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_0144: ldftn Boolean <>m__0(Verse.Thing)
L_014a: newobj Void .ctor(Object, IntPtr)
L_014f: ldnull
L_0150: ldc.i4.0
L_0151: ldc.i4.m1
L_0152: ldc.i4.0
L_0153: ldc.i4.6
L_0154: ldc.i4.0
L_0155: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_015a: castclass RimWorld.Building_Bed
L_015f: stloc.s 11 (RimWorld.Building_Bed)
L_0161: ldloc.s 11 (RimWorld.Building_Bed)
L_0163: brfalse Label #12
L_0168: ldloc.s 11 (RimWorld.Building_Bed)
L_016a: br Label #0
L_016f: Label #12
L_016f: ldloc.s 9 (System.Int32)
L_0171: ldc.i4.1
L_0172: add
L_0173: stloc.s 9 (System.Int32)
L_0175: Label #9
L_0175: ldloc.s 9 (System.Int32)
L_0177: ldc.i4.2
L_0178: blt Label #13
L_017d: Label #8
L_017d: ldloc.s 7 (System.Int32)
L_017f: ldc.i4.1
L_0180: add
L_0181: stloc.s 7 (System.Int32)
L_0183: Label #6
L_0183: ldloc.s 7 (System.Int32)
L_0185: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_018a: callvirt Int32 get_Count()
L_018f: blt Label #14
L_0194: Label #2
L_0194: ldloc.0
L_0195: ldfld Verse.Pawn sleeper
L_019a: ldfld RimWorld.Pawn_Ownership ownership
L_019f: brfalse Label #15
L_01a4: ldloc.0
L_01a5: ldfld Verse.Pawn sleeper
L_01aa: ldfld RimWorld.Pawn_Ownership ownership
L_01af: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01b4: brfalse Label #16
L_01b9: ldloc.0
L_01ba: ldfld Verse.Pawn sleeper
L_01bf: ldfld RimWorld.Pawn_Ownership ownership
L_01c4: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01c9: stloc.1
L_01ca: ldloc.0
L_01cb: ldfld Verse.Pawn sleeper
L_01d0: stloc.3
L_01d1: ldloc.0
L_01d2: ldfld Verse.Pawn traveler
L_01d7: stloc.2
L_01d8: ldloc.0
L_01d9: ldfld System.Boolean sleeperWillBePrisoner
L_01de: stloc.s 6 (System.Boolean)
L_01e0: ldloc.0
L_01e1: ldfld System.Boolean checkSocialProperness
L_01e6: stloc.s 5 (System.Boolean)
L_01e8: ldloc.0
L_01e9: ldfld System.Boolean ignoreOtherReservations
L_01ee: stloc.s 4 (System.Boolean)
L_01f0: ldloc.1
L_01f1: ldloc.3
L_01f2: ldloc.2
L_01f3: ldloc.s 6 (System.Boolean)
L_01f5: ldloc.s 5 (System.Boolean)
L_01f7: ldc.i4.0
L_01f8: ldloc.s 4 (System.Boolean)
L_01fa: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_01ff: brfalse Label #17
L_0204: ldloc.0
L_0205: ldfld Verse.Pawn sleeper
L_020a: ldfld RimWorld.Pawn_Ownership ownership
L_020f: callvirt RimWorld.Building_Bed get_OwnedBed()
L_0214: br Label #0
L_0219: Label #15
L_0219: Label #16
L_0219: Label #17
L_0219: ldloc.0
L_021a: ldfld Verse.Pawn sleeper
L_021f: ldc.i4.0
L_0220: call RimWorld.DirectPawnRelation
ExistingMostLikedLovePartnerRel(Verse.Pawn, Boolean)
L_0225: stloc.s 12 (RimWorld.DirectPawnRelation)
L_0227: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0229: brfalse Label #18
L_022e: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0230: ldfld Verse.Pawn otherPawn
L_0235: ldfld RimWorld.Pawn_Ownership ownership
L_023a: callvirt RimWorld.Building_Bed get_OwnedBed()
L_023f: stloc.s 13 (RimWorld.Building_Bed)
L_0241: ldloc.s 13 (RimWorld.Building_Bed)
L_0243: brfalse Label #19
L_0248: ldloc.s 13 (RimWorld.Building_Bed)
L_024a: stloc.1
L_024b: ldloc.0
L_024c: ldfld Verse.Pawn sleeper
L_0251: stloc.2
L_0252: ldloc.0
L_0253: ldfld Verse.Pawn traveler
L_0258: stloc.3
L_0259: ldloc.0
L_025a: ldfld System.Boolean sleeperWillBePrisoner
L_025f: stloc.s 4 (System.Boolean)
L_0261: ldloc.0
L_0262: ldfld System.Boolean checkSocialProperness
L_0267: stloc.s 5 (System.Boolean)
L_0269: ldloc.0
L_026a: ldfld System.Boolean ignoreOtherReservations
L_026f: stloc.s 6 (System.Boolean)
L_0271: ldloc.1
L_0272: ldloc.2
L_0273: ldloc.3
L_0274: ldloc.s 4 (System.Boolean)
L_0276: ldloc.s 5 (System.Boolean)
L_0278: ldc.i4.0
L_0279: ldloc.s 6 (System.Boolean)
L_027b: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_0280: brfalse Label #20
L_0285: ldloc.s 13 (RimWorld.Building_Bed)
L_0287: br Label #0
L_028c: Label #18
L_028c: Label #19
L_028c: Label #20
L_028c: ldc.i4.0
L_028d: stloc.s 14 (System.Int32)
L_028f: br Label #21
L_0294: Label #29
L_0294: newobj Void .ctor()
L_0299: stloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029b: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029d: ldloc.0
L_029e: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_02a3: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_02a5: ldloc.s 14 (System.Int32)
L_02a7: brtrue Label #22
L_02ac: ldc.i4.1
L_02ad: br Label #23
L_02b2: Label #22
L_02b2: ldc.i4.3
L_02b3: Label #23
L_02b3: stfld Verse.Danger maxDanger
L_02b8: ldc.i4.0
L_02b9: stloc.s 16 (System.Int32)
L_02bb: br Label #24
L_02c0: Label #28
L_02c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_02c5: ldloc.s 16 (System.Int32)
L_02c7: callvirt Verse.ThingDef get_Item(Int32)
L_02cc: stloc.s 17 (Verse.ThingDef)
L_02ce: ldloc.0
L_02cf: ldfld Verse.Pawn sleeper
L_02d4: ldloc.s 17 (Verse.ThingDef)
L_02d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_02db: brtrue Label #25
L_02e0: br Label #26
L_02e5: Label #25
L_02e5: ldloc.0
L_02e6: ldfld Verse.Pawn sleeper
L_02eb: callvirt IntVec3 get_Position()
L_02f0: ldloc.0
L_02f1: ldfld Verse.Pawn sleeper
L_02f6: callvirt Verse.Map get_Map()
L_02fb: ldloc.s 17 (Verse.ThingDef)
L_02fd: call ThingRequest ForDef(Verse.ThingDef)
L_0302: ldc.i4.1
L_0303: ldloc.0
L_0304: ldfld Verse.Pawn traveler
L_0309: ldc.i4.3
L_030a: ldc.i4.0
L_030b: ldc.i4.0
L_030c: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_0311: ldc.r4 9999
L_0316: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_0318: ldftn Boolean <>m__0(Verse.Thing)
L_031e: newobj Void .ctor(Object, IntPtr)
L_0323: ldnull
L_0324: ldc.i4.0
L_0325: ldc.i4.m1
L_0326: ldc.i4.0
L_0327: ldc.i4.6
L_0328: ldc.i4.0
L_0329: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_032e: castclass RimWorld.Building_Bed
L_0333: stloc.s 18 (RimWorld.Building_Bed)
L_0335: ldloc.s 18 (RimWorld.Building_Bed)
L_0337: brfalse Label #27
L_033c: ldloc.s 18 (RimWorld.Building_Bed)
L_033e: br Label #0
L_0343: Label #26
L_0343: Label #27
L_0343: ldloc.s 16 (System.Int32)
L_0345: ldc.i4.1
L_0346: add
L_0347: stloc.s 16 (System.Int32)
L_0349: Label #24
L_0349: ldloc.s 16 (System.Int32)
L_034b: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_0350: callvirt Int32 get_Count()
L_0355: blt Label #28
L_035a: ldloc.s 14 (System.Int32)
L_035c: ldc.i4.1
L_035d: add
L_035e: stloc.s 14 (System.Int32)
L_0360: Label #21
L_0360: ldloc.s 14 (System.Int32)
L_0362: ldc.i4.2
L_0363: blt Label #29
L_0368: ldnull
L_0369: br Label #0
L_036e: Label #0
L_036e: stloc 19 (RimWorld.Building_Bed)
L_0370: ldarga 0
L_0376: ldloca 19 (RimWorld.Building_Bed)
L_0378: ldarga 1
L_037e: ldarga 4
L_0384: ldarga 2
L_038a: ldarga 3
L_0390: call Void FindBedFor_Patch(Verse.Pawn ByRef, RimWorld.Building_Bed ByRef,
Verse.Pawn ByRef, Boolean ByRef, Boolean ByRef, Boolean ByRef)
L_0395: ldloc 19 (RimWorld.Building_Bed)
L_0397: ret
DONE

PATCHING RimWorld.JobGiver_DoLovin Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 1 (Verse.AI.Job)
L_0002: call Verse.TickManager get_TickManager()
L_0007: callvirt Int32 get_TicksGame()
L_000c: ldarg.1
L_000d: ldfld Verse.AI.Pawn_MindState mindState
L_0012: ldfld System.Int32 canLovinTick
L_0017: bge Label #2
L_001c: ldnull
L_001d: br Label #0
L_0022: Label #2
L_0022: ldarg.1
L_0023: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0028: brfalse Label #3
L_002d: ldarg.1
L_002e: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0033: callvirt Boolean get_Medical()
L_0038: brtrue Label #4
L_003d: ldarg.1
L_003e: ldfld Verse.Pawn_HealthTracker health
L_0043: ldfld Verse.PawnCapacitiesHandler capacities
L_0048: callvirt Boolean get_CanBeAwake()
L_004d: brtrue Label #5
L_0052: Label #3
L_0052: Label #4
L_0052: ldnull
L_0053: br Label #0
L_0058: Label #5
L_0058: ldarg.1
L_0059: call Verse.Pawn GetPartnerInMyBed(Verse.Pawn)
L_005e: stloc.0
L_005f: ldloc.0
L_0060: brfalse Label #6
L_0065: ldloc.0
L_0066: ldfld Verse.Pawn_HealthTracker health
L_006b: ldfld Verse.PawnCapacitiesHandler capacities
L_0070: callvirt Boolean get_CanBeAwake()
L_0075: brfalse Label #7
L_007a: call Verse.TickManager get_TickManager()
L_007f: callvirt Int32 get_TicksGame()
L_0084: ldloc.0
L_0085: ldfld Verse.AI.Pawn_MindState mindState
L_008a: ldfld System.Int32 canLovinTick
L_008f: bge Label #8
L_0094: Label #6
L_0094: Label #7
L_0094: ldnull
L_0095: br Label #0
L_009a: Label #8
L_009a: ldarg.1
L_009b: ldloc.0
L_009c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00a1: ldc.i4.1
L_00a2: ldc.i4.m1
L_00a3: ldnull
L_00a4: ldc.i4.0
L_00a5: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00aa: brfalse Label #9
L_00af: ldloc.0
L_00b0: ldarg.1
L_00b1: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00b6: ldc.i4.1
L_00b7: ldc.i4.m1
L_00b8: ldnull
L_00b9: ldc.i4.0
L_00ba: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00bf: brtrue Label #10
L_00c4: Label #9
L_00c4: ldnull
L_00c5: br Label #0
L_00ca: Label #10
L_00ca: ldsfld Verse.JobDef Lovin
L_00cf: ldloc.0
L_00d0: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00d5: ldarg.1
L_00d6: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00db: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00e0: newobj Void .ctor(JobDef, LocalTargetInfo, LocalTargetInfo)
L_00e5: br Label #0
L_00ea: Label #0
L_00ea: stloc 1 (Verse.AI.Job)
L_00eb: ldloca 1 (Verse.AI.Job)
L_00ed: ldarga 1
L_00f3: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_00f8: ldloc 1 (Verse.AI.Job)
L_00f9: ret
DONE

PATCHING RimWorld.JobDriver_Lovin+<MakeNewToils>c__Iterator0 Void <>m__4()


L_0000: Local var #0 RimWorld.Thought_Memory
L_0000: ldsfld RimWorld.ThoughtDef GotSomeLovin
L_0005: call RimWorld.Thought MakeThought(RimWorld.ThoughtDef)
L_000a: castclass RimWorld.Thought_Memory
L_000f: stloc.0
L_0010: ldarg.0
L_0011: ldfld RimWorld.JobDriver_Lovin $this
L_0016: ldfld Verse.Pawn pawn
L_001b: ldfld RimWorld.Pawn_NeedsTracker needs
L_0020: ldfld RimWorld.Need_Mood mood
L_0025: ldfld RimWorld.ThoughtHandler thoughts
L_002a: ldfld RimWorld.MemoryThoughtHandler memories
L_002f: ldloc.0
L_0030: ldarg.0
L_0031: ldfld RimWorld.JobDriver_Lovin $this
L_0036: call Verse.Pawn get_Partner()
L_003b: callvirt Void TryGainMemory(RimWorld.Thought_Memory, Verse.Pawn)
L_0040: ldarg.0
L_0041: ldfld RimWorld.JobDriver_Lovin $this
L_0046: ldfld Verse.Pawn pawn
L_004b: ldfld Verse.AI.Pawn_MindState mindState
L_0050: call Verse.TickManager get_TickManager()
L_0055: callvirt Int32 get_TicksGame()
L_005a: ldarg.0
L_005b: ldfld RimWorld.JobDriver_Lovin $this
L_0060: ldarg.0
L_0061: ldfld RimWorld.JobDriver_Lovin $this
L_0066: ldfld Verse.Pawn pawn
L_006b: call Int32 GenerateRandomMinTicksToNextLovin(Verse.Pawn)
L_0070: add
L_0071: stfld System.Int32 canLovinTick
L_0076: ldarg.0
L_0077: ldfld RimWorld.JobDriver_Lovin $this
L_007c: ldfld Verse.Pawn pawn
L_0081: ldarg.0
L_0082: ldfld RimWorld.JobDriver_Lovin $this
L_0087: call Verse.Pawn get_Partner()
L_008c: call Void TryToImpregnate(Verse.Pawn, Verse.Pawn)
L_0091: br Label #0
L_0096: Label #0
L_0096: ret
DONE
PATCHING RimWorld.JobDriver_Wear+<MakeNewToils>c__Iterator0 Boolean MoveNext()
L_0000: Local var #0 System.UInt32
L_0000: ldarg.0
L_0001: ldfld System.Int32 $PC
L_0006: stloc.0
L_0007: ldarg.0
L_0008: ldc.i4.m1
L_0009: stfld System.Int32 $PC
L_000e: ldloc.0
L_000f: switch Labels #2 #3 #4 #5
L_0024: br Label #6
L_0029: Label #2
L_0029: ldarg.0
L_002a: ldfld RimWorld.JobDriver_Wear $this
L_002f: call RimWorld.JobDriver_Wear FailOnBaby[JobDriver_Wear]
(RimWorld.JobDriver_Wear)
L_0034: pop
L_0035: ldarg.0
L_0036: newobj Void .ctor()
L_003b: stfld Verse.AI.Toil <gotoApparel>__1
L_0040: ldarg.0
L_0041: ldfld Verse.AI.Toil <gotoApparel>__1
L_0046: ldarg.0
L_0047: ldftn Void <>m__0()
L_004d: newobj Void .ctor(Object, IntPtr)
L_0052: stfld System.Action initAction
L_0057: ldarg.0
L_0058: ldfld Verse.AI.Toil <gotoApparel>__1
L_005d: ldc.i4.2
L_005e: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0063: ldarg.0
L_0064: ldfld Verse.AI.Toil <gotoApparel>__1
L_0069: ldc.i4.1
L_006a: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_006f: pop
L_0070: ldarg.0
L_0071: ldarg.0
L_0072: ldfld Verse.AI.Toil <gotoApparel>__1
L_0077: stfld Verse.AI.Toil $current
L_007c: ldarg.0
L_007d: ldfld System.Boolean $disposing
L_0082: brtrue Label #7
L_0087: ldarg.0
L_0088: ldc.i4.1
L_0089: stfld System.Int32 $PC
L_008e: Label #7
L_008e: br Label #8
L_0093: Label #3
L_0093: ldarg.0
L_0094: newobj Void .ctor()
L_0099: stfld Verse.AI.Toil <prepare>__2
L_009e: ldarg.0
L_009f: ldfld Verse.AI.Toil <prepare>__2
L_00a4: ldc.i4.3
L_00a5: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_00aa: ldarg.0
L_00ab: ldfld Verse.AI.Toil <prepare>__2
L_00b0: ldc.i4.s 60
L_00b2: stfld System.Int32 defaultDuration
L_00b7: ldarg.0
L_00b8: ldfld Verse.AI.Toil <prepare>__2
L_00bd: ldc.i4.1
L_00be: ldc.i4.0
L_00bf: ldc.r4 -0.5
L_00c4: call Verse.AI.Toil WithProgressBarToilDelay(Verse.AI.Toil, TargetIndex,
Boolean, Single)
L_00c9: pop
L_00ca: ldarg.0
L_00cb: ldfld Verse.AI.Toil <prepare>__2
L_00d0: ldc.i4.1
L_00d1: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_00d6: pop
L_00d7: ldarg.0
L_00d8: ldarg.0
L_00d9: ldfld Verse.AI.Toil <prepare>__2
L_00de: stfld Verse.AI.Toil $current
L_00e3: ldarg.0
L_00e4: ldfld System.Boolean $disposing
L_00e9: brtrue Label #9
L_00ee: ldarg.0
L_00ef: ldc.i4.2
L_00f0: stfld System.Int32 $PC
L_00f5: Label #9
L_00f5: br Label #10
L_00fa: Label #4
L_00fa: ldarg.0
L_00fb: newobj Void .ctor()
L_0100: stfld Verse.AI.Toil <wear>__3
L_0105: ldarg.0
L_0106: ldfld Verse.AI.Toil <wear>__3
L_010b: ldarg.0
L_010c: ldftn Void <>m__1()
L_0112: newobj Void .ctor(Object, IntPtr)
L_0117: stfld System.Action initAction
L_011c: ldarg.0
L_011d: ldfld Verse.AI.Toil <wear>__3
L_0122: ldc.i4.1
L_0123: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0128: ldarg.0
L_0129: ldarg.0
L_012a: ldfld Verse.AI.Toil <wear>__3
L_012f: stfld Verse.AI.Toil $current
L_0134: ldarg.0
L_0135: ldfld System.Boolean $disposing
L_013a: brtrue Label #11
L_013f: ldarg.0
L_0140: ldc.i4.3
L_0141: stfld System.Int32 $PC
L_0146: Label #11
L_0146: br Label #12
L_014b: Label #5
L_014b: ldarg.0
L_014c: ldc.i4.m1
L_014d: stfld System.Int32 $PC
L_0152: Label #6
L_0152: ldc.i4.0
L_0153: br Label #0
L_0158: Label #8
L_0158: Label #10
L_0158: Label #12
L_0158: ldc.i4.1
L_0159: br Label #0
L_015e: Label #0
L_015e: ret
DONE

PATCHING RimWorld.ThoughtUtility Boolean CanGetThought(Verse.Pawn,


RimWorld.ThoughtDef)
L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Int32
L_0000: Local var #2 System.Boolean
L_0000: Local var #3 System.Int32
L_0000: Local var #4 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 4 (System.Boolean)
L_0007: ldarg.1
L_0008: ldfld System.Boolean validWhileDespawned
L_000d: brtrue Label #2
L_0012: ldarg.0
L_0013: callvirt Boolean get_Spawned()
L_0018: brtrue Label #3
L_001d: ldarg.1
L_001e: callvirt Boolean get_IsMemory()
L_0023: brtrue Label #4
L_0028: ldc.i4.0
L_0029: stloc.0
L_002a: leave Label #5
L_002f: Label #2
L_002f: Label #3
L_002f: Label #4
L_002f: ldarg.1
L_0030: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0035: brfalse Label #6
L_003a: ldc.i4.0
L_003b: stloc.1
L_003c: br Label #7
L_0041: Label #10
L_0041: ldarg.0
L_0042: ldfld RimWorld.Pawn_StoryTracker story
L_0047: ldfld RimWorld.TraitSet traits
L_004c: ldarg.1
L_004d: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0052: ldloc.1
L_0053: callvirt RimWorld.TraitDef get_Item(Int32)
L_0058: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_005d: brfalse Label #8
L_0062: ldc.i4.0
L_0063: stloc.0
L_0064: leave Label #9
L_0069: Label #8
L_0069: ldloc.1
L_006a: ldc.i4.1
L_006b: add
L_006c: stloc.1
L_006d: Label #7
L_006d: ldloc.1
L_006e: ldarg.1
L_006f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0074: callvirt Int32 get_Count()
L_0079: blt Label #10
L_007e: Label #6
L_007e: ldarg.1
L_007f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0084: call Boolean NullOrEmpty[TraitDef](IList`1)
L_0089: brtrue Label #11
L_008e: ldc.i4.0
L_008f: stloc.2
L_0090: ldc.i4.0
L_0091: stloc.3
L_0092: br Label #12
L_0097: Label #19
L_0097: ldarg.0
L_0098: ldfld RimWorld.Pawn_StoryTracker story
L_009d: ldfld RimWorld.TraitSet traits
L_00a2: ldarg.1
L_00a3: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00a8: ldloc.3
L_00a9: callvirt RimWorld.TraitDef get_Item(Int32)
L_00ae: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_00b3: brtrue Label #13
L_00b8: leave Label #14
L_00bd: Label #13
L_00bd: ldarg.1
L_00be: callvirt Boolean get_RequiresSpecificTraitsDegree()
L_00c3: brfalse Label #15
L_00c8: ldarg.1
L_00c9: ldfld System.Int32 requiredTraitsDegree
L_00ce: ldarg.0
L_00cf: ldfld RimWorld.Pawn_StoryTracker story
L_00d4: ldfld RimWorld.TraitSet traits
L_00d9: ldarg.1
L_00da: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00df: ldloc.3
L_00e0: callvirt RimWorld.TraitDef get_Item(Int32)
L_00e5: callvirt Int32 DegreeOfTrait(RimWorld.TraitDef)
L_00ea: beq Label #16
L_00ef: leave Label #17
L_00f4: Label #15
L_00f4: Label #16
L_00f4: ldc.i4.1
L_00f5: stloc.2
L_00f6: leave Label #18
L_00fb: Label #14
L_00fb: Label #17
L_00fb: ldloc.3
L_00fc: ldc.i4.1
L_00fd: add
L_00fe: stloc.3
L_00ff: Label #12
L_00ff: ldloc.3
L_0100: ldarg.1
L_0101: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0106: callvirt Int32 get_Count()
L_010b: blt Label #19
L_0110: Label #18
L_0110: ldloc.2
L_0111: brtrue Label #20
L_0116: ldc.i4.0
L_0117: stloc.0
L_0118: leave Label #21
L_011d: Label #11
L_011d: Label #20
L_011d: ldarg.1
L_011e: ldfld System.Boolean nullifiedIfNotColonist
L_0123: brfalse Label #22
L_0128: ldarg.0
L_0129: callvirt Boolean get_IsColonist()
L_012e: brtrue Label #23
L_0133: ldc.i4.0
L_0134: stloc.0
L_0135: leave Label #24
L_013a: Label #22
L_013a: Label #23
L_013a: ldarg.1
L_013b: ldarg.0
L_013c: call Boolean IsSituationalThoughtNullifiedByHediffs(RimWorld.ThoughtDef,
Verse.Pawn)
L_0141: brfalse Label #25
L_0146: ldc.i4.0
L_0147: stloc.0
L_0148: leave Label #26
L_014d: Label #25
L_014d: ldarg.1
L_014e: ldarg.0
L_014f: call Boolean IsThoughtNullifiedByOwnTales(RimWorld.ThoughtDef, Verse.Pawn)
L_0154: brfalse Label #27
L_0159: ldc.i4.0
L_015a: stloc.0
L_015b: leave Label #28
L_0160: Label #27
L_0160: leave Label #29
L_0165: endfinally
L_0166: Label #29
L_0166: ldc.i4.1
L_0167: br Label #0
L_016c: Label #5
L_016c: Label #9
L_016c: Label #21
L_016c: Label #24
L_016c: Label #26
L_016c: Label #28
L_016c: ldloc.0
L_016d: br Label #0
L_0172: Label #0
L_0172: stloc 4 (System.Boolean)
L_0174: ldarga 0
L_017a: ldarga 1
L_0180: ldloca 4 (System.Boolean)
L_0182: call Void CanGetThought_Patch(Verse.Pawn ByRef, RimWorld.ThoughtDef ByRef,
Boolean ByRef)
L_0187: ldloc 4 (System.Boolean)
L_0189: ret
DONE

PATCHING RimWorld.JobGiver_SocialFighting Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Verb
L_0000: Local var #2 Verse.AI.Job
L_0000: Local var #3 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 3 (Verse.AI.Job)
L_0002: ldarg.1
L_0003: callvirt Verse.RaceProperties get_RaceProps()
L_0008: callvirt Boolean get_Humanlike()
L_000d: brfalse Label #2
L_0012: ldarg.1
L_0013: ldfld RimWorld.Pawn_StoryTracker story
L_0018: ldc.i4.8
L_0019: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_001e: brfalse Label #3
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: Label #3
L_0029: ldarg.1
L_002a: callvirt Verse.AI.MentalState get_MentalState()
L_002f: castclass Verse.AI.MentalState_SocialFighting
L_0034: ldfld Verse.Pawn otherPawn
L_0039: stloc.0
L_003a: ldarg.1
L_003b: ldloca.s 1 (Verse.Verb)
L_003d: call Boolean TryGetRandomVerbForSocialFight(Verse.Pawn, Verse.Verb ByRef)
L_0042: brtrue Label #4
L_0047: ldnull
L_0048: br Label #0
L_004d: Label #4
L_004d: ldsfld Verse.JobDef SocialFight
L_0052: ldloc.0
L_0053: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0058: newobj Void .ctor(JobDef, LocalTargetInfo)
L_005d: stloc.2
L_005e: ldloc.2
L_005f: ldc.i4.1
L_0060: stfld System.Int32 maxNumMeleeAttacks
L_0065: ldloc.2
L_0066: ldloc.1
L_0067: stfld Verse.Verb verbToUse
L_006c: ldloc.2
L_006d: br Label #0
L_0072: Label #0
L_0072: stloc 3 (Verse.AI.Job)
L_0073: ldarga 1
L_0079: ldloca 3 (Verse.AI.Job)
L_007b: call Void TryGiveJob_Postfix(Verse.Pawn ByRef, Verse.AI.Job ByRef)
L_0080: ldloc 3 (Verse.AI.Job)
L_0081: ret
DONE

PATCHING RimWorld.Pawn_ApparelTracker Void ApparelChanged()


L_0000: ldarg.0
L_0001: ldftn Void <ApparelChanged>m__1()
L_0007: newobj Void .ctor(Object, IntPtr)
L_000c: call Void ExecuteWhenFinished(System.Action)
L_0011: br Label #0
L_0016: Label #0
L_0016: ldarga 0
L_001c: call Void ApparelChanged_Postfix(RimWorld.Pawn_ApparelTracker ByRef)
L_0021: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveAllGraphics()


L_0000: Local var #0 Verse.PawnKindLifeStage
L_0000: ldarg.0
L_0001: call Void ClearCache()
L_0006: ldarg.0
L_0007: ldfld Verse.Pawn pawn
L_000c: callvirt Verse.RaceProperties get_RaceProps()
L_0011: callvirt Boolean get_Humanlike()
L_0016: brfalse Label #2
L_001b: ldarg.0
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_StoryTracker story
L_0027: ldfld RimWorld.BodyType bodyType
L_002c: ldsfld UnityEngine.Shader CutoutSkin
L_0031: ldarg.0
L_0032: ldfld Verse.Pawn pawn
L_0037: ldfld RimWorld.Pawn_StoryTracker story
L_003c: callvirt Color get_SkinColor()
L_0041: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_0046: stfld Verse.Graphic nakedGraphic
L_004b: ldarg.0
L_004c: ldarg.0
L_004d: ldfld Verse.Pawn pawn
L_0052: ldfld RimWorld.Pawn_StoryTracker story
L_0057: ldfld RimWorld.BodyType bodyType
L_005c: ldsfld UnityEngine.Shader CutoutSkin
L_0061: ldsfld UnityEngine.Color RottingColor
L_0066: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_006b: stfld Verse.Graphic rottingGraphic
L_0070: ldarg.0
L_0071: ldstr "Things/Pawn/Humanlike/HumanoidDessicated"
L_0076: ldsfld UnityEngine.Shader Cutout
L_007b: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader)
L_0080: stfld Verse.Graphic dessicatedGraphic
L_0085: ldarg.0
L_0086: ldarg.0
L_0087: ldfld Verse.Pawn pawn
L_008c: ldfld RimWorld.Pawn_StoryTracker story
L_0091: callvirt System.String get_HeadGraphicPath()
L_0096: ldarg.0
L_0097: ldfld Verse.Pawn pawn
L_009c: ldfld RimWorld.Pawn_StoryTracker story
L_00a1: callvirt Color get_SkinColor()
L_00a6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00ab: stfld Verse.Graphic headGraphic
L_00b0: ldarg.0
L_00b1: ldarg.0
L_00b2: ldfld Verse.Pawn pawn
L_00b7: ldfld RimWorld.Pawn_StoryTracker story
L_00bc: callvirt System.String get_HeadGraphicPath()
L_00c1: ldsfld UnityEngine.Color RottingColor
L_00c6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00cb: stfld Verse.Graphic desiccatedHeadGraphic
L_00d0: ldarg.0
L_00d1: call Verse.Graphic_Multi GetSkull()
L_00d6: stfld Verse.Graphic skullGraphic
L_00db: ldarg.0
L_00dc: ldarg.0
L_00dd: ldfld Verse.Pawn pawn
L_00e2: ldfld RimWorld.Pawn_StoryTracker story
L_00e7: callvirt Color get_SkinColor()
L_00ec: call Verse.Graphic_Multi GetStump(Color)
L_00f1: stfld Verse.Graphic headStumpGraphic
L_00f6: ldarg.0
L_00f7: ldsfld UnityEngine.Color RottingColor
L_00fc: call Verse.Graphic_Multi GetStump(Color)
L_0101: stfld Verse.Graphic desiccatedHeadStumpGraphic
L_0106: ldarg.0
L_0107: ldarg.0
L_0108: ldfld Verse.Pawn pawn
L_010d: ldfld RimWorld.Pawn_StoryTracker story
L_0112: ldfld RimWorld.HairDef hairDef
L_0117: ldfld System.String texPath
L_011c: ldsfld UnityEngine.Shader Cutout
L_0121: call Vector2 get_one()
L_0126: ldarg.0
L_0127: ldfld Verse.Pawn pawn
L_012c: ldfld RimWorld.Pawn_StoryTracker story
L_0131: ldfld UnityEngine.Color hairColor
L_0136: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_013b: stfld Verse.Graphic hairGraphic
L_0140: ldarg.0
L_0141: call Void ResolveApparelGraphics()
L_0146: br Label #3
L_014b: Label #2
L_014b: ldarg.0
L_014c: ldfld Verse.Pawn pawn
L_0151: ldfld Verse.Pawn_AgeTracker ageTracker
L_0156: callvirt Verse.PawnKindLifeStage get_CurKindLifeStage()
L_015b: stloc.0
L_015c: ldarg.0
L_015d: ldfld Verse.Pawn pawn
L_0162: ldfld Verse.Gender gender
L_0167: ldc.i4.2
L_0168: bne.un Label #4
L_016d: ldloc.0
L_016e: ldfld Verse.GraphicData femaleGraphicData
L_0173: brtrue Label #5
L_0178: Label #4
L_0178: ldarg.0
L_0179: ldloc.0
L_017a: ldfld Verse.GraphicData bodyGraphicData
L_017f: callvirt Verse.Graphic get_Graphic()
L_0184: stfld Verse.Graphic nakedGraphic
L_0189: br Label #6
L_018e: Label #5
L_018e: ldarg.0
L_018f: ldloc.0
L_0190: ldfld Verse.GraphicData femaleGraphicData
L_0195: callvirt Verse.Graphic get_Graphic()
L_019a: stfld Verse.Graphic nakedGraphic
L_019f: Label #6
L_019f: ldarg.0
L_01a0: ldarg.0
L_01a1: ldfld Verse.Graphic nakedGraphic
L_01a6: ldsfld UnityEngine.Shader CutoutSkin
L_01ab: ldsfld UnityEngine.Color RottingColor
L_01b0: ldsfld UnityEngine.Color RottingColor
L_01b5: callvirt Verse.Graphic GetColoredVersion(UnityEngine.Shader, Color, Color)
L_01ba: stfld Verse.Graphic rottingGraphic
L_01bf: ldarg.0
L_01c0: ldfld Verse.Pawn pawn
L_01c5: callvirt Verse.RaceProperties get_RaceProps()
L_01ca: ldfld System.Boolean packAnimal
L_01cf: brfalse Label #7
L_01d4: ldarg.0
L_01d5: ldarg.0
L_01d6: ldfld Verse.Graphic nakedGraphic
L_01db: ldfld System.String path
L_01e0: ldstr "Pack"
L_01e5: call System.String Concat(System.String, System.String)
L_01ea: ldsfld UnityEngine.Shader Cutout
L_01ef: ldarg.0
L_01f0: ldfld Verse.Graphic nakedGraphic
L_01f5: ldfld UnityEngine.Vector2 drawSize
L_01fa: call Color get_white()
L_01ff: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_0204: stfld Verse.Graphic packGraphic
L_0209: Label #7
L_0209: ldloc.0
L_020a: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_020f: brfalse Label #8
L_0214: ldarg.0
L_0215: ldloc.0
L_0216: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_021b: ldarg.0
L_021c: ldfld Verse.Pawn pawn
L_0221: callvirt Verse.Graphic GraphicColoredFor(Verse.Thing)
L_0226: stfld Verse.Graphic dessicatedGraphic
L_022b: Label #3
L_022b: Label #8
L_022b: br Label #0
L_0230: Label #0
L_0230: ldarga 0
L_0236: call Void ResolveAllGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_023b: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveApparelGraphics()


L_0000: Local var #0 RimWorld.Apparel
L_0000: Local var #1 System.Collections.Generic.IEnumerator`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 RimWorld.ApparelGraphicRecord
L_0000: ldarga 0
L_0006: call Void ResolveApparelGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_000b: ldarg.0
L_000c: call Void ClearCache()
L_0011: ldarg.0
L_0012: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0017: callvirt Void Clear()
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_ApparelTracker apparel
L_0027: callvirt IEnumerable`1 get_WornApparelInDrawOrder()
L_002c: callvirt IEnumerator`1 GetEnumerator()
L_0031: stloc.1
L_0032: br Label #2
L_0037: Label #4
L_0037: ldloc.1
L_0038: callvirt RimWorld.Apparel get_Current()
L_003d: stloc.0
L_003e: ldloc.0
L_003f: ldarg.0
L_0040: ldfld Verse.Pawn pawn
L_0045: call BodyType ModifyChildBodyType(Verse.Pawn)
L_004a: ldloca.s 2 (RimWorld.ApparelGraphicRecord)
L_004c: call Boolean TryGetGraphicApparel(RimWorld.Apparel, BodyType,
ApparelGraphicRecord ByRef)
L_0051: brfalse Label #3
L_0056: ldarg.0
L_0057: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_005c: ldloc.2
L_005d: callvirt Void Add(ApparelGraphicRecord)
L_0062: Label #2
L_0062: Label #3
L_0062: ldloc.1
L_0063: callvirt Boolean MoveNext()
L_0068: brtrue Label #4
L_006d: leave Label #5
L_0072: ldloc.1
L_0073: brfalse Label #6
L_0078: ldloc.1
L_0079: callvirt Void Dispose()
L_007e: Label #6
L_007e: endfinally
L_007f: Label #5
L_007f: br Label #0
L_0084: Label #0
L_0084: ret
DONE

PATCHING Verse.PawnRenderer Void RenderPawnInternal(Vector3, Quaternion, Boolean,


Rot4, Rot4, RotDrawMode, Boolean, Boolean)
L_0000: Local var #0 UnityEngine.Mesh
L_0000: Local var #1 UnityEngine.Vector3
L_0000: Local var #2 System.Collections.Generic.List`1[[UnityEngine.Material,
UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #3 System.Int32
L_0000: Local var #4 UnityEngine.Material
L_0000: Local var #5 UnityEngine.Vector3
L_0000: Local var #6 UnityEngine.Vector3
L_0000: Local var #7 UnityEngine.Vector3
L_0000: Local var #8 UnityEngine.Vector3
L_0000: Local var #9 UnityEngine.Material
L_0000: Local var #10 UnityEngine.Mesh
L_0000: Local var #11 UnityEngine.Vector3
L_0000: Local var #12 System.Boolean
L_0000: Local var #13 UnityEngine.Mesh
L_0000: Local var #14
System.Collections.Generic.List`1[[RimWorld.ApparelGraphicRecord, Assembly-CSharp,
Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #15 System.Int32
L_0000: Local var #16 RimWorld.ApparelGraphicRecord
L_0000: Local var #17 RimWorld.ApparelGraphicRecord
L_0000: Local var #18 UnityEngine.Material
L_0000: Local var #19 RimWorld.ApparelGraphicRecord
L_0000: Local var #20 UnityEngine.Material
L_0000: Local var #21 RimWorld.ApparelGraphicRecord
L_0000: Local var #22 UnityEngine.Vector3
L_0000: Local var #23 UnityEngine.Mesh
L_0000: Local var #24 UnityEngine.Material
L_0000: Local var #25 System.Int32
L_0000: Local var #26 RimWorld.ApparelGraphicRecord
L_0000: Local var #27 UnityEngine.Material
L_0000: Local var #28 System.Collections.Generic.List`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #29 System.Int32
L_0000: Local var #30 UnityEngine.Vector3
L_0000: ldarg.0
L_0001: ldfld Verse.PawnGraphicSet graphics
L_0006: callvirt Boolean get_AllResolved()
L_000b: brtrue Label #2
L_0010: ldarg.0
L_0011: ldfld Verse.PawnGraphicSet graphics
L_0016: callvirt Void ResolveAllGraphics()
L_001b: Label #2
L_001b: ldnull
L_001c: stloc.0
L_001d: ldarg.0
L_001e: ldfld Verse.Pawn pawn
L_0023: ldfld Verse.Pawn_AgeTracker ageTracker
L_0028: call Int32 get_CurLifeStageIndex()
L_002d: ldc.i4.2
L_002e: blt Label #43
L_0033: ldarg.3
L_0034: brfalse Label #3
L_0039: Label #43
L_0039: ldarg.1
L_003a: ldarg.0
L_003b: ldfld Verse.Pawn pawn
L_0040: ldarg.s 7
L_0045: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_004a: stloc.1
L_004b: ldloca.s 1 (UnityEngine.Vector3)
L_004d: dup
L_004e: ldfld System.Single y
L_0053: ldc.r4 0.0078125
L_0058: add
L_0059: stfld System.Single y
L_005e: ldarg.s 6
L_0060: ldc.i4.2
L_0061: bne.un Label #4
L_0066: ldarg.0
L_0067: ldfld Verse.Pawn pawn
L_006c: callvirt Verse.RaceProperties get_RaceProps()
L_0071: callvirt Boolean get_Humanlike()
L_0076: brtrue Label #5
L_007b: ldarg.0
L_007c: ldfld Verse.PawnGraphicSet graphics
L_0081: ldfld Verse.Graphic dessicatedGraphic
L_0086: brfalse Label #6
L_008b: ldarg.s 7
L_008d: brtrue Label #7
L_0092: ldarg.0
L_0093: ldfld Verse.PawnGraphicSet graphics
L_0098: ldfld Verse.Graphic dessicatedGraphic
L_009d: ldloc.1
L_009e: ldarg.s 4
L_00a0: ldarg.0
L_00a1: ldfld Verse.Pawn pawn
L_00a6: ldc.r4 0
L_00ab: callvirt Void Draw(Vector3, Rot4, Verse.Thing, Single)
L_00b0: br Label #8
L_00b5: Label #4
L_00b5: Label #5
L_00b5: Label #6
L_00b5: Label #7
L_00b5: ldarg.0
L_00b6: ldfld Verse.Pawn pawn
L_00bb: callvirt Verse.RaceProperties get_RaceProps()
L_00c0: callvirt Boolean get_Humanlike()
L_00c5: brfalse Label #9
L_00ca: ldsfld Verse.GraphicMeshSet humanlikeBodySet
L_00cf: ldarg.s 4
L_00d1: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00d6: stloc.0
L_00d7: br Label #10
L_00dc: Label #9
L_00dc: ldarg.0
L_00dd: ldfld Verse.PawnGraphicSet graphics
L_00e2: ldfld Verse.Graphic nakedGraphic
L_00e7: ldarg.s 4
L_00e9: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00ee: stloc.0
L_00ef: Label #10
L_00ef: ldarg.0
L_00f0: ldfld Verse.PawnGraphicSet graphics
L_00f5: ldarg.s 4
L_00f7: ldarg.s 6
L_00f9: callvirt System.Collections.Generic.List`1[UnityEngine.Material]
MatsBodyBaseAt(Rot4, RotDrawMode)
L_00fe: stloc.2
L_00ff: ldc.i4.0
L_0100: stloc.3
L_0101: br Label #11
L_0106: Label #12
L_0106: ldarg.0
L_0107: ldfld Verse.PawnGraphicSet graphics
L_010c: ldfld Verse.DamageFlasher flasher
L_0111: ldloc.2
L_0112: ldloc.3
L_0113: callvirt UnityEngine.Material get_Item(Int32)
L_0118: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_011d: stloc.s 4 (UnityEngine.Material)
L_011f: ldloc.s 4
L_0124: ldarg.0
L_0125: ldfld Verse.Pawn pawn
L_012a: ldarg.s 4
L_012f: call UnityEngine.Material ModifyClothingForChild(UnityEngine.Material,
Verse.Pawn, Rot4)
L_0134: stloc.s 4
L_0139: ldloc.0
L_013a: ldloc.1
L_013b: ldarg.2
L_013c: ldloc.s 4 (UnityEngine.Material)
L_013e: ldarg.s 7
L_0140: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_0145: ldloca.s 1 (UnityEngine.Vector3)
L_0147: dup
L_0148: ldfld System.Single y
L_014d: ldloc.s 18
L_0152: ldarg.0
L_0153: ldfld Verse.Pawn pawn
L_0158: call UnityEngine.Material ModifyHatForChild(UnityEngine.Material,
Verse.Pawn)
L_015d: stloc.s 18
L_0162: ldc.r4 0.00390625
L_0167: add
L_0168: stfld System.Single y
L_016d: ldloc.3
L_016e: ldc.i4.1
L_016f: add
L_0170: stloc.3
L_0171: Label #11
L_0171: ldloc.3
L_0172: ldloc.2
L_0173: callvirt Int32 get_Count()
L_0178: blt Label #12
L_017d: ldarg.s 6
L_017f: brtrue Label #13
L_0184: ldarg.1
L_0185: ldarg.0
L_0186: ldfld Verse.Pawn pawn
L_018b: ldarg.s 7
L_0190: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0195: stloc.s 5 (UnityEngine.Vector3)
L_0197: ldloca.s 5 (UnityEngine.Vector3)
L_0199: dup
L_019a: ldfld System.Single y
L_019f: ldc.r4 0.01953125
L_01a4: add
L_01a5: stfld System.Single y
L_01aa: ldarg.0
L_01ab: ldfld RimWorld.PawnWoundDrawer woundOverlays
L_01b0: ldloc.s 5 (UnityEngine.Vector3)
L_01b2: ldloc.0
L_01b3: ldarg.2
L_01b4: ldarg.s 7
L_01b6: callvirt Void RenderOverBody(Vector3, UnityEngine.Mesh, Quaternion,
Boolean)
L_01bb: Label #3
L_01bb: Label #8
L_01bb: Label #13
L_01bb: ldarg.1
L_01bc: ldarg.0
L_01bd: ldfld Verse.Pawn pawn
L_01c2: ldarg.s 7
L_01c7: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01cc: stloc.s 6 (UnityEngine.Vector3)
L_01ce: ldarg.1
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldarg.s 7
L_01da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01df: stloc.s 7 (UnityEngine.Vector3)
L_01e1: ldarg.s 4
L_01e3: call Rot4 get_North()
L_01e8: call Boolean op_Inequality(Rot4, Rot4)
L_01ed: brfalse Label #14
L_01f2: ldloca.s 7 (UnityEngine.Vector3)
L_01f4: dup
L_01f5: ldfld System.Single y
L_01fa: ldc.r4 0.02734375
L_01ff: add
L_0200: stfld System.Single y
L_0205: ldloca.s 6 (UnityEngine.Vector3)
L_0207: dup
L_0208: ldfld System.Single y
L_020d: ldc.r4 0.0234375
L_0212: add
L_0213: stfld System.Single y
L_0218: br Label #15
L_021d: Label #14
L_021d: ldloca.s 7 (UnityEngine.Vector3)
L_021f: dup
L_0220: ldfld System.Single y
L_0225: ldc.r4 0.0234375
L_022a: add
L_022b: stfld System.Single y
L_0230: ldloca.s 6 (UnityEngine.Vector3)
L_0232: dup
L_0233: ldfld System.Single y
L_0238: ldc.r4 0.02734375
L_023d: add
L_023e: stfld System.Single y
L_0243: Label #15
L_0243: ldarg.0
L_0244: ldfld Verse.PawnGraphicSet graphics
L_0249: ldfld Verse.Graphic headGraphic
L_024e: brfalse Label #16
L_0253: ldarg.0
L_0254: ldfld Verse.Pawn pawn
L_0259: call Boolean RaceUsesChildren(Verse.Pawn)
L_025e: brfalse Label #44
L_0263: ldarg.0
L_0264: ldfld Verse.Pawn pawn
L_0269: call Boolean EnsurePawnIsChildOrOlder(Verse.Pawn)
L_026e: brfalse Label #16
L_0273: Label #44
L_0273: nop
L_0274: ldarg.2
L_0275: ldarg.0
L_0276: ldarg.s 5
L_0278: call Vector3 BaseHeadOffsetAt(Rot4)
L_027d: call Vector3 op_Multiply(Quaternion, Vector3)
L_0282: stloc.s 8 (UnityEngine.Vector3)
L_0284: ldarg.0
L_0285: ldfld Verse.PawnGraphicSet graphics
L_028a: ldarg.s 5
L_028c: ldarg.s 6
L_028e: ldarg.s 8
L_0290: callvirt UnityEngine.Material HeadMatAt(Rot4, RotDrawMode, Boolean)
L_0295: stloc.s 9 (UnityEngine.Material)
L_0297: ldloc.s 9 (UnityEngine.Material)
L_0299: ldnull
L_029a: call Boolean op_Inequality(UnityEngine.Object, UnityEngine.Object)
L_029f: brfalse Label #17
L_02a4: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_02a9: ldarg.s 5
L_02ab: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_02b0: stloc.s 10 (UnityEngine.Mesh)
L_02b2: ldloc.s 10 (UnityEngine.Mesh)
L_02b4: ldloc.s 7 (UnityEngine.Vector3)
L_02b6: ldloc.s 8 (UnityEngine.Vector3)
L_02b8: call Vector3 op_Addition(Vector3, Vector3)
L_02bd: ldarg.2
L_02be: ldloc.s 9 (UnityEngine.Material)
L_02c0: ldarg.s 7
L_02c2: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_02c7: Label #17
L_02c7: ldarg.1
L_02c8: ldloc.s 8 (UnityEngine.Vector3)
L_02ca: call Vector3 op_Addition(Vector3, Vector3)
L_02cf: ldarg.0
L_02d0: ldfld Verse.Pawn pawn
L_02d5: ldarg.s 7
L_02da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_02df: stloc.s 11 (UnityEngine.Vector3)
L_02e1: ldloca.s 11 (UnityEngine.Vector3)
L_02e3: dup
L_02e4: ldfld System.Single y
L_02e9: ldc.r4 0.03125
L_02ee: add
L_02ef: stfld System.Single y
L_02f4: ldc.i4.0
L_02f5: stloc.s 12 (System.Boolean)
L_02f7: ldarg.s 7
L_02f9: brfalse Label #18
L_02fe: call Boolean get_HatsOnlyOnMap()
L_0303: brtrue Label #19
L_0308: Label #18
L_0308: ldarg.0
L_0309: ldfld Verse.PawnGraphicSet graphics
L_030e: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_0313: ldarg.s 5
L_0315: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_031a: stloc.s 13 (UnityEngine.Mesh)
L_031c: ldarg.0
L_031d: ldfld Verse.PawnGraphicSet graphics
L_0322: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0327: stloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0329: ldc.i4.0
L_032a: stloc.s 15 (System.Int32)
L_032c: br Label #20
L_0331: Label #26
L_0331: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0333: ldloc.s 15 (System.Int32)
L_0335: callvirt ApparelGraphicRecord get_Item(Int32)
L_033a: stloc.s 16 (RimWorld.ApparelGraphicRecord)
L_033c: ldloca.s 16 (RimWorld.ApparelGraphicRecord)
L_033e: ldfld RimWorld.Apparel sourceApparel
L_0343: ldfld Verse.ThingDef def
L_0348: ldfld RimWorld.ApparelProperties apparel
L_034d: callvirt ApparelLayer get_LastLayer()
L_0352: ldc.i4.4
L_0353: bne.un Label #21
L_0358: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_035a: ldloc.s 15 (System.Int32)
L_035c: callvirt ApparelGraphicRecord get_Item(Int32)
L_0361: stloc.s 17 (RimWorld.ApparelGraphicRecord)
L_0363: ldloca.s 17 (RimWorld.ApparelGraphicRecord)
L_0365: ldfld RimWorld.Apparel sourceApparel
L_036a: ldfld Verse.ThingDef def
L_036f: ldfld RimWorld.ApparelProperties apparel
L_0374: ldfld System.Boolean hatRenderedFrontOfFace
L_0379: brtrue Label #22
L_037e: ldc.i4.1
L_037f: stloc.s 12 (System.Boolean)
L_0381: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0383: ldloc.s 15 (System.Int32)
L_0385: callvirt ApparelGraphicRecord get_Item(Int32)
L_038a: stloc.s 19 (RimWorld.ApparelGraphicRecord)
L_038c: ldloca.s 19 (RimWorld.ApparelGraphicRecord)
L_038e: ldfld Verse.Graphic graphic
L_0393: ldarg.s 4
L_0395: ldnull
L_0396: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_039b: stloc.s 18 (UnityEngine.Material)
L_039d: ldarg.0
L_039e: ldfld Verse.PawnGraphicSet graphics
L_03a3: ldfld Verse.DamageFlasher flasher
L_03a8: ldloc.s 18 (UnityEngine.Material)
L_03aa: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03af: stloc.s 18 (UnityEngine.Material)
L_03b1: ldloc.s 13 (UnityEngine.Mesh)
L_03b3: ldloc.s 11 (UnityEngine.Vector3)
L_03b5: ldarg.2
L_03b6: ldloc.s 18 (UnityEngine.Material)
L_03b8: ldarg.s 7
L_03ba: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_03bf: br Label #23
L_03c4: Label #22
L_03c4: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_03c6: ldloc.s 15 (System.Int32)
L_03c8: callvirt ApparelGraphicRecord get_Item(Int32)
L_03cd: stloc.s 21 (RimWorld.ApparelGraphicRecord)
L_03cf: ldloca.s 21 (RimWorld.ApparelGraphicRecord)
L_03d1: ldfld Verse.Graphic graphic
L_03d6: ldarg.s 4
L_03d8: ldnull
L_03d9: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_03de: stloc.s 20 (UnityEngine.Material)
L_03e0: ldarg.0
L_03e1: ldfld Verse.PawnGraphicSet graphics
L_03e6: ldfld Verse.DamageFlasher flasher
L_03eb: ldloc.s 20 (UnityEngine.Material)
L_03ed: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03f2: stloc.s 20 (UnityEngine.Material)
L_03f4: ldarg.1
L_03f5: ldloc.s 8 (UnityEngine.Vector3)
L_03f7: call Vector3 op_Addition(Vector3, Vector3)
L_03fc: stloc.s 22 (UnityEngine.Vector3)
L_03fe: ldloca.s 22 (UnityEngine.Vector3)
L_0400: dup
L_0401: ldfld System.Single y
L_0406: ldarg.s 4
L_0408: call Rot4 get_North()
L_040d: call Boolean op_Equality(Rot4, Rot4)
L_0412: brfalse Label #24
L_0417: ldc.r4 0.00390625
L_041c: br Label #25
L_0421: Label #24
L_0421: ldc.r4 0.03515625
L_0426: Label #25
L_0426: add
L_0427: stfld System.Single y
L_042c: ldloc.s 13 (UnityEngine.Mesh)
L_042e: ldloc.s 22 (UnityEngine.Vector3)
L_0430: ldarg.2
L_0431: ldloc.s 20 (UnityEngine.Material)
L_0433: ldarg.s 7
L_0435: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_043a: Label #21
L_043a: Label #23
L_043a: ldloc.s 15 (System.Int32)
L_043c: ldc.i4.1
L_043d: add
L_043e: stloc.s 15 (System.Int32)
L_0440: Label #20
L_0440: ldloc.s 15 (System.Int32)
L_0442: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0444: callvirt Int32 get_Count()
L_0449: blt Label #26
L_044e: Label #19
L_044e: ldloc.s 12 (System.Boolean)
L_0450: brtrue Label #27
L_0455: ldarg.s 6
L_0457: ldc.i4.2
L_0458: beq Label #28
L_045d: ldarg.s 8
L_045f: brtrue Label #29
L_0464: ldarg.0
L_0465: ldfld Verse.PawnGraphicSet graphics
L_046a: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_046f: ldarg.s 5
L_0471: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0476: stloc.s 23 (UnityEngine.Mesh)
L_0478: ldarg.0
L_0479: ldfld Verse.PawnGraphicSet graphics
L_047e: ldarg.s 5
L_0480: callvirt UnityEngine.Material HairMatAt(Rot4)
L_0485: stloc.s 24 (UnityEngine.Material)
L_0487: ldloc.s 24
L_048c: ldarg.0
L_048d: ldfld Verse.Pawn pawn
L_0492: call UnityEngine.Material ModifyHairForChild(UnityEngine.Material,
Verse.Pawn)
L_0497: stloc.s 24
L_049c: ldloc.s 23 (UnityEngine.Mesh)
L_049e: ldloc.s 11 (UnityEngine.Vector3)
L_04a0: ldarg.2
L_04a1: ldloc.s 24 (UnityEngine.Material)
L_04a3: ldarg.s 7
L_04a5: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_04aa: Label #16
L_04aa: Label #27
L_04aa: Label #28
L_04aa: Label #29
L_04aa: ldarg.3
L_04ab: brfalse Label #30
L_04b0: ldc.i4.0
L_04b1: stloc.s 25 (System.Int32)
L_04b3: br Label #31
L_04b8: Label #33
L_04b8: ldarg.0
L_04b9: ldfld Verse.PawnGraphicSet graphics
L_04be: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_04c3: ldloc.s 25 (System.Int32)
L_04c5: callvirt ApparelGraphicRecord get_Item(Int32)
L_04ca: stloc.s 26 (RimWorld.ApparelGraphicRecord)
L_04cc: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ce: ldfld RimWorld.Apparel sourceApparel
L_04d3: ldfld Verse.ThingDef def
L_04d8: ldfld RimWorld.ApparelProperties apparel
L_04dd: callvirt ApparelLayer get_LastLayer()
L_04e2: ldc.i4.2
L_04e3: bne.un Label #32
L_04e8: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ea: ldfld Verse.Graphic graphic
L_04ef: ldarg.s 4
L_04f1: ldnull
L_04f2: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_04f7: stloc.s 27 (UnityEngine.Material)
L_04f9: ldarg.0
L_04fa: ldfld Verse.PawnGraphicSet graphics
L_04ff: ldfld Verse.DamageFlasher flasher
L_0504: ldloc.s 27 (UnityEngine.Material)
L_0506: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_050b: stloc.s 27 (UnityEngine.Material)
L_050d: ldloc.0
L_050e: ldloc.s 6 (UnityEngine.Vector3)
L_0510: ldarg.2
L_0511: ldloc.s 27 (UnityEngine.Material)
L_0513: ldarg.s 7
L_0515: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_051a: Label #32
L_051a: ldloc.s 25 (System.Int32)
L_051c: ldc.i4.1
L_051d: add
L_051e: stloc.s 25 (System.Int32)
L_0520: Label #31
L_0520: ldloc.s 25 (System.Int32)
L_0522: ldarg.0
L_0523: ldfld Verse.PawnGraphicSet graphics
L_0528: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_052d: callvirt Int32 get_Count()
L_0532: blt Label #33
L_0537: Label #30
L_0537: ldarg.s 7
L_0539: brtrue Label #34
L_053e: ldarg.0
L_053f: ldfld Verse.Pawn pawn
L_0544: callvirt Verse.RaceProperties get_RaceProps()
L_0549: callvirt Boolean get_Animal()
L_054e: brfalse Label #35
L_0553: ldarg.0
L_0554: ldfld Verse.Pawn pawn
L_0559: ldfld Verse.Pawn_InventoryTracker inventory
L_055e: brfalse Label #36
L_0563: ldarg.0
L_0564: ldfld Verse.Pawn pawn
L_0569: ldfld Verse.Pawn_InventoryTracker inventory
L_056e: ldfld Verse.ThingOwner`1[Verse.Thing] innerContainer
L_0573: callvirt Int32 get_Count()
L_0578: ldc.i4.0
L_0579: ble Label #37
L_057e: ldarg.0
L_057f: ldfld Verse.PawnGraphicSet graphics
L_0584: ldfld Verse.Graphic packGraphic
L_0589: brfalse Label #38
L_058e: ldloc.0
L_058f: ldloc.s 6 (UnityEngine.Vector3)
L_0591: ldarg.2
L_0592: ldarg.0
L_0593: ldfld Verse.PawnGraphicSet graphics
L_0598: ldfld Verse.Graphic packGraphic
L_059d: ldarg.s 4
L_059f: ldnull
L_05a0: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_05a5: ldc.i4.0
L_05a6: call Void DrawMesh(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Int32)
L_05ab: Label #34
L_05ab: Label #35
L_05ab: Label #36
L_05ab: Label #37
L_05ab: Label #38
L_05ab: ldarg.s 7
L_05ad: brtrue Label #39
L_05b2: ldarg.0
L_05b3: ldarg.1
L_05b4: call Void DrawEquipment(Vector3)
L_05b9: ldarg.0
L_05ba: ldfld Verse.Pawn pawn
L_05bf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05c4: brfalse Label #40
L_05c9: ldarg.0
L_05ca: ldfld Verse.Pawn pawn
L_05cf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05d4: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_05d9: stloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05db: ldc.i4.0
L_05dc: stloc.s 29 (System.Int32)
L_05de: br Label #41
L_05e3: Label #42
L_05e3: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05e5: ldloc.s 29 (System.Int32)
L_05e7: callvirt RimWorld.Apparel get_Item(Int32)
L_05ec: callvirt Void DrawWornExtras()
L_05f1: ldloc.s 29 (System.Int32)
L_05f3: ldc.i4.1
L_05f4: add
L_05f5: stloc.s 29 (System.Int32)
L_05f7: Label #41
L_05f7: ldloc.s 29 (System.Int32)
L_05f9: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05fb: callvirt Int32 get_Count()
L_0600: blt Label #42
L_0605: Label #40
L_0605: ldarg.1
L_0606: ldarg.0
L_0607: ldfld Verse.Pawn pawn
L_060c: ldarg.s 7
L_0611: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0616: stloc.s 30 (UnityEngine.Vector3)
L_0618: ldloca.s 30 (UnityEngine.Vector3)
L_061a: dup
L_061b: ldfld System.Single y
L_0620: ldc.r4 0.04296875
L_0625: add
L_0626: stfld System.Single y
L_062b: ldarg.0
L_062c: ldfld Verse.PawnHeadOverlays statusOverlays
L_0631: ldloc.s 30 (UnityEngine.Vector3)
L_0633: ldarg.2
L_0634: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_0639: ldarg.s 5
L_063b: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0640: callvirt Void RenderStatusOverlays(Vector3, Quaternion, UnityEngine.Mesh)
L_0645: Label #39
L_0645: br Label #0
L_064a: Label #0
L_064a: ret
DONE

PATCHING Verse.PawnGenerator Verse.Pawn GeneratePawn(PawnGenerationRequest)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Pawn
L_0000: ldnull
L_0001: stloc 1 (Verse.Pawn)
L_0002: ldarg.0
L_0003: call Verse.Pawn GeneratePawnInternal(PawnGenerationRequest)
L_0008: stloc.0
L_0009: leave Label #2
L_000e: endfinally
L_000f: Label #2
L_000f: ldloc.0
L_0010: br Label #0
L_0015: Label #0
L_0015: stloc 1 (Verse.Pawn)
L_0016: ldarga 0
L_001c: ldloca 1 (Verse.Pawn)
L_001e: call Void _GeneratePawn(PawnGenerationRequest ByRef, Verse.Pawn ByRef)
L_0023: ldloc 1 (Verse.Pawn)
L_0024: ret
DONE

PATCHING RimWorld.JobGiver_OptimizeApparel Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 RimWorld.Outfit
L_0000: Local var #1 System.Collections.Generic.List`1[[RimWorld.Apparel, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 System.Int32
L_0000: Local var #3 Verse.AI.Job
L_0000: Local var #4 Verse.Thing
L_0000: Local var #5 System.Single
L_0000: Local var #6 System.Collections.Generic.List`1[[Verse.Thing, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #7 System.Int32
L_0000: Local var #8 RimWorld.Apparel
L_0000: Local var #9 RimWorld.SlotGroup
L_0000: Local var #10 System.Single
L_0000: Local var #11 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 11 (Verse.AI.Job)
L_0003: ldarg.1
L_0004: ldfld RimWorld.Pawn_OutfitTracker outfits
L_0009: brtrue Label #2
L_000e: ldarg.1
L_000f: ldstr " tried to run JobGiver_OptimizeApparel without an OutfitTracker"
L_0014: call System.String Concat(System.Object, System.Object)
L_0019: ldc.i4 5643897
L_001e: call Void ErrorOnce(System.String, Int32)
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: ldarg.1
L_002a: callvirt RimWorld.Faction get_Faction()
L_002f: call RimWorld.Faction get_OfPlayer()
L_0034: beq Label #3
L_0039: ldstr "Non-colonist "
L_003e: ldarg.1
L_003f: ldstr " tried to optimize apparel."
L_0044: call System.String Concat(System.Object, System.Object, System.Object)
L_0049: ldc.i4 764323
L_004e: call Void ErrorOnce(System.String, Int32)
L_0053: ldnull
L_0054: br Label #0
L_0059: Label #3
L_0059: ldsfld System.Boolean debugApparelOptimize
L_005e: brtrue Label #4
L_0063: call Verse.TickManager get_TickManager()
L_0068: callvirt Int32 get_TicksGame()
L_006d: ldarg.1
L_006e: ldfld Verse.AI.Pawn_MindState mindState
L_0073: ldfld System.Int32 nextApparelOptimizeTick
L_0078: bge Label #5
L_007d: ldnull
L_007e: br Label #0
L_0083: Label #5
L_0083: br Label #6
L_0088: Label #4
L_0088: newobj Void .ctor()
L_008d: stsfld System.Text.StringBuilder debugSb
L_0092: ldsfld System.Text.StringBuilder debugSb
L_0097: ldc.i4.4
L_0098: newarr System.Object
L_009d: dup
L_009e: ldc.i4.0
L_009f: ldstr "Scanning for "
L_00a4: stelem.ref
L_00a5: dup
L_00a6: ldc.i4.1
L_00a7: ldarg.1
L_00a8: stelem.ref
L_00a9: dup
L_00aa: ldc.i4.2
L_00ab: ldstr " at "
L_00b0: stelem.ref
L_00b1: dup
L_00b2: ldc.i4.3
L_00b3: ldarg.1
L_00b4: callvirt IntVec3 get_Position()
L_00b9: box Verse.IntVec3
L_00be: stelem.ref
L_00bf: call System.String Concat(System.Object[])
L_00c4: callvirt System.Text.StringBuilder AppendLine(System.String)
L_00c9: pop
L_00ca: Label #6
L_00ca: ldarg.1
L_00cb: ldfld RimWorld.Pawn_OutfitTracker outfits
L_00d0: callvirt RimWorld.Outfit get_CurrentOutfit()
L_00d5: stloc.0
L_00d6: ldarg.1
L_00d7: ldfld RimWorld.Pawn_ApparelTracker apparel
L_00dc: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_00e1: stloc.1
L_00e2: ldloc.1
L_00e3: callvirt Int32 get_Count()
L_00e8: ldc.i4.1
L_00e9: sub
L_00ea: stloc.2
L_00eb: br Label #7
L_00f0: Label #10
L_00f0: ldloc.0
L_00f1: ldfld Verse.ThingFilter filter
L_00f6: ldloc.1
L_00f7: ldloc.2
L_00f8: callvirt RimWorld.Apparel get_Item(Int32)
L_00fd: callvirt Boolean Allows(Verse.Thing)
L_0102: brtrue Label #8
L_0107: ldarg.1
L_0108: ldfld RimWorld.Pawn_OutfitTracker outfits
L_010d: ldfld RimWorld.OutfitForcedHandler forcedHandler
L_0112: ldloc.1
L_0113: ldloc.2
L_0114: callvirt RimWorld.Apparel get_Item(Int32)
L_0119: callvirt Boolean AllowedToAutomaticallyDrop(RimWorld.Apparel)
L_011e: brfalse Label #9
L_0123: ldsfld Verse.JobDef RemoveApparel
L_0128: ldloc.1
L_0129: ldloc.2
L_012a: callvirt RimWorld.Apparel get_Item(Int32)
L_012f: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0134: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0139: stloc.3
L_013a: ldloc.3
L_013b: ldc.i4.1
L_013c: stfld System.Boolean haulDroppedApparel
L_0141: ldloc.3
L_0142: br Label #0
L_0147: Label #8
L_0147: Label #9
L_0147: ldloc.2
L_0148: ldc.i4.1
L_0149: sub
L_014a: stloc.2
L_014b: Label #7
L_014b: ldloc.2
L_014c: ldc.i4.0
L_014d: bge Label #10
L_0152: ldnull
L_0153: stloc.s 4 (Verse.Thing)
L_0155: ldc.r4 0
L_015a: stloc.s 5 (System.Single)
L_015c: ldarg.1
L_015d: callvirt Verse.Map get_Map()
L_0162: ldfld Verse.ListerThings listerThings
L_0167: ldc.i4.s 26
L_0169: callvirt System.Collections.Generic.List`1[Verse.Thing]
ThingsInGroup(ThingRequestGroup)
L_016e: stloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0170: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0172: callvirt Int32 get_Count()
L_0177: brtrue Label #11
L_017c: ldarg.0
L_017d: ldarg.1
L_017e: call Void SetNextOptimizeTick(Verse.Pawn)
L_0183: ldnull
L_0184: br Label #0
L_0189: Label #11
L_0189: ldarg.1
L_018a: ldarg.1
L_018b: callvirt Verse.Map get_Map()
L_0190: callvirt Int32 get_Tile()
L_0195: ldarg.1
L_0196: call Twelfth Twelfth(Verse.Thing)
L_019b: call NeededWarmth CalculateNeededWarmth(Verse.Pawn, Int32, Twelfth)
L_01a0: stsfld RimWorld.NeededWarmth neededWarmth
L_01a5: ldc.i4.0
L_01a6: stloc.s 7 (System.Int32)
L_01a8: br Label #12
L_01ad: Label #27
L_01ad: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_01af: ldloc.s 7 (System.Int32)
L_01b1: callvirt Verse.Thing get_Item(Int32)
L_01b6: castclass RimWorld.Apparel
L_01bb: stloc.s 8 (RimWorld.Apparel)
L_01bd: ldloc.0
L_01be: ldfld Verse.ThingFilter filter
L_01c3: ldloc.s 8 (RimWorld.Apparel)
L_01c5: callvirt Boolean Allows(Verse.Thing)
L_01ca: brtrue Label #13
L_01cf: br Label #14
L_01d4: Label #13
L_01d4: ldloc.s 8 (RimWorld.Apparel)
L_01d6: callvirt Verse.Map get_Map()
L_01db: ldfld RimWorld.SlotGroupManager slotGroupManager
L_01e0: ldloc.s 8 (RimWorld.Apparel)
L_01e2: callvirt IntVec3 get_Position()
L_01e7: callvirt RimWorld.SlotGroup SlotGroupAt(IntVec3)
L_01ec: stloc.s 9 (RimWorld.SlotGroup)
L_01ee: ldloc.s 9 (RimWorld.SlotGroup)
L_01f0: brtrue Label #15
L_01f5: br Label #16
L_01fa: Label #15
L_01fa: ldloc.s 8 (RimWorld.Apparel)
L_01fc: ldarg.1
L_01fd: call Boolean IsForbidden(Verse.Thing, Verse.Pawn)
L_0202: brfalse Label #17
L_0207: br Label #18
L_020c: Label #17
L_020c: ldarg.1
L_020d: ldloc.s 8 (RimWorld.Apparel)
L_020f: call Single ApparelScoreGain(Verse.Pawn, RimWorld.Apparel)
L_0214: stloc.s 10 (System.Single)
L_0216: ldsfld System.Boolean debugApparelOptimize
L_021b: brfalse Label #19
L_0220: ldsfld System.Text.StringBuilder debugSb
L_0225: ldloc.s 8 (RimWorld.Apparel)
L_0227: callvirt System.String get_LabelCap()
L_022c: ldstr ": "
L_0231: ldloca.s 10 (System.Single)
L_0233: ldstr "F2"
L_0238: call System.String ToString(System.String)
L_023d: call System.String Concat(System.String, System.String, System.String)
L_0242: callvirt System.Text.StringBuilder AppendLine(System.String)
L_0247: pop
L_0248: Label #19
L_0248: ldloc.s 10 (System.Single)
L_024a: ldc.r4 0.05
L_024f: blt Label #20
L_0254: ldloc.s 10 (System.Single)
L_0256: ldloc.s 5 (System.Single)
L_0258: bge.un Label #21
L_025d: Label #20
L_025d: br Label #22
L_0262: Label #21
L_0262: ldarg.1
L_0263: ldloc.s 8 (RimWorld.Apparel)
L_0265: ldfld Verse.ThingDef def
L_026a: call Boolean HasPartsToWear(Verse.Pawn, Verse.ThingDef)
L_026f: brtrue Label #23
L_0274: br Label #24
L_0279: Label #23
L_0279: ldarg.1
L_027a: ldloc.s 8 (RimWorld.Apparel)
L_027c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0281: ldc.i4.1
L_0282: ldarg.1
L_0283: call Danger NormalMaxDanger(Verse.Pawn)
L_0288: ldc.i4.1
L_0289: ldc.i4.m1
L_028a: ldnull
L_028b: ldc.i4.0
L_028c: call Boolean CanReserveAndReach(Verse.Pawn, LocalTargetInfo, PathEndMode,
Danger, Int32, Int32, Verse.ReservationLayerDef, Boolean)
L_0291: brtrue Label #25
L_0296: br Label #26
L_029b: Label #25
L_029b: ldloc.s 8 (RimWorld.Apparel)
L_029d: stloc.s 4 (Verse.Thing)
L_029f: ldloc.s 10 (System.Single)
L_02a1: stloc.s 5 (System.Single)
L_02a3: Label #14
L_02a3: Label #16
L_02a3: Label #18
L_02a3: Label #22
L_02a3: Label #24
L_02a3: Label #26
L_02a3: ldloc.s 7 (System.Int32)
L_02a5: ldc.i4.1
L_02a6: add
L_02a7: stloc.s 7 (System.Int32)
L_02a9: Label #12
L_02a9: ldloc.s 7 (System.Int32)
L_02ab: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_02ad: callvirt Int32 get_Count()
L_02b2: blt Label #27
L_02b7: ldsfld System.Boolean debugApparelOptimize
L_02bc: brfalse Label #28
L_02c1: ldsfld System.Text.StringBuilder debugSb
L_02c6: ldstr "BEST: "
L_02cb: ldloc.s 4 (Verse.Thing)
L_02cd: call System.String Concat(System.Object, System.Object)
L_02d2: callvirt System.Text.StringBuilder AppendLine(System.String)
L_02d7: pop
L_02d8: ldsfld System.Text.StringBuilder debugSb
L_02dd: callvirt System.String ToString()
L_02e2: call Void Message(System.String)
L_02e7: ldnull
L_02e8: stsfld System.Text.StringBuilder debugSb
L_02ed: Label #28
L_02ed: ldloc.s 4 (Verse.Thing)
L_02ef: brtrue Label #29
L_02f4: ldarg.0
L_02f5: ldarg.1
L_02f6: call Void SetNextOptimizeTick(Verse.Pawn)
L_02fb: ldnull
L_02fc: br Label #0
L_0301: Label #29
L_0301: ldsfld Verse.JobDef Wear
L_0306: ldloc.s 4 (Verse.Thing)
L_0308: call LocalTargetInfo op_Implicit(Verse.Thing)
L_030d: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0312: br Label #0
L_0317: Label #0
L_0317: stloc 11 (Verse.AI.Job)
L_0319: ldloca 11 (Verse.AI.Job)
L_031b: ldarga 1
L_0321: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_0326: ldloc 11 (Verse.AI.Job)
L_0328: ret
DONE

PATCHING Verse.Pawn_HealthTracker Boolean ShouldBeDowned()


L_0000: Local var #0 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 0 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean get_InPainShock()
L_000c: brtrue Label #2
L_0011: ldarg.0
L_0012: ldfld Verse.PawnCapacitiesHandler capacities
L_0017: callvirt Boolean get_CanBeAwake()
L_001c: brfalse Label #3
L_0021: ldarg.0
L_0022: ldfld Verse.PawnCapacitiesHandler capacities
L_0027: ldsfld Verse.PawnCapacityDef Moving
L_002c: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0031: ldc.i4.0
L_0032: ceq
L_0034: br Label #4
L_0039: Label #2
L_0039: Label #3
L_0039: ldc.i4.1
L_003a: Label #4
L_003a: br Label #0
L_003f: Label #0
L_003f: stloc 0 (System.Boolean)
L_0040: ldarga 0
L_0046: ldloca 0 (System.Boolean)
L_0048: call Void SBD(Verse.Pawn_HealthTracker ByRef, Boolean ByRef)
L_004d: ldloc 0 (System.Boolean)
L_004e: ret
DONE

PATCHING Verse.Pawn_HealthTracker Void CheckForStateChange(Nullable`1,


Verse.Hediff)
L_0000: Local var #0 System.Single
L_0000: Local var #1 Verse.DamageInfo
L_0000: Local var #2 Verse.ThingWithComps
L_0000: ldarg.0
L_0001: call Boolean get_Dead()
L_0006: brtrue Label #2
L_000b: ldarg.0
L_000c: call Boolean ShouldBeDead()
L_0011: brfalse Label #3
L_0016: ldarg.0
L_0017: ldfld Verse.Pawn pawn
L_001c: callvirt Boolean get_Destroyed()
L_0021: brtrue Label #4
L_0026: ldarg.0
L_0027: ldfld Verse.Pawn pawn
L_002c: ldarg.1
L_002d: ldarg.2
L_002e: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_0033: Label #4
L_0033: br Label #0
L_0038: Label #3
L_0038: ldarg.0
L_0039: call Boolean get_Downed()
L_003e: brtrue Label #5
L_0043: ldarg.0
L_0044: call Boolean ShouldBeDowned()
L_0049: brfalse Label #6
L_004e: ldarg.0
L_004f: ldfld Verse.Pawn pawn
L_0054: callvirt Verse.RaceProperties get_RaceProps()
L_0059: callvirt Boolean get_Animal()
L_005e: brfalse Label #7
L_0063: ldc.r4 0.47
L_0068: br Label #8
L_006d: Label #7
L_006d: ldc.r4 0.67
L_0072: Label #8
L_0072: stloc.0
L_0073: ldarg.0
L_0074: ldfld System.Boolean forceIncap
L_0079: brtrue Label #9
L_007e: ldarga.s 1
L_0080: call Boolean get_HasValue()
L_0085: brfalse Label #10
L_008a: ldarga.s 1
L_008c: call DamageInfo get_Value()
L_0091: stloc.1
L_0092: ldloca.s 1 (Verse.DamageInfo)
L_0094: call Verse.DamageDef get_Def()
L_0099: ldfld System.Boolean externalViolence
L_009e: brfalse Label #11
L_00a3: ldarg.0
L_00a4: ldfld Verse.Pawn pawn
L_00a9: callvirt RimWorld.Faction get_Faction()
L_00ae: brfalse Label #12
L_00b3: ldarg.0
L_00b4: ldfld Verse.Pawn pawn
L_00b9: callvirt RimWorld.Faction get_Faction()
L_00be: callvirt Boolean get_IsPlayer()
L_00c3: brtrue Label #13
L_00c8: br Label #13
L_00cd: Label #12
L_00cd: ldarg.0
L_00ce: ldfld Verse.Pawn pawn
L_00d3: callvirt Boolean get_IsPrisonerOfColony()
L_00d8: brtrue Label #14
L_00dd: ldarg.0
L_00de: ldfld Verse.Pawn pawn
L_00e3: callvirt Verse.RaceProperties get_RaceProps()
L_00e8: callvirt Boolean get_IsFlesh()
L_00ed: brfalse Label #15
L_00f2: call Single get_Value()
L_00f7: ldloc.0
L_00f8: bge.un Label #16
L_00fd: ldarg.0
L_00fe: ldfld Verse.Pawn pawn
L_0103: ldarg.1
L_0104: ldnull
L_0105: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_010a: br Label #0
L_010f: Label #9
L_010f: Label #10
L_010f: Label #11
L_010f: Label #13
L_010f: Label #14
L_010f: Label #15
L_010f: Label #16
L_010f: ldarg.0
L_0110: ldc.i4.0
L_0111: stfld System.Boolean forceIncap
L_0116: ldarg.0
L_0117: ldarg.1
L_0118: ldarg.2
L_0119: call Void MakeDowned(Nullable`1, Verse.Hediff)
L_011e: br Label #0
L_0123: Label #6
L_0123: ldarg.0
L_0124: ldfld Verse.PawnCapacitiesHandler capacities
L_0129: ldsfld Verse.PawnCapacityDef Manipulation
L_012e: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0133: brtrue Label #17
L_0138: ldarg.0
L_0139: ldfld Verse.Pawn pawn
L_013e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0143: brfalse Label #18
L_0148: ldarg.0
L_0149: ldfld Verse.Pawn pawn
L_014e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0153: callvirt Verse.Thing get_CarriedThing()
L_0158: brfalse Label #19
L_015d: ldarg.0
L_015e: ldfld Verse.Pawn pawn
L_0163: ldfld Verse.AI.Pawn_JobTracker jobs
L_0168: brfalse Label #20
L_016d: ldarg.0
L_016e: ldfld Verse.Pawn pawn
L_0173: callvirt Verse.AI.Job get_CurJob()
L_0178: brfalse Label #21
L_017d: ldarg.0
L_017e: ldfld Verse.Pawn pawn
L_0183: ldfld Verse.AI.Pawn_JobTracker jobs
L_0188: ldc.i4.5
L_0189: ldc.i4.1
L_018a: callvirt Void EndCurrentJob(JobCondition, Boolean)
L_018f: Label #18
L_018f: Label #19
L_018f: Label #20
L_018f: Label #21
L_018f: ldarg.0
L_0190: ldfld Verse.Pawn pawn
L_0195: ldfld Verse.Pawn_EquipmentTracker equipment
L_019a: brfalse Label #22
L_019f: ldarg.0
L_01a0: ldfld Verse.Pawn pawn
L_01a5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01aa: callvirt Verse.ThingWithComps get_Primary()
L_01af: brfalse Label #23
L_01b4: ldarg.0
L_01b5: ldfld Verse.Pawn pawn
L_01ba: callvirt Boolean get_InContainerEnclosed()
L_01bf: brfalse Label #24
L_01c4: ldarg.0
L_01c5: ldfld Verse.Pawn pawn
L_01ca: ldfld Verse.Pawn_EquipmentTracker equipment
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01da: callvirt Verse.ThingWithComps get_Primary()
L_01df: ldarg.0
L_01e0: ldfld Verse.Pawn pawn
L_01e5: ldfld Verse.ThingOwner holdingOwner
L_01ea: callvirt Boolean TryTransferEquipmentToContainer(Verse.ThingWithComps,
Verse.ThingOwner)
L_01ef: pop
L_01f0: br Label #25
L_01f5: Label #24
L_01f5: ldarg.0
L_01f6: ldfld Verse.Pawn pawn
L_01fb: callvirt Boolean get_SpawnedOrAnyParentSpawned()
L_0200: brfalse Label #26
L_0205: ldarg.0
L_0206: ldfld Verse.Pawn pawn
L_020b: ldfld Verse.Pawn_EquipmentTracker equipment
L_0210: ldarg.0
L_0211: ldfld Verse.Pawn pawn
L_0216: ldfld Verse.Pawn_EquipmentTracker equipment
L_021b: callvirt Verse.ThingWithComps get_Primary()
L_0220: ldloca.s 2 (Verse.ThingWithComps)
L_0222: ldarg.0
L_0223: ldfld Verse.Pawn pawn
L_0228: callvirt IntVec3 get_PositionHeld()
L_022d: ldc.i4.1
L_022e: callvirt Boolean TryDropEquipment(Verse.ThingWithComps,
Verse.ThingWithComps ByRef, IntVec3, Boolean)
L_0233: pop
L_0234: br Label #27
L_0239: Label #26
L_0239: ldarg.0
L_023a: ldfld Verse.Pawn pawn
L_023f: ldfld Verse.Pawn_EquipmentTracker equipment
L_0244: ldarg.0
L_0245: ldfld Verse.Pawn pawn
L_024a: ldfld Verse.Pawn_EquipmentTracker equipment
L_024f: callvirt Verse.ThingWithComps get_Primary()
L_0254: callvirt Void DestroyEquipment(Verse.ThingWithComps)
L_0259: Label #17
L_0259: Label #22
L_0259: Label #23
L_0259: Label #25
L_0259: Label #27
L_0259: br Label #28
L_025e: Label #5
L_025e: ldarg.0
L_025f: call Boolean ShouldBeDowned()
L_0264: brtrue Label #29
L_0269: ldarg.0
L_026a: call Void MakeUndowned()
L_026f: br Label #0
L_0274: Label #2
L_0274: Label #28
L_0274: Label #29
L_0274: br Label #0
L_0279: Label #0
L_0279: ret
DONE

PATCHING RimWorld.RestUtility Single WakeThreshold(Verse.Pawn)


L_0000: Local var #0 Verse.AI.Group.Lord
L_0000: Local var #1 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #2 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #3 System.Single
L_0000: ldc.r4 0
L_0005: stloc 3 (System.Single)
L_0006: ldarg.0
L_0007: call Verse.AI.Group.Lord GetLord(Verse.Pawn)
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldloc.0
L_0014: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0019: brfalse Label #3
L_001e: ldloc.0
L_001f: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0024: callvirt Nullable`1 get_CustomWakeThreshold()
L_0029: stloc.1
L_002a: ldloca.s 1 (System.Nullable`1[System.Single])
L_002c: call Boolean get_HasValue()
L_0031: brfalse Label #4
L_0036: ldloc.0
L_0037: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_003c: callvirt Nullable`1 get_CustomWakeThreshold()
L_0041: stloc.2
L_0042: ldloca.s 2 (System.Nullable`1[System.Single])
L_0044: call Single get_Value()
L_0049: br Label #0
L_004e: Label #2
L_004e: Label #3
L_004e: Label #4
L_004e: ldc.r4 1
L_0053: br Label #0
L_0058: Label #0
L_0058: stloc 3 (System.Single)
L_0059: ldloca 3 (System.Single)
L_005b: ldarga 0
L_0061: call Void WakeThreshold_Patch(Single ByRef, Verse.Pawn ByRef)
L_0066: ldloc 3 (System.Single)
L_0067: ret
DONE

PATCHING Verse.Verb_Shoot Boolean TryCastShot()


L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 1 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean TryCastShot()
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldarg.0
L_0014: call Boolean get_CasterIsPawn()
L_0019: brfalse Label #3
L_001e: ldarg.0
L_001f: call Verse.Pawn get_CasterPawn()
L_0024: ldfld RimWorld.Pawn_RecordsTracker records
L_0029: ldsfld RimWorld.RecordDef ShotsFired
L_002e: callvirt Void Increment(RimWorld.RecordDef)
L_0033: Label #2
L_0033: Label #3
L_0033: ldloc.0
L_0034: br Label #0
L_0039: Label #0
L_0039: stloc 1 (System.Boolean)
L_003a: ldarga 0
L_0040: call Void TryCastShot_Patch(Verse.Verb_Shoot ByRef)
L_0045: ldloc 1 (System.Boolean)
L_0046: ret
DONE

PATCHING Verse.Pawn_EquipmentTracker Void


Notify_EquipmentAdded(Verse.ThingWithComps)
L_0000: Local var #0 Verse.Verb
L_0000: Local var #1 System.Collections.Generic.List`1+Enumerator[[Verse.Verb,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: ldarg.1
L_0001: callvirt Verse.CompEquippable GetComp[CompEquippable]()
L_0006: callvirt System.Collections.Generic.List`1[Verse.Verb] get_AllVerbs()
L_000b: callvirt Enumerator GetEnumerator()
L_0010: stloc.1
L_0011: br Label #2
L_0016: Label #3
L_0016: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0018: call Verse.Verb get_Current()
L_001d: stloc.0
L_001e: ldloc.0
L_001f: ldarg.0
L_0020: ldfld Verse.Pawn pawn
L_0025: stfld Verse.Thing caster
L_002a: ldloc.0
L_002b: callvirt Void Notify_PickedUp()
L_0030: Label #2
L_0030: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0032: call Boolean MoveNext()
L_0037: brtrue Label #3
L_003c: leave Label #4
L_0041: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0043: constrained. System.Collections.Generic.List`1+Enumerator[Verse.Verb]
L_0049: callvirt Void Dispose()
L_004e: endfinally
L_004f: Label #4
L_004f: br Label #0
L_0054: Label #0
L_0054: ldarga 1
L_005a: ldarga 0
L_0060: call Void Notify_EquipmentAdded_Patch(Verse.ThingWithComps ByRef,
Verse.Pawn_EquipmentTracker ByRef)
L_0065: ret
DONE

PATCHING RimWorld.PawnWeaponGenerator Void TryGenerateWeaponFor(Verse.Pawn)


L_0000: Local var #0 System.Single
L_0000: Local var #1 System.Int32
L_0000: Local var #2
RimWorld.PawnWeaponGenerator+<TryGenerateWeaponFor>c__AnonStorey2
L_0000: Local var #3 RimWorld.ThingStuffPair
L_0000: Local var #4 Verse.ThingWithComps
L_0000: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0005: callvirt Void Clear()
L_000a: ldarg.0
L_000b: ldfld Verse.PawnKindDef kindDef
L_0010: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0015: brfalse Label #2
L_001a: ldarg.0
L_001b: ldfld Verse.PawnKindDef kindDef
L_0020: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0025: callvirt Int32 get_Count()
L_002a: brtrue Label #3
L_002f: Label #2
L_002f: br Label #0
L_0034: Label #3
L_0034: ldarg.0
L_0035: callvirt Verse.RaceProperties get_RaceProps()
L_003a: callvirt Boolean get_ToolUser()
L_003f: brtrue Label #4
L_0044: br Label #0
L_0049: Label #4
L_0049: ldarg.0
L_004a: ldfld Verse.Pawn_HealthTracker health
L_004f: ldfld Verse.PawnCapacitiesHandler capacities
L_0054: ldsfld Verse.PawnCapacityDef Manipulation
L_0059: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_005e: brtrue Label #5
L_0063: br Label #0
L_0068: Label #5
L_0068: ldarg.0
L_0069: ldfld RimWorld.Pawn_StoryTracker story
L_006e: brfalse Label #6
L_0073: ldarg.0
L_0074: ldfld RimWorld.Pawn_StoryTracker story
L_0079: ldc.i4.8
L_007a: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_007f: brfalse Label #7
L_0084: br Label #0
L_0089: Label #6
L_0089: Label #7
L_0089: ldarg.0
L_008a: ldfld Verse.PawnKindDef kindDef
L_008f: ldflda Verse.FloatRange weaponMoney
L_0094: call Single get_RandomInRange()
L_0099: stloc.0
L_009a: ldc.i4.0
L_009b: stloc.1
L_009c: br Label #8
L_00a1: Label #16
L_00a1: newobj Void .ctor()
L_00a6: stloc.2
L_00a7: ldloc.2
L_00a8: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_00ad: ldloc.1
L_00ae: callvirt ThingStuffPair get_Item(Int32)
L_00b3: stfld RimWorld.ThingStuffPair w
L_00b8: ldloc.2
L_00b9: ldflda RimWorld.ThingStuffPair w
L_00be: call Single get_Price()
L_00c3: ldloc.0
L_00c4: ble.un Label #9
L_00c9: br Label #10
L_00ce: Label #9
L_00ce: ldarg.0
L_00cf: ldfld Verse.PawnKindDef kindDef
L_00d4: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_00d9: ldloc.2
L_00da: ldftn Boolean <>m__0(System.String)
L_00e0: newobj Void .ctor(Object, IntPtr)
L_00e5: call Boolean Any[String](System.Collections.Generic.List`1[System.String],
System.Predicate`1[System.String])
L_00ea: brtrue Label #11
L_00ef: br Label #12
L_00f4: Label #11
L_00f4: ldloc.2
L_00f5: ldflda RimWorld.ThingStuffPair w
L_00fa: ldfld Verse.ThingDef thing
L_00ff: ldfld System.Single generateAllowChance
L_0104: ldc.r4 1
L_0109: bge.un Label #13
L_010e: ldarg.0
L_010f: ldfld System.Int32 thingIDNumber
L_0114: ldc.i4 28554824
L_0119: xor
L_011a: call Single ValueSeeded(Int32)
L_011f: ldloc.2
L_0120: ldflda RimWorld.ThingStuffPair w
L_0125: ldfld Verse.ThingDef thing
L_012a: ldfld System.Single generateAllowChance
L_012f: ble.un Label #14
L_0134: br Label #15
L_0139: Label #13
L_0139: Label #14
L_0139: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_013e: ldloc.2
L_013f: ldfld RimWorld.ThingStuffPair w
L_0144: callvirt Void Add(ThingStuffPair)
L_0149: Label #10
L_0149: Label #12
L_0149: Label #15
L_0149: ldloc.1
L_014a: ldc.i4.1
L_014b: add
L_014c: stloc.1
L_014d: Label #8
L_014d: ldloc.1
L_014e: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_0153: callvirt Int32 get_Count()
L_0158: blt Label #16
L_015d: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0162: callvirt Int32 get_Count()
L_0167: brtrue Label #17
L_016c: br Label #0
L_0171: ldarg.0
L_0172: ldloc.2
L_0173: callvirt System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
FilterChildWeapons(Verse.Pawn,
System.Collections.Generic.List`1[RimWorld.ThingStuffPair])
L_0178: stloc.2
L_0179: Label #17
L_0179: ldarg.0
L_017a: ldfld Verse.Pawn_EquipmentTracker equipment
L_017f: ldc.i4.0
L_0180: callvirt Void DestroyAllEquipment(DestroyMode)
L_0185: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_018a: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_018f: brtrue Label #18
L_0194: ldnull
L_0195: ldftn Single <TryGenerateWeaponFor>m__2(ThingStuffPair)
L_019b: newobj Void .ctor(Object, IntPtr)
L_01a0: stsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01a5: Label #18
L_01a5: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01aa: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01ac: call Boolean TryRandomElementByWeight[ThingStuffPair](IEnumerable`1,
System.Func`2[RimWorld.ThingStuffPair,System.Single], ThingStuffPair ByRef)
L_01b1: brfalse Label #19
L_01b6: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01b8: ldfld Verse.ThingDef thing
L_01bd: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01bf: ldfld Verse.ThingDef stuff
L_01c4: call Verse.Thing MakeThing(Verse.ThingDef, Verse.ThingDef)
L_01c9: castclass Verse.ThingWithComps
L_01ce: stloc.s 4 (Verse.ThingWithComps)
L_01d0: ldloc.s 4 (Verse.ThingWithComps)
L_01d2: ldarg.0
L_01d3: call Void PostProcessGeneratedGear(Verse.Thing, Verse.Pawn)
L_01d8: ldarg.0
L_01d9: ldfld Verse.Pawn_EquipmentTracker equipment
L_01de: ldloc.s 4 (Verse.ThingWithComps)
L_01e0: callvirt Void AddEquipment(Verse.ThingWithComps)
L_01e5: Label #19
L_01e5: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_01ea: callvirt Void Clear()
L_01ef: br Label #0
L_01f4: Label #0
L_01f4: ret
DONE

PATCHING RimWorld.Bill_Medical Void Notify_DoBillStarted(Verse.Pawn)


L_0000: Local var #0 System.Collections.Generic.List`1[[Verse.ThingStackPartClass,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #1 System.Int32
L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void Notify_DoBillStarted(Verse.Pawn)
L_0007: ldarg.0
L_0008: ldnull
L_0009: stfld Verse.ThingDef consumedInitialMedicineDef
L_000e: ldarg.0
L_000f: call Verse.Pawn get_GiverPawn()
L_0014: callvirt Boolean get_Dead()
L_0019: brtrue Label #2
L_001e: ldarg.0
L_001f: ldfld Verse.RecipeDef recipe
L_0024: call Boolean RecipeHasNoIngredients(Verse.RecipeDef)
L_0029: brtrue Label #2
L_002e: ldarg.0
L_002f: ldfld Verse.RecipeDef recipe
L_0034: ldfld System.Boolean anesthetize
L_0039: brfalse Label #3
L_003e: ldarg.0
L_003f: call Verse.Pawn get_GiverPawn()
L_0044: call Boolean TryAnesthetize(Verse.Pawn)
L_0049: brfalse Label #4
L_004e: ldarg.1
L_004f: callvirt Verse.AI.Job get_CurJob()
L_0054: ldfld System.Collections.Generic.List`1[Verse.ThingStackPartClass]
placedThings
L_0059: stloc.0
L_005a: ldc.i4.0
L_005b: stloc.1
L_005c: br Label #5
L_0061: Label #10
L_0061: ldloc.0
L_0062: ldloc.1
L_0063: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0068: ldfld Verse.Thing thing
L_006d: isinst RimWorld.Medicine
L_0072: brfalse Label #6
L_0077: ldarg.0
L_0078: ldfld Verse.RecipeDef recipe
L_007d: callvirt Verse.RecipeWorker get_Worker()
L_0082: ldloc.0
L_0083: ldloc.1
L_0084: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0089: ldfld Verse.Thing thing
L_008e: ldc.i4.1
L_008f: callvirt Verse.Thing SplitOff(Int32)
L_0094: ldarg.0
L_0095: ldfld Verse.RecipeDef recipe
L_009a: ldarg.1
L_009b: callvirt Verse.Map get_MapHeld()
L_00a0: callvirt Void ConsumeIngredient(Verse.Thing, Verse.RecipeDef, Verse.Map)
L_00a5: ldloc.0
L_00a6: ldloc.1
L_00a7: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ac: dup
L_00ad: callvirt Int32 get_Count()
L_00b2: ldc.i4.1
L_00b3: sub
L_00b4: callvirt Void set_Count(Int32)
L_00b9: ldarg.0
L_00ba: ldloc.0
L_00bb: ldloc.1
L_00bc: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00c1: ldfld Verse.Thing thing
L_00c6: ldfld Verse.ThingDef def
L_00cb: stfld Verse.ThingDef consumedInitialMedicineDef
L_00d0: ldloc.0
L_00d1: ldloc.1
L_00d2: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00d7: ldfld Verse.Thing thing
L_00dc: callvirt Boolean get_Destroyed()
L_00e1: brtrue Label #7
L_00e6: ldloc.0
L_00e7: ldloc.1
L_00e8: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ed: callvirt Int32 get_Count()
L_00f2: ldc.i4.0
L_00f3: bgt Label #8
L_00f8: Label #7
L_00f8: ldloc.0
L_00f9: ldloc.1
L_00fa: callvirt Void RemoveAt(Int32)
L_00ff: Label #8
L_00ff: br Label #9
L_0104: Label #6
L_0104: ldloc.1
L_0105: ldc.i4.1
L_0106: add
L_0107: stloc.1
L_0108: Label #5
L_0108: ldloc.1
L_0109: ldloc.0
L_010a: callvirt Int32 get_Count()
L_010f: blt Label #10
L_0114: Label #2
L_0114: Label #3
L_0114: Label #4
L_0114: Label #9
L_0114: br Label #0
L_0119: Label #0
L_0119: ret
DONE

PATCHING RimWorld.Building_Bed IEnumerable`1 get_AssigningCandidates()


L_0000: ldarg.0
L_0001: callvirt IEnumerable`1 BedCandidates(RimWorld.Building_Bed)
L_0006: Label #0
L_0006: ret
DONE

PATCHING RimWorld.RestUtility RimWorld.Building_Bed FindBedFor(Verse.Pawn,


Verse.Pawn, Boolean, Boolean, Boolean)
L_0000: Local var #0 RimWorld.RestUtility+<FindBedFor>c__AnonStorey0
L_0000: Local var #1 RimWorld.Building_Bed
L_0000: Local var #2 Verse.Pawn
L_0000: Local var #3 Verse.Pawn
L_0000: Local var #4 System.Boolean
L_0000: Local var #5 System.Boolean
L_0000: Local var #6 System.Boolean
L_0000: Local var #7 System.Int32
L_0000: Local var #8 Verse.ThingDef
L_0000: Local var #9 System.Int32
L_0000: Local var #10 RimWorld.RestUtility+<FindBedFor>c__AnonStorey1
L_0000: Local var #11 RimWorld.Building_Bed
L_0000: Local var #12 RimWorld.DirectPawnRelation
L_0000: Local var #13 RimWorld.Building_Bed
L_0000: Local var #14 System.Int32
L_0000: Local var #15 RimWorld.RestUtility+<FindBedFor>c__AnonStorey2
L_0000: Local var #16 System.Int32
L_0000: Local var #17 Verse.ThingDef
L_0000: Local var #18 RimWorld.Building_Bed
L_0000: Local var #19 RimWorld.Building_Bed
L_0000: ldnull
L_0001: stloc 19 (RimWorld.Building_Bed)
L_0003: newobj Void .ctor()
L_0008: stloc.0
L_0009: ldloc.0
L_000a: ldarg.0
L_000b: stfld Verse.Pawn sleeper
L_0010: ldloc.0
L_0011: ldarg.1
L_0012: stfld Verse.Pawn traveler
L_0017: ldloc.0
L_0018: ldarg.2
L_0019: stfld System.Boolean sleeperWillBePrisoner
L_001e: ldloc.0
L_001f: ldarg.3
L_0020: stfld System.Boolean checkSocialProperness
L_0025: ldloc.0
L_0026: ldarg.s 4
L_0028: stfld System.Boolean ignoreOtherReservations
L_002d: ldloc.0
L_002e: ldfld Verse.Pawn sleeper
L_0033: call Boolean ShouldSeekMedicalRest(Verse.Pawn)
L_0038: brfalse Label #2
L_003d: ldloc.0
L_003e: ldfld Verse.Pawn sleeper
L_0043: call Boolean InBed(Verse.Pawn)
L_0048: brfalse Label #3
L_004d: ldloc.0
L_004e: ldfld Verse.Pawn sleeper
L_0053: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0058: callvirt Boolean get_Medical()
L_005d: brfalse Label #4
L_0062: ldloc.0
L_0063: ldfld Verse.Pawn sleeper
L_0068: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_006d: stloc.1
L_006e: ldloc.0
L_006f: ldfld Verse.Pawn sleeper
L_0074: stloc.2
L_0075: ldloc.0
L_0076: ldfld Verse.Pawn traveler
L_007b: stloc.3
L_007c: ldloc.0
L_007d: ldfld System.Boolean sleeperWillBePrisoner
L_0082: stloc.s 4 (System.Boolean)
L_0084: ldloc.0
L_0085: ldfld System.Boolean checkSocialProperness
L_008a: stloc.s 5 (System.Boolean)
L_008c: ldloc.0
L_008d: ldfld System.Boolean ignoreOtherReservations
L_0092: stloc.s 6 (System.Boolean)
L_0094: ldloc.1
L_0095: ldloc.2
L_0096: ldloc.3
L_0097: ldloc.s 4 (System.Boolean)
L_0099: ldloc.s 5 (System.Boolean)
L_009b: ldc.i4.0
L_009c: ldloc.s 6 (System.Boolean)
L_009e: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_00a3: brfalse Label #5
L_00a8: ldloc.0
L_00a9: ldfld Verse.Pawn sleeper
L_00ae: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00b3: br Label #0
L_00b8: Label #3
L_00b8: Label #4
L_00b8: Label #5
L_00b8: ldc.i4.0
L_00b9: stloc.s 7 (System.Int32)
L_00bb: br Label #6
L_00c0: Label #14
L_00c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_00c5: ldloc.s 7 (System.Int32)
L_00c7: callvirt Verse.ThingDef get_Item(Int32)
L_00cc: stloc.s 8 (Verse.ThingDef)
L_00ce: ldloc.0
L_00cf: ldfld Verse.Pawn sleeper
L_00d4: ldloc.s 8 (Verse.ThingDef)
L_00d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_00db: brtrue Label #7
L_00e0: br Label #8
L_00e5: Label #7
L_00e5: ldc.i4.0
L_00e6: stloc.s 9 (System.Int32)
L_00e8: br Label #9
L_00ed: Label #13
L_00ed: newobj Void .ctor()
L_00f2: stloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f4: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f6: ldloc.0
L_00f7: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_00fc: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00fe: ldloc.s 9 (System.Int32)
L_0100: brtrue Label #10
L_0105: ldc.i4.1
L_0106: br Label #11
L_010b: Label #10
L_010b: ldc.i4.3
L_010c: Label #11
L_010c: stfld Verse.Danger maxDanger
L_0111: ldloc.0
L_0112: ldfld Verse.Pawn sleeper
L_0117: callvirt IntVec3 get_Position()
L_011c: ldloc.0
L_011d: ldfld Verse.Pawn sleeper
L_0122: callvirt Verse.Map get_Map()
L_0127: ldloc.s 8 (Verse.ThingDef)
L_0129: call ThingRequest ForDef(Verse.ThingDef)
L_012e: ldc.i4.1
L_012f: ldloc.0
L_0130: ldfld Verse.Pawn traveler
L_0135: ldc.i4.3
L_0136: ldc.i4.0
L_0137: ldc.i4.0
L_0138: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_013d: ldc.r4 9999
L_0142: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_0144: ldftn Boolean <>m__0(Verse.Thing)
L_014a: newobj Void .ctor(Object, IntPtr)
L_014f: ldnull
L_0150: ldc.i4.0
L_0151: ldc.i4.m1
L_0152: ldc.i4.0
L_0153: ldc.i4.6
L_0154: ldc.i4.0
L_0155: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_015a: castclass RimWorld.Building_Bed
L_015f: stloc.s 11 (RimWorld.Building_Bed)
L_0161: ldloc.s 11 (RimWorld.Building_Bed)
L_0163: brfalse Label #12
L_0168: ldloc.s 11 (RimWorld.Building_Bed)
L_016a: br Label #0
L_016f: Label #12
L_016f: ldloc.s 9 (System.Int32)
L_0171: ldc.i4.1
L_0172: add
L_0173: stloc.s 9 (System.Int32)
L_0175: Label #9
L_0175: ldloc.s 9 (System.Int32)
L_0177: ldc.i4.2
L_0178: blt Label #13
L_017d: Label #8
L_017d: ldloc.s 7 (System.Int32)
L_017f: ldc.i4.1
L_0180: add
L_0181: stloc.s 7 (System.Int32)
L_0183: Label #6
L_0183: ldloc.s 7 (System.Int32)
L_0185: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_018a: callvirt Int32 get_Count()
L_018f: blt Label #14
L_0194: Label #2
L_0194: ldloc.0
L_0195: ldfld Verse.Pawn sleeper
L_019a: ldfld RimWorld.Pawn_Ownership ownership
L_019f: brfalse Label #15
L_01a4: ldloc.0
L_01a5: ldfld Verse.Pawn sleeper
L_01aa: ldfld RimWorld.Pawn_Ownership ownership
L_01af: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01b4: brfalse Label #16
L_01b9: ldloc.0
L_01ba: ldfld Verse.Pawn sleeper
L_01bf: ldfld RimWorld.Pawn_Ownership ownership
L_01c4: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01c9: stloc.1
L_01ca: ldloc.0
L_01cb: ldfld Verse.Pawn sleeper
L_01d0: stloc.3
L_01d1: ldloc.0
L_01d2: ldfld Verse.Pawn traveler
L_01d7: stloc.2
L_01d8: ldloc.0
L_01d9: ldfld System.Boolean sleeperWillBePrisoner
L_01de: stloc.s 6 (System.Boolean)
L_01e0: ldloc.0
L_01e1: ldfld System.Boolean checkSocialProperness
L_01e6: stloc.s 5 (System.Boolean)
L_01e8: ldloc.0
L_01e9: ldfld System.Boolean ignoreOtherReservations
L_01ee: stloc.s 4 (System.Boolean)
L_01f0: ldloc.1
L_01f1: ldloc.3
L_01f2: ldloc.2
L_01f3: ldloc.s 6 (System.Boolean)
L_01f5: ldloc.s 5 (System.Boolean)
L_01f7: ldc.i4.0
L_01f8: ldloc.s 4 (System.Boolean)
L_01fa: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_01ff: brfalse Label #17
L_0204: ldloc.0
L_0205: ldfld Verse.Pawn sleeper
L_020a: ldfld RimWorld.Pawn_Ownership ownership
L_020f: callvirt RimWorld.Building_Bed get_OwnedBed()
L_0214: br Label #0
L_0219: Label #15
L_0219: Label #16
L_0219: Label #17
L_0219: ldloc.0
L_021a: ldfld Verse.Pawn sleeper
L_021f: ldc.i4.0
L_0220: call RimWorld.DirectPawnRelation
ExistingMostLikedLovePartnerRel(Verse.Pawn, Boolean)
L_0225: stloc.s 12 (RimWorld.DirectPawnRelation)
L_0227: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0229: brfalse Label #18
L_022e: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0230: ldfld Verse.Pawn otherPawn
L_0235: ldfld RimWorld.Pawn_Ownership ownership
L_023a: callvirt RimWorld.Building_Bed get_OwnedBed()
L_023f: stloc.s 13 (RimWorld.Building_Bed)
L_0241: ldloc.s 13 (RimWorld.Building_Bed)
L_0243: brfalse Label #19
L_0248: ldloc.s 13 (RimWorld.Building_Bed)
L_024a: stloc.1
L_024b: ldloc.0
L_024c: ldfld Verse.Pawn sleeper
L_0251: stloc.2
L_0252: ldloc.0
L_0253: ldfld Verse.Pawn traveler
L_0258: stloc.3
L_0259: ldloc.0
L_025a: ldfld System.Boolean sleeperWillBePrisoner
L_025f: stloc.s 4 (System.Boolean)
L_0261: ldloc.0
L_0262: ldfld System.Boolean checkSocialProperness
L_0267: stloc.s 5 (System.Boolean)
L_0269: ldloc.0
L_026a: ldfld System.Boolean ignoreOtherReservations
L_026f: stloc.s 6 (System.Boolean)
L_0271: ldloc.1
L_0272: ldloc.2
L_0273: ldloc.3
L_0274: ldloc.s 4 (System.Boolean)
L_0276: ldloc.s 5 (System.Boolean)
L_0278: ldc.i4.0
L_0279: ldloc.s 6 (System.Boolean)
L_027b: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_0280: brfalse Label #20
L_0285: ldloc.s 13 (RimWorld.Building_Bed)
L_0287: br Label #0
L_028c: Label #18
L_028c: Label #19
L_028c: Label #20
L_028c: ldc.i4.0
L_028d: stloc.s 14 (System.Int32)
L_028f: br Label #21
L_0294: Label #29
L_0294: newobj Void .ctor()
L_0299: stloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029b: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029d: ldloc.0
L_029e: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_02a3: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_02a5: ldloc.s 14 (System.Int32)
L_02a7: brtrue Label #22
L_02ac: ldc.i4.1
L_02ad: br Label #23
L_02b2: Label #22
L_02b2: ldc.i4.3
L_02b3: Label #23
L_02b3: stfld Verse.Danger maxDanger
L_02b8: ldc.i4.0
L_02b9: stloc.s 16 (System.Int32)
L_02bb: br Label #24
L_02c0: Label #28
L_02c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_02c5: ldloc.s 16 (System.Int32)
L_02c7: callvirt Verse.ThingDef get_Item(Int32)
L_02cc: stloc.s 17 (Verse.ThingDef)
L_02ce: ldloc.0
L_02cf: ldfld Verse.Pawn sleeper
L_02d4: ldloc.s 17 (Verse.ThingDef)
L_02d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_02db: brtrue Label #25
L_02e0: br Label #26
L_02e5: Label #25
L_02e5: ldloc.0
L_02e6: ldfld Verse.Pawn sleeper
L_02eb: callvirt IntVec3 get_Position()
L_02f0: ldloc.0
L_02f1: ldfld Verse.Pawn sleeper
L_02f6: callvirt Verse.Map get_Map()
L_02fb: ldloc.s 17 (Verse.ThingDef)
L_02fd: call ThingRequest ForDef(Verse.ThingDef)
L_0302: ldc.i4.1
L_0303: ldloc.0
L_0304: ldfld Verse.Pawn traveler
L_0309: ldc.i4.3
L_030a: ldc.i4.0
L_030b: ldc.i4.0
L_030c: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_0311: ldc.r4 9999
L_0316: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_0318: ldftn Boolean <>m__0(Verse.Thing)
L_031e: newobj Void .ctor(Object, IntPtr)
L_0323: ldnull
L_0324: ldc.i4.0
L_0325: ldc.i4.m1
L_0326: ldc.i4.0
L_0327: ldc.i4.6
L_0328: ldc.i4.0
L_0329: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_032e: castclass RimWorld.Building_Bed
L_0333: stloc.s 18 (RimWorld.Building_Bed)
L_0335: ldloc.s 18 (RimWorld.Building_Bed)
L_0337: brfalse Label #27
L_033c: ldloc.s 18 (RimWorld.Building_Bed)
L_033e: br Label #0
L_0343: Label #26
L_0343: Label #27
L_0343: ldloc.s 16 (System.Int32)
L_0345: ldc.i4.1
L_0346: add
L_0347: stloc.s 16 (System.Int32)
L_0349: Label #24
L_0349: ldloc.s 16 (System.Int32)
L_034b: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_0350: callvirt Int32 get_Count()
L_0355: blt Label #28
L_035a: ldloc.s 14 (System.Int32)
L_035c: ldc.i4.1
L_035d: add
L_035e: stloc.s 14 (System.Int32)
L_0360: Label #21
L_0360: ldloc.s 14 (System.Int32)
L_0362: ldc.i4.2
L_0363: blt Label #29
L_0368: ldnull
L_0369: br Label #0
L_036e: Label #0
L_036e: stloc 19 (RimWorld.Building_Bed)
L_0370: ldarga 0
L_0376: ldloca 19 (RimWorld.Building_Bed)
L_0378: ldarga 1
L_037e: ldarga 4
L_0384: ldarga 2
L_038a: ldarga 3
L_0390: call Void FindBedFor_Patch(Verse.Pawn ByRef, RimWorld.Building_Bed ByRef,
Verse.Pawn ByRef, Boolean ByRef, Boolean ByRef, Boolean ByRef)
L_0395: ldloc 19 (RimWorld.Building_Bed)
L_0397: ret
DONE

PATCHING RimWorld.JobGiver_DoLovin Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 1 (Verse.AI.Job)
L_0002: call Verse.TickManager get_TickManager()
L_0007: callvirt Int32 get_TicksGame()
L_000c: ldarg.1
L_000d: ldfld Verse.AI.Pawn_MindState mindState
L_0012: ldfld System.Int32 canLovinTick
L_0017: bge Label #2
L_001c: ldnull
L_001d: br Label #0
L_0022: Label #2
L_0022: ldarg.1
L_0023: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0028: brfalse Label #3
L_002d: ldarg.1
L_002e: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0033: callvirt Boolean get_Medical()
L_0038: brtrue Label #4
L_003d: ldarg.1
L_003e: ldfld Verse.Pawn_HealthTracker health
L_0043: ldfld Verse.PawnCapacitiesHandler capacities
L_0048: callvirt Boolean get_CanBeAwake()
L_004d: brtrue Label #5
L_0052: Label #3
L_0052: Label #4
L_0052: ldnull
L_0053: br Label #0
L_0058: Label #5
L_0058: ldarg.1
L_0059: call Verse.Pawn GetPartnerInMyBed(Verse.Pawn)
L_005e: stloc.0
L_005f: ldloc.0
L_0060: brfalse Label #6
L_0065: ldloc.0
L_0066: ldfld Verse.Pawn_HealthTracker health
L_006b: ldfld Verse.PawnCapacitiesHandler capacities
L_0070: callvirt Boolean get_CanBeAwake()
L_0075: brfalse Label #7
L_007a: call Verse.TickManager get_TickManager()
L_007f: callvirt Int32 get_TicksGame()
L_0084: ldloc.0
L_0085: ldfld Verse.AI.Pawn_MindState mindState
L_008a: ldfld System.Int32 canLovinTick
L_008f: bge Label #8
L_0094: Label #6
L_0094: Label #7
L_0094: ldnull
L_0095: br Label #0
L_009a: Label #8
L_009a: ldarg.1
L_009b: ldloc.0
L_009c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00a1: ldc.i4.1
L_00a2: ldc.i4.m1
L_00a3: ldnull
L_00a4: ldc.i4.0
L_00a5: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00aa: brfalse Label #9
L_00af: ldloc.0
L_00b0: ldarg.1
L_00b1: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00b6: ldc.i4.1
L_00b7: ldc.i4.m1
L_00b8: ldnull
L_00b9: ldc.i4.0
L_00ba: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00bf: brtrue Label #10
L_00c4: Label #9
L_00c4: ldnull
L_00c5: br Label #0
L_00ca: Label #10
L_00ca: ldsfld Verse.JobDef Lovin
L_00cf: ldloc.0
L_00d0: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00d5: ldarg.1
L_00d6: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00db: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00e0: newobj Void .ctor(JobDef, LocalTargetInfo, LocalTargetInfo)
L_00e5: br Label #0
L_00ea: Label #0
L_00ea: stloc 1 (Verse.AI.Job)
L_00eb: ldloca 1 (Verse.AI.Job)
L_00ed: ldarga 1
L_00f3: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_00f8: ldloc 1 (Verse.AI.Job)
L_00f9: ret
DONE

PATCHING RimWorld.JobDriver_Lovin+<MakeNewToils>c__Iterator0 Void <>m__4()


L_0000: Local var #0 RimWorld.Thought_Memory
L_0000: ldsfld RimWorld.ThoughtDef GotSomeLovin
L_0005: call RimWorld.Thought MakeThought(RimWorld.ThoughtDef)
L_000a: castclass RimWorld.Thought_Memory
L_000f: stloc.0
L_0010: ldarg.0
L_0011: ldfld RimWorld.JobDriver_Lovin $this
L_0016: ldfld Verse.Pawn pawn
L_001b: ldfld RimWorld.Pawn_NeedsTracker needs
L_0020: ldfld RimWorld.Need_Mood mood
L_0025: ldfld RimWorld.ThoughtHandler thoughts
L_002a: ldfld RimWorld.MemoryThoughtHandler memories
L_002f: ldloc.0
L_0030: ldarg.0
L_0031: ldfld RimWorld.JobDriver_Lovin $this
L_0036: call Verse.Pawn get_Partner()
L_003b: callvirt Void TryGainMemory(RimWorld.Thought_Memory, Verse.Pawn)
L_0040: ldarg.0
L_0041: ldfld RimWorld.JobDriver_Lovin $this
L_0046: ldfld Verse.Pawn pawn
L_004b: ldfld Verse.AI.Pawn_MindState mindState
L_0050: call Verse.TickManager get_TickManager()
L_0055: callvirt Int32 get_TicksGame()
L_005a: ldarg.0
L_005b: ldfld RimWorld.JobDriver_Lovin $this
L_0060: ldarg.0
L_0061: ldfld RimWorld.JobDriver_Lovin $this
L_0066: ldfld Verse.Pawn pawn
L_006b: call Int32 GenerateRandomMinTicksToNextLovin(Verse.Pawn)
L_0070: add
L_0071: stfld System.Int32 canLovinTick
L_0076: ldarg.0
L_0077: ldfld RimWorld.JobDriver_Lovin $this
L_007c: ldfld Verse.Pawn pawn
L_0081: ldarg.0
L_0082: ldfld RimWorld.JobDriver_Lovin $this
L_0087: call Verse.Pawn get_Partner()
L_008c: call Void TryToImpregnate(Verse.Pawn, Verse.Pawn)
L_0091: br Label #0
L_0096: Label #0
L_0096: ret
DONE

PATCHING RimWorld.JobDriver_Wear+<MakeNewToils>c__Iterator0 Boolean MoveNext()


L_0000: Local var #0 System.UInt32
L_0000: ldarg.0
L_0001: ldfld System.Int32 $PC
L_0006: stloc.0
L_0007: ldarg.0
L_0008: ldc.i4.m1
L_0009: stfld System.Int32 $PC
L_000e: ldloc.0
L_000f: switch Labels #2 #3 #4 #5
L_0024: br Label #6
L_0029: Label #2
L_0029: ldarg.0
L_002a: ldfld RimWorld.JobDriver_Wear $this
L_002f: call RimWorld.JobDriver_Wear FailOnBaby[JobDriver_Wear]
(RimWorld.JobDriver_Wear)
L_0034: pop
L_0035: ldarg.0
L_0036: newobj Void .ctor()
L_003b: stfld Verse.AI.Toil <gotoApparel>__1
L_0040: ldarg.0
L_0041: ldfld Verse.AI.Toil <gotoApparel>__1
L_0046: ldarg.0
L_0047: ldftn Void <>m__0()
L_004d: newobj Void .ctor(Object, IntPtr)
L_0052: stfld System.Action initAction
L_0057: ldarg.0
L_0058: ldfld Verse.AI.Toil <gotoApparel>__1
L_005d: ldc.i4.2
L_005e: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0063: ldarg.0
L_0064: ldfld Verse.AI.Toil <gotoApparel>__1
L_0069: ldc.i4.1
L_006a: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_006f: pop
L_0070: ldarg.0
L_0071: ldarg.0
L_0072: ldfld Verse.AI.Toil <gotoApparel>__1
L_0077: stfld Verse.AI.Toil $current
L_007c: ldarg.0
L_007d: ldfld System.Boolean $disposing
L_0082: brtrue Label #7
L_0087: ldarg.0
L_0088: ldc.i4.1
L_0089: stfld System.Int32 $PC
L_008e: Label #7
L_008e: br Label #8
L_0093: Label #3
L_0093: ldarg.0
L_0094: newobj Void .ctor()
L_0099: stfld Verse.AI.Toil <prepare>__2
L_009e: ldarg.0
L_009f: ldfld Verse.AI.Toil <prepare>__2
L_00a4: ldc.i4.3
L_00a5: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_00aa: ldarg.0
L_00ab: ldfld Verse.AI.Toil <prepare>__2
L_00b0: ldc.i4.s 60
L_00b2: stfld System.Int32 defaultDuration
L_00b7: ldarg.0
L_00b8: ldfld Verse.AI.Toil <prepare>__2
L_00bd: ldc.i4.1
L_00be: ldc.i4.0
L_00bf: ldc.r4 -0.5
L_00c4: call Verse.AI.Toil WithProgressBarToilDelay(Verse.AI.Toil, TargetIndex,
Boolean, Single)
L_00c9: pop
L_00ca: ldarg.0
L_00cb: ldfld Verse.AI.Toil <prepare>__2
L_00d0: ldc.i4.1
L_00d1: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_00d6: pop
L_00d7: ldarg.0
L_00d8: ldarg.0
L_00d9: ldfld Verse.AI.Toil <prepare>__2
L_00de: stfld Verse.AI.Toil $current
L_00e3: ldarg.0
L_00e4: ldfld System.Boolean $disposing
L_00e9: brtrue Label #9
L_00ee: ldarg.0
L_00ef: ldc.i4.2
L_00f0: stfld System.Int32 $PC
L_00f5: Label #9
L_00f5: br Label #10
L_00fa: Label #4
L_00fa: ldarg.0
L_00fb: newobj Void .ctor()
L_0100: stfld Verse.AI.Toil <wear>__3
L_0105: ldarg.0
L_0106: ldfld Verse.AI.Toil <wear>__3
L_010b: ldarg.0
L_010c: ldftn Void <>m__1()
L_0112: newobj Void .ctor(Object, IntPtr)
L_0117: stfld System.Action initAction
L_011c: ldarg.0
L_011d: ldfld Verse.AI.Toil <wear>__3
L_0122: ldc.i4.1
L_0123: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0128: ldarg.0
L_0129: ldarg.0
L_012a: ldfld Verse.AI.Toil <wear>__3
L_012f: stfld Verse.AI.Toil $current
L_0134: ldarg.0
L_0135: ldfld System.Boolean $disposing
L_013a: brtrue Label #11
L_013f: ldarg.0
L_0140: ldc.i4.3
L_0141: stfld System.Int32 $PC
L_0146: Label #11
L_0146: br Label #12
L_014b: Label #5
L_014b: ldarg.0
L_014c: ldc.i4.m1
L_014d: stfld System.Int32 $PC
L_0152: Label #6
L_0152: ldc.i4.0
L_0153: br Label #0
L_0158: Label #8
L_0158: Label #10
L_0158: Label #12
L_0158: ldc.i4.1
L_0159: br Label #0
L_015e: Label #0
L_015e: ret
DONE

PATCHING RimWorld.ThoughtUtility Boolean CanGetThought(Verse.Pawn,


RimWorld.ThoughtDef)
L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Int32
L_0000: Local var #2 System.Boolean
L_0000: Local var #3 System.Int32
L_0000: Local var #4 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 4 (System.Boolean)
L_0007: ldarg.1
L_0008: ldfld System.Boolean validWhileDespawned
L_000d: brtrue Label #2
L_0012: ldarg.0
L_0013: callvirt Boolean get_Spawned()
L_0018: brtrue Label #3
L_001d: ldarg.1
L_001e: callvirt Boolean get_IsMemory()
L_0023: brtrue Label #4
L_0028: ldc.i4.0
L_0029: stloc.0
L_002a: leave Label #5
L_002f: Label #2
L_002f: Label #3
L_002f: Label #4
L_002f: ldarg.1
L_0030: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0035: brfalse Label #6
L_003a: ldc.i4.0
L_003b: stloc.1
L_003c: br Label #7
L_0041: Label #10
L_0041: ldarg.0
L_0042: ldfld RimWorld.Pawn_StoryTracker story
L_0047: ldfld RimWorld.TraitSet traits
L_004c: ldarg.1
L_004d: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0052: ldloc.1
L_0053: callvirt RimWorld.TraitDef get_Item(Int32)
L_0058: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_005d: brfalse Label #8
L_0062: ldc.i4.0
L_0063: stloc.0
L_0064: leave Label #9
L_0069: Label #8
L_0069: ldloc.1
L_006a: ldc.i4.1
L_006b: add
L_006c: stloc.1
L_006d: Label #7
L_006d: ldloc.1
L_006e: ldarg.1
L_006f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0074: callvirt Int32 get_Count()
L_0079: blt Label #10
L_007e: Label #6
L_007e: ldarg.1
L_007f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0084: call Boolean NullOrEmpty[TraitDef](IList`1)
L_0089: brtrue Label #11
L_008e: ldc.i4.0
L_008f: stloc.2
L_0090: ldc.i4.0
L_0091: stloc.3
L_0092: br Label #12
L_0097: Label #19
L_0097: ldarg.0
L_0098: ldfld RimWorld.Pawn_StoryTracker story
L_009d: ldfld RimWorld.TraitSet traits
L_00a2: ldarg.1
L_00a3: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00a8: ldloc.3
L_00a9: callvirt RimWorld.TraitDef get_Item(Int32)
L_00ae: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_00b3: brtrue Label #13
L_00b8: leave Label #14
L_00bd: Label #13
L_00bd: ldarg.1
L_00be: callvirt Boolean get_RequiresSpecificTraitsDegree()
L_00c3: brfalse Label #15
L_00c8: ldarg.1
L_00c9: ldfld System.Int32 requiredTraitsDegree
L_00ce: ldarg.0
L_00cf: ldfld RimWorld.Pawn_StoryTracker story
L_00d4: ldfld RimWorld.TraitSet traits
L_00d9: ldarg.1
L_00da: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00df: ldloc.3
L_00e0: callvirt RimWorld.TraitDef get_Item(Int32)
L_00e5: callvirt Int32 DegreeOfTrait(RimWorld.TraitDef)
L_00ea: beq Label #16
L_00ef: leave Label #17
L_00f4: Label #15
L_00f4: Label #16
L_00f4: ldc.i4.1
L_00f5: stloc.2
L_00f6: leave Label #18
L_00fb: Label #14
L_00fb: Label #17
L_00fb: ldloc.3
L_00fc: ldc.i4.1
L_00fd: add
L_00fe: stloc.3
L_00ff: Label #12
L_00ff: ldloc.3
L_0100: ldarg.1
L_0101: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0106: callvirt Int32 get_Count()
L_010b: blt Label #19
L_0110: Label #18
L_0110: ldloc.2
L_0111: brtrue Label #20
L_0116: ldc.i4.0
L_0117: stloc.0
L_0118: leave Label #21
L_011d: Label #11
L_011d: Label #20
L_011d: ldarg.1
L_011e: ldfld System.Boolean nullifiedIfNotColonist
L_0123: brfalse Label #22
L_0128: ldarg.0
L_0129: callvirt Boolean get_IsColonist()
L_012e: brtrue Label #23
L_0133: ldc.i4.0
L_0134: stloc.0
L_0135: leave Label #24
L_013a: Label #22
L_013a: Label #23
L_013a: ldarg.1
L_013b: ldarg.0
L_013c: call Boolean IsSituationalThoughtNullifiedByHediffs(RimWorld.ThoughtDef,
Verse.Pawn)
L_0141: brfalse Label #25
L_0146: ldc.i4.0
L_0147: stloc.0
L_0148: leave Label #26
L_014d: Label #25
L_014d: ldarg.1
L_014e: ldarg.0
L_014f: call Boolean IsThoughtNullifiedByOwnTales(RimWorld.ThoughtDef, Verse.Pawn)
L_0154: brfalse Label #27
L_0159: ldc.i4.0
L_015a: stloc.0
L_015b: leave Label #28
L_0160: Label #27
L_0160: leave Label #29
L_0165: endfinally
L_0166: Label #29
L_0166: ldc.i4.1
L_0167: br Label #0
L_016c: Label #5
L_016c: Label #9
L_016c: Label #21
L_016c: Label #24
L_016c: Label #26
L_016c: Label #28
L_016c: ldloc.0
L_016d: br Label #0
L_0172: Label #0
L_0172: stloc 4 (System.Boolean)
L_0174: ldarga 0
L_017a: ldarga 1
L_0180: ldloca 4 (System.Boolean)
L_0182: call Void CanGetThought_Patch(Verse.Pawn ByRef, RimWorld.ThoughtDef ByRef,
Boolean ByRef)
L_0187: ldloc 4 (System.Boolean)
L_0189: ret
DONE

PATCHING RimWorld.JobGiver_SocialFighting Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Verb
L_0000: Local var #2 Verse.AI.Job
L_0000: Local var #3 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 3 (Verse.AI.Job)
L_0002: ldarg.1
L_0003: callvirt Verse.RaceProperties get_RaceProps()
L_0008: callvirt Boolean get_Humanlike()
L_000d: brfalse Label #2
L_0012: ldarg.1
L_0013: ldfld RimWorld.Pawn_StoryTracker story
L_0018: ldc.i4.8
L_0019: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_001e: brfalse Label #3
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: Label #3
L_0029: ldarg.1
L_002a: callvirt Verse.AI.MentalState get_MentalState()
L_002f: castclass Verse.AI.MentalState_SocialFighting
L_0034: ldfld Verse.Pawn otherPawn
L_0039: stloc.0
L_003a: ldarg.1
L_003b: ldloca.s 1 (Verse.Verb)
L_003d: call Boolean TryGetRandomVerbForSocialFight(Verse.Pawn, Verse.Verb ByRef)
L_0042: brtrue Label #4
L_0047: ldnull
L_0048: br Label #0
L_004d: Label #4
L_004d: ldsfld Verse.JobDef SocialFight
L_0052: ldloc.0
L_0053: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0058: newobj Void .ctor(JobDef, LocalTargetInfo)
L_005d: stloc.2
L_005e: ldloc.2
L_005f: ldc.i4.1
L_0060: stfld System.Int32 maxNumMeleeAttacks
L_0065: ldloc.2
L_0066: ldloc.1
L_0067: stfld Verse.Verb verbToUse
L_006c: ldloc.2
L_006d: br Label #0
L_0072: Label #0
L_0072: stloc 3 (Verse.AI.Job)
L_0073: ldarga 1
L_0079: ldloca 3 (Verse.AI.Job)
L_007b: call Void TryGiveJob_Postfix(Verse.Pawn ByRef, Verse.AI.Job ByRef)
L_0080: ldloc 3 (Verse.AI.Job)
L_0081: ret
DONE

PATCHING RimWorld.Pawn_ApparelTracker Void ApparelChanged()


L_0000: ldarg.0
L_0001: ldftn Void <ApparelChanged>m__1()
L_0007: newobj Void .ctor(Object, IntPtr)
L_000c: call Void ExecuteWhenFinished(System.Action)
L_0011: br Label #0
L_0016: Label #0
L_0016: ldarga 0
L_001c: call Void ApparelChanged_Postfix(RimWorld.Pawn_ApparelTracker ByRef)
L_0021: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveAllGraphics()


L_0000: Local var #0 Verse.PawnKindLifeStage
L_0000: ldarg.0
L_0001: call Void ClearCache()
L_0006: ldarg.0
L_0007: ldfld Verse.Pawn pawn
L_000c: callvirt Verse.RaceProperties get_RaceProps()
L_0011: callvirt Boolean get_Humanlike()
L_0016: brfalse Label #2
L_001b: ldarg.0
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_StoryTracker story
L_0027: ldfld RimWorld.BodyType bodyType
L_002c: ldsfld UnityEngine.Shader CutoutSkin
L_0031: ldarg.0
L_0032: ldfld Verse.Pawn pawn
L_0037: ldfld RimWorld.Pawn_StoryTracker story
L_003c: callvirt Color get_SkinColor()
L_0041: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_0046: stfld Verse.Graphic nakedGraphic
L_004b: ldarg.0
L_004c: ldarg.0
L_004d: ldfld Verse.Pawn pawn
L_0052: ldfld RimWorld.Pawn_StoryTracker story
L_0057: ldfld RimWorld.BodyType bodyType
L_005c: ldsfld UnityEngine.Shader CutoutSkin
L_0061: ldsfld UnityEngine.Color RottingColor
L_0066: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_006b: stfld Verse.Graphic rottingGraphic
L_0070: ldarg.0
L_0071: ldstr "Things/Pawn/Humanlike/HumanoidDessicated"
L_0076: ldsfld UnityEngine.Shader Cutout
L_007b: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader)
L_0080: stfld Verse.Graphic dessicatedGraphic
L_0085: ldarg.0
L_0086: ldarg.0
L_0087: ldfld Verse.Pawn pawn
L_008c: ldfld RimWorld.Pawn_StoryTracker story
L_0091: callvirt System.String get_HeadGraphicPath()
L_0096: ldarg.0
L_0097: ldfld Verse.Pawn pawn
L_009c: ldfld RimWorld.Pawn_StoryTracker story
L_00a1: callvirt Color get_SkinColor()
L_00a6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00ab: stfld Verse.Graphic headGraphic
L_00b0: ldarg.0
L_00b1: ldarg.0
L_00b2: ldfld Verse.Pawn pawn
L_00b7: ldfld RimWorld.Pawn_StoryTracker story
L_00bc: callvirt System.String get_HeadGraphicPath()
L_00c1: ldsfld UnityEngine.Color RottingColor
L_00c6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00cb: stfld Verse.Graphic desiccatedHeadGraphic
L_00d0: ldarg.0
L_00d1: call Verse.Graphic_Multi GetSkull()
L_00d6: stfld Verse.Graphic skullGraphic
L_00db: ldarg.0
L_00dc: ldarg.0
L_00dd: ldfld Verse.Pawn pawn
L_00e2: ldfld RimWorld.Pawn_StoryTracker story
L_00e7: callvirt Color get_SkinColor()
L_00ec: call Verse.Graphic_Multi GetStump(Color)
L_00f1: stfld Verse.Graphic headStumpGraphic
L_00f6: ldarg.0
L_00f7: ldsfld UnityEngine.Color RottingColor
L_00fc: call Verse.Graphic_Multi GetStump(Color)
L_0101: stfld Verse.Graphic desiccatedHeadStumpGraphic
L_0106: ldarg.0
L_0107: ldarg.0
L_0108: ldfld Verse.Pawn pawn
L_010d: ldfld RimWorld.Pawn_StoryTracker story
L_0112: ldfld RimWorld.HairDef hairDef
L_0117: ldfld System.String texPath
L_011c: ldsfld UnityEngine.Shader Cutout
L_0121: call Vector2 get_one()
L_0126: ldarg.0
L_0127: ldfld Verse.Pawn pawn
L_012c: ldfld RimWorld.Pawn_StoryTracker story
L_0131: ldfld UnityEngine.Color hairColor
L_0136: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_013b: stfld Verse.Graphic hairGraphic
L_0140: ldarg.0
L_0141: call Void ResolveApparelGraphics()
L_0146: br Label #3
L_014b: Label #2
L_014b: ldarg.0
L_014c: ldfld Verse.Pawn pawn
L_0151: ldfld Verse.Pawn_AgeTracker ageTracker
L_0156: callvirt Verse.PawnKindLifeStage get_CurKindLifeStage()
L_015b: stloc.0
L_015c: ldarg.0
L_015d: ldfld Verse.Pawn pawn
L_0162: ldfld Verse.Gender gender
L_0167: ldc.i4.2
L_0168: bne.un Label #4
L_016d: ldloc.0
L_016e: ldfld Verse.GraphicData femaleGraphicData
L_0173: brtrue Label #5
L_0178: Label #4
L_0178: ldarg.0
L_0179: ldloc.0
L_017a: ldfld Verse.GraphicData bodyGraphicData
L_017f: callvirt Verse.Graphic get_Graphic()
L_0184: stfld Verse.Graphic nakedGraphic
L_0189: br Label #6
L_018e: Label #5
L_018e: ldarg.0
L_018f: ldloc.0
L_0190: ldfld Verse.GraphicData femaleGraphicData
L_0195: callvirt Verse.Graphic get_Graphic()
L_019a: stfld Verse.Graphic nakedGraphic
L_019f: Label #6
L_019f: ldarg.0
L_01a0: ldarg.0
L_01a1: ldfld Verse.Graphic nakedGraphic
L_01a6: ldsfld UnityEngine.Shader CutoutSkin
L_01ab: ldsfld UnityEngine.Color RottingColor
L_01b0: ldsfld UnityEngine.Color RottingColor
L_01b5: callvirt Verse.Graphic GetColoredVersion(UnityEngine.Shader, Color, Color)
L_01ba: stfld Verse.Graphic rottingGraphic
L_01bf: ldarg.0
L_01c0: ldfld Verse.Pawn pawn
L_01c5: callvirt Verse.RaceProperties get_RaceProps()
L_01ca: ldfld System.Boolean packAnimal
L_01cf: brfalse Label #7
L_01d4: ldarg.0
L_01d5: ldarg.0
L_01d6: ldfld Verse.Graphic nakedGraphic
L_01db: ldfld System.String path
L_01e0: ldstr "Pack"
L_01e5: call System.String Concat(System.String, System.String)
L_01ea: ldsfld UnityEngine.Shader Cutout
L_01ef: ldarg.0
L_01f0: ldfld Verse.Graphic nakedGraphic
L_01f5: ldfld UnityEngine.Vector2 drawSize
L_01fa: call Color get_white()
L_01ff: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_0204: stfld Verse.Graphic packGraphic
L_0209: Label #7
L_0209: ldloc.0
L_020a: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_020f: brfalse Label #8
L_0214: ldarg.0
L_0215: ldloc.0
L_0216: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_021b: ldarg.0
L_021c: ldfld Verse.Pawn pawn
L_0221: callvirt Verse.Graphic GraphicColoredFor(Verse.Thing)
L_0226: stfld Verse.Graphic dessicatedGraphic
L_022b: Label #3
L_022b: Label #8
L_022b: br Label #0
L_0230: Label #0
L_0230: ldarga 0
L_0236: call Void ResolveAllGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_023b: ret
DONE
PATCHING Verse.PawnGraphicSet Void ResolveApparelGraphics()
L_0000: Local var #0 RimWorld.Apparel
L_0000: Local var #1 System.Collections.Generic.IEnumerator`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 RimWorld.ApparelGraphicRecord
L_0000: ldarga 0
L_0006: call Void ResolveApparelGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_000b: ldarg.0
L_000c: call Void ClearCache()
L_0011: ldarg.0
L_0012: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0017: callvirt Void Clear()
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_ApparelTracker apparel
L_0027: callvirt IEnumerable`1 get_WornApparelInDrawOrder()
L_002c: callvirt IEnumerator`1 GetEnumerator()
L_0031: stloc.1
L_0032: br Label #2
L_0037: Label #4
L_0037: ldloc.1
L_0038: callvirt RimWorld.Apparel get_Current()
L_003d: stloc.0
L_003e: ldloc.0
L_003f: ldarg.0
L_0040: ldfld Verse.Pawn pawn
L_0045: call BodyType ModifyChildBodyType(Verse.Pawn)
L_004a: ldloca.s 2 (RimWorld.ApparelGraphicRecord)
L_004c: call Boolean TryGetGraphicApparel(RimWorld.Apparel, BodyType,
ApparelGraphicRecord ByRef)
L_0051: brfalse Label #3
L_0056: ldarg.0
L_0057: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_005c: ldloc.2
L_005d: callvirt Void Add(ApparelGraphicRecord)
L_0062: Label #2
L_0062: Label #3
L_0062: ldloc.1
L_0063: callvirt Boolean MoveNext()
L_0068: brtrue Label #4
L_006d: leave Label #5
L_0072: ldloc.1
L_0073: brfalse Label #6
L_0078: ldloc.1
L_0079: callvirt Void Dispose()
L_007e: Label #6
L_007e: endfinally
L_007f: Label #5
L_007f: br Label #0
L_0084: Label #0
L_0084: ret
DONE

PATCHING Verse.PawnRenderer Void RenderPawnInternal(Vector3, Quaternion, Boolean,


Rot4, Rot4, RotDrawMode, Boolean, Boolean)
L_0000: Local var #0 UnityEngine.Mesh
L_0000: Local var #1 UnityEngine.Vector3
L_0000: Local var #2 System.Collections.Generic.List`1[[UnityEngine.Material,
UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #3 System.Int32
L_0000: Local var #4 UnityEngine.Material
L_0000: Local var #5 UnityEngine.Vector3
L_0000: Local var #6 UnityEngine.Vector3
L_0000: Local var #7 UnityEngine.Vector3
L_0000: Local var #8 UnityEngine.Vector3
L_0000: Local var #9 UnityEngine.Material
L_0000: Local var #10 UnityEngine.Mesh
L_0000: Local var #11 UnityEngine.Vector3
L_0000: Local var #12 System.Boolean
L_0000: Local var #13 UnityEngine.Mesh
L_0000: Local var #14
System.Collections.Generic.List`1[[RimWorld.ApparelGraphicRecord, Assembly-CSharp,
Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #15 System.Int32
L_0000: Local var #16 RimWorld.ApparelGraphicRecord
L_0000: Local var #17 RimWorld.ApparelGraphicRecord
L_0000: Local var #18 UnityEngine.Material
L_0000: Local var #19 RimWorld.ApparelGraphicRecord
L_0000: Local var #20 UnityEngine.Material
L_0000: Local var #21 RimWorld.ApparelGraphicRecord
L_0000: Local var #22 UnityEngine.Vector3
L_0000: Local var #23 UnityEngine.Mesh
L_0000: Local var #24 UnityEngine.Material
L_0000: Local var #25 System.Int32
L_0000: Local var #26 RimWorld.ApparelGraphicRecord
L_0000: Local var #27 UnityEngine.Material
L_0000: Local var #28 System.Collections.Generic.List`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #29 System.Int32
L_0000: Local var #30 UnityEngine.Vector3
L_0000: ldarg.0
L_0001: ldfld Verse.PawnGraphicSet graphics
L_0006: callvirt Boolean get_AllResolved()
L_000b: brtrue Label #2
L_0010: ldarg.0
L_0011: ldfld Verse.PawnGraphicSet graphics
L_0016: callvirt Void ResolveAllGraphics()
L_001b: Label #2
L_001b: ldnull
L_001c: stloc.0
L_001d: ldarg.0
L_001e: ldfld Verse.Pawn pawn
L_0023: ldfld Verse.Pawn_AgeTracker ageTracker
L_0028: call Int32 get_CurLifeStageIndex()
L_002d: ldc.i4.2
L_002e: blt Label #43
L_0033: ldarg.3
L_0034: brfalse Label #3
L_0039: Label #43
L_0039: ldarg.1
L_003a: ldarg.0
L_003b: ldfld Verse.Pawn pawn
L_0040: ldarg.s 7
L_0045: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_004a: stloc.1
L_004b: ldloca.s 1 (UnityEngine.Vector3)
L_004d: dup
L_004e: ldfld System.Single y
L_0053: ldc.r4 0.0078125
L_0058: add
L_0059: stfld System.Single y
L_005e: ldarg.s 6
L_0060: ldc.i4.2
L_0061: bne.un Label #4
L_0066: ldarg.0
L_0067: ldfld Verse.Pawn pawn
L_006c: callvirt Verse.RaceProperties get_RaceProps()
L_0071: callvirt Boolean get_Humanlike()
L_0076: brtrue Label #5
L_007b: ldarg.0
L_007c: ldfld Verse.PawnGraphicSet graphics
L_0081: ldfld Verse.Graphic dessicatedGraphic
L_0086: brfalse Label #6
L_008b: ldarg.s 7
L_008d: brtrue Label #7
L_0092: ldarg.0
L_0093: ldfld Verse.PawnGraphicSet graphics
L_0098: ldfld Verse.Graphic dessicatedGraphic
L_009d: ldloc.1
L_009e: ldarg.s 4
L_00a0: ldarg.0
L_00a1: ldfld Verse.Pawn pawn
L_00a6: ldc.r4 0
L_00ab: callvirt Void Draw(Vector3, Rot4, Verse.Thing, Single)
L_00b0: br Label #8
L_00b5: Label #4
L_00b5: Label #5
L_00b5: Label #6
L_00b5: Label #7
L_00b5: ldarg.0
L_00b6: ldfld Verse.Pawn pawn
L_00bb: callvirt Verse.RaceProperties get_RaceProps()
L_00c0: callvirt Boolean get_Humanlike()
L_00c5: brfalse Label #9
L_00ca: ldsfld Verse.GraphicMeshSet humanlikeBodySet
L_00cf: ldarg.s 4
L_00d1: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00d6: stloc.0
L_00d7: br Label #10
L_00dc: Label #9
L_00dc: ldarg.0
L_00dd: ldfld Verse.PawnGraphicSet graphics
L_00e2: ldfld Verse.Graphic nakedGraphic
L_00e7: ldarg.s 4
L_00e9: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00ee: stloc.0
L_00ef: Label #10
L_00ef: ldarg.0
L_00f0: ldfld Verse.PawnGraphicSet graphics
L_00f5: ldarg.s 4
L_00f7: ldarg.s 6
L_00f9: callvirt System.Collections.Generic.List`1[UnityEngine.Material]
MatsBodyBaseAt(Rot4, RotDrawMode)
L_00fe: stloc.2
L_00ff: ldc.i4.0
L_0100: stloc.3
L_0101: br Label #11
L_0106: Label #12
L_0106: ldarg.0
L_0107: ldfld Verse.PawnGraphicSet graphics
L_010c: ldfld Verse.DamageFlasher flasher
L_0111: ldloc.2
L_0112: ldloc.3
L_0113: callvirt UnityEngine.Material get_Item(Int32)
L_0118: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_011d: stloc.s 4 (UnityEngine.Material)
L_011f: ldloc.s 4
L_0124: ldarg.0
L_0125: ldfld Verse.Pawn pawn
L_012a: ldarg.s 4
L_012f: call UnityEngine.Material ModifyClothingForChild(UnityEngine.Material,
Verse.Pawn, Rot4)
L_0134: stloc.s 4
L_0139: ldloc.0
L_013a: ldloc.1
L_013b: ldarg.2
L_013c: ldloc.s 4 (UnityEngine.Material)
L_013e: ldarg.s 7
L_0140: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_0145: ldloca.s 1 (UnityEngine.Vector3)
L_0147: dup
L_0148: ldfld System.Single y
L_014d: ldloc.s 18
L_0152: ldarg.0
L_0153: ldfld Verse.Pawn pawn
L_0158: call UnityEngine.Material ModifyHatForChild(UnityEngine.Material,
Verse.Pawn)
L_015d: stloc.s 18
L_0162: ldc.r4 0.00390625
L_0167: add
L_0168: stfld System.Single y
L_016d: ldloc.3
L_016e: ldc.i4.1
L_016f: add
L_0170: stloc.3
L_0171: Label #11
L_0171: ldloc.3
L_0172: ldloc.2
L_0173: callvirt Int32 get_Count()
L_0178: blt Label #12
L_017d: ldarg.s 6
L_017f: brtrue Label #13
L_0184: ldarg.1
L_0185: ldarg.0
L_0186: ldfld Verse.Pawn pawn
L_018b: ldarg.s 7
L_0190: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0195: stloc.s 5 (UnityEngine.Vector3)
L_0197: ldloca.s 5 (UnityEngine.Vector3)
L_0199: dup
L_019a: ldfld System.Single y
L_019f: ldc.r4 0.01953125
L_01a4: add
L_01a5: stfld System.Single y
L_01aa: ldarg.0
L_01ab: ldfld RimWorld.PawnWoundDrawer woundOverlays
L_01b0: ldloc.s 5 (UnityEngine.Vector3)
L_01b2: ldloc.0
L_01b3: ldarg.2
L_01b4: ldarg.s 7
L_01b6: callvirt Void RenderOverBody(Vector3, UnityEngine.Mesh, Quaternion,
Boolean)
L_01bb: Label #3
L_01bb: Label #8
L_01bb: Label #13
L_01bb: ldarg.1
L_01bc: ldarg.0
L_01bd: ldfld Verse.Pawn pawn
L_01c2: ldarg.s 7
L_01c7: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01cc: stloc.s 6 (UnityEngine.Vector3)
L_01ce: ldarg.1
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldarg.s 7
L_01da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01df: stloc.s 7 (UnityEngine.Vector3)
L_01e1: ldarg.s 4
L_01e3: call Rot4 get_North()
L_01e8: call Boolean op_Inequality(Rot4, Rot4)
L_01ed: brfalse Label #14
L_01f2: ldloca.s 7 (UnityEngine.Vector3)
L_01f4: dup
L_01f5: ldfld System.Single y
L_01fa: ldc.r4 0.02734375
L_01ff: add
L_0200: stfld System.Single y
L_0205: ldloca.s 6 (UnityEngine.Vector3)
L_0207: dup
L_0208: ldfld System.Single y
L_020d: ldc.r4 0.0234375
L_0212: add
L_0213: stfld System.Single y
L_0218: br Label #15
L_021d: Label #14
L_021d: ldloca.s 7 (UnityEngine.Vector3)
L_021f: dup
L_0220: ldfld System.Single y
L_0225: ldc.r4 0.0234375
L_022a: add
L_022b: stfld System.Single y
L_0230: ldloca.s 6 (UnityEngine.Vector3)
L_0232: dup
L_0233: ldfld System.Single y
L_0238: ldc.r4 0.02734375
L_023d: add
L_023e: stfld System.Single y
L_0243: Label #15
L_0243: ldarg.0
L_0244: ldfld Verse.PawnGraphicSet graphics
L_0249: ldfld Verse.Graphic headGraphic
L_024e: brfalse Label #16
L_0253: ldarg.0
L_0254: ldfld Verse.Pawn pawn
L_0259: call Boolean RaceUsesChildren(Verse.Pawn)
L_025e: brfalse Label #44
L_0263: ldarg.0
L_0264: ldfld Verse.Pawn pawn
L_0269: call Boolean EnsurePawnIsChildOrOlder(Verse.Pawn)
L_026e: brfalse Label #16
L_0273: Label #44
L_0273: nop
L_0274: ldarg.2
L_0275: ldarg.0
L_0276: ldarg.s 5
L_0278: call Vector3 BaseHeadOffsetAt(Rot4)
L_027d: call Vector3 op_Multiply(Quaternion, Vector3)
L_0282: stloc.s 8 (UnityEngine.Vector3)
L_0284: ldarg.0
L_0285: ldfld Verse.PawnGraphicSet graphics
L_028a: ldarg.s 5
L_028c: ldarg.s 6
L_028e: ldarg.s 8
L_0290: callvirt UnityEngine.Material HeadMatAt(Rot4, RotDrawMode, Boolean)
L_0295: stloc.s 9 (UnityEngine.Material)
L_0297: ldloc.s 9 (UnityEngine.Material)
L_0299: ldnull
L_029a: call Boolean op_Inequality(UnityEngine.Object, UnityEngine.Object)
L_029f: brfalse Label #17
L_02a4: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_02a9: ldarg.s 5
L_02ab: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_02b0: stloc.s 10 (UnityEngine.Mesh)
L_02b2: ldloc.s 10 (UnityEngine.Mesh)
L_02b4: ldloc.s 7 (UnityEngine.Vector3)
L_02b6: ldloc.s 8 (UnityEngine.Vector3)
L_02b8: call Vector3 op_Addition(Vector3, Vector3)
L_02bd: ldarg.2
L_02be: ldloc.s 9 (UnityEngine.Material)
L_02c0: ldarg.s 7
L_02c2: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_02c7: Label #17
L_02c7: ldarg.1
L_02c8: ldloc.s 8 (UnityEngine.Vector3)
L_02ca: call Vector3 op_Addition(Vector3, Vector3)
L_02cf: ldarg.0
L_02d0: ldfld Verse.Pawn pawn
L_02d5: ldarg.s 7
L_02da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_02df: stloc.s 11 (UnityEngine.Vector3)
L_02e1: ldloca.s 11 (UnityEngine.Vector3)
L_02e3: dup
L_02e4: ldfld System.Single y
L_02e9: ldc.r4 0.03125
L_02ee: add
L_02ef: stfld System.Single y
L_02f4: ldc.i4.0
L_02f5: stloc.s 12 (System.Boolean)
L_02f7: ldarg.s 7
L_02f9: brfalse Label #18
L_02fe: call Boolean get_HatsOnlyOnMap()
L_0303: brtrue Label #19
L_0308: Label #18
L_0308: ldarg.0
L_0309: ldfld Verse.PawnGraphicSet graphics
L_030e: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_0313: ldarg.s 5
L_0315: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_031a: stloc.s 13 (UnityEngine.Mesh)
L_031c: ldarg.0
L_031d: ldfld Verse.PawnGraphicSet graphics
L_0322: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0327: stloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0329: ldc.i4.0
L_032a: stloc.s 15 (System.Int32)
L_032c: br Label #20
L_0331: Label #26
L_0331: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0333: ldloc.s 15 (System.Int32)
L_0335: callvirt ApparelGraphicRecord get_Item(Int32)
L_033a: stloc.s 16 (RimWorld.ApparelGraphicRecord)
L_033c: ldloca.s 16 (RimWorld.ApparelGraphicRecord)
L_033e: ldfld RimWorld.Apparel sourceApparel
L_0343: ldfld Verse.ThingDef def
L_0348: ldfld RimWorld.ApparelProperties apparel
L_034d: callvirt ApparelLayer get_LastLayer()
L_0352: ldc.i4.4
L_0353: bne.un Label #21
L_0358: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_035a: ldloc.s 15 (System.Int32)
L_035c: callvirt ApparelGraphicRecord get_Item(Int32)
L_0361: stloc.s 17 (RimWorld.ApparelGraphicRecord)
L_0363: ldloca.s 17 (RimWorld.ApparelGraphicRecord)
L_0365: ldfld RimWorld.Apparel sourceApparel
L_036a: ldfld Verse.ThingDef def
L_036f: ldfld RimWorld.ApparelProperties apparel
L_0374: ldfld System.Boolean hatRenderedFrontOfFace
L_0379: brtrue Label #22
L_037e: ldc.i4.1
L_037f: stloc.s 12 (System.Boolean)
L_0381: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0383: ldloc.s 15 (System.Int32)
L_0385: callvirt ApparelGraphicRecord get_Item(Int32)
L_038a: stloc.s 19 (RimWorld.ApparelGraphicRecord)
L_038c: ldloca.s 19 (RimWorld.ApparelGraphicRecord)
L_038e: ldfld Verse.Graphic graphic
L_0393: ldarg.s 4
L_0395: ldnull
L_0396: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_039b: stloc.s 18 (UnityEngine.Material)
L_039d: ldarg.0
L_039e: ldfld Verse.PawnGraphicSet graphics
L_03a3: ldfld Verse.DamageFlasher flasher
L_03a8: ldloc.s 18 (UnityEngine.Material)
L_03aa: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03af: stloc.s 18 (UnityEngine.Material)
L_03b1: ldloc.s 13 (UnityEngine.Mesh)
L_03b3: ldloc.s 11 (UnityEngine.Vector3)
L_03b5: ldarg.2
L_03b6: ldloc.s 18 (UnityEngine.Material)
L_03b8: ldarg.s 7
L_03ba: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_03bf: br Label #23
L_03c4: Label #22
L_03c4: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_03c6: ldloc.s 15 (System.Int32)
L_03c8: callvirt ApparelGraphicRecord get_Item(Int32)
L_03cd: stloc.s 21 (RimWorld.ApparelGraphicRecord)
L_03cf: ldloca.s 21 (RimWorld.ApparelGraphicRecord)
L_03d1: ldfld Verse.Graphic graphic
L_03d6: ldarg.s 4
L_03d8: ldnull
L_03d9: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_03de: stloc.s 20 (UnityEngine.Material)
L_03e0: ldarg.0
L_03e1: ldfld Verse.PawnGraphicSet graphics
L_03e6: ldfld Verse.DamageFlasher flasher
L_03eb: ldloc.s 20 (UnityEngine.Material)
L_03ed: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03f2: stloc.s 20 (UnityEngine.Material)
L_03f4: ldarg.1
L_03f5: ldloc.s 8 (UnityEngine.Vector3)
L_03f7: call Vector3 op_Addition(Vector3, Vector3)
L_03fc: stloc.s 22 (UnityEngine.Vector3)
L_03fe: ldloca.s 22 (UnityEngine.Vector3)
L_0400: dup
L_0401: ldfld System.Single y
L_0406: ldarg.s 4
L_0408: call Rot4 get_North()
L_040d: call Boolean op_Equality(Rot4, Rot4)
L_0412: brfalse Label #24
L_0417: ldc.r4 0.00390625
L_041c: br Label #25
L_0421: Label #24
L_0421: ldc.r4 0.03515625
L_0426: Label #25
L_0426: add
L_0427: stfld System.Single y
L_042c: ldloc.s 13 (UnityEngine.Mesh)
L_042e: ldloc.s 22 (UnityEngine.Vector3)
L_0430: ldarg.2
L_0431: ldloc.s 20 (UnityEngine.Material)
L_0433: ldarg.s 7
L_0435: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_043a: Label #21
L_043a: Label #23
L_043a: ldloc.s 15 (System.Int32)
L_043c: ldc.i4.1
L_043d: add
L_043e: stloc.s 15 (System.Int32)
L_0440: Label #20
L_0440: ldloc.s 15 (System.Int32)
L_0442: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0444: callvirt Int32 get_Count()
L_0449: blt Label #26
L_044e: Label #19
L_044e: ldloc.s 12 (System.Boolean)
L_0450: brtrue Label #27
L_0455: ldarg.s 6
L_0457: ldc.i4.2
L_0458: beq Label #28
L_045d: ldarg.s 8
L_045f: brtrue Label #29
L_0464: ldarg.0
L_0465: ldfld Verse.PawnGraphicSet graphics
L_046a: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_046f: ldarg.s 5
L_0471: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0476: stloc.s 23 (UnityEngine.Mesh)
L_0478: ldarg.0
L_0479: ldfld Verse.PawnGraphicSet graphics
L_047e: ldarg.s 5
L_0480: callvirt UnityEngine.Material HairMatAt(Rot4)
L_0485: stloc.s 24 (UnityEngine.Material)
L_0487: ldloc.s 24
L_048c: ldarg.0
L_048d: ldfld Verse.Pawn pawn
L_0492: call UnityEngine.Material ModifyHairForChild(UnityEngine.Material,
Verse.Pawn)
L_0497: stloc.s 24
L_049c: ldloc.s 23 (UnityEngine.Mesh)
L_049e: ldloc.s 11 (UnityEngine.Vector3)
L_04a0: ldarg.2
L_04a1: ldloc.s 24 (UnityEngine.Material)
L_04a3: ldarg.s 7
L_04a5: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_04aa: Label #16
L_04aa: Label #27
L_04aa: Label #28
L_04aa: Label #29
L_04aa: ldarg.3
L_04ab: brfalse Label #30
L_04b0: ldc.i4.0
L_04b1: stloc.s 25 (System.Int32)
L_04b3: br Label #31
L_04b8: Label #33
L_04b8: ldarg.0
L_04b9: ldfld Verse.PawnGraphicSet graphics
L_04be: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_04c3: ldloc.s 25 (System.Int32)
L_04c5: callvirt ApparelGraphicRecord get_Item(Int32)
L_04ca: stloc.s 26 (RimWorld.ApparelGraphicRecord)
L_04cc: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ce: ldfld RimWorld.Apparel sourceApparel
L_04d3: ldfld Verse.ThingDef def
L_04d8: ldfld RimWorld.ApparelProperties apparel
L_04dd: callvirt ApparelLayer get_LastLayer()
L_04e2: ldc.i4.2
L_04e3: bne.un Label #32
L_04e8: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ea: ldfld Verse.Graphic graphic
L_04ef: ldarg.s 4
L_04f1: ldnull
L_04f2: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_04f7: stloc.s 27 (UnityEngine.Material)
L_04f9: ldarg.0
L_04fa: ldfld Verse.PawnGraphicSet graphics
L_04ff: ldfld Verse.DamageFlasher flasher
L_0504: ldloc.s 27 (UnityEngine.Material)
L_0506: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_050b: stloc.s 27 (UnityEngine.Material)
L_050d: ldloc.0
L_050e: ldloc.s 6 (UnityEngine.Vector3)
L_0510: ldarg.2
L_0511: ldloc.s 27 (UnityEngine.Material)
L_0513: ldarg.s 7
L_0515: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_051a: Label #32
L_051a: ldloc.s 25 (System.Int32)
L_051c: ldc.i4.1
L_051d: add
L_051e: stloc.s 25 (System.Int32)
L_0520: Label #31
L_0520: ldloc.s 25 (System.Int32)
L_0522: ldarg.0
L_0523: ldfld Verse.PawnGraphicSet graphics
L_0528: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_052d: callvirt Int32 get_Count()
L_0532: blt Label #33
L_0537: Label #30
L_0537: ldarg.s 7
L_0539: brtrue Label #34
L_053e: ldarg.0
L_053f: ldfld Verse.Pawn pawn
L_0544: callvirt Verse.RaceProperties get_RaceProps()
L_0549: callvirt Boolean get_Animal()
L_054e: brfalse Label #35
L_0553: ldarg.0
L_0554: ldfld Verse.Pawn pawn
L_0559: ldfld Verse.Pawn_InventoryTracker inventory
L_055e: brfalse Label #36
L_0563: ldarg.0
L_0564: ldfld Verse.Pawn pawn
L_0569: ldfld Verse.Pawn_InventoryTracker inventory
L_056e: ldfld Verse.ThingOwner`1[Verse.Thing] innerContainer
L_0573: callvirt Int32 get_Count()
L_0578: ldc.i4.0
L_0579: ble Label #37
L_057e: ldarg.0
L_057f: ldfld Verse.PawnGraphicSet graphics
L_0584: ldfld Verse.Graphic packGraphic
L_0589: brfalse Label #38
L_058e: ldloc.0
L_058f: ldloc.s 6 (UnityEngine.Vector3)
L_0591: ldarg.2
L_0592: ldarg.0
L_0593: ldfld Verse.PawnGraphicSet graphics
L_0598: ldfld Verse.Graphic packGraphic
L_059d: ldarg.s 4
L_059f: ldnull
L_05a0: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_05a5: ldc.i4.0
L_05a6: call Void DrawMesh(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Int32)
L_05ab: Label #34
L_05ab: Label #35
L_05ab: Label #36
L_05ab: Label #37
L_05ab: Label #38
L_05ab: ldarg.s 7
L_05ad: brtrue Label #39
L_05b2: ldarg.0
L_05b3: ldarg.1
L_05b4: call Void DrawEquipment(Vector3)
L_05b9: ldarg.0
L_05ba: ldfld Verse.Pawn pawn
L_05bf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05c4: brfalse Label #40
L_05c9: ldarg.0
L_05ca: ldfld Verse.Pawn pawn
L_05cf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05d4: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_05d9: stloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05db: ldc.i4.0
L_05dc: stloc.s 29 (System.Int32)
L_05de: br Label #41
L_05e3: Label #42
L_05e3: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05e5: ldloc.s 29 (System.Int32)
L_05e7: callvirt RimWorld.Apparel get_Item(Int32)
L_05ec: callvirt Void DrawWornExtras()
L_05f1: ldloc.s 29 (System.Int32)
L_05f3: ldc.i4.1
L_05f4: add
L_05f5: stloc.s 29 (System.Int32)
L_05f7: Label #41
L_05f7: ldloc.s 29 (System.Int32)
L_05f9: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05fb: callvirt Int32 get_Count()
L_0600: blt Label #42
L_0605: Label #40
L_0605: ldarg.1
L_0606: ldarg.0
L_0607: ldfld Verse.Pawn pawn
L_060c: ldarg.s 7
L_0611: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0616: stloc.s 30 (UnityEngine.Vector3)
L_0618: ldloca.s 30 (UnityEngine.Vector3)
L_061a: dup
L_061b: ldfld System.Single y
L_0620: ldc.r4 0.04296875
L_0625: add
L_0626: stfld System.Single y
L_062b: ldarg.0
L_062c: ldfld Verse.PawnHeadOverlays statusOverlays
L_0631: ldloc.s 30 (UnityEngine.Vector3)
L_0633: ldarg.2
L_0634: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_0639: ldarg.s 5
L_063b: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0640: callvirt Void RenderStatusOverlays(Vector3, Quaternion, UnityEngine.Mesh)
L_0645: Label #39
L_0645: br Label #0
L_064a: Label #0
L_064a: ret
DONE

PATCHING Verse.PawnGenerator Verse.Pawn GeneratePawn(PawnGenerationRequest)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Pawn
L_0000: ldnull
L_0001: stloc 1 (Verse.Pawn)
L_0002: ldarg.0
L_0003: call Verse.Pawn GeneratePawnInternal(PawnGenerationRequest)
L_0008: stloc.0
L_0009: leave Label #2
L_000e: endfinally
L_000f: Label #2
L_000f: ldloc.0
L_0010: br Label #0
L_0015: Label #0
L_0015: stloc 1 (Verse.Pawn)
L_0016: ldarga 0
L_001c: ldloca 1 (Verse.Pawn)
L_001e: call Void _GeneratePawn(PawnGenerationRequest ByRef, Verse.Pawn ByRef)
L_0023: ldloc 1 (Verse.Pawn)
L_0024: ret
DONE

PATCHING RimWorld.JobGiver_OptimizeApparel Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 RimWorld.Outfit
L_0000: Local var #1 System.Collections.Generic.List`1[[RimWorld.Apparel, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 System.Int32
L_0000: Local var #3 Verse.AI.Job
L_0000: Local var #4 Verse.Thing
L_0000: Local var #5 System.Single
L_0000: Local var #6 System.Collections.Generic.List`1[[Verse.Thing, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #7 System.Int32
L_0000: Local var #8 RimWorld.Apparel
L_0000: Local var #9 RimWorld.SlotGroup
L_0000: Local var #10 System.Single
L_0000: Local var #11 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 11 (Verse.AI.Job)
L_0003: ldarg.1
L_0004: ldfld RimWorld.Pawn_OutfitTracker outfits
L_0009: brtrue Label #2
L_000e: ldarg.1
L_000f: ldstr " tried to run JobGiver_OptimizeApparel without an OutfitTracker"
L_0014: call System.String Concat(System.Object, System.Object)
L_0019: ldc.i4 5643897
L_001e: call Void ErrorOnce(System.String, Int32)
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: ldarg.1
L_002a: callvirt RimWorld.Faction get_Faction()
L_002f: call RimWorld.Faction get_OfPlayer()
L_0034: beq Label #3
L_0039: ldstr "Non-colonist "
L_003e: ldarg.1
L_003f: ldstr " tried to optimize apparel."
L_0044: call System.String Concat(System.Object, System.Object, System.Object)
L_0049: ldc.i4 764323
L_004e: call Void ErrorOnce(System.String, Int32)
L_0053: ldnull
L_0054: br Label #0
L_0059: Label #3
L_0059: ldsfld System.Boolean debugApparelOptimize
L_005e: brtrue Label #4
L_0063: call Verse.TickManager get_TickManager()
L_0068: callvirt Int32 get_TicksGame()
L_006d: ldarg.1
L_006e: ldfld Verse.AI.Pawn_MindState mindState
L_0073: ldfld System.Int32 nextApparelOptimizeTick
L_0078: bge Label #5
L_007d: ldnull
L_007e: br Label #0
L_0083: Label #5
L_0083: br Label #6
L_0088: Label #4
L_0088: newobj Void .ctor()
L_008d: stsfld System.Text.StringBuilder debugSb
L_0092: ldsfld System.Text.StringBuilder debugSb
L_0097: ldc.i4.4
L_0098: newarr System.Object
L_009d: dup
L_009e: ldc.i4.0
L_009f: ldstr "Scanning for "
L_00a4: stelem.ref
L_00a5: dup
L_00a6: ldc.i4.1
L_00a7: ldarg.1
L_00a8: stelem.ref
L_00a9: dup
L_00aa: ldc.i4.2
L_00ab: ldstr " at "
L_00b0: stelem.ref
L_00b1: dup
L_00b2: ldc.i4.3
L_00b3: ldarg.1
L_00b4: callvirt IntVec3 get_Position()
L_00b9: box Verse.IntVec3
L_00be: stelem.ref
L_00bf: call System.String Concat(System.Object[])
L_00c4: callvirt System.Text.StringBuilder AppendLine(System.String)
L_00c9: pop
L_00ca: Label #6
L_00ca: ldarg.1
L_00cb: ldfld RimWorld.Pawn_OutfitTracker outfits
L_00d0: callvirt RimWorld.Outfit get_CurrentOutfit()
L_00d5: stloc.0
L_00d6: ldarg.1
L_00d7: ldfld RimWorld.Pawn_ApparelTracker apparel
L_00dc: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_00e1: stloc.1
L_00e2: ldloc.1
L_00e3: callvirt Int32 get_Count()
L_00e8: ldc.i4.1
L_00e9: sub
L_00ea: stloc.2
L_00eb: br Label #7
L_00f0: Label #10
L_00f0: ldloc.0
L_00f1: ldfld Verse.ThingFilter filter
L_00f6: ldloc.1
L_00f7: ldloc.2
L_00f8: callvirt RimWorld.Apparel get_Item(Int32)
L_00fd: callvirt Boolean Allows(Verse.Thing)
L_0102: brtrue Label #8
L_0107: ldarg.1
L_0108: ldfld RimWorld.Pawn_OutfitTracker outfits
L_010d: ldfld RimWorld.OutfitForcedHandler forcedHandler
L_0112: ldloc.1
L_0113: ldloc.2
L_0114: callvirt RimWorld.Apparel get_Item(Int32)
L_0119: callvirt Boolean AllowedToAutomaticallyDrop(RimWorld.Apparel)
L_011e: brfalse Label #9
L_0123: ldsfld Verse.JobDef RemoveApparel
L_0128: ldloc.1
L_0129: ldloc.2
L_012a: callvirt RimWorld.Apparel get_Item(Int32)
L_012f: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0134: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0139: stloc.3
L_013a: ldloc.3
L_013b: ldc.i4.1
L_013c: stfld System.Boolean haulDroppedApparel
L_0141: ldloc.3
L_0142: br Label #0
L_0147: Label #8
L_0147: Label #9
L_0147: ldloc.2
L_0148: ldc.i4.1
L_0149: sub
L_014a: stloc.2
L_014b: Label #7
L_014b: ldloc.2
L_014c: ldc.i4.0
L_014d: bge Label #10
L_0152: ldnull
L_0153: stloc.s 4 (Verse.Thing)
L_0155: ldc.r4 0
L_015a: stloc.s 5 (System.Single)
L_015c: ldarg.1
L_015d: callvirt Verse.Map get_Map()
L_0162: ldfld Verse.ListerThings listerThings
L_0167: ldc.i4.s 26
L_0169: callvirt System.Collections.Generic.List`1[Verse.Thing]
ThingsInGroup(ThingRequestGroup)
L_016e: stloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0170: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0172: callvirt Int32 get_Count()
L_0177: brtrue Label #11
L_017c: ldarg.0
L_017d: ldarg.1
L_017e: call Void SetNextOptimizeTick(Verse.Pawn)
L_0183: ldnull
L_0184: br Label #0
L_0189: Label #11
L_0189: ldarg.1
L_018a: ldarg.1
L_018b: callvirt Verse.Map get_Map()
L_0190: callvirt Int32 get_Tile()
L_0195: ldarg.1
L_0196: call Twelfth Twelfth(Verse.Thing)
L_019b: call NeededWarmth CalculateNeededWarmth(Verse.Pawn, Int32, Twelfth)
L_01a0: stsfld RimWorld.NeededWarmth neededWarmth
L_01a5: ldc.i4.0
L_01a6: stloc.s 7 (System.Int32)
L_01a8: br Label #12
L_01ad: Label #27
L_01ad: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_01af: ldloc.s 7 (System.Int32)
L_01b1: callvirt Verse.Thing get_Item(Int32)
L_01b6: castclass RimWorld.Apparel
L_01bb: stloc.s 8 (RimWorld.Apparel)
L_01bd: ldloc.0
L_01be: ldfld Verse.ThingFilter filter
L_01c3: ldloc.s 8 (RimWorld.Apparel)
L_01c5: callvirt Boolean Allows(Verse.Thing)
L_01ca: brtrue Label #13
L_01cf: br Label #14
L_01d4: Label #13
L_01d4: ldloc.s 8 (RimWorld.Apparel)
L_01d6: callvirt Verse.Map get_Map()
L_01db: ldfld RimWorld.SlotGroupManager slotGroupManager
L_01e0: ldloc.s 8 (RimWorld.Apparel)
L_01e2: callvirt IntVec3 get_Position()
L_01e7: callvirt RimWorld.SlotGroup SlotGroupAt(IntVec3)
L_01ec: stloc.s 9 (RimWorld.SlotGroup)
L_01ee: ldloc.s 9 (RimWorld.SlotGroup)
L_01f0: brtrue Label #15
L_01f5: br Label #16
L_01fa: Label #15
L_01fa: ldloc.s 8 (RimWorld.Apparel)
L_01fc: ldarg.1
L_01fd: call Boolean IsForbidden(Verse.Thing, Verse.Pawn)
L_0202: brfalse Label #17
L_0207: br Label #18
L_020c: Label #17
L_020c: ldarg.1
L_020d: ldloc.s 8 (RimWorld.Apparel)
L_020f: call Single ApparelScoreGain(Verse.Pawn, RimWorld.Apparel)
L_0214: stloc.s 10 (System.Single)
L_0216: ldsfld System.Boolean debugApparelOptimize
L_021b: brfalse Label #19
L_0220: ldsfld System.Text.StringBuilder debugSb
L_0225: ldloc.s 8 (RimWorld.Apparel)
L_0227: callvirt System.String get_LabelCap()
L_022c: ldstr ": "
L_0231: ldloca.s 10 (System.Single)
L_0233: ldstr "F2"
L_0238: call System.String ToString(System.String)
L_023d: call System.String Concat(System.String, System.String, System.String)
L_0242: callvirt System.Text.StringBuilder AppendLine(System.String)
L_0247: pop
L_0248: Label #19
L_0248: ldloc.s 10 (System.Single)
L_024a: ldc.r4 0.05
L_024f: blt Label #20
L_0254: ldloc.s 10 (System.Single)
L_0256: ldloc.s 5 (System.Single)
L_0258: bge.un Label #21
L_025d: Label #20
L_025d: br Label #22
L_0262: Label #21
L_0262: ldarg.1
L_0263: ldloc.s 8 (RimWorld.Apparel)
L_0265: ldfld Verse.ThingDef def
L_026a: call Boolean HasPartsToWear(Verse.Pawn, Verse.ThingDef)
L_026f: brtrue Label #23
L_0274: br Label #24
L_0279: Label #23
L_0279: ldarg.1
L_027a: ldloc.s 8 (RimWorld.Apparel)
L_027c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0281: ldc.i4.1
L_0282: ldarg.1
L_0283: call Danger NormalMaxDanger(Verse.Pawn)
L_0288: ldc.i4.1
L_0289: ldc.i4.m1
L_028a: ldnull
L_028b: ldc.i4.0
L_028c: call Boolean CanReserveAndReach(Verse.Pawn, LocalTargetInfo, PathEndMode,
Danger, Int32, Int32, Verse.ReservationLayerDef, Boolean)
L_0291: brtrue Label #25
L_0296: br Label #26
L_029b: Label #25
L_029b: ldloc.s 8 (RimWorld.Apparel)
L_029d: stloc.s 4 (Verse.Thing)
L_029f: ldloc.s 10 (System.Single)
L_02a1: stloc.s 5 (System.Single)
L_02a3: Label #14
L_02a3: Label #16
L_02a3: Label #18
L_02a3: Label #22
L_02a3: Label #24
L_02a3: Label #26
L_02a3: ldloc.s 7 (System.Int32)
L_02a5: ldc.i4.1
L_02a6: add
L_02a7: stloc.s 7 (System.Int32)
L_02a9: Label #12
L_02a9: ldloc.s 7 (System.Int32)
L_02ab: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_02ad: callvirt Int32 get_Count()
L_02b2: blt Label #27
L_02b7: ldsfld System.Boolean debugApparelOptimize
L_02bc: brfalse Label #28
L_02c1: ldsfld System.Text.StringBuilder debugSb
L_02c6: ldstr "BEST: "
L_02cb: ldloc.s 4 (Verse.Thing)
L_02cd: call System.String Concat(System.Object, System.Object)
L_02d2: callvirt System.Text.StringBuilder AppendLine(System.String)
L_02d7: pop
L_02d8: ldsfld System.Text.StringBuilder debugSb
L_02dd: callvirt System.String ToString()
L_02e2: call Void Message(System.String)
L_02e7: ldnull
L_02e8: stsfld System.Text.StringBuilder debugSb
L_02ed: Label #28
L_02ed: ldloc.s 4 (Verse.Thing)
L_02ef: brtrue Label #29
L_02f4: ldarg.0
L_02f5: ldarg.1
L_02f6: call Void SetNextOptimizeTick(Verse.Pawn)
L_02fb: ldnull
L_02fc: br Label #0
L_0301: Label #29
L_0301: ldsfld Verse.JobDef Wear
L_0306: ldloc.s 4 (Verse.Thing)
L_0308: call LocalTargetInfo op_Implicit(Verse.Thing)
L_030d: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0312: br Label #0
L_0317: Label #0
L_0317: stloc 11 (Verse.AI.Job)
L_0319: ldloca 11 (Verse.AI.Job)
L_031b: ldarga 1
L_0321: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_0326: ldloc 11 (Verse.AI.Job)
L_0328: ret
DONE

PATCHING Verse.Pawn_HealthTracker Boolean ShouldBeDowned()


L_0000: Local var #0 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 0 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean get_InPainShock()
L_000c: brtrue Label #2
L_0011: ldarg.0
L_0012: ldfld Verse.PawnCapacitiesHandler capacities
L_0017: callvirt Boolean get_CanBeAwake()
L_001c: brfalse Label #3
L_0021: ldarg.0
L_0022: ldfld Verse.PawnCapacitiesHandler capacities
L_0027: ldsfld Verse.PawnCapacityDef Moving
L_002c: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0031: ldc.i4.0
L_0032: ceq
L_0034: br Label #4
L_0039: Label #2
L_0039: Label #3
L_0039: ldc.i4.1
L_003a: Label #4
L_003a: br Label #0
L_003f: Label #0
L_003f: stloc 0 (System.Boolean)
L_0040: ldarga 0
L_0046: ldloca 0 (System.Boolean)
L_0048: call Void SBD(Verse.Pawn_HealthTracker ByRef, Boolean ByRef)
L_004d: ldloc 0 (System.Boolean)
L_004e: ret
DONE

PATCHING Verse.Pawn_HealthTracker Void CheckForStateChange(Nullable`1,


Verse.Hediff)
L_0000: Local var #0 System.Single
L_0000: Local var #1 Verse.DamageInfo
L_0000: Local var #2 Verse.ThingWithComps
L_0000: ldarg.0
L_0001: call Boolean get_Dead()
L_0006: brtrue Label #2
L_000b: ldarg.0
L_000c: call Boolean ShouldBeDead()
L_0011: brfalse Label #3
L_0016: ldarg.0
L_0017: ldfld Verse.Pawn pawn
L_001c: callvirt Boolean get_Destroyed()
L_0021: brtrue Label #4
L_0026: ldarg.0
L_0027: ldfld Verse.Pawn pawn
L_002c: ldarg.1
L_002d: ldarg.2
L_002e: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_0033: Label #4
L_0033: br Label #0
L_0038: Label #3
L_0038: ldarg.0
L_0039: call Boolean get_Downed()
L_003e: brtrue Label #5
L_0043: ldarg.0
L_0044: call Boolean ShouldBeDowned()
L_0049: brfalse Label #6
L_004e: ldarg.0
L_004f: ldfld Verse.Pawn pawn
L_0054: callvirt Verse.RaceProperties get_RaceProps()
L_0059: callvirt Boolean get_Animal()
L_005e: brfalse Label #7
L_0063: ldc.r4 0.47
L_0068: br Label #8
L_006d: Label #7
L_006d: ldc.r4 0.67
L_0072: Label #8
L_0072: stloc.0
L_0073: ldarg.0
L_0074: ldfld System.Boolean forceIncap
L_0079: brtrue Label #9
L_007e: ldarga.s 1
L_0080: call Boolean get_HasValue()
L_0085: brfalse Label #10
L_008a: ldarga.s 1
L_008c: call DamageInfo get_Value()
L_0091: stloc.1
L_0092: ldloca.s 1 (Verse.DamageInfo)
L_0094: call Verse.DamageDef get_Def()
L_0099: ldfld System.Boolean externalViolence
L_009e: brfalse Label #11
L_00a3: ldarg.0
L_00a4: ldfld Verse.Pawn pawn
L_00a9: callvirt RimWorld.Faction get_Faction()
L_00ae: brfalse Label #12
L_00b3: ldarg.0
L_00b4: ldfld Verse.Pawn pawn
L_00b9: callvirt RimWorld.Faction get_Faction()
L_00be: callvirt Boolean get_IsPlayer()
L_00c3: brtrue Label #13
L_00c8: br Label #13
L_00cd: Label #12
L_00cd: ldarg.0
L_00ce: ldfld Verse.Pawn pawn
L_00d3: callvirt Boolean get_IsPrisonerOfColony()
L_00d8: brtrue Label #14
L_00dd: ldarg.0
L_00de: ldfld Verse.Pawn pawn
L_00e3: callvirt Verse.RaceProperties get_RaceProps()
L_00e8: callvirt Boolean get_IsFlesh()
L_00ed: brfalse Label #15
L_00f2: call Single get_Value()
L_00f7: ldloc.0
L_00f8: bge.un Label #16
L_00fd: ldarg.0
L_00fe: ldfld Verse.Pawn pawn
L_0103: ldarg.1
L_0104: ldnull
L_0105: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_010a: br Label #0
L_010f: Label #9
L_010f: Label #10
L_010f: Label #11
L_010f: Label #13
L_010f: Label #14
L_010f: Label #15
L_010f: Label #16
L_010f: ldarg.0
L_0110: ldc.i4.0
L_0111: stfld System.Boolean forceIncap
L_0116: ldarg.0
L_0117: ldarg.1
L_0118: ldarg.2
L_0119: call Void MakeDowned(Nullable`1, Verse.Hediff)
L_011e: br Label #0
L_0123: Label #6
L_0123: ldarg.0
L_0124: ldfld Verse.PawnCapacitiesHandler capacities
L_0129: ldsfld Verse.PawnCapacityDef Manipulation
L_012e: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0133: brtrue Label #17
L_0138: ldarg.0
L_0139: ldfld Verse.Pawn pawn
L_013e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0143: brfalse Label #18
L_0148: ldarg.0
L_0149: ldfld Verse.Pawn pawn
L_014e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0153: callvirt Verse.Thing get_CarriedThing()
L_0158: brfalse Label #19
L_015d: ldarg.0
L_015e: ldfld Verse.Pawn pawn
L_0163: ldfld Verse.AI.Pawn_JobTracker jobs
L_0168: brfalse Label #20
L_016d: ldarg.0
L_016e: ldfld Verse.Pawn pawn
L_0173: callvirt Verse.AI.Job get_CurJob()
L_0178: brfalse Label #21
L_017d: ldarg.0
L_017e: ldfld Verse.Pawn pawn
L_0183: ldfld Verse.AI.Pawn_JobTracker jobs
L_0188: ldc.i4.5
L_0189: ldc.i4.1
L_018a: callvirt Void EndCurrentJob(JobCondition, Boolean)
L_018f: Label #18
L_018f: Label #19
L_018f: Label #20
L_018f: Label #21
L_018f: ldarg.0
L_0190: ldfld Verse.Pawn pawn
L_0195: ldfld Verse.Pawn_EquipmentTracker equipment
L_019a: brfalse Label #22
L_019f: ldarg.0
L_01a0: ldfld Verse.Pawn pawn
L_01a5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01aa: callvirt Verse.ThingWithComps get_Primary()
L_01af: brfalse Label #23
L_01b4: ldarg.0
L_01b5: ldfld Verse.Pawn pawn
L_01ba: callvirt Boolean get_InContainerEnclosed()
L_01bf: brfalse Label #24
L_01c4: ldarg.0
L_01c5: ldfld Verse.Pawn pawn
L_01ca: ldfld Verse.Pawn_EquipmentTracker equipment
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01da: callvirt Verse.ThingWithComps get_Primary()
L_01df: ldarg.0
L_01e0: ldfld Verse.Pawn pawn
L_01e5: ldfld Verse.ThingOwner holdingOwner
L_01ea: callvirt Boolean TryTransferEquipmentToContainer(Verse.ThingWithComps,
Verse.ThingOwner)
L_01ef: pop
L_01f0: br Label #25
L_01f5: Label #24
L_01f5: ldarg.0
L_01f6: ldfld Verse.Pawn pawn
L_01fb: callvirt Boolean get_SpawnedOrAnyParentSpawned()
L_0200: brfalse Label #26
L_0205: ldarg.0
L_0206: ldfld Verse.Pawn pawn
L_020b: ldfld Verse.Pawn_EquipmentTracker equipment
L_0210: ldarg.0
L_0211: ldfld Verse.Pawn pawn
L_0216: ldfld Verse.Pawn_EquipmentTracker equipment
L_021b: callvirt Verse.ThingWithComps get_Primary()
L_0220: ldloca.s 2 (Verse.ThingWithComps)
L_0222: ldarg.0
L_0223: ldfld Verse.Pawn pawn
L_0228: callvirt IntVec3 get_PositionHeld()
L_022d: ldc.i4.1
L_022e: callvirt Boolean TryDropEquipment(Verse.ThingWithComps,
Verse.ThingWithComps ByRef, IntVec3, Boolean)
L_0233: pop
L_0234: br Label #27
L_0239: Label #26
L_0239: ldarg.0
L_023a: ldfld Verse.Pawn pawn
L_023f: ldfld Verse.Pawn_EquipmentTracker equipment
L_0244: ldarg.0
L_0245: ldfld Verse.Pawn pawn
L_024a: ldfld Verse.Pawn_EquipmentTracker equipment
L_024f: callvirt Verse.ThingWithComps get_Primary()
L_0254: callvirt Void DestroyEquipment(Verse.ThingWithComps)
L_0259: Label #17
L_0259: Label #22
L_0259: Label #23
L_0259: Label #25
L_0259: Label #27
L_0259: br Label #28
L_025e: Label #5
L_025e: ldarg.0
L_025f: call Boolean ShouldBeDowned()
L_0264: brtrue Label #29
L_0269: ldarg.0
L_026a: call Void MakeUndowned()
L_026f: br Label #0
L_0274: Label #2
L_0274: Label #28
L_0274: Label #29
L_0274: br Label #0
L_0279: Label #0
L_0279: ret
DONE

PATCHING RimWorld.RestUtility Single WakeThreshold(Verse.Pawn)


L_0000: Local var #0 Verse.AI.Group.Lord
L_0000: Local var #1 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #2 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #3 System.Single
L_0000: ldc.r4 0
L_0005: stloc 3 (System.Single)
L_0006: ldarg.0
L_0007: call Verse.AI.Group.Lord GetLord(Verse.Pawn)
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldloc.0
L_0014: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0019: brfalse Label #3
L_001e: ldloc.0
L_001f: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0024: callvirt Nullable`1 get_CustomWakeThreshold()
L_0029: stloc.1
L_002a: ldloca.s 1 (System.Nullable`1[System.Single])
L_002c: call Boolean get_HasValue()
L_0031: brfalse Label #4
L_0036: ldloc.0
L_0037: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_003c: callvirt Nullable`1 get_CustomWakeThreshold()
L_0041: stloc.2
L_0042: ldloca.s 2 (System.Nullable`1[System.Single])
L_0044: call Single get_Value()
L_0049: br Label #0
L_004e: Label #2
L_004e: Label #3
L_004e: Label #4
L_004e: ldc.r4 1
L_0053: br Label #0
L_0058: Label #0
L_0058: stloc 3 (System.Single)
L_0059: ldloca 3 (System.Single)
L_005b: ldarga 0
L_0061: call Void WakeThreshold_Patch(Single ByRef, Verse.Pawn ByRef)
L_0066: ldloc 3 (System.Single)
L_0067: ret
DONE

PATCHING Verse.Verb_Shoot Boolean TryCastShot()


L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 1 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean TryCastShot()
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldarg.0
L_0014: call Boolean get_CasterIsPawn()
L_0019: brfalse Label #3
L_001e: ldarg.0
L_001f: call Verse.Pawn get_CasterPawn()
L_0024: ldfld RimWorld.Pawn_RecordsTracker records
L_0029: ldsfld RimWorld.RecordDef ShotsFired
L_002e: callvirt Void Increment(RimWorld.RecordDef)
L_0033: Label #2
L_0033: Label #3
L_0033: ldloc.0
L_0034: br Label #0
L_0039: Label #0
L_0039: stloc 1 (System.Boolean)
L_003a: ldarga 0
L_0040: call Void TryCastShot_Patch(Verse.Verb_Shoot ByRef)
L_0045: ldloc 1 (System.Boolean)
L_0046: ret
DONE

PATCHING Verse.Pawn_EquipmentTracker Void


Notify_EquipmentAdded(Verse.ThingWithComps)
L_0000: Local var #0 Verse.Verb
L_0000: Local var #1 System.Collections.Generic.List`1+Enumerator[[Verse.Verb,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: ldarg.1
L_0001: callvirt Verse.CompEquippable GetComp[CompEquippable]()
L_0006: callvirt System.Collections.Generic.List`1[Verse.Verb] get_AllVerbs()
L_000b: callvirt Enumerator GetEnumerator()
L_0010: stloc.1
L_0011: br Label #2
L_0016: Label #3
L_0016: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0018: call Verse.Verb get_Current()
L_001d: stloc.0
L_001e: ldloc.0
L_001f: ldarg.0
L_0020: ldfld Verse.Pawn pawn
L_0025: stfld Verse.Thing caster
L_002a: ldloc.0
L_002b: callvirt Void Notify_PickedUp()
L_0030: Label #2
L_0030: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0032: call Boolean MoveNext()
L_0037: brtrue Label #3
L_003c: leave Label #4
L_0041: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0043: constrained. System.Collections.Generic.List`1+Enumerator[Verse.Verb]
L_0049: callvirt Void Dispose()
L_004e: endfinally
L_004f: Label #4
L_004f: br Label #0
L_0054: Label #0
L_0054: ldarga 1
L_005a: ldarga 0
L_0060: call Void Notify_EquipmentAdded_Patch(Verse.ThingWithComps ByRef,
Verse.Pawn_EquipmentTracker ByRef)
L_0065: ret
DONE

PATCHING RimWorld.PawnWeaponGenerator Void TryGenerateWeaponFor(Verse.Pawn)


L_0000: Local var #0 System.Single
L_0000: Local var #1 System.Int32
L_0000: Local var #2
RimWorld.PawnWeaponGenerator+<TryGenerateWeaponFor>c__AnonStorey2
L_0000: Local var #3 RimWorld.ThingStuffPair
L_0000: Local var #4 Verse.ThingWithComps
L_0000: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0005: callvirt Void Clear()
L_000a: ldarg.0
L_000b: ldfld Verse.PawnKindDef kindDef
L_0010: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0015: brfalse Label #2
L_001a: ldarg.0
L_001b: ldfld Verse.PawnKindDef kindDef
L_0020: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0025: callvirt Int32 get_Count()
L_002a: brtrue Label #3
L_002f: Label #2
L_002f: br Label #0
L_0034: Label #3
L_0034: ldarg.0
L_0035: callvirt Verse.RaceProperties get_RaceProps()
L_003a: callvirt Boolean get_ToolUser()
L_003f: brtrue Label #4
L_0044: br Label #0
L_0049: Label #4
L_0049: ldarg.0
L_004a: ldfld Verse.Pawn_HealthTracker health
L_004f: ldfld Verse.PawnCapacitiesHandler capacities
L_0054: ldsfld Verse.PawnCapacityDef Manipulation
L_0059: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_005e: brtrue Label #5
L_0063: br Label #0
L_0068: Label #5
L_0068: ldarg.0
L_0069: ldfld RimWorld.Pawn_StoryTracker story
L_006e: brfalse Label #6
L_0073: ldarg.0
L_0074: ldfld RimWorld.Pawn_StoryTracker story
L_0079: ldc.i4.8
L_007a: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_007f: brfalse Label #7
L_0084: br Label #0
L_0089: Label #6
L_0089: Label #7
L_0089: ldarg.0
L_008a: ldfld Verse.PawnKindDef kindDef
L_008f: ldflda Verse.FloatRange weaponMoney
L_0094: call Single get_RandomInRange()
L_0099: stloc.0
L_009a: ldc.i4.0
L_009b: stloc.1
L_009c: br Label #8
L_00a1: Label #16
L_00a1: newobj Void .ctor()
L_00a6: stloc.2
L_00a7: ldloc.2
L_00a8: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_00ad: ldloc.1
L_00ae: callvirt ThingStuffPair get_Item(Int32)
L_00b3: stfld RimWorld.ThingStuffPair w
L_00b8: ldloc.2
L_00b9: ldflda RimWorld.ThingStuffPair w
L_00be: call Single get_Price()
L_00c3: ldloc.0
L_00c4: ble.un Label #9
L_00c9: br Label #10
L_00ce: Label #9
L_00ce: ldarg.0
L_00cf: ldfld Verse.PawnKindDef kindDef
L_00d4: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_00d9: ldloc.2
L_00da: ldftn Boolean <>m__0(System.String)
L_00e0: newobj Void .ctor(Object, IntPtr)
L_00e5: call Boolean Any[String](System.Collections.Generic.List`1[System.String],
System.Predicate`1[System.String])
L_00ea: brtrue Label #11
L_00ef: br Label #12
L_00f4: Label #11
L_00f4: ldloc.2
L_00f5: ldflda RimWorld.ThingStuffPair w
L_00fa: ldfld Verse.ThingDef thing
L_00ff: ldfld System.Single generateAllowChance
L_0104: ldc.r4 1
L_0109: bge.un Label #13
L_010e: ldarg.0
L_010f: ldfld System.Int32 thingIDNumber
L_0114: ldc.i4 28554824
L_0119: xor
L_011a: call Single ValueSeeded(Int32)
L_011f: ldloc.2
L_0120: ldflda RimWorld.ThingStuffPair w
L_0125: ldfld Verse.ThingDef thing
L_012a: ldfld System.Single generateAllowChance
L_012f: ble.un Label #14
L_0134: br Label #15
L_0139: Label #13
L_0139: Label #14
L_0139: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_013e: ldloc.2
L_013f: ldfld RimWorld.ThingStuffPair w
L_0144: callvirt Void Add(ThingStuffPair)
L_0149: Label #10
L_0149: Label #12
L_0149: Label #15
L_0149: ldloc.1
L_014a: ldc.i4.1
L_014b: add
L_014c: stloc.1
L_014d: Label #8
L_014d: ldloc.1
L_014e: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_0153: callvirt Int32 get_Count()
L_0158: blt Label #16
L_015d: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0162: callvirt Int32 get_Count()
L_0167: brtrue Label #17
L_016c: br Label #0
L_0171: ldarg.0
L_0172: ldloc.2
L_0173: callvirt System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
FilterChildWeapons(Verse.Pawn,
System.Collections.Generic.List`1[RimWorld.ThingStuffPair])
L_0178: stloc.2
L_0179: Label #17
L_0179: ldarg.0
L_017a: ldfld Verse.Pawn_EquipmentTracker equipment
L_017f: ldc.i4.0
L_0180: callvirt Void DestroyAllEquipment(DestroyMode)
L_0185: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_018a: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_018f: brtrue Label #18
L_0194: ldnull
L_0195: ldftn Single <TryGenerateWeaponFor>m__2(ThingStuffPair)
L_019b: newobj Void .ctor(Object, IntPtr)
L_01a0: stsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01a5: Label #18
L_01a5: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01aa: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01ac: call Boolean TryRandomElementByWeight[ThingStuffPair](IEnumerable`1,
System.Func`2[RimWorld.ThingStuffPair,System.Single], ThingStuffPair ByRef)
L_01b1: brfalse Label #19
L_01b6: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01b8: ldfld Verse.ThingDef thing
L_01bd: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01bf: ldfld Verse.ThingDef stuff
L_01c4: call Verse.Thing MakeThing(Verse.ThingDef, Verse.ThingDef)
L_01c9: castclass Verse.ThingWithComps
L_01ce: stloc.s 4 (Verse.ThingWithComps)
L_01d0: ldloc.s 4 (Verse.ThingWithComps)
L_01d2: ldarg.0
L_01d3: call Void PostProcessGeneratedGear(Verse.Thing, Verse.Pawn)
L_01d8: ldarg.0
L_01d9: ldfld Verse.Pawn_EquipmentTracker equipment
L_01de: ldloc.s 4 (Verse.ThingWithComps)
L_01e0: callvirt Void AddEquipment(Verse.ThingWithComps)
L_01e5: Label #19
L_01e5: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_01ea: callvirt Void Clear()
L_01ef: br Label #0
L_01f4: Label #0
L_01f4: ret
DONE

PATCHING RimWorld.Bill_Medical Void Notify_DoBillStarted(Verse.Pawn)


L_0000: Local var #0 System.Collections.Generic.List`1[[Verse.ThingStackPartClass,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #1 System.Int32
L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void Notify_DoBillStarted(Verse.Pawn)
L_0007: ldarg.0
L_0008: ldnull
L_0009: stfld Verse.ThingDef consumedInitialMedicineDef
L_000e: ldarg.0
L_000f: call Verse.Pawn get_GiverPawn()
L_0014: callvirt Boolean get_Dead()
L_0019: brtrue Label #2
L_001e: ldarg.0
L_001f: ldfld Verse.RecipeDef recipe
L_0024: call Boolean RecipeHasNoIngredients(Verse.RecipeDef)
L_0029: brtrue Label #2
L_002e: ldarg.0
L_002f: ldfld Verse.RecipeDef recipe
L_0034: ldfld System.Boolean anesthetize
L_0039: brfalse Label #3
L_003e: ldarg.0
L_003f: call Verse.Pawn get_GiverPawn()
L_0044: call Boolean TryAnesthetize(Verse.Pawn)
L_0049: brfalse Label #4
L_004e: ldarg.1
L_004f: callvirt Verse.AI.Job get_CurJob()
L_0054: ldfld System.Collections.Generic.List`1[Verse.ThingStackPartClass]
placedThings
L_0059: stloc.0
L_005a: ldc.i4.0
L_005b: stloc.1
L_005c: br Label #5
L_0061: Label #10
L_0061: ldloc.0
L_0062: ldloc.1
L_0063: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0068: ldfld Verse.Thing thing
L_006d: isinst RimWorld.Medicine
L_0072: brfalse Label #6
L_0077: ldarg.0
L_0078: ldfld Verse.RecipeDef recipe
L_007d: callvirt Verse.RecipeWorker get_Worker()
L_0082: ldloc.0
L_0083: ldloc.1
L_0084: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0089: ldfld Verse.Thing thing
L_008e: ldc.i4.1
L_008f: callvirt Verse.Thing SplitOff(Int32)
L_0094: ldarg.0
L_0095: ldfld Verse.RecipeDef recipe
L_009a: ldarg.1
L_009b: callvirt Verse.Map get_MapHeld()
L_00a0: callvirt Void ConsumeIngredient(Verse.Thing, Verse.RecipeDef, Verse.Map)
L_00a5: ldloc.0
L_00a6: ldloc.1
L_00a7: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ac: dup
L_00ad: callvirt Int32 get_Count()
L_00b2: ldc.i4.1
L_00b3: sub
L_00b4: callvirt Void set_Count(Int32)
L_00b9: ldarg.0
L_00ba: ldloc.0
L_00bb: ldloc.1
L_00bc: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00c1: ldfld Verse.Thing thing
L_00c6: ldfld Verse.ThingDef def
L_00cb: stfld Verse.ThingDef consumedInitialMedicineDef
L_00d0: ldloc.0
L_00d1: ldloc.1
L_00d2: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00d7: ldfld Verse.Thing thing
L_00dc: callvirt Boolean get_Destroyed()
L_00e1: brtrue Label #7
L_00e6: ldloc.0
L_00e7: ldloc.1
L_00e8: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ed: callvirt Int32 get_Count()
L_00f2: ldc.i4.0
L_00f3: bgt Label #8
L_00f8: Label #7
L_00f8: ldloc.0
L_00f9: ldloc.1
L_00fa: callvirt Void RemoveAt(Int32)
L_00ff: Label #8
L_00ff: br Label #9
L_0104: Label #6
L_0104: ldloc.1
L_0105: ldc.i4.1
L_0106: add
L_0107: stloc.1
L_0108: Label #5
L_0108: ldloc.1
L_0109: ldloc.0
L_010a: callvirt Int32 get_Count()
L_010f: blt Label #10
L_0114: Label #2
L_0114: Label #3
L_0114: Label #4
L_0114: Label #9
L_0114: br Label #0
L_0119: Label #0
L_0119: ret
DONE

PATCHING RimWorld.Building_Bed IEnumerable`1 get_AssigningCandidates()


L_0000: ldarg.0
L_0001: callvirt IEnumerable`1 BedCandidates(RimWorld.Building_Bed)
L_0006: Label #0
L_0006: ret
DONE

PATCHING RimWorld.RestUtility RimWorld.Building_Bed FindBedFor(Verse.Pawn,


Verse.Pawn, Boolean, Boolean, Boolean)
L_0000: Local var #0 RimWorld.RestUtility+<FindBedFor>c__AnonStorey0
L_0000: Local var #1 RimWorld.Building_Bed
L_0000: Local var #2 Verse.Pawn
L_0000: Local var #3 Verse.Pawn
L_0000: Local var #4 System.Boolean
L_0000: Local var #5 System.Boolean
L_0000: Local var #6 System.Boolean
L_0000: Local var #7 System.Int32
L_0000: Local var #8 Verse.ThingDef
L_0000: Local var #9 System.Int32
L_0000: Local var #10 RimWorld.RestUtility+<FindBedFor>c__AnonStorey1
L_0000: Local var #11 RimWorld.Building_Bed
L_0000: Local var #12 RimWorld.DirectPawnRelation
L_0000: Local var #13 RimWorld.Building_Bed
L_0000: Local var #14 System.Int32
L_0000: Local var #15 RimWorld.RestUtility+<FindBedFor>c__AnonStorey2
L_0000: Local var #16 System.Int32
L_0000: Local var #17 Verse.ThingDef
L_0000: Local var #18 RimWorld.Building_Bed
L_0000: Local var #19 RimWorld.Building_Bed
L_0000: ldnull
L_0001: stloc 19 (RimWorld.Building_Bed)
L_0003: newobj Void .ctor()
L_0008: stloc.0
L_0009: ldloc.0
L_000a: ldarg.0
L_000b: stfld Verse.Pawn sleeper
L_0010: ldloc.0
L_0011: ldarg.1
L_0012: stfld Verse.Pawn traveler
L_0017: ldloc.0
L_0018: ldarg.2
L_0019: stfld System.Boolean sleeperWillBePrisoner
L_001e: ldloc.0
L_001f: ldarg.3
L_0020: stfld System.Boolean checkSocialProperness
L_0025: ldloc.0
L_0026: ldarg.s 4
L_0028: stfld System.Boolean ignoreOtherReservations
L_002d: ldloc.0
L_002e: ldfld Verse.Pawn sleeper
L_0033: call Boolean ShouldSeekMedicalRest(Verse.Pawn)
L_0038: brfalse Label #2
L_003d: ldloc.0
L_003e: ldfld Verse.Pawn sleeper
L_0043: call Boolean InBed(Verse.Pawn)
L_0048: brfalse Label #3
L_004d: ldloc.0
L_004e: ldfld Verse.Pawn sleeper
L_0053: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0058: callvirt Boolean get_Medical()
L_005d: brfalse Label #4
L_0062: ldloc.0
L_0063: ldfld Verse.Pawn sleeper
L_0068: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_006d: stloc.1
L_006e: ldloc.0
L_006f: ldfld Verse.Pawn sleeper
L_0074: stloc.2
L_0075: ldloc.0
L_0076: ldfld Verse.Pawn traveler
L_007b: stloc.3
L_007c: ldloc.0
L_007d: ldfld System.Boolean sleeperWillBePrisoner
L_0082: stloc.s 4 (System.Boolean)
L_0084: ldloc.0
L_0085: ldfld System.Boolean checkSocialProperness
L_008a: stloc.s 5 (System.Boolean)
L_008c: ldloc.0
L_008d: ldfld System.Boolean ignoreOtherReservations
L_0092: stloc.s 6 (System.Boolean)
L_0094: ldloc.1
L_0095: ldloc.2
L_0096: ldloc.3
L_0097: ldloc.s 4 (System.Boolean)
L_0099: ldloc.s 5 (System.Boolean)
L_009b: ldc.i4.0
L_009c: ldloc.s 6 (System.Boolean)
L_009e: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_00a3: brfalse Label #5
L_00a8: ldloc.0
L_00a9: ldfld Verse.Pawn sleeper
L_00ae: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00b3: br Label #0
L_00b8: Label #3
L_00b8: Label #4
L_00b8: Label #5
L_00b8: ldc.i4.0
L_00b9: stloc.s 7 (System.Int32)
L_00bb: br Label #6
L_00c0: Label #14
L_00c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_00c5: ldloc.s 7 (System.Int32)
L_00c7: callvirt Verse.ThingDef get_Item(Int32)
L_00cc: stloc.s 8 (Verse.ThingDef)
L_00ce: ldloc.0
L_00cf: ldfld Verse.Pawn sleeper
L_00d4: ldloc.s 8 (Verse.ThingDef)
L_00d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_00db: brtrue Label #7
L_00e0: br Label #8
L_00e5: Label #7
L_00e5: ldc.i4.0
L_00e6: stloc.s 9 (System.Int32)
L_00e8: br Label #9
L_00ed: Label #13
L_00ed: newobj Void .ctor()
L_00f2: stloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f4: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f6: ldloc.0
L_00f7: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_00fc: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00fe: ldloc.s 9 (System.Int32)
L_0100: brtrue Label #10
L_0105: ldc.i4.1
L_0106: br Label #11
L_010b: Label #10
L_010b: ldc.i4.3
L_010c: Label #11
L_010c: stfld Verse.Danger maxDanger
L_0111: ldloc.0
L_0112: ldfld Verse.Pawn sleeper
L_0117: callvirt IntVec3 get_Position()
L_011c: ldloc.0
L_011d: ldfld Verse.Pawn sleeper
L_0122: callvirt Verse.Map get_Map()
L_0127: ldloc.s 8 (Verse.ThingDef)
L_0129: call ThingRequest ForDef(Verse.ThingDef)
L_012e: ldc.i4.1
L_012f: ldloc.0
L_0130: ldfld Verse.Pawn traveler
L_0135: ldc.i4.3
L_0136: ldc.i4.0
L_0137: ldc.i4.0
L_0138: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_013d: ldc.r4 9999
L_0142: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_0144: ldftn Boolean <>m__0(Verse.Thing)
L_014a: newobj Void .ctor(Object, IntPtr)
L_014f: ldnull
L_0150: ldc.i4.0
L_0151: ldc.i4.m1
L_0152: ldc.i4.0
L_0153: ldc.i4.6
L_0154: ldc.i4.0
L_0155: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_015a: castclass RimWorld.Building_Bed
L_015f: stloc.s 11 (RimWorld.Building_Bed)
L_0161: ldloc.s 11 (RimWorld.Building_Bed)
L_0163: brfalse Label #12
L_0168: ldloc.s 11 (RimWorld.Building_Bed)
L_016a: br Label #0
L_016f: Label #12
L_016f: ldloc.s 9 (System.Int32)
L_0171: ldc.i4.1
L_0172: add
L_0173: stloc.s 9 (System.Int32)
L_0175: Label #9
L_0175: ldloc.s 9 (System.Int32)
L_0177: ldc.i4.2
L_0178: blt Label #13
L_017d: Label #8
L_017d: ldloc.s 7 (System.Int32)
L_017f: ldc.i4.1
L_0180: add
L_0181: stloc.s 7 (System.Int32)
L_0183: Label #6
L_0183: ldloc.s 7 (System.Int32)
L_0185: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_018a: callvirt Int32 get_Count()
L_018f: blt Label #14
L_0194: Label #2
L_0194: ldloc.0
L_0195: ldfld Verse.Pawn sleeper
L_019a: ldfld RimWorld.Pawn_Ownership ownership
L_019f: brfalse Label #15
L_01a4: ldloc.0
L_01a5: ldfld Verse.Pawn sleeper
L_01aa: ldfld RimWorld.Pawn_Ownership ownership
L_01af: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01b4: brfalse Label #16
L_01b9: ldloc.0
L_01ba: ldfld Verse.Pawn sleeper
L_01bf: ldfld RimWorld.Pawn_Ownership ownership
L_01c4: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01c9: stloc.1
L_01ca: ldloc.0
L_01cb: ldfld Verse.Pawn sleeper
L_01d0: stloc.3
L_01d1: ldloc.0
L_01d2: ldfld Verse.Pawn traveler
L_01d7: stloc.2
L_01d8: ldloc.0
L_01d9: ldfld System.Boolean sleeperWillBePrisoner
L_01de: stloc.s 6 (System.Boolean)
L_01e0: ldloc.0
L_01e1: ldfld System.Boolean checkSocialProperness
L_01e6: stloc.s 5 (System.Boolean)
L_01e8: ldloc.0
L_01e9: ldfld System.Boolean ignoreOtherReservations
L_01ee: stloc.s 4 (System.Boolean)
L_01f0: ldloc.1
L_01f1: ldloc.3
L_01f2: ldloc.2
L_01f3: ldloc.s 6 (System.Boolean)
L_01f5: ldloc.s 5 (System.Boolean)
L_01f7: ldc.i4.0
L_01f8: ldloc.s 4 (System.Boolean)
L_01fa: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_01ff: brfalse Label #17
L_0204: ldloc.0
L_0205: ldfld Verse.Pawn sleeper
L_020a: ldfld RimWorld.Pawn_Ownership ownership
L_020f: callvirt RimWorld.Building_Bed get_OwnedBed()
L_0214: br Label #0
L_0219: Label #15
L_0219: Label #16
L_0219: Label #17
L_0219: ldloc.0
L_021a: ldfld Verse.Pawn sleeper
L_021f: ldc.i4.0
L_0220: call RimWorld.DirectPawnRelation
ExistingMostLikedLovePartnerRel(Verse.Pawn, Boolean)
L_0225: stloc.s 12 (RimWorld.DirectPawnRelation)
L_0227: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0229: brfalse Label #18
L_022e: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0230: ldfld Verse.Pawn otherPawn
L_0235: ldfld RimWorld.Pawn_Ownership ownership
L_023a: callvirt RimWorld.Building_Bed get_OwnedBed()
L_023f: stloc.s 13 (RimWorld.Building_Bed)
L_0241: ldloc.s 13 (RimWorld.Building_Bed)
L_0243: brfalse Label #19
L_0248: ldloc.s 13 (RimWorld.Building_Bed)
L_024a: stloc.1
L_024b: ldloc.0
L_024c: ldfld Verse.Pawn sleeper
L_0251: stloc.2
L_0252: ldloc.0
L_0253: ldfld Verse.Pawn traveler
L_0258: stloc.3
L_0259: ldloc.0
L_025a: ldfld System.Boolean sleeperWillBePrisoner
L_025f: stloc.s 4 (System.Boolean)
L_0261: ldloc.0
L_0262: ldfld System.Boolean checkSocialProperness
L_0267: stloc.s 5 (System.Boolean)
L_0269: ldloc.0
L_026a: ldfld System.Boolean ignoreOtherReservations
L_026f: stloc.s 6 (System.Boolean)
L_0271: ldloc.1
L_0272: ldloc.2
L_0273: ldloc.3
L_0274: ldloc.s 4 (System.Boolean)
L_0276: ldloc.s 5 (System.Boolean)
L_0278: ldc.i4.0
L_0279: ldloc.s 6 (System.Boolean)
L_027b: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_0280: brfalse Label #20
L_0285: ldloc.s 13 (RimWorld.Building_Bed)
L_0287: br Label #0
L_028c: Label #18
L_028c: Label #19
L_028c: Label #20
L_028c: ldc.i4.0
L_028d: stloc.s 14 (System.Int32)
L_028f: br Label #21
L_0294: Label #29
L_0294: newobj Void .ctor()
L_0299: stloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029b: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029d: ldloc.0
L_029e: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_02a3: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_02a5: ldloc.s 14 (System.Int32)
L_02a7: brtrue Label #22
L_02ac: ldc.i4.1
L_02ad: br Label #23
L_02b2: Label #22
L_02b2: ldc.i4.3
L_02b3: Label #23
L_02b3: stfld Verse.Danger maxDanger
L_02b8: ldc.i4.0
L_02b9: stloc.s 16 (System.Int32)
L_02bb: br Label #24
L_02c0: Label #28
L_02c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_02c5: ldloc.s 16 (System.Int32)
L_02c7: callvirt Verse.ThingDef get_Item(Int32)
L_02cc: stloc.s 17 (Verse.ThingDef)
L_02ce: ldloc.0
L_02cf: ldfld Verse.Pawn sleeper
L_02d4: ldloc.s 17 (Verse.ThingDef)
L_02d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_02db: brtrue Label #25
L_02e0: br Label #26
L_02e5: Label #25
L_02e5: ldloc.0
L_02e6: ldfld Verse.Pawn sleeper
L_02eb: callvirt IntVec3 get_Position()
L_02f0: ldloc.0
L_02f1: ldfld Verse.Pawn sleeper
L_02f6: callvirt Verse.Map get_Map()
L_02fb: ldloc.s 17 (Verse.ThingDef)
L_02fd: call ThingRequest ForDef(Verse.ThingDef)
L_0302: ldc.i4.1
L_0303: ldloc.0
L_0304: ldfld Verse.Pawn traveler
L_0309: ldc.i4.3
L_030a: ldc.i4.0
L_030b: ldc.i4.0
L_030c: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_0311: ldc.r4 9999
L_0316: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_0318: ldftn Boolean <>m__0(Verse.Thing)
L_031e: newobj Void .ctor(Object, IntPtr)
L_0323: ldnull
L_0324: ldc.i4.0
L_0325: ldc.i4.m1
L_0326: ldc.i4.0
L_0327: ldc.i4.6
L_0328: ldc.i4.0
L_0329: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_032e: castclass RimWorld.Building_Bed
L_0333: stloc.s 18 (RimWorld.Building_Bed)
L_0335: ldloc.s 18 (RimWorld.Building_Bed)
L_0337: brfalse Label #27
L_033c: ldloc.s 18 (RimWorld.Building_Bed)
L_033e: br Label #0
L_0343: Label #26
L_0343: Label #27
L_0343: ldloc.s 16 (System.Int32)
L_0345: ldc.i4.1
L_0346: add
L_0347: stloc.s 16 (System.Int32)
L_0349: Label #24
L_0349: ldloc.s 16 (System.Int32)
L_034b: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_0350: callvirt Int32 get_Count()
L_0355: blt Label #28
L_035a: ldloc.s 14 (System.Int32)
L_035c: ldc.i4.1
L_035d: add
L_035e: stloc.s 14 (System.Int32)
L_0360: Label #21
L_0360: ldloc.s 14 (System.Int32)
L_0362: ldc.i4.2
L_0363: blt Label #29
L_0368: ldnull
L_0369: br Label #0
L_036e: Label #0
L_036e: stloc 19 (RimWorld.Building_Bed)
L_0370: ldarga 0
L_0376: ldloca 19 (RimWorld.Building_Bed)
L_0378: ldarga 1
L_037e: ldarga 4
L_0384: ldarga 2
L_038a: ldarga 3
L_0390: call Void FindBedFor_Patch(Verse.Pawn ByRef, RimWorld.Building_Bed ByRef,
Verse.Pawn ByRef, Boolean ByRef, Boolean ByRef, Boolean ByRef)
L_0395: ldloc 19 (RimWorld.Building_Bed)
L_0397: ret
DONE

PATCHING RimWorld.JobGiver_DoLovin Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 1 (Verse.AI.Job)
L_0002: call Verse.TickManager get_TickManager()
L_0007: callvirt Int32 get_TicksGame()
L_000c: ldarg.1
L_000d: ldfld Verse.AI.Pawn_MindState mindState
L_0012: ldfld System.Int32 canLovinTick
L_0017: bge Label #2
L_001c: ldnull
L_001d: br Label #0
L_0022: Label #2
L_0022: ldarg.1
L_0023: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0028: brfalse Label #3
L_002d: ldarg.1
L_002e: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0033: callvirt Boolean get_Medical()
L_0038: brtrue Label #4
L_003d: ldarg.1
L_003e: ldfld Verse.Pawn_HealthTracker health
L_0043: ldfld Verse.PawnCapacitiesHandler capacities
L_0048: callvirt Boolean get_CanBeAwake()
L_004d: brtrue Label #5
L_0052: Label #3
L_0052: Label #4
L_0052: ldnull
L_0053: br Label #0
L_0058: Label #5
L_0058: ldarg.1
L_0059: call Verse.Pawn GetPartnerInMyBed(Verse.Pawn)
L_005e: stloc.0
L_005f: ldloc.0
L_0060: brfalse Label #6
L_0065: ldloc.0
L_0066: ldfld Verse.Pawn_HealthTracker health
L_006b: ldfld Verse.PawnCapacitiesHandler capacities
L_0070: callvirt Boolean get_CanBeAwake()
L_0075: brfalse Label #7
L_007a: call Verse.TickManager get_TickManager()
L_007f: callvirt Int32 get_TicksGame()
L_0084: ldloc.0
L_0085: ldfld Verse.AI.Pawn_MindState mindState
L_008a: ldfld System.Int32 canLovinTick
L_008f: bge Label #8
L_0094: Label #6
L_0094: Label #7
L_0094: ldnull
L_0095: br Label #0
L_009a: Label #8
L_009a: ldarg.1
L_009b: ldloc.0
L_009c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00a1: ldc.i4.1
L_00a2: ldc.i4.m1
L_00a3: ldnull
L_00a4: ldc.i4.0
L_00a5: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00aa: brfalse Label #9
L_00af: ldloc.0
L_00b0: ldarg.1
L_00b1: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00b6: ldc.i4.1
L_00b7: ldc.i4.m1
L_00b8: ldnull
L_00b9: ldc.i4.0
L_00ba: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00bf: brtrue Label #10
L_00c4: Label #9
L_00c4: ldnull
L_00c5: br Label #0
L_00ca: Label #10
L_00ca: ldsfld Verse.JobDef Lovin
L_00cf: ldloc.0
L_00d0: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00d5: ldarg.1
L_00d6: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00db: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00e0: newobj Void .ctor(JobDef, LocalTargetInfo, LocalTargetInfo)
L_00e5: br Label #0
L_00ea: Label #0
L_00ea: stloc 1 (Verse.AI.Job)
L_00eb: ldloca 1 (Verse.AI.Job)
L_00ed: ldarga 1
L_00f3: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_00f8: ldloc 1 (Verse.AI.Job)
L_00f9: ret
DONE

PATCHING RimWorld.JobDriver_Lovin+<MakeNewToils>c__Iterator0 Void <>m__4()


L_0000: Local var #0 RimWorld.Thought_Memory
L_0000: ldsfld RimWorld.ThoughtDef GotSomeLovin
L_0005: call RimWorld.Thought MakeThought(RimWorld.ThoughtDef)
L_000a: castclass RimWorld.Thought_Memory
L_000f: stloc.0
L_0010: ldarg.0
L_0011: ldfld RimWorld.JobDriver_Lovin $this
L_0016: ldfld Verse.Pawn pawn
L_001b: ldfld RimWorld.Pawn_NeedsTracker needs
L_0020: ldfld RimWorld.Need_Mood mood
L_0025: ldfld RimWorld.ThoughtHandler thoughts
L_002a: ldfld RimWorld.MemoryThoughtHandler memories
L_002f: ldloc.0
L_0030: ldarg.0
L_0031: ldfld RimWorld.JobDriver_Lovin $this
L_0036: call Verse.Pawn get_Partner()
L_003b: callvirt Void TryGainMemory(RimWorld.Thought_Memory, Verse.Pawn)
L_0040: ldarg.0
L_0041: ldfld RimWorld.JobDriver_Lovin $this
L_0046: ldfld Verse.Pawn pawn
L_004b: ldfld Verse.AI.Pawn_MindState mindState
L_0050: call Verse.TickManager get_TickManager()
L_0055: callvirt Int32 get_TicksGame()
L_005a: ldarg.0
L_005b: ldfld RimWorld.JobDriver_Lovin $this
L_0060: ldarg.0
L_0061: ldfld RimWorld.JobDriver_Lovin $this
L_0066: ldfld Verse.Pawn pawn
L_006b: call Int32 GenerateRandomMinTicksToNextLovin(Verse.Pawn)
L_0070: add
L_0071: stfld System.Int32 canLovinTick
L_0076: ldarg.0
L_0077: ldfld RimWorld.JobDriver_Lovin $this
L_007c: ldfld Verse.Pawn pawn
L_0081: ldarg.0
L_0082: ldfld RimWorld.JobDriver_Lovin $this
L_0087: call Verse.Pawn get_Partner()
L_008c: call Void TryToImpregnate(Verse.Pawn, Verse.Pawn)
L_0091: br Label #0
L_0096: Label #0
L_0096: ret
DONE

PATCHING RimWorld.JobDriver_Wear+<MakeNewToils>c__Iterator0 Boolean MoveNext()


L_0000: Local var #0 System.UInt32
L_0000: ldarg.0
L_0001: ldfld System.Int32 $PC
L_0006: stloc.0
L_0007: ldarg.0
L_0008: ldc.i4.m1
L_0009: stfld System.Int32 $PC
L_000e: ldloc.0
L_000f: switch Labels #2 #3 #4 #5
L_0024: br Label #6
L_0029: Label #2
L_0029: ldarg.0
L_002a: ldfld RimWorld.JobDriver_Wear $this
L_002f: call RimWorld.JobDriver_Wear FailOnBaby[JobDriver_Wear]
(RimWorld.JobDriver_Wear)
L_0034: pop
L_0035: ldarg.0
L_0036: newobj Void .ctor()
L_003b: stfld Verse.AI.Toil <gotoApparel>__1
L_0040: ldarg.0
L_0041: ldfld Verse.AI.Toil <gotoApparel>__1
L_0046: ldarg.0
L_0047: ldftn Void <>m__0()
L_004d: newobj Void .ctor(Object, IntPtr)
L_0052: stfld System.Action initAction
L_0057: ldarg.0
L_0058: ldfld Verse.AI.Toil <gotoApparel>__1
L_005d: ldc.i4.2
L_005e: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0063: ldarg.0
L_0064: ldfld Verse.AI.Toil <gotoApparel>__1
L_0069: ldc.i4.1
L_006a: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_006f: pop
L_0070: ldarg.0
L_0071: ldarg.0
L_0072: ldfld Verse.AI.Toil <gotoApparel>__1
L_0077: stfld Verse.AI.Toil $current
L_007c: ldarg.0
L_007d: ldfld System.Boolean $disposing
L_0082: brtrue Label #7
L_0087: ldarg.0
L_0088: ldc.i4.1
L_0089: stfld System.Int32 $PC
L_008e: Label #7
L_008e: br Label #8
L_0093: Label #3
L_0093: ldarg.0
L_0094: newobj Void .ctor()
L_0099: stfld Verse.AI.Toil <prepare>__2
L_009e: ldarg.0
L_009f: ldfld Verse.AI.Toil <prepare>__2
L_00a4: ldc.i4.3
L_00a5: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_00aa: ldarg.0
L_00ab: ldfld Verse.AI.Toil <prepare>__2
L_00b0: ldc.i4.s 60
L_00b2: stfld System.Int32 defaultDuration
L_00b7: ldarg.0
L_00b8: ldfld Verse.AI.Toil <prepare>__2
L_00bd: ldc.i4.1
L_00be: ldc.i4.0
L_00bf: ldc.r4 -0.5
L_00c4: call Verse.AI.Toil WithProgressBarToilDelay(Verse.AI.Toil, TargetIndex,
Boolean, Single)
L_00c9: pop
L_00ca: ldarg.0
L_00cb: ldfld Verse.AI.Toil <prepare>__2
L_00d0: ldc.i4.1
L_00d1: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_00d6: pop
L_00d7: ldarg.0
L_00d8: ldarg.0
L_00d9: ldfld Verse.AI.Toil <prepare>__2
L_00de: stfld Verse.AI.Toil $current
L_00e3: ldarg.0
L_00e4: ldfld System.Boolean $disposing
L_00e9: brtrue Label #9
L_00ee: ldarg.0
L_00ef: ldc.i4.2
L_00f0: stfld System.Int32 $PC
L_00f5: Label #9
L_00f5: br Label #10
L_00fa: Label #4
L_00fa: ldarg.0
L_00fb: newobj Void .ctor()
L_0100: stfld Verse.AI.Toil <wear>__3
L_0105: ldarg.0
L_0106: ldfld Verse.AI.Toil <wear>__3
L_010b: ldarg.0
L_010c: ldftn Void <>m__1()
L_0112: newobj Void .ctor(Object, IntPtr)
L_0117: stfld System.Action initAction
L_011c: ldarg.0
L_011d: ldfld Verse.AI.Toil <wear>__3
L_0122: ldc.i4.1
L_0123: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0128: ldarg.0
L_0129: ldarg.0
L_012a: ldfld Verse.AI.Toil <wear>__3
L_012f: stfld Verse.AI.Toil $current
L_0134: ldarg.0
L_0135: ldfld System.Boolean $disposing
L_013a: brtrue Label #11
L_013f: ldarg.0
L_0140: ldc.i4.3
L_0141: stfld System.Int32 $PC
L_0146: Label #11
L_0146: br Label #12
L_014b: Label #5
L_014b: ldarg.0
L_014c: ldc.i4.m1
L_014d: stfld System.Int32 $PC
L_0152: Label #6
L_0152: ldc.i4.0
L_0153: br Label #0
L_0158: Label #8
L_0158: Label #10
L_0158: Label #12
L_0158: ldc.i4.1
L_0159: br Label #0
L_015e: Label #0
L_015e: ret
DONE

PATCHING RimWorld.ThoughtUtility Boolean CanGetThought(Verse.Pawn,


RimWorld.ThoughtDef)
L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Int32
L_0000: Local var #2 System.Boolean
L_0000: Local var #3 System.Int32
L_0000: Local var #4 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 4 (System.Boolean)
L_0007: ldarg.1
L_0008: ldfld System.Boolean validWhileDespawned
L_000d: brtrue Label #2
L_0012: ldarg.0
L_0013: callvirt Boolean get_Spawned()
L_0018: brtrue Label #3
L_001d: ldarg.1
L_001e: callvirt Boolean get_IsMemory()
L_0023: brtrue Label #4
L_0028: ldc.i4.0
L_0029: stloc.0
L_002a: leave Label #5
L_002f: Label #2
L_002f: Label #3
L_002f: Label #4
L_002f: ldarg.1
L_0030: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0035: brfalse Label #6
L_003a: ldc.i4.0
L_003b: stloc.1
L_003c: br Label #7
L_0041: Label #10
L_0041: ldarg.0
L_0042: ldfld RimWorld.Pawn_StoryTracker story
L_0047: ldfld RimWorld.TraitSet traits
L_004c: ldarg.1
L_004d: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0052: ldloc.1
L_0053: callvirt RimWorld.TraitDef get_Item(Int32)
L_0058: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_005d: brfalse Label #8
L_0062: ldc.i4.0
L_0063: stloc.0
L_0064: leave Label #9
L_0069: Label #8
L_0069: ldloc.1
L_006a: ldc.i4.1
L_006b: add
L_006c: stloc.1
L_006d: Label #7
L_006d: ldloc.1
L_006e: ldarg.1
L_006f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0074: callvirt Int32 get_Count()
L_0079: blt Label #10
L_007e: Label #6
L_007e: ldarg.1
L_007f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0084: call Boolean NullOrEmpty[TraitDef](IList`1)
L_0089: brtrue Label #11
L_008e: ldc.i4.0
L_008f: stloc.2
L_0090: ldc.i4.0
L_0091: stloc.3
L_0092: br Label #12
L_0097: Label #19
L_0097: ldarg.0
L_0098: ldfld RimWorld.Pawn_StoryTracker story
L_009d: ldfld RimWorld.TraitSet traits
L_00a2: ldarg.1
L_00a3: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00a8: ldloc.3
L_00a9: callvirt RimWorld.TraitDef get_Item(Int32)
L_00ae: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_00b3: brtrue Label #13
L_00b8: leave Label #14
L_00bd: Label #13
L_00bd: ldarg.1
L_00be: callvirt Boolean get_RequiresSpecificTraitsDegree()
L_00c3: brfalse Label #15
L_00c8: ldarg.1
L_00c9: ldfld System.Int32 requiredTraitsDegree
L_00ce: ldarg.0
L_00cf: ldfld RimWorld.Pawn_StoryTracker story
L_00d4: ldfld RimWorld.TraitSet traits
L_00d9: ldarg.1
L_00da: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00df: ldloc.3
L_00e0: callvirt RimWorld.TraitDef get_Item(Int32)
L_00e5: callvirt Int32 DegreeOfTrait(RimWorld.TraitDef)
L_00ea: beq Label #16
L_00ef: leave Label #17
L_00f4: Label #15
L_00f4: Label #16
L_00f4: ldc.i4.1
L_00f5: stloc.2
L_00f6: leave Label #18
L_00fb: Label #14
L_00fb: Label #17
L_00fb: ldloc.3
L_00fc: ldc.i4.1
L_00fd: add
L_00fe: stloc.3
L_00ff: Label #12
L_00ff: ldloc.3
L_0100: ldarg.1
L_0101: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0106: callvirt Int32 get_Count()
L_010b: blt Label #19
L_0110: Label #18
L_0110: ldloc.2
L_0111: brtrue Label #20
L_0116: ldc.i4.0
L_0117: stloc.0
L_0118: leave Label #21
L_011d: Label #11
L_011d: Label #20
L_011d: ldarg.1
L_011e: ldfld System.Boolean nullifiedIfNotColonist
L_0123: brfalse Label #22
L_0128: ldarg.0
L_0129: callvirt Boolean get_IsColonist()
L_012e: brtrue Label #23
L_0133: ldc.i4.0
L_0134: stloc.0
L_0135: leave Label #24
L_013a: Label #22
L_013a: Label #23
L_013a: ldarg.1
L_013b: ldarg.0
L_013c: call Boolean IsSituationalThoughtNullifiedByHediffs(RimWorld.ThoughtDef,
Verse.Pawn)
L_0141: brfalse Label #25
L_0146: ldc.i4.0
L_0147: stloc.0
L_0148: leave Label #26
L_014d: Label #25
L_014d: ldarg.1
L_014e: ldarg.0
L_014f: call Boolean IsThoughtNullifiedByOwnTales(RimWorld.ThoughtDef, Verse.Pawn)
L_0154: brfalse Label #27
L_0159: ldc.i4.0
L_015a: stloc.0
L_015b: leave Label #28
L_0160: Label #27
L_0160: leave Label #29
L_0165: endfinally
L_0166: Label #29
L_0166: ldc.i4.1
L_0167: br Label #0
L_016c: Label #5
L_016c: Label #9
L_016c: Label #21
L_016c: Label #24
L_016c: Label #26
L_016c: Label #28
L_016c: ldloc.0
L_016d: br Label #0
L_0172: Label #0
L_0172: stloc 4 (System.Boolean)
L_0174: ldarga 0
L_017a: ldarga 1
L_0180: ldloca 4 (System.Boolean)
L_0182: call Void CanGetThought_Patch(Verse.Pawn ByRef, RimWorld.ThoughtDef ByRef,
Boolean ByRef)
L_0187: ldloc 4 (System.Boolean)
L_0189: ret
DONE

PATCHING RimWorld.JobGiver_SocialFighting Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Verb
L_0000: Local var #2 Verse.AI.Job
L_0000: Local var #3 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 3 (Verse.AI.Job)
L_0002: ldarg.1
L_0003: callvirt Verse.RaceProperties get_RaceProps()
L_0008: callvirt Boolean get_Humanlike()
L_000d: brfalse Label #2
L_0012: ldarg.1
L_0013: ldfld RimWorld.Pawn_StoryTracker story
L_0018: ldc.i4.8
L_0019: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_001e: brfalse Label #3
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: Label #3
L_0029: ldarg.1
L_002a: callvirt Verse.AI.MentalState get_MentalState()
L_002f: castclass Verse.AI.MentalState_SocialFighting
L_0034: ldfld Verse.Pawn otherPawn
L_0039: stloc.0
L_003a: ldarg.1
L_003b: ldloca.s 1 (Verse.Verb)
L_003d: call Boolean TryGetRandomVerbForSocialFight(Verse.Pawn, Verse.Verb ByRef)
L_0042: brtrue Label #4
L_0047: ldnull
L_0048: br Label #0
L_004d: Label #4
L_004d: ldsfld Verse.JobDef SocialFight
L_0052: ldloc.0
L_0053: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0058: newobj Void .ctor(JobDef, LocalTargetInfo)
L_005d: stloc.2
L_005e: ldloc.2
L_005f: ldc.i4.1
L_0060: stfld System.Int32 maxNumMeleeAttacks
L_0065: ldloc.2
L_0066: ldloc.1
L_0067: stfld Verse.Verb verbToUse
L_006c: ldloc.2
L_006d: br Label #0
L_0072: Label #0
L_0072: stloc 3 (Verse.AI.Job)
L_0073: ldarga 1
L_0079: ldloca 3 (Verse.AI.Job)
L_007b: call Void TryGiveJob_Postfix(Verse.Pawn ByRef, Verse.AI.Job ByRef)
L_0080: ldloc 3 (Verse.AI.Job)
L_0081: ret
DONE

PATCHING RimWorld.Pawn_ApparelTracker Void ApparelChanged()


L_0000: ldarg.0
L_0001: ldftn Void <ApparelChanged>m__1()
L_0007: newobj Void .ctor(Object, IntPtr)
L_000c: call Void ExecuteWhenFinished(System.Action)
L_0011: br Label #0
L_0016: Label #0
L_0016: ldarga 0
L_001c: call Void ApparelChanged_Postfix(RimWorld.Pawn_ApparelTracker ByRef)
L_0021: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveAllGraphics()


L_0000: Local var #0 Verse.PawnKindLifeStage
L_0000: ldarg.0
L_0001: call Void ClearCache()
L_0006: ldarg.0
L_0007: ldfld Verse.Pawn pawn
L_000c: callvirt Verse.RaceProperties get_RaceProps()
L_0011: callvirt Boolean get_Humanlike()
L_0016: brfalse Label #2
L_001b: ldarg.0
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_StoryTracker story
L_0027: ldfld RimWorld.BodyType bodyType
L_002c: ldsfld UnityEngine.Shader CutoutSkin
L_0031: ldarg.0
L_0032: ldfld Verse.Pawn pawn
L_0037: ldfld RimWorld.Pawn_StoryTracker story
L_003c: callvirt Color get_SkinColor()
L_0041: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_0046: stfld Verse.Graphic nakedGraphic
L_004b: ldarg.0
L_004c: ldarg.0
L_004d: ldfld Verse.Pawn pawn
L_0052: ldfld RimWorld.Pawn_StoryTracker story
L_0057: ldfld RimWorld.BodyType bodyType
L_005c: ldsfld UnityEngine.Shader CutoutSkin
L_0061: ldsfld UnityEngine.Color RottingColor
L_0066: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_006b: stfld Verse.Graphic rottingGraphic
L_0070: ldarg.0
L_0071: ldstr "Things/Pawn/Humanlike/HumanoidDessicated"
L_0076: ldsfld UnityEngine.Shader Cutout
L_007b: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader)
L_0080: stfld Verse.Graphic dessicatedGraphic
L_0085: ldarg.0
L_0086: ldarg.0
L_0087: ldfld Verse.Pawn pawn
L_008c: ldfld RimWorld.Pawn_StoryTracker story
L_0091: callvirt System.String get_HeadGraphicPath()
L_0096: ldarg.0
L_0097: ldfld Verse.Pawn pawn
L_009c: ldfld RimWorld.Pawn_StoryTracker story
L_00a1: callvirt Color get_SkinColor()
L_00a6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00ab: stfld Verse.Graphic headGraphic
L_00b0: ldarg.0
L_00b1: ldarg.0
L_00b2: ldfld Verse.Pawn pawn
L_00b7: ldfld RimWorld.Pawn_StoryTracker story
L_00bc: callvirt System.String get_HeadGraphicPath()
L_00c1: ldsfld UnityEngine.Color RottingColor
L_00c6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00cb: stfld Verse.Graphic desiccatedHeadGraphic
L_00d0: ldarg.0
L_00d1: call Verse.Graphic_Multi GetSkull()
L_00d6: stfld Verse.Graphic skullGraphic
L_00db: ldarg.0
L_00dc: ldarg.0
L_00dd: ldfld Verse.Pawn pawn
L_00e2: ldfld RimWorld.Pawn_StoryTracker story
L_00e7: callvirt Color get_SkinColor()
L_00ec: call Verse.Graphic_Multi GetStump(Color)
L_00f1: stfld Verse.Graphic headStumpGraphic
L_00f6: ldarg.0
L_00f7: ldsfld UnityEngine.Color RottingColor
L_00fc: call Verse.Graphic_Multi GetStump(Color)
L_0101: stfld Verse.Graphic desiccatedHeadStumpGraphic
L_0106: ldarg.0
L_0107: ldarg.0
L_0108: ldfld Verse.Pawn pawn
L_010d: ldfld RimWorld.Pawn_StoryTracker story
L_0112: ldfld RimWorld.HairDef hairDef
L_0117: ldfld System.String texPath
L_011c: ldsfld UnityEngine.Shader Cutout
L_0121: call Vector2 get_one()
L_0126: ldarg.0
L_0127: ldfld Verse.Pawn pawn
L_012c: ldfld RimWorld.Pawn_StoryTracker story
L_0131: ldfld UnityEngine.Color hairColor
L_0136: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_013b: stfld Verse.Graphic hairGraphic
L_0140: ldarg.0
L_0141: call Void ResolveApparelGraphics()
L_0146: br Label #3
L_014b: Label #2
L_014b: ldarg.0
L_014c: ldfld Verse.Pawn pawn
L_0151: ldfld Verse.Pawn_AgeTracker ageTracker
L_0156: callvirt Verse.PawnKindLifeStage get_CurKindLifeStage()
L_015b: stloc.0
L_015c: ldarg.0
L_015d: ldfld Verse.Pawn pawn
L_0162: ldfld Verse.Gender gender
L_0167: ldc.i4.2
L_0168: bne.un Label #4
L_016d: ldloc.0
L_016e: ldfld Verse.GraphicData femaleGraphicData
L_0173: brtrue Label #5
L_0178: Label #4
L_0178: ldarg.0
L_0179: ldloc.0
L_017a: ldfld Verse.GraphicData bodyGraphicData
L_017f: callvirt Verse.Graphic get_Graphic()
L_0184: stfld Verse.Graphic nakedGraphic
L_0189: br Label #6
L_018e: Label #5
L_018e: ldarg.0
L_018f: ldloc.0
L_0190: ldfld Verse.GraphicData femaleGraphicData
L_0195: callvirt Verse.Graphic get_Graphic()
L_019a: stfld Verse.Graphic nakedGraphic
L_019f: Label #6
L_019f: ldarg.0
L_01a0: ldarg.0
L_01a1: ldfld Verse.Graphic nakedGraphic
L_01a6: ldsfld UnityEngine.Shader CutoutSkin
L_01ab: ldsfld UnityEngine.Color RottingColor
L_01b0: ldsfld UnityEngine.Color RottingColor
L_01b5: callvirt Verse.Graphic GetColoredVersion(UnityEngine.Shader, Color, Color)
L_01ba: stfld Verse.Graphic rottingGraphic
L_01bf: ldarg.0
L_01c0: ldfld Verse.Pawn pawn
L_01c5: callvirt Verse.RaceProperties get_RaceProps()
L_01ca: ldfld System.Boolean packAnimal
L_01cf: brfalse Label #7
L_01d4: ldarg.0
L_01d5: ldarg.0
L_01d6: ldfld Verse.Graphic nakedGraphic
L_01db: ldfld System.String path
L_01e0: ldstr "Pack"
L_01e5: call System.String Concat(System.String, System.String)
L_01ea: ldsfld UnityEngine.Shader Cutout
L_01ef: ldarg.0
L_01f0: ldfld Verse.Graphic nakedGraphic
L_01f5: ldfld UnityEngine.Vector2 drawSize
L_01fa: call Color get_white()
L_01ff: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_0204: stfld Verse.Graphic packGraphic
L_0209: Label #7
L_0209: ldloc.0
L_020a: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_020f: brfalse Label #8
L_0214: ldarg.0
L_0215: ldloc.0
L_0216: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_021b: ldarg.0
L_021c: ldfld Verse.Pawn pawn
L_0221: callvirt Verse.Graphic GraphicColoredFor(Verse.Thing)
L_0226: stfld Verse.Graphic dessicatedGraphic
L_022b: Label #3
L_022b: Label #8
L_022b: br Label #0
L_0230: Label #0
L_0230: ldarga 0
L_0236: call Void ResolveAllGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_023b: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveApparelGraphics()


L_0000: Local var #0 RimWorld.Apparel
L_0000: Local var #1 System.Collections.Generic.IEnumerator`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 RimWorld.ApparelGraphicRecord
L_0000: ldarga 0
L_0006: call Void ResolveApparelGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_000b: ldarg.0
L_000c: call Void ClearCache()
L_0011: ldarg.0
L_0012: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0017: callvirt Void Clear()
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_ApparelTracker apparel
L_0027: callvirt IEnumerable`1 get_WornApparelInDrawOrder()
L_002c: callvirt IEnumerator`1 GetEnumerator()
L_0031: stloc.1
L_0032: br Label #2
L_0037: Label #4
L_0037: ldloc.1
L_0038: callvirt RimWorld.Apparel get_Current()
L_003d: stloc.0
L_003e: ldloc.0
L_003f: ldarg.0
L_0040: ldfld Verse.Pawn pawn
L_0045: call BodyType ModifyChildBodyType(Verse.Pawn)
L_004a: ldloca.s 2 (RimWorld.ApparelGraphicRecord)
L_004c: call Boolean TryGetGraphicApparel(RimWorld.Apparel, BodyType,
ApparelGraphicRecord ByRef)
L_0051: brfalse Label #3
L_0056: ldarg.0
L_0057: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_005c: ldloc.2
L_005d: callvirt Void Add(ApparelGraphicRecord)
L_0062: Label #2
L_0062: Label #3
L_0062: ldloc.1
L_0063: callvirt Boolean MoveNext()
L_0068: brtrue Label #4
L_006d: leave Label #5
L_0072: ldloc.1
L_0073: brfalse Label #6
L_0078: ldloc.1
L_0079: callvirt Void Dispose()
L_007e: Label #6
L_007e: endfinally
L_007f: Label #5
L_007f: br Label #0
L_0084: Label #0
L_0084: ret
DONE

PATCHING Verse.PawnRenderer Void RenderPawnInternal(Vector3, Quaternion, Boolean,


Rot4, Rot4, RotDrawMode, Boolean, Boolean)
L_0000: Local var #0 UnityEngine.Mesh
L_0000: Local var #1 UnityEngine.Vector3
L_0000: Local var #2 System.Collections.Generic.List`1[[UnityEngine.Material,
UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #3 System.Int32
L_0000: Local var #4 UnityEngine.Material
L_0000: Local var #5 UnityEngine.Vector3
L_0000: Local var #6 UnityEngine.Vector3
L_0000: Local var #7 UnityEngine.Vector3
L_0000: Local var #8 UnityEngine.Vector3
L_0000: Local var #9 UnityEngine.Material
L_0000: Local var #10 UnityEngine.Mesh
L_0000: Local var #11 UnityEngine.Vector3
L_0000: Local var #12 System.Boolean
L_0000: Local var #13 UnityEngine.Mesh
L_0000: Local var #14
System.Collections.Generic.List`1[[RimWorld.ApparelGraphicRecord, Assembly-CSharp,
Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #15 System.Int32
L_0000: Local var #16 RimWorld.ApparelGraphicRecord
L_0000: Local var #17 RimWorld.ApparelGraphicRecord
L_0000: Local var #18 UnityEngine.Material
L_0000: Local var #19 RimWorld.ApparelGraphicRecord
L_0000: Local var #20 UnityEngine.Material
L_0000: Local var #21 RimWorld.ApparelGraphicRecord
L_0000: Local var #22 UnityEngine.Vector3
L_0000: Local var #23 UnityEngine.Mesh
L_0000: Local var #24 UnityEngine.Material
L_0000: Local var #25 System.Int32
L_0000: Local var #26 RimWorld.ApparelGraphicRecord
L_0000: Local var #27 UnityEngine.Material
L_0000: Local var #28 System.Collections.Generic.List`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #29 System.Int32
L_0000: Local var #30 UnityEngine.Vector3
L_0000: ldarg.0
L_0001: ldfld Verse.PawnGraphicSet graphics
L_0006: callvirt Boolean get_AllResolved()
L_000b: brtrue Label #2
L_0010: ldarg.0
L_0011: ldfld Verse.PawnGraphicSet graphics
L_0016: callvirt Void ResolveAllGraphics()
L_001b: Label #2
L_001b: ldnull
L_001c: stloc.0
L_001d: ldarg.0
L_001e: ldfld Verse.Pawn pawn
L_0023: ldfld Verse.Pawn_AgeTracker ageTracker
L_0028: call Int32 get_CurLifeStageIndex()
L_002d: ldc.i4.2
L_002e: blt Label #43
L_0033: ldarg.3
L_0034: brfalse Label #3
L_0039: Label #43
L_0039: ldarg.1
L_003a: ldarg.0
L_003b: ldfld Verse.Pawn pawn
L_0040: ldarg.s 7
L_0045: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_004a: stloc.1
L_004b: ldloca.s 1 (UnityEngine.Vector3)
L_004d: dup
L_004e: ldfld System.Single y
L_0053: ldc.r4 0.0078125
L_0058: add
L_0059: stfld System.Single y
L_005e: ldarg.s 6
L_0060: ldc.i4.2
L_0061: bne.un Label #4
L_0066: ldarg.0
L_0067: ldfld Verse.Pawn pawn
L_006c: callvirt Verse.RaceProperties get_RaceProps()
L_0071: callvirt Boolean get_Humanlike()
L_0076: brtrue Label #5
L_007b: ldarg.0
L_007c: ldfld Verse.PawnGraphicSet graphics
L_0081: ldfld Verse.Graphic dessicatedGraphic
L_0086: brfalse Label #6
L_008b: ldarg.s 7
L_008d: brtrue Label #7
L_0092: ldarg.0
L_0093: ldfld Verse.PawnGraphicSet graphics
L_0098: ldfld Verse.Graphic dessicatedGraphic
L_009d: ldloc.1
L_009e: ldarg.s 4
L_00a0: ldarg.0
L_00a1: ldfld Verse.Pawn pawn
L_00a6: ldc.r4 0
L_00ab: callvirt Void Draw(Vector3, Rot4, Verse.Thing, Single)
L_00b0: br Label #8
L_00b5: Label #4
L_00b5: Label #5
L_00b5: Label #6
L_00b5: Label #7
L_00b5: ldarg.0
L_00b6: ldfld Verse.Pawn pawn
L_00bb: callvirt Verse.RaceProperties get_RaceProps()
L_00c0: callvirt Boolean get_Humanlike()
L_00c5: brfalse Label #9
L_00ca: ldsfld Verse.GraphicMeshSet humanlikeBodySet
L_00cf: ldarg.s 4
L_00d1: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00d6: stloc.0
L_00d7: br Label #10
L_00dc: Label #9
L_00dc: ldarg.0
L_00dd: ldfld Verse.PawnGraphicSet graphics
L_00e2: ldfld Verse.Graphic nakedGraphic
L_00e7: ldarg.s 4
L_00e9: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00ee: stloc.0
L_00ef: Label #10
L_00ef: ldarg.0
L_00f0: ldfld Verse.PawnGraphicSet graphics
L_00f5: ldarg.s 4
L_00f7: ldarg.s 6
L_00f9: callvirt System.Collections.Generic.List`1[UnityEngine.Material]
MatsBodyBaseAt(Rot4, RotDrawMode)
L_00fe: stloc.2
L_00ff: ldc.i4.0
L_0100: stloc.3
L_0101: br Label #11
L_0106: Label #12
L_0106: ldarg.0
L_0107: ldfld Verse.PawnGraphicSet graphics
L_010c: ldfld Verse.DamageFlasher flasher
L_0111: ldloc.2
L_0112: ldloc.3
L_0113: callvirt UnityEngine.Material get_Item(Int32)
L_0118: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_011d: stloc.s 4 (UnityEngine.Material)
L_011f: ldloc.s 4
L_0124: ldarg.0
L_0125: ldfld Verse.Pawn pawn
L_012a: ldarg.s 4
L_012f: call UnityEngine.Material ModifyClothingForChild(UnityEngine.Material,
Verse.Pawn, Rot4)
L_0134: stloc.s 4
L_0139: ldloc.0
L_013a: ldloc.1
L_013b: ldarg.2
L_013c: ldloc.s 4 (UnityEngine.Material)
L_013e: ldarg.s 7
L_0140: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_0145: ldloca.s 1 (UnityEngine.Vector3)
L_0147: dup
L_0148: ldfld System.Single y
L_014d: ldloc.s 18
L_0152: ldarg.0
L_0153: ldfld Verse.Pawn pawn
L_0158: call UnityEngine.Material ModifyHatForChild(UnityEngine.Material,
Verse.Pawn)
L_015d: stloc.s 18
L_0162: ldc.r4 0.00390625
L_0167: add
L_0168: stfld System.Single y
L_016d: ldloc.3
L_016e: ldc.i4.1
L_016f: add
L_0170: stloc.3
L_0171: Label #11
L_0171: ldloc.3
L_0172: ldloc.2
L_0173: callvirt Int32 get_Count()
L_0178: blt Label #12
L_017d: ldarg.s 6
L_017f: brtrue Label #13
L_0184: ldarg.1
L_0185: ldarg.0
L_0186: ldfld Verse.Pawn pawn
L_018b: ldarg.s 7
L_0190: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0195: stloc.s 5 (UnityEngine.Vector3)
L_0197: ldloca.s 5 (UnityEngine.Vector3)
L_0199: dup
L_019a: ldfld System.Single y
L_019f: ldc.r4 0.01953125
L_01a4: add
L_01a5: stfld System.Single y
L_01aa: ldarg.0
L_01ab: ldfld RimWorld.PawnWoundDrawer woundOverlays
L_01b0: ldloc.s 5 (UnityEngine.Vector3)
L_01b2: ldloc.0
L_01b3: ldarg.2
L_01b4: ldarg.s 7
L_01b6: callvirt Void RenderOverBody(Vector3, UnityEngine.Mesh, Quaternion,
Boolean)
L_01bb: Label #3
L_01bb: Label #8
L_01bb: Label #13
L_01bb: ldarg.1
L_01bc: ldarg.0
L_01bd: ldfld Verse.Pawn pawn
L_01c2: ldarg.s 7
L_01c7: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01cc: stloc.s 6 (UnityEngine.Vector3)
L_01ce: ldarg.1
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldarg.s 7
L_01da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01df: stloc.s 7 (UnityEngine.Vector3)
L_01e1: ldarg.s 4
L_01e3: call Rot4 get_North()
L_01e8: call Boolean op_Inequality(Rot4, Rot4)
L_01ed: brfalse Label #14
L_01f2: ldloca.s 7 (UnityEngine.Vector3)
L_01f4: dup
L_01f5: ldfld System.Single y
L_01fa: ldc.r4 0.02734375
L_01ff: add
L_0200: stfld System.Single y
L_0205: ldloca.s 6 (UnityEngine.Vector3)
L_0207: dup
L_0208: ldfld System.Single y
L_020d: ldc.r4 0.0234375
L_0212: add
L_0213: stfld System.Single y
L_0218: br Label #15
L_021d: Label #14
L_021d: ldloca.s 7 (UnityEngine.Vector3)
L_021f: dup
L_0220: ldfld System.Single y
L_0225: ldc.r4 0.0234375
L_022a: add
L_022b: stfld System.Single y
L_0230: ldloca.s 6 (UnityEngine.Vector3)
L_0232: dup
L_0233: ldfld System.Single y
L_0238: ldc.r4 0.02734375
L_023d: add
L_023e: stfld System.Single y
L_0243: Label #15
L_0243: ldarg.0
L_0244: ldfld Verse.PawnGraphicSet graphics
L_0249: ldfld Verse.Graphic headGraphic
L_024e: brfalse Label #16
L_0253: ldarg.0
L_0254: ldfld Verse.Pawn pawn
L_0259: call Boolean RaceUsesChildren(Verse.Pawn)
L_025e: brfalse Label #44
L_0263: ldarg.0
L_0264: ldfld Verse.Pawn pawn
L_0269: call Boolean EnsurePawnIsChildOrOlder(Verse.Pawn)
L_026e: brfalse Label #16
L_0273: Label #44
L_0273: nop
L_0274: ldarg.2
L_0275: ldarg.0
L_0276: ldarg.s 5
L_0278: call Vector3 BaseHeadOffsetAt(Rot4)
L_027d: call Vector3 op_Multiply(Quaternion, Vector3)
L_0282: stloc.s 8 (UnityEngine.Vector3)
L_0284: ldarg.0
L_0285: ldfld Verse.PawnGraphicSet graphics
L_028a: ldarg.s 5
L_028c: ldarg.s 6
L_028e: ldarg.s 8
L_0290: callvirt UnityEngine.Material HeadMatAt(Rot4, RotDrawMode, Boolean)
L_0295: stloc.s 9 (UnityEngine.Material)
L_0297: ldloc.s 9 (UnityEngine.Material)
L_0299: ldnull
L_029a: call Boolean op_Inequality(UnityEngine.Object, UnityEngine.Object)
L_029f: brfalse Label #17
L_02a4: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_02a9: ldarg.s 5
L_02ab: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_02b0: stloc.s 10 (UnityEngine.Mesh)
L_02b2: ldloc.s 10 (UnityEngine.Mesh)
L_02b4: ldloc.s 7 (UnityEngine.Vector3)
L_02b6: ldloc.s 8 (UnityEngine.Vector3)
L_02b8: call Vector3 op_Addition(Vector3, Vector3)
L_02bd: ldarg.2
L_02be: ldloc.s 9 (UnityEngine.Material)
L_02c0: ldarg.s 7
L_02c2: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_02c7: Label #17
L_02c7: ldarg.1
L_02c8: ldloc.s 8 (UnityEngine.Vector3)
L_02ca: call Vector3 op_Addition(Vector3, Vector3)
L_02cf: ldarg.0
L_02d0: ldfld Verse.Pawn pawn
L_02d5: ldarg.s 7
L_02da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_02df: stloc.s 11 (UnityEngine.Vector3)
L_02e1: ldloca.s 11 (UnityEngine.Vector3)
L_02e3: dup
L_02e4: ldfld System.Single y
L_02e9: ldc.r4 0.03125
L_02ee: add
L_02ef: stfld System.Single y
L_02f4: ldc.i4.0
L_02f5: stloc.s 12 (System.Boolean)
L_02f7: ldarg.s 7
L_02f9: brfalse Label #18
L_02fe: call Boolean get_HatsOnlyOnMap()
L_0303: brtrue Label #19
L_0308: Label #18
L_0308: ldarg.0
L_0309: ldfld Verse.PawnGraphicSet graphics
L_030e: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_0313: ldarg.s 5
L_0315: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_031a: stloc.s 13 (UnityEngine.Mesh)
L_031c: ldarg.0
L_031d: ldfld Verse.PawnGraphicSet graphics
L_0322: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0327: stloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0329: ldc.i4.0
L_032a: stloc.s 15 (System.Int32)
L_032c: br Label #20
L_0331: Label #26
L_0331: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0333: ldloc.s 15 (System.Int32)
L_0335: callvirt ApparelGraphicRecord get_Item(Int32)
L_033a: stloc.s 16 (RimWorld.ApparelGraphicRecord)
L_033c: ldloca.s 16 (RimWorld.ApparelGraphicRecord)
L_033e: ldfld RimWorld.Apparel sourceApparel
L_0343: ldfld Verse.ThingDef def
L_0348: ldfld RimWorld.ApparelProperties apparel
L_034d: callvirt ApparelLayer get_LastLayer()
L_0352: ldc.i4.4
L_0353: bne.un Label #21
L_0358: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_035a: ldloc.s 15 (System.Int32)
L_035c: callvirt ApparelGraphicRecord get_Item(Int32)
L_0361: stloc.s 17 (RimWorld.ApparelGraphicRecord)
L_0363: ldloca.s 17 (RimWorld.ApparelGraphicRecord)
L_0365: ldfld RimWorld.Apparel sourceApparel
L_036a: ldfld Verse.ThingDef def
L_036f: ldfld RimWorld.ApparelProperties apparel
L_0374: ldfld System.Boolean hatRenderedFrontOfFace
L_0379: brtrue Label #22
L_037e: ldc.i4.1
L_037f: stloc.s 12 (System.Boolean)
L_0381: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0383: ldloc.s 15 (System.Int32)
L_0385: callvirt ApparelGraphicRecord get_Item(Int32)
L_038a: stloc.s 19 (RimWorld.ApparelGraphicRecord)
L_038c: ldloca.s 19 (RimWorld.ApparelGraphicRecord)
L_038e: ldfld Verse.Graphic graphic
L_0393: ldarg.s 4
L_0395: ldnull
L_0396: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_039b: stloc.s 18 (UnityEngine.Material)
L_039d: ldarg.0
L_039e: ldfld Verse.PawnGraphicSet graphics
L_03a3: ldfld Verse.DamageFlasher flasher
L_03a8: ldloc.s 18 (UnityEngine.Material)
L_03aa: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03af: stloc.s 18 (UnityEngine.Material)
L_03b1: ldloc.s 13 (UnityEngine.Mesh)
L_03b3: ldloc.s 11 (UnityEngine.Vector3)
L_03b5: ldarg.2
L_03b6: ldloc.s 18 (UnityEngine.Material)
L_03b8: ldarg.s 7
L_03ba: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_03bf: br Label #23
L_03c4: Label #22
L_03c4: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_03c6: ldloc.s 15 (System.Int32)
L_03c8: callvirt ApparelGraphicRecord get_Item(Int32)
L_03cd: stloc.s 21 (RimWorld.ApparelGraphicRecord)
L_03cf: ldloca.s 21 (RimWorld.ApparelGraphicRecord)
L_03d1: ldfld Verse.Graphic graphic
L_03d6: ldarg.s 4
L_03d8: ldnull
L_03d9: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_03de: stloc.s 20 (UnityEngine.Material)
L_03e0: ldarg.0
L_03e1: ldfld Verse.PawnGraphicSet graphics
L_03e6: ldfld Verse.DamageFlasher flasher
L_03eb: ldloc.s 20 (UnityEngine.Material)
L_03ed: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03f2: stloc.s 20 (UnityEngine.Material)
L_03f4: ldarg.1
L_03f5: ldloc.s 8 (UnityEngine.Vector3)
L_03f7: call Vector3 op_Addition(Vector3, Vector3)
L_03fc: stloc.s 22 (UnityEngine.Vector3)
L_03fe: ldloca.s 22 (UnityEngine.Vector3)
L_0400: dup
L_0401: ldfld System.Single y
L_0406: ldarg.s 4
L_0408: call Rot4 get_North()
L_040d: call Boolean op_Equality(Rot4, Rot4)
L_0412: brfalse Label #24
L_0417: ldc.r4 0.00390625
L_041c: br Label #25
L_0421: Label #24
L_0421: ldc.r4 0.03515625
L_0426: Label #25
L_0426: add
L_0427: stfld System.Single y
L_042c: ldloc.s 13 (UnityEngine.Mesh)
L_042e: ldloc.s 22 (UnityEngine.Vector3)
L_0430: ldarg.2
L_0431: ldloc.s 20 (UnityEngine.Material)
L_0433: ldarg.s 7
L_0435: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_043a: Label #21
L_043a: Label #23
L_043a: ldloc.s 15 (System.Int32)
L_043c: ldc.i4.1
L_043d: add
L_043e: stloc.s 15 (System.Int32)
L_0440: Label #20
L_0440: ldloc.s 15 (System.Int32)
L_0442: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0444: callvirt Int32 get_Count()
L_0449: blt Label #26
L_044e: Label #19
L_044e: ldloc.s 12 (System.Boolean)
L_0450: brtrue Label #27
L_0455: ldarg.s 6
L_0457: ldc.i4.2
L_0458: beq Label #28
L_045d: ldarg.s 8
L_045f: brtrue Label #29
L_0464: ldarg.0
L_0465: ldfld Verse.PawnGraphicSet graphics
L_046a: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_046f: ldarg.s 5
L_0471: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0476: stloc.s 23 (UnityEngine.Mesh)
L_0478: ldarg.0
L_0479: ldfld Verse.PawnGraphicSet graphics
L_047e: ldarg.s 5
L_0480: callvirt UnityEngine.Material HairMatAt(Rot4)
L_0485: stloc.s 24 (UnityEngine.Material)
L_0487: ldloc.s 24
L_048c: ldarg.0
L_048d: ldfld Verse.Pawn pawn
L_0492: call UnityEngine.Material ModifyHairForChild(UnityEngine.Material,
Verse.Pawn)
L_0497: stloc.s 24
L_049c: ldloc.s 23 (UnityEngine.Mesh)
L_049e: ldloc.s 11 (UnityEngine.Vector3)
L_04a0: ldarg.2
L_04a1: ldloc.s 24 (UnityEngine.Material)
L_04a3: ldarg.s 7
L_04a5: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_04aa: Label #16
L_04aa: Label #27
L_04aa: Label #28
L_04aa: Label #29
L_04aa: ldarg.3
L_04ab: brfalse Label #30
L_04b0: ldc.i4.0
L_04b1: stloc.s 25 (System.Int32)
L_04b3: br Label #31
L_04b8: Label #33
L_04b8: ldarg.0
L_04b9: ldfld Verse.PawnGraphicSet graphics
L_04be: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_04c3: ldloc.s 25 (System.Int32)
L_04c5: callvirt ApparelGraphicRecord get_Item(Int32)
L_04ca: stloc.s 26 (RimWorld.ApparelGraphicRecord)
L_04cc: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ce: ldfld RimWorld.Apparel sourceApparel
L_04d3: ldfld Verse.ThingDef def
L_04d8: ldfld RimWorld.ApparelProperties apparel
L_04dd: callvirt ApparelLayer get_LastLayer()
L_04e2: ldc.i4.2
L_04e3: bne.un Label #32
L_04e8: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ea: ldfld Verse.Graphic graphic
L_04ef: ldarg.s 4
L_04f1: ldnull
L_04f2: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_04f7: stloc.s 27 (UnityEngine.Material)
L_04f9: ldarg.0
L_04fa: ldfld Verse.PawnGraphicSet graphics
L_04ff: ldfld Verse.DamageFlasher flasher
L_0504: ldloc.s 27 (UnityEngine.Material)
L_0506: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_050b: stloc.s 27 (UnityEngine.Material)
L_050d: ldloc.0
L_050e: ldloc.s 6 (UnityEngine.Vector3)
L_0510: ldarg.2
L_0511: ldloc.s 27 (UnityEngine.Material)
L_0513: ldarg.s 7
L_0515: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_051a: Label #32
L_051a: ldloc.s 25 (System.Int32)
L_051c: ldc.i4.1
L_051d: add
L_051e: stloc.s 25 (System.Int32)
L_0520: Label #31
L_0520: ldloc.s 25 (System.Int32)
L_0522: ldarg.0
L_0523: ldfld Verse.PawnGraphicSet graphics
L_0528: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_052d: callvirt Int32 get_Count()
L_0532: blt Label #33
L_0537: Label #30
L_0537: ldarg.s 7
L_0539: brtrue Label #34
L_053e: ldarg.0
L_053f: ldfld Verse.Pawn pawn
L_0544: callvirt Verse.RaceProperties get_RaceProps()
L_0549: callvirt Boolean get_Animal()
L_054e: brfalse Label #35
L_0553: ldarg.0
L_0554: ldfld Verse.Pawn pawn
L_0559: ldfld Verse.Pawn_InventoryTracker inventory
L_055e: brfalse Label #36
L_0563: ldarg.0
L_0564: ldfld Verse.Pawn pawn
L_0569: ldfld Verse.Pawn_InventoryTracker inventory
L_056e: ldfld Verse.ThingOwner`1[Verse.Thing] innerContainer
L_0573: callvirt Int32 get_Count()
L_0578: ldc.i4.0
L_0579: ble Label #37
L_057e: ldarg.0
L_057f: ldfld Verse.PawnGraphicSet graphics
L_0584: ldfld Verse.Graphic packGraphic
L_0589: brfalse Label #38
L_058e: ldloc.0
L_058f: ldloc.s 6 (UnityEngine.Vector3)
L_0591: ldarg.2
L_0592: ldarg.0
L_0593: ldfld Verse.PawnGraphicSet graphics
L_0598: ldfld Verse.Graphic packGraphic
L_059d: ldarg.s 4
L_059f: ldnull
L_05a0: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_05a5: ldc.i4.0
L_05a6: call Void DrawMesh(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Int32)
L_05ab: Label #34
L_05ab: Label #35
L_05ab: Label #36
L_05ab: Label #37
L_05ab: Label #38
L_05ab: ldarg.s 7
L_05ad: brtrue Label #39
L_05b2: ldarg.0
L_05b3: ldarg.1
L_05b4: call Void DrawEquipment(Vector3)
L_05b9: ldarg.0
L_05ba: ldfld Verse.Pawn pawn
L_05bf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05c4: brfalse Label #40
L_05c9: ldarg.0
L_05ca: ldfld Verse.Pawn pawn
L_05cf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05d4: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_05d9: stloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05db: ldc.i4.0
L_05dc: stloc.s 29 (System.Int32)
L_05de: br Label #41
L_05e3: Label #42
L_05e3: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05e5: ldloc.s 29 (System.Int32)
L_05e7: callvirt RimWorld.Apparel get_Item(Int32)
L_05ec: callvirt Void DrawWornExtras()
L_05f1: ldloc.s 29 (System.Int32)
L_05f3: ldc.i4.1
L_05f4: add
L_05f5: stloc.s 29 (System.Int32)
L_05f7: Label #41
L_05f7: ldloc.s 29 (System.Int32)
L_05f9: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05fb: callvirt Int32 get_Count()
L_0600: blt Label #42
L_0605: Label #40
L_0605: ldarg.1
L_0606: ldarg.0
L_0607: ldfld Verse.Pawn pawn
L_060c: ldarg.s 7
L_0611: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0616: stloc.s 30 (UnityEngine.Vector3)
L_0618: ldloca.s 30 (UnityEngine.Vector3)
L_061a: dup
L_061b: ldfld System.Single y
L_0620: ldc.r4 0.04296875
L_0625: add
L_0626: stfld System.Single y
L_062b: ldarg.0
L_062c: ldfld Verse.PawnHeadOverlays statusOverlays
L_0631: ldloc.s 30 (UnityEngine.Vector3)
L_0633: ldarg.2
L_0634: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_0639: ldarg.s 5
L_063b: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0640: callvirt Void RenderStatusOverlays(Vector3, Quaternion, UnityEngine.Mesh)
L_0645: Label #39
L_0645: br Label #0
L_064a: Label #0
L_064a: ret
DONE

PATCHING Verse.PawnGenerator Verse.Pawn GeneratePawn(PawnGenerationRequest)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Pawn
L_0000: ldnull
L_0001: stloc 1 (Verse.Pawn)
L_0002: ldarg.0
L_0003: call Verse.Pawn GeneratePawnInternal(PawnGenerationRequest)
L_0008: stloc.0
L_0009: leave Label #2
L_000e: endfinally
L_000f: Label #2
L_000f: ldloc.0
L_0010: br Label #0
L_0015: Label #0
L_0015: stloc 1 (Verse.Pawn)
L_0016: ldarga 0
L_001c: ldloca 1 (Verse.Pawn)
L_001e: call Void _GeneratePawn(PawnGenerationRequest ByRef, Verse.Pawn ByRef)
L_0023: ldloc 1 (Verse.Pawn)
L_0024: ret
DONE

PATCHING RimWorld.JobGiver_OptimizeApparel Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 RimWorld.Outfit
L_0000: Local var #1 System.Collections.Generic.List`1[[RimWorld.Apparel, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 System.Int32
L_0000: Local var #3 Verse.AI.Job
L_0000: Local var #4 Verse.Thing
L_0000: Local var #5 System.Single
L_0000: Local var #6 System.Collections.Generic.List`1[[Verse.Thing, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #7 System.Int32
L_0000: Local var #8 RimWorld.Apparel
L_0000: Local var #9 RimWorld.SlotGroup
L_0000: Local var #10 System.Single
L_0000: Local var #11 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 11 (Verse.AI.Job)
L_0003: ldarg.1
L_0004: ldfld RimWorld.Pawn_OutfitTracker outfits
L_0009: brtrue Label #2
L_000e: ldarg.1
L_000f: ldstr " tried to run JobGiver_OptimizeApparel without an OutfitTracker"
L_0014: call System.String Concat(System.Object, System.Object)
L_0019: ldc.i4 5643897
L_001e: call Void ErrorOnce(System.String, Int32)
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: ldarg.1
L_002a: callvirt RimWorld.Faction get_Faction()
L_002f: call RimWorld.Faction get_OfPlayer()
L_0034: beq Label #3
L_0039: ldstr "Non-colonist "
L_003e: ldarg.1
L_003f: ldstr " tried to optimize apparel."
L_0044: call System.String Concat(System.Object, System.Object, System.Object)
L_0049: ldc.i4 764323
L_004e: call Void ErrorOnce(System.String, Int32)
L_0053: ldnull
L_0054: br Label #0
L_0059: Label #3
L_0059: ldsfld System.Boolean debugApparelOptimize
L_005e: brtrue Label #4
L_0063: call Verse.TickManager get_TickManager()
L_0068: callvirt Int32 get_TicksGame()
L_006d: ldarg.1
L_006e: ldfld Verse.AI.Pawn_MindState mindState
L_0073: ldfld System.Int32 nextApparelOptimizeTick
L_0078: bge Label #5
L_007d: ldnull
L_007e: br Label #0
L_0083: Label #5
L_0083: br Label #6
L_0088: Label #4
L_0088: newobj Void .ctor()
L_008d: stsfld System.Text.StringBuilder debugSb
L_0092: ldsfld System.Text.StringBuilder debugSb
L_0097: ldc.i4.4
L_0098: newarr System.Object
L_009d: dup
L_009e: ldc.i4.0
L_009f: ldstr "Scanning for "
L_00a4: stelem.ref
L_00a5: dup
L_00a6: ldc.i4.1
L_00a7: ldarg.1
L_00a8: stelem.ref
L_00a9: dup
L_00aa: ldc.i4.2
L_00ab: ldstr " at "
L_00b0: stelem.ref
L_00b1: dup
L_00b2: ldc.i4.3
L_00b3: ldarg.1
L_00b4: callvirt IntVec3 get_Position()
L_00b9: box Verse.IntVec3
L_00be: stelem.ref
L_00bf: call System.String Concat(System.Object[])
L_00c4: callvirt System.Text.StringBuilder AppendLine(System.String)
L_00c9: pop
L_00ca: Label #6
L_00ca: ldarg.1
L_00cb: ldfld RimWorld.Pawn_OutfitTracker outfits
L_00d0: callvirt RimWorld.Outfit get_CurrentOutfit()
L_00d5: stloc.0
L_00d6: ldarg.1
L_00d7: ldfld RimWorld.Pawn_ApparelTracker apparel
L_00dc: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_00e1: stloc.1
L_00e2: ldloc.1
L_00e3: callvirt Int32 get_Count()
L_00e8: ldc.i4.1
L_00e9: sub
L_00ea: stloc.2
L_00eb: br Label #7
L_00f0: Label #10
L_00f0: ldloc.0
L_00f1: ldfld Verse.ThingFilter filter
L_00f6: ldloc.1
L_00f7: ldloc.2
L_00f8: callvirt RimWorld.Apparel get_Item(Int32)
L_00fd: callvirt Boolean Allows(Verse.Thing)
L_0102: brtrue Label #8
L_0107: ldarg.1
L_0108: ldfld RimWorld.Pawn_OutfitTracker outfits
L_010d: ldfld RimWorld.OutfitForcedHandler forcedHandler
L_0112: ldloc.1
L_0113: ldloc.2
L_0114: callvirt RimWorld.Apparel get_Item(Int32)
L_0119: callvirt Boolean AllowedToAutomaticallyDrop(RimWorld.Apparel)
L_011e: brfalse Label #9
L_0123: ldsfld Verse.JobDef RemoveApparel
L_0128: ldloc.1
L_0129: ldloc.2
L_012a: callvirt RimWorld.Apparel get_Item(Int32)
L_012f: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0134: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0139: stloc.3
L_013a: ldloc.3
L_013b: ldc.i4.1
L_013c: stfld System.Boolean haulDroppedApparel
L_0141: ldloc.3
L_0142: br Label #0
L_0147: Label #8
L_0147: Label #9
L_0147: ldloc.2
L_0148: ldc.i4.1
L_0149: sub
L_014a: stloc.2
L_014b: Label #7
L_014b: ldloc.2
L_014c: ldc.i4.0
L_014d: bge Label #10
L_0152: ldnull
L_0153: stloc.s 4 (Verse.Thing)
L_0155: ldc.r4 0
L_015a: stloc.s 5 (System.Single)
L_015c: ldarg.1
L_015d: callvirt Verse.Map get_Map()
L_0162: ldfld Verse.ListerThings listerThings
L_0167: ldc.i4.s 26
L_0169: callvirt System.Collections.Generic.List`1[Verse.Thing]
ThingsInGroup(ThingRequestGroup)
L_016e: stloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0170: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0172: callvirt Int32 get_Count()
L_0177: brtrue Label #11
L_017c: ldarg.0
L_017d: ldarg.1
L_017e: call Void SetNextOptimizeTick(Verse.Pawn)
L_0183: ldnull
L_0184: br Label #0
L_0189: Label #11
L_0189: ldarg.1
L_018a: ldarg.1
L_018b: callvirt Verse.Map get_Map()
L_0190: callvirt Int32 get_Tile()
L_0195: ldarg.1
L_0196: call Twelfth Twelfth(Verse.Thing)
L_019b: call NeededWarmth CalculateNeededWarmth(Verse.Pawn, Int32, Twelfth)
L_01a0: stsfld RimWorld.NeededWarmth neededWarmth
L_01a5: ldc.i4.0
L_01a6: stloc.s 7 (System.Int32)
L_01a8: br Label #12
L_01ad: Label #27
L_01ad: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_01af: ldloc.s 7 (System.Int32)
L_01b1: callvirt Verse.Thing get_Item(Int32)
L_01b6: castclass RimWorld.Apparel
L_01bb: stloc.s 8 (RimWorld.Apparel)
L_01bd: ldloc.0
L_01be: ldfld Verse.ThingFilter filter
L_01c3: ldloc.s 8 (RimWorld.Apparel)
L_01c5: callvirt Boolean Allows(Verse.Thing)
L_01ca: brtrue Label #13
L_01cf: br Label #14
L_01d4: Label #13
L_01d4: ldloc.s 8 (RimWorld.Apparel)
L_01d6: callvirt Verse.Map get_Map()
L_01db: ldfld RimWorld.SlotGroupManager slotGroupManager
L_01e0: ldloc.s 8 (RimWorld.Apparel)
L_01e2: callvirt IntVec3 get_Position()
L_01e7: callvirt RimWorld.SlotGroup SlotGroupAt(IntVec3)
L_01ec: stloc.s 9 (RimWorld.SlotGroup)
L_01ee: ldloc.s 9 (RimWorld.SlotGroup)
L_01f0: brtrue Label #15
L_01f5: br Label #16
L_01fa: Label #15
L_01fa: ldloc.s 8 (RimWorld.Apparel)
L_01fc: ldarg.1
L_01fd: call Boolean IsForbidden(Verse.Thing, Verse.Pawn)
L_0202: brfalse Label #17
L_0207: br Label #18
L_020c: Label #17
L_020c: ldarg.1
L_020d: ldloc.s 8 (RimWorld.Apparel)
L_020f: call Single ApparelScoreGain(Verse.Pawn, RimWorld.Apparel)
L_0214: stloc.s 10 (System.Single)
L_0216: ldsfld System.Boolean debugApparelOptimize
L_021b: brfalse Label #19
L_0220: ldsfld System.Text.StringBuilder debugSb
L_0225: ldloc.s 8 (RimWorld.Apparel)
L_0227: callvirt System.String get_LabelCap()
L_022c: ldstr ": "
L_0231: ldloca.s 10 (System.Single)
L_0233: ldstr "F2"
L_0238: call System.String ToString(System.String)
L_023d: call System.String Concat(System.String, System.String, System.String)
L_0242: callvirt System.Text.StringBuilder AppendLine(System.String)
L_0247: pop
L_0248: Label #19
L_0248: ldloc.s 10 (System.Single)
L_024a: ldc.r4 0.05
L_024f: blt Label #20
L_0254: ldloc.s 10 (System.Single)
L_0256: ldloc.s 5 (System.Single)
L_0258: bge.un Label #21
L_025d: Label #20
L_025d: br Label #22
L_0262: Label #21
L_0262: ldarg.1
L_0263: ldloc.s 8 (RimWorld.Apparel)
L_0265: ldfld Verse.ThingDef def
L_026a: call Boolean HasPartsToWear(Verse.Pawn, Verse.ThingDef)
L_026f: brtrue Label #23
L_0274: br Label #24
L_0279: Label #23
L_0279: ldarg.1
L_027a: ldloc.s 8 (RimWorld.Apparel)
L_027c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0281: ldc.i4.1
L_0282: ldarg.1
L_0283: call Danger NormalMaxDanger(Verse.Pawn)
L_0288: ldc.i4.1
L_0289: ldc.i4.m1
L_028a: ldnull
L_028b: ldc.i4.0
L_028c: call Boolean CanReserveAndReach(Verse.Pawn, LocalTargetInfo, PathEndMode,
Danger, Int32, Int32, Verse.ReservationLayerDef, Boolean)
L_0291: brtrue Label #25
L_0296: br Label #26
L_029b: Label #25
L_029b: ldloc.s 8 (RimWorld.Apparel)
L_029d: stloc.s 4 (Verse.Thing)
L_029f: ldloc.s 10 (System.Single)
L_02a1: stloc.s 5 (System.Single)
L_02a3: Label #14
L_02a3: Label #16
L_02a3: Label #18
L_02a3: Label #22
L_02a3: Label #24
L_02a3: Label #26
L_02a3: ldloc.s 7 (System.Int32)
L_02a5: ldc.i4.1
L_02a6: add
L_02a7: stloc.s 7 (System.Int32)
L_02a9: Label #12
L_02a9: ldloc.s 7 (System.Int32)
L_02ab: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_02ad: callvirt Int32 get_Count()
L_02b2: blt Label #27
L_02b7: ldsfld System.Boolean debugApparelOptimize
L_02bc: brfalse Label #28
L_02c1: ldsfld System.Text.StringBuilder debugSb
L_02c6: ldstr "BEST: "
L_02cb: ldloc.s 4 (Verse.Thing)
L_02cd: call System.String Concat(System.Object, System.Object)
L_02d2: callvirt System.Text.StringBuilder AppendLine(System.String)
L_02d7: pop
L_02d8: ldsfld System.Text.StringBuilder debugSb
L_02dd: callvirt System.String ToString()
L_02e2: call Void Message(System.String)
L_02e7: ldnull
L_02e8: stsfld System.Text.StringBuilder debugSb
L_02ed: Label #28
L_02ed: ldloc.s 4 (Verse.Thing)
L_02ef: brtrue Label #29
L_02f4: ldarg.0
L_02f5: ldarg.1
L_02f6: call Void SetNextOptimizeTick(Verse.Pawn)
L_02fb: ldnull
L_02fc: br Label #0
L_0301: Label #29
L_0301: ldsfld Verse.JobDef Wear
L_0306: ldloc.s 4 (Verse.Thing)
L_0308: call LocalTargetInfo op_Implicit(Verse.Thing)
L_030d: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0312: br Label #0
L_0317: Label #0
L_0317: stloc 11 (Verse.AI.Job)
L_0319: ldloca 11 (Verse.AI.Job)
L_031b: ldarga 1
L_0321: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_0326: ldloc 11 (Verse.AI.Job)
L_0328: ret
DONE

PATCHING Verse.Pawn_HealthTracker Boolean ShouldBeDowned()


L_0000: Local var #0 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 0 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean get_InPainShock()
L_000c: brtrue Label #2
L_0011: ldarg.0
L_0012: ldfld Verse.PawnCapacitiesHandler capacities
L_0017: callvirt Boolean get_CanBeAwake()
L_001c: brfalse Label #3
L_0021: ldarg.0
L_0022: ldfld Verse.PawnCapacitiesHandler capacities
L_0027: ldsfld Verse.PawnCapacityDef Moving
L_002c: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0031: ldc.i4.0
L_0032: ceq
L_0034: br Label #4
L_0039: Label #2
L_0039: Label #3
L_0039: ldc.i4.1
L_003a: Label #4
L_003a: br Label #0
L_003f: Label #0
L_003f: stloc 0 (System.Boolean)
L_0040: ldarga 0
L_0046: ldloca 0 (System.Boolean)
L_0048: call Void SBD(Verse.Pawn_HealthTracker ByRef, Boolean ByRef)
L_004d: ldloc 0 (System.Boolean)
L_004e: ret
DONE

PATCHING Verse.Pawn_HealthTracker Void CheckForStateChange(Nullable`1,


Verse.Hediff)
L_0000: Local var #0 System.Single
L_0000: Local var #1 Verse.DamageInfo
L_0000: Local var #2 Verse.ThingWithComps
L_0000: ldarg.0
L_0001: call Boolean get_Dead()
L_0006: brtrue Label #2
L_000b: ldarg.0
L_000c: call Boolean ShouldBeDead()
L_0011: brfalse Label #3
L_0016: ldarg.0
L_0017: ldfld Verse.Pawn pawn
L_001c: callvirt Boolean get_Destroyed()
L_0021: brtrue Label #4
L_0026: ldarg.0
L_0027: ldfld Verse.Pawn pawn
L_002c: ldarg.1
L_002d: ldarg.2
L_002e: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_0033: Label #4
L_0033: br Label #0
L_0038: Label #3
L_0038: ldarg.0
L_0039: call Boolean get_Downed()
L_003e: brtrue Label #5
L_0043: ldarg.0
L_0044: call Boolean ShouldBeDowned()
L_0049: brfalse Label #6
L_004e: ldarg.0
L_004f: ldfld Verse.Pawn pawn
L_0054: callvirt Verse.RaceProperties get_RaceProps()
L_0059: callvirt Boolean get_Animal()
L_005e: brfalse Label #7
L_0063: ldc.r4 0.47
L_0068: br Label #8
L_006d: Label #7
L_006d: ldc.r4 0.67
L_0072: Label #8
L_0072: stloc.0
L_0073: ldarg.0
L_0074: ldfld System.Boolean forceIncap
L_0079: brtrue Label #9
L_007e: ldarga.s 1
L_0080: call Boolean get_HasValue()
L_0085: brfalse Label #10
L_008a: ldarga.s 1
L_008c: call DamageInfo get_Value()
L_0091: stloc.1
L_0092: ldloca.s 1 (Verse.DamageInfo)
L_0094: call Verse.DamageDef get_Def()
L_0099: ldfld System.Boolean externalViolence
L_009e: brfalse Label #11
L_00a3: ldarg.0
L_00a4: ldfld Verse.Pawn pawn
L_00a9: callvirt RimWorld.Faction get_Faction()
L_00ae: brfalse Label #12
L_00b3: ldarg.0
L_00b4: ldfld Verse.Pawn pawn
L_00b9: callvirt RimWorld.Faction get_Faction()
L_00be: callvirt Boolean get_IsPlayer()
L_00c3: brtrue Label #13
L_00c8: br Label #13
L_00cd: Label #12
L_00cd: ldarg.0
L_00ce: ldfld Verse.Pawn pawn
L_00d3: callvirt Boolean get_IsPrisonerOfColony()
L_00d8: brtrue Label #14
L_00dd: ldarg.0
L_00de: ldfld Verse.Pawn pawn
L_00e3: callvirt Verse.RaceProperties get_RaceProps()
L_00e8: callvirt Boolean get_IsFlesh()
L_00ed: brfalse Label #15
L_00f2: call Single get_Value()
L_00f7: ldloc.0
L_00f8: bge.un Label #16
L_00fd: ldarg.0
L_00fe: ldfld Verse.Pawn pawn
L_0103: ldarg.1
L_0104: ldnull
L_0105: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_010a: br Label #0
L_010f: Label #9
L_010f: Label #10
L_010f: Label #11
L_010f: Label #13
L_010f: Label #14
L_010f: Label #15
L_010f: Label #16
L_010f: ldarg.0
L_0110: ldc.i4.0
L_0111: stfld System.Boolean forceIncap
L_0116: ldarg.0
L_0117: ldarg.1
L_0118: ldarg.2
L_0119: call Void MakeDowned(Nullable`1, Verse.Hediff)
L_011e: br Label #0
L_0123: Label #6
L_0123: ldarg.0
L_0124: ldfld Verse.PawnCapacitiesHandler capacities
L_0129: ldsfld Verse.PawnCapacityDef Manipulation
L_012e: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0133: brtrue Label #17
L_0138: ldarg.0
L_0139: ldfld Verse.Pawn pawn
L_013e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0143: brfalse Label #18
L_0148: ldarg.0
L_0149: ldfld Verse.Pawn pawn
L_014e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0153: callvirt Verse.Thing get_CarriedThing()
L_0158: brfalse Label #19
L_015d: ldarg.0
L_015e: ldfld Verse.Pawn pawn
L_0163: ldfld Verse.AI.Pawn_JobTracker jobs
L_0168: brfalse Label #20
L_016d: ldarg.0
L_016e: ldfld Verse.Pawn pawn
L_0173: callvirt Verse.AI.Job get_CurJob()
L_0178: brfalse Label #21
L_017d: ldarg.0
L_017e: ldfld Verse.Pawn pawn
L_0183: ldfld Verse.AI.Pawn_JobTracker jobs
L_0188: ldc.i4.5
L_0189: ldc.i4.1
L_018a: callvirt Void EndCurrentJob(JobCondition, Boolean)
L_018f: Label #18
L_018f: Label #19
L_018f: Label #20
L_018f: Label #21
L_018f: ldarg.0
L_0190: ldfld Verse.Pawn pawn
L_0195: ldfld Verse.Pawn_EquipmentTracker equipment
L_019a: brfalse Label #22
L_019f: ldarg.0
L_01a0: ldfld Verse.Pawn pawn
L_01a5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01aa: callvirt Verse.ThingWithComps get_Primary()
L_01af: brfalse Label #23
L_01b4: ldarg.0
L_01b5: ldfld Verse.Pawn pawn
L_01ba: callvirt Boolean get_InContainerEnclosed()
L_01bf: brfalse Label #24
L_01c4: ldarg.0
L_01c5: ldfld Verse.Pawn pawn
L_01ca: ldfld Verse.Pawn_EquipmentTracker equipment
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01da: callvirt Verse.ThingWithComps get_Primary()
L_01df: ldarg.0
L_01e0: ldfld Verse.Pawn pawn
L_01e5: ldfld Verse.ThingOwner holdingOwner
L_01ea: callvirt Boolean TryTransferEquipmentToContainer(Verse.ThingWithComps,
Verse.ThingOwner)
L_01ef: pop
L_01f0: br Label #25
L_01f5: Label #24
L_01f5: ldarg.0
L_01f6: ldfld Verse.Pawn pawn
L_01fb: callvirt Boolean get_SpawnedOrAnyParentSpawned()
L_0200: brfalse Label #26
L_0205: ldarg.0
L_0206: ldfld Verse.Pawn pawn
L_020b: ldfld Verse.Pawn_EquipmentTracker equipment
L_0210: ldarg.0
L_0211: ldfld Verse.Pawn pawn
L_0216: ldfld Verse.Pawn_EquipmentTracker equipment
L_021b: callvirt Verse.ThingWithComps get_Primary()
L_0220: ldloca.s 2 (Verse.ThingWithComps)
L_0222: ldarg.0
L_0223: ldfld Verse.Pawn pawn
L_0228: callvirt IntVec3 get_PositionHeld()
L_022d: ldc.i4.1
L_022e: callvirt Boolean TryDropEquipment(Verse.ThingWithComps,
Verse.ThingWithComps ByRef, IntVec3, Boolean)
L_0233: pop
L_0234: br Label #27
L_0239: Label #26
L_0239: ldarg.0
L_023a: ldfld Verse.Pawn pawn
L_023f: ldfld Verse.Pawn_EquipmentTracker equipment
L_0244: ldarg.0
L_0245: ldfld Verse.Pawn pawn
L_024a: ldfld Verse.Pawn_EquipmentTracker equipment
L_024f: callvirt Verse.ThingWithComps get_Primary()
L_0254: callvirt Void DestroyEquipment(Verse.ThingWithComps)
L_0259: Label #17
L_0259: Label #22
L_0259: Label #23
L_0259: Label #25
L_0259: Label #27
L_0259: br Label #28
L_025e: Label #5
L_025e: ldarg.0
L_025f: call Boolean ShouldBeDowned()
L_0264: brtrue Label #29
L_0269: ldarg.0
L_026a: call Void MakeUndowned()
L_026f: br Label #0
L_0274: Label #2
L_0274: Label #28
L_0274: Label #29
L_0274: br Label #0
L_0279: Label #0
L_0279: ret
DONE

PATCHING RimWorld.RestUtility Single WakeThreshold(Verse.Pawn)


L_0000: Local var #0 Verse.AI.Group.Lord
L_0000: Local var #1 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #2 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #3 System.Single
L_0000: ldc.r4 0
L_0005: stloc 3 (System.Single)
L_0006: ldarg.0
L_0007: call Verse.AI.Group.Lord GetLord(Verse.Pawn)
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldloc.0
L_0014: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0019: brfalse Label #3
L_001e: ldloc.0
L_001f: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0024: callvirt Nullable`1 get_CustomWakeThreshold()
L_0029: stloc.1
L_002a: ldloca.s 1 (System.Nullable`1[System.Single])
L_002c: call Boolean get_HasValue()
L_0031: brfalse Label #4
L_0036: ldloc.0
L_0037: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_003c: callvirt Nullable`1 get_CustomWakeThreshold()
L_0041: stloc.2
L_0042: ldloca.s 2 (System.Nullable`1[System.Single])
L_0044: call Single get_Value()
L_0049: br Label #0
L_004e: Label #2
L_004e: Label #3
L_004e: Label #4
L_004e: ldc.r4 1
L_0053: br Label #0
L_0058: Label #0
L_0058: stloc 3 (System.Single)
L_0059: ldloca 3 (System.Single)
L_005b: ldarga 0
L_0061: call Void WakeThreshold_Patch(Single ByRef, Verse.Pawn ByRef)
L_0066: ldloc 3 (System.Single)
L_0067: ret
DONE

PATCHING Verse.Verb_Shoot Boolean TryCastShot()


L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 1 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean TryCastShot()
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldarg.0
L_0014: call Boolean get_CasterIsPawn()
L_0019: brfalse Label #3
L_001e: ldarg.0
L_001f: call Verse.Pawn get_CasterPawn()
L_0024: ldfld RimWorld.Pawn_RecordsTracker records
L_0029: ldsfld RimWorld.RecordDef ShotsFired
L_002e: callvirt Void Increment(RimWorld.RecordDef)
L_0033: Label #2
L_0033: Label #3
L_0033: ldloc.0
L_0034: br Label #0
L_0039: Label #0
L_0039: stloc 1 (System.Boolean)
L_003a: ldarga 0
L_0040: call Void TryCastShot_Patch(Verse.Verb_Shoot ByRef)
L_0045: ldloc 1 (System.Boolean)
L_0046: ret
DONE

PATCHING Verse.Pawn_EquipmentTracker Void


Notify_EquipmentAdded(Verse.ThingWithComps)
L_0000: Local var #0 Verse.Verb
L_0000: Local var #1 System.Collections.Generic.List`1+Enumerator[[Verse.Verb,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: ldarg.1
L_0001: callvirt Verse.CompEquippable GetComp[CompEquippable]()
L_0006: callvirt System.Collections.Generic.List`1[Verse.Verb] get_AllVerbs()
L_000b: callvirt Enumerator GetEnumerator()
L_0010: stloc.1
L_0011: br Label #2
L_0016: Label #3
L_0016: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0018: call Verse.Verb get_Current()
L_001d: stloc.0
L_001e: ldloc.0
L_001f: ldarg.0
L_0020: ldfld Verse.Pawn pawn
L_0025: stfld Verse.Thing caster
L_002a: ldloc.0
L_002b: callvirt Void Notify_PickedUp()
L_0030: Label #2
L_0030: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0032: call Boolean MoveNext()
L_0037: brtrue Label #3
L_003c: leave Label #4
L_0041: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0043: constrained. System.Collections.Generic.List`1+Enumerator[Verse.Verb]
L_0049: callvirt Void Dispose()
L_004e: endfinally
L_004f: Label #4
L_004f: br Label #0
L_0054: Label #0
L_0054: ldarga 1
L_005a: ldarga 0
L_0060: call Void Notify_EquipmentAdded_Patch(Verse.ThingWithComps ByRef,
Verse.Pawn_EquipmentTracker ByRef)
L_0065: ret
DONE

PATCHING RimWorld.PawnWeaponGenerator Void TryGenerateWeaponFor(Verse.Pawn)


L_0000: Local var #0 System.Single
L_0000: Local var #1 System.Int32
L_0000: Local var #2
RimWorld.PawnWeaponGenerator+<TryGenerateWeaponFor>c__AnonStorey2
L_0000: Local var #3 RimWorld.ThingStuffPair
L_0000: Local var #4 Verse.ThingWithComps
L_0000: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0005: callvirt Void Clear()
L_000a: ldarg.0
L_000b: ldfld Verse.PawnKindDef kindDef
L_0010: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0015: brfalse Label #2
L_001a: ldarg.0
L_001b: ldfld Verse.PawnKindDef kindDef
L_0020: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0025: callvirt Int32 get_Count()
L_002a: brtrue Label #3
L_002f: Label #2
L_002f: br Label #0
L_0034: Label #3
L_0034: ldarg.0
L_0035: callvirt Verse.RaceProperties get_RaceProps()
L_003a: callvirt Boolean get_ToolUser()
L_003f: brtrue Label #4
L_0044: br Label #0
L_0049: Label #4
L_0049: ldarg.0
L_004a: ldfld Verse.Pawn_HealthTracker health
L_004f: ldfld Verse.PawnCapacitiesHandler capacities
L_0054: ldsfld Verse.PawnCapacityDef Manipulation
L_0059: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_005e: brtrue Label #5
L_0063: br Label #0
L_0068: Label #5
L_0068: ldarg.0
L_0069: ldfld RimWorld.Pawn_StoryTracker story
L_006e: brfalse Label #6
L_0073: ldarg.0
L_0074: ldfld RimWorld.Pawn_StoryTracker story
L_0079: ldc.i4.8
L_007a: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_007f: brfalse Label #7
L_0084: br Label #0
L_0089: Label #6
L_0089: Label #7
L_0089: ldarg.0
L_008a: ldfld Verse.PawnKindDef kindDef
L_008f: ldflda Verse.FloatRange weaponMoney
L_0094: call Single get_RandomInRange()
L_0099: stloc.0
L_009a: ldc.i4.0
L_009b: stloc.1
L_009c: br Label #8
L_00a1: Label #16
L_00a1: newobj Void .ctor()
L_00a6: stloc.2
L_00a7: ldloc.2
L_00a8: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_00ad: ldloc.1
L_00ae: callvirt ThingStuffPair get_Item(Int32)
L_00b3: stfld RimWorld.ThingStuffPair w
L_00b8: ldloc.2
L_00b9: ldflda RimWorld.ThingStuffPair w
L_00be: call Single get_Price()
L_00c3: ldloc.0
L_00c4: ble.un Label #9
L_00c9: br Label #10
L_00ce: Label #9
L_00ce: ldarg.0
L_00cf: ldfld Verse.PawnKindDef kindDef
L_00d4: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_00d9: ldloc.2
L_00da: ldftn Boolean <>m__0(System.String)
L_00e0: newobj Void .ctor(Object, IntPtr)
L_00e5: call Boolean Any[String](System.Collections.Generic.List`1[System.String],
System.Predicate`1[System.String])
L_00ea: brtrue Label #11
L_00ef: br Label #12
L_00f4: Label #11
L_00f4: ldloc.2
L_00f5: ldflda RimWorld.ThingStuffPair w
L_00fa: ldfld Verse.ThingDef thing
L_00ff: ldfld System.Single generateAllowChance
L_0104: ldc.r4 1
L_0109: bge.un Label #13
L_010e: ldarg.0
L_010f: ldfld System.Int32 thingIDNumber
L_0114: ldc.i4 28554824
L_0119: xor
L_011a: call Single ValueSeeded(Int32)
L_011f: ldloc.2
L_0120: ldflda RimWorld.ThingStuffPair w
L_0125: ldfld Verse.ThingDef thing
L_012a: ldfld System.Single generateAllowChance
L_012f: ble.un Label #14
L_0134: br Label #15
L_0139: Label #13
L_0139: Label #14
L_0139: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_013e: ldloc.2
L_013f: ldfld RimWorld.ThingStuffPair w
L_0144: callvirt Void Add(ThingStuffPair)
L_0149: Label #10
L_0149: Label #12
L_0149: Label #15
L_0149: ldloc.1
L_014a: ldc.i4.1
L_014b: add
L_014c: stloc.1
L_014d: Label #8
L_014d: ldloc.1
L_014e: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_0153: callvirt Int32 get_Count()
L_0158: blt Label #16
L_015d: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0162: callvirt Int32 get_Count()
L_0167: brtrue Label #17
L_016c: br Label #0
L_0171: ldarg.0
L_0172: ldloc.2
L_0173: callvirt System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
FilterChildWeapons(Verse.Pawn,
System.Collections.Generic.List`1[RimWorld.ThingStuffPair])
L_0178: stloc.2
L_0179: Label #17
L_0179: ldarg.0
L_017a: ldfld Verse.Pawn_EquipmentTracker equipment
L_017f: ldc.i4.0
L_0180: callvirt Void DestroyAllEquipment(DestroyMode)
L_0185: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_018a: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_018f: brtrue Label #18
L_0194: ldnull
L_0195: ldftn Single <TryGenerateWeaponFor>m__2(ThingStuffPair)
L_019b: newobj Void .ctor(Object, IntPtr)
L_01a0: stsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01a5: Label #18
L_01a5: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01aa: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01ac: call Boolean TryRandomElementByWeight[ThingStuffPair](IEnumerable`1,
System.Func`2[RimWorld.ThingStuffPair,System.Single], ThingStuffPair ByRef)
L_01b1: brfalse Label #19
L_01b6: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01b8: ldfld Verse.ThingDef thing
L_01bd: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01bf: ldfld Verse.ThingDef stuff
L_01c4: call Verse.Thing MakeThing(Verse.ThingDef, Verse.ThingDef)
L_01c9: castclass Verse.ThingWithComps
L_01ce: stloc.s 4 (Verse.ThingWithComps)
L_01d0: ldloc.s 4 (Verse.ThingWithComps)
L_01d2: ldarg.0
L_01d3: call Void PostProcessGeneratedGear(Verse.Thing, Verse.Pawn)
L_01d8: ldarg.0
L_01d9: ldfld Verse.Pawn_EquipmentTracker equipment
L_01de: ldloc.s 4 (Verse.ThingWithComps)
L_01e0: callvirt Void AddEquipment(Verse.ThingWithComps)
L_01e5: Label #19
L_01e5: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_01ea: callvirt Void Clear()
L_01ef: br Label #0
L_01f4: Label #0
L_01f4: ret
DONE

PATCHING RimWorld.Bill_Medical Void Notify_DoBillStarted(Verse.Pawn)


L_0000: Local var #0 System.Collections.Generic.List`1[[Verse.ThingStackPartClass,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #1 System.Int32
L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void Notify_DoBillStarted(Verse.Pawn)
L_0007: ldarg.0
L_0008: ldnull
L_0009: stfld Verse.ThingDef consumedInitialMedicineDef
L_000e: ldarg.0
L_000f: call Verse.Pawn get_GiverPawn()
L_0014: callvirt Boolean get_Dead()
L_0019: brtrue Label #2
L_001e: ldarg.0
L_001f: ldfld Verse.RecipeDef recipe
L_0024: call Boolean RecipeHasNoIngredients(Verse.RecipeDef)
L_0029: brtrue Label #2
L_002e: ldarg.0
L_002f: ldfld Verse.RecipeDef recipe
L_0034: ldfld System.Boolean anesthetize
L_0039: brfalse Label #3
L_003e: ldarg.0
L_003f: call Verse.Pawn get_GiverPawn()
L_0044: call Boolean TryAnesthetize(Verse.Pawn)
L_0049: brfalse Label #4
L_004e: ldarg.1
L_004f: callvirt Verse.AI.Job get_CurJob()
L_0054: ldfld System.Collections.Generic.List`1[Verse.ThingStackPartClass]
placedThings
L_0059: stloc.0
L_005a: ldc.i4.0
L_005b: stloc.1
L_005c: br Label #5
L_0061: Label #10
L_0061: ldloc.0
L_0062: ldloc.1
L_0063: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0068: ldfld Verse.Thing thing
L_006d: isinst RimWorld.Medicine
L_0072: brfalse Label #6
L_0077: ldarg.0
L_0078: ldfld Verse.RecipeDef recipe
L_007d: callvirt Verse.RecipeWorker get_Worker()
L_0082: ldloc.0
L_0083: ldloc.1
L_0084: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0089: ldfld Verse.Thing thing
L_008e: ldc.i4.1
L_008f: callvirt Verse.Thing SplitOff(Int32)
L_0094: ldarg.0
L_0095: ldfld Verse.RecipeDef recipe
L_009a: ldarg.1
L_009b: callvirt Verse.Map get_MapHeld()
L_00a0: callvirt Void ConsumeIngredient(Verse.Thing, Verse.RecipeDef, Verse.Map)
L_00a5: ldloc.0
L_00a6: ldloc.1
L_00a7: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ac: dup
L_00ad: callvirt Int32 get_Count()
L_00b2: ldc.i4.1
L_00b3: sub
L_00b4: callvirt Void set_Count(Int32)
L_00b9: ldarg.0
L_00ba: ldloc.0
L_00bb: ldloc.1
L_00bc: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00c1: ldfld Verse.Thing thing
L_00c6: ldfld Verse.ThingDef def
L_00cb: stfld Verse.ThingDef consumedInitialMedicineDef
L_00d0: ldloc.0
L_00d1: ldloc.1
L_00d2: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00d7: ldfld Verse.Thing thing
L_00dc: callvirt Boolean get_Destroyed()
L_00e1: brtrue Label #7
L_00e6: ldloc.0
L_00e7: ldloc.1
L_00e8: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ed: callvirt Int32 get_Count()
L_00f2: ldc.i4.0
L_00f3: bgt Label #8
L_00f8: Label #7
L_00f8: ldloc.0
L_00f9: ldloc.1
L_00fa: callvirt Void RemoveAt(Int32)
L_00ff: Label #8
L_00ff: br Label #9
L_0104: Label #6
L_0104: ldloc.1
L_0105: ldc.i4.1
L_0106: add
L_0107: stloc.1
L_0108: Label #5
L_0108: ldloc.1
L_0109: ldloc.0
L_010a: callvirt Int32 get_Count()
L_010f: blt Label #10
L_0114: Label #2
L_0114: Label #3
L_0114: Label #4
L_0114: Label #9
L_0114: br Label #0
L_0119: Label #0
L_0119: ret
DONE

PATCHING RimWorld.Building_Bed IEnumerable`1 get_AssigningCandidates()


L_0000: ldarg.0
L_0001: callvirt IEnumerable`1 BedCandidates(RimWorld.Building_Bed)
L_0006: Label #0
L_0006: ret
DONE

PATCHING RimWorld.RestUtility RimWorld.Building_Bed FindBedFor(Verse.Pawn,


Verse.Pawn, Boolean, Boolean, Boolean)
L_0000: Local var #0 RimWorld.RestUtility+<FindBedFor>c__AnonStorey0
L_0000: Local var #1 RimWorld.Building_Bed
L_0000: Local var #2 Verse.Pawn
L_0000: Local var #3 Verse.Pawn
L_0000: Local var #4 System.Boolean
L_0000: Local var #5 System.Boolean
L_0000: Local var #6 System.Boolean
L_0000: Local var #7 System.Int32
L_0000: Local var #8 Verse.ThingDef
L_0000: Local var #9 System.Int32
L_0000: Local var #10 RimWorld.RestUtility+<FindBedFor>c__AnonStorey1
L_0000: Local var #11 RimWorld.Building_Bed
L_0000: Local var #12 RimWorld.DirectPawnRelation
L_0000: Local var #13 RimWorld.Building_Bed
L_0000: Local var #14 System.Int32
L_0000: Local var #15 RimWorld.RestUtility+<FindBedFor>c__AnonStorey2
L_0000: Local var #16 System.Int32
L_0000: Local var #17 Verse.ThingDef
L_0000: Local var #18 RimWorld.Building_Bed
L_0000: Local var #19 RimWorld.Building_Bed
L_0000: ldnull
L_0001: stloc 19 (RimWorld.Building_Bed)
L_0003: newobj Void .ctor()
L_0008: stloc.0
L_0009: ldloc.0
L_000a: ldarg.0
L_000b: stfld Verse.Pawn sleeper
L_0010: ldloc.0
L_0011: ldarg.1
L_0012: stfld Verse.Pawn traveler
L_0017: ldloc.0
L_0018: ldarg.2
L_0019: stfld System.Boolean sleeperWillBePrisoner
L_001e: ldloc.0
L_001f: ldarg.3
L_0020: stfld System.Boolean checkSocialProperness
L_0025: ldloc.0
L_0026: ldarg.s 4
L_0028: stfld System.Boolean ignoreOtherReservations
L_002d: ldloc.0
L_002e: ldfld Verse.Pawn sleeper
L_0033: call Boolean ShouldSeekMedicalRest(Verse.Pawn)
L_0038: brfalse Label #2
L_003d: ldloc.0
L_003e: ldfld Verse.Pawn sleeper
L_0043: call Boolean InBed(Verse.Pawn)
L_0048: brfalse Label #3
L_004d: ldloc.0
L_004e: ldfld Verse.Pawn sleeper
L_0053: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0058: callvirt Boolean get_Medical()
L_005d: brfalse Label #4
L_0062: ldloc.0
L_0063: ldfld Verse.Pawn sleeper
L_0068: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_006d: stloc.1
L_006e: ldloc.0
L_006f: ldfld Verse.Pawn sleeper
L_0074: stloc.2
L_0075: ldloc.0
L_0076: ldfld Verse.Pawn traveler
L_007b: stloc.3
L_007c: ldloc.0
L_007d: ldfld System.Boolean sleeperWillBePrisoner
L_0082: stloc.s 4 (System.Boolean)
L_0084: ldloc.0
L_0085: ldfld System.Boolean checkSocialProperness
L_008a: stloc.s 5 (System.Boolean)
L_008c: ldloc.0
L_008d: ldfld System.Boolean ignoreOtherReservations
L_0092: stloc.s 6 (System.Boolean)
L_0094: ldloc.1
L_0095: ldloc.2
L_0096: ldloc.3
L_0097: ldloc.s 4 (System.Boolean)
L_0099: ldloc.s 5 (System.Boolean)
L_009b: ldc.i4.0
L_009c: ldloc.s 6 (System.Boolean)
L_009e: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_00a3: brfalse Label #5
L_00a8: ldloc.0
L_00a9: ldfld Verse.Pawn sleeper
L_00ae: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00b3: br Label #0
L_00b8: Label #3
L_00b8: Label #4
L_00b8: Label #5
L_00b8: ldc.i4.0
L_00b9: stloc.s 7 (System.Int32)
L_00bb: br Label #6
L_00c0: Label #14
L_00c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_00c5: ldloc.s 7 (System.Int32)
L_00c7: callvirt Verse.ThingDef get_Item(Int32)
L_00cc: stloc.s 8 (Verse.ThingDef)
L_00ce: ldloc.0
L_00cf: ldfld Verse.Pawn sleeper
L_00d4: ldloc.s 8 (Verse.ThingDef)
L_00d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_00db: brtrue Label #7
L_00e0: br Label #8
L_00e5: Label #7
L_00e5: ldc.i4.0
L_00e6: stloc.s 9 (System.Int32)
L_00e8: br Label #9
L_00ed: Label #13
L_00ed: newobj Void .ctor()
L_00f2: stloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f4: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f6: ldloc.0
L_00f7: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_00fc: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00fe: ldloc.s 9 (System.Int32)
L_0100: brtrue Label #10
L_0105: ldc.i4.1
L_0106: br Label #11
L_010b: Label #10
L_010b: ldc.i4.3
L_010c: Label #11
L_010c: stfld Verse.Danger maxDanger
L_0111: ldloc.0
L_0112: ldfld Verse.Pawn sleeper
L_0117: callvirt IntVec3 get_Position()
L_011c: ldloc.0
L_011d: ldfld Verse.Pawn sleeper
L_0122: callvirt Verse.Map get_Map()
L_0127: ldloc.s 8 (Verse.ThingDef)
L_0129: call ThingRequest ForDef(Verse.ThingDef)
L_012e: ldc.i4.1
L_012f: ldloc.0
L_0130: ldfld Verse.Pawn traveler
L_0135: ldc.i4.3
L_0136: ldc.i4.0
L_0137: ldc.i4.0
L_0138: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_013d: ldc.r4 9999
L_0142: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_0144: ldftn Boolean <>m__0(Verse.Thing)
L_014a: newobj Void .ctor(Object, IntPtr)
L_014f: ldnull
L_0150: ldc.i4.0
L_0151: ldc.i4.m1
L_0152: ldc.i4.0
L_0153: ldc.i4.6
L_0154: ldc.i4.0
L_0155: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_015a: castclass RimWorld.Building_Bed
L_015f: stloc.s 11 (RimWorld.Building_Bed)
L_0161: ldloc.s 11 (RimWorld.Building_Bed)
L_0163: brfalse Label #12
L_0168: ldloc.s 11 (RimWorld.Building_Bed)
L_016a: br Label #0
L_016f: Label #12
L_016f: ldloc.s 9 (System.Int32)
L_0171: ldc.i4.1
L_0172: add
L_0173: stloc.s 9 (System.Int32)
L_0175: Label #9
L_0175: ldloc.s 9 (System.Int32)
L_0177: ldc.i4.2
L_0178: blt Label #13
L_017d: Label #8
L_017d: ldloc.s 7 (System.Int32)
L_017f: ldc.i4.1
L_0180: add
L_0181: stloc.s 7 (System.Int32)
L_0183: Label #6
L_0183: ldloc.s 7 (System.Int32)
L_0185: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_018a: callvirt Int32 get_Count()
L_018f: blt Label #14
L_0194: Label #2
L_0194: ldloc.0
L_0195: ldfld Verse.Pawn sleeper
L_019a: ldfld RimWorld.Pawn_Ownership ownership
L_019f: brfalse Label #15
L_01a4: ldloc.0
L_01a5: ldfld Verse.Pawn sleeper
L_01aa: ldfld RimWorld.Pawn_Ownership ownership
L_01af: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01b4: brfalse Label #16
L_01b9: ldloc.0
L_01ba: ldfld Verse.Pawn sleeper
L_01bf: ldfld RimWorld.Pawn_Ownership ownership
L_01c4: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01c9: stloc.1
L_01ca: ldloc.0
L_01cb: ldfld Verse.Pawn sleeper
L_01d0: stloc.3
L_01d1: ldloc.0
L_01d2: ldfld Verse.Pawn traveler
L_01d7: stloc.2
L_01d8: ldloc.0
L_01d9: ldfld System.Boolean sleeperWillBePrisoner
L_01de: stloc.s 6 (System.Boolean)
L_01e0: ldloc.0
L_01e1: ldfld System.Boolean checkSocialProperness
L_01e6: stloc.s 5 (System.Boolean)
L_01e8: ldloc.0
L_01e9: ldfld System.Boolean ignoreOtherReservations
L_01ee: stloc.s 4 (System.Boolean)
L_01f0: ldloc.1
L_01f1: ldloc.3
L_01f2: ldloc.2
L_01f3: ldloc.s 6 (System.Boolean)
L_01f5: ldloc.s 5 (System.Boolean)
L_01f7: ldc.i4.0
L_01f8: ldloc.s 4 (System.Boolean)
L_01fa: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_01ff: brfalse Label #17
L_0204: ldloc.0
L_0205: ldfld Verse.Pawn sleeper
L_020a: ldfld RimWorld.Pawn_Ownership ownership
L_020f: callvirt RimWorld.Building_Bed get_OwnedBed()
L_0214: br Label #0
L_0219: Label #15
L_0219: Label #16
L_0219: Label #17
L_0219: ldloc.0
L_021a: ldfld Verse.Pawn sleeper
L_021f: ldc.i4.0
L_0220: call RimWorld.DirectPawnRelation
ExistingMostLikedLovePartnerRel(Verse.Pawn, Boolean)
L_0225: stloc.s 12 (RimWorld.DirectPawnRelation)
L_0227: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0229: brfalse Label #18
L_022e: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0230: ldfld Verse.Pawn otherPawn
L_0235: ldfld RimWorld.Pawn_Ownership ownership
L_023a: callvirt RimWorld.Building_Bed get_OwnedBed()
L_023f: stloc.s 13 (RimWorld.Building_Bed)
L_0241: ldloc.s 13 (RimWorld.Building_Bed)
L_0243: brfalse Label #19
L_0248: ldloc.s 13 (RimWorld.Building_Bed)
L_024a: stloc.1
L_024b: ldloc.0
L_024c: ldfld Verse.Pawn sleeper
L_0251: stloc.2
L_0252: ldloc.0
L_0253: ldfld Verse.Pawn traveler
L_0258: stloc.3
L_0259: ldloc.0
L_025a: ldfld System.Boolean sleeperWillBePrisoner
L_025f: stloc.s 4 (System.Boolean)
L_0261: ldloc.0
L_0262: ldfld System.Boolean checkSocialProperness
L_0267: stloc.s 5 (System.Boolean)
L_0269: ldloc.0
L_026a: ldfld System.Boolean ignoreOtherReservations
L_026f: stloc.s 6 (System.Boolean)
L_0271: ldloc.1
L_0272: ldloc.2
L_0273: ldloc.3
L_0274: ldloc.s 4 (System.Boolean)
L_0276: ldloc.s 5 (System.Boolean)
L_0278: ldc.i4.0
L_0279: ldloc.s 6 (System.Boolean)
L_027b: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_0280: brfalse Label #20
L_0285: ldloc.s 13 (RimWorld.Building_Bed)
L_0287: br Label #0
L_028c: Label #18
L_028c: Label #19
L_028c: Label #20
L_028c: ldc.i4.0
L_028d: stloc.s 14 (System.Int32)
L_028f: br Label #21
L_0294: Label #29
L_0294: newobj Void .ctor()
L_0299: stloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029b: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029d: ldloc.0
L_029e: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_02a3: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_02a5: ldloc.s 14 (System.Int32)
L_02a7: brtrue Label #22
L_02ac: ldc.i4.1
L_02ad: br Label #23
L_02b2: Label #22
L_02b2: ldc.i4.3
L_02b3: Label #23
L_02b3: stfld Verse.Danger maxDanger
L_02b8: ldc.i4.0
L_02b9: stloc.s 16 (System.Int32)
L_02bb: br Label #24
L_02c0: Label #28
L_02c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_02c5: ldloc.s 16 (System.Int32)
L_02c7: callvirt Verse.ThingDef get_Item(Int32)
L_02cc: stloc.s 17 (Verse.ThingDef)
L_02ce: ldloc.0
L_02cf: ldfld Verse.Pawn sleeper
L_02d4: ldloc.s 17 (Verse.ThingDef)
L_02d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_02db: brtrue Label #25
L_02e0: br Label #26
L_02e5: Label #25
L_02e5: ldloc.0
L_02e6: ldfld Verse.Pawn sleeper
L_02eb: callvirt IntVec3 get_Position()
L_02f0: ldloc.0
L_02f1: ldfld Verse.Pawn sleeper
L_02f6: callvirt Verse.Map get_Map()
L_02fb: ldloc.s 17 (Verse.ThingDef)
L_02fd: call ThingRequest ForDef(Verse.ThingDef)
L_0302: ldc.i4.1
L_0303: ldloc.0
L_0304: ldfld Verse.Pawn traveler
L_0309: ldc.i4.3
L_030a: ldc.i4.0
L_030b: ldc.i4.0
L_030c: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_0311: ldc.r4 9999
L_0316: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_0318: ldftn Boolean <>m__0(Verse.Thing)
L_031e: newobj Void .ctor(Object, IntPtr)
L_0323: ldnull
L_0324: ldc.i4.0
L_0325: ldc.i4.m1
L_0326: ldc.i4.0
L_0327: ldc.i4.6
L_0328: ldc.i4.0
L_0329: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_032e: castclass RimWorld.Building_Bed
L_0333: stloc.s 18 (RimWorld.Building_Bed)
L_0335: ldloc.s 18 (RimWorld.Building_Bed)
L_0337: brfalse Label #27
L_033c: ldloc.s 18 (RimWorld.Building_Bed)
L_033e: br Label #0
L_0343: Label #26
L_0343: Label #27
L_0343: ldloc.s 16 (System.Int32)
L_0345: ldc.i4.1
L_0346: add
L_0347: stloc.s 16 (System.Int32)
L_0349: Label #24
L_0349: ldloc.s 16 (System.Int32)
L_034b: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_0350: callvirt Int32 get_Count()
L_0355: blt Label #28
L_035a: ldloc.s 14 (System.Int32)
L_035c: ldc.i4.1
L_035d: add
L_035e: stloc.s 14 (System.Int32)
L_0360: Label #21
L_0360: ldloc.s 14 (System.Int32)
L_0362: ldc.i4.2
L_0363: blt Label #29
L_0368: ldnull
L_0369: br Label #0
L_036e: Label #0
L_036e: stloc 19 (RimWorld.Building_Bed)
L_0370: ldarga 0
L_0376: ldloca 19 (RimWorld.Building_Bed)
L_0378: ldarga 1
L_037e: ldarga 4
L_0384: ldarga 2
L_038a: ldarga 3
L_0390: call Void FindBedFor_Patch(Verse.Pawn ByRef, RimWorld.Building_Bed ByRef,
Verse.Pawn ByRef, Boolean ByRef, Boolean ByRef, Boolean ByRef)
L_0395: ldloc 19 (RimWorld.Building_Bed)
L_0397: ret
DONE

PATCHING RimWorld.JobGiver_DoLovin Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 1 (Verse.AI.Job)
L_0002: call Verse.TickManager get_TickManager()
L_0007: callvirt Int32 get_TicksGame()
L_000c: ldarg.1
L_000d: ldfld Verse.AI.Pawn_MindState mindState
L_0012: ldfld System.Int32 canLovinTick
L_0017: bge Label #2
L_001c: ldnull
L_001d: br Label #0
L_0022: Label #2
L_0022: ldarg.1
L_0023: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0028: brfalse Label #3
L_002d: ldarg.1
L_002e: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0033: callvirt Boolean get_Medical()
L_0038: brtrue Label #4
L_003d: ldarg.1
L_003e: ldfld Verse.Pawn_HealthTracker health
L_0043: ldfld Verse.PawnCapacitiesHandler capacities
L_0048: callvirt Boolean get_CanBeAwake()
L_004d: brtrue Label #5
L_0052: Label #3
L_0052: Label #4
L_0052: ldnull
L_0053: br Label #0
L_0058: Label #5
L_0058: ldarg.1
L_0059: call Verse.Pawn GetPartnerInMyBed(Verse.Pawn)
L_005e: stloc.0
L_005f: ldloc.0
L_0060: brfalse Label #6
L_0065: ldloc.0
L_0066: ldfld Verse.Pawn_HealthTracker health
L_006b: ldfld Verse.PawnCapacitiesHandler capacities
L_0070: callvirt Boolean get_CanBeAwake()
L_0075: brfalse Label #7
L_007a: call Verse.TickManager get_TickManager()
L_007f: callvirt Int32 get_TicksGame()
L_0084: ldloc.0
L_0085: ldfld Verse.AI.Pawn_MindState mindState
L_008a: ldfld System.Int32 canLovinTick
L_008f: bge Label #8
L_0094: Label #6
L_0094: Label #7
L_0094: ldnull
L_0095: br Label #0
L_009a: Label #8
L_009a: ldarg.1
L_009b: ldloc.0
L_009c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00a1: ldc.i4.1
L_00a2: ldc.i4.m1
L_00a3: ldnull
L_00a4: ldc.i4.0
L_00a5: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00aa: brfalse Label #9
L_00af: ldloc.0
L_00b0: ldarg.1
L_00b1: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00b6: ldc.i4.1
L_00b7: ldc.i4.m1
L_00b8: ldnull
L_00b9: ldc.i4.0
L_00ba: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00bf: brtrue Label #10
L_00c4: Label #9
L_00c4: ldnull
L_00c5: br Label #0
L_00ca: Label #10
L_00ca: ldsfld Verse.JobDef Lovin
L_00cf: ldloc.0
L_00d0: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00d5: ldarg.1
L_00d6: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00db: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00e0: newobj Void .ctor(JobDef, LocalTargetInfo, LocalTargetInfo)
L_00e5: br Label #0
L_00ea: Label #0
L_00ea: stloc 1 (Verse.AI.Job)
L_00eb: ldloca 1 (Verse.AI.Job)
L_00ed: ldarga 1
L_00f3: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_00f8: ldloc 1 (Verse.AI.Job)
L_00f9: ret
DONE

PATCHING RimWorld.JobDriver_Lovin+<MakeNewToils>c__Iterator0 Void <>m__4()


L_0000: Local var #0 RimWorld.Thought_Memory
L_0000: ldsfld RimWorld.ThoughtDef GotSomeLovin
L_0005: call RimWorld.Thought MakeThought(RimWorld.ThoughtDef)
L_000a: castclass RimWorld.Thought_Memory
L_000f: stloc.0
L_0010: ldarg.0
L_0011: ldfld RimWorld.JobDriver_Lovin $this
L_0016: ldfld Verse.Pawn pawn
L_001b: ldfld RimWorld.Pawn_NeedsTracker needs
L_0020: ldfld RimWorld.Need_Mood mood
L_0025: ldfld RimWorld.ThoughtHandler thoughts
L_002a: ldfld RimWorld.MemoryThoughtHandler memories
L_002f: ldloc.0
L_0030: ldarg.0
L_0031: ldfld RimWorld.JobDriver_Lovin $this
L_0036: call Verse.Pawn get_Partner()
L_003b: callvirt Void TryGainMemory(RimWorld.Thought_Memory, Verse.Pawn)
L_0040: ldarg.0
L_0041: ldfld RimWorld.JobDriver_Lovin $this
L_0046: ldfld Verse.Pawn pawn
L_004b: ldfld Verse.AI.Pawn_MindState mindState
L_0050: call Verse.TickManager get_TickManager()
L_0055: callvirt Int32 get_TicksGame()
L_005a: ldarg.0
L_005b: ldfld RimWorld.JobDriver_Lovin $this
L_0060: ldarg.0
L_0061: ldfld RimWorld.JobDriver_Lovin $this
L_0066: ldfld Verse.Pawn pawn
L_006b: call Int32 GenerateRandomMinTicksToNextLovin(Verse.Pawn)
L_0070: add
L_0071: stfld System.Int32 canLovinTick
L_0076: ldarg.0
L_0077: ldfld RimWorld.JobDriver_Lovin $this
L_007c: ldfld Verse.Pawn pawn
L_0081: ldarg.0
L_0082: ldfld RimWorld.JobDriver_Lovin $this
L_0087: call Verse.Pawn get_Partner()
L_008c: call Void TryToImpregnate(Verse.Pawn, Verse.Pawn)
L_0091: br Label #0
L_0096: Label #0
L_0096: ret
DONE

PATCHING RimWorld.JobDriver_Wear+<MakeNewToils>c__Iterator0 Boolean MoveNext()


L_0000: Local var #0 System.UInt32
L_0000: ldarg.0
L_0001: ldfld System.Int32 $PC
L_0006: stloc.0
L_0007: ldarg.0
L_0008: ldc.i4.m1
L_0009: stfld System.Int32 $PC
L_000e: ldloc.0
L_000f: switch Labels #2 #3 #4 #5
L_0024: br Label #6
L_0029: Label #2
L_0029: ldarg.0
L_002a: ldfld RimWorld.JobDriver_Wear $this
L_002f: call RimWorld.JobDriver_Wear FailOnBaby[JobDriver_Wear]
(RimWorld.JobDriver_Wear)
L_0034: pop
L_0035: ldarg.0
L_0036: newobj Void .ctor()
L_003b: stfld Verse.AI.Toil <gotoApparel>__1
L_0040: ldarg.0
L_0041: ldfld Verse.AI.Toil <gotoApparel>__1
L_0046: ldarg.0
L_0047: ldftn Void <>m__0()
L_004d: newobj Void .ctor(Object, IntPtr)
L_0052: stfld System.Action initAction
L_0057: ldarg.0
L_0058: ldfld Verse.AI.Toil <gotoApparel>__1
L_005d: ldc.i4.2
L_005e: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0063: ldarg.0
L_0064: ldfld Verse.AI.Toil <gotoApparel>__1
L_0069: ldc.i4.1
L_006a: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_006f: pop
L_0070: ldarg.0
L_0071: ldarg.0
L_0072: ldfld Verse.AI.Toil <gotoApparel>__1
L_0077: stfld Verse.AI.Toil $current
L_007c: ldarg.0
L_007d: ldfld System.Boolean $disposing
L_0082: brtrue Label #7
L_0087: ldarg.0
L_0088: ldc.i4.1
L_0089: stfld System.Int32 $PC
L_008e: Label #7
L_008e: br Label #8
L_0093: Label #3
L_0093: ldarg.0
L_0094: newobj Void .ctor()
L_0099: stfld Verse.AI.Toil <prepare>__2
L_009e: ldarg.0
L_009f: ldfld Verse.AI.Toil <prepare>__2
L_00a4: ldc.i4.3
L_00a5: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_00aa: ldarg.0
L_00ab: ldfld Verse.AI.Toil <prepare>__2
L_00b0: ldc.i4.s 60
L_00b2: stfld System.Int32 defaultDuration
L_00b7: ldarg.0
L_00b8: ldfld Verse.AI.Toil <prepare>__2
L_00bd: ldc.i4.1
L_00be: ldc.i4.0
L_00bf: ldc.r4 -0.5
L_00c4: call Verse.AI.Toil WithProgressBarToilDelay(Verse.AI.Toil, TargetIndex,
Boolean, Single)
L_00c9: pop
L_00ca: ldarg.0
L_00cb: ldfld Verse.AI.Toil <prepare>__2
L_00d0: ldc.i4.1
L_00d1: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_00d6: pop
L_00d7: ldarg.0
L_00d8: ldarg.0
L_00d9: ldfld Verse.AI.Toil <prepare>__2
L_00de: stfld Verse.AI.Toil $current
L_00e3: ldarg.0
L_00e4: ldfld System.Boolean $disposing
L_00e9: brtrue Label #9
L_00ee: ldarg.0
L_00ef: ldc.i4.2
L_00f0: stfld System.Int32 $PC
L_00f5: Label #9
L_00f5: br Label #10
L_00fa: Label #4
L_00fa: ldarg.0
L_00fb: newobj Void .ctor()
L_0100: stfld Verse.AI.Toil <wear>__3
L_0105: ldarg.0
L_0106: ldfld Verse.AI.Toil <wear>__3
L_010b: ldarg.0
L_010c: ldftn Void <>m__1()
L_0112: newobj Void .ctor(Object, IntPtr)
L_0117: stfld System.Action initAction
L_011c: ldarg.0
L_011d: ldfld Verse.AI.Toil <wear>__3
L_0122: ldc.i4.1
L_0123: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0128: ldarg.0
L_0129: ldarg.0
L_012a: ldfld Verse.AI.Toil <wear>__3
L_012f: stfld Verse.AI.Toil $current
L_0134: ldarg.0
L_0135: ldfld System.Boolean $disposing
L_013a: brtrue Label #11
L_013f: ldarg.0
L_0140: ldc.i4.3
L_0141: stfld System.Int32 $PC
L_0146: Label #11
L_0146: br Label #12
L_014b: Label #5
L_014b: ldarg.0
L_014c: ldc.i4.m1
L_014d: stfld System.Int32 $PC
L_0152: Label #6
L_0152: ldc.i4.0
L_0153: br Label #0
L_0158: Label #8
L_0158: Label #10
L_0158: Label #12
L_0158: ldc.i4.1
L_0159: br Label #0
L_015e: Label #0
L_015e: ret
DONE

PATCHING RimWorld.ThoughtUtility Boolean CanGetThought(Verse.Pawn,


RimWorld.ThoughtDef)
L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Int32
L_0000: Local var #2 System.Boolean
L_0000: Local var #3 System.Int32
L_0000: Local var #4 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 4 (System.Boolean)
L_0007: ldarg.1
L_0008: ldfld System.Boolean validWhileDespawned
L_000d: brtrue Label #2
L_0012: ldarg.0
L_0013: callvirt Boolean get_Spawned()
L_0018: brtrue Label #3
L_001d: ldarg.1
L_001e: callvirt Boolean get_IsMemory()
L_0023: brtrue Label #4
L_0028: ldc.i4.0
L_0029: stloc.0
L_002a: leave Label #5
L_002f: Label #2
L_002f: Label #3
L_002f: Label #4
L_002f: ldarg.1
L_0030: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0035: brfalse Label #6
L_003a: ldc.i4.0
L_003b: stloc.1
L_003c: br Label #7
L_0041: Label #10
L_0041: ldarg.0
L_0042: ldfld RimWorld.Pawn_StoryTracker story
L_0047: ldfld RimWorld.TraitSet traits
L_004c: ldarg.1
L_004d: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0052: ldloc.1
L_0053: callvirt RimWorld.TraitDef get_Item(Int32)
L_0058: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_005d: brfalse Label #8
L_0062: ldc.i4.0
L_0063: stloc.0
L_0064: leave Label #9
L_0069: Label #8
L_0069: ldloc.1
L_006a: ldc.i4.1
L_006b: add
L_006c: stloc.1
L_006d: Label #7
L_006d: ldloc.1
L_006e: ldarg.1
L_006f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0074: callvirt Int32 get_Count()
L_0079: blt Label #10
L_007e: Label #6
L_007e: ldarg.1
L_007f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0084: call Boolean NullOrEmpty[TraitDef](IList`1)
L_0089: brtrue Label #11
L_008e: ldc.i4.0
L_008f: stloc.2
L_0090: ldc.i4.0
L_0091: stloc.3
L_0092: br Label #12
L_0097: Label #19
L_0097: ldarg.0
L_0098: ldfld RimWorld.Pawn_StoryTracker story
L_009d: ldfld RimWorld.TraitSet traits
L_00a2: ldarg.1
L_00a3: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00a8: ldloc.3
L_00a9: callvirt RimWorld.TraitDef get_Item(Int32)
L_00ae: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_00b3: brtrue Label #13
L_00b8: leave Label #14
L_00bd: Label #13
L_00bd: ldarg.1
L_00be: callvirt Boolean get_RequiresSpecificTraitsDegree()
L_00c3: brfalse Label #15
L_00c8: ldarg.1
L_00c9: ldfld System.Int32 requiredTraitsDegree
L_00ce: ldarg.0
L_00cf: ldfld RimWorld.Pawn_StoryTracker story
L_00d4: ldfld RimWorld.TraitSet traits
L_00d9: ldarg.1
L_00da: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00df: ldloc.3
L_00e0: callvirt RimWorld.TraitDef get_Item(Int32)
L_00e5: callvirt Int32 DegreeOfTrait(RimWorld.TraitDef)
L_00ea: beq Label #16
L_00ef: leave Label #17
L_00f4: Label #15
L_00f4: Label #16
L_00f4: ldc.i4.1
L_00f5: stloc.2
L_00f6: leave Label #18
L_00fb: Label #14
L_00fb: Label #17
L_00fb: ldloc.3
L_00fc: ldc.i4.1
L_00fd: add
L_00fe: stloc.3
L_00ff: Label #12
L_00ff: ldloc.3
L_0100: ldarg.1
L_0101: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0106: callvirt Int32 get_Count()
L_010b: blt Label #19
L_0110: Label #18
L_0110: ldloc.2
L_0111: brtrue Label #20
L_0116: ldc.i4.0
L_0117: stloc.0
L_0118: leave Label #21
L_011d: Label #11
L_011d: Label #20
L_011d: ldarg.1
L_011e: ldfld System.Boolean nullifiedIfNotColonist
L_0123: brfalse Label #22
L_0128: ldarg.0
L_0129: callvirt Boolean get_IsColonist()
L_012e: brtrue Label #23
L_0133: ldc.i4.0
L_0134: stloc.0
L_0135: leave Label #24
L_013a: Label #22
L_013a: Label #23
L_013a: ldarg.1
L_013b: ldarg.0
L_013c: call Boolean IsSituationalThoughtNullifiedByHediffs(RimWorld.ThoughtDef,
Verse.Pawn)
L_0141: brfalse Label #25
L_0146: ldc.i4.0
L_0147: stloc.0
L_0148: leave Label #26
L_014d: Label #25
L_014d: ldarg.1
L_014e: ldarg.0
L_014f: call Boolean IsThoughtNullifiedByOwnTales(RimWorld.ThoughtDef, Verse.Pawn)
L_0154: brfalse Label #27
L_0159: ldc.i4.0
L_015a: stloc.0
L_015b: leave Label #28
L_0160: Label #27
L_0160: leave Label #29
L_0165: endfinally
L_0166: Label #29
L_0166: ldc.i4.1
L_0167: br Label #0
L_016c: Label #5
L_016c: Label #9
L_016c: Label #21
L_016c: Label #24
L_016c: Label #26
L_016c: Label #28
L_016c: ldloc.0
L_016d: br Label #0
L_0172: Label #0
L_0172: stloc 4 (System.Boolean)
L_0174: ldarga 0
L_017a: ldarga 1
L_0180: ldloca 4 (System.Boolean)
L_0182: call Void CanGetThought_Patch(Verse.Pawn ByRef, RimWorld.ThoughtDef ByRef,
Boolean ByRef)
L_0187: ldloc 4 (System.Boolean)
L_0189: ret
DONE

PATCHING RimWorld.JobGiver_SocialFighting Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Verb
L_0000: Local var #2 Verse.AI.Job
L_0000: Local var #3 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 3 (Verse.AI.Job)
L_0002: ldarg.1
L_0003: callvirt Verse.RaceProperties get_RaceProps()
L_0008: callvirt Boolean get_Humanlike()
L_000d: brfalse Label #2
L_0012: ldarg.1
L_0013: ldfld RimWorld.Pawn_StoryTracker story
L_0018: ldc.i4.8
L_0019: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_001e: brfalse Label #3
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: Label #3
L_0029: ldarg.1
L_002a: callvirt Verse.AI.MentalState get_MentalState()
L_002f: castclass Verse.AI.MentalState_SocialFighting
L_0034: ldfld Verse.Pawn otherPawn
L_0039: stloc.0
L_003a: ldarg.1
L_003b: ldloca.s 1 (Verse.Verb)
L_003d: call Boolean TryGetRandomVerbForSocialFight(Verse.Pawn, Verse.Verb ByRef)
L_0042: brtrue Label #4
L_0047: ldnull
L_0048: br Label #0
L_004d: Label #4
L_004d: ldsfld Verse.JobDef SocialFight
L_0052: ldloc.0
L_0053: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0058: newobj Void .ctor(JobDef, LocalTargetInfo)
L_005d: stloc.2
L_005e: ldloc.2
L_005f: ldc.i4.1
L_0060: stfld System.Int32 maxNumMeleeAttacks
L_0065: ldloc.2
L_0066: ldloc.1
L_0067: stfld Verse.Verb verbToUse
L_006c: ldloc.2
L_006d: br Label #0
L_0072: Label #0
L_0072: stloc 3 (Verse.AI.Job)
L_0073: ldarga 1
L_0079: ldloca 3 (Verse.AI.Job)
L_007b: call Void TryGiveJob_Postfix(Verse.Pawn ByRef, Verse.AI.Job ByRef)
L_0080: ldloc 3 (Verse.AI.Job)
L_0081: ret
DONE

PATCHING RimWorld.Pawn_ApparelTracker Void ApparelChanged()


L_0000: ldarg.0
L_0001: ldftn Void <ApparelChanged>m__1()
L_0007: newobj Void .ctor(Object, IntPtr)
L_000c: call Void ExecuteWhenFinished(System.Action)
L_0011: br Label #0
L_0016: Label #0
L_0016: ldarga 0
L_001c: call Void ApparelChanged_Postfix(RimWorld.Pawn_ApparelTracker ByRef)
L_0021: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveAllGraphics()


L_0000: Local var #0 Verse.PawnKindLifeStage
L_0000: ldarg.0
L_0001: call Void ClearCache()
L_0006: ldarg.0
L_0007: ldfld Verse.Pawn pawn
L_000c: callvirt Verse.RaceProperties get_RaceProps()
L_0011: callvirt Boolean get_Humanlike()
L_0016: brfalse Label #2
L_001b: ldarg.0
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_StoryTracker story
L_0027: ldfld RimWorld.BodyType bodyType
L_002c: ldsfld UnityEngine.Shader CutoutSkin
L_0031: ldarg.0
L_0032: ldfld Verse.Pawn pawn
L_0037: ldfld RimWorld.Pawn_StoryTracker story
L_003c: callvirt Color get_SkinColor()
L_0041: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_0046: stfld Verse.Graphic nakedGraphic
L_004b: ldarg.0
L_004c: ldarg.0
L_004d: ldfld Verse.Pawn pawn
L_0052: ldfld RimWorld.Pawn_StoryTracker story
L_0057: ldfld RimWorld.BodyType bodyType
L_005c: ldsfld UnityEngine.Shader CutoutSkin
L_0061: ldsfld UnityEngine.Color RottingColor
L_0066: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_006b: stfld Verse.Graphic rottingGraphic
L_0070: ldarg.0
L_0071: ldstr "Things/Pawn/Humanlike/HumanoidDessicated"
L_0076: ldsfld UnityEngine.Shader Cutout
L_007b: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader)
L_0080: stfld Verse.Graphic dessicatedGraphic
L_0085: ldarg.0
L_0086: ldarg.0
L_0087: ldfld Verse.Pawn pawn
L_008c: ldfld RimWorld.Pawn_StoryTracker story
L_0091: callvirt System.String get_HeadGraphicPath()
L_0096: ldarg.0
L_0097: ldfld Verse.Pawn pawn
L_009c: ldfld RimWorld.Pawn_StoryTracker story
L_00a1: callvirt Color get_SkinColor()
L_00a6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00ab: stfld Verse.Graphic headGraphic
L_00b0: ldarg.0
L_00b1: ldarg.0
L_00b2: ldfld Verse.Pawn pawn
L_00b7: ldfld RimWorld.Pawn_StoryTracker story
L_00bc: callvirt System.String get_HeadGraphicPath()
L_00c1: ldsfld UnityEngine.Color RottingColor
L_00c6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00cb: stfld Verse.Graphic desiccatedHeadGraphic
L_00d0: ldarg.0
L_00d1: call Verse.Graphic_Multi GetSkull()
L_00d6: stfld Verse.Graphic skullGraphic
L_00db: ldarg.0
L_00dc: ldarg.0
L_00dd: ldfld Verse.Pawn pawn
L_00e2: ldfld RimWorld.Pawn_StoryTracker story
L_00e7: callvirt Color get_SkinColor()
L_00ec: call Verse.Graphic_Multi GetStump(Color)
L_00f1: stfld Verse.Graphic headStumpGraphic
L_00f6: ldarg.0
L_00f7: ldsfld UnityEngine.Color RottingColor
L_00fc: call Verse.Graphic_Multi GetStump(Color)
L_0101: stfld Verse.Graphic desiccatedHeadStumpGraphic
L_0106: ldarg.0
L_0107: ldarg.0
L_0108: ldfld Verse.Pawn pawn
L_010d: ldfld RimWorld.Pawn_StoryTracker story
L_0112: ldfld RimWorld.HairDef hairDef
L_0117: ldfld System.String texPath
L_011c: ldsfld UnityEngine.Shader Cutout
L_0121: call Vector2 get_one()
L_0126: ldarg.0
L_0127: ldfld Verse.Pawn pawn
L_012c: ldfld RimWorld.Pawn_StoryTracker story
L_0131: ldfld UnityEngine.Color hairColor
L_0136: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_013b: stfld Verse.Graphic hairGraphic
L_0140: ldarg.0
L_0141: call Void ResolveApparelGraphics()
L_0146: br Label #3
L_014b: Label #2
L_014b: ldarg.0
L_014c: ldfld Verse.Pawn pawn
L_0151: ldfld Verse.Pawn_AgeTracker ageTracker
L_0156: callvirt Verse.PawnKindLifeStage get_CurKindLifeStage()
L_015b: stloc.0
L_015c: ldarg.0
L_015d: ldfld Verse.Pawn pawn
L_0162: ldfld Verse.Gender gender
L_0167: ldc.i4.2
L_0168: bne.un Label #4
L_016d: ldloc.0
L_016e: ldfld Verse.GraphicData femaleGraphicData
L_0173: brtrue Label #5
L_0178: Label #4
L_0178: ldarg.0
L_0179: ldloc.0
L_017a: ldfld Verse.GraphicData bodyGraphicData
L_017f: callvirt Verse.Graphic get_Graphic()
L_0184: stfld Verse.Graphic nakedGraphic
L_0189: br Label #6
L_018e: Label #5
L_018e: ldarg.0
L_018f: ldloc.0
L_0190: ldfld Verse.GraphicData femaleGraphicData
L_0195: callvirt Verse.Graphic get_Graphic()
L_019a: stfld Verse.Graphic nakedGraphic
L_019f: Label #6
L_019f: ldarg.0
L_01a0: ldarg.0
L_01a1: ldfld Verse.Graphic nakedGraphic
L_01a6: ldsfld UnityEngine.Shader CutoutSkin
L_01ab: ldsfld UnityEngine.Color RottingColor
L_01b0: ldsfld UnityEngine.Color RottingColor
L_01b5: callvirt Verse.Graphic GetColoredVersion(UnityEngine.Shader, Color, Color)
L_01ba: stfld Verse.Graphic rottingGraphic
L_01bf: ldarg.0
L_01c0: ldfld Verse.Pawn pawn
L_01c5: callvirt Verse.RaceProperties get_RaceProps()
L_01ca: ldfld System.Boolean packAnimal
L_01cf: brfalse Label #7
L_01d4: ldarg.0
L_01d5: ldarg.0
L_01d6: ldfld Verse.Graphic nakedGraphic
L_01db: ldfld System.String path
L_01e0: ldstr "Pack"
L_01e5: call System.String Concat(System.String, System.String)
L_01ea: ldsfld UnityEngine.Shader Cutout
L_01ef: ldarg.0
L_01f0: ldfld Verse.Graphic nakedGraphic
L_01f5: ldfld UnityEngine.Vector2 drawSize
L_01fa: call Color get_white()
L_01ff: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_0204: stfld Verse.Graphic packGraphic
L_0209: Label #7
L_0209: ldloc.0
L_020a: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_020f: brfalse Label #8
L_0214: ldarg.0
L_0215: ldloc.0
L_0216: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_021b: ldarg.0
L_021c: ldfld Verse.Pawn pawn
L_0221: callvirt Verse.Graphic GraphicColoredFor(Verse.Thing)
L_0226: stfld Verse.Graphic dessicatedGraphic
L_022b: Label #3
L_022b: Label #8
L_022b: br Label #0
L_0230: Label #0
L_0230: ldarga 0
L_0236: call Void ResolveAllGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_023b: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveApparelGraphics()


L_0000: Local var #0 RimWorld.Apparel
L_0000: Local var #1 System.Collections.Generic.IEnumerator`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 RimWorld.ApparelGraphicRecord
L_0000: ldarga 0
L_0006: call Void ResolveApparelGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_000b: ldarg.0
L_000c: call Void ClearCache()
L_0011: ldarg.0
L_0012: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0017: callvirt Void Clear()
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_ApparelTracker apparel
L_0027: callvirt IEnumerable`1 get_WornApparelInDrawOrder()
L_002c: callvirt IEnumerator`1 GetEnumerator()
L_0031: stloc.1
L_0032: br Label #2
L_0037: Label #4
L_0037: ldloc.1
L_0038: callvirt RimWorld.Apparel get_Current()
L_003d: stloc.0
L_003e: ldloc.0
L_003f: ldarg.0
L_0040: ldfld Verse.Pawn pawn
L_0045: call BodyType ModifyChildBodyType(Verse.Pawn)
L_004a: ldloca.s 2 (RimWorld.ApparelGraphicRecord)
L_004c: call Boolean TryGetGraphicApparel(RimWorld.Apparel, BodyType,
ApparelGraphicRecord ByRef)
L_0051: brfalse Label #3
L_0056: ldarg.0
L_0057: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_005c: ldloc.2
L_005d: callvirt Void Add(ApparelGraphicRecord)
L_0062: Label #2
L_0062: Label #3
L_0062: ldloc.1
L_0063: callvirt Boolean MoveNext()
L_0068: brtrue Label #4
L_006d: leave Label #5
L_0072: ldloc.1
L_0073: brfalse Label #6
L_0078: ldloc.1
L_0079: callvirt Void Dispose()
L_007e: Label #6
L_007e: endfinally
L_007f: Label #5
L_007f: br Label #0
L_0084: Label #0
L_0084: ret
DONE

PATCHING Verse.PawnRenderer Void RenderPawnInternal(Vector3, Quaternion, Boolean,


Rot4, Rot4, RotDrawMode, Boolean, Boolean)
L_0000: Local var #0 UnityEngine.Mesh
L_0000: Local var #1 UnityEngine.Vector3
L_0000: Local var #2 System.Collections.Generic.List`1[[UnityEngine.Material,
UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #3 System.Int32
L_0000: Local var #4 UnityEngine.Material
L_0000: Local var #5 UnityEngine.Vector3
L_0000: Local var #6 UnityEngine.Vector3
L_0000: Local var #7 UnityEngine.Vector3
L_0000: Local var #8 UnityEngine.Vector3
L_0000: Local var #9 UnityEngine.Material
L_0000: Local var #10 UnityEngine.Mesh
L_0000: Local var #11 UnityEngine.Vector3
L_0000: Local var #12 System.Boolean
L_0000: Local var #13 UnityEngine.Mesh
L_0000: Local var #14
System.Collections.Generic.List`1[[RimWorld.ApparelGraphicRecord, Assembly-CSharp,
Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #15 System.Int32
L_0000: Local var #16 RimWorld.ApparelGraphicRecord
L_0000: Local var #17 RimWorld.ApparelGraphicRecord
L_0000: Local var #18 UnityEngine.Material
L_0000: Local var #19 RimWorld.ApparelGraphicRecord
L_0000: Local var #20 UnityEngine.Material
L_0000: Local var #21 RimWorld.ApparelGraphicRecord
L_0000: Local var #22 UnityEngine.Vector3
L_0000: Local var #23 UnityEngine.Mesh
L_0000: Local var #24 UnityEngine.Material
L_0000: Local var #25 System.Int32
L_0000: Local var #26 RimWorld.ApparelGraphicRecord
L_0000: Local var #27 UnityEngine.Material
L_0000: Local var #28 System.Collections.Generic.List`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #29 System.Int32
L_0000: Local var #30 UnityEngine.Vector3
L_0000: ldarg.0
L_0001: ldfld Verse.PawnGraphicSet graphics
L_0006: callvirt Boolean get_AllResolved()
L_000b: brtrue Label #2
L_0010: ldarg.0
L_0011: ldfld Verse.PawnGraphicSet graphics
L_0016: callvirt Void ResolveAllGraphics()
L_001b: Label #2
L_001b: ldnull
L_001c: stloc.0
L_001d: ldarg.0
L_001e: ldfld Verse.Pawn pawn
L_0023: ldfld Verse.Pawn_AgeTracker ageTracker
L_0028: call Int32 get_CurLifeStageIndex()
L_002d: ldc.i4.2
L_002e: blt Label #43
L_0033: ldarg.3
L_0034: brfalse Label #3
L_0039: Label #43
L_0039: ldarg.1
L_003a: ldarg.0
L_003b: ldfld Verse.Pawn pawn
L_0040: ldarg.s 7
L_0045: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_004a: stloc.1
L_004b: ldloca.s 1 (UnityEngine.Vector3)
L_004d: dup
L_004e: ldfld System.Single y
L_0053: ldc.r4 0.0078125
L_0058: add
L_0059: stfld System.Single y
L_005e: ldarg.s 6
L_0060: ldc.i4.2
L_0061: bne.un Label #4
L_0066: ldarg.0
L_0067: ldfld Verse.Pawn pawn
L_006c: callvirt Verse.RaceProperties get_RaceProps()
L_0071: callvirt Boolean get_Humanlike()
L_0076: brtrue Label #5
L_007b: ldarg.0
L_007c: ldfld Verse.PawnGraphicSet graphics
L_0081: ldfld Verse.Graphic dessicatedGraphic
L_0086: brfalse Label #6
L_008b: ldarg.s 7
L_008d: brtrue Label #7
L_0092: ldarg.0
L_0093: ldfld Verse.PawnGraphicSet graphics
L_0098: ldfld Verse.Graphic dessicatedGraphic
L_009d: ldloc.1
L_009e: ldarg.s 4
L_00a0: ldarg.0
L_00a1: ldfld Verse.Pawn pawn
L_00a6: ldc.r4 0
L_00ab: callvirt Void Draw(Vector3, Rot4, Verse.Thing, Single)
L_00b0: br Label #8
L_00b5: Label #4
L_00b5: Label #5
L_00b5: Label #6
L_00b5: Label #7
L_00b5: ldarg.0
L_00b6: ldfld Verse.Pawn pawn
L_00bb: callvirt Verse.RaceProperties get_RaceProps()
L_00c0: callvirt Boolean get_Humanlike()
L_00c5: brfalse Label #9
L_00ca: ldsfld Verse.GraphicMeshSet humanlikeBodySet
L_00cf: ldarg.s 4
L_00d1: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00d6: stloc.0
L_00d7: br Label #10
L_00dc: Label #9
L_00dc: ldarg.0
L_00dd: ldfld Verse.PawnGraphicSet graphics
L_00e2: ldfld Verse.Graphic nakedGraphic
L_00e7: ldarg.s 4
L_00e9: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00ee: stloc.0
L_00ef: Label #10
L_00ef: ldarg.0
L_00f0: ldfld Verse.PawnGraphicSet graphics
L_00f5: ldarg.s 4
L_00f7: ldarg.s 6
L_00f9: callvirt System.Collections.Generic.List`1[UnityEngine.Material]
MatsBodyBaseAt(Rot4, RotDrawMode)
L_00fe: stloc.2
L_00ff: ldc.i4.0
L_0100: stloc.3
L_0101: br Label #11
L_0106: Label #12
L_0106: ldarg.0
L_0107: ldfld Verse.PawnGraphicSet graphics
L_010c: ldfld Verse.DamageFlasher flasher
L_0111: ldloc.2
L_0112: ldloc.3
L_0113: callvirt UnityEngine.Material get_Item(Int32)
L_0118: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_011d: stloc.s 4 (UnityEngine.Material)
L_011f: ldloc.s 4
L_0124: ldarg.0
L_0125: ldfld Verse.Pawn pawn
L_012a: ldarg.s 4
L_012f: call UnityEngine.Material ModifyClothingForChild(UnityEngine.Material,
Verse.Pawn, Rot4)
L_0134: stloc.s 4
L_0139: ldloc.0
L_013a: ldloc.1
L_013b: ldarg.2
L_013c: ldloc.s 4 (UnityEngine.Material)
L_013e: ldarg.s 7
L_0140: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_0145: ldloca.s 1 (UnityEngine.Vector3)
L_0147: dup
L_0148: ldfld System.Single y
L_014d: ldloc.s 18
L_0152: ldarg.0
L_0153: ldfld Verse.Pawn pawn
L_0158: call UnityEngine.Material ModifyHatForChild(UnityEngine.Material,
Verse.Pawn)
L_015d: stloc.s 18
L_0162: ldc.r4 0.00390625
L_0167: add
L_0168: stfld System.Single y
L_016d: ldloc.3
L_016e: ldc.i4.1
L_016f: add
L_0170: stloc.3
L_0171: Label #11
L_0171: ldloc.3
L_0172: ldloc.2
L_0173: callvirt Int32 get_Count()
L_0178: blt Label #12
L_017d: ldarg.s 6
L_017f: brtrue Label #13
L_0184: ldarg.1
L_0185: ldarg.0
L_0186: ldfld Verse.Pawn pawn
L_018b: ldarg.s 7
L_0190: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0195: stloc.s 5 (UnityEngine.Vector3)
L_0197: ldloca.s 5 (UnityEngine.Vector3)
L_0199: dup
L_019a: ldfld System.Single y
L_019f: ldc.r4 0.01953125
L_01a4: add
L_01a5: stfld System.Single y
L_01aa: ldarg.0
L_01ab: ldfld RimWorld.PawnWoundDrawer woundOverlays
L_01b0: ldloc.s 5 (UnityEngine.Vector3)
L_01b2: ldloc.0
L_01b3: ldarg.2
L_01b4: ldarg.s 7
L_01b6: callvirt Void RenderOverBody(Vector3, UnityEngine.Mesh, Quaternion,
Boolean)
L_01bb: Label #3
L_01bb: Label #8
L_01bb: Label #13
L_01bb: ldarg.1
L_01bc: ldarg.0
L_01bd: ldfld Verse.Pawn pawn
L_01c2: ldarg.s 7
L_01c7: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01cc: stloc.s 6 (UnityEngine.Vector3)
L_01ce: ldarg.1
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldarg.s 7
L_01da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01df: stloc.s 7 (UnityEngine.Vector3)
L_01e1: ldarg.s 4
L_01e3: call Rot4 get_North()
L_01e8: call Boolean op_Inequality(Rot4, Rot4)
L_01ed: brfalse Label #14
L_01f2: ldloca.s 7 (UnityEngine.Vector3)
L_01f4: dup
L_01f5: ldfld System.Single y
L_01fa: ldc.r4 0.02734375
L_01ff: add
L_0200: stfld System.Single y
L_0205: ldloca.s 6 (UnityEngine.Vector3)
L_0207: dup
L_0208: ldfld System.Single y
L_020d: ldc.r4 0.0234375
L_0212: add
L_0213: stfld System.Single y
L_0218: br Label #15
L_021d: Label #14
L_021d: ldloca.s 7 (UnityEngine.Vector3)
L_021f: dup
L_0220: ldfld System.Single y
L_0225: ldc.r4 0.0234375
L_022a: add
L_022b: stfld System.Single y
L_0230: ldloca.s 6 (UnityEngine.Vector3)
L_0232: dup
L_0233: ldfld System.Single y
L_0238: ldc.r4 0.02734375
L_023d: add
L_023e: stfld System.Single y
L_0243: Label #15
L_0243: ldarg.0
L_0244: ldfld Verse.PawnGraphicSet graphics
L_0249: ldfld Verse.Graphic headGraphic
L_024e: brfalse Label #16
L_0253: ldarg.0
L_0254: ldfld Verse.Pawn pawn
L_0259: call Boolean RaceUsesChildren(Verse.Pawn)
L_025e: brfalse Label #44
L_0263: ldarg.0
L_0264: ldfld Verse.Pawn pawn
L_0269: call Boolean EnsurePawnIsChildOrOlder(Verse.Pawn)
L_026e: brfalse Label #16
L_0273: Label #44
L_0273: nop
L_0274: ldarg.2
L_0275: ldarg.0
L_0276: ldarg.s 5
L_0278: call Vector3 BaseHeadOffsetAt(Rot4)
L_027d: call Vector3 op_Multiply(Quaternion, Vector3)
L_0282: stloc.s 8 (UnityEngine.Vector3)
L_0284: ldarg.0
L_0285: ldfld Verse.PawnGraphicSet graphics
L_028a: ldarg.s 5
L_028c: ldarg.s 6
L_028e: ldarg.s 8
L_0290: callvirt UnityEngine.Material HeadMatAt(Rot4, RotDrawMode, Boolean)
L_0295: stloc.s 9 (UnityEngine.Material)
L_0297: ldloc.s 9 (UnityEngine.Material)
L_0299: ldnull
L_029a: call Boolean op_Inequality(UnityEngine.Object, UnityEngine.Object)
L_029f: brfalse Label #17
L_02a4: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_02a9: ldarg.s 5
L_02ab: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_02b0: stloc.s 10 (UnityEngine.Mesh)
L_02b2: ldloc.s 10 (UnityEngine.Mesh)
L_02b4: ldloc.s 7 (UnityEngine.Vector3)
L_02b6: ldloc.s 8 (UnityEngine.Vector3)
L_02b8: call Vector3 op_Addition(Vector3, Vector3)
L_02bd: ldarg.2
L_02be: ldloc.s 9 (UnityEngine.Material)
L_02c0: ldarg.s 7
L_02c2: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_02c7: Label #17
L_02c7: ldarg.1
L_02c8: ldloc.s 8 (UnityEngine.Vector3)
L_02ca: call Vector3 op_Addition(Vector3, Vector3)
L_02cf: ldarg.0
L_02d0: ldfld Verse.Pawn pawn
L_02d5: ldarg.s 7
L_02da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_02df: stloc.s 11 (UnityEngine.Vector3)
L_02e1: ldloca.s 11 (UnityEngine.Vector3)
L_02e3: dup
L_02e4: ldfld System.Single y
L_02e9: ldc.r4 0.03125
L_02ee: add
L_02ef: stfld System.Single y
L_02f4: ldc.i4.0
L_02f5: stloc.s 12 (System.Boolean)
L_02f7: ldarg.s 7
L_02f9: brfalse Label #18
L_02fe: call Boolean get_HatsOnlyOnMap()
L_0303: brtrue Label #19
L_0308: Label #18
L_0308: ldarg.0
L_0309: ldfld Verse.PawnGraphicSet graphics
L_030e: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_0313: ldarg.s 5
L_0315: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_031a: stloc.s 13 (UnityEngine.Mesh)
L_031c: ldarg.0
L_031d: ldfld Verse.PawnGraphicSet graphics
L_0322: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0327: stloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0329: ldc.i4.0
L_032a: stloc.s 15 (System.Int32)
L_032c: br Label #20
L_0331: Label #26
L_0331: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0333: ldloc.s 15 (System.Int32)
L_0335: callvirt ApparelGraphicRecord get_Item(Int32)
L_033a: stloc.s 16 (RimWorld.ApparelGraphicRecord)
L_033c: ldloca.s 16 (RimWorld.ApparelGraphicRecord)
L_033e: ldfld RimWorld.Apparel sourceApparel
L_0343: ldfld Verse.ThingDef def
L_0348: ldfld RimWorld.ApparelProperties apparel
L_034d: callvirt ApparelLayer get_LastLayer()
L_0352: ldc.i4.4
L_0353: bne.un Label #21
L_0358: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_035a: ldloc.s 15 (System.Int32)
L_035c: callvirt ApparelGraphicRecord get_Item(Int32)
L_0361: stloc.s 17 (RimWorld.ApparelGraphicRecord)
L_0363: ldloca.s 17 (RimWorld.ApparelGraphicRecord)
L_0365: ldfld RimWorld.Apparel sourceApparel
L_036a: ldfld Verse.ThingDef def
L_036f: ldfld RimWorld.ApparelProperties apparel
L_0374: ldfld System.Boolean hatRenderedFrontOfFace
L_0379: brtrue Label #22
L_037e: ldc.i4.1
L_037f: stloc.s 12 (System.Boolean)
L_0381: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0383: ldloc.s 15 (System.Int32)
L_0385: callvirt ApparelGraphicRecord get_Item(Int32)
L_038a: stloc.s 19 (RimWorld.ApparelGraphicRecord)
L_038c: ldloca.s 19 (RimWorld.ApparelGraphicRecord)
L_038e: ldfld Verse.Graphic graphic
L_0393: ldarg.s 4
L_0395: ldnull
L_0396: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_039b: stloc.s 18 (UnityEngine.Material)
L_039d: ldarg.0
L_039e: ldfld Verse.PawnGraphicSet graphics
L_03a3: ldfld Verse.DamageFlasher flasher
L_03a8: ldloc.s 18 (UnityEngine.Material)
L_03aa: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03af: stloc.s 18 (UnityEngine.Material)
L_03b1: ldloc.s 13 (UnityEngine.Mesh)
L_03b3: ldloc.s 11 (UnityEngine.Vector3)
L_03b5: ldarg.2
L_03b6: ldloc.s 18 (UnityEngine.Material)
L_03b8: ldarg.s 7
L_03ba: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_03bf: br Label #23
L_03c4: Label #22
L_03c4: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_03c6: ldloc.s 15 (System.Int32)
L_03c8: callvirt ApparelGraphicRecord get_Item(Int32)
L_03cd: stloc.s 21 (RimWorld.ApparelGraphicRecord)
L_03cf: ldloca.s 21 (RimWorld.ApparelGraphicRecord)
L_03d1: ldfld Verse.Graphic graphic
L_03d6: ldarg.s 4
L_03d8: ldnull
L_03d9: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_03de: stloc.s 20 (UnityEngine.Material)
L_03e0: ldarg.0
L_03e1: ldfld Verse.PawnGraphicSet graphics
L_03e6: ldfld Verse.DamageFlasher flasher
L_03eb: ldloc.s 20 (UnityEngine.Material)
L_03ed: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03f2: stloc.s 20 (UnityEngine.Material)
L_03f4: ldarg.1
L_03f5: ldloc.s 8 (UnityEngine.Vector3)
L_03f7: call Vector3 op_Addition(Vector3, Vector3)
L_03fc: stloc.s 22 (UnityEngine.Vector3)
L_03fe: ldloca.s 22 (UnityEngine.Vector3)
L_0400: dup
L_0401: ldfld System.Single y
L_0406: ldarg.s 4
L_0408: call Rot4 get_North()
L_040d: call Boolean op_Equality(Rot4, Rot4)
L_0412: brfalse Label #24
L_0417: ldc.r4 0.00390625
L_041c: br Label #25
L_0421: Label #24
L_0421: ldc.r4 0.03515625
L_0426: Label #25
L_0426: add
L_0427: stfld System.Single y
L_042c: ldloc.s 13 (UnityEngine.Mesh)
L_042e: ldloc.s 22 (UnityEngine.Vector3)
L_0430: ldarg.2
L_0431: ldloc.s 20 (UnityEngine.Material)
L_0433: ldarg.s 7
L_0435: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_043a: Label #21
L_043a: Label #23
L_043a: ldloc.s 15 (System.Int32)
L_043c: ldc.i4.1
L_043d: add
L_043e: stloc.s 15 (System.Int32)
L_0440: Label #20
L_0440: ldloc.s 15 (System.Int32)
L_0442: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0444: callvirt Int32 get_Count()
L_0449: blt Label #26
L_044e: Label #19
L_044e: ldloc.s 12 (System.Boolean)
L_0450: brtrue Label #27
L_0455: ldarg.s 6
L_0457: ldc.i4.2
L_0458: beq Label #28
L_045d: ldarg.s 8
L_045f: brtrue Label #29
L_0464: ldarg.0
L_0465: ldfld Verse.PawnGraphicSet graphics
L_046a: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_046f: ldarg.s 5
L_0471: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0476: stloc.s 23 (UnityEngine.Mesh)
L_0478: ldarg.0
L_0479: ldfld Verse.PawnGraphicSet graphics
L_047e: ldarg.s 5
L_0480: callvirt UnityEngine.Material HairMatAt(Rot4)
L_0485: stloc.s 24 (UnityEngine.Material)
L_0487: ldloc.s 24
L_048c: ldarg.0
L_048d: ldfld Verse.Pawn pawn
L_0492: call UnityEngine.Material ModifyHairForChild(UnityEngine.Material,
Verse.Pawn)
L_0497: stloc.s 24
L_049c: ldloc.s 23 (UnityEngine.Mesh)
L_049e: ldloc.s 11 (UnityEngine.Vector3)
L_04a0: ldarg.2
L_04a1: ldloc.s 24 (UnityEngine.Material)
L_04a3: ldarg.s 7
L_04a5: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_04aa: Label #16
L_04aa: Label #27
L_04aa: Label #28
L_04aa: Label #29
L_04aa: ldarg.3
L_04ab: brfalse Label #30
L_04b0: ldc.i4.0
L_04b1: stloc.s 25 (System.Int32)
L_04b3: br Label #31
L_04b8: Label #33
L_04b8: ldarg.0
L_04b9: ldfld Verse.PawnGraphicSet graphics
L_04be: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_04c3: ldloc.s 25 (System.Int32)
L_04c5: callvirt ApparelGraphicRecord get_Item(Int32)
L_04ca: stloc.s 26 (RimWorld.ApparelGraphicRecord)
L_04cc: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ce: ldfld RimWorld.Apparel sourceApparel
L_04d3: ldfld Verse.ThingDef def
L_04d8: ldfld RimWorld.ApparelProperties apparel
L_04dd: callvirt ApparelLayer get_LastLayer()
L_04e2: ldc.i4.2
L_04e3: bne.un Label #32
L_04e8: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ea: ldfld Verse.Graphic graphic
L_04ef: ldarg.s 4
L_04f1: ldnull
L_04f2: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_04f7: stloc.s 27 (UnityEngine.Material)
L_04f9: ldarg.0
L_04fa: ldfld Verse.PawnGraphicSet graphics
L_04ff: ldfld Verse.DamageFlasher flasher
L_0504: ldloc.s 27 (UnityEngine.Material)
L_0506: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_050b: stloc.s 27 (UnityEngine.Material)
L_050d: ldloc.0
L_050e: ldloc.s 6 (UnityEngine.Vector3)
L_0510: ldarg.2
L_0511: ldloc.s 27 (UnityEngine.Material)
L_0513: ldarg.s 7
L_0515: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_051a: Label #32
L_051a: ldloc.s 25 (System.Int32)
L_051c: ldc.i4.1
L_051d: add
L_051e: stloc.s 25 (System.Int32)
L_0520: Label #31
L_0520: ldloc.s 25 (System.Int32)
L_0522: ldarg.0
L_0523: ldfld Verse.PawnGraphicSet graphics
L_0528: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_052d: callvirt Int32 get_Count()
L_0532: blt Label #33
L_0537: Label #30
L_0537: ldarg.s 7
L_0539: brtrue Label #34
L_053e: ldarg.0
L_053f: ldfld Verse.Pawn pawn
L_0544: callvirt Verse.RaceProperties get_RaceProps()
L_0549: callvirt Boolean get_Animal()
L_054e: brfalse Label #35
L_0553: ldarg.0
L_0554: ldfld Verse.Pawn pawn
L_0559: ldfld Verse.Pawn_InventoryTracker inventory
L_055e: brfalse Label #36
L_0563: ldarg.0
L_0564: ldfld Verse.Pawn pawn
L_0569: ldfld Verse.Pawn_InventoryTracker inventory
L_056e: ldfld Verse.ThingOwner`1[Verse.Thing] innerContainer
L_0573: callvirt Int32 get_Count()
L_0578: ldc.i4.0
L_0579: ble Label #37
L_057e: ldarg.0
L_057f: ldfld Verse.PawnGraphicSet graphics
L_0584: ldfld Verse.Graphic packGraphic
L_0589: brfalse Label #38
L_058e: ldloc.0
L_058f: ldloc.s 6 (UnityEngine.Vector3)
L_0591: ldarg.2
L_0592: ldarg.0
L_0593: ldfld Verse.PawnGraphicSet graphics
L_0598: ldfld Verse.Graphic packGraphic
L_059d: ldarg.s 4
L_059f: ldnull
L_05a0: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_05a5: ldc.i4.0
L_05a6: call Void DrawMesh(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Int32)
L_05ab: Label #34
L_05ab: Label #35
L_05ab: Label #36
L_05ab: Label #37
L_05ab: Label #38
L_05ab: ldarg.s 7
L_05ad: brtrue Label #39
L_05b2: ldarg.0
L_05b3: ldarg.1
L_05b4: call Void DrawEquipment(Vector3)
L_05b9: ldarg.0
L_05ba: ldfld Verse.Pawn pawn
L_05bf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05c4: brfalse Label #40
L_05c9: ldarg.0
L_05ca: ldfld Verse.Pawn pawn
L_05cf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05d4: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_05d9: stloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05db: ldc.i4.0
L_05dc: stloc.s 29 (System.Int32)
L_05de: br Label #41
L_05e3: Label #42
L_05e3: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05e5: ldloc.s 29 (System.Int32)
L_05e7: callvirt RimWorld.Apparel get_Item(Int32)
L_05ec: callvirt Void DrawWornExtras()
L_05f1: ldloc.s 29 (System.Int32)
L_05f3: ldc.i4.1
L_05f4: add
L_05f5: stloc.s 29 (System.Int32)
L_05f7: Label #41
L_05f7: ldloc.s 29 (System.Int32)
L_05f9: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05fb: callvirt Int32 get_Count()
L_0600: blt Label #42
L_0605: Label #40
L_0605: ldarg.1
L_0606: ldarg.0
L_0607: ldfld Verse.Pawn pawn
L_060c: ldarg.s 7
L_0611: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0616: stloc.s 30 (UnityEngine.Vector3)
L_0618: ldloca.s 30 (UnityEngine.Vector3)
L_061a: dup
L_061b: ldfld System.Single y
L_0620: ldc.r4 0.04296875
L_0625: add
L_0626: stfld System.Single y
L_062b: ldarg.0
L_062c: ldfld Verse.PawnHeadOverlays statusOverlays
L_0631: ldloc.s 30 (UnityEngine.Vector3)
L_0633: ldarg.2
L_0634: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_0639: ldarg.s 5
L_063b: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0640: callvirt Void RenderStatusOverlays(Vector3, Quaternion, UnityEngine.Mesh)
L_0645: Label #39
L_0645: br Label #0
L_064a: Label #0
L_064a: ret
DONE

PATCHING Verse.PawnGenerator Verse.Pawn GeneratePawn(PawnGenerationRequest)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Pawn
L_0000: ldnull
L_0001: stloc 1 (Verse.Pawn)
L_0002: ldarg.0
L_0003: call Verse.Pawn GeneratePawnInternal(PawnGenerationRequest)
L_0008: stloc.0
L_0009: leave Label #2
L_000e: endfinally
L_000f: Label #2
L_000f: ldloc.0
L_0010: br Label #0
L_0015: Label #0
L_0015: stloc 1 (Verse.Pawn)
L_0016: ldarga 0
L_001c: ldloca 1 (Verse.Pawn)
L_001e: call Void _GeneratePawn(PawnGenerationRequest ByRef, Verse.Pawn ByRef)
L_0023: ldloc 1 (Verse.Pawn)
L_0024: ret
DONE

PATCHING RimWorld.JobGiver_OptimizeApparel Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 RimWorld.Outfit
L_0000: Local var #1 System.Collections.Generic.List`1[[RimWorld.Apparel, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 System.Int32
L_0000: Local var #3 Verse.AI.Job
L_0000: Local var #4 Verse.Thing
L_0000: Local var #5 System.Single
L_0000: Local var #6 System.Collections.Generic.List`1[[Verse.Thing, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #7 System.Int32
L_0000: Local var #8 RimWorld.Apparel
L_0000: Local var #9 RimWorld.SlotGroup
L_0000: Local var #10 System.Single
L_0000: Local var #11 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 11 (Verse.AI.Job)
L_0003: ldarg.1
L_0004: ldfld RimWorld.Pawn_OutfitTracker outfits
L_0009: brtrue Label #2
L_000e: ldarg.1
L_000f: ldstr " tried to run JobGiver_OptimizeApparel without an OutfitTracker"
L_0014: call System.String Concat(System.Object, System.Object)
L_0019: ldc.i4 5643897
L_001e: call Void ErrorOnce(System.String, Int32)
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: ldarg.1
L_002a: callvirt RimWorld.Faction get_Faction()
L_002f: call RimWorld.Faction get_OfPlayer()
L_0034: beq Label #3
L_0039: ldstr "Non-colonist "
L_003e: ldarg.1
L_003f: ldstr " tried to optimize apparel."
L_0044: call System.String Concat(System.Object, System.Object, System.Object)
L_0049: ldc.i4 764323
L_004e: call Void ErrorOnce(System.String, Int32)
L_0053: ldnull
L_0054: br Label #0
L_0059: Label #3
L_0059: ldsfld System.Boolean debugApparelOptimize
L_005e: brtrue Label #4
L_0063: call Verse.TickManager get_TickManager()
L_0068: callvirt Int32 get_TicksGame()
L_006d: ldarg.1
L_006e: ldfld Verse.AI.Pawn_MindState mindState
L_0073: ldfld System.Int32 nextApparelOptimizeTick
L_0078: bge Label #5
L_007d: ldnull
L_007e: br Label #0
L_0083: Label #5
L_0083: br Label #6
L_0088: Label #4
L_0088: newobj Void .ctor()
L_008d: stsfld System.Text.StringBuilder debugSb
L_0092: ldsfld System.Text.StringBuilder debugSb
L_0097: ldc.i4.4
L_0098: newarr System.Object
L_009d: dup
L_009e: ldc.i4.0
L_009f: ldstr "Scanning for "
L_00a4: stelem.ref
L_00a5: dup
L_00a6: ldc.i4.1
L_00a7: ldarg.1
L_00a8: stelem.ref
L_00a9: dup
L_00aa: ldc.i4.2
L_00ab: ldstr " at "
L_00b0: stelem.ref
L_00b1: dup
L_00b2: ldc.i4.3
L_00b3: ldarg.1
L_00b4: callvirt IntVec3 get_Position()
L_00b9: box Verse.IntVec3
L_00be: stelem.ref
L_00bf: call System.String Concat(System.Object[])
L_00c4: callvirt System.Text.StringBuilder AppendLine(System.String)
L_00c9: pop
L_00ca: Label #6
L_00ca: ldarg.1
L_00cb: ldfld RimWorld.Pawn_OutfitTracker outfits
L_00d0: callvirt RimWorld.Outfit get_CurrentOutfit()
L_00d5: stloc.0
L_00d6: ldarg.1
L_00d7: ldfld RimWorld.Pawn_ApparelTracker apparel
L_00dc: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_00e1: stloc.1
L_00e2: ldloc.1
L_00e3: callvirt Int32 get_Count()
L_00e8: ldc.i4.1
L_00e9: sub
L_00ea: stloc.2
L_00eb: br Label #7
L_00f0: Label #10
L_00f0: ldloc.0
L_00f1: ldfld Verse.ThingFilter filter
L_00f6: ldloc.1
L_00f7: ldloc.2
L_00f8: callvirt RimWorld.Apparel get_Item(Int32)
L_00fd: callvirt Boolean Allows(Verse.Thing)
L_0102: brtrue Label #8
L_0107: ldarg.1
L_0108: ldfld RimWorld.Pawn_OutfitTracker outfits
L_010d: ldfld RimWorld.OutfitForcedHandler forcedHandler
L_0112: ldloc.1
L_0113: ldloc.2
L_0114: callvirt RimWorld.Apparel get_Item(Int32)
L_0119: callvirt Boolean AllowedToAutomaticallyDrop(RimWorld.Apparel)
L_011e: brfalse Label #9
L_0123: ldsfld Verse.JobDef RemoveApparel
L_0128: ldloc.1
L_0129: ldloc.2
L_012a: callvirt RimWorld.Apparel get_Item(Int32)
L_012f: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0134: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0139: stloc.3
L_013a: ldloc.3
L_013b: ldc.i4.1
L_013c: stfld System.Boolean haulDroppedApparel
L_0141: ldloc.3
L_0142: br Label #0
L_0147: Label #8
L_0147: Label #9
L_0147: ldloc.2
L_0148: ldc.i4.1
L_0149: sub
L_014a: stloc.2
L_014b: Label #7
L_014b: ldloc.2
L_014c: ldc.i4.0
L_014d: bge Label #10
L_0152: ldnull
L_0153: stloc.s 4 (Verse.Thing)
L_0155: ldc.r4 0
L_015a: stloc.s 5 (System.Single)
L_015c: ldarg.1
L_015d: callvirt Verse.Map get_Map()
L_0162: ldfld Verse.ListerThings listerThings
L_0167: ldc.i4.s 26
L_0169: callvirt System.Collections.Generic.List`1[Verse.Thing]
ThingsInGroup(ThingRequestGroup)
L_016e: stloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0170: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0172: callvirt Int32 get_Count()
L_0177: brtrue Label #11
L_017c: ldarg.0
L_017d: ldarg.1
L_017e: call Void SetNextOptimizeTick(Verse.Pawn)
L_0183: ldnull
L_0184: br Label #0
L_0189: Label #11
L_0189: ldarg.1
L_018a: ldarg.1
L_018b: callvirt Verse.Map get_Map()
L_0190: callvirt Int32 get_Tile()
L_0195: ldarg.1
L_0196: call Twelfth Twelfth(Verse.Thing)
L_019b: call NeededWarmth CalculateNeededWarmth(Verse.Pawn, Int32, Twelfth)
L_01a0: stsfld RimWorld.NeededWarmth neededWarmth
L_01a5: ldc.i4.0
L_01a6: stloc.s 7 (System.Int32)
L_01a8: br Label #12
L_01ad: Label #27
L_01ad: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_01af: ldloc.s 7 (System.Int32)
L_01b1: callvirt Verse.Thing get_Item(Int32)
L_01b6: castclass RimWorld.Apparel
L_01bb: stloc.s 8 (RimWorld.Apparel)
L_01bd: ldloc.0
L_01be: ldfld Verse.ThingFilter filter
L_01c3: ldloc.s 8 (RimWorld.Apparel)
L_01c5: callvirt Boolean Allows(Verse.Thing)
L_01ca: brtrue Label #13
L_01cf: br Label #14
L_01d4: Label #13
L_01d4: ldloc.s 8 (RimWorld.Apparel)
L_01d6: callvirt Verse.Map get_Map()
L_01db: ldfld RimWorld.SlotGroupManager slotGroupManager
L_01e0: ldloc.s 8 (RimWorld.Apparel)
L_01e2: callvirt IntVec3 get_Position()
L_01e7: callvirt RimWorld.SlotGroup SlotGroupAt(IntVec3)
L_01ec: stloc.s 9 (RimWorld.SlotGroup)
L_01ee: ldloc.s 9 (RimWorld.SlotGroup)
L_01f0: brtrue Label #15
L_01f5: br Label #16
L_01fa: Label #15
L_01fa: ldloc.s 8 (RimWorld.Apparel)
L_01fc: ldarg.1
L_01fd: call Boolean IsForbidden(Verse.Thing, Verse.Pawn)
L_0202: brfalse Label #17
L_0207: br Label #18
L_020c: Label #17
L_020c: ldarg.1
L_020d: ldloc.s 8 (RimWorld.Apparel)
L_020f: call Single ApparelScoreGain(Verse.Pawn, RimWorld.Apparel)
L_0214: stloc.s 10 (System.Single)
L_0216: ldsfld System.Boolean debugApparelOptimize
L_021b: brfalse Label #19
L_0220: ldsfld System.Text.StringBuilder debugSb
L_0225: ldloc.s 8 (RimWorld.Apparel)
L_0227: callvirt System.String get_LabelCap()
L_022c: ldstr ": "
L_0231: ldloca.s 10 (System.Single)
L_0233: ldstr "F2"
L_0238: call System.String ToString(System.String)
L_023d: call System.String Concat(System.String, System.String, System.String)
L_0242: callvirt System.Text.StringBuilder AppendLine(System.String)
L_0247: pop
L_0248: Label #19
L_0248: ldloc.s 10 (System.Single)
L_024a: ldc.r4 0.05
L_024f: blt Label #20
L_0254: ldloc.s 10 (System.Single)
L_0256: ldloc.s 5 (System.Single)
L_0258: bge.un Label #21
L_025d: Label #20
L_025d: br Label #22
L_0262: Label #21
L_0262: ldarg.1
L_0263: ldloc.s 8 (RimWorld.Apparel)
L_0265: ldfld Verse.ThingDef def
L_026a: call Boolean HasPartsToWear(Verse.Pawn, Verse.ThingDef)
L_026f: brtrue Label #23
L_0274: br Label #24
L_0279: Label #23
L_0279: ldarg.1
L_027a: ldloc.s 8 (RimWorld.Apparel)
L_027c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0281: ldc.i4.1
L_0282: ldarg.1
L_0283: call Danger NormalMaxDanger(Verse.Pawn)
L_0288: ldc.i4.1
L_0289: ldc.i4.m1
L_028a: ldnull
L_028b: ldc.i4.0
L_028c: call Boolean CanReserveAndReach(Verse.Pawn, LocalTargetInfo, PathEndMode,
Danger, Int32, Int32, Verse.ReservationLayerDef, Boolean)
L_0291: brtrue Label #25
L_0296: br Label #26
L_029b: Label #25
L_029b: ldloc.s 8 (RimWorld.Apparel)
L_029d: stloc.s 4 (Verse.Thing)
L_029f: ldloc.s 10 (System.Single)
L_02a1: stloc.s 5 (System.Single)
L_02a3: Label #14
L_02a3: Label #16
L_02a3: Label #18
L_02a3: Label #22
L_02a3: Label #24
L_02a3: Label #26
L_02a3: ldloc.s 7 (System.Int32)
L_02a5: ldc.i4.1
L_02a6: add
L_02a7: stloc.s 7 (System.Int32)
L_02a9: Label #12
L_02a9: ldloc.s 7 (System.Int32)
L_02ab: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_02ad: callvirt Int32 get_Count()
L_02b2: blt Label #27
L_02b7: ldsfld System.Boolean debugApparelOptimize
L_02bc: brfalse Label #28
L_02c1: ldsfld System.Text.StringBuilder debugSb
L_02c6: ldstr "BEST: "
L_02cb: ldloc.s 4 (Verse.Thing)
L_02cd: call System.String Concat(System.Object, System.Object)
L_02d2: callvirt System.Text.StringBuilder AppendLine(System.String)
L_02d7: pop
L_02d8: ldsfld System.Text.StringBuilder debugSb
L_02dd: callvirt System.String ToString()
L_02e2: call Void Message(System.String)
L_02e7: ldnull
L_02e8: stsfld System.Text.StringBuilder debugSb
L_02ed: Label #28
L_02ed: ldloc.s 4 (Verse.Thing)
L_02ef: brtrue Label #29
L_02f4: ldarg.0
L_02f5: ldarg.1
L_02f6: call Void SetNextOptimizeTick(Verse.Pawn)
L_02fb: ldnull
L_02fc: br Label #0
L_0301: Label #29
L_0301: ldsfld Verse.JobDef Wear
L_0306: ldloc.s 4 (Verse.Thing)
L_0308: call LocalTargetInfo op_Implicit(Verse.Thing)
L_030d: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0312: br Label #0
L_0317: Label #0
L_0317: stloc 11 (Verse.AI.Job)
L_0319: ldloca 11 (Verse.AI.Job)
L_031b: ldarga 1
L_0321: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_0326: ldloc 11 (Verse.AI.Job)
L_0328: ret
DONE

PATCHING Verse.Pawn_HealthTracker Boolean ShouldBeDowned()


L_0000: Local var #0 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 0 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean get_InPainShock()
L_000c: brtrue Label #2
L_0011: ldarg.0
L_0012: ldfld Verse.PawnCapacitiesHandler capacities
L_0017: callvirt Boolean get_CanBeAwake()
L_001c: brfalse Label #3
L_0021: ldarg.0
L_0022: ldfld Verse.PawnCapacitiesHandler capacities
L_0027: ldsfld Verse.PawnCapacityDef Moving
L_002c: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0031: ldc.i4.0
L_0032: ceq
L_0034: br Label #4
L_0039: Label #2
L_0039: Label #3
L_0039: ldc.i4.1
L_003a: Label #4
L_003a: br Label #0
L_003f: Label #0
L_003f: stloc 0 (System.Boolean)
L_0040: ldarga 0
L_0046: ldloca 0 (System.Boolean)
L_0048: call Void SBD(Verse.Pawn_HealthTracker ByRef, Boolean ByRef)
L_004d: ldloc 0 (System.Boolean)
L_004e: ret
DONE

PATCHING Verse.Pawn_HealthTracker Void CheckForStateChange(Nullable`1,


Verse.Hediff)
L_0000: Local var #0 System.Single
L_0000: Local var #1 Verse.DamageInfo
L_0000: Local var #2 Verse.ThingWithComps
L_0000: ldarg.0
L_0001: call Boolean get_Dead()
L_0006: brtrue Label #2
L_000b: ldarg.0
L_000c: call Boolean ShouldBeDead()
L_0011: brfalse Label #3
L_0016: ldarg.0
L_0017: ldfld Verse.Pawn pawn
L_001c: callvirt Boolean get_Destroyed()
L_0021: brtrue Label #4
L_0026: ldarg.0
L_0027: ldfld Verse.Pawn pawn
L_002c: ldarg.1
L_002d: ldarg.2
L_002e: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_0033: Label #4
L_0033: br Label #0
L_0038: Label #3
L_0038: ldarg.0
L_0039: call Boolean get_Downed()
L_003e: brtrue Label #5
L_0043: ldarg.0
L_0044: call Boolean ShouldBeDowned()
L_0049: brfalse Label #6
L_004e: ldarg.0
L_004f: ldfld Verse.Pawn pawn
L_0054: callvirt Verse.RaceProperties get_RaceProps()
L_0059: callvirt Boolean get_Animal()
L_005e: brfalse Label #7
L_0063: ldc.r4 0.47
L_0068: br Label #8
L_006d: Label #7
L_006d: ldc.r4 0.67
L_0072: Label #8
L_0072: stloc.0
L_0073: ldarg.0
L_0074: ldfld System.Boolean forceIncap
L_0079: brtrue Label #9
L_007e: ldarga.s 1
L_0080: call Boolean get_HasValue()
L_0085: brfalse Label #10
L_008a: ldarga.s 1
L_008c: call DamageInfo get_Value()
L_0091: stloc.1
L_0092: ldloca.s 1 (Verse.DamageInfo)
L_0094: call Verse.DamageDef get_Def()
L_0099: ldfld System.Boolean externalViolence
L_009e: brfalse Label #11
L_00a3: ldarg.0
L_00a4: ldfld Verse.Pawn pawn
L_00a9: callvirt RimWorld.Faction get_Faction()
L_00ae: brfalse Label #12
L_00b3: ldarg.0
L_00b4: ldfld Verse.Pawn pawn
L_00b9: callvirt RimWorld.Faction get_Faction()
L_00be: callvirt Boolean get_IsPlayer()
L_00c3: brtrue Label #13
L_00c8: br Label #13
L_00cd: Label #12
L_00cd: ldarg.0
L_00ce: ldfld Verse.Pawn pawn
L_00d3: callvirt Boolean get_IsPrisonerOfColony()
L_00d8: brtrue Label #14
L_00dd: ldarg.0
L_00de: ldfld Verse.Pawn pawn
L_00e3: callvirt Verse.RaceProperties get_RaceProps()
L_00e8: callvirt Boolean get_IsFlesh()
L_00ed: brfalse Label #15
L_00f2: call Single get_Value()
L_00f7: ldloc.0
L_00f8: bge.un Label #16
L_00fd: ldarg.0
L_00fe: ldfld Verse.Pawn pawn
L_0103: ldarg.1
L_0104: ldnull
L_0105: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_010a: br Label #0
L_010f: Label #9
L_010f: Label #10
L_010f: Label #11
L_010f: Label #13
L_010f: Label #14
L_010f: Label #15
L_010f: Label #16
L_010f: ldarg.0
L_0110: ldc.i4.0
L_0111: stfld System.Boolean forceIncap
L_0116: ldarg.0
L_0117: ldarg.1
L_0118: ldarg.2
L_0119: call Void MakeDowned(Nullable`1, Verse.Hediff)
L_011e: br Label #0
L_0123: Label #6
L_0123: ldarg.0
L_0124: ldfld Verse.PawnCapacitiesHandler capacities
L_0129: ldsfld Verse.PawnCapacityDef Manipulation
L_012e: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0133: brtrue Label #17
L_0138: ldarg.0
L_0139: ldfld Verse.Pawn pawn
L_013e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0143: brfalse Label #18
L_0148: ldarg.0
L_0149: ldfld Verse.Pawn pawn
L_014e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0153: callvirt Verse.Thing get_CarriedThing()
L_0158: brfalse Label #19
L_015d: ldarg.0
L_015e: ldfld Verse.Pawn pawn
L_0163: ldfld Verse.AI.Pawn_JobTracker jobs
L_0168: brfalse Label #20
L_016d: ldarg.0
L_016e: ldfld Verse.Pawn pawn
L_0173: callvirt Verse.AI.Job get_CurJob()
L_0178: brfalse Label #21
L_017d: ldarg.0
L_017e: ldfld Verse.Pawn pawn
L_0183: ldfld Verse.AI.Pawn_JobTracker jobs
L_0188: ldc.i4.5
L_0189: ldc.i4.1
L_018a: callvirt Void EndCurrentJob(JobCondition, Boolean)
L_018f: Label #18
L_018f: Label #19
L_018f: Label #20
L_018f: Label #21
L_018f: ldarg.0
L_0190: ldfld Verse.Pawn pawn
L_0195: ldfld Verse.Pawn_EquipmentTracker equipment
L_019a: brfalse Label #22
L_019f: ldarg.0
L_01a0: ldfld Verse.Pawn pawn
L_01a5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01aa: callvirt Verse.ThingWithComps get_Primary()
L_01af: brfalse Label #23
L_01b4: ldarg.0
L_01b5: ldfld Verse.Pawn pawn
L_01ba: callvirt Boolean get_InContainerEnclosed()
L_01bf: brfalse Label #24
L_01c4: ldarg.0
L_01c5: ldfld Verse.Pawn pawn
L_01ca: ldfld Verse.Pawn_EquipmentTracker equipment
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01da: callvirt Verse.ThingWithComps get_Primary()
L_01df: ldarg.0
L_01e0: ldfld Verse.Pawn pawn
L_01e5: ldfld Verse.ThingOwner holdingOwner
L_01ea: callvirt Boolean TryTransferEquipmentToContainer(Verse.ThingWithComps,
Verse.ThingOwner)
L_01ef: pop
L_01f0: br Label #25
L_01f5: Label #24
L_01f5: ldarg.0
L_01f6: ldfld Verse.Pawn pawn
L_01fb: callvirt Boolean get_SpawnedOrAnyParentSpawned()
L_0200: brfalse Label #26
L_0205: ldarg.0
L_0206: ldfld Verse.Pawn pawn
L_020b: ldfld Verse.Pawn_EquipmentTracker equipment
L_0210: ldarg.0
L_0211: ldfld Verse.Pawn pawn
L_0216: ldfld Verse.Pawn_EquipmentTracker equipment
L_021b: callvirt Verse.ThingWithComps get_Primary()
L_0220: ldloca.s 2 (Verse.ThingWithComps)
L_0222: ldarg.0
L_0223: ldfld Verse.Pawn pawn
L_0228: callvirt IntVec3 get_PositionHeld()
L_022d: ldc.i4.1
L_022e: callvirt Boolean TryDropEquipment(Verse.ThingWithComps,
Verse.ThingWithComps ByRef, IntVec3, Boolean)
L_0233: pop
L_0234: br Label #27
L_0239: Label #26
L_0239: ldarg.0
L_023a: ldfld Verse.Pawn pawn
L_023f: ldfld Verse.Pawn_EquipmentTracker equipment
L_0244: ldarg.0
L_0245: ldfld Verse.Pawn pawn
L_024a: ldfld Verse.Pawn_EquipmentTracker equipment
L_024f: callvirt Verse.ThingWithComps get_Primary()
L_0254: callvirt Void DestroyEquipment(Verse.ThingWithComps)
L_0259: Label #17
L_0259: Label #22
L_0259: Label #23
L_0259: Label #25
L_0259: Label #27
L_0259: br Label #28
L_025e: Label #5
L_025e: ldarg.0
L_025f: call Boolean ShouldBeDowned()
L_0264: brtrue Label #29
L_0269: ldarg.0
L_026a: call Void MakeUndowned()
L_026f: br Label #0
L_0274: Label #2
L_0274: Label #28
L_0274: Label #29
L_0274: br Label #0
L_0279: Label #0
L_0279: ret
DONE

PATCHING RimWorld.RestUtility Single WakeThreshold(Verse.Pawn)


L_0000: Local var #0 Verse.AI.Group.Lord
L_0000: Local var #1 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #2 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #3 System.Single
L_0000: ldc.r4 0
L_0005: stloc 3 (System.Single)
L_0006: ldarg.0
L_0007: call Verse.AI.Group.Lord GetLord(Verse.Pawn)
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldloc.0
L_0014: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0019: brfalse Label #3
L_001e: ldloc.0
L_001f: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0024: callvirt Nullable`1 get_CustomWakeThreshold()
L_0029: stloc.1
L_002a: ldloca.s 1 (System.Nullable`1[System.Single])
L_002c: call Boolean get_HasValue()
L_0031: brfalse Label #4
L_0036: ldloc.0
L_0037: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_003c: callvirt Nullable`1 get_CustomWakeThreshold()
L_0041: stloc.2
L_0042: ldloca.s 2 (System.Nullable`1[System.Single])
L_0044: call Single get_Value()
L_0049: br Label #0
L_004e: Label #2
L_004e: Label #3
L_004e: Label #4
L_004e: ldc.r4 1
L_0053: br Label #0
L_0058: Label #0
L_0058: stloc 3 (System.Single)
L_0059: ldloca 3 (System.Single)
L_005b: ldarga 0
L_0061: call Void WakeThreshold_Patch(Single ByRef, Verse.Pawn ByRef)
L_0066: ldloc 3 (System.Single)
L_0067: ret
DONE

PATCHING Verse.Verb_Shoot Boolean TryCastShot()


L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 1 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean TryCastShot()
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldarg.0
L_0014: call Boolean get_CasterIsPawn()
L_0019: brfalse Label #3
L_001e: ldarg.0
L_001f: call Verse.Pawn get_CasterPawn()
L_0024: ldfld RimWorld.Pawn_RecordsTracker records
L_0029: ldsfld RimWorld.RecordDef ShotsFired
L_002e: callvirt Void Increment(RimWorld.RecordDef)
L_0033: Label #2
L_0033: Label #3
L_0033: ldloc.0
L_0034: br Label #0
L_0039: Label #0
L_0039: stloc 1 (System.Boolean)
L_003a: ldarga 0
L_0040: call Void TryCastShot_Patch(Verse.Verb_Shoot ByRef)
L_0045: ldloc 1 (System.Boolean)
L_0046: ret
DONE

PATCHING Verse.Pawn_EquipmentTracker Void


Notify_EquipmentAdded(Verse.ThingWithComps)
L_0000: Local var #0 Verse.Verb
L_0000: Local var #1 System.Collections.Generic.List`1+Enumerator[[Verse.Verb,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: ldarg.1
L_0001: callvirt Verse.CompEquippable GetComp[CompEquippable]()
L_0006: callvirt System.Collections.Generic.List`1[Verse.Verb] get_AllVerbs()
L_000b: callvirt Enumerator GetEnumerator()
L_0010: stloc.1
L_0011: br Label #2
L_0016: Label #3
L_0016: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0018: call Verse.Verb get_Current()
L_001d: stloc.0
L_001e: ldloc.0
L_001f: ldarg.0
L_0020: ldfld Verse.Pawn pawn
L_0025: stfld Verse.Thing caster
L_002a: ldloc.0
L_002b: callvirt Void Notify_PickedUp()
L_0030: Label #2
L_0030: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0032: call Boolean MoveNext()
L_0037: brtrue Label #3
L_003c: leave Label #4
L_0041: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0043: constrained. System.Collections.Generic.List`1+Enumerator[Verse.Verb]
L_0049: callvirt Void Dispose()
L_004e: endfinally
L_004f: Label #4
L_004f: br Label #0
L_0054: Label #0
L_0054: ldarga 1
L_005a: ldarga 0
L_0060: call Void Notify_EquipmentAdded_Patch(Verse.ThingWithComps ByRef,
Verse.Pawn_EquipmentTracker ByRef)
L_0065: ret
DONE
PATCHING RimWorld.PawnWeaponGenerator Void TryGenerateWeaponFor(Verse.Pawn)
L_0000: Local var #0 System.Single
L_0000: Local var #1 System.Int32
L_0000: Local var #2
RimWorld.PawnWeaponGenerator+<TryGenerateWeaponFor>c__AnonStorey2
L_0000: Local var #3 RimWorld.ThingStuffPair
L_0000: Local var #4 Verse.ThingWithComps
L_0000: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0005: callvirt Void Clear()
L_000a: ldarg.0
L_000b: ldfld Verse.PawnKindDef kindDef
L_0010: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0015: brfalse Label #2
L_001a: ldarg.0
L_001b: ldfld Verse.PawnKindDef kindDef
L_0020: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0025: callvirt Int32 get_Count()
L_002a: brtrue Label #3
L_002f: Label #2
L_002f: br Label #0
L_0034: Label #3
L_0034: ldarg.0
L_0035: callvirt Verse.RaceProperties get_RaceProps()
L_003a: callvirt Boolean get_ToolUser()
L_003f: brtrue Label #4
L_0044: br Label #0
L_0049: Label #4
L_0049: ldarg.0
L_004a: ldfld Verse.Pawn_HealthTracker health
L_004f: ldfld Verse.PawnCapacitiesHandler capacities
L_0054: ldsfld Verse.PawnCapacityDef Manipulation
L_0059: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_005e: brtrue Label #5
L_0063: br Label #0
L_0068: Label #5
L_0068: ldarg.0
L_0069: ldfld RimWorld.Pawn_StoryTracker story
L_006e: brfalse Label #6
L_0073: ldarg.0
L_0074: ldfld RimWorld.Pawn_StoryTracker story
L_0079: ldc.i4.8
L_007a: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_007f: brfalse Label #7
L_0084: br Label #0
L_0089: Label #6
L_0089: Label #7
L_0089: ldarg.0
L_008a: ldfld Verse.PawnKindDef kindDef
L_008f: ldflda Verse.FloatRange weaponMoney
L_0094: call Single get_RandomInRange()
L_0099: stloc.0
L_009a: ldc.i4.0
L_009b: stloc.1
L_009c: br Label #8
L_00a1: Label #16
L_00a1: newobj Void .ctor()
L_00a6: stloc.2
L_00a7: ldloc.2
L_00a8: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_00ad: ldloc.1
L_00ae: callvirt ThingStuffPair get_Item(Int32)
L_00b3: stfld RimWorld.ThingStuffPair w
L_00b8: ldloc.2
L_00b9: ldflda RimWorld.ThingStuffPair w
L_00be: call Single get_Price()
L_00c3: ldloc.0
L_00c4: ble.un Label #9
L_00c9: br Label #10
L_00ce: Label #9
L_00ce: ldarg.0
L_00cf: ldfld Verse.PawnKindDef kindDef
L_00d4: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_00d9: ldloc.2
L_00da: ldftn Boolean <>m__0(System.String)
L_00e0: newobj Void .ctor(Object, IntPtr)
L_00e5: call Boolean Any[String](System.Collections.Generic.List`1[System.String],
System.Predicate`1[System.String])
L_00ea: brtrue Label #11
L_00ef: br Label #12
L_00f4: Label #11
L_00f4: ldloc.2
L_00f5: ldflda RimWorld.ThingStuffPair w
L_00fa: ldfld Verse.ThingDef thing
L_00ff: ldfld System.Single generateAllowChance
L_0104: ldc.r4 1
L_0109: bge.un Label #13
L_010e: ldarg.0
L_010f: ldfld System.Int32 thingIDNumber
L_0114: ldc.i4 28554824
L_0119: xor
L_011a: call Single ValueSeeded(Int32)
L_011f: ldloc.2
L_0120: ldflda RimWorld.ThingStuffPair w
L_0125: ldfld Verse.ThingDef thing
L_012a: ldfld System.Single generateAllowChance
L_012f: ble.un Label #14
L_0134: br Label #15
L_0139: Label #13
L_0139: Label #14
L_0139: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_013e: ldloc.2
L_013f: ldfld RimWorld.ThingStuffPair w
L_0144: callvirt Void Add(ThingStuffPair)
L_0149: Label #10
L_0149: Label #12
L_0149: Label #15
L_0149: ldloc.1
L_014a: ldc.i4.1
L_014b: add
L_014c: stloc.1
L_014d: Label #8
L_014d: ldloc.1
L_014e: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_0153: callvirt Int32 get_Count()
L_0158: blt Label #16
L_015d: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0162: callvirt Int32 get_Count()
L_0167: brtrue Label #17
L_016c: br Label #0
L_0171: ldarg.0
L_0172: ldloc.2
L_0173: callvirt System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
FilterChildWeapons(Verse.Pawn,
System.Collections.Generic.List`1[RimWorld.ThingStuffPair])
L_0178: stloc.2
L_0179: Label #17
L_0179: ldarg.0
L_017a: ldfld Verse.Pawn_EquipmentTracker equipment
L_017f: ldc.i4.0
L_0180: callvirt Void DestroyAllEquipment(DestroyMode)
L_0185: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_018a: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_018f: brtrue Label #18
L_0194: ldnull
L_0195: ldftn Single <TryGenerateWeaponFor>m__2(ThingStuffPair)
L_019b: newobj Void .ctor(Object, IntPtr)
L_01a0: stsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01a5: Label #18
L_01a5: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01aa: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01ac: call Boolean TryRandomElementByWeight[ThingStuffPair](IEnumerable`1,
System.Func`2[RimWorld.ThingStuffPair,System.Single], ThingStuffPair ByRef)
L_01b1: brfalse Label #19
L_01b6: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01b8: ldfld Verse.ThingDef thing
L_01bd: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01bf: ldfld Verse.ThingDef stuff
L_01c4: call Verse.Thing MakeThing(Verse.ThingDef, Verse.ThingDef)
L_01c9: castclass Verse.ThingWithComps
L_01ce: stloc.s 4 (Verse.ThingWithComps)
L_01d0: ldloc.s 4 (Verse.ThingWithComps)
L_01d2: ldarg.0
L_01d3: call Void PostProcessGeneratedGear(Verse.Thing, Verse.Pawn)
L_01d8: ldarg.0
L_01d9: ldfld Verse.Pawn_EquipmentTracker equipment
L_01de: ldloc.s 4 (Verse.ThingWithComps)
L_01e0: callvirt Void AddEquipment(Verse.ThingWithComps)
L_01e5: Label #19
L_01e5: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_01ea: callvirt Void Clear()
L_01ef: br Label #0
L_01f4: Label #0
L_01f4: ret
DONE

PATCHING RimWorld.Bill_Medical Void Notify_DoBillStarted(Verse.Pawn)


L_0000: Local var #0 System.Collections.Generic.List`1[[Verse.ThingStackPartClass,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #1 System.Int32
L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void Notify_DoBillStarted(Verse.Pawn)
L_0007: ldarg.0
L_0008: ldnull
L_0009: stfld Verse.ThingDef consumedInitialMedicineDef
L_000e: ldarg.0
L_000f: call Verse.Pawn get_GiverPawn()
L_0014: callvirt Boolean get_Dead()
L_0019: brtrue Label #2
L_001e: ldarg.0
L_001f: ldfld Verse.RecipeDef recipe
L_0024: call Boolean RecipeHasNoIngredients(Verse.RecipeDef)
L_0029: brtrue Label #2
L_002e: ldarg.0
L_002f: ldfld Verse.RecipeDef recipe
L_0034: ldfld System.Boolean anesthetize
L_0039: brfalse Label #3
L_003e: ldarg.0
L_003f: call Verse.Pawn get_GiverPawn()
L_0044: call Boolean TryAnesthetize(Verse.Pawn)
L_0049: brfalse Label #4
L_004e: ldarg.1
L_004f: callvirt Verse.AI.Job get_CurJob()
L_0054: ldfld System.Collections.Generic.List`1[Verse.ThingStackPartClass]
placedThings
L_0059: stloc.0
L_005a: ldc.i4.0
L_005b: stloc.1
L_005c: br Label #5
L_0061: Label #10
L_0061: ldloc.0
L_0062: ldloc.1
L_0063: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0068: ldfld Verse.Thing thing
L_006d: isinst RimWorld.Medicine
L_0072: brfalse Label #6
L_0077: ldarg.0
L_0078: ldfld Verse.RecipeDef recipe
L_007d: callvirt Verse.RecipeWorker get_Worker()
L_0082: ldloc.0
L_0083: ldloc.1
L_0084: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0089: ldfld Verse.Thing thing
L_008e: ldc.i4.1
L_008f: callvirt Verse.Thing SplitOff(Int32)
L_0094: ldarg.0
L_0095: ldfld Verse.RecipeDef recipe
L_009a: ldarg.1
L_009b: callvirt Verse.Map get_MapHeld()
L_00a0: callvirt Void ConsumeIngredient(Verse.Thing, Verse.RecipeDef, Verse.Map)
L_00a5: ldloc.0
L_00a6: ldloc.1
L_00a7: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ac: dup
L_00ad: callvirt Int32 get_Count()
L_00b2: ldc.i4.1
L_00b3: sub
L_00b4: callvirt Void set_Count(Int32)
L_00b9: ldarg.0
L_00ba: ldloc.0
L_00bb: ldloc.1
L_00bc: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00c1: ldfld Verse.Thing thing
L_00c6: ldfld Verse.ThingDef def
L_00cb: stfld Verse.ThingDef consumedInitialMedicineDef
L_00d0: ldloc.0
L_00d1: ldloc.1
L_00d2: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00d7: ldfld Verse.Thing thing
L_00dc: callvirt Boolean get_Destroyed()
L_00e1: brtrue Label #7
L_00e6: ldloc.0
L_00e7: ldloc.1
L_00e8: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ed: callvirt Int32 get_Count()
L_00f2: ldc.i4.0
L_00f3: bgt Label #8
L_00f8: Label #7
L_00f8: ldloc.0
L_00f9: ldloc.1
L_00fa: callvirt Void RemoveAt(Int32)
L_00ff: Label #8
L_00ff: br Label #9
L_0104: Label #6
L_0104: ldloc.1
L_0105: ldc.i4.1
L_0106: add
L_0107: stloc.1
L_0108: Label #5
L_0108: ldloc.1
L_0109: ldloc.0
L_010a: callvirt Int32 get_Count()
L_010f: blt Label #10
L_0114: Label #2
L_0114: Label #3
L_0114: Label #4
L_0114: Label #9
L_0114: br Label #0
L_0119: Label #0
L_0119: ret
DONE

PATCHING RimWorld.Building_Bed IEnumerable`1 get_AssigningCandidates()


L_0000: ldarg.0
L_0001: callvirt IEnumerable`1 BedCandidates(RimWorld.Building_Bed)
L_0006: Label #0
L_0006: ret
DONE

PATCHING RimWorld.RestUtility RimWorld.Building_Bed FindBedFor(Verse.Pawn,


Verse.Pawn, Boolean, Boolean, Boolean)
L_0000: Local var #0 RimWorld.RestUtility+<FindBedFor>c__AnonStorey0
L_0000: Local var #1 RimWorld.Building_Bed
L_0000: Local var #2 Verse.Pawn
L_0000: Local var #3 Verse.Pawn
L_0000: Local var #4 System.Boolean
L_0000: Local var #5 System.Boolean
L_0000: Local var #6 System.Boolean
L_0000: Local var #7 System.Int32
L_0000: Local var #8 Verse.ThingDef
L_0000: Local var #9 System.Int32
L_0000: Local var #10 RimWorld.RestUtility+<FindBedFor>c__AnonStorey1
L_0000: Local var #11 RimWorld.Building_Bed
L_0000: Local var #12 RimWorld.DirectPawnRelation
L_0000: Local var #13 RimWorld.Building_Bed
L_0000: Local var #14 System.Int32
L_0000: Local var #15 RimWorld.RestUtility+<FindBedFor>c__AnonStorey2
L_0000: Local var #16 System.Int32
L_0000: Local var #17 Verse.ThingDef
L_0000: Local var #18 RimWorld.Building_Bed
L_0000: Local var #19 RimWorld.Building_Bed
L_0000: ldnull
L_0001: stloc 19 (RimWorld.Building_Bed)
L_0003: newobj Void .ctor()
L_0008: stloc.0
L_0009: ldloc.0
L_000a: ldarg.0
L_000b: stfld Verse.Pawn sleeper
L_0010: ldloc.0
L_0011: ldarg.1
L_0012: stfld Verse.Pawn traveler
L_0017: ldloc.0
L_0018: ldarg.2
L_0019: stfld System.Boolean sleeperWillBePrisoner
L_001e: ldloc.0
L_001f: ldarg.3
L_0020: stfld System.Boolean checkSocialProperness
L_0025: ldloc.0
L_0026: ldarg.s 4
L_0028: stfld System.Boolean ignoreOtherReservations
L_002d: ldloc.0
L_002e: ldfld Verse.Pawn sleeper
L_0033: call Boolean ShouldSeekMedicalRest(Verse.Pawn)
L_0038: brfalse Label #2
L_003d: ldloc.0
L_003e: ldfld Verse.Pawn sleeper
L_0043: call Boolean InBed(Verse.Pawn)
L_0048: brfalse Label #3
L_004d: ldloc.0
L_004e: ldfld Verse.Pawn sleeper
L_0053: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0058: callvirt Boolean get_Medical()
L_005d: brfalse Label #4
L_0062: ldloc.0
L_0063: ldfld Verse.Pawn sleeper
L_0068: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_006d: stloc.1
L_006e: ldloc.0
L_006f: ldfld Verse.Pawn sleeper
L_0074: stloc.2
L_0075: ldloc.0
L_0076: ldfld Verse.Pawn traveler
L_007b: stloc.3
L_007c: ldloc.0
L_007d: ldfld System.Boolean sleeperWillBePrisoner
L_0082: stloc.s 4 (System.Boolean)
L_0084: ldloc.0
L_0085: ldfld System.Boolean checkSocialProperness
L_008a: stloc.s 5 (System.Boolean)
L_008c: ldloc.0
L_008d: ldfld System.Boolean ignoreOtherReservations
L_0092: stloc.s 6 (System.Boolean)
L_0094: ldloc.1
L_0095: ldloc.2
L_0096: ldloc.3
L_0097: ldloc.s 4 (System.Boolean)
L_0099: ldloc.s 5 (System.Boolean)
L_009b: ldc.i4.0
L_009c: ldloc.s 6 (System.Boolean)
L_009e: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_00a3: brfalse Label #5
L_00a8: ldloc.0
L_00a9: ldfld Verse.Pawn sleeper
L_00ae: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00b3: br Label #0
L_00b8: Label #3
L_00b8: Label #4
L_00b8: Label #5
L_00b8: ldc.i4.0
L_00b9: stloc.s 7 (System.Int32)
L_00bb: br Label #6
L_00c0: Label #14
L_00c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_00c5: ldloc.s 7 (System.Int32)
L_00c7: callvirt Verse.ThingDef get_Item(Int32)
L_00cc: stloc.s 8 (Verse.ThingDef)
L_00ce: ldloc.0
L_00cf: ldfld Verse.Pawn sleeper
L_00d4: ldloc.s 8 (Verse.ThingDef)
L_00d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_00db: brtrue Label #7
L_00e0: br Label #8
L_00e5: Label #7
L_00e5: ldc.i4.0
L_00e6: stloc.s 9 (System.Int32)
L_00e8: br Label #9
L_00ed: Label #13
L_00ed: newobj Void .ctor()
L_00f2: stloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f4: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f6: ldloc.0
L_00f7: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_00fc: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00fe: ldloc.s 9 (System.Int32)
L_0100: brtrue Label #10
L_0105: ldc.i4.1
L_0106: br Label #11
L_010b: Label #10
L_010b: ldc.i4.3
L_010c: Label #11
L_010c: stfld Verse.Danger maxDanger
L_0111: ldloc.0
L_0112: ldfld Verse.Pawn sleeper
L_0117: callvirt IntVec3 get_Position()
L_011c: ldloc.0
L_011d: ldfld Verse.Pawn sleeper
L_0122: callvirt Verse.Map get_Map()
L_0127: ldloc.s 8 (Verse.ThingDef)
L_0129: call ThingRequest ForDef(Verse.ThingDef)
L_012e: ldc.i4.1
L_012f: ldloc.0
L_0130: ldfld Verse.Pawn traveler
L_0135: ldc.i4.3
L_0136: ldc.i4.0
L_0137: ldc.i4.0
L_0138: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_013d: ldc.r4 9999
L_0142: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_0144: ldftn Boolean <>m__0(Verse.Thing)
L_014a: newobj Void .ctor(Object, IntPtr)
L_014f: ldnull
L_0150: ldc.i4.0
L_0151: ldc.i4.m1
L_0152: ldc.i4.0
L_0153: ldc.i4.6
L_0154: ldc.i4.0
L_0155: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_015a: castclass RimWorld.Building_Bed
L_015f: stloc.s 11 (RimWorld.Building_Bed)
L_0161: ldloc.s 11 (RimWorld.Building_Bed)
L_0163: brfalse Label #12
L_0168: ldloc.s 11 (RimWorld.Building_Bed)
L_016a: br Label #0
L_016f: Label #12
L_016f: ldloc.s 9 (System.Int32)
L_0171: ldc.i4.1
L_0172: add
L_0173: stloc.s 9 (System.Int32)
L_0175: Label #9
L_0175: ldloc.s 9 (System.Int32)
L_0177: ldc.i4.2
L_0178: blt Label #13
L_017d: Label #8
L_017d: ldloc.s 7 (System.Int32)
L_017f: ldc.i4.1
L_0180: add
L_0181: stloc.s 7 (System.Int32)
L_0183: Label #6
L_0183: ldloc.s 7 (System.Int32)
L_0185: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_018a: callvirt Int32 get_Count()
L_018f: blt Label #14
L_0194: Label #2
L_0194: ldloc.0
L_0195: ldfld Verse.Pawn sleeper
L_019a: ldfld RimWorld.Pawn_Ownership ownership
L_019f: brfalse Label #15
L_01a4: ldloc.0
L_01a5: ldfld Verse.Pawn sleeper
L_01aa: ldfld RimWorld.Pawn_Ownership ownership
L_01af: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01b4: brfalse Label #16
L_01b9: ldloc.0
L_01ba: ldfld Verse.Pawn sleeper
L_01bf: ldfld RimWorld.Pawn_Ownership ownership
L_01c4: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01c9: stloc.1
L_01ca: ldloc.0
L_01cb: ldfld Verse.Pawn sleeper
L_01d0: stloc.3
L_01d1: ldloc.0
L_01d2: ldfld Verse.Pawn traveler
L_01d7: stloc.2
L_01d8: ldloc.0
L_01d9: ldfld System.Boolean sleeperWillBePrisoner
L_01de: stloc.s 6 (System.Boolean)
L_01e0: ldloc.0
L_01e1: ldfld System.Boolean checkSocialProperness
L_01e6: stloc.s 5 (System.Boolean)
L_01e8: ldloc.0
L_01e9: ldfld System.Boolean ignoreOtherReservations
L_01ee: stloc.s 4 (System.Boolean)
L_01f0: ldloc.1
L_01f1: ldloc.3
L_01f2: ldloc.2
L_01f3: ldloc.s 6 (System.Boolean)
L_01f5: ldloc.s 5 (System.Boolean)
L_01f7: ldc.i4.0
L_01f8: ldloc.s 4 (System.Boolean)
L_01fa: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_01ff: brfalse Label #17
L_0204: ldloc.0
L_0205: ldfld Verse.Pawn sleeper
L_020a: ldfld RimWorld.Pawn_Ownership ownership
L_020f: callvirt RimWorld.Building_Bed get_OwnedBed()
L_0214: br Label #0
L_0219: Label #15
L_0219: Label #16
L_0219: Label #17
L_0219: ldloc.0
L_021a: ldfld Verse.Pawn sleeper
L_021f: ldc.i4.0
L_0220: call RimWorld.DirectPawnRelation
ExistingMostLikedLovePartnerRel(Verse.Pawn, Boolean)
L_0225: stloc.s 12 (RimWorld.DirectPawnRelation)
L_0227: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0229: brfalse Label #18
L_022e: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0230: ldfld Verse.Pawn otherPawn
L_0235: ldfld RimWorld.Pawn_Ownership ownership
L_023a: callvirt RimWorld.Building_Bed get_OwnedBed()
L_023f: stloc.s 13 (RimWorld.Building_Bed)
L_0241: ldloc.s 13 (RimWorld.Building_Bed)
L_0243: brfalse Label #19
L_0248: ldloc.s 13 (RimWorld.Building_Bed)
L_024a: stloc.1
L_024b: ldloc.0
L_024c: ldfld Verse.Pawn sleeper
L_0251: stloc.2
L_0252: ldloc.0
L_0253: ldfld Verse.Pawn traveler
L_0258: stloc.3
L_0259: ldloc.0
L_025a: ldfld System.Boolean sleeperWillBePrisoner
L_025f: stloc.s 4 (System.Boolean)
L_0261: ldloc.0
L_0262: ldfld System.Boolean checkSocialProperness
L_0267: stloc.s 5 (System.Boolean)
L_0269: ldloc.0
L_026a: ldfld System.Boolean ignoreOtherReservations
L_026f: stloc.s 6 (System.Boolean)
L_0271: ldloc.1
L_0272: ldloc.2
L_0273: ldloc.3
L_0274: ldloc.s 4 (System.Boolean)
L_0276: ldloc.s 5 (System.Boolean)
L_0278: ldc.i4.0
L_0279: ldloc.s 6 (System.Boolean)
L_027b: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_0280: brfalse Label #20
L_0285: ldloc.s 13 (RimWorld.Building_Bed)
L_0287: br Label #0
L_028c: Label #18
L_028c: Label #19
L_028c: Label #20
L_028c: ldc.i4.0
L_028d: stloc.s 14 (System.Int32)
L_028f: br Label #21
L_0294: Label #29
L_0294: newobj Void .ctor()
L_0299: stloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029b: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029d: ldloc.0
L_029e: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_02a3: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_02a5: ldloc.s 14 (System.Int32)
L_02a7: brtrue Label #22
L_02ac: ldc.i4.1
L_02ad: br Label #23
L_02b2: Label #22
L_02b2: ldc.i4.3
L_02b3: Label #23
L_02b3: stfld Verse.Danger maxDanger
L_02b8: ldc.i4.0
L_02b9: stloc.s 16 (System.Int32)
L_02bb: br Label #24
L_02c0: Label #28
L_02c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_02c5: ldloc.s 16 (System.Int32)
L_02c7: callvirt Verse.ThingDef get_Item(Int32)
L_02cc: stloc.s 17 (Verse.ThingDef)
L_02ce: ldloc.0
L_02cf: ldfld Verse.Pawn sleeper
L_02d4: ldloc.s 17 (Verse.ThingDef)
L_02d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_02db: brtrue Label #25
L_02e0: br Label #26
L_02e5: Label #25
L_02e5: ldloc.0
L_02e6: ldfld Verse.Pawn sleeper
L_02eb: callvirt IntVec3 get_Position()
L_02f0: ldloc.0
L_02f1: ldfld Verse.Pawn sleeper
L_02f6: callvirt Verse.Map get_Map()
L_02fb: ldloc.s 17 (Verse.ThingDef)
L_02fd: call ThingRequest ForDef(Verse.ThingDef)
L_0302: ldc.i4.1
L_0303: ldloc.0
L_0304: ldfld Verse.Pawn traveler
L_0309: ldc.i4.3
L_030a: ldc.i4.0
L_030b: ldc.i4.0
L_030c: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_0311: ldc.r4 9999
L_0316: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_0318: ldftn Boolean <>m__0(Verse.Thing)
L_031e: newobj Void .ctor(Object, IntPtr)
L_0323: ldnull
L_0324: ldc.i4.0
L_0325: ldc.i4.m1
L_0326: ldc.i4.0
L_0327: ldc.i4.6
L_0328: ldc.i4.0
L_0329: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_032e: castclass RimWorld.Building_Bed
L_0333: stloc.s 18 (RimWorld.Building_Bed)
L_0335: ldloc.s 18 (RimWorld.Building_Bed)
L_0337: brfalse Label #27
L_033c: ldloc.s 18 (RimWorld.Building_Bed)
L_033e: br Label #0
L_0343: Label #26
L_0343: Label #27
L_0343: ldloc.s 16 (System.Int32)
L_0345: ldc.i4.1
L_0346: add
L_0347: stloc.s 16 (System.Int32)
L_0349: Label #24
L_0349: ldloc.s 16 (System.Int32)
L_034b: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_0350: callvirt Int32 get_Count()
L_0355: blt Label #28
L_035a: ldloc.s 14 (System.Int32)
L_035c: ldc.i4.1
L_035d: add
L_035e: stloc.s 14 (System.Int32)
L_0360: Label #21
L_0360: ldloc.s 14 (System.Int32)
L_0362: ldc.i4.2
L_0363: blt Label #29
L_0368: ldnull
L_0369: br Label #0
L_036e: Label #0
L_036e: stloc 19 (RimWorld.Building_Bed)
L_0370: ldarga 0
L_0376: ldloca 19 (RimWorld.Building_Bed)
L_0378: ldarga 1
L_037e: ldarga 4
L_0384: ldarga 2
L_038a: ldarga 3
L_0390: call Void FindBedFor_Patch(Verse.Pawn ByRef, RimWorld.Building_Bed ByRef,
Verse.Pawn ByRef, Boolean ByRef, Boolean ByRef, Boolean ByRef)
L_0395: ldloc 19 (RimWorld.Building_Bed)
L_0397: ret
DONE

PATCHING RimWorld.JobGiver_DoLovin Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 1 (Verse.AI.Job)
L_0002: call Verse.TickManager get_TickManager()
L_0007: callvirt Int32 get_TicksGame()
L_000c: ldarg.1
L_000d: ldfld Verse.AI.Pawn_MindState mindState
L_0012: ldfld System.Int32 canLovinTick
L_0017: bge Label #2
L_001c: ldnull
L_001d: br Label #0
L_0022: Label #2
L_0022: ldarg.1
L_0023: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0028: brfalse Label #3
L_002d: ldarg.1
L_002e: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0033: callvirt Boolean get_Medical()
L_0038: brtrue Label #4
L_003d: ldarg.1
L_003e: ldfld Verse.Pawn_HealthTracker health
L_0043: ldfld Verse.PawnCapacitiesHandler capacities
L_0048: callvirt Boolean get_CanBeAwake()
L_004d: brtrue Label #5
L_0052: Label #3
L_0052: Label #4
L_0052: ldnull
L_0053: br Label #0
L_0058: Label #5
L_0058: ldarg.1
L_0059: call Verse.Pawn GetPartnerInMyBed(Verse.Pawn)
L_005e: stloc.0
L_005f: ldloc.0
L_0060: brfalse Label #6
L_0065: ldloc.0
L_0066: ldfld Verse.Pawn_HealthTracker health
L_006b: ldfld Verse.PawnCapacitiesHandler capacities
L_0070: callvirt Boolean get_CanBeAwake()
L_0075: brfalse Label #7
L_007a: call Verse.TickManager get_TickManager()
L_007f: callvirt Int32 get_TicksGame()
L_0084: ldloc.0
L_0085: ldfld Verse.AI.Pawn_MindState mindState
L_008a: ldfld System.Int32 canLovinTick
L_008f: bge Label #8
L_0094: Label #6
L_0094: Label #7
L_0094: ldnull
L_0095: br Label #0
L_009a: Label #8
L_009a: ldarg.1
L_009b: ldloc.0
L_009c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00a1: ldc.i4.1
L_00a2: ldc.i4.m1
L_00a3: ldnull
L_00a4: ldc.i4.0
L_00a5: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00aa: brfalse Label #9
L_00af: ldloc.0
L_00b0: ldarg.1
L_00b1: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00b6: ldc.i4.1
L_00b7: ldc.i4.m1
L_00b8: ldnull
L_00b9: ldc.i4.0
L_00ba: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00bf: brtrue Label #10
L_00c4: Label #9
L_00c4: ldnull
L_00c5: br Label #0
L_00ca: Label #10
L_00ca: ldsfld Verse.JobDef Lovin
L_00cf: ldloc.0
L_00d0: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00d5: ldarg.1
L_00d6: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00db: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00e0: newobj Void .ctor(JobDef, LocalTargetInfo, LocalTargetInfo)
L_00e5: br Label #0
L_00ea: Label #0
L_00ea: stloc 1 (Verse.AI.Job)
L_00eb: ldloca 1 (Verse.AI.Job)
L_00ed: ldarga 1
L_00f3: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_00f8: ldloc 1 (Verse.AI.Job)
L_00f9: ret
DONE

PATCHING RimWorld.JobDriver_Lovin+<MakeNewToils>c__Iterator0 Void <>m__4()


L_0000: Local var #0 RimWorld.Thought_Memory
L_0000: ldsfld RimWorld.ThoughtDef GotSomeLovin
L_0005: call RimWorld.Thought MakeThought(RimWorld.ThoughtDef)
L_000a: castclass RimWorld.Thought_Memory
L_000f: stloc.0
L_0010: ldarg.0
L_0011: ldfld RimWorld.JobDriver_Lovin $this
L_0016: ldfld Verse.Pawn pawn
L_001b: ldfld RimWorld.Pawn_NeedsTracker needs
L_0020: ldfld RimWorld.Need_Mood mood
L_0025: ldfld RimWorld.ThoughtHandler thoughts
L_002a: ldfld RimWorld.MemoryThoughtHandler memories
L_002f: ldloc.0
L_0030: ldarg.0
L_0031: ldfld RimWorld.JobDriver_Lovin $this
L_0036: call Verse.Pawn get_Partner()
L_003b: callvirt Void TryGainMemory(RimWorld.Thought_Memory, Verse.Pawn)
L_0040: ldarg.0
L_0041: ldfld RimWorld.JobDriver_Lovin $this
L_0046: ldfld Verse.Pawn pawn
L_004b: ldfld Verse.AI.Pawn_MindState mindState
L_0050: call Verse.TickManager get_TickManager()
L_0055: callvirt Int32 get_TicksGame()
L_005a: ldarg.0
L_005b: ldfld RimWorld.JobDriver_Lovin $this
L_0060: ldarg.0
L_0061: ldfld RimWorld.JobDriver_Lovin $this
L_0066: ldfld Verse.Pawn pawn
L_006b: call Int32 GenerateRandomMinTicksToNextLovin(Verse.Pawn)
L_0070: add
L_0071: stfld System.Int32 canLovinTick
L_0076: ldarg.0
L_0077: ldfld RimWorld.JobDriver_Lovin $this
L_007c: ldfld Verse.Pawn pawn
L_0081: ldarg.0
L_0082: ldfld RimWorld.JobDriver_Lovin $this
L_0087: call Verse.Pawn get_Partner()
L_008c: call Void TryToImpregnate(Verse.Pawn, Verse.Pawn)
L_0091: br Label #0
L_0096: Label #0
L_0096: ret
DONE

PATCHING RimWorld.JobDriver_Wear+<MakeNewToils>c__Iterator0 Boolean MoveNext()


L_0000: Local var #0 System.UInt32
L_0000: ldarg.0
L_0001: ldfld System.Int32 $PC
L_0006: stloc.0
L_0007: ldarg.0
L_0008: ldc.i4.m1
L_0009: stfld System.Int32 $PC
L_000e: ldloc.0
L_000f: switch Labels #2 #3 #4 #5
L_0024: br Label #6
L_0029: Label #2
L_0029: ldarg.0
L_002a: ldfld RimWorld.JobDriver_Wear $this
L_002f: call RimWorld.JobDriver_Wear FailOnBaby[JobDriver_Wear]
(RimWorld.JobDriver_Wear)
L_0034: pop
L_0035: ldarg.0
L_0036: newobj Void .ctor()
L_003b: stfld Verse.AI.Toil <gotoApparel>__1
L_0040: ldarg.0
L_0041: ldfld Verse.AI.Toil <gotoApparel>__1
L_0046: ldarg.0
L_0047: ldftn Void <>m__0()
L_004d: newobj Void .ctor(Object, IntPtr)
L_0052: stfld System.Action initAction
L_0057: ldarg.0
L_0058: ldfld Verse.AI.Toil <gotoApparel>__1
L_005d: ldc.i4.2
L_005e: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0063: ldarg.0
L_0064: ldfld Verse.AI.Toil <gotoApparel>__1
L_0069: ldc.i4.1
L_006a: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_006f: pop
L_0070: ldarg.0
L_0071: ldarg.0
L_0072: ldfld Verse.AI.Toil <gotoApparel>__1
L_0077: stfld Verse.AI.Toil $current
L_007c: ldarg.0
L_007d: ldfld System.Boolean $disposing
L_0082: brtrue Label #7
L_0087: ldarg.0
L_0088: ldc.i4.1
L_0089: stfld System.Int32 $PC
L_008e: Label #7
L_008e: br Label #8
L_0093: Label #3
L_0093: ldarg.0
L_0094: newobj Void .ctor()
L_0099: stfld Verse.AI.Toil <prepare>__2
L_009e: ldarg.0
L_009f: ldfld Verse.AI.Toil <prepare>__2
L_00a4: ldc.i4.3
L_00a5: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_00aa: ldarg.0
L_00ab: ldfld Verse.AI.Toil <prepare>__2
L_00b0: ldc.i4.s 60
L_00b2: stfld System.Int32 defaultDuration
L_00b7: ldarg.0
L_00b8: ldfld Verse.AI.Toil <prepare>__2
L_00bd: ldc.i4.1
L_00be: ldc.i4.0
L_00bf: ldc.r4 -0.5
L_00c4: call Verse.AI.Toil WithProgressBarToilDelay(Verse.AI.Toil, TargetIndex,
Boolean, Single)
L_00c9: pop
L_00ca: ldarg.0
L_00cb: ldfld Verse.AI.Toil <prepare>__2
L_00d0: ldc.i4.1
L_00d1: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_00d6: pop
L_00d7: ldarg.0
L_00d8: ldarg.0
L_00d9: ldfld Verse.AI.Toil <prepare>__2
L_00de: stfld Verse.AI.Toil $current
L_00e3: ldarg.0
L_00e4: ldfld System.Boolean $disposing
L_00e9: brtrue Label #9
L_00ee: ldarg.0
L_00ef: ldc.i4.2
L_00f0: stfld System.Int32 $PC
L_00f5: Label #9
L_00f5: br Label #10
L_00fa: Label #4
L_00fa: ldarg.0
L_00fb: newobj Void .ctor()
L_0100: stfld Verse.AI.Toil <wear>__3
L_0105: ldarg.0
L_0106: ldfld Verse.AI.Toil <wear>__3
L_010b: ldarg.0
L_010c: ldftn Void <>m__1()
L_0112: newobj Void .ctor(Object, IntPtr)
L_0117: stfld System.Action initAction
L_011c: ldarg.0
L_011d: ldfld Verse.AI.Toil <wear>__3
L_0122: ldc.i4.1
L_0123: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0128: ldarg.0
L_0129: ldarg.0
L_012a: ldfld Verse.AI.Toil <wear>__3
L_012f: stfld Verse.AI.Toil $current
L_0134: ldarg.0
L_0135: ldfld System.Boolean $disposing
L_013a: brtrue Label #11
L_013f: ldarg.0
L_0140: ldc.i4.3
L_0141: stfld System.Int32 $PC
L_0146: Label #11
L_0146: br Label #12
L_014b: Label #5
L_014b: ldarg.0
L_014c: ldc.i4.m1
L_014d: stfld System.Int32 $PC
L_0152: Label #6
L_0152: ldc.i4.0
L_0153: br Label #0
L_0158: Label #8
L_0158: Label #10
L_0158: Label #12
L_0158: ldc.i4.1
L_0159: br Label #0
L_015e: Label #0
L_015e: ret
DONE

PATCHING RimWorld.ListerHaulables Void Notify_DeSpawned(Verse.Thing)


L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void TryRemove(Verse.Thing)
L_0007: br Label #0
L_000c: Label #0
L_000c: ldarg 1
L_0012: ldarg.0
L_0013: call Void Postfix(Verse.Thing, RimWorld.ListerHaulables)
L_0018: ret
DONE

PATCHING RimWorld.ListerHaulables Void Notify_Forbidden(Verse.Thing)


L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void TryRemove(Verse.Thing)
L_0007: br Label #0
L_000c: Label #0
L_000c: ldarg 1
L_0012: call Void Postfix(Verse.Thing)
L_0017: ret
DONE

PATCHING RimWorld.ListerHaulables Void Notify_SlotGroupChanged(RimWorld.SlotGroup)


L_0000: Local var #0 System.Int32
L_0000: ldarg.1
L_0001: callvirt System.Collections.Generic.List`1[Verse.IntVec3] get_CellsList()
L_0006: brfalse Label #2
L_000b: ldc.i4.0
L_000c: stloc.0
L_000d: br Label #3
L_0012: Label #4
L_0012: ldarg.0
L_0013: ldarg.1
L_0014: callvirt System.Collections.Generic.List`1[Verse.IntVec3] get_CellsList()
L_0019: ldloc.0
L_001a: callvirt IntVec3 get_Item(Int32)
L_001f: call Void RecalcAllInCell(IntVec3)
L_0024: ldloc.0
L_0025: ldc.i4.1
L_0026: add
L_0027: stloc.0
L_0028: Label #3
L_0028: ldloc.0
L_0029: ldarg.1
L_002a: callvirt System.Collections.Generic.List`1[Verse.IntVec3] get_CellsList()
L_002f: callvirt Int32 get_Count()
L_0034: blt Label #4
L_0039: Label #2
L_0039: br Label #0
L_003e: Label #0
L_003e: ldarg 1
L_0044: ldarg.0
L_0045: call Void Postfix(RimWorld.SlotGroup, RimWorld.ListerHaulables)
L_004a: ret
DONE

PATCHING RimWorld.ListerHaulables Void Notify_Spawned(Verse.Thing)


L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void CheckAdd(Verse.Thing)
L_0007: br Label #0
L_000c: Label #0
L_000c: ldarg 1
L_0012: call Void Postfix(Verse.Thing)
L_0017: ret
DONE

PATCHING RimWorld.ListerHaulables Void Notify_Unforbidden(Verse.Thing)


L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void CheckAdd(Verse.Thing)
L_0007: br Label #0
L_000c: Label #0
L_000c: ldarg 1
L_0012: call Void Postfix(Verse.Thing)
L_0017: ret
DONE

PATCHING RimWorld.ThoughtUtility Boolean CanGetThought(Verse.Pawn,


RimWorld.ThoughtDef)
L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Int32
L_0000: Local var #2 System.Boolean
L_0000: Local var #3 System.Int32
L_0000: Local var #4 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 4 (System.Boolean)
L_0007: ldarg.1
L_0008: ldfld System.Boolean validWhileDespawned
L_000d: brtrue Label #2
L_0012: ldarg.0
L_0013: callvirt Boolean get_Spawned()
L_0018: brtrue Label #3
L_001d: ldarg.1
L_001e: callvirt Boolean get_IsMemory()
L_0023: brtrue Label #4
L_0028: ldc.i4.0
L_0029: stloc.0
L_002a: leave Label #5
L_002f: Label #2
L_002f: Label #3
L_002f: Label #4
L_002f: ldarg.1
L_0030: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0035: brfalse Label #6
L_003a: ldc.i4.0
L_003b: stloc.1
L_003c: br Label #7
L_0041: Label #10
L_0041: ldarg.0
L_0042: ldfld RimWorld.Pawn_StoryTracker story
L_0047: ldfld RimWorld.TraitSet traits
L_004c: ldarg.1
L_004d: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0052: ldloc.1
L_0053: callvirt RimWorld.TraitDef get_Item(Int32)
L_0058: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_005d: brfalse Label #8
L_0062: ldc.i4.0
L_0063: stloc.0
L_0064: leave Label #9
L_0069: Label #8
L_0069: ldloc.1
L_006a: ldc.i4.1
L_006b: add
L_006c: stloc.1
L_006d: Label #7
L_006d: ldloc.1
L_006e: ldarg.1
L_006f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0074: callvirt Int32 get_Count()
L_0079: blt Label #10
L_007e: Label #6
L_007e: ldarg.1
L_007f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0084: call Boolean NullOrEmpty[TraitDef](IList`1)
L_0089: brtrue Label #11
L_008e: ldc.i4.0
L_008f: stloc.2
L_0090: ldc.i4.0
L_0091: stloc.3
L_0092: br Label #12
L_0097: Label #19
L_0097: ldarg.0
L_0098: ldfld RimWorld.Pawn_StoryTracker story
L_009d: ldfld RimWorld.TraitSet traits
L_00a2: ldarg.1
L_00a3: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00a8: ldloc.3
L_00a9: callvirt RimWorld.TraitDef get_Item(Int32)
L_00ae: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_00b3: brtrue Label #13
L_00b8: leave Label #14
L_00bd: Label #13
L_00bd: ldarg.1
L_00be: callvirt Boolean get_RequiresSpecificTraitsDegree()
L_00c3: brfalse Label #15
L_00c8: ldarg.1
L_00c9: ldfld System.Int32 requiredTraitsDegree
L_00ce: ldarg.0
L_00cf: ldfld RimWorld.Pawn_StoryTracker story
L_00d4: ldfld RimWorld.TraitSet traits
L_00d9: ldarg.1
L_00da: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00df: ldloc.3
L_00e0: callvirt RimWorld.TraitDef get_Item(Int32)
L_00e5: callvirt Int32 DegreeOfTrait(RimWorld.TraitDef)
L_00ea: beq Label #16
L_00ef: leave Label #17
L_00f4: Label #15
L_00f4: Label #16
L_00f4: ldc.i4.1
L_00f5: stloc.2
L_00f6: leave Label #18
L_00fb: Label #14
L_00fb: Label #17
L_00fb: ldloc.3
L_00fc: ldc.i4.1
L_00fd: add
L_00fe: stloc.3
L_00ff: Label #12
L_00ff: ldloc.3
L_0100: ldarg.1
L_0101: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0106: callvirt Int32 get_Count()
L_010b: blt Label #19
L_0110: Label #18
L_0110: ldloc.2
L_0111: brtrue Label #20
L_0116: ldc.i4.0
L_0117: stloc.0
L_0118: leave Label #21
L_011d: Label #11
L_011d: Label #20
L_011d: ldarg.1
L_011e: ldfld System.Boolean nullifiedIfNotColonist
L_0123: brfalse Label #22
L_0128: ldarg.0
L_0129: callvirt Boolean get_IsColonist()
L_012e: brtrue Label #23
L_0133: ldc.i4.0
L_0134: stloc.0
L_0135: leave Label #24
L_013a: Label #22
L_013a: Label #23
L_013a: ldarg.1
L_013b: ldarg.0
L_013c: call Boolean IsSituationalThoughtNullifiedByHediffs(RimWorld.ThoughtDef,
Verse.Pawn)
L_0141: brfalse Label #25
L_0146: ldc.i4.0
L_0147: stloc.0
L_0148: leave Label #26
L_014d: Label #25
L_014d: ldarg.1
L_014e: ldarg.0
L_014f: call Boolean IsThoughtNullifiedByOwnTales(RimWorld.ThoughtDef, Verse.Pawn)
L_0154: brfalse Label #27
L_0159: ldc.i4.0
L_015a: stloc.0
L_015b: leave Label #28
L_0160: Label #27
L_0160: leave Label #29
L_0165: endfinally
L_0166: Label #29
L_0166: ldc.i4.1
L_0167: br Label #0
L_016c: Label #5
L_016c: Label #9
L_016c: Label #21
L_016c: Label #24
L_016c: Label #26
L_016c: Label #28
L_016c: ldloc.0
L_016d: br Label #0
L_0172: Label #0
L_0172: stloc 4 (System.Boolean)
L_0174: ldarga 0
L_017a: ldarga 1
L_0180: ldloca 4 (System.Boolean)
L_0182: call Void CanGetThought_Patch(Verse.Pawn ByRef, RimWorld.ThoughtDef ByRef,
Boolean ByRef)
L_0187: ldloc 4 (System.Boolean)
L_0189: ret
DONE

PATCHING RimWorld.JobGiver_SocialFighting Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Verb
L_0000: Local var #2 Verse.AI.Job
L_0000: Local var #3 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 3 (Verse.AI.Job)
L_0002: ldarg.1
L_0003: callvirt Verse.RaceProperties get_RaceProps()
L_0008: callvirt Boolean get_Humanlike()
L_000d: brfalse Label #2
L_0012: ldarg.1
L_0013: ldfld RimWorld.Pawn_StoryTracker story
L_0018: ldc.i4.8
L_0019: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_001e: brfalse Label #3
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: Label #3
L_0029: ldarg.1
L_002a: callvirt Verse.AI.MentalState get_MentalState()
L_002f: castclass Verse.AI.MentalState_SocialFighting
L_0034: ldfld Verse.Pawn otherPawn
L_0039: stloc.0
L_003a: ldarg.1
L_003b: ldloca.s 1 (Verse.Verb)
L_003d: call Boolean TryGetRandomVerbForSocialFight(Verse.Pawn, Verse.Verb ByRef)
L_0042: brtrue Label #4
L_0047: ldnull
L_0048: br Label #0
L_004d: Label #4
L_004d: ldsfld Verse.JobDef SocialFight
L_0052: ldloc.0
L_0053: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0058: newobj Void .ctor(JobDef, LocalTargetInfo)
L_005d: stloc.2
L_005e: ldloc.2
L_005f: ldc.i4.1
L_0060: stfld System.Int32 maxNumMeleeAttacks
L_0065: ldloc.2
L_0066: ldloc.1
L_0067: stfld Verse.Verb verbToUse
L_006c: ldloc.2
L_006d: br Label #0
L_0072: Label #0
L_0072: stloc 3 (Verse.AI.Job)
L_0073: ldarga 1
L_0079: ldloca 3 (Verse.AI.Job)
L_007b: call Void TryGiveJob_Postfix(Verse.Pawn ByRef, Verse.AI.Job ByRef)
L_0080: ldloc 3 (Verse.AI.Job)
L_0081: ret
DONE

PATCHING RimWorld.Pawn_ApparelTracker Void ApparelChanged()


L_0000: ldarg.0
L_0001: ldftn Void <ApparelChanged>m__1()
L_0007: newobj Void .ctor(Object, IntPtr)
L_000c: call Void ExecuteWhenFinished(System.Action)
L_0011: br Label #0
L_0016: Label #0
L_0016: ldarga 0
L_001c: call Void ApparelChanged_Postfix(RimWorld.Pawn_ApparelTracker ByRef)
L_0021: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveAllGraphics()


L_0000: Local var #0 Verse.PawnKindLifeStage
L_0000: ldarg.0
L_0001: call Void ClearCache()
L_0006: ldarg.0
L_0007: ldfld Verse.Pawn pawn
L_000c: callvirt Verse.RaceProperties get_RaceProps()
L_0011: callvirt Boolean get_Humanlike()
L_0016: brfalse Label #2
L_001b: ldarg.0
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_StoryTracker story
L_0027: ldfld RimWorld.BodyType bodyType
L_002c: ldsfld UnityEngine.Shader CutoutSkin
L_0031: ldarg.0
L_0032: ldfld Verse.Pawn pawn
L_0037: ldfld RimWorld.Pawn_StoryTracker story
L_003c: callvirt Color get_SkinColor()
L_0041: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_0046: stfld Verse.Graphic nakedGraphic
L_004b: ldarg.0
L_004c: ldarg.0
L_004d: ldfld Verse.Pawn pawn
L_0052: ldfld RimWorld.Pawn_StoryTracker story
L_0057: ldfld RimWorld.BodyType bodyType
L_005c: ldsfld UnityEngine.Shader CutoutSkin
L_0061: ldsfld UnityEngine.Color RottingColor
L_0066: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_006b: stfld Verse.Graphic rottingGraphic
L_0070: ldarg.0
L_0071: ldstr "Things/Pawn/Humanlike/HumanoidDessicated"
L_0076: ldsfld UnityEngine.Shader Cutout
L_007b: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader)
L_0080: stfld Verse.Graphic dessicatedGraphic
L_0085: ldarg.0
L_0086: ldarg.0
L_0087: ldfld Verse.Pawn pawn
L_008c: ldfld RimWorld.Pawn_StoryTracker story
L_0091: callvirt System.String get_HeadGraphicPath()
L_0096: ldarg.0
L_0097: ldfld Verse.Pawn pawn
L_009c: ldfld RimWorld.Pawn_StoryTracker story
L_00a1: callvirt Color get_SkinColor()
L_00a6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00ab: stfld Verse.Graphic headGraphic
L_00b0: ldarg.0
L_00b1: ldarg.0
L_00b2: ldfld Verse.Pawn pawn
L_00b7: ldfld RimWorld.Pawn_StoryTracker story
L_00bc: callvirt System.String get_HeadGraphicPath()
L_00c1: ldsfld UnityEngine.Color RottingColor
L_00c6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00cb: stfld Verse.Graphic desiccatedHeadGraphic
L_00d0: ldarg.0
L_00d1: call Verse.Graphic_Multi GetSkull()
L_00d6: stfld Verse.Graphic skullGraphic
L_00db: ldarg.0
L_00dc: ldarg.0
L_00dd: ldfld Verse.Pawn pawn
L_00e2: ldfld RimWorld.Pawn_StoryTracker story
L_00e7: callvirt Color get_SkinColor()
L_00ec: call Verse.Graphic_Multi GetStump(Color)
L_00f1: stfld Verse.Graphic headStumpGraphic
L_00f6: ldarg.0
L_00f7: ldsfld UnityEngine.Color RottingColor
L_00fc: call Verse.Graphic_Multi GetStump(Color)
L_0101: stfld Verse.Graphic desiccatedHeadStumpGraphic
L_0106: ldarg.0
L_0107: ldarg.0
L_0108: ldfld Verse.Pawn pawn
L_010d: ldfld RimWorld.Pawn_StoryTracker story
L_0112: ldfld RimWorld.HairDef hairDef
L_0117: ldfld System.String texPath
L_011c: ldsfld UnityEngine.Shader Cutout
L_0121: call Vector2 get_one()
L_0126: ldarg.0
L_0127: ldfld Verse.Pawn pawn
L_012c: ldfld RimWorld.Pawn_StoryTracker story
L_0131: ldfld UnityEngine.Color hairColor
L_0136: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_013b: stfld Verse.Graphic hairGraphic
L_0140: ldarg.0
L_0141: call Void ResolveApparelGraphics()
L_0146: br Label #3
L_014b: Label #2
L_014b: ldarg.0
L_014c: ldfld Verse.Pawn pawn
L_0151: ldfld Verse.Pawn_AgeTracker ageTracker
L_0156: callvirt Verse.PawnKindLifeStage get_CurKindLifeStage()
L_015b: stloc.0
L_015c: ldarg.0
L_015d: ldfld Verse.Pawn pawn
L_0162: ldfld Verse.Gender gender
L_0167: ldc.i4.2
L_0168: bne.un Label #4
L_016d: ldloc.0
L_016e: ldfld Verse.GraphicData femaleGraphicData
L_0173: brtrue Label #5
L_0178: Label #4
L_0178: ldarg.0
L_0179: ldloc.0
L_017a: ldfld Verse.GraphicData bodyGraphicData
L_017f: callvirt Verse.Graphic get_Graphic()
L_0184: stfld Verse.Graphic nakedGraphic
L_0189: br Label #6
L_018e: Label #5
L_018e: ldarg.0
L_018f: ldloc.0
L_0190: ldfld Verse.GraphicData femaleGraphicData
L_0195: callvirt Verse.Graphic get_Graphic()
L_019a: stfld Verse.Graphic nakedGraphic
L_019f: Label #6
L_019f: ldarg.0
L_01a0: ldarg.0
L_01a1: ldfld Verse.Graphic nakedGraphic
L_01a6: ldsfld UnityEngine.Shader CutoutSkin
L_01ab: ldsfld UnityEngine.Color RottingColor
L_01b0: ldsfld UnityEngine.Color RottingColor
L_01b5: callvirt Verse.Graphic GetColoredVersion(UnityEngine.Shader, Color, Color)
L_01ba: stfld Verse.Graphic rottingGraphic
L_01bf: ldarg.0
L_01c0: ldfld Verse.Pawn pawn
L_01c5: callvirt Verse.RaceProperties get_RaceProps()
L_01ca: ldfld System.Boolean packAnimal
L_01cf: brfalse Label #7
L_01d4: ldarg.0
L_01d5: ldarg.0
L_01d6: ldfld Verse.Graphic nakedGraphic
L_01db: ldfld System.String path
L_01e0: ldstr "Pack"
L_01e5: call System.String Concat(System.String, System.String)
L_01ea: ldsfld UnityEngine.Shader Cutout
L_01ef: ldarg.0
L_01f0: ldfld Verse.Graphic nakedGraphic
L_01f5: ldfld UnityEngine.Vector2 drawSize
L_01fa: call Color get_white()
L_01ff: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_0204: stfld Verse.Graphic packGraphic
L_0209: Label #7
L_0209: ldloc.0
L_020a: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_020f: brfalse Label #8
L_0214: ldarg.0
L_0215: ldloc.0
L_0216: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_021b: ldarg.0
L_021c: ldfld Verse.Pawn pawn
L_0221: callvirt Verse.Graphic GraphicColoredFor(Verse.Thing)
L_0226: stfld Verse.Graphic dessicatedGraphic
L_022b: Label #3
L_022b: Label #8
L_022b: br Label #0
L_0230: Label #0
L_0230: ldarga 0
L_0236: call Void ResolveAllGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_023b: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveApparelGraphics()


L_0000: Local var #0 RimWorld.Apparel
L_0000: Local var #1 System.Collections.Generic.IEnumerator`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 RimWorld.ApparelGraphicRecord
L_0000: ldarga 0
L_0006: call Void ResolveApparelGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_000b: ldarg.0
L_000c: call Void ClearCache()
L_0011: ldarg.0
L_0012: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0017: callvirt Void Clear()
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_ApparelTracker apparel
L_0027: callvirt IEnumerable`1 get_WornApparelInDrawOrder()
L_002c: callvirt IEnumerator`1 GetEnumerator()
L_0031: stloc.1
L_0032: br Label #2
L_0037: Label #4
L_0037: ldloc.1
L_0038: callvirt RimWorld.Apparel get_Current()
L_003d: stloc.0
L_003e: ldloc.0
L_003f: ldarg.0
L_0040: ldfld Verse.Pawn pawn
L_0045: call BodyType ModifyChildBodyType(Verse.Pawn)
L_004a: ldloca.s 2 (RimWorld.ApparelGraphicRecord)
L_004c: call Boolean TryGetGraphicApparel(RimWorld.Apparel, BodyType,
ApparelGraphicRecord ByRef)
L_0051: brfalse Label #3
L_0056: ldarg.0
L_0057: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_005c: ldloc.2
L_005d: callvirt Void Add(ApparelGraphicRecord)
L_0062: Label #2
L_0062: Label #3
L_0062: ldloc.1
L_0063: callvirt Boolean MoveNext()
L_0068: brtrue Label #4
L_006d: leave Label #5
L_0072: ldloc.1
L_0073: brfalse Label #6
L_0078: ldloc.1
L_0079: callvirt Void Dispose()
L_007e: Label #6
L_007e: endfinally
L_007f: Label #5
L_007f: br Label #0
L_0084: Label #0
L_0084: ret
DONE

PATCHING Verse.PawnRenderer Void RenderPawnInternal(Vector3, Quaternion, Boolean,


Rot4, Rot4, RotDrawMode, Boolean, Boolean)
L_0000: Local var #0 UnityEngine.Mesh
L_0000: Local var #1 UnityEngine.Vector3
L_0000: Local var #2 System.Collections.Generic.List`1[[UnityEngine.Material,
UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #3 System.Int32
L_0000: Local var #4 UnityEngine.Material
L_0000: Local var #5 UnityEngine.Vector3
L_0000: Local var #6 UnityEngine.Vector3
L_0000: Local var #7 UnityEngine.Vector3
L_0000: Local var #8 UnityEngine.Vector3
L_0000: Local var #9 UnityEngine.Material
L_0000: Local var #10 UnityEngine.Mesh
L_0000: Local var #11 UnityEngine.Vector3
L_0000: Local var #12 System.Boolean
L_0000: Local var #13 UnityEngine.Mesh
L_0000: Local var #14
System.Collections.Generic.List`1[[RimWorld.ApparelGraphicRecord, Assembly-CSharp,
Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #15 System.Int32
L_0000: Local var #16 RimWorld.ApparelGraphicRecord
L_0000: Local var #17 RimWorld.ApparelGraphicRecord
L_0000: Local var #18 UnityEngine.Material
L_0000: Local var #19 RimWorld.ApparelGraphicRecord
L_0000: Local var #20 UnityEngine.Material
L_0000: Local var #21 RimWorld.ApparelGraphicRecord
L_0000: Local var #22 UnityEngine.Vector3
L_0000: Local var #23 UnityEngine.Mesh
L_0000: Local var #24 UnityEngine.Material
L_0000: Local var #25 System.Int32
L_0000: Local var #26 RimWorld.ApparelGraphicRecord
L_0000: Local var #27 UnityEngine.Material
L_0000: Local var #28 System.Collections.Generic.List`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #29 System.Int32
L_0000: Local var #30 UnityEngine.Vector3
L_0000: ldarg.0
L_0001: ldfld Verse.PawnGraphicSet graphics
L_0006: callvirt Boolean get_AllResolved()
L_000b: brtrue Label #2
L_0010: ldarg.0
L_0011: ldfld Verse.PawnGraphicSet graphics
L_0016: callvirt Void ResolveAllGraphics()
L_001b: Label #2
L_001b: ldnull
L_001c: stloc.0
L_001d: ldarg.0
L_001e: ldfld Verse.Pawn pawn
L_0023: ldfld Verse.Pawn_AgeTracker ageTracker
L_0028: call Int32 get_CurLifeStageIndex()
L_002d: ldc.i4.2
L_002e: blt Label #43
L_0033: ldarg.3
L_0034: brfalse Label #3
L_0039: Label #43
L_0039: ldarg.1
L_003a: ldarg.0
L_003b: ldfld Verse.Pawn pawn
L_0040: ldarg.s 7
L_0045: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_004a: stloc.1
L_004b: ldloca.s 1 (UnityEngine.Vector3)
L_004d: dup
L_004e: ldfld System.Single y
L_0053: ldc.r4 0.0078125
L_0058: add
L_0059: stfld System.Single y
L_005e: ldarg.s 6
L_0060: ldc.i4.2
L_0061: bne.un Label #4
L_0066: ldarg.0
L_0067: ldfld Verse.Pawn pawn
L_006c: callvirt Verse.RaceProperties get_RaceProps()
L_0071: callvirt Boolean get_Humanlike()
L_0076: brtrue Label #5
L_007b: ldarg.0
L_007c: ldfld Verse.PawnGraphicSet graphics
L_0081: ldfld Verse.Graphic dessicatedGraphic
L_0086: brfalse Label #6
L_008b: ldarg.s 7
L_008d: brtrue Label #7
L_0092: ldarg.0
L_0093: ldfld Verse.PawnGraphicSet graphics
L_0098: ldfld Verse.Graphic dessicatedGraphic
L_009d: ldloc.1
L_009e: ldarg.s 4
L_00a0: ldarg.0
L_00a1: ldfld Verse.Pawn pawn
L_00a6: ldc.r4 0
L_00ab: callvirt Void Draw(Vector3, Rot4, Verse.Thing, Single)
L_00b0: br Label #8
L_00b5: Label #4
L_00b5: Label #5
L_00b5: Label #6
L_00b5: Label #7
L_00b5: ldarg.0
L_00b6: ldfld Verse.Pawn pawn
L_00bb: callvirt Verse.RaceProperties get_RaceProps()
L_00c0: callvirt Boolean get_Humanlike()
L_00c5: brfalse Label #9
L_00ca: ldsfld Verse.GraphicMeshSet humanlikeBodySet
L_00cf: ldarg.s 4
L_00d1: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00d6: stloc.0
L_00d7: br Label #10
L_00dc: Label #9
L_00dc: ldarg.0
L_00dd: ldfld Verse.PawnGraphicSet graphics
L_00e2: ldfld Verse.Graphic nakedGraphic
L_00e7: ldarg.s 4
L_00e9: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00ee: stloc.0
L_00ef: Label #10
L_00ef: ldarg.0
L_00f0: ldfld Verse.PawnGraphicSet graphics
L_00f5: ldarg.s 4
L_00f7: ldarg.s 6
L_00f9: callvirt System.Collections.Generic.List`1[UnityEngine.Material]
MatsBodyBaseAt(Rot4, RotDrawMode)
L_00fe: stloc.2
L_00ff: ldc.i4.0
L_0100: stloc.3
L_0101: br Label #11
L_0106: Label #12
L_0106: ldarg.0
L_0107: ldfld Verse.PawnGraphicSet graphics
L_010c: ldfld Verse.DamageFlasher flasher
L_0111: ldloc.2
L_0112: ldloc.3
L_0113: callvirt UnityEngine.Material get_Item(Int32)
L_0118: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_011d: stloc.s 4 (UnityEngine.Material)
L_011f: ldloc.s 4
L_0124: ldarg.0
L_0125: ldfld Verse.Pawn pawn
L_012a: ldarg.s 4
L_012f: call UnityEngine.Material ModifyClothingForChild(UnityEngine.Material,
Verse.Pawn, Rot4)
L_0134: stloc.s 4
L_0139: ldloc.0
L_013a: ldloc.1
L_013b: ldarg.2
L_013c: ldloc.s 4 (UnityEngine.Material)
L_013e: ldarg.s 7
L_0140: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_0145: ldloca.s 1 (UnityEngine.Vector3)
L_0147: dup
L_0148: ldfld System.Single y
L_014d: ldloc.s 18
L_0152: ldarg.0
L_0153: ldfld Verse.Pawn pawn
L_0158: call UnityEngine.Material ModifyHatForChild(UnityEngine.Material,
Verse.Pawn)
L_015d: stloc.s 18
L_0162: ldc.r4 0.00390625
L_0167: add
L_0168: stfld System.Single y
L_016d: ldloc.3
L_016e: ldc.i4.1
L_016f: add
L_0170: stloc.3
L_0171: Label #11
L_0171: ldloc.3
L_0172: ldloc.2
L_0173: callvirt Int32 get_Count()
L_0178: blt Label #12
L_017d: ldarg.s 6
L_017f: brtrue Label #13
L_0184: ldarg.1
L_0185: ldarg.0
L_0186: ldfld Verse.Pawn pawn
L_018b: ldarg.s 7
L_0190: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0195: stloc.s 5 (UnityEngine.Vector3)
L_0197: ldloca.s 5 (UnityEngine.Vector3)
L_0199: dup
L_019a: ldfld System.Single y
L_019f: ldc.r4 0.01953125
L_01a4: add
L_01a5: stfld System.Single y
L_01aa: ldarg.0
L_01ab: ldfld RimWorld.PawnWoundDrawer woundOverlays
L_01b0: ldloc.s 5 (UnityEngine.Vector3)
L_01b2: ldloc.0
L_01b3: ldarg.2
L_01b4: ldarg.s 7
L_01b6: callvirt Void RenderOverBody(Vector3, UnityEngine.Mesh, Quaternion,
Boolean)
L_01bb: Label #3
L_01bb: Label #8
L_01bb: Label #13
L_01bb: ldarg.1
L_01bc: ldarg.0
L_01bd: ldfld Verse.Pawn pawn
L_01c2: ldarg.s 7
L_01c7: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01cc: stloc.s 6 (UnityEngine.Vector3)
L_01ce: ldarg.1
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldarg.s 7
L_01da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01df: stloc.s 7 (UnityEngine.Vector3)
L_01e1: ldarg.s 4
L_01e3: call Rot4 get_North()
L_01e8: call Boolean op_Inequality(Rot4, Rot4)
L_01ed: brfalse Label #14
L_01f2: ldloca.s 7 (UnityEngine.Vector3)
L_01f4: dup
L_01f5: ldfld System.Single y
L_01fa: ldc.r4 0.02734375
L_01ff: add
L_0200: stfld System.Single y
L_0205: ldloca.s 6 (UnityEngine.Vector3)
L_0207: dup
L_0208: ldfld System.Single y
L_020d: ldc.r4 0.0234375
L_0212: add
L_0213: stfld System.Single y
L_0218: br Label #15
L_021d: Label #14
L_021d: ldloca.s 7 (UnityEngine.Vector3)
L_021f: dup
L_0220: ldfld System.Single y
L_0225: ldc.r4 0.0234375
L_022a: add
L_022b: stfld System.Single y
L_0230: ldloca.s 6 (UnityEngine.Vector3)
L_0232: dup
L_0233: ldfld System.Single y
L_0238: ldc.r4 0.02734375
L_023d: add
L_023e: stfld System.Single y
L_0243: Label #15
L_0243: ldarg.0
L_0244: ldfld Verse.PawnGraphicSet graphics
L_0249: ldfld Verse.Graphic headGraphic
L_024e: brfalse Label #16
L_0253: ldarg.0
L_0254: ldfld Verse.Pawn pawn
L_0259: call Boolean RaceUsesChildren(Verse.Pawn)
L_025e: brfalse Label #44
L_0263: ldarg.0
L_0264: ldfld Verse.Pawn pawn
L_0269: call Boolean EnsurePawnIsChildOrOlder(Verse.Pawn)
L_026e: brfalse Label #16
L_0273: Label #44
L_0273: nop
L_0274: ldarg.2
L_0275: ldarg.0
L_0276: ldarg.s 5
L_0278: call Vector3 BaseHeadOffsetAt(Rot4)
L_027d: call Vector3 op_Multiply(Quaternion, Vector3)
L_0282: stloc.s 8 (UnityEngine.Vector3)
L_0284: ldarg.0
L_0285: ldfld Verse.PawnGraphicSet graphics
L_028a: ldarg.s 5
L_028c: ldarg.s 6
L_028e: ldarg.s 8
L_0290: callvirt UnityEngine.Material HeadMatAt(Rot4, RotDrawMode, Boolean)
L_0295: stloc.s 9 (UnityEngine.Material)
L_0297: ldloc.s 9 (UnityEngine.Material)
L_0299: ldnull
L_029a: call Boolean op_Inequality(UnityEngine.Object, UnityEngine.Object)
L_029f: brfalse Label #17
L_02a4: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_02a9: ldarg.s 5
L_02ab: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_02b0: stloc.s 10 (UnityEngine.Mesh)
L_02b2: ldloc.s 10 (UnityEngine.Mesh)
L_02b4: ldloc.s 7 (UnityEngine.Vector3)
L_02b6: ldloc.s 8 (UnityEngine.Vector3)
L_02b8: call Vector3 op_Addition(Vector3, Vector3)
L_02bd: ldarg.2
L_02be: ldloc.s 9 (UnityEngine.Material)
L_02c0: ldarg.s 7
L_02c2: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_02c7: Label #17
L_02c7: ldarg.1
L_02c8: ldloc.s 8 (UnityEngine.Vector3)
L_02ca: call Vector3 op_Addition(Vector3, Vector3)
L_02cf: ldarg.0
L_02d0: ldfld Verse.Pawn pawn
L_02d5: ldarg.s 7
L_02da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_02df: stloc.s 11 (UnityEngine.Vector3)
L_02e1: ldloca.s 11 (UnityEngine.Vector3)
L_02e3: dup
L_02e4: ldfld System.Single y
L_02e9: ldc.r4 0.03125
L_02ee: add
L_02ef: stfld System.Single y
L_02f4: ldc.i4.0
L_02f5: stloc.s 12 (System.Boolean)
L_02f7: ldarg.s 7
L_02f9: brfalse Label #18
L_02fe: call Boolean get_HatsOnlyOnMap()
L_0303: brtrue Label #19
L_0308: Label #18
L_0308: ldarg.0
L_0309: ldfld Verse.PawnGraphicSet graphics
L_030e: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_0313: ldarg.s 5
L_0315: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_031a: stloc.s 13 (UnityEngine.Mesh)
L_031c: ldarg.0
L_031d: ldfld Verse.PawnGraphicSet graphics
L_0322: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0327: stloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0329: ldc.i4.0
L_032a: stloc.s 15 (System.Int32)
L_032c: br Label #20
L_0331: Label #26
L_0331: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0333: ldloc.s 15 (System.Int32)
L_0335: callvirt ApparelGraphicRecord get_Item(Int32)
L_033a: stloc.s 16 (RimWorld.ApparelGraphicRecord)
L_033c: ldloca.s 16 (RimWorld.ApparelGraphicRecord)
L_033e: ldfld RimWorld.Apparel sourceApparel
L_0343: ldfld Verse.ThingDef def
L_0348: ldfld RimWorld.ApparelProperties apparel
L_034d: callvirt ApparelLayer get_LastLayer()
L_0352: ldc.i4.4
L_0353: bne.un Label #21
L_0358: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_035a: ldloc.s 15 (System.Int32)
L_035c: callvirt ApparelGraphicRecord get_Item(Int32)
L_0361: stloc.s 17 (RimWorld.ApparelGraphicRecord)
L_0363: ldloca.s 17 (RimWorld.ApparelGraphicRecord)
L_0365: ldfld RimWorld.Apparel sourceApparel
L_036a: ldfld Verse.ThingDef def
L_036f: ldfld RimWorld.ApparelProperties apparel
L_0374: ldfld System.Boolean hatRenderedFrontOfFace
L_0379: brtrue Label #22
L_037e: ldc.i4.1
L_037f: stloc.s 12 (System.Boolean)
L_0381: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0383: ldloc.s 15 (System.Int32)
L_0385: callvirt ApparelGraphicRecord get_Item(Int32)
L_038a: stloc.s 19 (RimWorld.ApparelGraphicRecord)
L_038c: ldloca.s 19 (RimWorld.ApparelGraphicRecord)
L_038e: ldfld Verse.Graphic graphic
L_0393: ldarg.s 4
L_0395: ldnull
L_0396: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_039b: stloc.s 18 (UnityEngine.Material)
L_039d: ldarg.0
L_039e: ldfld Verse.PawnGraphicSet graphics
L_03a3: ldfld Verse.DamageFlasher flasher
L_03a8: ldloc.s 18 (UnityEngine.Material)
L_03aa: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03af: stloc.s 18 (UnityEngine.Material)
L_03b1: ldloc.s 13 (UnityEngine.Mesh)
L_03b3: ldloc.s 11 (UnityEngine.Vector3)
L_03b5: ldarg.2
L_03b6: ldloc.s 18 (UnityEngine.Material)
L_03b8: ldarg.s 7
L_03ba: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_03bf: br Label #23
L_03c4: Label #22
L_03c4: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_03c6: ldloc.s 15 (System.Int32)
L_03c8: callvirt ApparelGraphicRecord get_Item(Int32)
L_03cd: stloc.s 21 (RimWorld.ApparelGraphicRecord)
L_03cf: ldloca.s 21 (RimWorld.ApparelGraphicRecord)
L_03d1: ldfld Verse.Graphic graphic
L_03d6: ldarg.s 4
L_03d8: ldnull
L_03d9: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_03de: stloc.s 20 (UnityEngine.Material)
L_03e0: ldarg.0
L_03e1: ldfld Verse.PawnGraphicSet graphics
L_03e6: ldfld Verse.DamageFlasher flasher
L_03eb: ldloc.s 20 (UnityEngine.Material)
L_03ed: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03f2: stloc.s 20 (UnityEngine.Material)
L_03f4: ldarg.1
L_03f5: ldloc.s 8 (UnityEngine.Vector3)
L_03f7: call Vector3 op_Addition(Vector3, Vector3)
L_03fc: stloc.s 22 (UnityEngine.Vector3)
L_03fe: ldloca.s 22 (UnityEngine.Vector3)
L_0400: dup
L_0401: ldfld System.Single y
L_0406: ldarg.s 4
L_0408: call Rot4 get_North()
L_040d: call Boolean op_Equality(Rot4, Rot4)
L_0412: brfalse Label #24
L_0417: ldc.r4 0.00390625
L_041c: br Label #25
L_0421: Label #24
L_0421: ldc.r4 0.03515625
L_0426: Label #25
L_0426: add
L_0427: stfld System.Single y
L_042c: ldloc.s 13 (UnityEngine.Mesh)
L_042e: ldloc.s 22 (UnityEngine.Vector3)
L_0430: ldarg.2
L_0431: ldloc.s 20 (UnityEngine.Material)
L_0433: ldarg.s 7
L_0435: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_043a: Label #21
L_043a: Label #23
L_043a: ldloc.s 15 (System.Int32)
L_043c: ldc.i4.1
L_043d: add
L_043e: stloc.s 15 (System.Int32)
L_0440: Label #20
L_0440: ldloc.s 15 (System.Int32)
L_0442: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0444: callvirt Int32 get_Count()
L_0449: blt Label #26
L_044e: Label #19
L_044e: ldloc.s 12 (System.Boolean)
L_0450: brtrue Label #27
L_0455: ldarg.s 6
L_0457: ldc.i4.2
L_0458: beq Label #28
L_045d: ldarg.s 8
L_045f: brtrue Label #29
L_0464: ldarg.0
L_0465: ldfld Verse.PawnGraphicSet graphics
L_046a: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_046f: ldarg.s 5
L_0471: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0476: stloc.s 23 (UnityEngine.Mesh)
L_0478: ldarg.0
L_0479: ldfld Verse.PawnGraphicSet graphics
L_047e: ldarg.s 5
L_0480: callvirt UnityEngine.Material HairMatAt(Rot4)
L_0485: stloc.s 24 (UnityEngine.Material)
L_0487: ldloc.s 24
L_048c: ldarg.0
L_048d: ldfld Verse.Pawn pawn
L_0492: call UnityEngine.Material ModifyHairForChild(UnityEngine.Material,
Verse.Pawn)
L_0497: stloc.s 24
L_049c: ldloc.s 23 (UnityEngine.Mesh)
L_049e: ldloc.s 11 (UnityEngine.Vector3)
L_04a0: ldarg.2
L_04a1: ldloc.s 24 (UnityEngine.Material)
L_04a3: ldarg.s 7
L_04a5: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_04aa: Label #16
L_04aa: Label #27
L_04aa: Label #28
L_04aa: Label #29
L_04aa: ldarg.3
L_04ab: brfalse Label #30
L_04b0: ldc.i4.0
L_04b1: stloc.s 25 (System.Int32)
L_04b3: br Label #31
L_04b8: Label #33
L_04b8: ldarg.0
L_04b9: ldfld Verse.PawnGraphicSet graphics
L_04be: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_04c3: ldloc.s 25 (System.Int32)
L_04c5: callvirt ApparelGraphicRecord get_Item(Int32)
L_04ca: stloc.s 26 (RimWorld.ApparelGraphicRecord)
L_04cc: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ce: ldfld RimWorld.Apparel sourceApparel
L_04d3: ldfld Verse.ThingDef def
L_04d8: ldfld RimWorld.ApparelProperties apparel
L_04dd: callvirt ApparelLayer get_LastLayer()
L_04e2: ldc.i4.2
L_04e3: bne.un Label #32
L_04e8: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ea: ldfld Verse.Graphic graphic
L_04ef: ldarg.s 4
L_04f1: ldnull
L_04f2: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_04f7: stloc.s 27 (UnityEngine.Material)
L_04f9: ldarg.0
L_04fa: ldfld Verse.PawnGraphicSet graphics
L_04ff: ldfld Verse.DamageFlasher flasher
L_0504: ldloc.s 27 (UnityEngine.Material)
L_0506: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_050b: stloc.s 27 (UnityEngine.Material)
L_050d: ldloc.0
L_050e: ldloc.s 6 (UnityEngine.Vector3)
L_0510: ldarg.2
L_0511: ldloc.s 27 (UnityEngine.Material)
L_0513: ldarg.s 7
L_0515: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_051a: Label #32
L_051a: ldloc.s 25 (System.Int32)
L_051c: ldc.i4.1
L_051d: add
L_051e: stloc.s 25 (System.Int32)
L_0520: Label #31
L_0520: ldloc.s 25 (System.Int32)
L_0522: ldarg.0
L_0523: ldfld Verse.PawnGraphicSet graphics
L_0528: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_052d: callvirt Int32 get_Count()
L_0532: blt Label #33
L_0537: Label #30
L_0537: ldarg.s 7
L_0539: brtrue Label #34
L_053e: ldarg.0
L_053f: ldfld Verse.Pawn pawn
L_0544: callvirt Verse.RaceProperties get_RaceProps()
L_0549: callvirt Boolean get_Animal()
L_054e: brfalse Label #35
L_0553: ldarg.0
L_0554: ldfld Verse.Pawn pawn
L_0559: ldfld Verse.Pawn_InventoryTracker inventory
L_055e: brfalse Label #36
L_0563: ldarg.0
L_0564: ldfld Verse.Pawn pawn
L_0569: ldfld Verse.Pawn_InventoryTracker inventory
L_056e: ldfld Verse.ThingOwner`1[Verse.Thing] innerContainer
L_0573: callvirt Int32 get_Count()
L_0578: ldc.i4.0
L_0579: ble Label #37
L_057e: ldarg.0
L_057f: ldfld Verse.PawnGraphicSet graphics
L_0584: ldfld Verse.Graphic packGraphic
L_0589: brfalse Label #38
L_058e: ldloc.0
L_058f: ldloc.s 6 (UnityEngine.Vector3)
L_0591: ldarg.2
L_0592: ldarg.0
L_0593: ldfld Verse.PawnGraphicSet graphics
L_0598: ldfld Verse.Graphic packGraphic
L_059d: ldarg.s 4
L_059f: ldnull
L_05a0: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_05a5: ldc.i4.0
L_05a6: call Void DrawMesh(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Int32)
L_05ab: Label #34
L_05ab: Label #35
L_05ab: Label #36
L_05ab: Label #37
L_05ab: Label #38
L_05ab: ldarg.s 7
L_05ad: brtrue Label #39
L_05b2: ldarg.0
L_05b3: ldarg.1
L_05b4: call Void DrawEquipment(Vector3)
L_05b9: ldarg.0
L_05ba: ldfld Verse.Pawn pawn
L_05bf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05c4: brfalse Label #40
L_05c9: ldarg.0
L_05ca: ldfld Verse.Pawn pawn
L_05cf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05d4: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_05d9: stloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05db: ldc.i4.0
L_05dc: stloc.s 29 (System.Int32)
L_05de: br Label #41
L_05e3: Label #42
L_05e3: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05e5: ldloc.s 29 (System.Int32)
L_05e7: callvirt RimWorld.Apparel get_Item(Int32)
L_05ec: callvirt Void DrawWornExtras()
L_05f1: ldloc.s 29 (System.Int32)
L_05f3: ldc.i4.1
L_05f4: add
L_05f5: stloc.s 29 (System.Int32)
L_05f7: Label #41
L_05f7: ldloc.s 29 (System.Int32)
L_05f9: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05fb: callvirt Int32 get_Count()
L_0600: blt Label #42
L_0605: Label #40
L_0605: ldarg.1
L_0606: ldarg.0
L_0607: ldfld Verse.Pawn pawn
L_060c: ldarg.s 7
L_0611: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0616: stloc.s 30 (UnityEngine.Vector3)
L_0618: ldloca.s 30 (UnityEngine.Vector3)
L_061a: dup
L_061b: ldfld System.Single y
L_0620: ldc.r4 0.04296875
L_0625: add
L_0626: stfld System.Single y
L_062b: ldarg.0
L_062c: ldfld Verse.PawnHeadOverlays statusOverlays
L_0631: ldloc.s 30 (UnityEngine.Vector3)
L_0633: ldarg.2
L_0634: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_0639: ldarg.s 5
L_063b: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0640: callvirt Void RenderStatusOverlays(Vector3, Quaternion, UnityEngine.Mesh)
L_0645: Label #39
L_0645: br Label #0
L_064a: Label #0
L_064a: ret
DONE

PATCHING Verse.PawnGenerator Verse.Pawn GeneratePawn(PawnGenerationRequest)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Pawn
L_0000: ldnull
L_0001: stloc 1 (Verse.Pawn)
L_0002: ldarg.0
L_0003: call Verse.Pawn GeneratePawnInternal(PawnGenerationRequest)
L_0008: stloc.0
L_0009: leave Label #2
L_000e: endfinally
L_000f: Label #2
L_000f: ldloc.0
L_0010: br Label #0
L_0015: Label #0
L_0015: stloc 1 (Verse.Pawn)
L_0016: ldarga 0
L_001c: ldloca 1 (Verse.Pawn)
L_001e: call Void _GeneratePawn(PawnGenerationRequest ByRef, Verse.Pawn ByRef)
L_0023: ldloc 1 (Verse.Pawn)
L_0024: ret
DONE

PATCHING RimWorld.JobGiver_OptimizeApparel Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 RimWorld.Outfit
L_0000: Local var #1 System.Collections.Generic.List`1[[RimWorld.Apparel, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 System.Int32
L_0000: Local var #3 Verse.AI.Job
L_0000: Local var #4 Verse.Thing
L_0000: Local var #5 System.Single
L_0000: Local var #6 System.Collections.Generic.List`1[[Verse.Thing, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #7 System.Int32
L_0000: Local var #8 RimWorld.Apparel
L_0000: Local var #9 RimWorld.SlotGroup
L_0000: Local var #10 System.Single
L_0000: Local var #11 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 11 (Verse.AI.Job)
L_0003: ldarg.1
L_0004: ldfld RimWorld.Pawn_OutfitTracker outfits
L_0009: brtrue Label #2
L_000e: ldarg.1
L_000f: ldstr " tried to run JobGiver_OptimizeApparel without an OutfitTracker"
L_0014: call System.String Concat(System.Object, System.Object)
L_0019: ldc.i4 5643897
L_001e: call Void ErrorOnce(System.String, Int32)
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: ldarg.1
L_002a: callvirt RimWorld.Faction get_Faction()
L_002f: call RimWorld.Faction get_OfPlayer()
L_0034: beq Label #3
L_0039: ldstr "Non-colonist "
L_003e: ldarg.1
L_003f: ldstr " tried to optimize apparel."
L_0044: call System.String Concat(System.Object, System.Object, System.Object)
L_0049: ldc.i4 764323
L_004e: call Void ErrorOnce(System.String, Int32)
L_0053: ldnull
L_0054: br Label #0
L_0059: Label #3
L_0059: ldsfld System.Boolean debugApparelOptimize
L_005e: brtrue Label #4
L_0063: call Verse.TickManager get_TickManager()
L_0068: callvirt Int32 get_TicksGame()
L_006d: ldarg.1
L_006e: ldfld Verse.AI.Pawn_MindState mindState
L_0073: ldfld System.Int32 nextApparelOptimizeTick
L_0078: bge Label #5
L_007d: ldnull
L_007e: br Label #0
L_0083: Label #5
L_0083: br Label #6
L_0088: Label #4
L_0088: newobj Void .ctor()
L_008d: stsfld System.Text.StringBuilder debugSb
L_0092: ldsfld System.Text.StringBuilder debugSb
L_0097: ldc.i4.4
L_0098: newarr System.Object
L_009d: dup
L_009e: ldc.i4.0
L_009f: ldstr "Scanning for "
L_00a4: stelem.ref
L_00a5: dup
L_00a6: ldc.i4.1
L_00a7: ldarg.1
L_00a8: stelem.ref
L_00a9: dup
L_00aa: ldc.i4.2
L_00ab: ldstr " at "
L_00b0: stelem.ref
L_00b1: dup
L_00b2: ldc.i4.3
L_00b3: ldarg.1
L_00b4: callvirt IntVec3 get_Position()
L_00b9: box Verse.IntVec3
L_00be: stelem.ref
L_00bf: call System.String Concat(System.Object[])
L_00c4: callvirt System.Text.StringBuilder AppendLine(System.String)
L_00c9: pop
L_00ca: Label #6
L_00ca: ldarg.1
L_00cb: ldfld RimWorld.Pawn_OutfitTracker outfits
L_00d0: callvirt RimWorld.Outfit get_CurrentOutfit()
L_00d5: stloc.0
L_00d6: ldarg.1
L_00d7: ldfld RimWorld.Pawn_ApparelTracker apparel
L_00dc: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_00e1: stloc.1
L_00e2: ldloc.1
L_00e3: callvirt Int32 get_Count()
L_00e8: ldc.i4.1
L_00e9: sub
L_00ea: stloc.2
L_00eb: br Label #7
L_00f0: Label #10
L_00f0: ldloc.0
L_00f1: ldfld Verse.ThingFilter filter
L_00f6: ldloc.1
L_00f7: ldloc.2
L_00f8: callvirt RimWorld.Apparel get_Item(Int32)
L_00fd: callvirt Boolean Allows(Verse.Thing)
L_0102: brtrue Label #8
L_0107: ldarg.1
L_0108: ldfld RimWorld.Pawn_OutfitTracker outfits
L_010d: ldfld RimWorld.OutfitForcedHandler forcedHandler
L_0112: ldloc.1
L_0113: ldloc.2
L_0114: callvirt RimWorld.Apparel get_Item(Int32)
L_0119: callvirt Boolean AllowedToAutomaticallyDrop(RimWorld.Apparel)
L_011e: brfalse Label #9
L_0123: ldsfld Verse.JobDef RemoveApparel
L_0128: ldloc.1
L_0129: ldloc.2
L_012a: callvirt RimWorld.Apparel get_Item(Int32)
L_012f: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0134: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0139: stloc.3
L_013a: ldloc.3
L_013b: ldc.i4.1
L_013c: stfld System.Boolean haulDroppedApparel
L_0141: ldloc.3
L_0142: br Label #0
L_0147: Label #8
L_0147: Label #9
L_0147: ldloc.2
L_0148: ldc.i4.1
L_0149: sub
L_014a: stloc.2
L_014b: Label #7
L_014b: ldloc.2
L_014c: ldc.i4.0
L_014d: bge Label #10
L_0152: ldnull
L_0153: stloc.s 4 (Verse.Thing)
L_0155: ldc.r4 0
L_015a: stloc.s 5 (System.Single)
L_015c: ldarg.1
L_015d: callvirt Verse.Map get_Map()
L_0162: ldfld Verse.ListerThings listerThings
L_0167: ldc.i4.s 26
L_0169: callvirt System.Collections.Generic.List`1[Verse.Thing]
ThingsInGroup(ThingRequestGroup)
L_016e: stloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0170: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0172: callvirt Int32 get_Count()
L_0177: brtrue Label #11
L_017c: ldarg.0
L_017d: ldarg.1
L_017e: call Void SetNextOptimizeTick(Verse.Pawn)
L_0183: ldnull
L_0184: br Label #0
L_0189: Label #11
L_0189: ldarg.1
L_018a: ldarg.1
L_018b: callvirt Verse.Map get_Map()
L_0190: callvirt Int32 get_Tile()
L_0195: ldarg.1
L_0196: call Twelfth Twelfth(Verse.Thing)
L_019b: call NeededWarmth CalculateNeededWarmth(Verse.Pawn, Int32, Twelfth)
L_01a0: stsfld RimWorld.NeededWarmth neededWarmth
L_01a5: ldc.i4.0
L_01a6: stloc.s 7 (System.Int32)
L_01a8: br Label #12
L_01ad: Label #27
L_01ad: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_01af: ldloc.s 7 (System.Int32)
L_01b1: callvirt Verse.Thing get_Item(Int32)
L_01b6: castclass RimWorld.Apparel
L_01bb: stloc.s 8 (RimWorld.Apparel)
L_01bd: ldloc.0
L_01be: ldfld Verse.ThingFilter filter
L_01c3: ldloc.s 8 (RimWorld.Apparel)
L_01c5: callvirt Boolean Allows(Verse.Thing)
L_01ca: brtrue Label #13
L_01cf: br Label #14
L_01d4: Label #13
L_01d4: ldloc.s 8 (RimWorld.Apparel)
L_01d6: callvirt Verse.Map get_Map()
L_01db: ldfld RimWorld.SlotGroupManager slotGroupManager
L_01e0: ldloc.s 8 (RimWorld.Apparel)
L_01e2: callvirt IntVec3 get_Position()
L_01e7: callvirt RimWorld.SlotGroup SlotGroupAt(IntVec3)
L_01ec: stloc.s 9 (RimWorld.SlotGroup)
L_01ee: ldloc.s 9 (RimWorld.SlotGroup)
L_01f0: brtrue Label #15
L_01f5: br Label #16
L_01fa: Label #15
L_01fa: ldloc.s 8 (RimWorld.Apparel)
L_01fc: ldarg.1
L_01fd: call Boolean IsForbidden(Verse.Thing, Verse.Pawn)
L_0202: brfalse Label #17
L_0207: br Label #18
L_020c: Label #17
L_020c: ldarg.1
L_020d: ldloc.s 8 (RimWorld.Apparel)
L_020f: call Single ApparelScoreGain(Verse.Pawn, RimWorld.Apparel)
L_0214: stloc.s 10 (System.Single)
L_0216: ldsfld System.Boolean debugApparelOptimize
L_021b: brfalse Label #19
L_0220: ldsfld System.Text.StringBuilder debugSb
L_0225: ldloc.s 8 (RimWorld.Apparel)
L_0227: callvirt System.String get_LabelCap()
L_022c: ldstr ": "
L_0231: ldloca.s 10 (System.Single)
L_0233: ldstr "F2"
L_0238: call System.String ToString(System.String)
L_023d: call System.String Concat(System.String, System.String, System.String)
L_0242: callvirt System.Text.StringBuilder AppendLine(System.String)
L_0247: pop
L_0248: Label #19
L_0248: ldloc.s 10 (System.Single)
L_024a: ldc.r4 0.05
L_024f: blt Label #20
L_0254: ldloc.s 10 (System.Single)
L_0256: ldloc.s 5 (System.Single)
L_0258: bge.un Label #21
L_025d: Label #20
L_025d: br Label #22
L_0262: Label #21
L_0262: ldarg.1
L_0263: ldloc.s 8 (RimWorld.Apparel)
L_0265: ldfld Verse.ThingDef def
L_026a: call Boolean HasPartsToWear(Verse.Pawn, Verse.ThingDef)
L_026f: brtrue Label #23
L_0274: br Label #24
L_0279: Label #23
L_0279: ldarg.1
L_027a: ldloc.s 8 (RimWorld.Apparel)
L_027c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0281: ldc.i4.1
L_0282: ldarg.1
L_0283: call Danger NormalMaxDanger(Verse.Pawn)
L_0288: ldc.i4.1
L_0289: ldc.i4.m1
L_028a: ldnull
L_028b: ldc.i4.0
L_028c: call Boolean CanReserveAndReach(Verse.Pawn, LocalTargetInfo, PathEndMode,
Danger, Int32, Int32, Verse.ReservationLayerDef, Boolean)
L_0291: brtrue Label #25
L_0296: br Label #26
L_029b: Label #25
L_029b: ldloc.s 8 (RimWorld.Apparel)
L_029d: stloc.s 4 (Verse.Thing)
L_029f: ldloc.s 10 (System.Single)
L_02a1: stloc.s 5 (System.Single)
L_02a3: Label #14
L_02a3: Label #16
L_02a3: Label #18
L_02a3: Label #22
L_02a3: Label #24
L_02a3: Label #26
L_02a3: ldloc.s 7 (System.Int32)
L_02a5: ldc.i4.1
L_02a6: add
L_02a7: stloc.s 7 (System.Int32)
L_02a9: Label #12
L_02a9: ldloc.s 7 (System.Int32)
L_02ab: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_02ad: callvirt Int32 get_Count()
L_02b2: blt Label #27
L_02b7: ldsfld System.Boolean debugApparelOptimize
L_02bc: brfalse Label #28
L_02c1: ldsfld System.Text.StringBuilder debugSb
L_02c6: ldstr "BEST: "
L_02cb: ldloc.s 4 (Verse.Thing)
L_02cd: call System.String Concat(System.Object, System.Object)
L_02d2: callvirt System.Text.StringBuilder AppendLine(System.String)
L_02d7: pop
L_02d8: ldsfld System.Text.StringBuilder debugSb
L_02dd: callvirt System.String ToString()
L_02e2: call Void Message(System.String)
L_02e7: ldnull
L_02e8: stsfld System.Text.StringBuilder debugSb
L_02ed: Label #28
L_02ed: ldloc.s 4 (Verse.Thing)
L_02ef: brtrue Label #29
L_02f4: ldarg.0
L_02f5: ldarg.1
L_02f6: call Void SetNextOptimizeTick(Verse.Pawn)
L_02fb: ldnull
L_02fc: br Label #0
L_0301: Label #29
L_0301: ldsfld Verse.JobDef Wear
L_0306: ldloc.s 4 (Verse.Thing)
L_0308: call LocalTargetInfo op_Implicit(Verse.Thing)
L_030d: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0312: br Label #0
L_0317: Label #0
L_0317: stloc 11 (Verse.AI.Job)
L_0319: ldloca 11 (Verse.AI.Job)
L_031b: ldarga 1
L_0321: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_0326: ldloc 11 (Verse.AI.Job)
L_0328: ret
DONE

PATCHING Verse.Pawn_HealthTracker Boolean ShouldBeDowned()


L_0000: Local var #0 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 0 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean get_InPainShock()
L_000c: brtrue Label #2
L_0011: ldarg.0
L_0012: ldfld Verse.PawnCapacitiesHandler capacities
L_0017: callvirt Boolean get_CanBeAwake()
L_001c: brfalse Label #3
L_0021: ldarg.0
L_0022: ldfld Verse.PawnCapacitiesHandler capacities
L_0027: ldsfld Verse.PawnCapacityDef Moving
L_002c: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0031: ldc.i4.0
L_0032: ceq
L_0034: br Label #4
L_0039: Label #2
L_0039: Label #3
L_0039: ldc.i4.1
L_003a: Label #4
L_003a: br Label #0
L_003f: Label #0
L_003f: stloc 0 (System.Boolean)
L_0040: ldarga 0
L_0046: ldloca 0 (System.Boolean)
L_0048: call Void SBD(Verse.Pawn_HealthTracker ByRef, Boolean ByRef)
L_004d: ldloc 0 (System.Boolean)
L_004e: ret
DONE
PATCHING Verse.Pawn_HealthTracker Void CheckForStateChange(Nullable`1,
Verse.Hediff)
L_0000: Local var #0 System.Single
L_0000: Local var #1 Verse.DamageInfo
L_0000: Local var #2 Verse.ThingWithComps
L_0000: ldarg.0
L_0001: call Boolean get_Dead()
L_0006: brtrue Label #2
L_000b: ldarg.0
L_000c: call Boolean ShouldBeDead()
L_0011: brfalse Label #3
L_0016: ldarg.0
L_0017: ldfld Verse.Pawn pawn
L_001c: callvirt Boolean get_Destroyed()
L_0021: brtrue Label #4
L_0026: ldarg.0
L_0027: ldfld Verse.Pawn pawn
L_002c: ldarg.1
L_002d: ldarg.2
L_002e: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_0033: Label #4
L_0033: br Label #0
L_0038: Label #3
L_0038: ldarg.0
L_0039: call Boolean get_Downed()
L_003e: brtrue Label #5
L_0043: ldarg.0
L_0044: call Boolean ShouldBeDowned()
L_0049: brfalse Label #6
L_004e: ldarg.0
L_004f: ldfld Verse.Pawn pawn
L_0054: callvirt Verse.RaceProperties get_RaceProps()
L_0059: callvirt Boolean get_Animal()
L_005e: brfalse Label #7
L_0063: ldc.r4 0.47
L_0068: br Label #8
L_006d: Label #7
L_006d: ldc.r4 0.67
L_0072: Label #8
L_0072: stloc.0
L_0073: ldarg.0
L_0074: ldfld System.Boolean forceIncap
L_0079: brtrue Label #9
L_007e: ldarga.s 1
L_0080: call Boolean get_HasValue()
L_0085: brfalse Label #10
L_008a: ldarga.s 1
L_008c: call DamageInfo get_Value()
L_0091: stloc.1
L_0092: ldloca.s 1 (Verse.DamageInfo)
L_0094: call Verse.DamageDef get_Def()
L_0099: ldfld System.Boolean externalViolence
L_009e: brfalse Label #11
L_00a3: ldarg.0
L_00a4: ldfld Verse.Pawn pawn
L_00a9: callvirt RimWorld.Faction get_Faction()
L_00ae: brfalse Label #12
L_00b3: ldarg.0
L_00b4: ldfld Verse.Pawn pawn
L_00b9: callvirt RimWorld.Faction get_Faction()
L_00be: callvirt Boolean get_IsPlayer()
L_00c3: brtrue Label #13
L_00c8: br Label #13
L_00cd: Label #12
L_00cd: ldarg.0
L_00ce: ldfld Verse.Pawn pawn
L_00d3: callvirt Boolean get_IsPrisonerOfColony()
L_00d8: brtrue Label #14
L_00dd: ldarg.0
L_00de: ldfld Verse.Pawn pawn
L_00e3: callvirt Verse.RaceProperties get_RaceProps()
L_00e8: callvirt Boolean get_IsFlesh()
L_00ed: brfalse Label #15
L_00f2: call Single get_Value()
L_00f7: ldloc.0
L_00f8: bge.un Label #16
L_00fd: ldarg.0
L_00fe: ldfld Verse.Pawn pawn
L_0103: ldarg.1
L_0104: ldnull
L_0105: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_010a: br Label #0
L_010f: Label #9
L_010f: Label #10
L_010f: Label #11
L_010f: Label #13
L_010f: Label #14
L_010f: Label #15
L_010f: Label #16
L_010f: ldarg.0
L_0110: ldc.i4.0
L_0111: stfld System.Boolean forceIncap
L_0116: ldarg.0
L_0117: ldarg.1
L_0118: ldarg.2
L_0119: call Void MakeDowned(Nullable`1, Verse.Hediff)
L_011e: br Label #0
L_0123: Label #6
L_0123: ldarg.0
L_0124: ldfld Verse.PawnCapacitiesHandler capacities
L_0129: ldsfld Verse.PawnCapacityDef Manipulation
L_012e: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0133: brtrue Label #17
L_0138: ldarg.0
L_0139: ldfld Verse.Pawn pawn
L_013e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0143: brfalse Label #18
L_0148: ldarg.0
L_0149: ldfld Verse.Pawn pawn
L_014e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0153: callvirt Verse.Thing get_CarriedThing()
L_0158: brfalse Label #19
L_015d: ldarg.0
L_015e: ldfld Verse.Pawn pawn
L_0163: ldfld Verse.AI.Pawn_JobTracker jobs
L_0168: brfalse Label #20
L_016d: ldarg.0
L_016e: ldfld Verse.Pawn pawn
L_0173: callvirt Verse.AI.Job get_CurJob()
L_0178: brfalse Label #21
L_017d: ldarg.0
L_017e: ldfld Verse.Pawn pawn
L_0183: ldfld Verse.AI.Pawn_JobTracker jobs
L_0188: ldc.i4.5
L_0189: ldc.i4.1
L_018a: callvirt Void EndCurrentJob(JobCondition, Boolean)
L_018f: Label #18
L_018f: Label #19
L_018f: Label #20
L_018f: Label #21
L_018f: ldarg.0
L_0190: ldfld Verse.Pawn pawn
L_0195: ldfld Verse.Pawn_EquipmentTracker equipment
L_019a: brfalse Label #22
L_019f: ldarg.0
L_01a0: ldfld Verse.Pawn pawn
L_01a5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01aa: callvirt Verse.ThingWithComps get_Primary()
L_01af: brfalse Label #23
L_01b4: ldarg.0
L_01b5: ldfld Verse.Pawn pawn
L_01ba: callvirt Boolean get_InContainerEnclosed()
L_01bf: brfalse Label #24
L_01c4: ldarg.0
L_01c5: ldfld Verse.Pawn pawn
L_01ca: ldfld Verse.Pawn_EquipmentTracker equipment
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01da: callvirt Verse.ThingWithComps get_Primary()
L_01df: ldarg.0
L_01e0: ldfld Verse.Pawn pawn
L_01e5: ldfld Verse.ThingOwner holdingOwner
L_01ea: callvirt Boolean TryTransferEquipmentToContainer(Verse.ThingWithComps,
Verse.ThingOwner)
L_01ef: pop
L_01f0: br Label #25
L_01f5: Label #24
L_01f5: ldarg.0
L_01f6: ldfld Verse.Pawn pawn
L_01fb: callvirt Boolean get_SpawnedOrAnyParentSpawned()
L_0200: brfalse Label #26
L_0205: ldarg.0
L_0206: ldfld Verse.Pawn pawn
L_020b: ldfld Verse.Pawn_EquipmentTracker equipment
L_0210: ldarg.0
L_0211: ldfld Verse.Pawn pawn
L_0216: ldfld Verse.Pawn_EquipmentTracker equipment
L_021b: callvirt Verse.ThingWithComps get_Primary()
L_0220: ldloca.s 2 (Verse.ThingWithComps)
L_0222: ldarg.0
L_0223: ldfld Verse.Pawn pawn
L_0228: callvirt IntVec3 get_PositionHeld()
L_022d: ldc.i4.1
L_022e: callvirt Boolean TryDropEquipment(Verse.ThingWithComps,
Verse.ThingWithComps ByRef, IntVec3, Boolean)
L_0233: pop
L_0234: br Label #27
L_0239: Label #26
L_0239: ldarg.0
L_023a: ldfld Verse.Pawn pawn
L_023f: ldfld Verse.Pawn_EquipmentTracker equipment
L_0244: ldarg.0
L_0245: ldfld Verse.Pawn pawn
L_024a: ldfld Verse.Pawn_EquipmentTracker equipment
L_024f: callvirt Verse.ThingWithComps get_Primary()
L_0254: callvirt Void DestroyEquipment(Verse.ThingWithComps)
L_0259: Label #17
L_0259: Label #22
L_0259: Label #23
L_0259: Label #25
L_0259: Label #27
L_0259: br Label #28
L_025e: Label #5
L_025e: ldarg.0
L_025f: call Boolean ShouldBeDowned()
L_0264: brtrue Label #29
L_0269: ldarg.0
L_026a: call Void MakeUndowned()
L_026f: br Label #0
L_0274: Label #2
L_0274: Label #28
L_0274: Label #29
L_0274: br Label #0
L_0279: Label #0
L_0279: ret
DONE

PATCHING RimWorld.RestUtility Single WakeThreshold(Verse.Pawn)


L_0000: Local var #0 Verse.AI.Group.Lord
L_0000: Local var #1 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #2 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #3 System.Single
L_0000: ldc.r4 0
L_0005: stloc 3 (System.Single)
L_0006: ldarg.0
L_0007: call Verse.AI.Group.Lord GetLord(Verse.Pawn)
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldloc.0
L_0014: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0019: brfalse Label #3
L_001e: ldloc.0
L_001f: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0024: callvirt Nullable`1 get_CustomWakeThreshold()
L_0029: stloc.1
L_002a: ldloca.s 1 (System.Nullable`1[System.Single])
L_002c: call Boolean get_HasValue()
L_0031: brfalse Label #4
L_0036: ldloc.0
L_0037: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_003c: callvirt Nullable`1 get_CustomWakeThreshold()
L_0041: stloc.2
L_0042: ldloca.s 2 (System.Nullable`1[System.Single])
L_0044: call Single get_Value()
L_0049: br Label #0
L_004e: Label #2
L_004e: Label #3
L_004e: Label #4
L_004e: ldc.r4 1
L_0053: br Label #0
L_0058: Label #0
L_0058: stloc 3 (System.Single)
L_0059: ldloca 3 (System.Single)
L_005b: ldarga 0
L_0061: call Void WakeThreshold_Patch(Single ByRef, Verse.Pawn ByRef)
L_0066: ldloc 3 (System.Single)
L_0067: ret
DONE

PATCHING Verse.Verb_Shoot Boolean TryCastShot()


L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 1 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean TryCastShot()
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldarg.0
L_0014: call Boolean get_CasterIsPawn()
L_0019: brfalse Label #3
L_001e: ldarg.0
L_001f: call Verse.Pawn get_CasterPawn()
L_0024: ldfld RimWorld.Pawn_RecordsTracker records
L_0029: ldsfld RimWorld.RecordDef ShotsFired
L_002e: callvirt Void Increment(RimWorld.RecordDef)
L_0033: Label #2
L_0033: Label #3
L_0033: ldloc.0
L_0034: br Label #0
L_0039: Label #0
L_0039: stloc 1 (System.Boolean)
L_003a: ldarga 0
L_0040: call Void TryCastShot_Patch(Verse.Verb_Shoot ByRef)
L_0045: ldloc 1 (System.Boolean)
L_0046: ret
DONE

PATCHING Verse.Pawn_EquipmentTracker Void


Notify_EquipmentAdded(Verse.ThingWithComps)
L_0000: Local var #0 Verse.Verb
L_0000: Local var #1 System.Collections.Generic.List`1+Enumerator[[Verse.Verb,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: ldarg.1
L_0001: callvirt Verse.CompEquippable GetComp[CompEquippable]()
L_0006: callvirt System.Collections.Generic.List`1[Verse.Verb] get_AllVerbs()
L_000b: callvirt Enumerator GetEnumerator()
L_0010: stloc.1
L_0011: br Label #2
L_0016: Label #3
L_0016: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0018: call Verse.Verb get_Current()
L_001d: stloc.0
L_001e: ldloc.0
L_001f: ldarg.0
L_0020: ldfld Verse.Pawn pawn
L_0025: stfld Verse.Thing caster
L_002a: ldloc.0
L_002b: callvirt Void Notify_PickedUp()
L_0030: Label #2
L_0030: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0032: call Boolean MoveNext()
L_0037: brtrue Label #3
L_003c: leave Label #4
L_0041: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0043: constrained. System.Collections.Generic.List`1+Enumerator[Verse.Verb]
L_0049: callvirt Void Dispose()
L_004e: endfinally
L_004f: Label #4
L_004f: br Label #0
L_0054: Label #0
L_0054: ldarga 1
L_005a: ldarga 0
L_0060: call Void Notify_EquipmentAdded_Patch(Verse.ThingWithComps ByRef,
Verse.Pawn_EquipmentTracker ByRef)
L_0065: ret
DONE

PATCHING RimWorld.PawnWeaponGenerator Void TryGenerateWeaponFor(Verse.Pawn)


L_0000: Local var #0 System.Single
L_0000: Local var #1 System.Int32
L_0000: Local var #2
RimWorld.PawnWeaponGenerator+<TryGenerateWeaponFor>c__AnonStorey2
L_0000: Local var #3 RimWorld.ThingStuffPair
L_0000: Local var #4 Verse.ThingWithComps
L_0000: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0005: callvirt Void Clear()
L_000a: ldarg.0
L_000b: ldfld Verse.PawnKindDef kindDef
L_0010: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0015: brfalse Label #2
L_001a: ldarg.0
L_001b: ldfld Verse.PawnKindDef kindDef
L_0020: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0025: callvirt Int32 get_Count()
L_002a: brtrue Label #3
L_002f: Label #2
L_002f: br Label #0
L_0034: Label #3
L_0034: ldarg.0
L_0035: callvirt Verse.RaceProperties get_RaceProps()
L_003a: callvirt Boolean get_ToolUser()
L_003f: brtrue Label #4
L_0044: br Label #0
L_0049: Label #4
L_0049: ldarg.0
L_004a: ldfld Verse.Pawn_HealthTracker health
L_004f: ldfld Verse.PawnCapacitiesHandler capacities
L_0054: ldsfld Verse.PawnCapacityDef Manipulation
L_0059: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_005e: brtrue Label #5
L_0063: br Label #0
L_0068: Label #5
L_0068: ldarg.0
L_0069: ldfld RimWorld.Pawn_StoryTracker story
L_006e: brfalse Label #6
L_0073: ldarg.0
L_0074: ldfld RimWorld.Pawn_StoryTracker story
L_0079: ldc.i4.8
L_007a: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_007f: brfalse Label #7
L_0084: br Label #0
L_0089: Label #6
L_0089: Label #7
L_0089: ldarg.0
L_008a: ldfld Verse.PawnKindDef kindDef
L_008f: ldflda Verse.FloatRange weaponMoney
L_0094: call Single get_RandomInRange()
L_0099: stloc.0
L_009a: ldc.i4.0
L_009b: stloc.1
L_009c: br Label #8
L_00a1: Label #16
L_00a1: newobj Void .ctor()
L_00a6: stloc.2
L_00a7: ldloc.2
L_00a8: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_00ad: ldloc.1
L_00ae: callvirt ThingStuffPair get_Item(Int32)
L_00b3: stfld RimWorld.ThingStuffPair w
L_00b8: ldloc.2
L_00b9: ldflda RimWorld.ThingStuffPair w
L_00be: call Single get_Price()
L_00c3: ldloc.0
L_00c4: ble.un Label #9
L_00c9: br Label #10
L_00ce: Label #9
L_00ce: ldarg.0
L_00cf: ldfld Verse.PawnKindDef kindDef
L_00d4: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_00d9: ldloc.2
L_00da: ldftn Boolean <>m__0(System.String)
L_00e0: newobj Void .ctor(Object, IntPtr)
L_00e5: call Boolean Any[String](System.Collections.Generic.List`1[System.String],
System.Predicate`1[System.String])
L_00ea: brtrue Label #11
L_00ef: br Label #12
L_00f4: Label #11
L_00f4: ldloc.2
L_00f5: ldflda RimWorld.ThingStuffPair w
L_00fa: ldfld Verse.ThingDef thing
L_00ff: ldfld System.Single generateAllowChance
L_0104: ldc.r4 1
L_0109: bge.un Label #13
L_010e: ldarg.0
L_010f: ldfld System.Int32 thingIDNumber
L_0114: ldc.i4 28554824
L_0119: xor
L_011a: call Single ValueSeeded(Int32)
L_011f: ldloc.2
L_0120: ldflda RimWorld.ThingStuffPair w
L_0125: ldfld Verse.ThingDef thing
L_012a: ldfld System.Single generateAllowChance
L_012f: ble.un Label #14
L_0134: br Label #15
L_0139: Label #13
L_0139: Label #14
L_0139: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_013e: ldloc.2
L_013f: ldfld RimWorld.ThingStuffPair w
L_0144: callvirt Void Add(ThingStuffPair)
L_0149: Label #10
L_0149: Label #12
L_0149: Label #15
L_0149: ldloc.1
L_014a: ldc.i4.1
L_014b: add
L_014c: stloc.1
L_014d: Label #8
L_014d: ldloc.1
L_014e: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_0153: callvirt Int32 get_Count()
L_0158: blt Label #16
L_015d: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0162: callvirt Int32 get_Count()
L_0167: brtrue Label #17
L_016c: br Label #0
L_0171: ldarg.0
L_0172: ldloc.2
L_0173: callvirt System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
FilterChildWeapons(Verse.Pawn,
System.Collections.Generic.List`1[RimWorld.ThingStuffPair])
L_0178: stloc.2
L_0179: Label #17
L_0179: ldarg.0
L_017a: ldfld Verse.Pawn_EquipmentTracker equipment
L_017f: ldc.i4.0
L_0180: callvirt Void DestroyAllEquipment(DestroyMode)
L_0185: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_018a: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_018f: brtrue Label #18
L_0194: ldnull
L_0195: ldftn Single <TryGenerateWeaponFor>m__2(ThingStuffPair)
L_019b: newobj Void .ctor(Object, IntPtr)
L_01a0: stsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01a5: Label #18
L_01a5: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01aa: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01ac: call Boolean TryRandomElementByWeight[ThingStuffPair](IEnumerable`1,
System.Func`2[RimWorld.ThingStuffPair,System.Single], ThingStuffPair ByRef)
L_01b1: brfalse Label #19
L_01b6: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01b8: ldfld Verse.ThingDef thing
L_01bd: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01bf: ldfld Verse.ThingDef stuff
L_01c4: call Verse.Thing MakeThing(Verse.ThingDef, Verse.ThingDef)
L_01c9: castclass Verse.ThingWithComps
L_01ce: stloc.s 4 (Verse.ThingWithComps)
L_01d0: ldloc.s 4 (Verse.ThingWithComps)
L_01d2: ldarg.0
L_01d3: call Void PostProcessGeneratedGear(Verse.Thing, Verse.Pawn)
L_01d8: ldarg.0
L_01d9: ldfld Verse.Pawn_EquipmentTracker equipment
L_01de: ldloc.s 4 (Verse.ThingWithComps)
L_01e0: callvirt Void AddEquipment(Verse.ThingWithComps)
L_01e5: Label #19
L_01e5: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_01ea: callvirt Void Clear()
L_01ef: br Label #0
L_01f4: Label #0
L_01f4: ret
DONE

PATCHING RimWorld.Bill_Medical Void Notify_DoBillStarted(Verse.Pawn)


L_0000: Local var #0 System.Collections.Generic.List`1[[Verse.ThingStackPartClass,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #1 System.Int32
L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void Notify_DoBillStarted(Verse.Pawn)
L_0007: ldarg.0
L_0008: ldnull
L_0009: stfld Verse.ThingDef consumedInitialMedicineDef
L_000e: ldarg.0
L_000f: call Verse.Pawn get_GiverPawn()
L_0014: callvirt Boolean get_Dead()
L_0019: brtrue Label #2
L_001e: ldarg.0
L_001f: ldfld Verse.RecipeDef recipe
L_0024: call Boolean RecipeHasNoIngredients(Verse.RecipeDef)
L_0029: brtrue Label #2
L_002e: ldarg.0
L_002f: ldfld Verse.RecipeDef recipe
L_0034: ldfld System.Boolean anesthetize
L_0039: brfalse Label #3
L_003e: ldarg.0
L_003f: call Verse.Pawn get_GiverPawn()
L_0044: call Boolean TryAnesthetize(Verse.Pawn)
L_0049: brfalse Label #4
L_004e: ldarg.1
L_004f: callvirt Verse.AI.Job get_CurJob()
L_0054: ldfld System.Collections.Generic.List`1[Verse.ThingStackPartClass]
placedThings
L_0059: stloc.0
L_005a: ldc.i4.0
L_005b: stloc.1
L_005c: br Label #5
L_0061: Label #10
L_0061: ldloc.0
L_0062: ldloc.1
L_0063: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0068: ldfld Verse.Thing thing
L_006d: isinst RimWorld.Medicine
L_0072: brfalse Label #6
L_0077: ldarg.0
L_0078: ldfld Verse.RecipeDef recipe
L_007d: callvirt Verse.RecipeWorker get_Worker()
L_0082: ldloc.0
L_0083: ldloc.1
L_0084: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0089: ldfld Verse.Thing thing
L_008e: ldc.i4.1
L_008f: callvirt Verse.Thing SplitOff(Int32)
L_0094: ldarg.0
L_0095: ldfld Verse.RecipeDef recipe
L_009a: ldarg.1
L_009b: callvirt Verse.Map get_MapHeld()
L_00a0: callvirt Void ConsumeIngredient(Verse.Thing, Verse.RecipeDef, Verse.Map)
L_00a5: ldloc.0
L_00a6: ldloc.1
L_00a7: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ac: dup
L_00ad: callvirt Int32 get_Count()
L_00b2: ldc.i4.1
L_00b3: sub
L_00b4: callvirt Void set_Count(Int32)
L_00b9: ldarg.0
L_00ba: ldloc.0
L_00bb: ldloc.1
L_00bc: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00c1: ldfld Verse.Thing thing
L_00c6: ldfld Verse.ThingDef def
L_00cb: stfld Verse.ThingDef consumedInitialMedicineDef
L_00d0: ldloc.0
L_00d1: ldloc.1
L_00d2: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00d7: ldfld Verse.Thing thing
L_00dc: callvirt Boolean get_Destroyed()
L_00e1: brtrue Label #7
L_00e6: ldloc.0
L_00e7: ldloc.1
L_00e8: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ed: callvirt Int32 get_Count()
L_00f2: ldc.i4.0
L_00f3: bgt Label #8
L_00f8: Label #7
L_00f8: ldloc.0
L_00f9: ldloc.1
L_00fa: callvirt Void RemoveAt(Int32)
L_00ff: Label #8
L_00ff: br Label #9
L_0104: Label #6
L_0104: ldloc.1
L_0105: ldc.i4.1
L_0106: add
L_0107: stloc.1
L_0108: Label #5
L_0108: ldloc.1
L_0109: ldloc.0
L_010a: callvirt Int32 get_Count()
L_010f: blt Label #10
L_0114: Label #2
L_0114: Label #3
L_0114: Label #4
L_0114: Label #9
L_0114: br Label #0
L_0119: Label #0
L_0119: ret
DONE

PATCHING RimWorld.Building_Bed IEnumerable`1 get_AssigningCandidates()


L_0000: ldarg.0
L_0001: callvirt IEnumerable`1 BedCandidates(RimWorld.Building_Bed)
L_0006: Label #0
L_0006: ret
DONE

PATCHING RimWorld.RestUtility RimWorld.Building_Bed FindBedFor(Verse.Pawn,


Verse.Pawn, Boolean, Boolean, Boolean)
L_0000: Local var #0 RimWorld.RestUtility+<FindBedFor>c__AnonStorey0
L_0000: Local var #1 RimWorld.Building_Bed
L_0000: Local var #2 Verse.Pawn
L_0000: Local var #3 Verse.Pawn
L_0000: Local var #4 System.Boolean
L_0000: Local var #5 System.Boolean
L_0000: Local var #6 System.Boolean
L_0000: Local var #7 System.Int32
L_0000: Local var #8 Verse.ThingDef
L_0000: Local var #9 System.Int32
L_0000: Local var #10 RimWorld.RestUtility+<FindBedFor>c__AnonStorey1
L_0000: Local var #11 RimWorld.Building_Bed
L_0000: Local var #12 RimWorld.DirectPawnRelation
L_0000: Local var #13 RimWorld.Building_Bed
L_0000: Local var #14 System.Int32
L_0000: Local var #15 RimWorld.RestUtility+<FindBedFor>c__AnonStorey2
L_0000: Local var #16 System.Int32
L_0000: Local var #17 Verse.ThingDef
L_0000: Local var #18 RimWorld.Building_Bed
L_0000: Local var #19 RimWorld.Building_Bed
L_0000: ldnull
L_0001: stloc 19 (RimWorld.Building_Bed)
L_0003: newobj Void .ctor()
L_0008: stloc.0
L_0009: ldloc.0
L_000a: ldarg.0
L_000b: stfld Verse.Pawn sleeper
L_0010: ldloc.0
L_0011: ldarg.1
L_0012: stfld Verse.Pawn traveler
L_0017: ldloc.0
L_0018: ldarg.2
L_0019: stfld System.Boolean sleeperWillBePrisoner
L_001e: ldloc.0
L_001f: ldarg.3
L_0020: stfld System.Boolean checkSocialProperness
L_0025: ldloc.0
L_0026: ldarg.s 4
L_0028: stfld System.Boolean ignoreOtherReservations
L_002d: ldloc.0
L_002e: ldfld Verse.Pawn sleeper
L_0033: call Boolean ShouldSeekMedicalRest(Verse.Pawn)
L_0038: brfalse Label #2
L_003d: ldloc.0
L_003e: ldfld Verse.Pawn sleeper
L_0043: call Boolean InBed(Verse.Pawn)
L_0048: brfalse Label #3
L_004d: ldloc.0
L_004e: ldfld Verse.Pawn sleeper
L_0053: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0058: callvirt Boolean get_Medical()
L_005d: brfalse Label #4
L_0062: ldloc.0
L_0063: ldfld Verse.Pawn sleeper
L_0068: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_006d: stloc.1
L_006e: ldloc.0
L_006f: ldfld Verse.Pawn sleeper
L_0074: stloc.2
L_0075: ldloc.0
L_0076: ldfld Verse.Pawn traveler
L_007b: stloc.3
L_007c: ldloc.0
L_007d: ldfld System.Boolean sleeperWillBePrisoner
L_0082: stloc.s 4 (System.Boolean)
L_0084: ldloc.0
L_0085: ldfld System.Boolean checkSocialProperness
L_008a: stloc.s 5 (System.Boolean)
L_008c: ldloc.0
L_008d: ldfld System.Boolean ignoreOtherReservations
L_0092: stloc.s 6 (System.Boolean)
L_0094: ldloc.1
L_0095: ldloc.2
L_0096: ldloc.3
L_0097: ldloc.s 4 (System.Boolean)
L_0099: ldloc.s 5 (System.Boolean)
L_009b: ldc.i4.0
L_009c: ldloc.s 6 (System.Boolean)
L_009e: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_00a3: brfalse Label #5
L_00a8: ldloc.0
L_00a9: ldfld Verse.Pawn sleeper
L_00ae: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00b3: br Label #0
L_00b8: Label #3
L_00b8: Label #4
L_00b8: Label #5
L_00b8: ldc.i4.0
L_00b9: stloc.s 7 (System.Int32)
L_00bb: br Label #6
L_00c0: Label #14
L_00c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_00c5: ldloc.s 7 (System.Int32)
L_00c7: callvirt Verse.ThingDef get_Item(Int32)
L_00cc: stloc.s 8 (Verse.ThingDef)
L_00ce: ldloc.0
L_00cf: ldfld Verse.Pawn sleeper
L_00d4: ldloc.s 8 (Verse.ThingDef)
L_00d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_00db: brtrue Label #7
L_00e0: br Label #8
L_00e5: Label #7
L_00e5: ldc.i4.0
L_00e6: stloc.s 9 (System.Int32)
L_00e8: br Label #9
L_00ed: Label #13
L_00ed: newobj Void .ctor()
L_00f2: stloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f4: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f6: ldloc.0
L_00f7: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_00fc: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00fe: ldloc.s 9 (System.Int32)
L_0100: brtrue Label #10
L_0105: ldc.i4.1
L_0106: br Label #11
L_010b: Label #10
L_010b: ldc.i4.3
L_010c: Label #11
L_010c: stfld Verse.Danger maxDanger
L_0111: ldloc.0
L_0112: ldfld Verse.Pawn sleeper
L_0117: callvirt IntVec3 get_Position()
L_011c: ldloc.0
L_011d: ldfld Verse.Pawn sleeper
L_0122: callvirt Verse.Map get_Map()
L_0127: ldloc.s 8 (Verse.ThingDef)
L_0129: call ThingRequest ForDef(Verse.ThingDef)
L_012e: ldc.i4.1
L_012f: ldloc.0
L_0130: ldfld Verse.Pawn traveler
L_0135: ldc.i4.3
L_0136: ldc.i4.0
L_0137: ldc.i4.0
L_0138: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_013d: ldc.r4 9999
L_0142: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_0144: ldftn Boolean <>m__0(Verse.Thing)
L_014a: newobj Void .ctor(Object, IntPtr)
L_014f: ldnull
L_0150: ldc.i4.0
L_0151: ldc.i4.m1
L_0152: ldc.i4.0
L_0153: ldc.i4.6
L_0154: ldc.i4.0
L_0155: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_015a: castclass RimWorld.Building_Bed
L_015f: stloc.s 11 (RimWorld.Building_Bed)
L_0161: ldloc.s 11 (RimWorld.Building_Bed)
L_0163: brfalse Label #12
L_0168: ldloc.s 11 (RimWorld.Building_Bed)
L_016a: br Label #0
L_016f: Label #12
L_016f: ldloc.s 9 (System.Int32)
L_0171: ldc.i4.1
L_0172: add
L_0173: stloc.s 9 (System.Int32)
L_0175: Label #9
L_0175: ldloc.s 9 (System.Int32)
L_0177: ldc.i4.2
L_0178: blt Label #13
L_017d: Label #8
L_017d: ldloc.s 7 (System.Int32)
L_017f: ldc.i4.1
L_0180: add
L_0181: stloc.s 7 (System.Int32)
L_0183: Label #6
L_0183: ldloc.s 7 (System.Int32)
L_0185: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_018a: callvirt Int32 get_Count()
L_018f: blt Label #14
L_0194: Label #2
L_0194: ldloc.0
L_0195: ldfld Verse.Pawn sleeper
L_019a: ldfld RimWorld.Pawn_Ownership ownership
L_019f: brfalse Label #15
L_01a4: ldloc.0
L_01a5: ldfld Verse.Pawn sleeper
L_01aa: ldfld RimWorld.Pawn_Ownership ownership
L_01af: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01b4: brfalse Label #16
L_01b9: ldloc.0
L_01ba: ldfld Verse.Pawn sleeper
L_01bf: ldfld RimWorld.Pawn_Ownership ownership
L_01c4: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01c9: stloc.1
L_01ca: ldloc.0
L_01cb: ldfld Verse.Pawn sleeper
L_01d0: stloc.3
L_01d1: ldloc.0
L_01d2: ldfld Verse.Pawn traveler
L_01d7: stloc.2
L_01d8: ldloc.0
L_01d9: ldfld System.Boolean sleeperWillBePrisoner
L_01de: stloc.s 6 (System.Boolean)
L_01e0: ldloc.0
L_01e1: ldfld System.Boolean checkSocialProperness
L_01e6: stloc.s 5 (System.Boolean)
L_01e8: ldloc.0
L_01e9: ldfld System.Boolean ignoreOtherReservations
L_01ee: stloc.s 4 (System.Boolean)
L_01f0: ldloc.1
L_01f1: ldloc.3
L_01f2: ldloc.2
L_01f3: ldloc.s 6 (System.Boolean)
L_01f5: ldloc.s 5 (System.Boolean)
L_01f7: ldc.i4.0
L_01f8: ldloc.s 4 (System.Boolean)
L_01fa: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_01ff: brfalse Label #17
L_0204: ldloc.0
L_0205: ldfld Verse.Pawn sleeper
L_020a: ldfld RimWorld.Pawn_Ownership ownership
L_020f: callvirt RimWorld.Building_Bed get_OwnedBed()
L_0214: br Label #0
L_0219: Label #15
L_0219: Label #16
L_0219: Label #17
L_0219: ldloc.0
L_021a: ldfld Verse.Pawn sleeper
L_021f: ldc.i4.0
L_0220: call RimWorld.DirectPawnRelation
ExistingMostLikedLovePartnerRel(Verse.Pawn, Boolean)
L_0225: stloc.s 12 (RimWorld.DirectPawnRelation)
L_0227: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0229: brfalse Label #18
L_022e: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0230: ldfld Verse.Pawn otherPawn
L_0235: ldfld RimWorld.Pawn_Ownership ownership
L_023a: callvirt RimWorld.Building_Bed get_OwnedBed()
L_023f: stloc.s 13 (RimWorld.Building_Bed)
L_0241: ldloc.s 13 (RimWorld.Building_Bed)
L_0243: brfalse Label #19
L_0248: ldloc.s 13 (RimWorld.Building_Bed)
L_024a: stloc.1
L_024b: ldloc.0
L_024c: ldfld Verse.Pawn sleeper
L_0251: stloc.2
L_0252: ldloc.0
L_0253: ldfld Verse.Pawn traveler
L_0258: stloc.3
L_0259: ldloc.0
L_025a: ldfld System.Boolean sleeperWillBePrisoner
L_025f: stloc.s 4 (System.Boolean)
L_0261: ldloc.0
L_0262: ldfld System.Boolean checkSocialProperness
L_0267: stloc.s 5 (System.Boolean)
L_0269: ldloc.0
L_026a: ldfld System.Boolean ignoreOtherReservations
L_026f: stloc.s 6 (System.Boolean)
L_0271: ldloc.1
L_0272: ldloc.2
L_0273: ldloc.3
L_0274: ldloc.s 4 (System.Boolean)
L_0276: ldloc.s 5 (System.Boolean)
L_0278: ldc.i4.0
L_0279: ldloc.s 6 (System.Boolean)
L_027b: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_0280: brfalse Label #20
L_0285: ldloc.s 13 (RimWorld.Building_Bed)
L_0287: br Label #0
L_028c: Label #18
L_028c: Label #19
L_028c: Label #20
L_028c: ldc.i4.0
L_028d: stloc.s 14 (System.Int32)
L_028f: br Label #21
L_0294: Label #29
L_0294: newobj Void .ctor()
L_0299: stloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029b: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029d: ldloc.0
L_029e: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_02a3: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_02a5: ldloc.s 14 (System.Int32)
L_02a7: brtrue Label #22
L_02ac: ldc.i4.1
L_02ad: br Label #23
L_02b2: Label #22
L_02b2: ldc.i4.3
L_02b3: Label #23
L_02b3: stfld Verse.Danger maxDanger
L_02b8: ldc.i4.0
L_02b9: stloc.s 16 (System.Int32)
L_02bb: br Label #24
L_02c0: Label #28
L_02c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_02c5: ldloc.s 16 (System.Int32)
L_02c7: callvirt Verse.ThingDef get_Item(Int32)
L_02cc: stloc.s 17 (Verse.ThingDef)
L_02ce: ldloc.0
L_02cf: ldfld Verse.Pawn sleeper
L_02d4: ldloc.s 17 (Verse.ThingDef)
L_02d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_02db: brtrue Label #25
L_02e0: br Label #26
L_02e5: Label #25
L_02e5: ldloc.0
L_02e6: ldfld Verse.Pawn sleeper
L_02eb: callvirt IntVec3 get_Position()
L_02f0: ldloc.0
L_02f1: ldfld Verse.Pawn sleeper
L_02f6: callvirt Verse.Map get_Map()
L_02fb: ldloc.s 17 (Verse.ThingDef)
L_02fd: call ThingRequest ForDef(Verse.ThingDef)
L_0302: ldc.i4.1
L_0303: ldloc.0
L_0304: ldfld Verse.Pawn traveler
L_0309: ldc.i4.3
L_030a: ldc.i4.0
L_030b: ldc.i4.0
L_030c: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_0311: ldc.r4 9999
L_0316: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_0318: ldftn Boolean <>m__0(Verse.Thing)
L_031e: newobj Void .ctor(Object, IntPtr)
L_0323: ldnull
L_0324: ldc.i4.0
L_0325: ldc.i4.m1
L_0326: ldc.i4.0
L_0327: ldc.i4.6
L_0328: ldc.i4.0
L_0329: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_032e: castclass RimWorld.Building_Bed
L_0333: stloc.s 18 (RimWorld.Building_Bed)
L_0335: ldloc.s 18 (RimWorld.Building_Bed)
L_0337: brfalse Label #27
L_033c: ldloc.s 18 (RimWorld.Building_Bed)
L_033e: br Label #0
L_0343: Label #26
L_0343: Label #27
L_0343: ldloc.s 16 (System.Int32)
L_0345: ldc.i4.1
L_0346: add
L_0347: stloc.s 16 (System.Int32)
L_0349: Label #24
L_0349: ldloc.s 16 (System.Int32)
L_034b: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_0350: callvirt Int32 get_Count()
L_0355: blt Label #28
L_035a: ldloc.s 14 (System.Int32)
L_035c: ldc.i4.1
L_035d: add
L_035e: stloc.s 14 (System.Int32)
L_0360: Label #21
L_0360: ldloc.s 14 (System.Int32)
L_0362: ldc.i4.2
L_0363: blt Label #29
L_0368: ldnull
L_0369: br Label #0
L_036e: Label #0
L_036e: stloc 19 (RimWorld.Building_Bed)
L_0370: ldarga 0
L_0376: ldloca 19 (RimWorld.Building_Bed)
L_0378: ldarga 1
L_037e: ldarga 4
L_0384: ldarga 2
L_038a: ldarga 3
L_0390: call Void FindBedFor_Patch(Verse.Pawn ByRef, RimWorld.Building_Bed ByRef,
Verse.Pawn ByRef, Boolean ByRef, Boolean ByRef, Boolean ByRef)
L_0395: ldloc 19 (RimWorld.Building_Bed)
L_0397: ret
DONE

PATCHING RimWorld.JobGiver_DoLovin Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 1 (Verse.AI.Job)
L_0002: call Verse.TickManager get_TickManager()
L_0007: callvirt Int32 get_TicksGame()
L_000c: ldarg.1
L_000d: ldfld Verse.AI.Pawn_MindState mindState
L_0012: ldfld System.Int32 canLovinTick
L_0017: bge Label #2
L_001c: ldnull
L_001d: br Label #0
L_0022: Label #2
L_0022: ldarg.1
L_0023: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0028: brfalse Label #3
L_002d: ldarg.1
L_002e: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0033: callvirt Boolean get_Medical()
L_0038: brtrue Label #4
L_003d: ldarg.1
L_003e: ldfld Verse.Pawn_HealthTracker health
L_0043: ldfld Verse.PawnCapacitiesHandler capacities
L_0048: callvirt Boolean get_CanBeAwake()
L_004d: brtrue Label #5
L_0052: Label #3
L_0052: Label #4
L_0052: ldnull
L_0053: br Label #0
L_0058: Label #5
L_0058: ldarg.1
L_0059: call Verse.Pawn GetPartnerInMyBed(Verse.Pawn)
L_005e: stloc.0
L_005f: ldloc.0
L_0060: brfalse Label #6
L_0065: ldloc.0
L_0066: ldfld Verse.Pawn_HealthTracker health
L_006b: ldfld Verse.PawnCapacitiesHandler capacities
L_0070: callvirt Boolean get_CanBeAwake()
L_0075: brfalse Label #7
L_007a: call Verse.TickManager get_TickManager()
L_007f: callvirt Int32 get_TicksGame()
L_0084: ldloc.0
L_0085: ldfld Verse.AI.Pawn_MindState mindState
L_008a: ldfld System.Int32 canLovinTick
L_008f: bge Label #8
L_0094: Label #6
L_0094: Label #7
L_0094: ldnull
L_0095: br Label #0
L_009a: Label #8
L_009a: ldarg.1
L_009b: ldloc.0
L_009c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00a1: ldc.i4.1
L_00a2: ldc.i4.m1
L_00a3: ldnull
L_00a4: ldc.i4.0
L_00a5: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00aa: brfalse Label #9
L_00af: ldloc.0
L_00b0: ldarg.1
L_00b1: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00b6: ldc.i4.1
L_00b7: ldc.i4.m1
L_00b8: ldnull
L_00b9: ldc.i4.0
L_00ba: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00bf: brtrue Label #10
L_00c4: Label #9
L_00c4: ldnull
L_00c5: br Label #0
L_00ca: Label #10
L_00ca: ldsfld Verse.JobDef Lovin
L_00cf: ldloc.0
L_00d0: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00d5: ldarg.1
L_00d6: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00db: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00e0: newobj Void .ctor(JobDef, LocalTargetInfo, LocalTargetInfo)
L_00e5: br Label #0
L_00ea: Label #0
L_00ea: stloc 1 (Verse.AI.Job)
L_00eb: ldloca 1 (Verse.AI.Job)
L_00ed: ldarga 1
L_00f3: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_00f8: ldloc 1 (Verse.AI.Job)
L_00f9: ret
DONE

PATCHING RimWorld.JobDriver_Lovin+<MakeNewToils>c__Iterator0 Void <>m__4()


L_0000: Local var #0 RimWorld.Thought_Memory
L_0000: ldsfld RimWorld.ThoughtDef GotSomeLovin
L_0005: call RimWorld.Thought MakeThought(RimWorld.ThoughtDef)
L_000a: castclass RimWorld.Thought_Memory
L_000f: stloc.0
L_0010: ldarg.0
L_0011: ldfld RimWorld.JobDriver_Lovin $this
L_0016: ldfld Verse.Pawn pawn
L_001b: ldfld RimWorld.Pawn_NeedsTracker needs
L_0020: ldfld RimWorld.Need_Mood mood
L_0025: ldfld RimWorld.ThoughtHandler thoughts
L_002a: ldfld RimWorld.MemoryThoughtHandler memories
L_002f: ldloc.0
L_0030: ldarg.0
L_0031: ldfld RimWorld.JobDriver_Lovin $this
L_0036: call Verse.Pawn get_Partner()
L_003b: callvirt Void TryGainMemory(RimWorld.Thought_Memory, Verse.Pawn)
L_0040: ldarg.0
L_0041: ldfld RimWorld.JobDriver_Lovin $this
L_0046: ldfld Verse.Pawn pawn
L_004b: ldfld Verse.AI.Pawn_MindState mindState
L_0050: call Verse.TickManager get_TickManager()
L_0055: callvirt Int32 get_TicksGame()
L_005a: ldarg.0
L_005b: ldfld RimWorld.JobDriver_Lovin $this
L_0060: ldarg.0
L_0061: ldfld RimWorld.JobDriver_Lovin $this
L_0066: ldfld Verse.Pawn pawn
L_006b: call Int32 GenerateRandomMinTicksToNextLovin(Verse.Pawn)
L_0070: add
L_0071: stfld System.Int32 canLovinTick
L_0076: ldarg.0
L_0077: ldfld RimWorld.JobDriver_Lovin $this
L_007c: ldfld Verse.Pawn pawn
L_0081: ldarg.0
L_0082: ldfld RimWorld.JobDriver_Lovin $this
L_0087: call Verse.Pawn get_Partner()
L_008c: call Void TryToImpregnate(Verse.Pawn, Verse.Pawn)
L_0091: br Label #0
L_0096: Label #0
L_0096: ret
DONE

PATCHING RimWorld.JobDriver_Wear+<MakeNewToils>c__Iterator0 Boolean MoveNext()


L_0000: Local var #0 System.UInt32
L_0000: ldarg.0
L_0001: ldfld System.Int32 $PC
L_0006: stloc.0
L_0007: ldarg.0
L_0008: ldc.i4.m1
L_0009: stfld System.Int32 $PC
L_000e: ldloc.0
L_000f: switch Labels #2 #3 #4 #5
L_0024: br Label #6
L_0029: Label #2
L_0029: ldarg.0
L_002a: ldfld RimWorld.JobDriver_Wear $this
L_002f: call RimWorld.JobDriver_Wear FailOnBaby[JobDriver_Wear]
(RimWorld.JobDriver_Wear)
L_0034: pop
L_0035: ldarg.0
L_0036: newobj Void .ctor()
L_003b: stfld Verse.AI.Toil <gotoApparel>__1
L_0040: ldarg.0
L_0041: ldfld Verse.AI.Toil <gotoApparel>__1
L_0046: ldarg.0
L_0047: ldftn Void <>m__0()
L_004d: newobj Void .ctor(Object, IntPtr)
L_0052: stfld System.Action initAction
L_0057: ldarg.0
L_0058: ldfld Verse.AI.Toil <gotoApparel>__1
L_005d: ldc.i4.2
L_005e: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0063: ldarg.0
L_0064: ldfld Verse.AI.Toil <gotoApparel>__1
L_0069: ldc.i4.1
L_006a: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_006f: pop
L_0070: ldarg.0
L_0071: ldarg.0
L_0072: ldfld Verse.AI.Toil <gotoApparel>__1
L_0077: stfld Verse.AI.Toil $current
L_007c: ldarg.0
L_007d: ldfld System.Boolean $disposing
L_0082: brtrue Label #7
L_0087: ldarg.0
L_0088: ldc.i4.1
L_0089: stfld System.Int32 $PC
L_008e: Label #7
L_008e: br Label #8
L_0093: Label #3
L_0093: ldarg.0
L_0094: newobj Void .ctor()
L_0099: stfld Verse.AI.Toil <prepare>__2
L_009e: ldarg.0
L_009f: ldfld Verse.AI.Toil <prepare>__2
L_00a4: ldc.i4.3
L_00a5: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_00aa: ldarg.0
L_00ab: ldfld Verse.AI.Toil <prepare>__2
L_00b0: ldc.i4.s 60
L_00b2: stfld System.Int32 defaultDuration
L_00b7: ldarg.0
L_00b8: ldfld Verse.AI.Toil <prepare>__2
L_00bd: ldc.i4.1
L_00be: ldc.i4.0
L_00bf: ldc.r4 -0.5
L_00c4: call Verse.AI.Toil WithProgressBarToilDelay(Verse.AI.Toil, TargetIndex,
Boolean, Single)
L_00c9: pop
L_00ca: ldarg.0
L_00cb: ldfld Verse.AI.Toil <prepare>__2
L_00d0: ldc.i4.1
L_00d1: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_00d6: pop
L_00d7: ldarg.0
L_00d8: ldarg.0
L_00d9: ldfld Verse.AI.Toil <prepare>__2
L_00de: stfld Verse.AI.Toil $current
L_00e3: ldarg.0
L_00e4: ldfld System.Boolean $disposing
L_00e9: brtrue Label #9
L_00ee: ldarg.0
L_00ef: ldc.i4.2
L_00f0: stfld System.Int32 $PC
L_00f5: Label #9
L_00f5: br Label #10
L_00fa: Label #4
L_00fa: ldarg.0
L_00fb: newobj Void .ctor()
L_0100: stfld Verse.AI.Toil <wear>__3
L_0105: ldarg.0
L_0106: ldfld Verse.AI.Toil <wear>__3
L_010b: ldarg.0
L_010c: ldftn Void <>m__1()
L_0112: newobj Void .ctor(Object, IntPtr)
L_0117: stfld System.Action initAction
L_011c: ldarg.0
L_011d: ldfld Verse.AI.Toil <wear>__3
L_0122: ldc.i4.1
L_0123: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0128: ldarg.0
L_0129: ldarg.0
L_012a: ldfld Verse.AI.Toil <wear>__3
L_012f: stfld Verse.AI.Toil $current
L_0134: ldarg.0
L_0135: ldfld System.Boolean $disposing
L_013a: brtrue Label #11
L_013f: ldarg.0
L_0140: ldc.i4.3
L_0141: stfld System.Int32 $PC
L_0146: Label #11
L_0146: br Label #12
L_014b: Label #5
L_014b: ldarg.0
L_014c: ldc.i4.m1
L_014d: stfld System.Int32 $PC
L_0152: Label #6
L_0152: ldc.i4.0
L_0153: br Label #0
L_0158: Label #8
L_0158: Label #10
L_0158: Label #12
L_0158: ldc.i4.1
L_0159: br Label #0
L_015e: Label #0
L_015e: ret
DONE

PATCHING RimWorld.ListerHaulables Void Notify_DeSpawned(Verse.Thing)


L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void TryRemove(Verse.Thing)
L_0007: br Label #0
L_000c: Label #0
L_000c: ldarg 1
L_0012: ldarg.0
L_0013: call Void Postfix(Verse.Thing, RimWorld.ListerHaulables)
L_0018: ret
DONE

PATCHING RimWorld.ListerHaulables Void Notify_Forbidden(Verse.Thing)


L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void TryRemove(Verse.Thing)
L_0007: br Label #0
L_000c: Label #0
L_000c: ldarg 1
L_0012: call Void Postfix(Verse.Thing)
L_0017: ret
DONE

PATCHING RimWorld.ListerHaulables Void Notify_SlotGroupChanged(RimWorld.SlotGroup)


L_0000: Local var #0 System.Int32
L_0000: ldarg.1
L_0001: callvirt System.Collections.Generic.List`1[Verse.IntVec3] get_CellsList()
L_0006: brfalse Label #2
L_000b: ldc.i4.0
L_000c: stloc.0
L_000d: br Label #3
L_0012: Label #4
L_0012: ldarg.0
L_0013: ldarg.1
L_0014: callvirt System.Collections.Generic.List`1[Verse.IntVec3] get_CellsList()
L_0019: ldloc.0
L_001a: callvirt IntVec3 get_Item(Int32)
L_001f: call Void RecalcAllInCell(IntVec3)
L_0024: ldloc.0
L_0025: ldc.i4.1
L_0026: add
L_0027: stloc.0
L_0028: Label #3
L_0028: ldloc.0
L_0029: ldarg.1
L_002a: callvirt System.Collections.Generic.List`1[Verse.IntVec3] get_CellsList()
L_002f: callvirt Int32 get_Count()
L_0034: blt Label #4
L_0039: Label #2
L_0039: br Label #0
L_003e: Label #0
L_003e: ldarg 1
L_0044: ldarg.0
L_0045: call Void Postfix(RimWorld.SlotGroup, RimWorld.ListerHaulables)
L_004a: ret
DONE

PATCHING RimWorld.ListerHaulables Void Notify_Spawned(Verse.Thing)


L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void CheckAdd(Verse.Thing)
L_0007: br Label #0
L_000c: Label #0
L_000c: ldarg 1
L_0012: call Void Postfix(Verse.Thing)
L_0017: ret
DONE

PATCHING RimWorld.ListerHaulables Void Notify_Unforbidden(Verse.Thing)


L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void CheckAdd(Verse.Thing)
L_0007: br Label #0
L_000c: Label #0
L_000c: ldarg 1
L_0012: call Void Postfix(Verse.Thing)
L_0017: ret
DONE

PATCHING RimWorld.ThoughtUtility Boolean CanGetThought(Verse.Pawn,


RimWorld.ThoughtDef)
L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Int32
L_0000: Local var #2 System.Boolean
L_0000: Local var #3 System.Int32
L_0000: Local var #4 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 4 (System.Boolean)
L_0007: ldarg.1
L_0008: ldfld System.Boolean validWhileDespawned
L_000d: brtrue Label #2
L_0012: ldarg.0
L_0013: callvirt Boolean get_Spawned()
L_0018: brtrue Label #3
L_001d: ldarg.1
L_001e: callvirt Boolean get_IsMemory()
L_0023: brtrue Label #4
L_0028: ldc.i4.0
L_0029: stloc.0
L_002a: leave Label #5
L_002f: Label #2
L_002f: Label #3
L_002f: Label #4
L_002f: ldarg.1
L_0030: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0035: brfalse Label #6
L_003a: ldc.i4.0
L_003b: stloc.1
L_003c: br Label #7
L_0041: Label #10
L_0041: ldarg.0
L_0042: ldfld RimWorld.Pawn_StoryTracker story
L_0047: ldfld RimWorld.TraitSet traits
L_004c: ldarg.1
L_004d: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0052: ldloc.1
L_0053: callvirt RimWorld.TraitDef get_Item(Int32)
L_0058: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_005d: brfalse Label #8
L_0062: ldc.i4.0
L_0063: stloc.0
L_0064: leave Label #9
L_0069: Label #8
L_0069: ldloc.1
L_006a: ldc.i4.1
L_006b: add
L_006c: stloc.1
L_006d: Label #7
L_006d: ldloc.1
L_006e: ldarg.1
L_006f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0074: callvirt Int32 get_Count()
L_0079: blt Label #10
L_007e: Label #6
L_007e: ldarg.1
L_007f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0084: call Boolean NullOrEmpty[TraitDef](IList`1)
L_0089: brtrue Label #11
L_008e: ldc.i4.0
L_008f: stloc.2
L_0090: ldc.i4.0
L_0091: stloc.3
L_0092: br Label #12
L_0097: Label #19
L_0097: ldarg.0
L_0098: ldfld RimWorld.Pawn_StoryTracker story
L_009d: ldfld RimWorld.TraitSet traits
L_00a2: ldarg.1
L_00a3: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00a8: ldloc.3
L_00a9: callvirt RimWorld.TraitDef get_Item(Int32)
L_00ae: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_00b3: brtrue Label #13
L_00b8: leave Label #14
L_00bd: Label #13
L_00bd: ldarg.1
L_00be: callvirt Boolean get_RequiresSpecificTraitsDegree()
L_00c3: brfalse Label #15
L_00c8: ldarg.1
L_00c9: ldfld System.Int32 requiredTraitsDegree
L_00ce: ldarg.0
L_00cf: ldfld RimWorld.Pawn_StoryTracker story
L_00d4: ldfld RimWorld.TraitSet traits
L_00d9: ldarg.1
L_00da: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00df: ldloc.3
L_00e0: callvirt RimWorld.TraitDef get_Item(Int32)
L_00e5: callvirt Int32 DegreeOfTrait(RimWorld.TraitDef)
L_00ea: beq Label #16
L_00ef: leave Label #17
L_00f4: Label #15
L_00f4: Label #16
L_00f4: ldc.i4.1
L_00f5: stloc.2
L_00f6: leave Label #18
L_00fb: Label #14
L_00fb: Label #17
L_00fb: ldloc.3
L_00fc: ldc.i4.1
L_00fd: add
L_00fe: stloc.3
L_00ff: Label #12
L_00ff: ldloc.3
L_0100: ldarg.1
L_0101: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0106: callvirt Int32 get_Count()
L_010b: blt Label #19
L_0110: Label #18
L_0110: ldloc.2
L_0111: brtrue Label #20
L_0116: ldc.i4.0
L_0117: stloc.0
L_0118: leave Label #21
L_011d: Label #11
L_011d: Label #20
L_011d: ldarg.1
L_011e: ldfld System.Boolean nullifiedIfNotColonist
L_0123: brfalse Label #22
L_0128: ldarg.0
L_0129: callvirt Boolean get_IsColonist()
L_012e: brtrue Label #23
L_0133: ldc.i4.0
L_0134: stloc.0
L_0135: leave Label #24
L_013a: Label #22
L_013a: Label #23
L_013a: ldarg.1
L_013b: ldarg.0
L_013c: call Boolean IsSituationalThoughtNullifiedByHediffs(RimWorld.ThoughtDef,
Verse.Pawn)
L_0141: brfalse Label #25
L_0146: ldc.i4.0
L_0147: stloc.0
L_0148: leave Label #26
L_014d: Label #25
L_014d: ldarg.1
L_014e: ldarg.0
L_014f: call Boolean IsThoughtNullifiedByOwnTales(RimWorld.ThoughtDef, Verse.Pawn)
L_0154: brfalse Label #27
L_0159: ldc.i4.0
L_015a: stloc.0
L_015b: leave Label #28
L_0160: Label #27
L_0160: leave Label #29
L_0165: endfinally
L_0166: Label #29
L_0166: ldc.i4.1
L_0167: br Label #0
L_016c: Label #5
L_016c: Label #9
L_016c: Label #21
L_016c: Label #24
L_016c: Label #26
L_016c: Label #28
L_016c: ldloc.0
L_016d: br Label #0
L_0172: Label #0
L_0172: stloc 4 (System.Boolean)
L_0174: ldarga 0
L_017a: ldarga 1
L_0180: ldloca 4 (System.Boolean)
L_0182: call Void CanGetThought_Patch(Verse.Pawn ByRef, RimWorld.ThoughtDef ByRef,
Boolean ByRef)
L_0187: ldloc 4 (System.Boolean)
L_0189: ret
DONE

PATCHING RimWorld.JobGiver_SocialFighting Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Verb
L_0000: Local var #2 Verse.AI.Job
L_0000: Local var #3 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 3 (Verse.AI.Job)
L_0002: ldarg.1
L_0003: callvirt Verse.RaceProperties get_RaceProps()
L_0008: callvirt Boolean get_Humanlike()
L_000d: brfalse Label #2
L_0012: ldarg.1
L_0013: ldfld RimWorld.Pawn_StoryTracker story
L_0018: ldc.i4.8
L_0019: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_001e: brfalse Label #3
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: Label #3
L_0029: ldarg.1
L_002a: callvirt Verse.AI.MentalState get_MentalState()
L_002f: castclass Verse.AI.MentalState_SocialFighting
L_0034: ldfld Verse.Pawn otherPawn
L_0039: stloc.0
L_003a: ldarg.1
L_003b: ldloca.s 1 (Verse.Verb)
L_003d: call Boolean TryGetRandomVerbForSocialFight(Verse.Pawn, Verse.Verb ByRef)
L_0042: brtrue Label #4
L_0047: ldnull
L_0048: br Label #0
L_004d: Label #4
L_004d: ldsfld Verse.JobDef SocialFight
L_0052: ldloc.0
L_0053: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0058: newobj Void .ctor(JobDef, LocalTargetInfo)
L_005d: stloc.2
L_005e: ldloc.2
L_005f: ldc.i4.1
L_0060: stfld System.Int32 maxNumMeleeAttacks
L_0065: ldloc.2
L_0066: ldloc.1
L_0067: stfld Verse.Verb verbToUse
L_006c: ldloc.2
L_006d: br Label #0
L_0072: Label #0
L_0072: stloc 3 (Verse.AI.Job)
L_0073: ldarga 1
L_0079: ldloca 3 (Verse.AI.Job)
L_007b: call Void TryGiveJob_Postfix(Verse.Pawn ByRef, Verse.AI.Job ByRef)
L_0080: ldloc 3 (Verse.AI.Job)
L_0081: ret
DONE

PATCHING RimWorld.Pawn_ApparelTracker Void ApparelChanged()


L_0000: ldarg.0
L_0001: ldftn Void <ApparelChanged>m__1()
L_0007: newobj Void .ctor(Object, IntPtr)
L_000c: call Void ExecuteWhenFinished(System.Action)
L_0011: br Label #0
L_0016: Label #0
L_0016: ldarga 0
L_001c: call Void ApparelChanged_Postfix(RimWorld.Pawn_ApparelTracker ByRef)
L_0021: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveAllGraphics()


L_0000: Local var #0 Verse.PawnKindLifeStage
L_0000: ldarg.0
L_0001: call Void ClearCache()
L_0006: ldarg.0
L_0007: ldfld Verse.Pawn pawn
L_000c: callvirt Verse.RaceProperties get_RaceProps()
L_0011: callvirt Boolean get_Humanlike()
L_0016: brfalse Label #2
L_001b: ldarg.0
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_StoryTracker story
L_0027: ldfld RimWorld.BodyType bodyType
L_002c: ldsfld UnityEngine.Shader CutoutSkin
L_0031: ldarg.0
L_0032: ldfld Verse.Pawn pawn
L_0037: ldfld RimWorld.Pawn_StoryTracker story
L_003c: callvirt Color get_SkinColor()
L_0041: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_0046: stfld Verse.Graphic nakedGraphic
L_004b: ldarg.0
L_004c: ldarg.0
L_004d: ldfld Verse.Pawn pawn
L_0052: ldfld RimWorld.Pawn_StoryTracker story
L_0057: ldfld RimWorld.BodyType bodyType
L_005c: ldsfld UnityEngine.Shader CutoutSkin
L_0061: ldsfld UnityEngine.Color RottingColor
L_0066: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_006b: stfld Verse.Graphic rottingGraphic
L_0070: ldarg.0
L_0071: ldstr "Things/Pawn/Humanlike/HumanoidDessicated"
L_0076: ldsfld UnityEngine.Shader Cutout
L_007b: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader)
L_0080: stfld Verse.Graphic dessicatedGraphic
L_0085: ldarg.0
L_0086: ldarg.0
L_0087: ldfld Verse.Pawn pawn
L_008c: ldfld RimWorld.Pawn_StoryTracker story
L_0091: callvirt System.String get_HeadGraphicPath()
L_0096: ldarg.0
L_0097: ldfld Verse.Pawn pawn
L_009c: ldfld RimWorld.Pawn_StoryTracker story
L_00a1: callvirt Color get_SkinColor()
L_00a6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00ab: stfld Verse.Graphic headGraphic
L_00b0: ldarg.0
L_00b1: ldarg.0
L_00b2: ldfld Verse.Pawn pawn
L_00b7: ldfld RimWorld.Pawn_StoryTracker story
L_00bc: callvirt System.String get_HeadGraphicPath()
L_00c1: ldsfld UnityEngine.Color RottingColor
L_00c6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00cb: stfld Verse.Graphic desiccatedHeadGraphic
L_00d0: ldarg.0
L_00d1: call Verse.Graphic_Multi GetSkull()
L_00d6: stfld Verse.Graphic skullGraphic
L_00db: ldarg.0
L_00dc: ldarg.0
L_00dd: ldfld Verse.Pawn pawn
L_00e2: ldfld RimWorld.Pawn_StoryTracker story
L_00e7: callvirt Color get_SkinColor()
L_00ec: call Verse.Graphic_Multi GetStump(Color)
L_00f1: stfld Verse.Graphic headStumpGraphic
L_00f6: ldarg.0
L_00f7: ldsfld UnityEngine.Color RottingColor
L_00fc: call Verse.Graphic_Multi GetStump(Color)
L_0101: stfld Verse.Graphic desiccatedHeadStumpGraphic
L_0106: ldarg.0
L_0107: ldarg.0
L_0108: ldfld Verse.Pawn pawn
L_010d: ldfld RimWorld.Pawn_StoryTracker story
L_0112: ldfld RimWorld.HairDef hairDef
L_0117: ldfld System.String texPath
L_011c: ldsfld UnityEngine.Shader Cutout
L_0121: call Vector2 get_one()
L_0126: ldarg.0
L_0127: ldfld Verse.Pawn pawn
L_012c: ldfld RimWorld.Pawn_StoryTracker story
L_0131: ldfld UnityEngine.Color hairColor
L_0136: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_013b: stfld Verse.Graphic hairGraphic
L_0140: ldarg.0
L_0141: call Void ResolveApparelGraphics()
L_0146: br Label #3
L_014b: Label #2
L_014b: ldarg.0
L_014c: ldfld Verse.Pawn pawn
L_0151: ldfld Verse.Pawn_AgeTracker ageTracker
L_0156: callvirt Verse.PawnKindLifeStage get_CurKindLifeStage()
L_015b: stloc.0
L_015c: ldarg.0
L_015d: ldfld Verse.Pawn pawn
L_0162: ldfld Verse.Gender gender
L_0167: ldc.i4.2
L_0168: bne.un Label #4
L_016d: ldloc.0
L_016e: ldfld Verse.GraphicData femaleGraphicData
L_0173: brtrue Label #5
L_0178: Label #4
L_0178: ldarg.0
L_0179: ldloc.0
L_017a: ldfld Verse.GraphicData bodyGraphicData
L_017f: callvirt Verse.Graphic get_Graphic()
L_0184: stfld Verse.Graphic nakedGraphic
L_0189: br Label #6
L_018e: Label #5
L_018e: ldarg.0
L_018f: ldloc.0
L_0190: ldfld Verse.GraphicData femaleGraphicData
L_0195: callvirt Verse.Graphic get_Graphic()
L_019a: stfld Verse.Graphic nakedGraphic
L_019f: Label #6
L_019f: ldarg.0
L_01a0: ldarg.0
L_01a1: ldfld Verse.Graphic nakedGraphic
L_01a6: ldsfld UnityEngine.Shader CutoutSkin
L_01ab: ldsfld UnityEngine.Color RottingColor
L_01b0: ldsfld UnityEngine.Color RottingColor
L_01b5: callvirt Verse.Graphic GetColoredVersion(UnityEngine.Shader, Color, Color)
L_01ba: stfld Verse.Graphic rottingGraphic
L_01bf: ldarg.0
L_01c0: ldfld Verse.Pawn pawn
L_01c5: callvirt Verse.RaceProperties get_RaceProps()
L_01ca: ldfld System.Boolean packAnimal
L_01cf: brfalse Label #7
L_01d4: ldarg.0
L_01d5: ldarg.0
L_01d6: ldfld Verse.Graphic nakedGraphic
L_01db: ldfld System.String path
L_01e0: ldstr "Pack"
L_01e5: call System.String Concat(System.String, System.String)
L_01ea: ldsfld UnityEngine.Shader Cutout
L_01ef: ldarg.0
L_01f0: ldfld Verse.Graphic nakedGraphic
L_01f5: ldfld UnityEngine.Vector2 drawSize
L_01fa: call Color get_white()
L_01ff: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_0204: stfld Verse.Graphic packGraphic
L_0209: Label #7
L_0209: ldloc.0
L_020a: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_020f: brfalse Label #8
L_0214: ldarg.0
L_0215: ldloc.0
L_0216: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_021b: ldarg.0
L_021c: ldfld Verse.Pawn pawn
L_0221: callvirt Verse.Graphic GraphicColoredFor(Verse.Thing)
L_0226: stfld Verse.Graphic dessicatedGraphic
L_022b: Label #3
L_022b: Label #8
L_022b: br Label #0
L_0230: Label #0
L_0230: ldarga 0
L_0236: call Void ResolveAllGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_023b: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveApparelGraphics()


L_0000: Local var #0 RimWorld.Apparel
L_0000: Local var #1 System.Collections.Generic.IEnumerator`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 RimWorld.ApparelGraphicRecord
L_0000: ldarga 0
L_0006: call Void ResolveApparelGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_000b: ldarg.0
L_000c: call Void ClearCache()
L_0011: ldarg.0
L_0012: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0017: callvirt Void Clear()
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_ApparelTracker apparel
L_0027: callvirt IEnumerable`1 get_WornApparelInDrawOrder()
L_002c: callvirt IEnumerator`1 GetEnumerator()
L_0031: stloc.1
L_0032: br Label #2
L_0037: Label #4
L_0037: ldloc.1
L_0038: callvirt RimWorld.Apparel get_Current()
L_003d: stloc.0
L_003e: ldloc.0
L_003f: ldarg.0
L_0040: ldfld Verse.Pawn pawn
L_0045: call BodyType ModifyChildBodyType(Verse.Pawn)
L_004a: ldloca.s 2 (RimWorld.ApparelGraphicRecord)
L_004c: call Boolean TryGetGraphicApparel(RimWorld.Apparel, BodyType,
ApparelGraphicRecord ByRef)
L_0051: brfalse Label #3
L_0056: ldarg.0
L_0057: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_005c: ldloc.2
L_005d: callvirt Void Add(ApparelGraphicRecord)
L_0062: Label #2
L_0062: Label #3
L_0062: ldloc.1
L_0063: callvirt Boolean MoveNext()
L_0068: brtrue Label #4
L_006d: leave Label #5
L_0072: ldloc.1
L_0073: brfalse Label #6
L_0078: ldloc.1
L_0079: callvirt Void Dispose()
L_007e: Label #6
L_007e: endfinally
L_007f: Label #5
L_007f: br Label #0
L_0084: Label #0
L_0084: ret
DONE

PATCHING Verse.PawnRenderer Void RenderPawnInternal(Vector3, Quaternion, Boolean,


Rot4, Rot4, RotDrawMode, Boolean, Boolean)
L_0000: Local var #0 UnityEngine.Mesh
L_0000: Local var #1 UnityEngine.Vector3
L_0000: Local var #2 System.Collections.Generic.List`1[[UnityEngine.Material,
UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #3 System.Int32
L_0000: Local var #4 UnityEngine.Material
L_0000: Local var #5 UnityEngine.Vector3
L_0000: Local var #6 UnityEngine.Vector3
L_0000: Local var #7 UnityEngine.Vector3
L_0000: Local var #8 UnityEngine.Vector3
L_0000: Local var #9 UnityEngine.Material
L_0000: Local var #10 UnityEngine.Mesh
L_0000: Local var #11 UnityEngine.Vector3
L_0000: Local var #12 System.Boolean
L_0000: Local var #13 UnityEngine.Mesh
L_0000: Local var #14
System.Collections.Generic.List`1[[RimWorld.ApparelGraphicRecord, Assembly-CSharp,
Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #15 System.Int32
L_0000: Local var #16 RimWorld.ApparelGraphicRecord
L_0000: Local var #17 RimWorld.ApparelGraphicRecord
L_0000: Local var #18 UnityEngine.Material
L_0000: Local var #19 RimWorld.ApparelGraphicRecord
L_0000: Local var #20 UnityEngine.Material
L_0000: Local var #21 RimWorld.ApparelGraphicRecord
L_0000: Local var #22 UnityEngine.Vector3
L_0000: Local var #23 UnityEngine.Mesh
L_0000: Local var #24 UnityEngine.Material
L_0000: Local var #25 System.Int32
L_0000: Local var #26 RimWorld.ApparelGraphicRecord
L_0000: Local var #27 UnityEngine.Material
L_0000: Local var #28 System.Collections.Generic.List`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #29 System.Int32
L_0000: Local var #30 UnityEngine.Vector3
L_0000: ldarg.0
L_0001: ldfld Verse.PawnGraphicSet graphics
L_0006: callvirt Boolean get_AllResolved()
L_000b: brtrue Label #2
L_0010: ldarg.0
L_0011: ldfld Verse.PawnGraphicSet graphics
L_0016: callvirt Void ResolveAllGraphics()
L_001b: Label #2
L_001b: ldnull
L_001c: stloc.0
L_001d: ldarg.0
L_001e: ldfld Verse.Pawn pawn
L_0023: ldfld Verse.Pawn_AgeTracker ageTracker
L_0028: call Int32 get_CurLifeStageIndex()
L_002d: ldc.i4.2
L_002e: blt Label #43
L_0033: ldarg.3
L_0034: brfalse Label #3
L_0039: Label #43
L_0039: ldarg.1
L_003a: ldarg.0
L_003b: ldfld Verse.Pawn pawn
L_0040: ldarg.s 7
L_0045: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_004a: stloc.1
L_004b: ldloca.s 1 (UnityEngine.Vector3)
L_004d: dup
L_004e: ldfld System.Single y
L_0053: ldc.r4 0.0078125
L_0058: add
L_0059: stfld System.Single y
L_005e: ldarg.s 6
L_0060: ldc.i4.2
L_0061: bne.un Label #4
L_0066: ldarg.0
L_0067: ldfld Verse.Pawn pawn
L_006c: callvirt Verse.RaceProperties get_RaceProps()
L_0071: callvirt Boolean get_Humanlike()
L_0076: brtrue Label #5
L_007b: ldarg.0
L_007c: ldfld Verse.PawnGraphicSet graphics
L_0081: ldfld Verse.Graphic dessicatedGraphic
L_0086: brfalse Label #6
L_008b: ldarg.s 7
L_008d: brtrue Label #7
L_0092: ldarg.0
L_0093: ldfld Verse.PawnGraphicSet graphics
L_0098: ldfld Verse.Graphic dessicatedGraphic
L_009d: ldloc.1
L_009e: ldarg.s 4
L_00a0: ldarg.0
L_00a1: ldfld Verse.Pawn pawn
L_00a6: ldc.r4 0
L_00ab: callvirt Void Draw(Vector3, Rot4, Verse.Thing, Single)
L_00b0: br Label #8
L_00b5: Label #4
L_00b5: Label #5
L_00b5: Label #6
L_00b5: Label #7
L_00b5: ldarg.0
L_00b6: ldfld Verse.Pawn pawn
L_00bb: callvirt Verse.RaceProperties get_RaceProps()
L_00c0: callvirt Boolean get_Humanlike()
L_00c5: brfalse Label #9
L_00ca: ldsfld Verse.GraphicMeshSet humanlikeBodySet
L_00cf: ldarg.s 4
L_00d1: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00d6: stloc.0
L_00d7: br Label #10
L_00dc: Label #9
L_00dc: ldarg.0
L_00dd: ldfld Verse.PawnGraphicSet graphics
L_00e2: ldfld Verse.Graphic nakedGraphic
L_00e7: ldarg.s 4
L_00e9: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00ee: stloc.0
L_00ef: Label #10
L_00ef: ldarg.0
L_00f0: ldfld Verse.PawnGraphicSet graphics
L_00f5: ldarg.s 4
L_00f7: ldarg.s 6
L_00f9: callvirt System.Collections.Generic.List`1[UnityEngine.Material]
MatsBodyBaseAt(Rot4, RotDrawMode)
L_00fe: stloc.2
L_00ff: ldc.i4.0
L_0100: stloc.3
L_0101: br Label #11
L_0106: Label #12
L_0106: ldarg.0
L_0107: ldfld Verse.PawnGraphicSet graphics
L_010c: ldfld Verse.DamageFlasher flasher
L_0111: ldloc.2
L_0112: ldloc.3
L_0113: callvirt UnityEngine.Material get_Item(Int32)
L_0118: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_011d: stloc.s 4 (UnityEngine.Material)
L_011f: ldloc.s 4
L_0124: ldarg.0
L_0125: ldfld Verse.Pawn pawn
L_012a: ldarg.s 4
L_012f: call UnityEngine.Material ModifyClothingForChild(UnityEngine.Material,
Verse.Pawn, Rot4)
L_0134: stloc.s 4
L_0139: ldloc.0
L_013a: ldloc.1
L_013b: ldarg.2
L_013c: ldloc.s 4 (UnityEngine.Material)
L_013e: ldarg.s 7
L_0140: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_0145: ldloca.s 1 (UnityEngine.Vector3)
L_0147: dup
L_0148: ldfld System.Single y
L_014d: ldloc.s 18
L_0152: ldarg.0
L_0153: ldfld Verse.Pawn pawn
L_0158: call UnityEngine.Material ModifyHatForChild(UnityEngine.Material,
Verse.Pawn)
L_015d: stloc.s 18
L_0162: ldc.r4 0.00390625
L_0167: add
L_0168: stfld System.Single y
L_016d: ldloc.3
L_016e: ldc.i4.1
L_016f: add
L_0170: stloc.3
L_0171: Label #11
L_0171: ldloc.3
L_0172: ldloc.2
L_0173: callvirt Int32 get_Count()
L_0178: blt Label #12
L_017d: ldarg.s 6
L_017f: brtrue Label #13
L_0184: ldarg.1
L_0185: ldarg.0
L_0186: ldfld Verse.Pawn pawn
L_018b: ldarg.s 7
L_0190: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0195: stloc.s 5 (UnityEngine.Vector3)
L_0197: ldloca.s 5 (UnityEngine.Vector3)
L_0199: dup
L_019a: ldfld System.Single y
L_019f: ldc.r4 0.01953125
L_01a4: add
L_01a5: stfld System.Single y
L_01aa: ldarg.0
L_01ab: ldfld RimWorld.PawnWoundDrawer woundOverlays
L_01b0: ldloc.s 5 (UnityEngine.Vector3)
L_01b2: ldloc.0
L_01b3: ldarg.2
L_01b4: ldarg.s 7
L_01b6: callvirt Void RenderOverBody(Vector3, UnityEngine.Mesh, Quaternion,
Boolean)
L_01bb: Label #3
L_01bb: Label #8
L_01bb: Label #13
L_01bb: ldarg.1
L_01bc: ldarg.0
L_01bd: ldfld Verse.Pawn pawn
L_01c2: ldarg.s 7
L_01c7: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01cc: stloc.s 6 (UnityEngine.Vector3)
L_01ce: ldarg.1
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldarg.s 7
L_01da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01df: stloc.s 7 (UnityEngine.Vector3)
L_01e1: ldarg.s 4
L_01e3: call Rot4 get_North()
L_01e8: call Boolean op_Inequality(Rot4, Rot4)
L_01ed: brfalse Label #14
L_01f2: ldloca.s 7 (UnityEngine.Vector3)
L_01f4: dup
L_01f5: ldfld System.Single y
L_01fa: ldc.r4 0.02734375
L_01ff: add
L_0200: stfld System.Single y
L_0205: ldloca.s 6 (UnityEngine.Vector3)
L_0207: dup
L_0208: ldfld System.Single y
L_020d: ldc.r4 0.0234375
L_0212: add
L_0213: stfld System.Single y
L_0218: br Label #15
L_021d: Label #14
L_021d: ldloca.s 7 (UnityEngine.Vector3)
L_021f: dup
L_0220: ldfld System.Single y
L_0225: ldc.r4 0.0234375
L_022a: add
L_022b: stfld System.Single y
L_0230: ldloca.s 6 (UnityEngine.Vector3)
L_0232: dup
L_0233: ldfld System.Single y
L_0238: ldc.r4 0.02734375
L_023d: add
L_023e: stfld System.Single y
L_0243: Label #15
L_0243: ldarg.0
L_0244: ldfld Verse.PawnGraphicSet graphics
L_0249: ldfld Verse.Graphic headGraphic
L_024e: brfalse Label #16
L_0253: ldarg.0
L_0254: ldfld Verse.Pawn pawn
L_0259: call Boolean RaceUsesChildren(Verse.Pawn)
L_025e: brfalse Label #44
L_0263: ldarg.0
L_0264: ldfld Verse.Pawn pawn
L_0269: call Boolean EnsurePawnIsChildOrOlder(Verse.Pawn)
L_026e: brfalse Label #16
L_0273: Label #44
L_0273: nop
L_0274: ldarg.2
L_0275: ldarg.0
L_0276: ldarg.s 5
L_0278: call Vector3 BaseHeadOffsetAt(Rot4)
L_027d: call Vector3 op_Multiply(Quaternion, Vector3)
L_0282: stloc.s 8 (UnityEngine.Vector3)
L_0284: ldarg.0
L_0285: ldfld Verse.PawnGraphicSet graphics
L_028a: ldarg.s 5
L_028c: ldarg.s 6
L_028e: ldarg.s 8
L_0290: callvirt UnityEngine.Material HeadMatAt(Rot4, RotDrawMode, Boolean)
L_0295: stloc.s 9 (UnityEngine.Material)
L_0297: ldloc.s 9 (UnityEngine.Material)
L_0299: ldnull
L_029a: call Boolean op_Inequality(UnityEngine.Object, UnityEngine.Object)
L_029f: brfalse Label #17
L_02a4: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_02a9: ldarg.s 5
L_02ab: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_02b0: stloc.s 10 (UnityEngine.Mesh)
L_02b2: ldloc.s 10 (UnityEngine.Mesh)
L_02b4: ldloc.s 7 (UnityEngine.Vector3)
L_02b6: ldloc.s 8 (UnityEngine.Vector3)
L_02b8: call Vector3 op_Addition(Vector3, Vector3)
L_02bd: ldarg.2
L_02be: ldloc.s 9 (UnityEngine.Material)
L_02c0: ldarg.s 7
L_02c2: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_02c7: Label #17
L_02c7: ldarg.1
L_02c8: ldloc.s 8 (UnityEngine.Vector3)
L_02ca: call Vector3 op_Addition(Vector3, Vector3)
L_02cf: ldarg.0
L_02d0: ldfld Verse.Pawn pawn
L_02d5: ldarg.s 7
L_02da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_02df: stloc.s 11 (UnityEngine.Vector3)
L_02e1: ldloca.s 11 (UnityEngine.Vector3)
L_02e3: dup
L_02e4: ldfld System.Single y
L_02e9: ldc.r4 0.03125
L_02ee: add
L_02ef: stfld System.Single y
L_02f4: ldc.i4.0
L_02f5: stloc.s 12 (System.Boolean)
L_02f7: ldarg.s 7
L_02f9: brfalse Label #18
L_02fe: call Boolean get_HatsOnlyOnMap()
L_0303: brtrue Label #19
L_0308: Label #18
L_0308: ldarg.0
L_0309: ldfld Verse.PawnGraphicSet graphics
L_030e: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_0313: ldarg.s 5
L_0315: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_031a: stloc.s 13 (UnityEngine.Mesh)
L_031c: ldarg.0
L_031d: ldfld Verse.PawnGraphicSet graphics
L_0322: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0327: stloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0329: ldc.i4.0
L_032a: stloc.s 15 (System.Int32)
L_032c: br Label #20
L_0331: Label #26
L_0331: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0333: ldloc.s 15 (System.Int32)
L_0335: callvirt ApparelGraphicRecord get_Item(Int32)
L_033a: stloc.s 16 (RimWorld.ApparelGraphicRecord)
L_033c: ldloca.s 16 (RimWorld.ApparelGraphicRecord)
L_033e: ldfld RimWorld.Apparel sourceApparel
L_0343: ldfld Verse.ThingDef def
L_0348: ldfld RimWorld.ApparelProperties apparel
L_034d: callvirt ApparelLayer get_LastLayer()
L_0352: ldc.i4.4
L_0353: bne.un Label #21
L_0358: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_035a: ldloc.s 15 (System.Int32)
L_035c: callvirt ApparelGraphicRecord get_Item(Int32)
L_0361: stloc.s 17 (RimWorld.ApparelGraphicRecord)
L_0363: ldloca.s 17 (RimWorld.ApparelGraphicRecord)
L_0365: ldfld RimWorld.Apparel sourceApparel
L_036a: ldfld Verse.ThingDef def
L_036f: ldfld RimWorld.ApparelProperties apparel
L_0374: ldfld System.Boolean hatRenderedFrontOfFace
L_0379: brtrue Label #22
L_037e: ldc.i4.1
L_037f: stloc.s 12 (System.Boolean)
L_0381: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0383: ldloc.s 15 (System.Int32)
L_0385: callvirt ApparelGraphicRecord get_Item(Int32)
L_038a: stloc.s 19 (RimWorld.ApparelGraphicRecord)
L_038c: ldloca.s 19 (RimWorld.ApparelGraphicRecord)
L_038e: ldfld Verse.Graphic graphic
L_0393: ldarg.s 4
L_0395: ldnull
L_0396: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_039b: stloc.s 18 (UnityEngine.Material)
L_039d: ldarg.0
L_039e: ldfld Verse.PawnGraphicSet graphics
L_03a3: ldfld Verse.DamageFlasher flasher
L_03a8: ldloc.s 18 (UnityEngine.Material)
L_03aa: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03af: stloc.s 18 (UnityEngine.Material)
L_03b1: ldloc.s 13 (UnityEngine.Mesh)
L_03b3: ldloc.s 11 (UnityEngine.Vector3)
L_03b5: ldarg.2
L_03b6: ldloc.s 18 (UnityEngine.Material)
L_03b8: ldarg.s 7
L_03ba: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_03bf: br Label #23
L_03c4: Label #22
L_03c4: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_03c6: ldloc.s 15 (System.Int32)
L_03c8: callvirt ApparelGraphicRecord get_Item(Int32)
L_03cd: stloc.s 21 (RimWorld.ApparelGraphicRecord)
L_03cf: ldloca.s 21 (RimWorld.ApparelGraphicRecord)
L_03d1: ldfld Verse.Graphic graphic
L_03d6: ldarg.s 4
L_03d8: ldnull
L_03d9: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_03de: stloc.s 20 (UnityEngine.Material)
L_03e0: ldarg.0
L_03e1: ldfld Verse.PawnGraphicSet graphics
L_03e6: ldfld Verse.DamageFlasher flasher
L_03eb: ldloc.s 20 (UnityEngine.Material)
L_03ed: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03f2: stloc.s 20 (UnityEngine.Material)
L_03f4: ldarg.1
L_03f5: ldloc.s 8 (UnityEngine.Vector3)
L_03f7: call Vector3 op_Addition(Vector3, Vector3)
L_03fc: stloc.s 22 (UnityEngine.Vector3)
L_03fe: ldloca.s 22 (UnityEngine.Vector3)
L_0400: dup
L_0401: ldfld System.Single y
L_0406: ldarg.s 4
L_0408: call Rot4 get_North()
L_040d: call Boolean op_Equality(Rot4, Rot4)
L_0412: brfalse Label #24
L_0417: ldc.r4 0.00390625
L_041c: br Label #25
L_0421: Label #24
L_0421: ldc.r4 0.03515625
L_0426: Label #25
L_0426: add
L_0427: stfld System.Single y
L_042c: ldloc.s 13 (UnityEngine.Mesh)
L_042e: ldloc.s 22 (UnityEngine.Vector3)
L_0430: ldarg.2
L_0431: ldloc.s 20 (UnityEngine.Material)
L_0433: ldarg.s 7
L_0435: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_043a: Label #21
L_043a: Label #23
L_043a: ldloc.s 15 (System.Int32)
L_043c: ldc.i4.1
L_043d: add
L_043e: stloc.s 15 (System.Int32)
L_0440: Label #20
L_0440: ldloc.s 15 (System.Int32)
L_0442: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0444: callvirt Int32 get_Count()
L_0449: blt Label #26
L_044e: Label #19
L_044e: ldloc.s 12 (System.Boolean)
L_0450: brtrue Label #27
L_0455: ldarg.s 6
L_0457: ldc.i4.2
L_0458: beq Label #28
L_045d: ldarg.s 8
L_045f: brtrue Label #29
L_0464: ldarg.0
L_0465: ldfld Verse.PawnGraphicSet graphics
L_046a: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_046f: ldarg.s 5
L_0471: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0476: stloc.s 23 (UnityEngine.Mesh)
L_0478: ldarg.0
L_0479: ldfld Verse.PawnGraphicSet graphics
L_047e: ldarg.s 5
L_0480: callvirt UnityEngine.Material HairMatAt(Rot4)
L_0485: stloc.s 24 (UnityEngine.Material)
L_0487: ldloc.s 24
L_048c: ldarg.0
L_048d: ldfld Verse.Pawn pawn
L_0492: call UnityEngine.Material ModifyHairForChild(UnityEngine.Material,
Verse.Pawn)
L_0497: stloc.s 24
L_049c: ldloc.s 23 (UnityEngine.Mesh)
L_049e: ldloc.s 11 (UnityEngine.Vector3)
L_04a0: ldarg.2
L_04a1: ldloc.s 24 (UnityEngine.Material)
L_04a3: ldarg.s 7
L_04a5: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_04aa: Label #16
L_04aa: Label #27
L_04aa: Label #28
L_04aa: Label #29
L_04aa: ldarg.3
L_04ab: brfalse Label #30
L_04b0: ldc.i4.0
L_04b1: stloc.s 25 (System.Int32)
L_04b3: br Label #31
L_04b8: Label #33
L_04b8: ldarg.0
L_04b9: ldfld Verse.PawnGraphicSet graphics
L_04be: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_04c3: ldloc.s 25 (System.Int32)
L_04c5: callvirt ApparelGraphicRecord get_Item(Int32)
L_04ca: stloc.s 26 (RimWorld.ApparelGraphicRecord)
L_04cc: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ce: ldfld RimWorld.Apparel sourceApparel
L_04d3: ldfld Verse.ThingDef def
L_04d8: ldfld RimWorld.ApparelProperties apparel
L_04dd: callvirt ApparelLayer get_LastLayer()
L_04e2: ldc.i4.2
L_04e3: bne.un Label #32
L_04e8: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ea: ldfld Verse.Graphic graphic
L_04ef: ldarg.s 4
L_04f1: ldnull
L_04f2: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_04f7: stloc.s 27 (UnityEngine.Material)
L_04f9: ldarg.0
L_04fa: ldfld Verse.PawnGraphicSet graphics
L_04ff: ldfld Verse.DamageFlasher flasher
L_0504: ldloc.s 27 (UnityEngine.Material)
L_0506: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_050b: stloc.s 27 (UnityEngine.Material)
L_050d: ldloc.0
L_050e: ldloc.s 6 (UnityEngine.Vector3)
L_0510: ldarg.2
L_0511: ldloc.s 27 (UnityEngine.Material)
L_0513: ldarg.s 7
L_0515: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_051a: Label #32
L_051a: ldloc.s 25 (System.Int32)
L_051c: ldc.i4.1
L_051d: add
L_051e: stloc.s 25 (System.Int32)
L_0520: Label #31
L_0520: ldloc.s 25 (System.Int32)
L_0522: ldarg.0
L_0523: ldfld Verse.PawnGraphicSet graphics
L_0528: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_052d: callvirt Int32 get_Count()
L_0532: blt Label #33
L_0537: Label #30
L_0537: ldarg.s 7
L_0539: brtrue Label #34
L_053e: ldarg.0
L_053f: ldfld Verse.Pawn pawn
L_0544: callvirt Verse.RaceProperties get_RaceProps()
L_0549: callvirt Boolean get_Animal()
L_054e: brfalse Label #35
L_0553: ldarg.0
L_0554: ldfld Verse.Pawn pawn
L_0559: ldfld Verse.Pawn_InventoryTracker inventory
L_055e: brfalse Label #36
L_0563: ldarg.0
L_0564: ldfld Verse.Pawn pawn
L_0569: ldfld Verse.Pawn_InventoryTracker inventory
L_056e: ldfld Verse.ThingOwner`1[Verse.Thing] innerContainer
L_0573: callvirt Int32 get_Count()
L_0578: ldc.i4.0
L_0579: ble Label #37
L_057e: ldarg.0
L_057f: ldfld Verse.PawnGraphicSet graphics
L_0584: ldfld Verse.Graphic packGraphic
L_0589: brfalse Label #38
L_058e: ldloc.0
L_058f: ldloc.s 6 (UnityEngine.Vector3)
L_0591: ldarg.2
L_0592: ldarg.0
L_0593: ldfld Verse.PawnGraphicSet graphics
L_0598: ldfld Verse.Graphic packGraphic
L_059d: ldarg.s 4
L_059f: ldnull
L_05a0: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_05a5: ldc.i4.0
L_05a6: call Void DrawMesh(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Int32)
L_05ab: Label #34
L_05ab: Label #35
L_05ab: Label #36
L_05ab: Label #37
L_05ab: Label #38
L_05ab: ldarg.s 7
L_05ad: brtrue Label #39
L_05b2: ldarg.0
L_05b3: ldarg.1
L_05b4: call Void DrawEquipment(Vector3)
L_05b9: ldarg.0
L_05ba: ldfld Verse.Pawn pawn
L_05bf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05c4: brfalse Label #40
L_05c9: ldarg.0
L_05ca: ldfld Verse.Pawn pawn
L_05cf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05d4: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_05d9: stloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05db: ldc.i4.0
L_05dc: stloc.s 29 (System.Int32)
L_05de: br Label #41
L_05e3: Label #42
L_05e3: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05e5: ldloc.s 29 (System.Int32)
L_05e7: callvirt RimWorld.Apparel get_Item(Int32)
L_05ec: callvirt Void DrawWornExtras()
L_05f1: ldloc.s 29 (System.Int32)
L_05f3: ldc.i4.1
L_05f4: add
L_05f5: stloc.s 29 (System.Int32)
L_05f7: Label #41
L_05f7: ldloc.s 29 (System.Int32)
L_05f9: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05fb: callvirt Int32 get_Count()
L_0600: blt Label #42
L_0605: Label #40
L_0605: ldarg.1
L_0606: ldarg.0
L_0607: ldfld Verse.Pawn pawn
L_060c: ldarg.s 7
L_0611: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0616: stloc.s 30 (UnityEngine.Vector3)
L_0618: ldloca.s 30 (UnityEngine.Vector3)
L_061a: dup
L_061b: ldfld System.Single y
L_0620: ldc.r4 0.04296875
L_0625: add
L_0626: stfld System.Single y
L_062b: ldarg.0
L_062c: ldfld Verse.PawnHeadOverlays statusOverlays
L_0631: ldloc.s 30 (UnityEngine.Vector3)
L_0633: ldarg.2
L_0634: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_0639: ldarg.s 5
L_063b: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0640: callvirt Void RenderStatusOverlays(Vector3, Quaternion, UnityEngine.Mesh)
L_0645: Label #39
L_0645: br Label #0
L_064a: Label #0
L_064a: ret
DONE

PATCHING Verse.PawnGenerator Verse.Pawn GeneratePawn(PawnGenerationRequest)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Pawn
L_0000: ldnull
L_0001: stloc 1 (Verse.Pawn)
L_0002: ldarg.0
L_0003: call Verse.Pawn GeneratePawnInternal(PawnGenerationRequest)
L_0008: stloc.0
L_0009: leave Label #2
L_000e: endfinally
L_000f: Label #2
L_000f: ldloc.0
L_0010: br Label #0
L_0015: Label #0
L_0015: stloc 1 (Verse.Pawn)
L_0016: ldarga 0
L_001c: ldloca 1 (Verse.Pawn)
L_001e: call Void _GeneratePawn(PawnGenerationRequest ByRef, Verse.Pawn ByRef)
L_0023: ldloc 1 (Verse.Pawn)
L_0024: ret
DONE

PATCHING RimWorld.JobGiver_OptimizeApparel Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 RimWorld.Outfit
L_0000: Local var #1 System.Collections.Generic.List`1[[RimWorld.Apparel, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 System.Int32
L_0000: Local var #3 Verse.AI.Job
L_0000: Local var #4 Verse.Thing
L_0000: Local var #5 System.Single
L_0000: Local var #6 System.Collections.Generic.List`1[[Verse.Thing, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #7 System.Int32
L_0000: Local var #8 RimWorld.Apparel
L_0000: Local var #9 RimWorld.SlotGroup
L_0000: Local var #10 System.Single
L_0000: Local var #11 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 11 (Verse.AI.Job)
L_0003: ldarg.1
L_0004: ldfld RimWorld.Pawn_OutfitTracker outfits
L_0009: brtrue Label #2
L_000e: ldarg.1
L_000f: ldstr " tried to run JobGiver_OptimizeApparel without an OutfitTracker"
L_0014: call System.String Concat(System.Object, System.Object)
L_0019: ldc.i4 5643897
L_001e: call Void ErrorOnce(System.String, Int32)
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: ldarg.1
L_002a: callvirt RimWorld.Faction get_Faction()
L_002f: call RimWorld.Faction get_OfPlayer()
L_0034: beq Label #3
L_0039: ldstr "Non-colonist "
L_003e: ldarg.1
L_003f: ldstr " tried to optimize apparel."
L_0044: call System.String Concat(System.Object, System.Object, System.Object)
L_0049: ldc.i4 764323
L_004e: call Void ErrorOnce(System.String, Int32)
L_0053: ldnull
L_0054: br Label #0
L_0059: Label #3
L_0059: ldsfld System.Boolean debugApparelOptimize
L_005e: brtrue Label #4
L_0063: call Verse.TickManager get_TickManager()
L_0068: callvirt Int32 get_TicksGame()
L_006d: ldarg.1
L_006e: ldfld Verse.AI.Pawn_MindState mindState
L_0073: ldfld System.Int32 nextApparelOptimizeTick
L_0078: bge Label #5
L_007d: ldnull
L_007e: br Label #0
L_0083: Label #5
L_0083: br Label #6
L_0088: Label #4
L_0088: newobj Void .ctor()
L_008d: stsfld System.Text.StringBuilder debugSb
L_0092: ldsfld System.Text.StringBuilder debugSb
L_0097: ldc.i4.4
L_0098: newarr System.Object
L_009d: dup
L_009e: ldc.i4.0
L_009f: ldstr "Scanning for "
L_00a4: stelem.ref
L_00a5: dup
L_00a6: ldc.i4.1
L_00a7: ldarg.1
L_00a8: stelem.ref
L_00a9: dup
L_00aa: ldc.i4.2
L_00ab: ldstr " at "
L_00b0: stelem.ref
L_00b1: dup
L_00b2: ldc.i4.3
L_00b3: ldarg.1
L_00b4: callvirt IntVec3 get_Position()
L_00b9: box Verse.IntVec3
L_00be: stelem.ref
L_00bf: call System.String Concat(System.Object[])
L_00c4: callvirt System.Text.StringBuilder AppendLine(System.String)
L_00c9: pop
L_00ca: Label #6
L_00ca: ldarg.1
L_00cb: ldfld RimWorld.Pawn_OutfitTracker outfits
L_00d0: callvirt RimWorld.Outfit get_CurrentOutfit()
L_00d5: stloc.0
L_00d6: ldarg.1
L_00d7: ldfld RimWorld.Pawn_ApparelTracker apparel
L_00dc: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_00e1: stloc.1
L_00e2: ldloc.1
L_00e3: callvirt Int32 get_Count()
L_00e8: ldc.i4.1
L_00e9: sub
L_00ea: stloc.2
L_00eb: br Label #7
L_00f0: Label #10
L_00f0: ldloc.0
L_00f1: ldfld Verse.ThingFilter filter
L_00f6: ldloc.1
L_00f7: ldloc.2
L_00f8: callvirt RimWorld.Apparel get_Item(Int32)
L_00fd: callvirt Boolean Allows(Verse.Thing)
L_0102: brtrue Label #8
L_0107: ldarg.1
L_0108: ldfld RimWorld.Pawn_OutfitTracker outfits
L_010d: ldfld RimWorld.OutfitForcedHandler forcedHandler
L_0112: ldloc.1
L_0113: ldloc.2
L_0114: callvirt RimWorld.Apparel get_Item(Int32)
L_0119: callvirt Boolean AllowedToAutomaticallyDrop(RimWorld.Apparel)
L_011e: brfalse Label #9
L_0123: ldsfld Verse.JobDef RemoveApparel
L_0128: ldloc.1
L_0129: ldloc.2
L_012a: callvirt RimWorld.Apparel get_Item(Int32)
L_012f: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0134: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0139: stloc.3
L_013a: ldloc.3
L_013b: ldc.i4.1
L_013c: stfld System.Boolean haulDroppedApparel
L_0141: ldloc.3
L_0142: br Label #0
L_0147: Label #8
L_0147: Label #9
L_0147: ldloc.2
L_0148: ldc.i4.1
L_0149: sub
L_014a: stloc.2
L_014b: Label #7
L_014b: ldloc.2
L_014c: ldc.i4.0
L_014d: bge Label #10
L_0152: ldnull
L_0153: stloc.s 4 (Verse.Thing)
L_0155: ldc.r4 0
L_015a: stloc.s 5 (System.Single)
L_015c: ldarg.1
L_015d: callvirt Verse.Map get_Map()
L_0162: ldfld Verse.ListerThings listerThings
L_0167: ldc.i4.s 26
L_0169: callvirt System.Collections.Generic.List`1[Verse.Thing]
ThingsInGroup(ThingRequestGroup)
L_016e: stloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0170: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0172: callvirt Int32 get_Count()
L_0177: brtrue Label #11
L_017c: ldarg.0
L_017d: ldarg.1
L_017e: call Void SetNextOptimizeTick(Verse.Pawn)
L_0183: ldnull
L_0184: br Label #0
L_0189: Label #11
L_0189: ldarg.1
L_018a: ldarg.1
L_018b: callvirt Verse.Map get_Map()
L_0190: callvirt Int32 get_Tile()
L_0195: ldarg.1
L_0196: call Twelfth Twelfth(Verse.Thing)
L_019b: call NeededWarmth CalculateNeededWarmth(Verse.Pawn, Int32, Twelfth)
L_01a0: stsfld RimWorld.NeededWarmth neededWarmth
L_01a5: ldc.i4.0
L_01a6: stloc.s 7 (System.Int32)
L_01a8: br Label #12
L_01ad: Label #27
L_01ad: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_01af: ldloc.s 7 (System.Int32)
L_01b1: callvirt Verse.Thing get_Item(Int32)
L_01b6: castclass RimWorld.Apparel
L_01bb: stloc.s 8 (RimWorld.Apparel)
L_01bd: ldloc.0
L_01be: ldfld Verse.ThingFilter filter
L_01c3: ldloc.s 8 (RimWorld.Apparel)
L_01c5: callvirt Boolean Allows(Verse.Thing)
L_01ca: brtrue Label #13
L_01cf: br Label #14
L_01d4: Label #13
L_01d4: ldloc.s 8 (RimWorld.Apparel)
L_01d6: callvirt Verse.Map get_Map()
L_01db: ldfld RimWorld.SlotGroupManager slotGroupManager
L_01e0: ldloc.s 8 (RimWorld.Apparel)
L_01e2: callvirt IntVec3 get_Position()
L_01e7: callvirt RimWorld.SlotGroup SlotGroupAt(IntVec3)
L_01ec: stloc.s 9 (RimWorld.SlotGroup)
L_01ee: ldloc.s 9 (RimWorld.SlotGroup)
L_01f0: brtrue Label #15
L_01f5: br Label #16
L_01fa: Label #15
L_01fa: ldloc.s 8 (RimWorld.Apparel)
L_01fc: ldarg.1
L_01fd: call Boolean IsForbidden(Verse.Thing, Verse.Pawn)
L_0202: brfalse Label #17
L_0207: br Label #18
L_020c: Label #17
L_020c: ldarg.1
L_020d: ldloc.s 8 (RimWorld.Apparel)
L_020f: call Single ApparelScoreGain(Verse.Pawn, RimWorld.Apparel)
L_0214: stloc.s 10 (System.Single)
L_0216: ldsfld System.Boolean debugApparelOptimize
L_021b: brfalse Label #19
L_0220: ldsfld System.Text.StringBuilder debugSb
L_0225: ldloc.s 8 (RimWorld.Apparel)
L_0227: callvirt System.String get_LabelCap()
L_022c: ldstr ": "
L_0231: ldloca.s 10 (System.Single)
L_0233: ldstr "F2"
L_0238: call System.String ToString(System.String)
L_023d: call System.String Concat(System.String, System.String, System.String)
L_0242: callvirt System.Text.StringBuilder AppendLine(System.String)
L_0247: pop
L_0248: Label #19
L_0248: ldloc.s 10 (System.Single)
L_024a: ldc.r4 0.05
L_024f: blt Label #20
L_0254: ldloc.s 10 (System.Single)
L_0256: ldloc.s 5 (System.Single)
L_0258: bge.un Label #21
L_025d: Label #20
L_025d: br Label #22
L_0262: Label #21
L_0262: ldarg.1
L_0263: ldloc.s 8 (RimWorld.Apparel)
L_0265: ldfld Verse.ThingDef def
L_026a: call Boolean HasPartsToWear(Verse.Pawn, Verse.ThingDef)
L_026f: brtrue Label #23
L_0274: br Label #24
L_0279: Label #23
L_0279: ldarg.1
L_027a: ldloc.s 8 (RimWorld.Apparel)
L_027c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0281: ldc.i4.1
L_0282: ldarg.1
L_0283: call Danger NormalMaxDanger(Verse.Pawn)
L_0288: ldc.i4.1
L_0289: ldc.i4.m1
L_028a: ldnull
L_028b: ldc.i4.0
L_028c: call Boolean CanReserveAndReach(Verse.Pawn, LocalTargetInfo, PathEndMode,
Danger, Int32, Int32, Verse.ReservationLayerDef, Boolean)
L_0291: brtrue Label #25
L_0296: br Label #26
L_029b: Label #25
L_029b: ldloc.s 8 (RimWorld.Apparel)
L_029d: stloc.s 4 (Verse.Thing)
L_029f: ldloc.s 10 (System.Single)
L_02a1: stloc.s 5 (System.Single)
L_02a3: Label #14
L_02a3: Label #16
L_02a3: Label #18
L_02a3: Label #22
L_02a3: Label #24
L_02a3: Label #26
L_02a3: ldloc.s 7 (System.Int32)
L_02a5: ldc.i4.1
L_02a6: add
L_02a7: stloc.s 7 (System.Int32)
L_02a9: Label #12
L_02a9: ldloc.s 7 (System.Int32)
L_02ab: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_02ad: callvirt Int32 get_Count()
L_02b2: blt Label #27
L_02b7: ldsfld System.Boolean debugApparelOptimize
L_02bc: brfalse Label #28
L_02c1: ldsfld System.Text.StringBuilder debugSb
L_02c6: ldstr "BEST: "
L_02cb: ldloc.s 4 (Verse.Thing)
L_02cd: call System.String Concat(System.Object, System.Object)
L_02d2: callvirt System.Text.StringBuilder AppendLine(System.String)
L_02d7: pop
L_02d8: ldsfld System.Text.StringBuilder debugSb
L_02dd: callvirt System.String ToString()
L_02e2: call Void Message(System.String)
L_02e7: ldnull
L_02e8: stsfld System.Text.StringBuilder debugSb
L_02ed: Label #28
L_02ed: ldloc.s 4 (Verse.Thing)
L_02ef: brtrue Label #29
L_02f4: ldarg.0
L_02f5: ldarg.1
L_02f6: call Void SetNextOptimizeTick(Verse.Pawn)
L_02fb: ldnull
L_02fc: br Label #0
L_0301: Label #29
L_0301: ldsfld Verse.JobDef Wear
L_0306: ldloc.s 4 (Verse.Thing)
L_0308: call LocalTargetInfo op_Implicit(Verse.Thing)
L_030d: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0312: br Label #0
L_0317: Label #0
L_0317: stloc 11 (Verse.AI.Job)
L_0319: ldloca 11 (Verse.AI.Job)
L_031b: ldarga 1
L_0321: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_0326: ldloc 11 (Verse.AI.Job)
L_0328: ret
DONE

PATCHING Verse.Pawn_HealthTracker Boolean ShouldBeDowned()


L_0000: Local var #0 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 0 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean get_InPainShock()
L_000c: brtrue Label #2
L_0011: ldarg.0
L_0012: ldfld Verse.PawnCapacitiesHandler capacities
L_0017: callvirt Boolean get_CanBeAwake()
L_001c: brfalse Label #3
L_0021: ldarg.0
L_0022: ldfld Verse.PawnCapacitiesHandler capacities
L_0027: ldsfld Verse.PawnCapacityDef Moving
L_002c: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0031: ldc.i4.0
L_0032: ceq
L_0034: br Label #4
L_0039: Label #2
L_0039: Label #3
L_0039: ldc.i4.1
L_003a: Label #4
L_003a: br Label #0
L_003f: Label #0
L_003f: stloc 0 (System.Boolean)
L_0040: ldarga 0
L_0046: ldloca 0 (System.Boolean)
L_0048: call Void SBD(Verse.Pawn_HealthTracker ByRef, Boolean ByRef)
L_004d: ldloc 0 (System.Boolean)
L_004e: ret
DONE

PATCHING Verse.Pawn_HealthTracker Void CheckForStateChange(Nullable`1,


Verse.Hediff)
L_0000: Local var #0 System.Single
L_0000: Local var #1 Verse.DamageInfo
L_0000: Local var #2 Verse.ThingWithComps
L_0000: ldarg.0
L_0001: call Boolean get_Dead()
L_0006: brtrue Label #2
L_000b: ldarg.0
L_000c: call Boolean ShouldBeDead()
L_0011: brfalse Label #3
L_0016: ldarg.0
L_0017: ldfld Verse.Pawn pawn
L_001c: callvirt Boolean get_Destroyed()
L_0021: brtrue Label #4
L_0026: ldarg.0
L_0027: ldfld Verse.Pawn pawn
L_002c: ldarg.1
L_002d: ldarg.2
L_002e: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_0033: Label #4
L_0033: br Label #0
L_0038: Label #3
L_0038: ldarg.0
L_0039: call Boolean get_Downed()
L_003e: brtrue Label #5
L_0043: ldarg.0
L_0044: call Boolean ShouldBeDowned()
L_0049: brfalse Label #6
L_004e: ldarg.0
L_004f: ldfld Verse.Pawn pawn
L_0054: callvirt Verse.RaceProperties get_RaceProps()
L_0059: callvirt Boolean get_Animal()
L_005e: brfalse Label #7
L_0063: ldc.r4 0.47
L_0068: br Label #8
L_006d: Label #7
L_006d: ldc.r4 0.67
L_0072: Label #8
L_0072: stloc.0
L_0073: ldarg.0
L_0074: ldfld System.Boolean forceIncap
L_0079: brtrue Label #9
L_007e: ldarga.s 1
L_0080: call Boolean get_HasValue()
L_0085: brfalse Label #10
L_008a: ldarga.s 1
L_008c: call DamageInfo get_Value()
L_0091: stloc.1
L_0092: ldloca.s 1 (Verse.DamageInfo)
L_0094: call Verse.DamageDef get_Def()
L_0099: ldfld System.Boolean externalViolence
L_009e: brfalse Label #11
L_00a3: ldarg.0
L_00a4: ldfld Verse.Pawn pawn
L_00a9: callvirt RimWorld.Faction get_Faction()
L_00ae: brfalse Label #12
L_00b3: ldarg.0
L_00b4: ldfld Verse.Pawn pawn
L_00b9: callvirt RimWorld.Faction get_Faction()
L_00be: callvirt Boolean get_IsPlayer()
L_00c3: brtrue Label #13
L_00c8: br Label #13
L_00cd: Label #12
L_00cd: ldarg.0
L_00ce: ldfld Verse.Pawn pawn
L_00d3: callvirt Boolean get_IsPrisonerOfColony()
L_00d8: brtrue Label #14
L_00dd: ldarg.0
L_00de: ldfld Verse.Pawn pawn
L_00e3: callvirt Verse.RaceProperties get_RaceProps()
L_00e8: callvirt Boolean get_IsFlesh()
L_00ed: brfalse Label #15
L_00f2: call Single get_Value()
L_00f7: ldloc.0
L_00f8: bge.un Label #16
L_00fd: ldarg.0
L_00fe: ldfld Verse.Pawn pawn
L_0103: ldarg.1
L_0104: ldnull
L_0105: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_010a: br Label #0
L_010f: Label #9
L_010f: Label #10
L_010f: Label #11
L_010f: Label #13
L_010f: Label #14
L_010f: Label #15
L_010f: Label #16
L_010f: ldarg.0
L_0110: ldc.i4.0
L_0111: stfld System.Boolean forceIncap
L_0116: ldarg.0
L_0117: ldarg.1
L_0118: ldarg.2
L_0119: call Void MakeDowned(Nullable`1, Verse.Hediff)
L_011e: br Label #0
L_0123: Label #6
L_0123: ldarg.0
L_0124: ldfld Verse.PawnCapacitiesHandler capacities
L_0129: ldsfld Verse.PawnCapacityDef Manipulation
L_012e: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0133: brtrue Label #17
L_0138: ldarg.0
L_0139: ldfld Verse.Pawn pawn
L_013e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0143: brfalse Label #18
L_0148: ldarg.0
L_0149: ldfld Verse.Pawn pawn
L_014e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0153: callvirt Verse.Thing get_CarriedThing()
L_0158: brfalse Label #19
L_015d: ldarg.0
L_015e: ldfld Verse.Pawn pawn
L_0163: ldfld Verse.AI.Pawn_JobTracker jobs
L_0168: brfalse Label #20
L_016d: ldarg.0
L_016e: ldfld Verse.Pawn pawn
L_0173: callvirt Verse.AI.Job get_CurJob()
L_0178: brfalse Label #21
L_017d: ldarg.0
L_017e: ldfld Verse.Pawn pawn
L_0183: ldfld Verse.AI.Pawn_JobTracker jobs
L_0188: ldc.i4.5
L_0189: ldc.i4.1
L_018a: callvirt Void EndCurrentJob(JobCondition, Boolean)
L_018f: Label #18
L_018f: Label #19
L_018f: Label #20
L_018f: Label #21
L_018f: ldarg.0
L_0190: ldfld Verse.Pawn pawn
L_0195: ldfld Verse.Pawn_EquipmentTracker equipment
L_019a: brfalse Label #22
L_019f: ldarg.0
L_01a0: ldfld Verse.Pawn pawn
L_01a5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01aa: callvirt Verse.ThingWithComps get_Primary()
L_01af: brfalse Label #23
L_01b4: ldarg.0
L_01b5: ldfld Verse.Pawn pawn
L_01ba: callvirt Boolean get_InContainerEnclosed()
L_01bf: brfalse Label #24
L_01c4: ldarg.0
L_01c5: ldfld Verse.Pawn pawn
L_01ca: ldfld Verse.Pawn_EquipmentTracker equipment
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01da: callvirt Verse.ThingWithComps get_Primary()
L_01df: ldarg.0
L_01e0: ldfld Verse.Pawn pawn
L_01e5: ldfld Verse.ThingOwner holdingOwner
L_01ea: callvirt Boolean TryTransferEquipmentToContainer(Verse.ThingWithComps,
Verse.ThingOwner)
L_01ef: pop
L_01f0: br Label #25
L_01f5: Label #24
L_01f5: ldarg.0
L_01f6: ldfld Verse.Pawn pawn
L_01fb: callvirt Boolean get_SpawnedOrAnyParentSpawned()
L_0200: brfalse Label #26
L_0205: ldarg.0
L_0206: ldfld Verse.Pawn pawn
L_020b: ldfld Verse.Pawn_EquipmentTracker equipment
L_0210: ldarg.0
L_0211: ldfld Verse.Pawn pawn
L_0216: ldfld Verse.Pawn_EquipmentTracker equipment
L_021b: callvirt Verse.ThingWithComps get_Primary()
L_0220: ldloca.s 2 (Verse.ThingWithComps)
L_0222: ldarg.0
L_0223: ldfld Verse.Pawn pawn
L_0228: callvirt IntVec3 get_PositionHeld()
L_022d: ldc.i4.1
L_022e: callvirt Boolean TryDropEquipment(Verse.ThingWithComps,
Verse.ThingWithComps ByRef, IntVec3, Boolean)
L_0233: pop
L_0234: br Label #27
L_0239: Label #26
L_0239: ldarg.0
L_023a: ldfld Verse.Pawn pawn
L_023f: ldfld Verse.Pawn_EquipmentTracker equipment
L_0244: ldarg.0
L_0245: ldfld Verse.Pawn pawn
L_024a: ldfld Verse.Pawn_EquipmentTracker equipment
L_024f: callvirt Verse.ThingWithComps get_Primary()
L_0254: callvirt Void DestroyEquipment(Verse.ThingWithComps)
L_0259: Label #17
L_0259: Label #22
L_0259: Label #23
L_0259: Label #25
L_0259: Label #27
L_0259: br Label #28
L_025e: Label #5
L_025e: ldarg.0
L_025f: call Boolean ShouldBeDowned()
L_0264: brtrue Label #29
L_0269: ldarg.0
L_026a: call Void MakeUndowned()
L_026f: br Label #0
L_0274: Label #2
L_0274: Label #28
L_0274: Label #29
L_0274: br Label #0
L_0279: Label #0
L_0279: ret
DONE
PATCHING RimWorld.RestUtility Single WakeThreshold(Verse.Pawn)
L_0000: Local var #0 Verse.AI.Group.Lord
L_0000: Local var #1 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #2 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #3 System.Single
L_0000: ldc.r4 0
L_0005: stloc 3 (System.Single)
L_0006: ldarg.0
L_0007: call Verse.AI.Group.Lord GetLord(Verse.Pawn)
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldloc.0
L_0014: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0019: brfalse Label #3
L_001e: ldloc.0
L_001f: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0024: callvirt Nullable`1 get_CustomWakeThreshold()
L_0029: stloc.1
L_002a: ldloca.s 1 (System.Nullable`1[System.Single])
L_002c: call Boolean get_HasValue()
L_0031: brfalse Label #4
L_0036: ldloc.0
L_0037: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_003c: callvirt Nullable`1 get_CustomWakeThreshold()
L_0041: stloc.2
L_0042: ldloca.s 2 (System.Nullable`1[System.Single])
L_0044: call Single get_Value()
L_0049: br Label #0
L_004e: Label #2
L_004e: Label #3
L_004e: Label #4
L_004e: ldc.r4 1
L_0053: br Label #0
L_0058: Label #0
L_0058: stloc 3 (System.Single)
L_0059: ldloca 3 (System.Single)
L_005b: ldarga 0
L_0061: call Void WakeThreshold_Patch(Single ByRef, Verse.Pawn ByRef)
L_0066: ldloc 3 (System.Single)
L_0067: ret
DONE

PATCHING Verse.Verb_Shoot Boolean TryCastShot()


L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 1 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean TryCastShot()
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldarg.0
L_0014: call Boolean get_CasterIsPawn()
L_0019: brfalse Label #3
L_001e: ldarg.0
L_001f: call Verse.Pawn get_CasterPawn()
L_0024: ldfld RimWorld.Pawn_RecordsTracker records
L_0029: ldsfld RimWorld.RecordDef ShotsFired
L_002e: callvirt Void Increment(RimWorld.RecordDef)
L_0033: Label #2
L_0033: Label #3
L_0033: ldloc.0
L_0034: br Label #0
L_0039: Label #0
L_0039: stloc 1 (System.Boolean)
L_003a: ldarga 0
L_0040: call Void TryCastShot_Patch(Verse.Verb_Shoot ByRef)
L_0045: ldloc 1 (System.Boolean)
L_0046: ret
DONE

PATCHING Verse.Pawn_EquipmentTracker Void


Notify_EquipmentAdded(Verse.ThingWithComps)
L_0000: Local var #0 Verse.Verb
L_0000: Local var #1 System.Collections.Generic.List`1+Enumerator[[Verse.Verb,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: ldarg.1
L_0001: callvirt Verse.CompEquippable GetComp[CompEquippable]()
L_0006: callvirt System.Collections.Generic.List`1[Verse.Verb] get_AllVerbs()
L_000b: callvirt Enumerator GetEnumerator()
L_0010: stloc.1
L_0011: br Label #2
L_0016: Label #3
L_0016: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0018: call Verse.Verb get_Current()
L_001d: stloc.0
L_001e: ldloc.0
L_001f: ldarg.0
L_0020: ldfld Verse.Pawn pawn
L_0025: stfld Verse.Thing caster
L_002a: ldloc.0
L_002b: callvirt Void Notify_PickedUp()
L_0030: Label #2
L_0030: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0032: call Boolean MoveNext()
L_0037: brtrue Label #3
L_003c: leave Label #4
L_0041: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0043: constrained. System.Collections.Generic.List`1+Enumerator[Verse.Verb]
L_0049: callvirt Void Dispose()
L_004e: endfinally
L_004f: Label #4
L_004f: br Label #0
L_0054: Label #0
L_0054: ldarga 1
L_005a: ldarga 0
L_0060: call Void Notify_EquipmentAdded_Patch(Verse.ThingWithComps ByRef,
Verse.Pawn_EquipmentTracker ByRef)
L_0065: ret
DONE

PATCHING RimWorld.PawnWeaponGenerator Void TryGenerateWeaponFor(Verse.Pawn)


L_0000: Local var #0 System.Single
L_0000: Local var #1 System.Int32
L_0000: Local var #2
RimWorld.PawnWeaponGenerator+<TryGenerateWeaponFor>c__AnonStorey2
L_0000: Local var #3 RimWorld.ThingStuffPair
L_0000: Local var #4 Verse.ThingWithComps
L_0000: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0005: callvirt Void Clear()
L_000a: ldarg.0
L_000b: ldfld Verse.PawnKindDef kindDef
L_0010: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0015: brfalse Label #2
L_001a: ldarg.0
L_001b: ldfld Verse.PawnKindDef kindDef
L_0020: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0025: callvirt Int32 get_Count()
L_002a: brtrue Label #3
L_002f: Label #2
L_002f: br Label #0
L_0034: Label #3
L_0034: ldarg.0
L_0035: callvirt Verse.RaceProperties get_RaceProps()
L_003a: callvirt Boolean get_ToolUser()
L_003f: brtrue Label #4
L_0044: br Label #0
L_0049: Label #4
L_0049: ldarg.0
L_004a: ldfld Verse.Pawn_HealthTracker health
L_004f: ldfld Verse.PawnCapacitiesHandler capacities
L_0054: ldsfld Verse.PawnCapacityDef Manipulation
L_0059: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_005e: brtrue Label #5
L_0063: br Label #0
L_0068: Label #5
L_0068: ldarg.0
L_0069: ldfld RimWorld.Pawn_StoryTracker story
L_006e: brfalse Label #6
L_0073: ldarg.0
L_0074: ldfld RimWorld.Pawn_StoryTracker story
L_0079: ldc.i4.8
L_007a: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_007f: brfalse Label #7
L_0084: br Label #0
L_0089: Label #6
L_0089: Label #7
L_0089: ldarg.0
L_008a: ldfld Verse.PawnKindDef kindDef
L_008f: ldflda Verse.FloatRange weaponMoney
L_0094: call Single get_RandomInRange()
L_0099: stloc.0
L_009a: ldc.i4.0
L_009b: stloc.1
L_009c: br Label #8
L_00a1: Label #16
L_00a1: newobj Void .ctor()
L_00a6: stloc.2
L_00a7: ldloc.2
L_00a8: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_00ad: ldloc.1
L_00ae: callvirt ThingStuffPair get_Item(Int32)
L_00b3: stfld RimWorld.ThingStuffPair w
L_00b8: ldloc.2
L_00b9: ldflda RimWorld.ThingStuffPair w
L_00be: call Single get_Price()
L_00c3: ldloc.0
L_00c4: ble.un Label #9
L_00c9: br Label #10
L_00ce: Label #9
L_00ce: ldarg.0
L_00cf: ldfld Verse.PawnKindDef kindDef
L_00d4: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_00d9: ldloc.2
L_00da: ldftn Boolean <>m__0(System.String)
L_00e0: newobj Void .ctor(Object, IntPtr)
L_00e5: call Boolean Any[String](System.Collections.Generic.List`1[System.String],
System.Predicate`1[System.String])
L_00ea: brtrue Label #11
L_00ef: br Label #12
L_00f4: Label #11
L_00f4: ldloc.2
L_00f5: ldflda RimWorld.ThingStuffPair w
L_00fa: ldfld Verse.ThingDef thing
L_00ff: ldfld System.Single generateAllowChance
L_0104: ldc.r4 1
L_0109: bge.un Label #13
L_010e: ldarg.0
L_010f: ldfld System.Int32 thingIDNumber
L_0114: ldc.i4 28554824
L_0119: xor
L_011a: call Single ValueSeeded(Int32)
L_011f: ldloc.2
L_0120: ldflda RimWorld.ThingStuffPair w
L_0125: ldfld Verse.ThingDef thing
L_012a: ldfld System.Single generateAllowChance
L_012f: ble.un Label #14
L_0134: br Label #15
L_0139: Label #13
L_0139: Label #14
L_0139: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_013e: ldloc.2
L_013f: ldfld RimWorld.ThingStuffPair w
L_0144: callvirt Void Add(ThingStuffPair)
L_0149: Label #10
L_0149: Label #12
L_0149: Label #15
L_0149: ldloc.1
L_014a: ldc.i4.1
L_014b: add
L_014c: stloc.1
L_014d: Label #8
L_014d: ldloc.1
L_014e: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_0153: callvirt Int32 get_Count()
L_0158: blt Label #16
L_015d: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0162: callvirt Int32 get_Count()
L_0167: brtrue Label #17
L_016c: br Label #0
L_0171: ldarg.0
L_0172: ldloc.2
L_0173: callvirt System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
FilterChildWeapons(Verse.Pawn,
System.Collections.Generic.List`1[RimWorld.ThingStuffPair])
L_0178: stloc.2
L_0179: Label #17
L_0179: ldarg.0
L_017a: ldfld Verse.Pawn_EquipmentTracker equipment
L_017f: ldc.i4.0
L_0180: callvirt Void DestroyAllEquipment(DestroyMode)
L_0185: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_018a: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_018f: brtrue Label #18
L_0194: ldnull
L_0195: ldftn Single <TryGenerateWeaponFor>m__2(ThingStuffPair)
L_019b: newobj Void .ctor(Object, IntPtr)
L_01a0: stsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01a5: Label #18
L_01a5: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01aa: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01ac: call Boolean TryRandomElementByWeight[ThingStuffPair](IEnumerable`1,
System.Func`2[RimWorld.ThingStuffPair,System.Single], ThingStuffPair ByRef)
L_01b1: brfalse Label #19
L_01b6: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01b8: ldfld Verse.ThingDef thing
L_01bd: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01bf: ldfld Verse.ThingDef stuff
L_01c4: call Verse.Thing MakeThing(Verse.ThingDef, Verse.ThingDef)
L_01c9: castclass Verse.ThingWithComps
L_01ce: stloc.s 4 (Verse.ThingWithComps)
L_01d0: ldloc.s 4 (Verse.ThingWithComps)
L_01d2: ldarg.0
L_01d3: call Void PostProcessGeneratedGear(Verse.Thing, Verse.Pawn)
L_01d8: ldarg.0
L_01d9: ldfld Verse.Pawn_EquipmentTracker equipment
L_01de: ldloc.s 4 (Verse.ThingWithComps)
L_01e0: callvirt Void AddEquipment(Verse.ThingWithComps)
L_01e5: Label #19
L_01e5: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_01ea: callvirt Void Clear()
L_01ef: br Label #0
L_01f4: Label #0
L_01f4: ret
DONE

PATCHING RimWorld.Bill_Medical Void Notify_DoBillStarted(Verse.Pawn)


L_0000: Local var #0 System.Collections.Generic.List`1[[Verse.ThingStackPartClass,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #1 System.Int32
L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void Notify_DoBillStarted(Verse.Pawn)
L_0007: ldarg.0
L_0008: ldnull
L_0009: stfld Verse.ThingDef consumedInitialMedicineDef
L_000e: ldarg.0
L_000f: call Verse.Pawn get_GiverPawn()
L_0014: callvirt Boolean get_Dead()
L_0019: brtrue Label #2
L_001e: ldarg.0
L_001f: ldfld Verse.RecipeDef recipe
L_0024: call Boolean RecipeHasNoIngredients(Verse.RecipeDef)
L_0029: brtrue Label #2
L_002e: ldarg.0
L_002f: ldfld Verse.RecipeDef recipe
L_0034: ldfld System.Boolean anesthetize
L_0039: brfalse Label #3
L_003e: ldarg.0
L_003f: call Verse.Pawn get_GiverPawn()
L_0044: call Boolean TryAnesthetize(Verse.Pawn)
L_0049: brfalse Label #4
L_004e: ldarg.1
L_004f: callvirt Verse.AI.Job get_CurJob()
L_0054: ldfld System.Collections.Generic.List`1[Verse.ThingStackPartClass]
placedThings
L_0059: stloc.0
L_005a: ldc.i4.0
L_005b: stloc.1
L_005c: br Label #5
L_0061: Label #10
L_0061: ldloc.0
L_0062: ldloc.1
L_0063: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0068: ldfld Verse.Thing thing
L_006d: isinst RimWorld.Medicine
L_0072: brfalse Label #6
L_0077: ldarg.0
L_0078: ldfld Verse.RecipeDef recipe
L_007d: callvirt Verse.RecipeWorker get_Worker()
L_0082: ldloc.0
L_0083: ldloc.1
L_0084: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0089: ldfld Verse.Thing thing
L_008e: ldc.i4.1
L_008f: callvirt Verse.Thing SplitOff(Int32)
L_0094: ldarg.0
L_0095: ldfld Verse.RecipeDef recipe
L_009a: ldarg.1
L_009b: callvirt Verse.Map get_MapHeld()
L_00a0: callvirt Void ConsumeIngredient(Verse.Thing, Verse.RecipeDef, Verse.Map)
L_00a5: ldloc.0
L_00a6: ldloc.1
L_00a7: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ac: dup
L_00ad: callvirt Int32 get_Count()
L_00b2: ldc.i4.1
L_00b3: sub
L_00b4: callvirt Void set_Count(Int32)
L_00b9: ldarg.0
L_00ba: ldloc.0
L_00bb: ldloc.1
L_00bc: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00c1: ldfld Verse.Thing thing
L_00c6: ldfld Verse.ThingDef def
L_00cb: stfld Verse.ThingDef consumedInitialMedicineDef
L_00d0: ldloc.0
L_00d1: ldloc.1
L_00d2: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00d7: ldfld Verse.Thing thing
L_00dc: callvirt Boolean get_Destroyed()
L_00e1: brtrue Label #7
L_00e6: ldloc.0
L_00e7: ldloc.1
L_00e8: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ed: callvirt Int32 get_Count()
L_00f2: ldc.i4.0
L_00f3: bgt Label #8
L_00f8: Label #7
L_00f8: ldloc.0
L_00f9: ldloc.1
L_00fa: callvirt Void RemoveAt(Int32)
L_00ff: Label #8
L_00ff: br Label #9
L_0104: Label #6
L_0104: ldloc.1
L_0105: ldc.i4.1
L_0106: add
L_0107: stloc.1
L_0108: Label #5
L_0108: ldloc.1
L_0109: ldloc.0
L_010a: callvirt Int32 get_Count()
L_010f: blt Label #10
L_0114: Label #2
L_0114: Label #3
L_0114: Label #4
L_0114: Label #9
L_0114: br Label #0
L_0119: Label #0
L_0119: ret
DONE

PATCHING RimWorld.Building_Bed IEnumerable`1 get_AssigningCandidates()


L_0000: ldarg.0
L_0001: callvirt IEnumerable`1 BedCandidates(RimWorld.Building_Bed)
L_0006: Label #0
L_0006: ret
DONE

PATCHING RimWorld.RestUtility RimWorld.Building_Bed FindBedFor(Verse.Pawn,


Verse.Pawn, Boolean, Boolean, Boolean)
L_0000: Local var #0 RimWorld.RestUtility+<FindBedFor>c__AnonStorey0
L_0000: Local var #1 RimWorld.Building_Bed
L_0000: Local var #2 Verse.Pawn
L_0000: Local var #3 Verse.Pawn
L_0000: Local var #4 System.Boolean
L_0000: Local var #5 System.Boolean
L_0000: Local var #6 System.Boolean
L_0000: Local var #7 System.Int32
L_0000: Local var #8 Verse.ThingDef
L_0000: Local var #9 System.Int32
L_0000: Local var #10 RimWorld.RestUtility+<FindBedFor>c__AnonStorey1
L_0000: Local var #11 RimWorld.Building_Bed
L_0000: Local var #12 RimWorld.DirectPawnRelation
L_0000: Local var #13 RimWorld.Building_Bed
L_0000: Local var #14 System.Int32
L_0000: Local var #15 RimWorld.RestUtility+<FindBedFor>c__AnonStorey2
L_0000: Local var #16 System.Int32
L_0000: Local var #17 Verse.ThingDef
L_0000: Local var #18 RimWorld.Building_Bed
L_0000: Local var #19 RimWorld.Building_Bed
L_0000: ldnull
L_0001: stloc 19 (RimWorld.Building_Bed)
L_0003: newobj Void .ctor()
L_0008: stloc.0
L_0009: ldloc.0
L_000a: ldarg.0
L_000b: stfld Verse.Pawn sleeper
L_0010: ldloc.0
L_0011: ldarg.1
L_0012: stfld Verse.Pawn traveler
L_0017: ldloc.0
L_0018: ldarg.2
L_0019: stfld System.Boolean sleeperWillBePrisoner
L_001e: ldloc.0
L_001f: ldarg.3
L_0020: stfld System.Boolean checkSocialProperness
L_0025: ldloc.0
L_0026: ldarg.s 4
L_0028: stfld System.Boolean ignoreOtherReservations
L_002d: ldloc.0
L_002e: ldfld Verse.Pawn sleeper
L_0033: call Boolean ShouldSeekMedicalRest(Verse.Pawn)
L_0038: brfalse Label #2
L_003d: ldloc.0
L_003e: ldfld Verse.Pawn sleeper
L_0043: call Boolean InBed(Verse.Pawn)
L_0048: brfalse Label #3
L_004d: ldloc.0
L_004e: ldfld Verse.Pawn sleeper
L_0053: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0058: callvirt Boolean get_Medical()
L_005d: brfalse Label #4
L_0062: ldloc.0
L_0063: ldfld Verse.Pawn sleeper
L_0068: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_006d: stloc.1
L_006e: ldloc.0
L_006f: ldfld Verse.Pawn sleeper
L_0074: stloc.2
L_0075: ldloc.0
L_0076: ldfld Verse.Pawn traveler
L_007b: stloc.3
L_007c: ldloc.0
L_007d: ldfld System.Boolean sleeperWillBePrisoner
L_0082: stloc.s 4 (System.Boolean)
L_0084: ldloc.0
L_0085: ldfld System.Boolean checkSocialProperness
L_008a: stloc.s 5 (System.Boolean)
L_008c: ldloc.0
L_008d: ldfld System.Boolean ignoreOtherReservations
L_0092: stloc.s 6 (System.Boolean)
L_0094: ldloc.1
L_0095: ldloc.2
L_0096: ldloc.3
L_0097: ldloc.s 4 (System.Boolean)
L_0099: ldloc.s 5 (System.Boolean)
L_009b: ldc.i4.0
L_009c: ldloc.s 6 (System.Boolean)
L_009e: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_00a3: brfalse Label #5
L_00a8: ldloc.0
L_00a9: ldfld Verse.Pawn sleeper
L_00ae: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00b3: br Label #0
L_00b8: Label #3
L_00b8: Label #4
L_00b8: Label #5
L_00b8: ldc.i4.0
L_00b9: stloc.s 7 (System.Int32)
L_00bb: br Label #6
L_00c0: Label #14
L_00c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_00c5: ldloc.s 7 (System.Int32)
L_00c7: callvirt Verse.ThingDef get_Item(Int32)
L_00cc: stloc.s 8 (Verse.ThingDef)
L_00ce: ldloc.0
L_00cf: ldfld Verse.Pawn sleeper
L_00d4: ldloc.s 8 (Verse.ThingDef)
L_00d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_00db: brtrue Label #7
L_00e0: br Label #8
L_00e5: Label #7
L_00e5: ldc.i4.0
L_00e6: stloc.s 9 (System.Int32)
L_00e8: br Label #9
L_00ed: Label #13
L_00ed: newobj Void .ctor()
L_00f2: stloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f4: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f6: ldloc.0
L_00f7: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_00fc: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00fe: ldloc.s 9 (System.Int32)
L_0100: brtrue Label #10
L_0105: ldc.i4.1
L_0106: br Label #11
L_010b: Label #10
L_010b: ldc.i4.3
L_010c: Label #11
L_010c: stfld Verse.Danger maxDanger
L_0111: ldloc.0
L_0112: ldfld Verse.Pawn sleeper
L_0117: callvirt IntVec3 get_Position()
L_011c: ldloc.0
L_011d: ldfld Verse.Pawn sleeper
L_0122: callvirt Verse.Map get_Map()
L_0127: ldloc.s 8 (Verse.ThingDef)
L_0129: call ThingRequest ForDef(Verse.ThingDef)
L_012e: ldc.i4.1
L_012f: ldloc.0
L_0130: ldfld Verse.Pawn traveler
L_0135: ldc.i4.3
L_0136: ldc.i4.0
L_0137: ldc.i4.0
L_0138: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_013d: ldc.r4 9999
L_0142: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_0144: ldftn Boolean <>m__0(Verse.Thing)
L_014a: newobj Void .ctor(Object, IntPtr)
L_014f: ldnull
L_0150: ldc.i4.0
L_0151: ldc.i4.m1
L_0152: ldc.i4.0
L_0153: ldc.i4.6
L_0154: ldc.i4.0
L_0155: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_015a: castclass RimWorld.Building_Bed
L_015f: stloc.s 11 (RimWorld.Building_Bed)
L_0161: ldloc.s 11 (RimWorld.Building_Bed)
L_0163: brfalse Label #12
L_0168: ldloc.s 11 (RimWorld.Building_Bed)
L_016a: br Label #0
L_016f: Label #12
L_016f: ldloc.s 9 (System.Int32)
L_0171: ldc.i4.1
L_0172: add
L_0173: stloc.s 9 (System.Int32)
L_0175: Label #9
L_0175: ldloc.s 9 (System.Int32)
L_0177: ldc.i4.2
L_0178: blt Label #13
L_017d: Label #8
L_017d: ldloc.s 7 (System.Int32)
L_017f: ldc.i4.1
L_0180: add
L_0181: stloc.s 7 (System.Int32)
L_0183: Label #6
L_0183: ldloc.s 7 (System.Int32)
L_0185: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_018a: callvirt Int32 get_Count()
L_018f: blt Label #14
L_0194: Label #2
L_0194: ldloc.0
L_0195: ldfld Verse.Pawn sleeper
L_019a: ldfld RimWorld.Pawn_Ownership ownership
L_019f: brfalse Label #15
L_01a4: ldloc.0
L_01a5: ldfld Verse.Pawn sleeper
L_01aa: ldfld RimWorld.Pawn_Ownership ownership
L_01af: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01b4: brfalse Label #16
L_01b9: ldloc.0
L_01ba: ldfld Verse.Pawn sleeper
L_01bf: ldfld RimWorld.Pawn_Ownership ownership
L_01c4: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01c9: stloc.1
L_01ca: ldloc.0
L_01cb: ldfld Verse.Pawn sleeper
L_01d0: stloc.3
L_01d1: ldloc.0
L_01d2: ldfld Verse.Pawn traveler
L_01d7: stloc.2
L_01d8: ldloc.0
L_01d9: ldfld System.Boolean sleeperWillBePrisoner
L_01de: stloc.s 6 (System.Boolean)
L_01e0: ldloc.0
L_01e1: ldfld System.Boolean checkSocialProperness
L_01e6: stloc.s 5 (System.Boolean)
L_01e8: ldloc.0
L_01e9: ldfld System.Boolean ignoreOtherReservations
L_01ee: stloc.s 4 (System.Boolean)
L_01f0: ldloc.1
L_01f1: ldloc.3
L_01f2: ldloc.2
L_01f3: ldloc.s 6 (System.Boolean)
L_01f5: ldloc.s 5 (System.Boolean)
L_01f7: ldc.i4.0
L_01f8: ldloc.s 4 (System.Boolean)
L_01fa: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_01ff: brfalse Label #17
L_0204: ldloc.0
L_0205: ldfld Verse.Pawn sleeper
L_020a: ldfld RimWorld.Pawn_Ownership ownership
L_020f: callvirt RimWorld.Building_Bed get_OwnedBed()
L_0214: br Label #0
L_0219: Label #15
L_0219: Label #16
L_0219: Label #17
L_0219: ldloc.0
L_021a: ldfld Verse.Pawn sleeper
L_021f: ldc.i4.0
L_0220: call RimWorld.DirectPawnRelation
ExistingMostLikedLovePartnerRel(Verse.Pawn, Boolean)
L_0225: stloc.s 12 (RimWorld.DirectPawnRelation)
L_0227: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0229: brfalse Label #18
L_022e: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0230: ldfld Verse.Pawn otherPawn
L_0235: ldfld RimWorld.Pawn_Ownership ownership
L_023a: callvirt RimWorld.Building_Bed get_OwnedBed()
L_023f: stloc.s 13 (RimWorld.Building_Bed)
L_0241: ldloc.s 13 (RimWorld.Building_Bed)
L_0243: brfalse Label #19
L_0248: ldloc.s 13 (RimWorld.Building_Bed)
L_024a: stloc.1
L_024b: ldloc.0
L_024c: ldfld Verse.Pawn sleeper
L_0251: stloc.2
L_0252: ldloc.0
L_0253: ldfld Verse.Pawn traveler
L_0258: stloc.3
L_0259: ldloc.0
L_025a: ldfld System.Boolean sleeperWillBePrisoner
L_025f: stloc.s 4 (System.Boolean)
L_0261: ldloc.0
L_0262: ldfld System.Boolean checkSocialProperness
L_0267: stloc.s 5 (System.Boolean)
L_0269: ldloc.0
L_026a: ldfld System.Boolean ignoreOtherReservations
L_026f: stloc.s 6 (System.Boolean)
L_0271: ldloc.1
L_0272: ldloc.2
L_0273: ldloc.3
L_0274: ldloc.s 4 (System.Boolean)
L_0276: ldloc.s 5 (System.Boolean)
L_0278: ldc.i4.0
L_0279: ldloc.s 6 (System.Boolean)
L_027b: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_0280: brfalse Label #20
L_0285: ldloc.s 13 (RimWorld.Building_Bed)
L_0287: br Label #0
L_028c: Label #18
L_028c: Label #19
L_028c: Label #20
L_028c: ldc.i4.0
L_028d: stloc.s 14 (System.Int32)
L_028f: br Label #21
L_0294: Label #29
L_0294: newobj Void .ctor()
L_0299: stloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029b: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029d: ldloc.0
L_029e: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_02a3: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_02a5: ldloc.s 14 (System.Int32)
L_02a7: brtrue Label #22
L_02ac: ldc.i4.1
L_02ad: br Label #23
L_02b2: Label #22
L_02b2: ldc.i4.3
L_02b3: Label #23
L_02b3: stfld Verse.Danger maxDanger
L_02b8: ldc.i4.0
L_02b9: stloc.s 16 (System.Int32)
L_02bb: br Label #24
L_02c0: Label #28
L_02c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_02c5: ldloc.s 16 (System.Int32)
L_02c7: callvirt Verse.ThingDef get_Item(Int32)
L_02cc: stloc.s 17 (Verse.ThingDef)
L_02ce: ldloc.0
L_02cf: ldfld Verse.Pawn sleeper
L_02d4: ldloc.s 17 (Verse.ThingDef)
L_02d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_02db: brtrue Label #25
L_02e0: br Label #26
L_02e5: Label #25
L_02e5: ldloc.0
L_02e6: ldfld Verse.Pawn sleeper
L_02eb: callvirt IntVec3 get_Position()
L_02f0: ldloc.0
L_02f1: ldfld Verse.Pawn sleeper
L_02f6: callvirt Verse.Map get_Map()
L_02fb: ldloc.s 17 (Verse.ThingDef)
L_02fd: call ThingRequest ForDef(Verse.ThingDef)
L_0302: ldc.i4.1
L_0303: ldloc.0
L_0304: ldfld Verse.Pawn traveler
L_0309: ldc.i4.3
L_030a: ldc.i4.0
L_030b: ldc.i4.0
L_030c: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_0311: ldc.r4 9999
L_0316: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_0318: ldftn Boolean <>m__0(Verse.Thing)
L_031e: newobj Void .ctor(Object, IntPtr)
L_0323: ldnull
L_0324: ldc.i4.0
L_0325: ldc.i4.m1
L_0326: ldc.i4.0
L_0327: ldc.i4.6
L_0328: ldc.i4.0
L_0329: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_032e: castclass RimWorld.Building_Bed
L_0333: stloc.s 18 (RimWorld.Building_Bed)
L_0335: ldloc.s 18 (RimWorld.Building_Bed)
L_0337: brfalse Label #27
L_033c: ldloc.s 18 (RimWorld.Building_Bed)
L_033e: br Label #0
L_0343: Label #26
L_0343: Label #27
L_0343: ldloc.s 16 (System.Int32)
L_0345: ldc.i4.1
L_0346: add
L_0347: stloc.s 16 (System.Int32)
L_0349: Label #24
L_0349: ldloc.s 16 (System.Int32)
L_034b: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_0350: callvirt Int32 get_Count()
L_0355: blt Label #28
L_035a: ldloc.s 14 (System.Int32)
L_035c: ldc.i4.1
L_035d: add
L_035e: stloc.s 14 (System.Int32)
L_0360: Label #21
L_0360: ldloc.s 14 (System.Int32)
L_0362: ldc.i4.2
L_0363: blt Label #29
L_0368: ldnull
L_0369: br Label #0
L_036e: Label #0
L_036e: stloc 19 (RimWorld.Building_Bed)
L_0370: ldarga 0
L_0376: ldloca 19 (RimWorld.Building_Bed)
L_0378: ldarga 1
L_037e: ldarga 4
L_0384: ldarga 2
L_038a: ldarga 3
L_0390: call Void FindBedFor_Patch(Verse.Pawn ByRef, RimWorld.Building_Bed ByRef,
Verse.Pawn ByRef, Boolean ByRef, Boolean ByRef, Boolean ByRef)
L_0395: ldloc 19 (RimWorld.Building_Bed)
L_0397: ret
DONE

PATCHING RimWorld.JobGiver_DoLovin Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 1 (Verse.AI.Job)
L_0002: call Verse.TickManager get_TickManager()
L_0007: callvirt Int32 get_TicksGame()
L_000c: ldarg.1
L_000d: ldfld Verse.AI.Pawn_MindState mindState
L_0012: ldfld System.Int32 canLovinTick
L_0017: bge Label #2
L_001c: ldnull
L_001d: br Label #0
L_0022: Label #2
L_0022: ldarg.1
L_0023: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0028: brfalse Label #3
L_002d: ldarg.1
L_002e: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0033: callvirt Boolean get_Medical()
L_0038: brtrue Label #4
L_003d: ldarg.1
L_003e: ldfld Verse.Pawn_HealthTracker health
L_0043: ldfld Verse.PawnCapacitiesHandler capacities
L_0048: callvirt Boolean get_CanBeAwake()
L_004d: brtrue Label #5
L_0052: Label #3
L_0052: Label #4
L_0052: ldnull
L_0053: br Label #0
L_0058: Label #5
L_0058: ldarg.1
L_0059: call Verse.Pawn GetPartnerInMyBed(Verse.Pawn)
L_005e: stloc.0
L_005f: ldloc.0
L_0060: brfalse Label #6
L_0065: ldloc.0
L_0066: ldfld Verse.Pawn_HealthTracker health
L_006b: ldfld Verse.PawnCapacitiesHandler capacities
L_0070: callvirt Boolean get_CanBeAwake()
L_0075: brfalse Label #7
L_007a: call Verse.TickManager get_TickManager()
L_007f: callvirt Int32 get_TicksGame()
L_0084: ldloc.0
L_0085: ldfld Verse.AI.Pawn_MindState mindState
L_008a: ldfld System.Int32 canLovinTick
L_008f: bge Label #8
L_0094: Label #6
L_0094: Label #7
L_0094: ldnull
L_0095: br Label #0
L_009a: Label #8
L_009a: ldarg.1
L_009b: ldloc.0
L_009c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00a1: ldc.i4.1
L_00a2: ldc.i4.m1
L_00a3: ldnull
L_00a4: ldc.i4.0
L_00a5: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00aa: brfalse Label #9
L_00af: ldloc.0
L_00b0: ldarg.1
L_00b1: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00b6: ldc.i4.1
L_00b7: ldc.i4.m1
L_00b8: ldnull
L_00b9: ldc.i4.0
L_00ba: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00bf: brtrue Label #10
L_00c4: Label #9
L_00c4: ldnull
L_00c5: br Label #0
L_00ca: Label #10
L_00ca: ldsfld Verse.JobDef Lovin
L_00cf: ldloc.0
L_00d0: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00d5: ldarg.1
L_00d6: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00db: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00e0: newobj Void .ctor(JobDef, LocalTargetInfo, LocalTargetInfo)
L_00e5: br Label #0
L_00ea: Label #0
L_00ea: stloc 1 (Verse.AI.Job)
L_00eb: ldloca 1 (Verse.AI.Job)
L_00ed: ldarga 1
L_00f3: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_00f8: ldloc 1 (Verse.AI.Job)
L_00f9: ret
DONE

PATCHING RimWorld.JobDriver_Lovin+<MakeNewToils>c__Iterator0 Void <>m__4()


L_0000: Local var #0 RimWorld.Thought_Memory
L_0000: ldsfld RimWorld.ThoughtDef GotSomeLovin
L_0005: call RimWorld.Thought MakeThought(RimWorld.ThoughtDef)
L_000a: castclass RimWorld.Thought_Memory
L_000f: stloc.0
L_0010: ldarg.0
L_0011: ldfld RimWorld.JobDriver_Lovin $this
L_0016: ldfld Verse.Pawn pawn
L_001b: ldfld RimWorld.Pawn_NeedsTracker needs
L_0020: ldfld RimWorld.Need_Mood mood
L_0025: ldfld RimWorld.ThoughtHandler thoughts
L_002a: ldfld RimWorld.MemoryThoughtHandler memories
L_002f: ldloc.0
L_0030: ldarg.0
L_0031: ldfld RimWorld.JobDriver_Lovin $this
L_0036: call Verse.Pawn get_Partner()
L_003b: callvirt Void TryGainMemory(RimWorld.Thought_Memory, Verse.Pawn)
L_0040: ldarg.0
L_0041: ldfld RimWorld.JobDriver_Lovin $this
L_0046: ldfld Verse.Pawn pawn
L_004b: ldfld Verse.AI.Pawn_MindState mindState
L_0050: call Verse.TickManager get_TickManager()
L_0055: callvirt Int32 get_TicksGame()
L_005a: ldarg.0
L_005b: ldfld RimWorld.JobDriver_Lovin $this
L_0060: ldarg.0
L_0061: ldfld RimWorld.JobDriver_Lovin $this
L_0066: ldfld Verse.Pawn pawn
L_006b: call Int32 GenerateRandomMinTicksToNextLovin(Verse.Pawn)
L_0070: add
L_0071: stfld System.Int32 canLovinTick
L_0076: ldarg.0
L_0077: ldfld RimWorld.JobDriver_Lovin $this
L_007c: ldfld Verse.Pawn pawn
L_0081: ldarg.0
L_0082: ldfld RimWorld.JobDriver_Lovin $this
L_0087: call Verse.Pawn get_Partner()
L_008c: call Void TryToImpregnate(Verse.Pawn, Verse.Pawn)
L_0091: br Label #0
L_0096: Label #0
L_0096: ret
DONE

PATCHING RimWorld.JobDriver_Wear+<MakeNewToils>c__Iterator0 Boolean MoveNext()


L_0000: Local var #0 System.UInt32
L_0000: ldarg.0
L_0001: ldfld System.Int32 $PC
L_0006: stloc.0
L_0007: ldarg.0
L_0008: ldc.i4.m1
L_0009: stfld System.Int32 $PC
L_000e: ldloc.0
L_000f: switch Labels #2 #3 #4 #5
L_0024: br Label #6
L_0029: Label #2
L_0029: ldarg.0
L_002a: ldfld RimWorld.JobDriver_Wear $this
L_002f: call RimWorld.JobDriver_Wear FailOnBaby[JobDriver_Wear]
(RimWorld.JobDriver_Wear)
L_0034: pop
L_0035: ldarg.0
L_0036: newobj Void .ctor()
L_003b: stfld Verse.AI.Toil <gotoApparel>__1
L_0040: ldarg.0
L_0041: ldfld Verse.AI.Toil <gotoApparel>__1
L_0046: ldarg.0
L_0047: ldftn Void <>m__0()
L_004d: newobj Void .ctor(Object, IntPtr)
L_0052: stfld System.Action initAction
L_0057: ldarg.0
L_0058: ldfld Verse.AI.Toil <gotoApparel>__1
L_005d: ldc.i4.2
L_005e: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0063: ldarg.0
L_0064: ldfld Verse.AI.Toil <gotoApparel>__1
L_0069: ldc.i4.1
L_006a: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_006f: pop
L_0070: ldarg.0
L_0071: ldarg.0
L_0072: ldfld Verse.AI.Toil <gotoApparel>__1
L_0077: stfld Verse.AI.Toil $current
L_007c: ldarg.0
L_007d: ldfld System.Boolean $disposing
L_0082: brtrue Label #7
L_0087: ldarg.0
L_0088: ldc.i4.1
L_0089: stfld System.Int32 $PC
L_008e: Label #7
L_008e: br Label #8
L_0093: Label #3
L_0093: ldarg.0
L_0094: newobj Void .ctor()
L_0099: stfld Verse.AI.Toil <prepare>__2
L_009e: ldarg.0
L_009f: ldfld Verse.AI.Toil <prepare>__2
L_00a4: ldc.i4.3
L_00a5: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_00aa: ldarg.0
L_00ab: ldfld Verse.AI.Toil <prepare>__2
L_00b0: ldc.i4.s 60
L_00b2: stfld System.Int32 defaultDuration
L_00b7: ldarg.0
L_00b8: ldfld Verse.AI.Toil <prepare>__2
L_00bd: ldc.i4.1
L_00be: ldc.i4.0
L_00bf: ldc.r4 -0.5
L_00c4: call Verse.AI.Toil WithProgressBarToilDelay(Verse.AI.Toil, TargetIndex,
Boolean, Single)
L_00c9: pop
L_00ca: ldarg.0
L_00cb: ldfld Verse.AI.Toil <prepare>__2
L_00d0: ldc.i4.1
L_00d1: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_00d6: pop
L_00d7: ldarg.0
L_00d8: ldarg.0
L_00d9: ldfld Verse.AI.Toil <prepare>__2
L_00de: stfld Verse.AI.Toil $current
L_00e3: ldarg.0
L_00e4: ldfld System.Boolean $disposing
L_00e9: brtrue Label #9
L_00ee: ldarg.0
L_00ef: ldc.i4.2
L_00f0: stfld System.Int32 $PC
L_00f5: Label #9
L_00f5: br Label #10
L_00fa: Label #4
L_00fa: ldarg.0
L_00fb: newobj Void .ctor()
L_0100: stfld Verse.AI.Toil <wear>__3
L_0105: ldarg.0
L_0106: ldfld Verse.AI.Toil <wear>__3
L_010b: ldarg.0
L_010c: ldftn Void <>m__1()
L_0112: newobj Void .ctor(Object, IntPtr)
L_0117: stfld System.Action initAction
L_011c: ldarg.0
L_011d: ldfld Verse.AI.Toil <wear>__3
L_0122: ldc.i4.1
L_0123: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0128: ldarg.0
L_0129: ldarg.0
L_012a: ldfld Verse.AI.Toil <wear>__3
L_012f: stfld Verse.AI.Toil $current
L_0134: ldarg.0
L_0135: ldfld System.Boolean $disposing
L_013a: brtrue Label #11
L_013f: ldarg.0
L_0140: ldc.i4.3
L_0141: stfld System.Int32 $PC
L_0146: Label #11
L_0146: br Label #12
L_014b: Label #5
L_014b: ldarg.0
L_014c: ldc.i4.m1
L_014d: stfld System.Int32 $PC
L_0152: Label #6
L_0152: ldc.i4.0
L_0153: br Label #0
L_0158: Label #8
L_0158: Label #10
L_0158: Label #12
L_0158: ldc.i4.1
L_0159: br Label #0
L_015e: Label #0
L_015e: ret
DONE

PATCHING RimWorld.ThoughtUtility Boolean CanGetThought(Verse.Pawn,


RimWorld.ThoughtDef)
L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Int32
L_0000: Local var #2 System.Boolean
L_0000: Local var #3 System.Int32
L_0000: Local var #4 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 4 (System.Boolean)
L_0007: ldarg.1
L_0008: ldfld System.Boolean validWhileDespawned
L_000d: brtrue Label #2
L_0012: ldarg.0
L_0013: callvirt Boolean get_Spawned()
L_0018: brtrue Label #3
L_001d: ldarg.1
L_001e: callvirt Boolean get_IsMemory()
L_0023: brtrue Label #4
L_0028: ldc.i4.0
L_0029: stloc.0
L_002a: leave Label #5
L_002f: Label #2
L_002f: Label #3
L_002f: Label #4
L_002f: ldarg.1
L_0030: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0035: brfalse Label #6
L_003a: ldc.i4.0
L_003b: stloc.1
L_003c: br Label #7
L_0041: Label #10
L_0041: ldarg.0
L_0042: ldfld RimWorld.Pawn_StoryTracker story
L_0047: ldfld RimWorld.TraitSet traits
L_004c: ldarg.1
L_004d: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0052: ldloc.1
L_0053: callvirt RimWorld.TraitDef get_Item(Int32)
L_0058: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_005d: brfalse Label #8
L_0062: ldc.i4.0
L_0063: stloc.0
L_0064: leave Label #9
L_0069: Label #8
L_0069: ldloc.1
L_006a: ldc.i4.1
L_006b: add
L_006c: stloc.1
L_006d: Label #7
L_006d: ldloc.1
L_006e: ldarg.1
L_006f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0074: callvirt Int32 get_Count()
L_0079: blt Label #10
L_007e: Label #6
L_007e: ldarg.1
L_007f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0084: call Boolean NullOrEmpty[TraitDef](IList`1)
L_0089: brtrue Label #11
L_008e: ldc.i4.0
L_008f: stloc.2
L_0090: ldc.i4.0
L_0091: stloc.3
L_0092: br Label #12
L_0097: Label #19
L_0097: ldarg.0
L_0098: ldfld RimWorld.Pawn_StoryTracker story
L_009d: ldfld RimWorld.TraitSet traits
L_00a2: ldarg.1
L_00a3: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00a8: ldloc.3
L_00a9: callvirt RimWorld.TraitDef get_Item(Int32)
L_00ae: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_00b3: brtrue Label #13
L_00b8: leave Label #14
L_00bd: Label #13
L_00bd: ldarg.1
L_00be: callvirt Boolean get_RequiresSpecificTraitsDegree()
L_00c3: brfalse Label #15
L_00c8: ldarg.1
L_00c9: ldfld System.Int32 requiredTraitsDegree
L_00ce: ldarg.0
L_00cf: ldfld RimWorld.Pawn_StoryTracker story
L_00d4: ldfld RimWorld.TraitSet traits
L_00d9: ldarg.1
L_00da: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00df: ldloc.3
L_00e0: callvirt RimWorld.TraitDef get_Item(Int32)
L_00e5: callvirt Int32 DegreeOfTrait(RimWorld.TraitDef)
L_00ea: beq Label #16
L_00ef: leave Label #17
L_00f4: Label #15
L_00f4: Label #16
L_00f4: ldc.i4.1
L_00f5: stloc.2
L_00f6: leave Label #18
L_00fb: Label #14
L_00fb: Label #17
L_00fb: ldloc.3
L_00fc: ldc.i4.1
L_00fd: add
L_00fe: stloc.3
L_00ff: Label #12
L_00ff: ldloc.3
L_0100: ldarg.1
L_0101: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0106: callvirt Int32 get_Count()
L_010b: blt Label #19
L_0110: Label #18
L_0110: ldloc.2
L_0111: brtrue Label #20
L_0116: ldc.i4.0
L_0117: stloc.0
L_0118: leave Label #21
L_011d: Label #11
L_011d: Label #20
L_011d: ldarg.1
L_011e: ldfld System.Boolean nullifiedIfNotColonist
L_0123: brfalse Label #22
L_0128: ldarg.0
L_0129: callvirt Boolean get_IsColonist()
L_012e: brtrue Label #23
L_0133: ldc.i4.0
L_0134: stloc.0
L_0135: leave Label #24
L_013a: Label #22
L_013a: Label #23
L_013a: ldarg.1
L_013b: ldarg.0
L_013c: call Boolean IsSituationalThoughtNullifiedByHediffs(RimWorld.ThoughtDef,
Verse.Pawn)
L_0141: brfalse Label #25
L_0146: ldc.i4.0
L_0147: stloc.0
L_0148: leave Label #26
L_014d: Label #25
L_014d: ldarg.1
L_014e: ldarg.0
L_014f: call Boolean IsThoughtNullifiedByOwnTales(RimWorld.ThoughtDef, Verse.Pawn)
L_0154: brfalse Label #27
L_0159: ldc.i4.0
L_015a: stloc.0
L_015b: leave Label #28
L_0160: Label #27
L_0160: leave Label #29
L_0165: endfinally
L_0166: Label #29
L_0166: ldc.i4.1
L_0167: br Label #0
L_016c: Label #5
L_016c: Label #9
L_016c: Label #21
L_016c: Label #24
L_016c: Label #26
L_016c: Label #28
L_016c: ldloc.0
L_016d: br Label #0
L_0172: Label #0
L_0172: stloc 4 (System.Boolean)
L_0174: ldarga 0
L_017a: ldarga 1
L_0180: ldloca 4 (System.Boolean)
L_0182: call Void CanGetThought_Patch(Verse.Pawn ByRef, RimWorld.ThoughtDef ByRef,
Boolean ByRef)
L_0187: ldloc 4 (System.Boolean)
L_0189: ret
DONE

PATCHING RimWorld.JobGiver_SocialFighting Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Verb
L_0000: Local var #2 Verse.AI.Job
L_0000: Local var #3 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 3 (Verse.AI.Job)
L_0002: ldarg.1
L_0003: callvirt Verse.RaceProperties get_RaceProps()
L_0008: callvirt Boolean get_Humanlike()
L_000d: brfalse Label #2
L_0012: ldarg.1
L_0013: ldfld RimWorld.Pawn_StoryTracker story
L_0018: ldc.i4.8
L_0019: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_001e: brfalse Label #3
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: Label #3
L_0029: ldarg.1
L_002a: callvirt Verse.AI.MentalState get_MentalState()
L_002f: castclass Verse.AI.MentalState_SocialFighting
L_0034: ldfld Verse.Pawn otherPawn
L_0039: stloc.0
L_003a: ldarg.1
L_003b: ldloca.s 1 (Verse.Verb)
L_003d: call Boolean TryGetRandomVerbForSocialFight(Verse.Pawn, Verse.Verb ByRef)
L_0042: brtrue Label #4
L_0047: ldnull
L_0048: br Label #0
L_004d: Label #4
L_004d: ldsfld Verse.JobDef SocialFight
L_0052: ldloc.0
L_0053: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0058: newobj Void .ctor(JobDef, LocalTargetInfo)
L_005d: stloc.2
L_005e: ldloc.2
L_005f: ldc.i4.1
L_0060: stfld System.Int32 maxNumMeleeAttacks
L_0065: ldloc.2
L_0066: ldloc.1
L_0067: stfld Verse.Verb verbToUse
L_006c: ldloc.2
L_006d: br Label #0
L_0072: Label #0
L_0072: stloc 3 (Verse.AI.Job)
L_0073: ldarga 1
L_0079: ldloca 3 (Verse.AI.Job)
L_007b: call Void TryGiveJob_Postfix(Verse.Pawn ByRef, Verse.AI.Job ByRef)
L_0080: ldloc 3 (Verse.AI.Job)
L_0081: ret
DONE

PATCHING RimWorld.Pawn_ApparelTracker Void ApparelChanged()


L_0000: ldarg.0
L_0001: ldftn Void <ApparelChanged>m__1()
L_0007: newobj Void .ctor(Object, IntPtr)
L_000c: call Void ExecuteWhenFinished(System.Action)
L_0011: br Label #0
L_0016: Label #0
L_0016: ldarga 0
L_001c: call Void ApparelChanged_Postfix(RimWorld.Pawn_ApparelTracker ByRef)
L_0021: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveAllGraphics()


L_0000: Local var #0 Verse.PawnKindLifeStage
L_0000: ldarg.0
L_0001: call Void ClearCache()
L_0006: ldarg.0
L_0007: ldfld Verse.Pawn pawn
L_000c: callvirt Verse.RaceProperties get_RaceProps()
L_0011: callvirt Boolean get_Humanlike()
L_0016: brfalse Label #2
L_001b: ldarg.0
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_StoryTracker story
L_0027: ldfld RimWorld.BodyType bodyType
L_002c: ldsfld UnityEngine.Shader CutoutSkin
L_0031: ldarg.0
L_0032: ldfld Verse.Pawn pawn
L_0037: ldfld RimWorld.Pawn_StoryTracker story
L_003c: callvirt Color get_SkinColor()
L_0041: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_0046: stfld Verse.Graphic nakedGraphic
L_004b: ldarg.0
L_004c: ldarg.0
L_004d: ldfld Verse.Pawn pawn
L_0052: ldfld RimWorld.Pawn_StoryTracker story
L_0057: ldfld RimWorld.BodyType bodyType
L_005c: ldsfld UnityEngine.Shader CutoutSkin
L_0061: ldsfld UnityEngine.Color RottingColor
L_0066: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_006b: stfld Verse.Graphic rottingGraphic
L_0070: ldarg.0
L_0071: ldstr "Things/Pawn/Humanlike/HumanoidDessicated"
L_0076: ldsfld UnityEngine.Shader Cutout
L_007b: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader)
L_0080: stfld Verse.Graphic dessicatedGraphic
L_0085: ldarg.0
L_0086: ldarg.0
L_0087: ldfld Verse.Pawn pawn
L_008c: ldfld RimWorld.Pawn_StoryTracker story
L_0091: callvirt System.String get_HeadGraphicPath()
L_0096: ldarg.0
L_0097: ldfld Verse.Pawn pawn
L_009c: ldfld RimWorld.Pawn_StoryTracker story
L_00a1: callvirt Color get_SkinColor()
L_00a6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00ab: stfld Verse.Graphic headGraphic
L_00b0: ldarg.0
L_00b1: ldarg.0
L_00b2: ldfld Verse.Pawn pawn
L_00b7: ldfld RimWorld.Pawn_StoryTracker story
L_00bc: callvirt System.String get_HeadGraphicPath()
L_00c1: ldsfld UnityEngine.Color RottingColor
L_00c6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00cb: stfld Verse.Graphic desiccatedHeadGraphic
L_00d0: ldarg.0
L_00d1: call Verse.Graphic_Multi GetSkull()
L_00d6: stfld Verse.Graphic skullGraphic
L_00db: ldarg.0
L_00dc: ldarg.0
L_00dd: ldfld Verse.Pawn pawn
L_00e2: ldfld RimWorld.Pawn_StoryTracker story
L_00e7: callvirt Color get_SkinColor()
L_00ec: call Verse.Graphic_Multi GetStump(Color)
L_00f1: stfld Verse.Graphic headStumpGraphic
L_00f6: ldarg.0
L_00f7: ldsfld UnityEngine.Color RottingColor
L_00fc: call Verse.Graphic_Multi GetStump(Color)
L_0101: stfld Verse.Graphic desiccatedHeadStumpGraphic
L_0106: ldarg.0
L_0107: ldarg.0
L_0108: ldfld Verse.Pawn pawn
L_010d: ldfld RimWorld.Pawn_StoryTracker story
L_0112: ldfld RimWorld.HairDef hairDef
L_0117: ldfld System.String texPath
L_011c: ldsfld UnityEngine.Shader Cutout
L_0121: call Vector2 get_one()
L_0126: ldarg.0
L_0127: ldfld Verse.Pawn pawn
L_012c: ldfld RimWorld.Pawn_StoryTracker story
L_0131: ldfld UnityEngine.Color hairColor
L_0136: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_013b: stfld Verse.Graphic hairGraphic
L_0140: ldarg.0
L_0141: call Void ResolveApparelGraphics()
L_0146: br Label #3
L_014b: Label #2
L_014b: ldarg.0
L_014c: ldfld Verse.Pawn pawn
L_0151: ldfld Verse.Pawn_AgeTracker ageTracker
L_0156: callvirt Verse.PawnKindLifeStage get_CurKindLifeStage()
L_015b: stloc.0
L_015c: ldarg.0
L_015d: ldfld Verse.Pawn pawn
L_0162: ldfld Verse.Gender gender
L_0167: ldc.i4.2
L_0168: bne.un Label #4
L_016d: ldloc.0
L_016e: ldfld Verse.GraphicData femaleGraphicData
L_0173: brtrue Label #5
L_0178: Label #4
L_0178: ldarg.0
L_0179: ldloc.0
L_017a: ldfld Verse.GraphicData bodyGraphicData
L_017f: callvirt Verse.Graphic get_Graphic()
L_0184: stfld Verse.Graphic nakedGraphic
L_0189: br Label #6
L_018e: Label #5
L_018e: ldarg.0
L_018f: ldloc.0
L_0190: ldfld Verse.GraphicData femaleGraphicData
L_0195: callvirt Verse.Graphic get_Graphic()
L_019a: stfld Verse.Graphic nakedGraphic
L_019f: Label #6
L_019f: ldarg.0
L_01a0: ldarg.0
L_01a1: ldfld Verse.Graphic nakedGraphic
L_01a6: ldsfld UnityEngine.Shader CutoutSkin
L_01ab: ldsfld UnityEngine.Color RottingColor
L_01b0: ldsfld UnityEngine.Color RottingColor
L_01b5: callvirt Verse.Graphic GetColoredVersion(UnityEngine.Shader, Color, Color)
L_01ba: stfld Verse.Graphic rottingGraphic
L_01bf: ldarg.0
L_01c0: ldfld Verse.Pawn pawn
L_01c5: callvirt Verse.RaceProperties get_RaceProps()
L_01ca: ldfld System.Boolean packAnimal
L_01cf: brfalse Label #7
L_01d4: ldarg.0
L_01d5: ldarg.0
L_01d6: ldfld Verse.Graphic nakedGraphic
L_01db: ldfld System.String path
L_01e0: ldstr "Pack"
L_01e5: call System.String Concat(System.String, System.String)
L_01ea: ldsfld UnityEngine.Shader Cutout
L_01ef: ldarg.0
L_01f0: ldfld Verse.Graphic nakedGraphic
L_01f5: ldfld UnityEngine.Vector2 drawSize
L_01fa: call Color get_white()
L_01ff: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_0204: stfld Verse.Graphic packGraphic
L_0209: Label #7
L_0209: ldloc.0
L_020a: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_020f: brfalse Label #8
L_0214: ldarg.0
L_0215: ldloc.0
L_0216: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_021b: ldarg.0
L_021c: ldfld Verse.Pawn pawn
L_0221: callvirt Verse.Graphic GraphicColoredFor(Verse.Thing)
L_0226: stfld Verse.Graphic dessicatedGraphic
L_022b: Label #3
L_022b: Label #8
L_022b: br Label #0
L_0230: Label #0
L_0230: ldarga 0
L_0236: call Void ResolveAllGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_023b: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveApparelGraphics()


L_0000: Local var #0 RimWorld.Apparel
L_0000: Local var #1 System.Collections.Generic.IEnumerator`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 RimWorld.ApparelGraphicRecord
L_0000: ldarga 0
L_0006: call Void ResolveApparelGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_000b: ldarg.0
L_000c: call Void ClearCache()
L_0011: ldarg.0
L_0012: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0017: callvirt Void Clear()
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_ApparelTracker apparel
L_0027: callvirt IEnumerable`1 get_WornApparelInDrawOrder()
L_002c: callvirt IEnumerator`1 GetEnumerator()
L_0031: stloc.1
L_0032: br Label #2
L_0037: Label #4
L_0037: ldloc.1
L_0038: callvirt RimWorld.Apparel get_Current()
L_003d: stloc.0
L_003e: ldloc.0
L_003f: ldarg.0
L_0040: ldfld Verse.Pawn pawn
L_0045: call BodyType ModifyChildBodyType(Verse.Pawn)
L_004a: ldloca.s 2 (RimWorld.ApparelGraphicRecord)
L_004c: call Boolean TryGetGraphicApparel(RimWorld.Apparel, BodyType,
ApparelGraphicRecord ByRef)
L_0051: brfalse Label #3
L_0056: ldarg.0
L_0057: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_005c: ldloc.2
L_005d: callvirt Void Add(ApparelGraphicRecord)
L_0062: Label #2
L_0062: Label #3
L_0062: ldloc.1
L_0063: callvirt Boolean MoveNext()
L_0068: brtrue Label #4
L_006d: leave Label #5
L_0072: ldloc.1
L_0073: brfalse Label #6
L_0078: ldloc.1
L_0079: callvirt Void Dispose()
L_007e: Label #6
L_007e: endfinally
L_007f: Label #5
L_007f: br Label #0
L_0084: Label #0
L_0084: ret
DONE

PATCHING Verse.PawnRenderer Void RenderPawnInternal(Vector3, Quaternion, Boolean,


Rot4, Rot4, RotDrawMode, Boolean, Boolean)
L_0000: Local var #0 UnityEngine.Mesh
L_0000: Local var #1 UnityEngine.Vector3
L_0000: Local var #2 System.Collections.Generic.List`1[[UnityEngine.Material,
UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #3 System.Int32
L_0000: Local var #4 UnityEngine.Material
L_0000: Local var #5 UnityEngine.Vector3
L_0000: Local var #6 UnityEngine.Vector3
L_0000: Local var #7 UnityEngine.Vector3
L_0000: Local var #8 UnityEngine.Vector3
L_0000: Local var #9 UnityEngine.Material
L_0000: Local var #10 UnityEngine.Mesh
L_0000: Local var #11 UnityEngine.Vector3
L_0000: Local var #12 System.Boolean
L_0000: Local var #13 UnityEngine.Mesh
L_0000: Local var #14
System.Collections.Generic.List`1[[RimWorld.ApparelGraphicRecord, Assembly-CSharp,
Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #15 System.Int32
L_0000: Local var #16 RimWorld.ApparelGraphicRecord
L_0000: Local var #17 RimWorld.ApparelGraphicRecord
L_0000: Local var #18 UnityEngine.Material
L_0000: Local var #19 RimWorld.ApparelGraphicRecord
L_0000: Local var #20 UnityEngine.Material
L_0000: Local var #21 RimWorld.ApparelGraphicRecord
L_0000: Local var #22 UnityEngine.Vector3
L_0000: Local var #23 UnityEngine.Mesh
L_0000: Local var #24 UnityEngine.Material
L_0000: Local var #25 System.Int32
L_0000: Local var #26 RimWorld.ApparelGraphicRecord
L_0000: Local var #27 UnityEngine.Material
L_0000: Local var #28 System.Collections.Generic.List`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #29 System.Int32
L_0000: Local var #30 UnityEngine.Vector3
L_0000: ldarg.0
L_0001: ldfld Verse.PawnGraphicSet graphics
L_0006: callvirt Boolean get_AllResolved()
L_000b: brtrue Label #2
L_0010: ldarg.0
L_0011: ldfld Verse.PawnGraphicSet graphics
L_0016: callvirt Void ResolveAllGraphics()
L_001b: Label #2
L_001b: ldnull
L_001c: stloc.0
L_001d: ldarg.0
L_001e: ldfld Verse.Pawn pawn
L_0023: ldfld Verse.Pawn_AgeTracker ageTracker
L_0028: call Int32 get_CurLifeStageIndex()
L_002d: ldc.i4.2
L_002e: blt Label #43
L_0033: ldarg.3
L_0034: brfalse Label #3
L_0039: Label #43
L_0039: ldarg.1
L_003a: ldarg.0
L_003b: ldfld Verse.Pawn pawn
L_0040: ldarg.s 7
L_0045: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_004a: stloc.1
L_004b: ldloca.s 1 (UnityEngine.Vector3)
L_004d: dup
L_004e: ldfld System.Single y
L_0053: ldc.r4 0.0078125
L_0058: add
L_0059: stfld System.Single y
L_005e: ldarg.s 6
L_0060: ldc.i4.2
L_0061: bne.un Label #4
L_0066: ldarg.0
L_0067: ldfld Verse.Pawn pawn
L_006c: callvirt Verse.RaceProperties get_RaceProps()
L_0071: callvirt Boolean get_Humanlike()
L_0076: brtrue Label #5
L_007b: ldarg.0
L_007c: ldfld Verse.PawnGraphicSet graphics
L_0081: ldfld Verse.Graphic dessicatedGraphic
L_0086: brfalse Label #6
L_008b: ldarg.s 7
L_008d: brtrue Label #7
L_0092: ldarg.0
L_0093: ldfld Verse.PawnGraphicSet graphics
L_0098: ldfld Verse.Graphic dessicatedGraphic
L_009d: ldloc.1
L_009e: ldarg.s 4
L_00a0: ldarg.0
L_00a1: ldfld Verse.Pawn pawn
L_00a6: ldc.r4 0
L_00ab: callvirt Void Draw(Vector3, Rot4, Verse.Thing, Single)
L_00b0: br Label #8
L_00b5: Label #4
L_00b5: Label #5
L_00b5: Label #6
L_00b5: Label #7
L_00b5: ldarg.0
L_00b6: ldfld Verse.Pawn pawn
L_00bb: callvirt Verse.RaceProperties get_RaceProps()
L_00c0: callvirt Boolean get_Humanlike()
L_00c5: brfalse Label #9
L_00ca: ldsfld Verse.GraphicMeshSet humanlikeBodySet
L_00cf: ldarg.s 4
L_00d1: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00d6: stloc.0
L_00d7: br Label #10
L_00dc: Label #9
L_00dc: ldarg.0
L_00dd: ldfld Verse.PawnGraphicSet graphics
L_00e2: ldfld Verse.Graphic nakedGraphic
L_00e7: ldarg.s 4
L_00e9: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00ee: stloc.0
L_00ef: Label #10
L_00ef: ldarg.0
L_00f0: ldfld Verse.PawnGraphicSet graphics
L_00f5: ldarg.s 4
L_00f7: ldarg.s 6
L_00f9: callvirt System.Collections.Generic.List`1[UnityEngine.Material]
MatsBodyBaseAt(Rot4, RotDrawMode)
L_00fe: stloc.2
L_00ff: ldc.i4.0
L_0100: stloc.3
L_0101: br Label #11
L_0106: Label #12
L_0106: ldarg.0
L_0107: ldfld Verse.PawnGraphicSet graphics
L_010c: ldfld Verse.DamageFlasher flasher
L_0111: ldloc.2
L_0112: ldloc.3
L_0113: callvirt UnityEngine.Material get_Item(Int32)
L_0118: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_011d: stloc.s 4 (UnityEngine.Material)
L_011f: ldloc.s 4
L_0124: ldarg.0
L_0125: ldfld Verse.Pawn pawn
L_012a: ldarg.s 4
L_012f: call UnityEngine.Material ModifyClothingForChild(UnityEngine.Material,
Verse.Pawn, Rot4)
L_0134: stloc.s 4
L_0139: ldloc.0
L_013a: ldloc.1
L_013b: ldarg.2
L_013c: ldloc.s 4 (UnityEngine.Material)
L_013e: ldarg.s 7
L_0140: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_0145: ldloca.s 1 (UnityEngine.Vector3)
L_0147: dup
L_0148: ldfld System.Single y
L_014d: ldloc.s 18
L_0152: ldarg.0
L_0153: ldfld Verse.Pawn pawn
L_0158: call UnityEngine.Material ModifyHatForChild(UnityEngine.Material,
Verse.Pawn)
L_015d: stloc.s 18
L_0162: ldc.r4 0.00390625
L_0167: add
L_0168: stfld System.Single y
L_016d: ldloc.3
L_016e: ldc.i4.1
L_016f: add
L_0170: stloc.3
L_0171: Label #11
L_0171: ldloc.3
L_0172: ldloc.2
L_0173: callvirt Int32 get_Count()
L_0178: blt Label #12
L_017d: ldarg.s 6
L_017f: brtrue Label #13
L_0184: ldarg.1
L_0185: ldarg.0
L_0186: ldfld Verse.Pawn pawn
L_018b: ldarg.s 7
L_0190: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0195: stloc.s 5 (UnityEngine.Vector3)
L_0197: ldloca.s 5 (UnityEngine.Vector3)
L_0199: dup
L_019a: ldfld System.Single y
L_019f: ldc.r4 0.01953125
L_01a4: add
L_01a5: stfld System.Single y
L_01aa: ldarg.0
L_01ab: ldfld RimWorld.PawnWoundDrawer woundOverlays
L_01b0: ldloc.s 5 (UnityEngine.Vector3)
L_01b2: ldloc.0
L_01b3: ldarg.2
L_01b4: ldarg.s 7
L_01b6: callvirt Void RenderOverBody(Vector3, UnityEngine.Mesh, Quaternion,
Boolean)
L_01bb: Label #3
L_01bb: Label #8
L_01bb: Label #13
L_01bb: ldarg.1
L_01bc: ldarg.0
L_01bd: ldfld Verse.Pawn pawn
L_01c2: ldarg.s 7
L_01c7: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01cc: stloc.s 6 (UnityEngine.Vector3)
L_01ce: ldarg.1
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldarg.s 7
L_01da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01df: stloc.s 7 (UnityEngine.Vector3)
L_01e1: ldarg.s 4
L_01e3: call Rot4 get_North()
L_01e8: call Boolean op_Inequality(Rot4, Rot4)
L_01ed: brfalse Label #14
L_01f2: ldloca.s 7 (UnityEngine.Vector3)
L_01f4: dup
L_01f5: ldfld System.Single y
L_01fa: ldc.r4 0.02734375
L_01ff: add
L_0200: stfld System.Single y
L_0205: ldloca.s 6 (UnityEngine.Vector3)
L_0207: dup
L_0208: ldfld System.Single y
L_020d: ldc.r4 0.0234375
L_0212: add
L_0213: stfld System.Single y
L_0218: br Label #15
L_021d: Label #14
L_021d: ldloca.s 7 (UnityEngine.Vector3)
L_021f: dup
L_0220: ldfld System.Single y
L_0225: ldc.r4 0.0234375
L_022a: add
L_022b: stfld System.Single y
L_0230: ldloca.s 6 (UnityEngine.Vector3)
L_0232: dup
L_0233: ldfld System.Single y
L_0238: ldc.r4 0.02734375
L_023d: add
L_023e: stfld System.Single y
L_0243: Label #15
L_0243: ldarg.0
L_0244: ldfld Verse.PawnGraphicSet graphics
L_0249: ldfld Verse.Graphic headGraphic
L_024e: brfalse Label #16
L_0253: ldarg.0
L_0254: ldfld Verse.Pawn pawn
L_0259: call Boolean RaceUsesChildren(Verse.Pawn)
L_025e: brfalse Label #44
L_0263: ldarg.0
L_0264: ldfld Verse.Pawn pawn
L_0269: call Boolean EnsurePawnIsChildOrOlder(Verse.Pawn)
L_026e: brfalse Label #16
L_0273: Label #44
L_0273: nop
L_0274: ldarg.2
L_0275: ldarg.0
L_0276: ldarg.s 5
L_0278: call Vector3 BaseHeadOffsetAt(Rot4)
L_027d: call Vector3 op_Multiply(Quaternion, Vector3)
L_0282: stloc.s 8 (UnityEngine.Vector3)
L_0284: ldarg.0
L_0285: ldfld Verse.PawnGraphicSet graphics
L_028a: ldarg.s 5
L_028c: ldarg.s 6
L_028e: ldarg.s 8
L_0290: callvirt UnityEngine.Material HeadMatAt(Rot4, RotDrawMode, Boolean)
L_0295: stloc.s 9 (UnityEngine.Material)
L_0297: ldloc.s 9 (UnityEngine.Material)
L_0299: ldnull
L_029a: call Boolean op_Inequality(UnityEngine.Object, UnityEngine.Object)
L_029f: brfalse Label #17
L_02a4: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_02a9: ldarg.s 5
L_02ab: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_02b0: stloc.s 10 (UnityEngine.Mesh)
L_02b2: ldloc.s 10 (UnityEngine.Mesh)
L_02b4: ldloc.s 7 (UnityEngine.Vector3)
L_02b6: ldloc.s 8 (UnityEngine.Vector3)
L_02b8: call Vector3 op_Addition(Vector3, Vector3)
L_02bd: ldarg.2
L_02be: ldloc.s 9 (UnityEngine.Material)
L_02c0: ldarg.s 7
L_02c2: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_02c7: Label #17
L_02c7: ldarg.1
L_02c8: ldloc.s 8 (UnityEngine.Vector3)
L_02ca: call Vector3 op_Addition(Vector3, Vector3)
L_02cf: ldarg.0
L_02d0: ldfld Verse.Pawn pawn
L_02d5: ldarg.s 7
L_02da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_02df: stloc.s 11 (UnityEngine.Vector3)
L_02e1: ldloca.s 11 (UnityEngine.Vector3)
L_02e3: dup
L_02e4: ldfld System.Single y
L_02e9: ldc.r4 0.03125
L_02ee: add
L_02ef: stfld System.Single y
L_02f4: ldc.i4.0
L_02f5: stloc.s 12 (System.Boolean)
L_02f7: ldarg.s 7
L_02f9: brfalse Label #18
L_02fe: call Boolean get_HatsOnlyOnMap()
L_0303: brtrue Label #19
L_0308: Label #18
L_0308: ldarg.0
L_0309: ldfld Verse.PawnGraphicSet graphics
L_030e: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_0313: ldarg.s 5
L_0315: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_031a: stloc.s 13 (UnityEngine.Mesh)
L_031c: ldarg.0
L_031d: ldfld Verse.PawnGraphicSet graphics
L_0322: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0327: stloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0329: ldc.i4.0
L_032a: stloc.s 15 (System.Int32)
L_032c: br Label #20
L_0331: Label #26
L_0331: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0333: ldloc.s 15 (System.Int32)
L_0335: callvirt ApparelGraphicRecord get_Item(Int32)
L_033a: stloc.s 16 (RimWorld.ApparelGraphicRecord)
L_033c: ldloca.s 16 (RimWorld.ApparelGraphicRecord)
L_033e: ldfld RimWorld.Apparel sourceApparel
L_0343: ldfld Verse.ThingDef def
L_0348: ldfld RimWorld.ApparelProperties apparel
L_034d: callvirt ApparelLayer get_LastLayer()
L_0352: ldc.i4.4
L_0353: bne.un Label #21
L_0358: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_035a: ldloc.s 15 (System.Int32)
L_035c: callvirt ApparelGraphicRecord get_Item(Int32)
L_0361: stloc.s 17 (RimWorld.ApparelGraphicRecord)
L_0363: ldloca.s 17 (RimWorld.ApparelGraphicRecord)
L_0365: ldfld RimWorld.Apparel sourceApparel
L_036a: ldfld Verse.ThingDef def
L_036f: ldfld RimWorld.ApparelProperties apparel
L_0374: ldfld System.Boolean hatRenderedFrontOfFace
L_0379: brtrue Label #22
L_037e: ldc.i4.1
L_037f: stloc.s 12 (System.Boolean)
L_0381: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0383: ldloc.s 15 (System.Int32)
L_0385: callvirt ApparelGraphicRecord get_Item(Int32)
L_038a: stloc.s 19 (RimWorld.ApparelGraphicRecord)
L_038c: ldloca.s 19 (RimWorld.ApparelGraphicRecord)
L_038e: ldfld Verse.Graphic graphic
L_0393: ldarg.s 4
L_0395: ldnull
L_0396: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_039b: stloc.s 18 (UnityEngine.Material)
L_039d: ldarg.0
L_039e: ldfld Verse.PawnGraphicSet graphics
L_03a3: ldfld Verse.DamageFlasher flasher
L_03a8: ldloc.s 18 (UnityEngine.Material)
L_03aa: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03af: stloc.s 18 (UnityEngine.Material)
L_03b1: ldloc.s 13 (UnityEngine.Mesh)
L_03b3: ldloc.s 11 (UnityEngine.Vector3)
L_03b5: ldarg.2
L_03b6: ldloc.s 18 (UnityEngine.Material)
L_03b8: ldarg.s 7
L_03ba: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_03bf: br Label #23
L_03c4: Label #22
L_03c4: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_03c6: ldloc.s 15 (System.Int32)
L_03c8: callvirt ApparelGraphicRecord get_Item(Int32)
L_03cd: stloc.s 21 (RimWorld.ApparelGraphicRecord)
L_03cf: ldloca.s 21 (RimWorld.ApparelGraphicRecord)
L_03d1: ldfld Verse.Graphic graphic
L_03d6: ldarg.s 4
L_03d8: ldnull
L_03d9: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_03de: stloc.s 20 (UnityEngine.Material)
L_03e0: ldarg.0
L_03e1: ldfld Verse.PawnGraphicSet graphics
L_03e6: ldfld Verse.DamageFlasher flasher
L_03eb: ldloc.s 20 (UnityEngine.Material)
L_03ed: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03f2: stloc.s 20 (UnityEngine.Material)
L_03f4: ldarg.1
L_03f5: ldloc.s 8 (UnityEngine.Vector3)
L_03f7: call Vector3 op_Addition(Vector3, Vector3)
L_03fc: stloc.s 22 (UnityEngine.Vector3)
L_03fe: ldloca.s 22 (UnityEngine.Vector3)
L_0400: dup
L_0401: ldfld System.Single y
L_0406: ldarg.s 4
L_0408: call Rot4 get_North()
L_040d: call Boolean op_Equality(Rot4, Rot4)
L_0412: brfalse Label #24
L_0417: ldc.r4 0.00390625
L_041c: br Label #25
L_0421: Label #24
L_0421: ldc.r4 0.03515625
L_0426: Label #25
L_0426: add
L_0427: stfld System.Single y
L_042c: ldloc.s 13 (UnityEngine.Mesh)
L_042e: ldloc.s 22 (UnityEngine.Vector3)
L_0430: ldarg.2
L_0431: ldloc.s 20 (UnityEngine.Material)
L_0433: ldarg.s 7
L_0435: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_043a: Label #21
L_043a: Label #23
L_043a: ldloc.s 15 (System.Int32)
L_043c: ldc.i4.1
L_043d: add
L_043e: stloc.s 15 (System.Int32)
L_0440: Label #20
L_0440: ldloc.s 15 (System.Int32)
L_0442: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0444: callvirt Int32 get_Count()
L_0449: blt Label #26
L_044e: Label #19
L_044e: ldloc.s 12 (System.Boolean)
L_0450: brtrue Label #27
L_0455: ldarg.s 6
L_0457: ldc.i4.2
L_0458: beq Label #28
L_045d: ldarg.s 8
L_045f: brtrue Label #29
L_0464: ldarg.0
L_0465: ldfld Verse.PawnGraphicSet graphics
L_046a: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_046f: ldarg.s 5
L_0471: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0476: stloc.s 23 (UnityEngine.Mesh)
L_0478: ldarg.0
L_0479: ldfld Verse.PawnGraphicSet graphics
L_047e: ldarg.s 5
L_0480: callvirt UnityEngine.Material HairMatAt(Rot4)
L_0485: stloc.s 24 (UnityEngine.Material)
L_0487: ldloc.s 24
L_048c: ldarg.0
L_048d: ldfld Verse.Pawn pawn
L_0492: call UnityEngine.Material ModifyHairForChild(UnityEngine.Material,
Verse.Pawn)
L_0497: stloc.s 24
L_049c: ldloc.s 23 (UnityEngine.Mesh)
L_049e: ldloc.s 11 (UnityEngine.Vector3)
L_04a0: ldarg.2
L_04a1: ldloc.s 24 (UnityEngine.Material)
L_04a3: ldarg.s 7
L_04a5: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_04aa: Label #16
L_04aa: Label #27
L_04aa: Label #28
L_04aa: Label #29
L_04aa: ldarg.3
L_04ab: brfalse Label #30
L_04b0: ldc.i4.0
L_04b1: stloc.s 25 (System.Int32)
L_04b3: br Label #31
L_04b8: Label #33
L_04b8: ldarg.0
L_04b9: ldfld Verse.PawnGraphicSet graphics
L_04be: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_04c3: ldloc.s 25 (System.Int32)
L_04c5: callvirt ApparelGraphicRecord get_Item(Int32)
L_04ca: stloc.s 26 (RimWorld.ApparelGraphicRecord)
L_04cc: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ce: ldfld RimWorld.Apparel sourceApparel
L_04d3: ldfld Verse.ThingDef def
L_04d8: ldfld RimWorld.ApparelProperties apparel
L_04dd: callvirt ApparelLayer get_LastLayer()
L_04e2: ldc.i4.2
L_04e3: bne.un Label #32
L_04e8: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ea: ldfld Verse.Graphic graphic
L_04ef: ldarg.s 4
L_04f1: ldnull
L_04f2: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_04f7: stloc.s 27 (UnityEngine.Material)
L_04f9: ldarg.0
L_04fa: ldfld Verse.PawnGraphicSet graphics
L_04ff: ldfld Verse.DamageFlasher flasher
L_0504: ldloc.s 27 (UnityEngine.Material)
L_0506: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_050b: stloc.s 27 (UnityEngine.Material)
L_050d: ldloc.0
L_050e: ldloc.s 6 (UnityEngine.Vector3)
L_0510: ldarg.2
L_0511: ldloc.s 27 (UnityEngine.Material)
L_0513: ldarg.s 7
L_0515: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_051a: Label #32
L_051a: ldloc.s 25 (System.Int32)
L_051c: ldc.i4.1
L_051d: add
L_051e: stloc.s 25 (System.Int32)
L_0520: Label #31
L_0520: ldloc.s 25 (System.Int32)
L_0522: ldarg.0
L_0523: ldfld Verse.PawnGraphicSet graphics
L_0528: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_052d: callvirt Int32 get_Count()
L_0532: blt Label #33
L_0537: Label #30
L_0537: ldarg.s 7
L_0539: brtrue Label #34
L_053e: ldarg.0
L_053f: ldfld Verse.Pawn pawn
L_0544: callvirt Verse.RaceProperties get_RaceProps()
L_0549: callvirt Boolean get_Animal()
L_054e: brfalse Label #35
L_0553: ldarg.0
L_0554: ldfld Verse.Pawn pawn
L_0559: ldfld Verse.Pawn_InventoryTracker inventory
L_055e: brfalse Label #36
L_0563: ldarg.0
L_0564: ldfld Verse.Pawn pawn
L_0569: ldfld Verse.Pawn_InventoryTracker inventory
L_056e: ldfld Verse.ThingOwner`1[Verse.Thing] innerContainer
L_0573: callvirt Int32 get_Count()
L_0578: ldc.i4.0
L_0579: ble Label #37
L_057e: ldarg.0
L_057f: ldfld Verse.PawnGraphicSet graphics
L_0584: ldfld Verse.Graphic packGraphic
L_0589: brfalse Label #38
L_058e: ldloc.0
L_058f: ldloc.s 6 (UnityEngine.Vector3)
L_0591: ldarg.2
L_0592: ldarg.0
L_0593: ldfld Verse.PawnGraphicSet graphics
L_0598: ldfld Verse.Graphic packGraphic
L_059d: ldarg.s 4
L_059f: ldnull
L_05a0: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_05a5: ldc.i4.0
L_05a6: call Void DrawMesh(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Int32)
L_05ab: Label #34
L_05ab: Label #35
L_05ab: Label #36
L_05ab: Label #37
L_05ab: Label #38
L_05ab: ldarg.s 7
L_05ad: brtrue Label #39
L_05b2: ldarg.0
L_05b3: ldarg.1
L_05b4: call Void DrawEquipment(Vector3)
L_05b9: ldarg.0
L_05ba: ldfld Verse.Pawn pawn
L_05bf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05c4: brfalse Label #40
L_05c9: ldarg.0
L_05ca: ldfld Verse.Pawn pawn
L_05cf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05d4: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_05d9: stloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05db: ldc.i4.0
L_05dc: stloc.s 29 (System.Int32)
L_05de: br Label #41
L_05e3: Label #42
L_05e3: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05e5: ldloc.s 29 (System.Int32)
L_05e7: callvirt RimWorld.Apparel get_Item(Int32)
L_05ec: callvirt Void DrawWornExtras()
L_05f1: ldloc.s 29 (System.Int32)
L_05f3: ldc.i4.1
L_05f4: add
L_05f5: stloc.s 29 (System.Int32)
L_05f7: Label #41
L_05f7: ldloc.s 29 (System.Int32)
L_05f9: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05fb: callvirt Int32 get_Count()
L_0600: blt Label #42
L_0605: Label #40
L_0605: ldarg.1
L_0606: ldarg.0
L_0607: ldfld Verse.Pawn pawn
L_060c: ldarg.s 7
L_0611: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0616: stloc.s 30 (UnityEngine.Vector3)
L_0618: ldloca.s 30 (UnityEngine.Vector3)
L_061a: dup
L_061b: ldfld System.Single y
L_0620: ldc.r4 0.04296875
L_0625: add
L_0626: stfld System.Single y
L_062b: ldarg.0
L_062c: ldfld Verse.PawnHeadOverlays statusOverlays
L_0631: ldloc.s 30 (UnityEngine.Vector3)
L_0633: ldarg.2
L_0634: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_0639: ldarg.s 5
L_063b: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0640: callvirt Void RenderStatusOverlays(Vector3, Quaternion, UnityEngine.Mesh)
L_0645: Label #39
L_0645: br Label #0
L_064a: Label #0
L_064a: ret
DONE

PATCHING Verse.PawnGenerator Verse.Pawn GeneratePawn(PawnGenerationRequest)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Pawn
L_0000: ldnull
L_0001: stloc 1 (Verse.Pawn)
L_0002: ldarg.0
L_0003: call Verse.Pawn GeneratePawnInternal(PawnGenerationRequest)
L_0008: stloc.0
L_0009: leave Label #2
L_000e: endfinally
L_000f: Label #2
L_000f: ldloc.0
L_0010: br Label #0
L_0015: Label #0
L_0015: stloc 1 (Verse.Pawn)
L_0016: ldarga 0
L_001c: ldloca 1 (Verse.Pawn)
L_001e: call Void _GeneratePawn(PawnGenerationRequest ByRef, Verse.Pawn ByRef)
L_0023: ldloc 1 (Verse.Pawn)
L_0024: ret
DONE
PATCHING RimWorld.JobGiver_OptimizeApparel Verse.AI.Job TryGiveJob(Verse.Pawn)
L_0000: Local var #0 RimWorld.Outfit
L_0000: Local var #1 System.Collections.Generic.List`1[[RimWorld.Apparel, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 System.Int32
L_0000: Local var #3 Verse.AI.Job
L_0000: Local var #4 Verse.Thing
L_0000: Local var #5 System.Single
L_0000: Local var #6 System.Collections.Generic.List`1[[Verse.Thing, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #7 System.Int32
L_0000: Local var #8 RimWorld.Apparel
L_0000: Local var #9 RimWorld.SlotGroup
L_0000: Local var #10 System.Single
L_0000: Local var #11 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 11 (Verse.AI.Job)
L_0003: ldarg.1
L_0004: ldfld RimWorld.Pawn_OutfitTracker outfits
L_0009: brtrue Label #2
L_000e: ldarg.1
L_000f: ldstr " tried to run JobGiver_OptimizeApparel without an OutfitTracker"
L_0014: call System.String Concat(System.Object, System.Object)
L_0019: ldc.i4 5643897
L_001e: call Void ErrorOnce(System.String, Int32)
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: ldarg.1
L_002a: callvirt RimWorld.Faction get_Faction()
L_002f: call RimWorld.Faction get_OfPlayer()
L_0034: beq Label #3
L_0039: ldstr "Non-colonist "
L_003e: ldarg.1
L_003f: ldstr " tried to optimize apparel."
L_0044: call System.String Concat(System.Object, System.Object, System.Object)
L_0049: ldc.i4 764323
L_004e: call Void ErrorOnce(System.String, Int32)
L_0053: ldnull
L_0054: br Label #0
L_0059: Label #3
L_0059: ldsfld System.Boolean debugApparelOptimize
L_005e: brtrue Label #4
L_0063: call Verse.TickManager get_TickManager()
L_0068: callvirt Int32 get_TicksGame()
L_006d: ldarg.1
L_006e: ldfld Verse.AI.Pawn_MindState mindState
L_0073: ldfld System.Int32 nextApparelOptimizeTick
L_0078: bge Label #5
L_007d: ldnull
L_007e: br Label #0
L_0083: Label #5
L_0083: br Label #6
L_0088: Label #4
L_0088: newobj Void .ctor()
L_008d: stsfld System.Text.StringBuilder debugSb
L_0092: ldsfld System.Text.StringBuilder debugSb
L_0097: ldc.i4.4
L_0098: newarr System.Object
L_009d: dup
L_009e: ldc.i4.0
L_009f: ldstr "Scanning for "
L_00a4: stelem.ref
L_00a5: dup
L_00a6: ldc.i4.1
L_00a7: ldarg.1
L_00a8: stelem.ref
L_00a9: dup
L_00aa: ldc.i4.2
L_00ab: ldstr " at "
L_00b0: stelem.ref
L_00b1: dup
L_00b2: ldc.i4.3
L_00b3: ldarg.1
L_00b4: callvirt IntVec3 get_Position()
L_00b9: box Verse.IntVec3
L_00be: stelem.ref
L_00bf: call System.String Concat(System.Object[])
L_00c4: callvirt System.Text.StringBuilder AppendLine(System.String)
L_00c9: pop
L_00ca: Label #6
L_00ca: ldarg.1
L_00cb: ldfld RimWorld.Pawn_OutfitTracker outfits
L_00d0: callvirt RimWorld.Outfit get_CurrentOutfit()
L_00d5: stloc.0
L_00d6: ldarg.1
L_00d7: ldfld RimWorld.Pawn_ApparelTracker apparel
L_00dc: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_00e1: stloc.1
L_00e2: ldloc.1
L_00e3: callvirt Int32 get_Count()
L_00e8: ldc.i4.1
L_00e9: sub
L_00ea: stloc.2
L_00eb: br Label #7
L_00f0: Label #10
L_00f0: ldloc.0
L_00f1: ldfld Verse.ThingFilter filter
L_00f6: ldloc.1
L_00f7: ldloc.2
L_00f8: callvirt RimWorld.Apparel get_Item(Int32)
L_00fd: callvirt Boolean Allows(Verse.Thing)
L_0102: brtrue Label #8
L_0107: ldarg.1
L_0108: ldfld RimWorld.Pawn_OutfitTracker outfits
L_010d: ldfld RimWorld.OutfitForcedHandler forcedHandler
L_0112: ldloc.1
L_0113: ldloc.2
L_0114: callvirt RimWorld.Apparel get_Item(Int32)
L_0119: callvirt Boolean AllowedToAutomaticallyDrop(RimWorld.Apparel)
L_011e: brfalse Label #9
L_0123: ldsfld Verse.JobDef RemoveApparel
L_0128: ldloc.1
L_0129: ldloc.2
L_012a: callvirt RimWorld.Apparel get_Item(Int32)
L_012f: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0134: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0139: stloc.3
L_013a: ldloc.3
L_013b: ldc.i4.1
L_013c: stfld System.Boolean haulDroppedApparel
L_0141: ldloc.3
L_0142: br Label #0
L_0147: Label #8
L_0147: Label #9
L_0147: ldloc.2
L_0148: ldc.i4.1
L_0149: sub
L_014a: stloc.2
L_014b: Label #7
L_014b: ldloc.2
L_014c: ldc.i4.0
L_014d: bge Label #10
L_0152: ldnull
L_0153: stloc.s 4 (Verse.Thing)
L_0155: ldc.r4 0
L_015a: stloc.s 5 (System.Single)
L_015c: ldarg.1
L_015d: callvirt Verse.Map get_Map()
L_0162: ldfld Verse.ListerThings listerThings
L_0167: ldc.i4.s 26
L_0169: callvirt System.Collections.Generic.List`1[Verse.Thing]
ThingsInGroup(ThingRequestGroup)
L_016e: stloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0170: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0172: callvirt Int32 get_Count()
L_0177: brtrue Label #11
L_017c: ldarg.0
L_017d: ldarg.1
L_017e: call Void SetNextOptimizeTick(Verse.Pawn)
L_0183: ldnull
L_0184: br Label #0
L_0189: Label #11
L_0189: ldarg.1
L_018a: ldarg.1
L_018b: callvirt Verse.Map get_Map()
L_0190: callvirt Int32 get_Tile()
L_0195: ldarg.1
L_0196: call Twelfth Twelfth(Verse.Thing)
L_019b: call NeededWarmth CalculateNeededWarmth(Verse.Pawn, Int32, Twelfth)
L_01a0: stsfld RimWorld.NeededWarmth neededWarmth
L_01a5: ldc.i4.0
L_01a6: stloc.s 7 (System.Int32)
L_01a8: br Label #12
L_01ad: Label #27
L_01ad: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_01af: ldloc.s 7 (System.Int32)
L_01b1: callvirt Verse.Thing get_Item(Int32)
L_01b6: castclass RimWorld.Apparel
L_01bb: stloc.s 8 (RimWorld.Apparel)
L_01bd: ldloc.0
L_01be: ldfld Verse.ThingFilter filter
L_01c3: ldloc.s 8 (RimWorld.Apparel)
L_01c5: callvirt Boolean Allows(Verse.Thing)
L_01ca: brtrue Label #13
L_01cf: br Label #14
L_01d4: Label #13
L_01d4: ldloc.s 8 (RimWorld.Apparel)
L_01d6: callvirt Verse.Map get_Map()
L_01db: ldfld RimWorld.SlotGroupManager slotGroupManager
L_01e0: ldloc.s 8 (RimWorld.Apparel)
L_01e2: callvirt IntVec3 get_Position()
L_01e7: callvirt RimWorld.SlotGroup SlotGroupAt(IntVec3)
L_01ec: stloc.s 9 (RimWorld.SlotGroup)
L_01ee: ldloc.s 9 (RimWorld.SlotGroup)
L_01f0: brtrue Label #15
L_01f5: br Label #16
L_01fa: Label #15
L_01fa: ldloc.s 8 (RimWorld.Apparel)
L_01fc: ldarg.1
L_01fd: call Boolean IsForbidden(Verse.Thing, Verse.Pawn)
L_0202: brfalse Label #17
L_0207: br Label #18
L_020c: Label #17
L_020c: ldarg.1
L_020d: ldloc.s 8 (RimWorld.Apparel)
L_020f: call Single ApparelScoreGain(Verse.Pawn, RimWorld.Apparel)
L_0214: stloc.s 10 (System.Single)
L_0216: ldsfld System.Boolean debugApparelOptimize
L_021b: brfalse Label #19
L_0220: ldsfld System.Text.StringBuilder debugSb
L_0225: ldloc.s 8 (RimWorld.Apparel)
L_0227: callvirt System.String get_LabelCap()
L_022c: ldstr ": "
L_0231: ldloca.s 10 (System.Single)
L_0233: ldstr "F2"
L_0238: call System.String ToString(System.String)
L_023d: call System.String Concat(System.String, System.String, System.String)
L_0242: callvirt System.Text.StringBuilder AppendLine(System.String)
L_0247: pop
L_0248: Label #19
L_0248: ldloc.s 10 (System.Single)
L_024a: ldc.r4 0.05
L_024f: blt Label #20
L_0254: ldloc.s 10 (System.Single)
L_0256: ldloc.s 5 (System.Single)
L_0258: bge.un Label #21
L_025d: Label #20
L_025d: br Label #22
L_0262: Label #21
L_0262: ldarg.1
L_0263: ldloc.s 8 (RimWorld.Apparel)
L_0265: ldfld Verse.ThingDef def
L_026a: call Boolean HasPartsToWear(Verse.Pawn, Verse.ThingDef)
L_026f: brtrue Label #23
L_0274: br Label #24
L_0279: Label #23
L_0279: ldarg.1
L_027a: ldloc.s 8 (RimWorld.Apparel)
L_027c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0281: ldc.i4.1
L_0282: ldarg.1
L_0283: call Danger NormalMaxDanger(Verse.Pawn)
L_0288: ldc.i4.1
L_0289: ldc.i4.m1
L_028a: ldnull
L_028b: ldc.i4.0
L_028c: call Boolean CanReserveAndReach(Verse.Pawn, LocalTargetInfo, PathEndMode,
Danger, Int32, Int32, Verse.ReservationLayerDef, Boolean)
L_0291: brtrue Label #25
L_0296: br Label #26
L_029b: Label #25
L_029b: ldloc.s 8 (RimWorld.Apparel)
L_029d: stloc.s 4 (Verse.Thing)
L_029f: ldloc.s 10 (System.Single)
L_02a1: stloc.s 5 (System.Single)
L_02a3: Label #14
L_02a3: Label #16
L_02a3: Label #18
L_02a3: Label #22
L_02a3: Label #24
L_02a3: Label #26
L_02a3: ldloc.s 7 (System.Int32)
L_02a5: ldc.i4.1
L_02a6: add
L_02a7: stloc.s 7 (System.Int32)
L_02a9: Label #12
L_02a9: ldloc.s 7 (System.Int32)
L_02ab: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_02ad: callvirt Int32 get_Count()
L_02b2: blt Label #27
L_02b7: ldsfld System.Boolean debugApparelOptimize
L_02bc: brfalse Label #28
L_02c1: ldsfld System.Text.StringBuilder debugSb
L_02c6: ldstr "BEST: "
L_02cb: ldloc.s 4 (Verse.Thing)
L_02cd: call System.String Concat(System.Object, System.Object)
L_02d2: callvirt System.Text.StringBuilder AppendLine(System.String)
L_02d7: pop
L_02d8: ldsfld System.Text.StringBuilder debugSb
L_02dd: callvirt System.String ToString()
L_02e2: call Void Message(System.String)
L_02e7: ldnull
L_02e8: stsfld System.Text.StringBuilder debugSb
L_02ed: Label #28
L_02ed: ldloc.s 4 (Verse.Thing)
L_02ef: brtrue Label #29
L_02f4: ldarg.0
L_02f5: ldarg.1
L_02f6: call Void SetNextOptimizeTick(Verse.Pawn)
L_02fb: ldnull
L_02fc: br Label #0
L_0301: Label #29
L_0301: ldsfld Verse.JobDef Wear
L_0306: ldloc.s 4 (Verse.Thing)
L_0308: call LocalTargetInfo op_Implicit(Verse.Thing)
L_030d: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0312: br Label #0
L_0317: Label #0
L_0317: stloc 11 (Verse.AI.Job)
L_0319: ldloca 11 (Verse.AI.Job)
L_031b: ldarga 1
L_0321: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_0326: ldloc 11 (Verse.AI.Job)
L_0328: ret
DONE

PATCHING Verse.Pawn_HealthTracker Boolean ShouldBeDowned()


L_0000: Local var #0 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 0 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean get_InPainShock()
L_000c: brtrue Label #2
L_0011: ldarg.0
L_0012: ldfld Verse.PawnCapacitiesHandler capacities
L_0017: callvirt Boolean get_CanBeAwake()
L_001c: brfalse Label #3
L_0021: ldarg.0
L_0022: ldfld Verse.PawnCapacitiesHandler capacities
L_0027: ldsfld Verse.PawnCapacityDef Moving
L_002c: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0031: ldc.i4.0
L_0032: ceq
L_0034: br Label #4
L_0039: Label #2
L_0039: Label #3
L_0039: ldc.i4.1
L_003a: Label #4
L_003a: br Label #0
L_003f: Label #0
L_003f: stloc 0 (System.Boolean)
L_0040: ldarga 0
L_0046: ldloca 0 (System.Boolean)
L_0048: call Void SBD(Verse.Pawn_HealthTracker ByRef, Boolean ByRef)
L_004d: ldloc 0 (System.Boolean)
L_004e: ret
DONE

PATCHING Verse.Pawn_HealthTracker Void CheckForStateChange(Nullable`1,


Verse.Hediff)
L_0000: Local var #0 System.Single
L_0000: Local var #1 Verse.DamageInfo
L_0000: Local var #2 Verse.ThingWithComps
L_0000: ldarg.0
L_0001: call Boolean get_Dead()
L_0006: brtrue Label #2
L_000b: ldarg.0
L_000c: call Boolean ShouldBeDead()
L_0011: brfalse Label #3
L_0016: ldarg.0
L_0017: ldfld Verse.Pawn pawn
L_001c: callvirt Boolean get_Destroyed()
L_0021: brtrue Label #4
L_0026: ldarg.0
L_0027: ldfld Verse.Pawn pawn
L_002c: ldarg.1
L_002d: ldarg.2
L_002e: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_0033: Label #4
L_0033: br Label #0
L_0038: Label #3
L_0038: ldarg.0
L_0039: call Boolean get_Downed()
L_003e: brtrue Label #5
L_0043: ldarg.0
L_0044: call Boolean ShouldBeDowned()
L_0049: brfalse Label #6
L_004e: ldarg.0
L_004f: ldfld Verse.Pawn pawn
L_0054: callvirt Verse.RaceProperties get_RaceProps()
L_0059: callvirt Boolean get_Animal()
L_005e: brfalse Label #7
L_0063: ldc.r4 0.47
L_0068: br Label #8
L_006d: Label #7
L_006d: ldc.r4 0.67
L_0072: Label #8
L_0072: stloc.0
L_0073: ldarg.0
L_0074: ldfld System.Boolean forceIncap
L_0079: brtrue Label #9
L_007e: ldarga.s 1
L_0080: call Boolean get_HasValue()
L_0085: brfalse Label #10
L_008a: ldarga.s 1
L_008c: call DamageInfo get_Value()
L_0091: stloc.1
L_0092: ldloca.s 1 (Verse.DamageInfo)
L_0094: call Verse.DamageDef get_Def()
L_0099: ldfld System.Boolean externalViolence
L_009e: brfalse Label #11
L_00a3: ldarg.0
L_00a4: ldfld Verse.Pawn pawn
L_00a9: callvirt RimWorld.Faction get_Faction()
L_00ae: brfalse Label #12
L_00b3: ldarg.0
L_00b4: ldfld Verse.Pawn pawn
L_00b9: callvirt RimWorld.Faction get_Faction()
L_00be: callvirt Boolean get_IsPlayer()
L_00c3: brtrue Label #13
L_00c8: br Label #13
L_00cd: Label #12
L_00cd: ldarg.0
L_00ce: ldfld Verse.Pawn pawn
L_00d3: callvirt Boolean get_IsPrisonerOfColony()
L_00d8: brtrue Label #14
L_00dd: ldarg.0
L_00de: ldfld Verse.Pawn pawn
L_00e3: callvirt Verse.RaceProperties get_RaceProps()
L_00e8: callvirt Boolean get_IsFlesh()
L_00ed: brfalse Label #15
L_00f2: call Single get_Value()
L_00f7: ldloc.0
L_00f8: bge.un Label #16
L_00fd: ldarg.0
L_00fe: ldfld Verse.Pawn pawn
L_0103: ldarg.1
L_0104: ldnull
L_0105: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_010a: br Label #0
L_010f: Label #9
L_010f: Label #10
L_010f: Label #11
L_010f: Label #13
L_010f: Label #14
L_010f: Label #15
L_010f: Label #16
L_010f: ldarg.0
L_0110: ldc.i4.0
L_0111: stfld System.Boolean forceIncap
L_0116: ldarg.0
L_0117: ldarg.1
L_0118: ldarg.2
L_0119: call Void MakeDowned(Nullable`1, Verse.Hediff)
L_011e: br Label #0
L_0123: Label #6
L_0123: ldarg.0
L_0124: ldfld Verse.PawnCapacitiesHandler capacities
L_0129: ldsfld Verse.PawnCapacityDef Manipulation
L_012e: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0133: brtrue Label #17
L_0138: ldarg.0
L_0139: ldfld Verse.Pawn pawn
L_013e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0143: brfalse Label #18
L_0148: ldarg.0
L_0149: ldfld Verse.Pawn pawn
L_014e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0153: callvirt Verse.Thing get_CarriedThing()
L_0158: brfalse Label #19
L_015d: ldarg.0
L_015e: ldfld Verse.Pawn pawn
L_0163: ldfld Verse.AI.Pawn_JobTracker jobs
L_0168: brfalse Label #20
L_016d: ldarg.0
L_016e: ldfld Verse.Pawn pawn
L_0173: callvirt Verse.AI.Job get_CurJob()
L_0178: brfalse Label #21
L_017d: ldarg.0
L_017e: ldfld Verse.Pawn pawn
L_0183: ldfld Verse.AI.Pawn_JobTracker jobs
L_0188: ldc.i4.5
L_0189: ldc.i4.1
L_018a: callvirt Void EndCurrentJob(JobCondition, Boolean)
L_018f: Label #18
L_018f: Label #19
L_018f: Label #20
L_018f: Label #21
L_018f: ldarg.0
L_0190: ldfld Verse.Pawn pawn
L_0195: ldfld Verse.Pawn_EquipmentTracker equipment
L_019a: brfalse Label #22
L_019f: ldarg.0
L_01a0: ldfld Verse.Pawn pawn
L_01a5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01aa: callvirt Verse.ThingWithComps get_Primary()
L_01af: brfalse Label #23
L_01b4: ldarg.0
L_01b5: ldfld Verse.Pawn pawn
L_01ba: callvirt Boolean get_InContainerEnclosed()
L_01bf: brfalse Label #24
L_01c4: ldarg.0
L_01c5: ldfld Verse.Pawn pawn
L_01ca: ldfld Verse.Pawn_EquipmentTracker equipment
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01da: callvirt Verse.ThingWithComps get_Primary()
L_01df: ldarg.0
L_01e0: ldfld Verse.Pawn pawn
L_01e5: ldfld Verse.ThingOwner holdingOwner
L_01ea: callvirt Boolean TryTransferEquipmentToContainer(Verse.ThingWithComps,
Verse.ThingOwner)
L_01ef: pop
L_01f0: br Label #25
L_01f5: Label #24
L_01f5: ldarg.0
L_01f6: ldfld Verse.Pawn pawn
L_01fb: callvirt Boolean get_SpawnedOrAnyParentSpawned()
L_0200: brfalse Label #26
L_0205: ldarg.0
L_0206: ldfld Verse.Pawn pawn
L_020b: ldfld Verse.Pawn_EquipmentTracker equipment
L_0210: ldarg.0
L_0211: ldfld Verse.Pawn pawn
L_0216: ldfld Verse.Pawn_EquipmentTracker equipment
L_021b: callvirt Verse.ThingWithComps get_Primary()
L_0220: ldloca.s 2 (Verse.ThingWithComps)
L_0222: ldarg.0
L_0223: ldfld Verse.Pawn pawn
L_0228: callvirt IntVec3 get_PositionHeld()
L_022d: ldc.i4.1
L_022e: callvirt Boolean TryDropEquipment(Verse.ThingWithComps,
Verse.ThingWithComps ByRef, IntVec3, Boolean)
L_0233: pop
L_0234: br Label #27
L_0239: Label #26
L_0239: ldarg.0
L_023a: ldfld Verse.Pawn pawn
L_023f: ldfld Verse.Pawn_EquipmentTracker equipment
L_0244: ldarg.0
L_0245: ldfld Verse.Pawn pawn
L_024a: ldfld Verse.Pawn_EquipmentTracker equipment
L_024f: callvirt Verse.ThingWithComps get_Primary()
L_0254: callvirt Void DestroyEquipment(Verse.ThingWithComps)
L_0259: Label #17
L_0259: Label #22
L_0259: Label #23
L_0259: Label #25
L_0259: Label #27
L_0259: br Label #28
L_025e: Label #5
L_025e: ldarg.0
L_025f: call Boolean ShouldBeDowned()
L_0264: brtrue Label #29
L_0269: ldarg.0
L_026a: call Void MakeUndowned()
L_026f: br Label #0
L_0274: Label #2
L_0274: Label #28
L_0274: Label #29
L_0274: br Label #0
L_0279: Label #0
L_0279: ret
DONE

PATCHING RimWorld.RestUtility Single WakeThreshold(Verse.Pawn)


L_0000: Local var #0 Verse.AI.Group.Lord
L_0000: Local var #1 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #2 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #3 System.Single
L_0000: ldc.r4 0
L_0005: stloc 3 (System.Single)
L_0006: ldarg.0
L_0007: call Verse.AI.Group.Lord GetLord(Verse.Pawn)
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldloc.0
L_0014: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0019: brfalse Label #3
L_001e: ldloc.0
L_001f: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0024: callvirt Nullable`1 get_CustomWakeThreshold()
L_0029: stloc.1
L_002a: ldloca.s 1 (System.Nullable`1[System.Single])
L_002c: call Boolean get_HasValue()
L_0031: brfalse Label #4
L_0036: ldloc.0
L_0037: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_003c: callvirt Nullable`1 get_CustomWakeThreshold()
L_0041: stloc.2
L_0042: ldloca.s 2 (System.Nullable`1[System.Single])
L_0044: call Single get_Value()
L_0049: br Label #0
L_004e: Label #2
L_004e: Label #3
L_004e: Label #4
L_004e: ldc.r4 1
L_0053: br Label #0
L_0058: Label #0
L_0058: stloc 3 (System.Single)
L_0059: ldloca 3 (System.Single)
L_005b: ldarga 0
L_0061: call Void WakeThreshold_Patch(Single ByRef, Verse.Pawn ByRef)
L_0066: ldloc 3 (System.Single)
L_0067: ret
DONE

PATCHING Verse.Verb_Shoot Boolean TryCastShot()


L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 1 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean TryCastShot()
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldarg.0
L_0014: call Boolean get_CasterIsPawn()
L_0019: brfalse Label #3
L_001e: ldarg.0
L_001f: call Verse.Pawn get_CasterPawn()
L_0024: ldfld RimWorld.Pawn_RecordsTracker records
L_0029: ldsfld RimWorld.RecordDef ShotsFired
L_002e: callvirt Void Increment(RimWorld.RecordDef)
L_0033: Label #2
L_0033: Label #3
L_0033: ldloc.0
L_0034: br Label #0
L_0039: Label #0
L_0039: stloc 1 (System.Boolean)
L_003a: ldarga 0
L_0040: call Void TryCastShot_Patch(Verse.Verb_Shoot ByRef)
L_0045: ldloc 1 (System.Boolean)
L_0046: ret
DONE

PATCHING Verse.Pawn_EquipmentTracker Void


Notify_EquipmentAdded(Verse.ThingWithComps)
L_0000: Local var #0 Verse.Verb
L_0000: Local var #1 System.Collections.Generic.List`1+Enumerator[[Verse.Verb,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: ldarg.1
L_0001: callvirt Verse.CompEquippable GetComp[CompEquippable]()
L_0006: callvirt System.Collections.Generic.List`1[Verse.Verb] get_AllVerbs()
L_000b: callvirt Enumerator GetEnumerator()
L_0010: stloc.1
L_0011: br Label #2
L_0016: Label #3
L_0016: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0018: call Verse.Verb get_Current()
L_001d: stloc.0
L_001e: ldloc.0
L_001f: ldarg.0
L_0020: ldfld Verse.Pawn pawn
L_0025: stfld Verse.Thing caster
L_002a: ldloc.0
L_002b: callvirt Void Notify_PickedUp()
L_0030: Label #2
L_0030: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0032: call Boolean MoveNext()
L_0037: brtrue Label #3
L_003c: leave Label #4
L_0041: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0043: constrained. System.Collections.Generic.List`1+Enumerator[Verse.Verb]
L_0049: callvirt Void Dispose()
L_004e: endfinally
L_004f: Label #4
L_004f: br Label #0
L_0054: Label #0
L_0054: ldarga 1
L_005a: ldarga 0
L_0060: call Void Notify_EquipmentAdded_Patch(Verse.ThingWithComps ByRef,
Verse.Pawn_EquipmentTracker ByRef)
L_0065: ret
DONE

PATCHING RimWorld.PawnWeaponGenerator Void TryGenerateWeaponFor(Verse.Pawn)


L_0000: Local var #0 System.Single
L_0000: Local var #1 System.Int32
L_0000: Local var #2
RimWorld.PawnWeaponGenerator+<TryGenerateWeaponFor>c__AnonStorey2
L_0000: Local var #3 RimWorld.ThingStuffPair
L_0000: Local var #4 Verse.ThingWithComps
L_0000: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0005: callvirt Void Clear()
L_000a: ldarg.0
L_000b: ldfld Verse.PawnKindDef kindDef
L_0010: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0015: brfalse Label #2
L_001a: ldarg.0
L_001b: ldfld Verse.PawnKindDef kindDef
L_0020: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0025: callvirt Int32 get_Count()
L_002a: brtrue Label #3
L_002f: Label #2
L_002f: br Label #0
L_0034: Label #3
L_0034: ldarg.0
L_0035: callvirt Verse.RaceProperties get_RaceProps()
L_003a: callvirt Boolean get_ToolUser()
L_003f: brtrue Label #4
L_0044: br Label #0
L_0049: Label #4
L_0049: ldarg.0
L_004a: ldfld Verse.Pawn_HealthTracker health
L_004f: ldfld Verse.PawnCapacitiesHandler capacities
L_0054: ldsfld Verse.PawnCapacityDef Manipulation
L_0059: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_005e: brtrue Label #5
L_0063: br Label #0
L_0068: Label #5
L_0068: ldarg.0
L_0069: ldfld RimWorld.Pawn_StoryTracker story
L_006e: brfalse Label #6
L_0073: ldarg.0
L_0074: ldfld RimWorld.Pawn_StoryTracker story
L_0079: ldc.i4.8
L_007a: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_007f: brfalse Label #7
L_0084: br Label #0
L_0089: Label #6
L_0089: Label #7
L_0089: ldarg.0
L_008a: ldfld Verse.PawnKindDef kindDef
L_008f: ldflda Verse.FloatRange weaponMoney
L_0094: call Single get_RandomInRange()
L_0099: stloc.0
L_009a: ldc.i4.0
L_009b: stloc.1
L_009c: br Label #8
L_00a1: Label #16
L_00a1: newobj Void .ctor()
L_00a6: stloc.2
L_00a7: ldloc.2
L_00a8: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_00ad: ldloc.1
L_00ae: callvirt ThingStuffPair get_Item(Int32)
L_00b3: stfld RimWorld.ThingStuffPair w
L_00b8: ldloc.2
L_00b9: ldflda RimWorld.ThingStuffPair w
L_00be: call Single get_Price()
L_00c3: ldloc.0
L_00c4: ble.un Label #9
L_00c9: br Label #10
L_00ce: Label #9
L_00ce: ldarg.0
L_00cf: ldfld Verse.PawnKindDef kindDef
L_00d4: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_00d9: ldloc.2
L_00da: ldftn Boolean <>m__0(System.String)
L_00e0: newobj Void .ctor(Object, IntPtr)
L_00e5: call Boolean Any[String](System.Collections.Generic.List`1[System.String],
System.Predicate`1[System.String])
L_00ea: brtrue Label #11
L_00ef: br Label #12
L_00f4: Label #11
L_00f4: ldloc.2
L_00f5: ldflda RimWorld.ThingStuffPair w
L_00fa: ldfld Verse.ThingDef thing
L_00ff: ldfld System.Single generateAllowChance
L_0104: ldc.r4 1
L_0109: bge.un Label #13
L_010e: ldarg.0
L_010f: ldfld System.Int32 thingIDNumber
L_0114: ldc.i4 28554824
L_0119: xor
L_011a: call Single ValueSeeded(Int32)
L_011f: ldloc.2
L_0120: ldflda RimWorld.ThingStuffPair w
L_0125: ldfld Verse.ThingDef thing
L_012a: ldfld System.Single generateAllowChance
L_012f: ble.un Label #14
L_0134: br Label #15
L_0139: Label #13
L_0139: Label #14
L_0139: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_013e: ldloc.2
L_013f: ldfld RimWorld.ThingStuffPair w
L_0144: callvirt Void Add(ThingStuffPair)
L_0149: Label #10
L_0149: Label #12
L_0149: Label #15
L_0149: ldloc.1
L_014a: ldc.i4.1
L_014b: add
L_014c: stloc.1
L_014d: Label #8
L_014d: ldloc.1
L_014e: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_0153: callvirt Int32 get_Count()
L_0158: blt Label #16
L_015d: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0162: callvirt Int32 get_Count()
L_0167: brtrue Label #17
L_016c: br Label #0
L_0171: ldarg.0
L_0172: ldloc.2
L_0173: callvirt System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
FilterChildWeapons(Verse.Pawn,
System.Collections.Generic.List`1[RimWorld.ThingStuffPair])
L_0178: stloc.2
L_0179: Label #17
L_0179: ldarg.0
L_017a: ldfld Verse.Pawn_EquipmentTracker equipment
L_017f: ldc.i4.0
L_0180: callvirt Void DestroyAllEquipment(DestroyMode)
L_0185: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_018a: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_018f: brtrue Label #18
L_0194: ldnull
L_0195: ldftn Single <TryGenerateWeaponFor>m__2(ThingStuffPair)
L_019b: newobj Void .ctor(Object, IntPtr)
L_01a0: stsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01a5: Label #18
L_01a5: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01aa: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01ac: call Boolean TryRandomElementByWeight[ThingStuffPair](IEnumerable`1,
System.Func`2[RimWorld.ThingStuffPair,System.Single], ThingStuffPair ByRef)
L_01b1: brfalse Label #19
L_01b6: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01b8: ldfld Verse.ThingDef thing
L_01bd: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01bf: ldfld Verse.ThingDef stuff
L_01c4: call Verse.Thing MakeThing(Verse.ThingDef, Verse.ThingDef)
L_01c9: castclass Verse.ThingWithComps
L_01ce: stloc.s 4 (Verse.ThingWithComps)
L_01d0: ldloc.s 4 (Verse.ThingWithComps)
L_01d2: ldarg.0
L_01d3: call Void PostProcessGeneratedGear(Verse.Thing, Verse.Pawn)
L_01d8: ldarg.0
L_01d9: ldfld Verse.Pawn_EquipmentTracker equipment
L_01de: ldloc.s 4 (Verse.ThingWithComps)
L_01e0: callvirt Void AddEquipment(Verse.ThingWithComps)
L_01e5: Label #19
L_01e5: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_01ea: callvirt Void Clear()
L_01ef: br Label #0
L_01f4: Label #0
L_01f4: ret
DONE
PATCHING RimWorld.Bill_Medical Void Notify_DoBillStarted(Verse.Pawn)
L_0000: Local var #0 System.Collections.Generic.List`1[[Verse.ThingStackPartClass,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #1 System.Int32
L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void Notify_DoBillStarted(Verse.Pawn)
L_0007: ldarg.0
L_0008: ldnull
L_0009: stfld Verse.ThingDef consumedInitialMedicineDef
L_000e: ldarg.0
L_000f: call Verse.Pawn get_GiverPawn()
L_0014: callvirt Boolean get_Dead()
L_0019: brtrue Label #2
L_001e: ldarg.0
L_001f: ldfld Verse.RecipeDef recipe
L_0024: call Boolean RecipeHasNoIngredients(Verse.RecipeDef)
L_0029: brtrue Label #2
L_002e: ldarg.0
L_002f: ldfld Verse.RecipeDef recipe
L_0034: ldfld System.Boolean anesthetize
L_0039: brfalse Label #3
L_003e: ldarg.0
L_003f: call Verse.Pawn get_GiverPawn()
L_0044: call Boolean TryAnesthetize(Verse.Pawn)
L_0049: brfalse Label #4
L_004e: ldarg.1
L_004f: callvirt Verse.AI.Job get_CurJob()
L_0054: ldfld System.Collections.Generic.List`1[Verse.ThingStackPartClass]
placedThings
L_0059: stloc.0
L_005a: ldc.i4.0
L_005b: stloc.1
L_005c: br Label #5
L_0061: Label #10
L_0061: ldloc.0
L_0062: ldloc.1
L_0063: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0068: ldfld Verse.Thing thing
L_006d: isinst RimWorld.Medicine
L_0072: brfalse Label #6
L_0077: ldarg.0
L_0078: ldfld Verse.RecipeDef recipe
L_007d: callvirt Verse.RecipeWorker get_Worker()
L_0082: ldloc.0
L_0083: ldloc.1
L_0084: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0089: ldfld Verse.Thing thing
L_008e: ldc.i4.1
L_008f: callvirt Verse.Thing SplitOff(Int32)
L_0094: ldarg.0
L_0095: ldfld Verse.RecipeDef recipe
L_009a: ldarg.1
L_009b: callvirt Verse.Map get_MapHeld()
L_00a0: callvirt Void ConsumeIngredient(Verse.Thing, Verse.RecipeDef, Verse.Map)
L_00a5: ldloc.0
L_00a6: ldloc.1
L_00a7: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ac: dup
L_00ad: callvirt Int32 get_Count()
L_00b2: ldc.i4.1
L_00b3: sub
L_00b4: callvirt Void set_Count(Int32)
L_00b9: ldarg.0
L_00ba: ldloc.0
L_00bb: ldloc.1
L_00bc: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00c1: ldfld Verse.Thing thing
L_00c6: ldfld Verse.ThingDef def
L_00cb: stfld Verse.ThingDef consumedInitialMedicineDef
L_00d0: ldloc.0
L_00d1: ldloc.1
L_00d2: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00d7: ldfld Verse.Thing thing
L_00dc: callvirt Boolean get_Destroyed()
L_00e1: brtrue Label #7
L_00e6: ldloc.0
L_00e7: ldloc.1
L_00e8: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ed: callvirt Int32 get_Count()
L_00f2: ldc.i4.0
L_00f3: bgt Label #8
L_00f8: Label #7
L_00f8: ldloc.0
L_00f9: ldloc.1
L_00fa: callvirt Void RemoveAt(Int32)
L_00ff: Label #8
L_00ff: br Label #9
L_0104: Label #6
L_0104: ldloc.1
L_0105: ldc.i4.1
L_0106: add
L_0107: stloc.1
L_0108: Label #5
L_0108: ldloc.1
L_0109: ldloc.0
L_010a: callvirt Int32 get_Count()
L_010f: blt Label #10
L_0114: Label #2
L_0114: Label #3
L_0114: Label #4
L_0114: Label #9
L_0114: br Label #0
L_0119: Label #0
L_0119: ret
DONE

PATCHING RimWorld.Building_Bed IEnumerable`1 get_AssigningCandidates()


L_0000: ldarg.0
L_0001: callvirt IEnumerable`1 BedCandidates(RimWorld.Building_Bed)
L_0006: Label #0
L_0006: ret
DONE

PATCHING RimWorld.RestUtility RimWorld.Building_Bed FindBedFor(Verse.Pawn,


Verse.Pawn, Boolean, Boolean, Boolean)
L_0000: Local var #0 RimWorld.RestUtility+<FindBedFor>c__AnonStorey0
L_0000: Local var #1 RimWorld.Building_Bed
L_0000: Local var #2 Verse.Pawn
L_0000: Local var #3 Verse.Pawn
L_0000: Local var #4 System.Boolean
L_0000: Local var #5 System.Boolean
L_0000: Local var #6 System.Boolean
L_0000: Local var #7 System.Int32
L_0000: Local var #8 Verse.ThingDef
L_0000: Local var #9 System.Int32
L_0000: Local var #10 RimWorld.RestUtility+<FindBedFor>c__AnonStorey1
L_0000: Local var #11 RimWorld.Building_Bed
L_0000: Local var #12 RimWorld.DirectPawnRelation
L_0000: Local var #13 RimWorld.Building_Bed
L_0000: Local var #14 System.Int32
L_0000: Local var #15 RimWorld.RestUtility+<FindBedFor>c__AnonStorey2
L_0000: Local var #16 System.Int32
L_0000: Local var #17 Verse.ThingDef
L_0000: Local var #18 RimWorld.Building_Bed
L_0000: Local var #19 RimWorld.Building_Bed
L_0000: ldnull
L_0001: stloc 19 (RimWorld.Building_Bed)
L_0003: newobj Void .ctor()
L_0008: stloc.0
L_0009: ldloc.0
L_000a: ldarg.0
L_000b: stfld Verse.Pawn sleeper
L_0010: ldloc.0
L_0011: ldarg.1
L_0012: stfld Verse.Pawn traveler
L_0017: ldloc.0
L_0018: ldarg.2
L_0019: stfld System.Boolean sleeperWillBePrisoner
L_001e: ldloc.0
L_001f: ldarg.3
L_0020: stfld System.Boolean checkSocialProperness
L_0025: ldloc.0
L_0026: ldarg.s 4
L_0028: stfld System.Boolean ignoreOtherReservations
L_002d: ldloc.0
L_002e: ldfld Verse.Pawn sleeper
L_0033: call Boolean ShouldSeekMedicalRest(Verse.Pawn)
L_0038: brfalse Label #2
L_003d: ldloc.0
L_003e: ldfld Verse.Pawn sleeper
L_0043: call Boolean InBed(Verse.Pawn)
L_0048: brfalse Label #3
L_004d: ldloc.0
L_004e: ldfld Verse.Pawn sleeper
L_0053: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0058: callvirt Boolean get_Medical()
L_005d: brfalse Label #4
L_0062: ldloc.0
L_0063: ldfld Verse.Pawn sleeper
L_0068: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_006d: stloc.1
L_006e: ldloc.0
L_006f: ldfld Verse.Pawn sleeper
L_0074: stloc.2
L_0075: ldloc.0
L_0076: ldfld Verse.Pawn traveler
L_007b: stloc.3
L_007c: ldloc.0
L_007d: ldfld System.Boolean sleeperWillBePrisoner
L_0082: stloc.s 4 (System.Boolean)
L_0084: ldloc.0
L_0085: ldfld System.Boolean checkSocialProperness
L_008a: stloc.s 5 (System.Boolean)
L_008c: ldloc.0
L_008d: ldfld System.Boolean ignoreOtherReservations
L_0092: stloc.s 6 (System.Boolean)
L_0094: ldloc.1
L_0095: ldloc.2
L_0096: ldloc.3
L_0097: ldloc.s 4 (System.Boolean)
L_0099: ldloc.s 5 (System.Boolean)
L_009b: ldc.i4.0
L_009c: ldloc.s 6 (System.Boolean)
L_009e: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_00a3: brfalse Label #5
L_00a8: ldloc.0
L_00a9: ldfld Verse.Pawn sleeper
L_00ae: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00b3: br Label #0
L_00b8: Label #3
L_00b8: Label #4
L_00b8: Label #5
L_00b8: ldc.i4.0
L_00b9: stloc.s 7 (System.Int32)
L_00bb: br Label #6
L_00c0: Label #14
L_00c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_00c5: ldloc.s 7 (System.Int32)
L_00c7: callvirt Verse.ThingDef get_Item(Int32)
L_00cc: stloc.s 8 (Verse.ThingDef)
L_00ce: ldloc.0
L_00cf: ldfld Verse.Pawn sleeper
L_00d4: ldloc.s 8 (Verse.ThingDef)
L_00d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_00db: brtrue Label #7
L_00e0: br Label #8
L_00e5: Label #7
L_00e5: ldc.i4.0
L_00e6: stloc.s 9 (System.Int32)
L_00e8: br Label #9
L_00ed: Label #13
L_00ed: newobj Void .ctor()
L_00f2: stloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f4: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f6: ldloc.0
L_00f7: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_00fc: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00fe: ldloc.s 9 (System.Int32)
L_0100: brtrue Label #10
L_0105: ldc.i4.1
L_0106: br Label #11
L_010b: Label #10
L_010b: ldc.i4.3
L_010c: Label #11
L_010c: stfld Verse.Danger maxDanger
L_0111: ldloc.0
L_0112: ldfld Verse.Pawn sleeper
L_0117: callvirt IntVec3 get_Position()
L_011c: ldloc.0
L_011d: ldfld Verse.Pawn sleeper
L_0122: callvirt Verse.Map get_Map()
L_0127: ldloc.s 8 (Verse.ThingDef)
L_0129: call ThingRequest ForDef(Verse.ThingDef)
L_012e: ldc.i4.1
L_012f: ldloc.0
L_0130: ldfld Verse.Pawn traveler
L_0135: ldc.i4.3
L_0136: ldc.i4.0
L_0137: ldc.i4.0
L_0138: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_013d: ldc.r4 9999
L_0142: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_0144: ldftn Boolean <>m__0(Verse.Thing)
L_014a: newobj Void .ctor(Object, IntPtr)
L_014f: ldnull
L_0150: ldc.i4.0
L_0151: ldc.i4.m1
L_0152: ldc.i4.0
L_0153: ldc.i4.6
L_0154: ldc.i4.0
L_0155: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_015a: castclass RimWorld.Building_Bed
L_015f: stloc.s 11 (RimWorld.Building_Bed)
L_0161: ldloc.s 11 (RimWorld.Building_Bed)
L_0163: brfalse Label #12
L_0168: ldloc.s 11 (RimWorld.Building_Bed)
L_016a: br Label #0
L_016f: Label #12
L_016f: ldloc.s 9 (System.Int32)
L_0171: ldc.i4.1
L_0172: add
L_0173: stloc.s 9 (System.Int32)
L_0175: Label #9
L_0175: ldloc.s 9 (System.Int32)
L_0177: ldc.i4.2
L_0178: blt Label #13
L_017d: Label #8
L_017d: ldloc.s 7 (System.Int32)
L_017f: ldc.i4.1
L_0180: add
L_0181: stloc.s 7 (System.Int32)
L_0183: Label #6
L_0183: ldloc.s 7 (System.Int32)
L_0185: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_018a: callvirt Int32 get_Count()
L_018f: blt Label #14
L_0194: Label #2
L_0194: ldloc.0
L_0195: ldfld Verse.Pawn sleeper
L_019a: ldfld RimWorld.Pawn_Ownership ownership
L_019f: brfalse Label #15
L_01a4: ldloc.0
L_01a5: ldfld Verse.Pawn sleeper
L_01aa: ldfld RimWorld.Pawn_Ownership ownership
L_01af: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01b4: brfalse Label #16
L_01b9: ldloc.0
L_01ba: ldfld Verse.Pawn sleeper
L_01bf: ldfld RimWorld.Pawn_Ownership ownership
L_01c4: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01c9: stloc.1
L_01ca: ldloc.0
L_01cb: ldfld Verse.Pawn sleeper
L_01d0: stloc.3
L_01d1: ldloc.0
L_01d2: ldfld Verse.Pawn traveler
L_01d7: stloc.2
L_01d8: ldloc.0
L_01d9: ldfld System.Boolean sleeperWillBePrisoner
L_01de: stloc.s 6 (System.Boolean)
L_01e0: ldloc.0
L_01e1: ldfld System.Boolean checkSocialProperness
L_01e6: stloc.s 5 (System.Boolean)
L_01e8: ldloc.0
L_01e9: ldfld System.Boolean ignoreOtherReservations
L_01ee: stloc.s 4 (System.Boolean)
L_01f0: ldloc.1
L_01f1: ldloc.3
L_01f2: ldloc.2
L_01f3: ldloc.s 6 (System.Boolean)
L_01f5: ldloc.s 5 (System.Boolean)
L_01f7: ldc.i4.0
L_01f8: ldloc.s 4 (System.Boolean)
L_01fa: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_01ff: brfalse Label #17
L_0204: ldloc.0
L_0205: ldfld Verse.Pawn sleeper
L_020a: ldfld RimWorld.Pawn_Ownership ownership
L_020f: callvirt RimWorld.Building_Bed get_OwnedBed()
L_0214: br Label #0
L_0219: Label #15
L_0219: Label #16
L_0219: Label #17
L_0219: ldloc.0
L_021a: ldfld Verse.Pawn sleeper
L_021f: ldc.i4.0
L_0220: call RimWorld.DirectPawnRelation
ExistingMostLikedLovePartnerRel(Verse.Pawn, Boolean)
L_0225: stloc.s 12 (RimWorld.DirectPawnRelation)
L_0227: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0229: brfalse Label #18
L_022e: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0230: ldfld Verse.Pawn otherPawn
L_0235: ldfld RimWorld.Pawn_Ownership ownership
L_023a: callvirt RimWorld.Building_Bed get_OwnedBed()
L_023f: stloc.s 13 (RimWorld.Building_Bed)
L_0241: ldloc.s 13 (RimWorld.Building_Bed)
L_0243: brfalse Label #19
L_0248: ldloc.s 13 (RimWorld.Building_Bed)
L_024a: stloc.1
L_024b: ldloc.0
L_024c: ldfld Verse.Pawn sleeper
L_0251: stloc.2
L_0252: ldloc.0
L_0253: ldfld Verse.Pawn traveler
L_0258: stloc.3
L_0259: ldloc.0
L_025a: ldfld System.Boolean sleeperWillBePrisoner
L_025f: stloc.s 4 (System.Boolean)
L_0261: ldloc.0
L_0262: ldfld System.Boolean checkSocialProperness
L_0267: stloc.s 5 (System.Boolean)
L_0269: ldloc.0
L_026a: ldfld System.Boolean ignoreOtherReservations
L_026f: stloc.s 6 (System.Boolean)
L_0271: ldloc.1
L_0272: ldloc.2
L_0273: ldloc.3
L_0274: ldloc.s 4 (System.Boolean)
L_0276: ldloc.s 5 (System.Boolean)
L_0278: ldc.i4.0
L_0279: ldloc.s 6 (System.Boolean)
L_027b: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_0280: brfalse Label #20
L_0285: ldloc.s 13 (RimWorld.Building_Bed)
L_0287: br Label #0
L_028c: Label #18
L_028c: Label #19
L_028c: Label #20
L_028c: ldc.i4.0
L_028d: stloc.s 14 (System.Int32)
L_028f: br Label #21
L_0294: Label #29
L_0294: newobj Void .ctor()
L_0299: stloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029b: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029d: ldloc.0
L_029e: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_02a3: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_02a5: ldloc.s 14 (System.Int32)
L_02a7: brtrue Label #22
L_02ac: ldc.i4.1
L_02ad: br Label #23
L_02b2: Label #22
L_02b2: ldc.i4.3
L_02b3: Label #23
L_02b3: stfld Verse.Danger maxDanger
L_02b8: ldc.i4.0
L_02b9: stloc.s 16 (System.Int32)
L_02bb: br Label #24
L_02c0: Label #28
L_02c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_02c5: ldloc.s 16 (System.Int32)
L_02c7: callvirt Verse.ThingDef get_Item(Int32)
L_02cc: stloc.s 17 (Verse.ThingDef)
L_02ce: ldloc.0
L_02cf: ldfld Verse.Pawn sleeper
L_02d4: ldloc.s 17 (Verse.ThingDef)
L_02d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_02db: brtrue Label #25
L_02e0: br Label #26
L_02e5: Label #25
L_02e5: ldloc.0
L_02e6: ldfld Verse.Pawn sleeper
L_02eb: callvirt IntVec3 get_Position()
L_02f0: ldloc.0
L_02f1: ldfld Verse.Pawn sleeper
L_02f6: callvirt Verse.Map get_Map()
L_02fb: ldloc.s 17 (Verse.ThingDef)
L_02fd: call ThingRequest ForDef(Verse.ThingDef)
L_0302: ldc.i4.1
L_0303: ldloc.0
L_0304: ldfld Verse.Pawn traveler
L_0309: ldc.i4.3
L_030a: ldc.i4.0
L_030b: ldc.i4.0
L_030c: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_0311: ldc.r4 9999
L_0316: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_0318: ldftn Boolean <>m__0(Verse.Thing)
L_031e: newobj Void .ctor(Object, IntPtr)
L_0323: ldnull
L_0324: ldc.i4.0
L_0325: ldc.i4.m1
L_0326: ldc.i4.0
L_0327: ldc.i4.6
L_0328: ldc.i4.0
L_0329: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_032e: castclass RimWorld.Building_Bed
L_0333: stloc.s 18 (RimWorld.Building_Bed)
L_0335: ldloc.s 18 (RimWorld.Building_Bed)
L_0337: brfalse Label #27
L_033c: ldloc.s 18 (RimWorld.Building_Bed)
L_033e: br Label #0
L_0343: Label #26
L_0343: Label #27
L_0343: ldloc.s 16 (System.Int32)
L_0345: ldc.i4.1
L_0346: add
L_0347: stloc.s 16 (System.Int32)
L_0349: Label #24
L_0349: ldloc.s 16 (System.Int32)
L_034b: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_0350: callvirt Int32 get_Count()
L_0355: blt Label #28
L_035a: ldloc.s 14 (System.Int32)
L_035c: ldc.i4.1
L_035d: add
L_035e: stloc.s 14 (System.Int32)
L_0360: Label #21
L_0360: ldloc.s 14 (System.Int32)
L_0362: ldc.i4.2
L_0363: blt Label #29
L_0368: ldnull
L_0369: br Label #0
L_036e: Label #0
L_036e: stloc 19 (RimWorld.Building_Bed)
L_0370: ldarga 0
L_0376: ldloca 19 (RimWorld.Building_Bed)
L_0378: ldarga 1
L_037e: ldarga 4
L_0384: ldarga 2
L_038a: ldarga 3
L_0390: call Void FindBedFor_Patch(Verse.Pawn ByRef, RimWorld.Building_Bed ByRef,
Verse.Pawn ByRef, Boolean ByRef, Boolean ByRef, Boolean ByRef)
L_0395: ldloc 19 (RimWorld.Building_Bed)
L_0397: ret
DONE

PATCHING RimWorld.JobGiver_DoLovin Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 1 (Verse.AI.Job)
L_0002: call Verse.TickManager get_TickManager()
L_0007: callvirt Int32 get_TicksGame()
L_000c: ldarg.1
L_000d: ldfld Verse.AI.Pawn_MindState mindState
L_0012: ldfld System.Int32 canLovinTick
L_0017: bge Label #2
L_001c: ldnull
L_001d: br Label #0
L_0022: Label #2
L_0022: ldarg.1
L_0023: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0028: brfalse Label #3
L_002d: ldarg.1
L_002e: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0033: callvirt Boolean get_Medical()
L_0038: brtrue Label #4
L_003d: ldarg.1
L_003e: ldfld Verse.Pawn_HealthTracker health
L_0043: ldfld Verse.PawnCapacitiesHandler capacities
L_0048: callvirt Boolean get_CanBeAwake()
L_004d: brtrue Label #5
L_0052: Label #3
L_0052: Label #4
L_0052: ldnull
L_0053: br Label #0
L_0058: Label #5
L_0058: ldarg.1
L_0059: call Verse.Pawn GetPartnerInMyBed(Verse.Pawn)
L_005e: stloc.0
L_005f: ldloc.0
L_0060: brfalse Label #6
L_0065: ldloc.0
L_0066: ldfld Verse.Pawn_HealthTracker health
L_006b: ldfld Verse.PawnCapacitiesHandler capacities
L_0070: callvirt Boolean get_CanBeAwake()
L_0075: brfalse Label #7
L_007a: call Verse.TickManager get_TickManager()
L_007f: callvirt Int32 get_TicksGame()
L_0084: ldloc.0
L_0085: ldfld Verse.AI.Pawn_MindState mindState
L_008a: ldfld System.Int32 canLovinTick
L_008f: bge Label #8
L_0094: Label #6
L_0094: Label #7
L_0094: ldnull
L_0095: br Label #0
L_009a: Label #8
L_009a: ldarg.1
L_009b: ldloc.0
L_009c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00a1: ldc.i4.1
L_00a2: ldc.i4.m1
L_00a3: ldnull
L_00a4: ldc.i4.0
L_00a5: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00aa: brfalse Label #9
L_00af: ldloc.0
L_00b0: ldarg.1
L_00b1: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00b6: ldc.i4.1
L_00b7: ldc.i4.m1
L_00b8: ldnull
L_00b9: ldc.i4.0
L_00ba: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00bf: brtrue Label #10
L_00c4: Label #9
L_00c4: ldnull
L_00c5: br Label #0
L_00ca: Label #10
L_00ca: ldsfld Verse.JobDef Lovin
L_00cf: ldloc.0
L_00d0: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00d5: ldarg.1
L_00d6: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00db: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00e0: newobj Void .ctor(JobDef, LocalTargetInfo, LocalTargetInfo)
L_00e5: br Label #0
L_00ea: Label #0
L_00ea: stloc 1 (Verse.AI.Job)
L_00eb: ldloca 1 (Verse.AI.Job)
L_00ed: ldarga 1
L_00f3: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_00f8: ldloc 1 (Verse.AI.Job)
L_00f9: ret
DONE

PATCHING RimWorld.JobDriver_Lovin+<MakeNewToils>c__Iterator0 Void <>m__4()


L_0000: Local var #0 RimWorld.Thought_Memory
L_0000: ldsfld RimWorld.ThoughtDef GotSomeLovin
L_0005: call RimWorld.Thought MakeThought(RimWorld.ThoughtDef)
L_000a: castclass RimWorld.Thought_Memory
L_000f: stloc.0
L_0010: ldarg.0
L_0011: ldfld RimWorld.JobDriver_Lovin $this
L_0016: ldfld Verse.Pawn pawn
L_001b: ldfld RimWorld.Pawn_NeedsTracker needs
L_0020: ldfld RimWorld.Need_Mood mood
L_0025: ldfld RimWorld.ThoughtHandler thoughts
L_002a: ldfld RimWorld.MemoryThoughtHandler memories
L_002f: ldloc.0
L_0030: ldarg.0
L_0031: ldfld RimWorld.JobDriver_Lovin $this
L_0036: call Verse.Pawn get_Partner()
L_003b: callvirt Void TryGainMemory(RimWorld.Thought_Memory, Verse.Pawn)
L_0040: ldarg.0
L_0041: ldfld RimWorld.JobDriver_Lovin $this
L_0046: ldfld Verse.Pawn pawn
L_004b: ldfld Verse.AI.Pawn_MindState mindState
L_0050: call Verse.TickManager get_TickManager()
L_0055: callvirt Int32 get_TicksGame()
L_005a: ldarg.0
L_005b: ldfld RimWorld.JobDriver_Lovin $this
L_0060: ldarg.0
L_0061: ldfld RimWorld.JobDriver_Lovin $this
L_0066: ldfld Verse.Pawn pawn
L_006b: call Int32 GenerateRandomMinTicksToNextLovin(Verse.Pawn)
L_0070: add
L_0071: stfld System.Int32 canLovinTick
L_0076: ldarg.0
L_0077: ldfld RimWorld.JobDriver_Lovin $this
L_007c: ldfld Verse.Pawn pawn
L_0081: ldarg.0
L_0082: ldfld RimWorld.JobDriver_Lovin $this
L_0087: call Verse.Pawn get_Partner()
L_008c: call Void TryToImpregnate(Verse.Pawn, Verse.Pawn)
L_0091: br Label #0
L_0096: Label #0
L_0096: ret
DONE

PATCHING RimWorld.JobDriver_Wear+<MakeNewToils>c__Iterator0 Boolean MoveNext()


L_0000: Local var #0 System.UInt32
L_0000: ldarg.0
L_0001: ldfld System.Int32 $PC
L_0006: stloc.0
L_0007: ldarg.0
L_0008: ldc.i4.m1
L_0009: stfld System.Int32 $PC
L_000e: ldloc.0
L_000f: switch Labels #2 #3 #4 #5
L_0024: br Label #6
L_0029: Label #2
L_0029: ldarg.0
L_002a: ldfld RimWorld.JobDriver_Wear $this
L_002f: call RimWorld.JobDriver_Wear FailOnBaby[JobDriver_Wear]
(RimWorld.JobDriver_Wear)
L_0034: pop
L_0035: ldarg.0
L_0036: newobj Void .ctor()
L_003b: stfld Verse.AI.Toil <gotoApparel>__1
L_0040: ldarg.0
L_0041: ldfld Verse.AI.Toil <gotoApparel>__1
L_0046: ldarg.0
L_0047: ldftn Void <>m__0()
L_004d: newobj Void .ctor(Object, IntPtr)
L_0052: stfld System.Action initAction
L_0057: ldarg.0
L_0058: ldfld Verse.AI.Toil <gotoApparel>__1
L_005d: ldc.i4.2
L_005e: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0063: ldarg.0
L_0064: ldfld Verse.AI.Toil <gotoApparel>__1
L_0069: ldc.i4.1
L_006a: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_006f: pop
L_0070: ldarg.0
L_0071: ldarg.0
L_0072: ldfld Verse.AI.Toil <gotoApparel>__1
L_0077: stfld Verse.AI.Toil $current
L_007c: ldarg.0
L_007d: ldfld System.Boolean $disposing
L_0082: brtrue Label #7
L_0087: ldarg.0
L_0088: ldc.i4.1
L_0089: stfld System.Int32 $PC
L_008e: Label #7
L_008e: br Label #8
L_0093: Label #3
L_0093: ldarg.0
L_0094: newobj Void .ctor()
L_0099: stfld Verse.AI.Toil <prepare>__2
L_009e: ldarg.0
L_009f: ldfld Verse.AI.Toil <prepare>__2
L_00a4: ldc.i4.3
L_00a5: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_00aa: ldarg.0
L_00ab: ldfld Verse.AI.Toil <prepare>__2
L_00b0: ldc.i4.s 60
L_00b2: stfld System.Int32 defaultDuration
L_00b7: ldarg.0
L_00b8: ldfld Verse.AI.Toil <prepare>__2
L_00bd: ldc.i4.1
L_00be: ldc.i4.0
L_00bf: ldc.r4 -0.5
L_00c4: call Verse.AI.Toil WithProgressBarToilDelay(Verse.AI.Toil, TargetIndex,
Boolean, Single)
L_00c9: pop
L_00ca: ldarg.0
L_00cb: ldfld Verse.AI.Toil <prepare>__2
L_00d0: ldc.i4.1
L_00d1: call Verse.AI.Toil FailOnDespawnedNullOrForbidden[Toil](Verse.AI.Toil,
TargetIndex)
L_00d6: pop
L_00d7: ldarg.0
L_00d8: ldarg.0
L_00d9: ldfld Verse.AI.Toil <prepare>__2
L_00de: stfld Verse.AI.Toil $current
L_00e3: ldarg.0
L_00e4: ldfld System.Boolean $disposing
L_00e9: brtrue Label #9
L_00ee: ldarg.0
L_00ef: ldc.i4.2
L_00f0: stfld System.Int32 $PC
L_00f5: Label #9
L_00f5: br Label #10
L_00fa: Label #4
L_00fa: ldarg.0
L_00fb: newobj Void .ctor()
L_0100: stfld Verse.AI.Toil <wear>__3
L_0105: ldarg.0
L_0106: ldfld Verse.AI.Toil <wear>__3
L_010b: ldarg.0
L_010c: ldftn Void <>m__1()
L_0112: newobj Void .ctor(Object, IntPtr)
L_0117: stfld System.Action initAction
L_011c: ldarg.0
L_011d: ldfld Verse.AI.Toil <wear>__3
L_0122: ldc.i4.1
L_0123: stfld Verse.AI.ToilCompleteMode defaultCompleteMode
L_0128: ldarg.0
L_0129: ldarg.0
L_012a: ldfld Verse.AI.Toil <wear>__3
L_012f: stfld Verse.AI.Toil $current
L_0134: ldarg.0
L_0135: ldfld System.Boolean $disposing
L_013a: brtrue Label #11
L_013f: ldarg.0
L_0140: ldc.i4.3
L_0141: stfld System.Int32 $PC
L_0146: Label #11
L_0146: br Label #12
L_014b: Label #5
L_014b: ldarg.0
L_014c: ldc.i4.m1
L_014d: stfld System.Int32 $PC
L_0152: Label #6
L_0152: ldc.i4.0
L_0153: br Label #0
L_0158: Label #8
L_0158: Label #10
L_0158: Label #12
L_0158: ldc.i4.1
L_0159: br Label #0
L_015e: Label #0
L_015e: ret
DONE

PATCHING RimWorld.ThoughtUtility Boolean CanGetThought(Verse.Pawn,


RimWorld.ThoughtDef)
L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Int32
L_0000: Local var #2 System.Boolean
L_0000: Local var #3 System.Int32
L_0000: Local var #4 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 4 (System.Boolean)
L_0007: ldarg.1
L_0008: ldfld System.Boolean validWhileDespawned
L_000d: brtrue Label #2
L_0012: ldarg.0
L_0013: callvirt Boolean get_Spawned()
L_0018: brtrue Label #3
L_001d: ldarg.1
L_001e: callvirt Boolean get_IsMemory()
L_0023: brtrue Label #4
L_0028: ldc.i4.0
L_0029: stloc.0
L_002a: leave Label #5
L_002f: Label #2
L_002f: Label #3
L_002f: Label #4
L_002f: ldarg.1
L_0030: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0035: brfalse Label #6
L_003a: ldc.i4.0
L_003b: stloc.1
L_003c: br Label #7
L_0041: Label #10
L_0041: ldarg.0
L_0042: ldfld RimWorld.Pawn_StoryTracker story
L_0047: ldfld RimWorld.TraitSet traits
L_004c: ldarg.1
L_004d: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0052: ldloc.1
L_0053: callvirt RimWorld.TraitDef get_Item(Int32)
L_0058: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_005d: brfalse Label #8
L_0062: ldc.i4.0
L_0063: stloc.0
L_0064: leave Label #9
L_0069: Label #8
L_0069: ldloc.1
L_006a: ldc.i4.1
L_006b: add
L_006c: stloc.1
L_006d: Label #7
L_006d: ldloc.1
L_006e: ldarg.1
L_006f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] nullifyingTraits
L_0074: callvirt Int32 get_Count()
L_0079: blt Label #10
L_007e: Label #6
L_007e: ldarg.1
L_007f: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0084: call Boolean NullOrEmpty[TraitDef](IList`1)
L_0089: brtrue Label #11
L_008e: ldc.i4.0
L_008f: stloc.2
L_0090: ldc.i4.0
L_0091: stloc.3
L_0092: br Label #12
L_0097: Label #19
L_0097: ldarg.0
L_0098: ldfld RimWorld.Pawn_StoryTracker story
L_009d: ldfld RimWorld.TraitSet traits
L_00a2: ldarg.1
L_00a3: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00a8: ldloc.3
L_00a9: callvirt RimWorld.TraitDef get_Item(Int32)
L_00ae: callvirt Boolean HasTrait(RimWorld.TraitDef)
L_00b3: brtrue Label #13
L_00b8: leave Label #14
L_00bd: Label #13
L_00bd: ldarg.1
L_00be: callvirt Boolean get_RequiresSpecificTraitsDegree()
L_00c3: brfalse Label #15
L_00c8: ldarg.1
L_00c9: ldfld System.Int32 requiredTraitsDegree
L_00ce: ldarg.0
L_00cf: ldfld RimWorld.Pawn_StoryTracker story
L_00d4: ldfld RimWorld.TraitSet traits
L_00d9: ldarg.1
L_00da: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_00df: ldloc.3
L_00e0: callvirt RimWorld.TraitDef get_Item(Int32)
L_00e5: callvirt Int32 DegreeOfTrait(RimWorld.TraitDef)
L_00ea: beq Label #16
L_00ef: leave Label #17
L_00f4: Label #15
L_00f4: Label #16
L_00f4: ldc.i4.1
L_00f5: stloc.2
L_00f6: leave Label #18
L_00fb: Label #14
L_00fb: Label #17
L_00fb: ldloc.3
L_00fc: ldc.i4.1
L_00fd: add
L_00fe: stloc.3
L_00ff: Label #12
L_00ff: ldloc.3
L_0100: ldarg.1
L_0101: ldfld System.Collections.Generic.List`1[RimWorld.TraitDef] requiredTraits
L_0106: callvirt Int32 get_Count()
L_010b: blt Label #19
L_0110: Label #18
L_0110: ldloc.2
L_0111: brtrue Label #20
L_0116: ldc.i4.0
L_0117: stloc.0
L_0118: leave Label #21
L_011d: Label #11
L_011d: Label #20
L_011d: ldarg.1
L_011e: ldfld System.Boolean nullifiedIfNotColonist
L_0123: brfalse Label #22
L_0128: ldarg.0
L_0129: callvirt Boolean get_IsColonist()
L_012e: brtrue Label #23
L_0133: ldc.i4.0
L_0134: stloc.0
L_0135: leave Label #24
L_013a: Label #22
L_013a: Label #23
L_013a: ldarg.1
L_013b: ldarg.0
L_013c: call Boolean IsSituationalThoughtNullifiedByHediffs(RimWorld.ThoughtDef,
Verse.Pawn)
L_0141: brfalse Label #25
L_0146: ldc.i4.0
L_0147: stloc.0
L_0148: leave Label #26
L_014d: Label #25
L_014d: ldarg.1
L_014e: ldarg.0
L_014f: call Boolean IsThoughtNullifiedByOwnTales(RimWorld.ThoughtDef, Verse.Pawn)
L_0154: brfalse Label #27
L_0159: ldc.i4.0
L_015a: stloc.0
L_015b: leave Label #28
L_0160: Label #27
L_0160: leave Label #29
L_0165: endfinally
L_0166: Label #29
L_0166: ldc.i4.1
L_0167: br Label #0
L_016c: Label #5
L_016c: Label #9
L_016c: Label #21
L_016c: Label #24
L_016c: Label #26
L_016c: Label #28
L_016c: ldloc.0
L_016d: br Label #0
L_0172: Label #0
L_0172: stloc 4 (System.Boolean)
L_0174: ldarga 0
L_017a: ldarga 1
L_0180: ldloca 4 (System.Boolean)
L_0182: call Void CanGetThought_Patch(Verse.Pawn ByRef, RimWorld.ThoughtDef ByRef,
Boolean ByRef)
L_0187: ldloc 4 (System.Boolean)
L_0189: ret
DONE

PATCHING RimWorld.JobGiver_SocialFighting Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Verb
L_0000: Local var #2 Verse.AI.Job
L_0000: Local var #3 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 3 (Verse.AI.Job)
L_0002: ldarg.1
L_0003: callvirt Verse.RaceProperties get_RaceProps()
L_0008: callvirt Boolean get_Humanlike()
L_000d: brfalse Label #2
L_0012: ldarg.1
L_0013: ldfld RimWorld.Pawn_StoryTracker story
L_0018: ldc.i4.8
L_0019: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_001e: brfalse Label #3
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: Label #3
L_0029: ldarg.1
L_002a: callvirt Verse.AI.MentalState get_MentalState()
L_002f: castclass Verse.AI.MentalState_SocialFighting
L_0034: ldfld Verse.Pawn otherPawn
L_0039: stloc.0
L_003a: ldarg.1
L_003b: ldloca.s 1 (Verse.Verb)
L_003d: call Boolean TryGetRandomVerbForSocialFight(Verse.Pawn, Verse.Verb ByRef)
L_0042: brtrue Label #4
L_0047: ldnull
L_0048: br Label #0
L_004d: Label #4
L_004d: ldsfld Verse.JobDef SocialFight
L_0052: ldloc.0
L_0053: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0058: newobj Void .ctor(JobDef, LocalTargetInfo)
L_005d: stloc.2
L_005e: ldloc.2
L_005f: ldc.i4.1
L_0060: stfld System.Int32 maxNumMeleeAttacks
L_0065: ldloc.2
L_0066: ldloc.1
L_0067: stfld Verse.Verb verbToUse
L_006c: ldloc.2
L_006d: br Label #0
L_0072: Label #0
L_0072: stloc 3 (Verse.AI.Job)
L_0073: ldarga 1
L_0079: ldloca 3 (Verse.AI.Job)
L_007b: call Void TryGiveJob_Postfix(Verse.Pawn ByRef, Verse.AI.Job ByRef)
L_0080: ldloc 3 (Verse.AI.Job)
L_0081: ret
DONE

PATCHING RimWorld.Pawn_ApparelTracker Void ApparelChanged()


L_0000: ldarg.0
L_0001: ldftn Void <ApparelChanged>m__1()
L_0007: newobj Void .ctor(Object, IntPtr)
L_000c: call Void ExecuteWhenFinished(System.Action)
L_0011: br Label #0
L_0016: Label #0
L_0016: ldarga 0
L_001c: call Void ApparelChanged_Postfix(RimWorld.Pawn_ApparelTracker ByRef)
L_0021: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveAllGraphics()


L_0000: Local var #0 Verse.PawnKindLifeStage
L_0000: ldarg.0
L_0001: call Void ClearCache()
L_0006: ldarg.0
L_0007: ldfld Verse.Pawn pawn
L_000c: callvirt Verse.RaceProperties get_RaceProps()
L_0011: callvirt Boolean get_Humanlike()
L_0016: brfalse Label #2
L_001b: ldarg.0
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_StoryTracker story
L_0027: ldfld RimWorld.BodyType bodyType
L_002c: ldsfld UnityEngine.Shader CutoutSkin
L_0031: ldarg.0
L_0032: ldfld Verse.Pawn pawn
L_0037: ldfld RimWorld.Pawn_StoryTracker story
L_003c: callvirt Color get_SkinColor()
L_0041: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_0046: stfld Verse.Graphic nakedGraphic
L_004b: ldarg.0
L_004c: ldarg.0
L_004d: ldfld Verse.Pawn pawn
L_0052: ldfld RimWorld.Pawn_StoryTracker story
L_0057: ldfld RimWorld.BodyType bodyType
L_005c: ldsfld UnityEngine.Shader CutoutSkin
L_0061: ldsfld UnityEngine.Color RottingColor
L_0066: call Verse.Graphic GetNakedBodyGraphic(BodyType, UnityEngine.Shader, Color)
L_006b: stfld Verse.Graphic rottingGraphic
L_0070: ldarg.0
L_0071: ldstr "Things/Pawn/Humanlike/HumanoidDessicated"
L_0076: ldsfld UnityEngine.Shader Cutout
L_007b: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader)
L_0080: stfld Verse.Graphic dessicatedGraphic
L_0085: ldarg.0
L_0086: ldarg.0
L_0087: ldfld Verse.Pawn pawn
L_008c: ldfld RimWorld.Pawn_StoryTracker story
L_0091: callvirt System.String get_HeadGraphicPath()
L_0096: ldarg.0
L_0097: ldfld Verse.Pawn pawn
L_009c: ldfld RimWorld.Pawn_StoryTracker story
L_00a1: callvirt Color get_SkinColor()
L_00a6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00ab: stfld Verse.Graphic headGraphic
L_00b0: ldarg.0
L_00b1: ldarg.0
L_00b2: ldfld Verse.Pawn pawn
L_00b7: ldfld RimWorld.Pawn_StoryTracker story
L_00bc: callvirt System.String get_HeadGraphicPath()
L_00c1: ldsfld UnityEngine.Color RottingColor
L_00c6: call Verse.Graphic_Multi GetHeadNamed(System.String, Color)
L_00cb: stfld Verse.Graphic desiccatedHeadGraphic
L_00d0: ldarg.0
L_00d1: call Verse.Graphic_Multi GetSkull()
L_00d6: stfld Verse.Graphic skullGraphic
L_00db: ldarg.0
L_00dc: ldarg.0
L_00dd: ldfld Verse.Pawn pawn
L_00e2: ldfld RimWorld.Pawn_StoryTracker story
L_00e7: callvirt Color get_SkinColor()
L_00ec: call Verse.Graphic_Multi GetStump(Color)
L_00f1: stfld Verse.Graphic headStumpGraphic
L_00f6: ldarg.0
L_00f7: ldsfld UnityEngine.Color RottingColor
L_00fc: call Verse.Graphic_Multi GetStump(Color)
L_0101: stfld Verse.Graphic desiccatedHeadStumpGraphic
L_0106: ldarg.0
L_0107: ldarg.0
L_0108: ldfld Verse.Pawn pawn
L_010d: ldfld RimWorld.Pawn_StoryTracker story
L_0112: ldfld RimWorld.HairDef hairDef
L_0117: ldfld System.String texPath
L_011c: ldsfld UnityEngine.Shader Cutout
L_0121: call Vector2 get_one()
L_0126: ldarg.0
L_0127: ldfld Verse.Pawn pawn
L_012c: ldfld RimWorld.Pawn_StoryTracker story
L_0131: ldfld UnityEngine.Color hairColor
L_0136: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_013b: stfld Verse.Graphic hairGraphic
L_0140: ldarg.0
L_0141: call Void ResolveApparelGraphics()
L_0146: br Label #3
L_014b: Label #2
L_014b: ldarg.0
L_014c: ldfld Verse.Pawn pawn
L_0151: ldfld Verse.Pawn_AgeTracker ageTracker
L_0156: callvirt Verse.PawnKindLifeStage get_CurKindLifeStage()
L_015b: stloc.0
L_015c: ldarg.0
L_015d: ldfld Verse.Pawn pawn
L_0162: ldfld Verse.Gender gender
L_0167: ldc.i4.2
L_0168: bne.un Label #4
L_016d: ldloc.0
L_016e: ldfld Verse.GraphicData femaleGraphicData
L_0173: brtrue Label #5
L_0178: Label #4
L_0178: ldarg.0
L_0179: ldloc.0
L_017a: ldfld Verse.GraphicData bodyGraphicData
L_017f: callvirt Verse.Graphic get_Graphic()
L_0184: stfld Verse.Graphic nakedGraphic
L_0189: br Label #6
L_018e: Label #5
L_018e: ldarg.0
L_018f: ldloc.0
L_0190: ldfld Verse.GraphicData femaleGraphicData
L_0195: callvirt Verse.Graphic get_Graphic()
L_019a: stfld Verse.Graphic nakedGraphic
L_019f: Label #6
L_019f: ldarg.0
L_01a0: ldarg.0
L_01a1: ldfld Verse.Graphic nakedGraphic
L_01a6: ldsfld UnityEngine.Shader CutoutSkin
L_01ab: ldsfld UnityEngine.Color RottingColor
L_01b0: ldsfld UnityEngine.Color RottingColor
L_01b5: callvirt Verse.Graphic GetColoredVersion(UnityEngine.Shader, Color, Color)
L_01ba: stfld Verse.Graphic rottingGraphic
L_01bf: ldarg.0
L_01c0: ldfld Verse.Pawn pawn
L_01c5: callvirt Verse.RaceProperties get_RaceProps()
L_01ca: ldfld System.Boolean packAnimal
L_01cf: brfalse Label #7
L_01d4: ldarg.0
L_01d5: ldarg.0
L_01d6: ldfld Verse.Graphic nakedGraphic
L_01db: ldfld System.String path
L_01e0: ldstr "Pack"
L_01e5: call System.String Concat(System.String, System.String)
L_01ea: ldsfld UnityEngine.Shader Cutout
L_01ef: ldarg.0
L_01f0: ldfld Verse.Graphic nakedGraphic
L_01f5: ldfld UnityEngine.Vector2 drawSize
L_01fa: call Color get_white()
L_01ff: call Verse.Graphic Get[Graphic_Multi](System.String, UnityEngine.Shader,
Vector2, Color)
L_0204: stfld Verse.Graphic packGraphic
L_0209: Label #7
L_0209: ldloc.0
L_020a: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_020f: brfalse Label #8
L_0214: ldarg.0
L_0215: ldloc.0
L_0216: ldfld Verse.GraphicData dessicatedBodyGraphicData
L_021b: ldarg.0
L_021c: ldfld Verse.Pawn pawn
L_0221: callvirt Verse.Graphic GraphicColoredFor(Verse.Thing)
L_0226: stfld Verse.Graphic dessicatedGraphic
L_022b: Label #3
L_022b: Label #8
L_022b: br Label #0
L_0230: Label #0
L_0230: ldarga 0
L_0236: call Void ResolveAllGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_023b: ret
DONE

PATCHING Verse.PawnGraphicSet Void ResolveApparelGraphics()


L_0000: Local var #0 RimWorld.Apparel
L_0000: Local var #1 System.Collections.Generic.IEnumerator`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 RimWorld.ApparelGraphicRecord
L_0000: ldarga 0
L_0006: call Void ResolveApparelGraphics_Patch(Verse.PawnGraphicSet ByRef)
L_000b: ldarg.0
L_000c: call Void ClearCache()
L_0011: ldarg.0
L_0012: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0017: callvirt Void Clear()
L_001c: ldarg.0
L_001d: ldfld Verse.Pawn pawn
L_0022: ldfld RimWorld.Pawn_ApparelTracker apparel
L_0027: callvirt IEnumerable`1 get_WornApparelInDrawOrder()
L_002c: callvirt IEnumerator`1 GetEnumerator()
L_0031: stloc.1
L_0032: br Label #2
L_0037: Label #4
L_0037: ldloc.1
L_0038: callvirt RimWorld.Apparel get_Current()
L_003d: stloc.0
L_003e: ldloc.0
L_003f: ldarg.0
L_0040: ldfld Verse.Pawn pawn
L_0045: call BodyType ModifyChildBodyType(Verse.Pawn)
L_004a: ldloca.s 2 (RimWorld.ApparelGraphicRecord)
L_004c: call Boolean TryGetGraphicApparel(RimWorld.Apparel, BodyType,
ApparelGraphicRecord ByRef)
L_0051: brfalse Label #3
L_0056: ldarg.0
L_0057: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_005c: ldloc.2
L_005d: callvirt Void Add(ApparelGraphicRecord)
L_0062: Label #2
L_0062: Label #3
L_0062: ldloc.1
L_0063: callvirt Boolean MoveNext()
L_0068: brtrue Label #4
L_006d: leave Label #5
L_0072: ldloc.1
L_0073: brfalse Label #6
L_0078: ldloc.1
L_0079: callvirt Void Dispose()
L_007e: Label #6
L_007e: endfinally
L_007f: Label #5
L_007f: br Label #0
L_0084: Label #0
L_0084: ret
DONE

PATCHING Verse.PawnRenderer Void RenderPawnInternal(Vector3, Quaternion, Boolean,


Rot4, Rot4, RotDrawMode, Boolean, Boolean)
L_0000: Local var #0 UnityEngine.Mesh
L_0000: Local var #1 UnityEngine.Vector3
L_0000: Local var #2 System.Collections.Generic.List`1[[UnityEngine.Material,
UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #3 System.Int32
L_0000: Local var #4 UnityEngine.Material
L_0000: Local var #5 UnityEngine.Vector3
L_0000: Local var #6 UnityEngine.Vector3
L_0000: Local var #7 UnityEngine.Vector3
L_0000: Local var #8 UnityEngine.Vector3
L_0000: Local var #9 UnityEngine.Material
L_0000: Local var #10 UnityEngine.Mesh
L_0000: Local var #11 UnityEngine.Vector3
L_0000: Local var #12 System.Boolean
L_0000: Local var #13 UnityEngine.Mesh
L_0000: Local var #14
System.Collections.Generic.List`1[[RimWorld.ApparelGraphicRecord, Assembly-CSharp,
Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #15 System.Int32
L_0000: Local var #16 RimWorld.ApparelGraphicRecord
L_0000: Local var #17 RimWorld.ApparelGraphicRecord
L_0000: Local var #18 UnityEngine.Material
L_0000: Local var #19 RimWorld.ApparelGraphicRecord
L_0000: Local var #20 UnityEngine.Material
L_0000: Local var #21 RimWorld.ApparelGraphicRecord
L_0000: Local var #22 UnityEngine.Vector3
L_0000: Local var #23 UnityEngine.Mesh
L_0000: Local var #24 UnityEngine.Material
L_0000: Local var #25 System.Int32
L_0000: Local var #26 RimWorld.ApparelGraphicRecord
L_0000: Local var #27 UnityEngine.Material
L_0000: Local var #28 System.Collections.Generic.List`1[[RimWorld.Apparel,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #29 System.Int32
L_0000: Local var #30 UnityEngine.Vector3
L_0000: ldarg.0
L_0001: ldfld Verse.PawnGraphicSet graphics
L_0006: callvirt Boolean get_AllResolved()
L_000b: brtrue Label #2
L_0010: ldarg.0
L_0011: ldfld Verse.PawnGraphicSet graphics
L_0016: callvirt Void ResolveAllGraphics()
L_001b: Label #2
L_001b: ldnull
L_001c: stloc.0
L_001d: ldarg.0
L_001e: ldfld Verse.Pawn pawn
L_0023: ldfld Verse.Pawn_AgeTracker ageTracker
L_0028: call Int32 get_CurLifeStageIndex()
L_002d: ldc.i4.2
L_002e: blt Label #43
L_0033: ldarg.3
L_0034: brfalse Label #3
L_0039: Label #43
L_0039: ldarg.1
L_003a: ldarg.0
L_003b: ldfld Verse.Pawn pawn
L_0040: ldarg.s 7
L_0045: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_004a: stloc.1
L_004b: ldloca.s 1 (UnityEngine.Vector3)
L_004d: dup
L_004e: ldfld System.Single y
L_0053: ldc.r4 0.0078125
L_0058: add
L_0059: stfld System.Single y
L_005e: ldarg.s 6
L_0060: ldc.i4.2
L_0061: bne.un Label #4
L_0066: ldarg.0
L_0067: ldfld Verse.Pawn pawn
L_006c: callvirt Verse.RaceProperties get_RaceProps()
L_0071: callvirt Boolean get_Humanlike()
L_0076: brtrue Label #5
L_007b: ldarg.0
L_007c: ldfld Verse.PawnGraphicSet graphics
L_0081: ldfld Verse.Graphic dessicatedGraphic
L_0086: brfalse Label #6
L_008b: ldarg.s 7
L_008d: brtrue Label #7
L_0092: ldarg.0
L_0093: ldfld Verse.PawnGraphicSet graphics
L_0098: ldfld Verse.Graphic dessicatedGraphic
L_009d: ldloc.1
L_009e: ldarg.s 4
L_00a0: ldarg.0
L_00a1: ldfld Verse.Pawn pawn
L_00a6: ldc.r4 0
L_00ab: callvirt Void Draw(Vector3, Rot4, Verse.Thing, Single)
L_00b0: br Label #8
L_00b5: Label #4
L_00b5: Label #5
L_00b5: Label #6
L_00b5: Label #7
L_00b5: ldarg.0
L_00b6: ldfld Verse.Pawn pawn
L_00bb: callvirt Verse.RaceProperties get_RaceProps()
L_00c0: callvirt Boolean get_Humanlike()
L_00c5: brfalse Label #9
L_00ca: ldsfld Verse.GraphicMeshSet humanlikeBodySet
L_00cf: ldarg.s 4
L_00d1: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00d6: stloc.0
L_00d7: br Label #10
L_00dc: Label #9
L_00dc: ldarg.0
L_00dd: ldfld Verse.PawnGraphicSet graphics
L_00e2: ldfld Verse.Graphic nakedGraphic
L_00e7: ldarg.s 4
L_00e9: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_00ee: stloc.0
L_00ef: Label #10
L_00ef: ldarg.0
L_00f0: ldfld Verse.PawnGraphicSet graphics
L_00f5: ldarg.s 4
L_00f7: ldarg.s 6
L_00f9: callvirt System.Collections.Generic.List`1[UnityEngine.Material]
MatsBodyBaseAt(Rot4, RotDrawMode)
L_00fe: stloc.2
L_00ff: ldc.i4.0
L_0100: stloc.3
L_0101: br Label #11
L_0106: Label #12
L_0106: ldarg.0
L_0107: ldfld Verse.PawnGraphicSet graphics
L_010c: ldfld Verse.DamageFlasher flasher
L_0111: ldloc.2
L_0112: ldloc.3
L_0113: callvirt UnityEngine.Material get_Item(Int32)
L_0118: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_011d: stloc.s 4 (UnityEngine.Material)
L_011f: ldloc.s 4
L_0124: ldarg.0
L_0125: ldfld Verse.Pawn pawn
L_012a: ldarg.s 4
L_012f: call UnityEngine.Material ModifyClothingForChild(UnityEngine.Material,
Verse.Pawn, Rot4)
L_0134: stloc.s 4
L_0139: ldloc.0
L_013a: ldloc.1
L_013b: ldarg.2
L_013c: ldloc.s 4 (UnityEngine.Material)
L_013e: ldarg.s 7
L_0140: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_0145: ldloca.s 1 (UnityEngine.Vector3)
L_0147: dup
L_0148: ldfld System.Single y
L_014d: ldloc.s 18
L_0152: ldarg.0
L_0153: ldfld Verse.Pawn pawn
L_0158: call UnityEngine.Material ModifyHatForChild(UnityEngine.Material,
Verse.Pawn)
L_015d: stloc.s 18
L_0162: ldc.r4 0.00390625
L_0167: add
L_0168: stfld System.Single y
L_016d: ldloc.3
L_016e: ldc.i4.1
L_016f: add
L_0170: stloc.3
L_0171: Label #11
L_0171: ldloc.3
L_0172: ldloc.2
L_0173: callvirt Int32 get_Count()
L_0178: blt Label #12
L_017d: ldarg.s 6
L_017f: brtrue Label #13
L_0184: ldarg.1
L_0185: ldarg.0
L_0186: ldfld Verse.Pawn pawn
L_018b: ldarg.s 7
L_0190: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0195: stloc.s 5 (UnityEngine.Vector3)
L_0197: ldloca.s 5 (UnityEngine.Vector3)
L_0199: dup
L_019a: ldfld System.Single y
L_019f: ldc.r4 0.01953125
L_01a4: add
L_01a5: stfld System.Single y
L_01aa: ldarg.0
L_01ab: ldfld RimWorld.PawnWoundDrawer woundOverlays
L_01b0: ldloc.s 5 (UnityEngine.Vector3)
L_01b2: ldloc.0
L_01b3: ldarg.2
L_01b4: ldarg.s 7
L_01b6: callvirt Void RenderOverBody(Vector3, UnityEngine.Mesh, Quaternion,
Boolean)
L_01bb: Label #3
L_01bb: Label #8
L_01bb: Label #13
L_01bb: ldarg.1
L_01bc: ldarg.0
L_01bd: ldfld Verse.Pawn pawn
L_01c2: ldarg.s 7
L_01c7: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01cc: stloc.s 6 (UnityEngine.Vector3)
L_01ce: ldarg.1
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldarg.s 7
L_01da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_01df: stloc.s 7 (UnityEngine.Vector3)
L_01e1: ldarg.s 4
L_01e3: call Rot4 get_North()
L_01e8: call Boolean op_Inequality(Rot4, Rot4)
L_01ed: brfalse Label #14
L_01f2: ldloca.s 7 (UnityEngine.Vector3)
L_01f4: dup
L_01f5: ldfld System.Single y
L_01fa: ldc.r4 0.02734375
L_01ff: add
L_0200: stfld System.Single y
L_0205: ldloca.s 6 (UnityEngine.Vector3)
L_0207: dup
L_0208: ldfld System.Single y
L_020d: ldc.r4 0.0234375
L_0212: add
L_0213: stfld System.Single y
L_0218: br Label #15
L_021d: Label #14
L_021d: ldloca.s 7 (UnityEngine.Vector3)
L_021f: dup
L_0220: ldfld System.Single y
L_0225: ldc.r4 0.0234375
L_022a: add
L_022b: stfld System.Single y
L_0230: ldloca.s 6 (UnityEngine.Vector3)
L_0232: dup
L_0233: ldfld System.Single y
L_0238: ldc.r4 0.02734375
L_023d: add
L_023e: stfld System.Single y
L_0243: Label #15
L_0243: ldarg.0
L_0244: ldfld Verse.PawnGraphicSet graphics
L_0249: ldfld Verse.Graphic headGraphic
L_024e: brfalse Label #16
L_0253: ldarg.0
L_0254: ldfld Verse.Pawn pawn
L_0259: call Boolean RaceUsesChildren(Verse.Pawn)
L_025e: brfalse Label #44
L_0263: ldarg.0
L_0264: ldfld Verse.Pawn pawn
L_0269: call Boolean EnsurePawnIsChildOrOlder(Verse.Pawn)
L_026e: brfalse Label #16
L_0273: Label #44
L_0273: nop
L_0274: ldarg.2
L_0275: ldarg.0
L_0276: ldarg.s 5
L_0278: call Vector3 BaseHeadOffsetAt(Rot4)
L_027d: call Vector3 op_Multiply(Quaternion, Vector3)
L_0282: stloc.s 8 (UnityEngine.Vector3)
L_0284: ldarg.0
L_0285: ldfld Verse.PawnGraphicSet graphics
L_028a: ldarg.s 5
L_028c: ldarg.s 6
L_028e: ldarg.s 8
L_0290: callvirt UnityEngine.Material HeadMatAt(Rot4, RotDrawMode, Boolean)
L_0295: stloc.s 9 (UnityEngine.Material)
L_0297: ldloc.s 9 (UnityEngine.Material)
L_0299: ldnull
L_029a: call Boolean op_Inequality(UnityEngine.Object, UnityEngine.Object)
L_029f: brfalse Label #17
L_02a4: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_02a9: ldarg.s 5
L_02ab: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_02b0: stloc.s 10 (UnityEngine.Mesh)
L_02b2: ldloc.s 10 (UnityEngine.Mesh)
L_02b4: ldloc.s 7 (UnityEngine.Vector3)
L_02b6: ldloc.s 8 (UnityEngine.Vector3)
L_02b8: call Vector3 op_Addition(Vector3, Vector3)
L_02bd: ldarg.2
L_02be: ldloc.s 9 (UnityEngine.Material)
L_02c0: ldarg.s 7
L_02c2: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_02c7: Label #17
L_02c7: ldarg.1
L_02c8: ldloc.s 8 (UnityEngine.Vector3)
L_02ca: call Vector3 op_Addition(Vector3, Vector3)
L_02cf: ldarg.0
L_02d0: ldfld Verse.Pawn pawn
L_02d5: ldarg.s 7
L_02da: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_02df: stloc.s 11 (UnityEngine.Vector3)
L_02e1: ldloca.s 11 (UnityEngine.Vector3)
L_02e3: dup
L_02e4: ldfld System.Single y
L_02e9: ldc.r4 0.03125
L_02ee: add
L_02ef: stfld System.Single y
L_02f4: ldc.i4.0
L_02f5: stloc.s 12 (System.Boolean)
L_02f7: ldarg.s 7
L_02f9: brfalse Label #18
L_02fe: call Boolean get_HatsOnlyOnMap()
L_0303: brtrue Label #19
L_0308: Label #18
L_0308: ldarg.0
L_0309: ldfld Verse.PawnGraphicSet graphics
L_030e: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_0313: ldarg.s 5
L_0315: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_031a: stloc.s 13 (UnityEngine.Mesh)
L_031c: ldarg.0
L_031d: ldfld Verse.PawnGraphicSet graphics
L_0322: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_0327: stloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0329: ldc.i4.0
L_032a: stloc.s 15 (System.Int32)
L_032c: br Label #20
L_0331: Label #26
L_0331: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0333: ldloc.s 15 (System.Int32)
L_0335: callvirt ApparelGraphicRecord get_Item(Int32)
L_033a: stloc.s 16 (RimWorld.ApparelGraphicRecord)
L_033c: ldloca.s 16 (RimWorld.ApparelGraphicRecord)
L_033e: ldfld RimWorld.Apparel sourceApparel
L_0343: ldfld Verse.ThingDef def
L_0348: ldfld RimWorld.ApparelProperties apparel
L_034d: callvirt ApparelLayer get_LastLayer()
L_0352: ldc.i4.4
L_0353: bne.un Label #21
L_0358: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_035a: ldloc.s 15 (System.Int32)
L_035c: callvirt ApparelGraphicRecord get_Item(Int32)
L_0361: stloc.s 17 (RimWorld.ApparelGraphicRecord)
L_0363: ldloca.s 17 (RimWorld.ApparelGraphicRecord)
L_0365: ldfld RimWorld.Apparel sourceApparel
L_036a: ldfld Verse.ThingDef def
L_036f: ldfld RimWorld.ApparelProperties apparel
L_0374: ldfld System.Boolean hatRenderedFrontOfFace
L_0379: brtrue Label #22
L_037e: ldc.i4.1
L_037f: stloc.s 12 (System.Boolean)
L_0381: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0383: ldloc.s 15 (System.Int32)
L_0385: callvirt ApparelGraphicRecord get_Item(Int32)
L_038a: stloc.s 19 (RimWorld.ApparelGraphicRecord)
L_038c: ldloca.s 19 (RimWorld.ApparelGraphicRecord)
L_038e: ldfld Verse.Graphic graphic
L_0393: ldarg.s 4
L_0395: ldnull
L_0396: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_039b: stloc.s 18 (UnityEngine.Material)
L_039d: ldarg.0
L_039e: ldfld Verse.PawnGraphicSet graphics
L_03a3: ldfld Verse.DamageFlasher flasher
L_03a8: ldloc.s 18 (UnityEngine.Material)
L_03aa: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03af: stloc.s 18 (UnityEngine.Material)
L_03b1: ldloc.s 13 (UnityEngine.Mesh)
L_03b3: ldloc.s 11 (UnityEngine.Vector3)
L_03b5: ldarg.2
L_03b6: ldloc.s 18 (UnityEngine.Material)
L_03b8: ldarg.s 7
L_03ba: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_03bf: br Label #23
L_03c4: Label #22
L_03c4: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_03c6: ldloc.s 15 (System.Int32)
L_03c8: callvirt ApparelGraphicRecord get_Item(Int32)
L_03cd: stloc.s 21 (RimWorld.ApparelGraphicRecord)
L_03cf: ldloca.s 21 (RimWorld.ApparelGraphicRecord)
L_03d1: ldfld Verse.Graphic graphic
L_03d6: ldarg.s 4
L_03d8: ldnull
L_03d9: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_03de: stloc.s 20 (UnityEngine.Material)
L_03e0: ldarg.0
L_03e1: ldfld Verse.PawnGraphicSet graphics
L_03e6: ldfld Verse.DamageFlasher flasher
L_03eb: ldloc.s 20 (UnityEngine.Material)
L_03ed: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_03f2: stloc.s 20 (UnityEngine.Material)
L_03f4: ldarg.1
L_03f5: ldloc.s 8 (UnityEngine.Vector3)
L_03f7: call Vector3 op_Addition(Vector3, Vector3)
L_03fc: stloc.s 22 (UnityEngine.Vector3)
L_03fe: ldloca.s 22 (UnityEngine.Vector3)
L_0400: dup
L_0401: ldfld System.Single y
L_0406: ldarg.s 4
L_0408: call Rot4 get_North()
L_040d: call Boolean op_Equality(Rot4, Rot4)
L_0412: brfalse Label #24
L_0417: ldc.r4 0.00390625
L_041c: br Label #25
L_0421: Label #24
L_0421: ldc.r4 0.03515625
L_0426: Label #25
L_0426: add
L_0427: stfld System.Single y
L_042c: ldloc.s 13 (UnityEngine.Mesh)
L_042e: ldloc.s 22 (UnityEngine.Vector3)
L_0430: ldarg.2
L_0431: ldloc.s 20 (UnityEngine.Material)
L_0433: ldarg.s 7
L_0435: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_043a: Label #21
L_043a: Label #23
L_043a: ldloc.s 15 (System.Int32)
L_043c: ldc.i4.1
L_043d: add
L_043e: stloc.s 15 (System.Int32)
L_0440: Label #20
L_0440: ldloc.s 15 (System.Int32)
L_0442: ldloc.s 14
(System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord])
L_0444: callvirt Int32 get_Count()
L_0449: blt Label #26
L_044e: Label #19
L_044e: ldloc.s 12 (System.Boolean)
L_0450: brtrue Label #27
L_0455: ldarg.s 6
L_0457: ldc.i4.2
L_0458: beq Label #28
L_045d: ldarg.s 8
L_045f: brtrue Label #29
L_0464: ldarg.0
L_0465: ldfld Verse.PawnGraphicSet graphics
L_046a: callvirt Verse.GraphicMeshSet get_HairMeshSet()
L_046f: ldarg.s 5
L_0471: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0476: stloc.s 23 (UnityEngine.Mesh)
L_0478: ldarg.0
L_0479: ldfld Verse.PawnGraphicSet graphics
L_047e: ldarg.s 5
L_0480: callvirt UnityEngine.Material HairMatAt(Rot4)
L_0485: stloc.s 24 (UnityEngine.Material)
L_0487: ldloc.s 24
L_048c: ldarg.0
L_048d: ldfld Verse.Pawn pawn
L_0492: call UnityEngine.Material ModifyHairForChild(UnityEngine.Material,
Verse.Pawn)
L_0497: stloc.s 24
L_049c: ldloc.s 23 (UnityEngine.Mesh)
L_049e: ldloc.s 11 (UnityEngine.Vector3)
L_04a0: ldarg.2
L_04a1: ldloc.s 24 (UnityEngine.Material)
L_04a3: ldarg.s 7
L_04a5: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_04aa: Label #16
L_04aa: Label #27
L_04aa: Label #28
L_04aa: Label #29
L_04aa: ldarg.3
L_04ab: brfalse Label #30
L_04b0: ldc.i4.0
L_04b1: stloc.s 25 (System.Int32)
L_04b3: br Label #31
L_04b8: Label #33
L_04b8: ldarg.0
L_04b9: ldfld Verse.PawnGraphicSet graphics
L_04be: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_04c3: ldloc.s 25 (System.Int32)
L_04c5: callvirt ApparelGraphicRecord get_Item(Int32)
L_04ca: stloc.s 26 (RimWorld.ApparelGraphicRecord)
L_04cc: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ce: ldfld RimWorld.Apparel sourceApparel
L_04d3: ldfld Verse.ThingDef def
L_04d8: ldfld RimWorld.ApparelProperties apparel
L_04dd: callvirt ApparelLayer get_LastLayer()
L_04e2: ldc.i4.2
L_04e3: bne.un Label #32
L_04e8: ldloca.s 26 (RimWorld.ApparelGraphicRecord)
L_04ea: ldfld Verse.Graphic graphic
L_04ef: ldarg.s 4
L_04f1: ldnull
L_04f2: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_04f7: stloc.s 27 (UnityEngine.Material)
L_04f9: ldarg.0
L_04fa: ldfld Verse.PawnGraphicSet graphics
L_04ff: ldfld Verse.DamageFlasher flasher
L_0504: ldloc.s 27 (UnityEngine.Material)
L_0506: callvirt UnityEngine.Material GetDamagedMat(UnityEngine.Material)
L_050b: stloc.s 27 (UnityEngine.Material)
L_050d: ldloc.0
L_050e: ldloc.s 6 (UnityEngine.Vector3)
L_0510: ldarg.2
L_0511: ldloc.s 27 (UnityEngine.Material)
L_0513: ldarg.s 7
L_0515: call Void DrawMeshNowOrLater(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Boolean)
L_051a: Label #32
L_051a: ldloc.s 25 (System.Int32)
L_051c: ldc.i4.1
L_051d: add
L_051e: stloc.s 25 (System.Int32)
L_0520: Label #31
L_0520: ldloc.s 25 (System.Int32)
L_0522: ldarg.0
L_0523: ldfld Verse.PawnGraphicSet graphics
L_0528: ldfld System.Collections.Generic.List`1[RimWorld.ApparelGraphicRecord]
apparelGraphics
L_052d: callvirt Int32 get_Count()
L_0532: blt Label #33
L_0537: Label #30
L_0537: ldarg.s 7
L_0539: brtrue Label #34
L_053e: ldarg.0
L_053f: ldfld Verse.Pawn pawn
L_0544: callvirt Verse.RaceProperties get_RaceProps()
L_0549: callvirt Boolean get_Animal()
L_054e: brfalse Label #35
L_0553: ldarg.0
L_0554: ldfld Verse.Pawn pawn
L_0559: ldfld Verse.Pawn_InventoryTracker inventory
L_055e: brfalse Label #36
L_0563: ldarg.0
L_0564: ldfld Verse.Pawn pawn
L_0569: ldfld Verse.Pawn_InventoryTracker inventory
L_056e: ldfld Verse.ThingOwner`1[Verse.Thing] innerContainer
L_0573: callvirt Int32 get_Count()
L_0578: ldc.i4.0
L_0579: ble Label #37
L_057e: ldarg.0
L_057f: ldfld Verse.PawnGraphicSet graphics
L_0584: ldfld Verse.Graphic packGraphic
L_0589: brfalse Label #38
L_058e: ldloc.0
L_058f: ldloc.s 6 (UnityEngine.Vector3)
L_0591: ldarg.2
L_0592: ldarg.0
L_0593: ldfld Verse.PawnGraphicSet graphics
L_0598: ldfld Verse.Graphic packGraphic
L_059d: ldarg.s 4
L_059f: ldnull
L_05a0: callvirt UnityEngine.Material MatAt(Rot4, Verse.Thing)
L_05a5: ldc.i4.0
L_05a6: call Void DrawMesh(UnityEngine.Mesh, Vector3, Quaternion,
UnityEngine.Material, Int32)
L_05ab: Label #34
L_05ab: Label #35
L_05ab: Label #36
L_05ab: Label #37
L_05ab: Label #38
L_05ab: ldarg.s 7
L_05ad: brtrue Label #39
L_05b2: ldarg.0
L_05b3: ldarg.1
L_05b4: call Void DrawEquipment(Vector3)
L_05b9: ldarg.0
L_05ba: ldfld Verse.Pawn pawn
L_05bf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05c4: brfalse Label #40
L_05c9: ldarg.0
L_05ca: ldfld Verse.Pawn pawn
L_05cf: ldfld RimWorld.Pawn_ApparelTracker apparel
L_05d4: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_05d9: stloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05db: ldc.i4.0
L_05dc: stloc.s 29 (System.Int32)
L_05de: br Label #41
L_05e3: Label #42
L_05e3: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05e5: ldloc.s 29 (System.Int32)
L_05e7: callvirt RimWorld.Apparel get_Item(Int32)
L_05ec: callvirt Void DrawWornExtras()
L_05f1: ldloc.s 29 (System.Int32)
L_05f3: ldc.i4.1
L_05f4: add
L_05f5: stloc.s 29 (System.Int32)
L_05f7: Label #41
L_05f7: ldloc.s 29 (System.Int32)
L_05f9: ldloc.s 28 (System.Collections.Generic.List`1[RimWorld.Apparel])
L_05fb: callvirt Int32 get_Count()
L_0600: blt Label #42
L_0605: Label #40
L_0605: ldarg.1
L_0606: ldarg.0
L_0607: ldfld Verse.Pawn pawn
L_060c: ldarg.s 7
L_0611: call Vector3 ModifyChildYPosOffset(Vector3, Verse.Pawn, Boolean)
L_0616: stloc.s 30 (UnityEngine.Vector3)
L_0618: ldloca.s 30 (UnityEngine.Vector3)
L_061a: dup
L_061b: ldfld System.Single y
L_0620: ldc.r4 0.04296875
L_0625: add
L_0626: stfld System.Single y
L_062b: ldarg.0
L_062c: ldfld Verse.PawnHeadOverlays statusOverlays
L_0631: ldloc.s 30 (UnityEngine.Vector3)
L_0633: ldarg.2
L_0634: ldsfld Verse.GraphicMeshSet humanlikeHeadSet
L_0639: ldarg.s 5
L_063b: callvirt UnityEngine.Mesh MeshAt(Rot4)
L_0640: callvirt Void RenderStatusOverlays(Vector3, Quaternion, UnityEngine.Mesh)
L_0645: Label #39
L_0645: br Label #0
L_064a: Label #0
L_064a: ret
DONE

PATCHING Verse.PawnGenerator Verse.Pawn GeneratePawn(PawnGenerationRequest)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.Pawn
L_0000: ldnull
L_0001: stloc 1 (Verse.Pawn)
L_0002: ldarg.0
L_0003: call Verse.Pawn GeneratePawnInternal(PawnGenerationRequest)
L_0008: stloc.0
L_0009: leave Label #2
L_000e: endfinally
L_000f: Label #2
L_000f: ldloc.0
L_0010: br Label #0
L_0015: Label #0
L_0015: stloc 1 (Verse.Pawn)
L_0016: ldarga 0
L_001c: ldloca 1 (Verse.Pawn)
L_001e: call Void _GeneratePawn(PawnGenerationRequest ByRef, Verse.Pawn ByRef)
L_0023: ldloc 1 (Verse.Pawn)
L_0024: ret
DONE

PATCHING RimWorld.JobGiver_OptimizeApparel Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 RimWorld.Outfit
L_0000: Local var #1 System.Collections.Generic.List`1[[RimWorld.Apparel, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #2 System.Int32
L_0000: Local var #3 Verse.AI.Job
L_0000: Local var #4 Verse.Thing
L_0000: Local var #5 System.Single
L_0000: Local var #6 System.Collections.Generic.List`1[[Verse.Thing, Assembly-
CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #7 System.Int32
L_0000: Local var #8 RimWorld.Apparel
L_0000: Local var #9 RimWorld.SlotGroup
L_0000: Local var #10 System.Single
L_0000: Local var #11 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 11 (Verse.AI.Job)
L_0003: ldarg.1
L_0004: ldfld RimWorld.Pawn_OutfitTracker outfits
L_0009: brtrue Label #2
L_000e: ldarg.1
L_000f: ldstr " tried to run JobGiver_OptimizeApparel without an OutfitTracker"
L_0014: call System.String Concat(System.Object, System.Object)
L_0019: ldc.i4 5643897
L_001e: call Void ErrorOnce(System.String, Int32)
L_0023: ldnull
L_0024: br Label #0
L_0029: Label #2
L_0029: ldarg.1
L_002a: callvirt RimWorld.Faction get_Faction()
L_002f: call RimWorld.Faction get_OfPlayer()
L_0034: beq Label #3
L_0039: ldstr "Non-colonist "
L_003e: ldarg.1
L_003f: ldstr " tried to optimize apparel."
L_0044: call System.String Concat(System.Object, System.Object, System.Object)
L_0049: ldc.i4 764323
L_004e: call Void ErrorOnce(System.String, Int32)
L_0053: ldnull
L_0054: br Label #0
L_0059: Label #3
L_0059: ldsfld System.Boolean debugApparelOptimize
L_005e: brtrue Label #4
L_0063: call Verse.TickManager get_TickManager()
L_0068: callvirt Int32 get_TicksGame()
L_006d: ldarg.1
L_006e: ldfld Verse.AI.Pawn_MindState mindState
L_0073: ldfld System.Int32 nextApparelOptimizeTick
L_0078: bge Label #5
L_007d: ldnull
L_007e: br Label #0
L_0083: Label #5
L_0083: br Label #6
L_0088: Label #4
L_0088: newobj Void .ctor()
L_008d: stsfld System.Text.StringBuilder debugSb
L_0092: ldsfld System.Text.StringBuilder debugSb
L_0097: ldc.i4.4
L_0098: newarr System.Object
L_009d: dup
L_009e: ldc.i4.0
L_009f: ldstr "Scanning for "
L_00a4: stelem.ref
L_00a5: dup
L_00a6: ldc.i4.1
L_00a7: ldarg.1
L_00a8: stelem.ref
L_00a9: dup
L_00aa: ldc.i4.2
L_00ab: ldstr " at "
L_00b0: stelem.ref
L_00b1: dup
L_00b2: ldc.i4.3
L_00b3: ldarg.1
L_00b4: callvirt IntVec3 get_Position()
L_00b9: box Verse.IntVec3
L_00be: stelem.ref
L_00bf: call System.String Concat(System.Object[])
L_00c4: callvirt System.Text.StringBuilder AppendLine(System.String)
L_00c9: pop
L_00ca: Label #6
L_00ca: ldarg.1
L_00cb: ldfld RimWorld.Pawn_OutfitTracker outfits
L_00d0: callvirt RimWorld.Outfit get_CurrentOutfit()
L_00d5: stloc.0
L_00d6: ldarg.1
L_00d7: ldfld RimWorld.Pawn_ApparelTracker apparel
L_00dc: callvirt System.Collections.Generic.List`1[RimWorld.Apparel]
get_WornApparel()
L_00e1: stloc.1
L_00e2: ldloc.1
L_00e3: callvirt Int32 get_Count()
L_00e8: ldc.i4.1
L_00e9: sub
L_00ea: stloc.2
L_00eb: br Label #7
L_00f0: Label #10
L_00f0: ldloc.0
L_00f1: ldfld Verse.ThingFilter filter
L_00f6: ldloc.1
L_00f7: ldloc.2
L_00f8: callvirt RimWorld.Apparel get_Item(Int32)
L_00fd: callvirt Boolean Allows(Verse.Thing)
L_0102: brtrue Label #8
L_0107: ldarg.1
L_0108: ldfld RimWorld.Pawn_OutfitTracker outfits
L_010d: ldfld RimWorld.OutfitForcedHandler forcedHandler
L_0112: ldloc.1
L_0113: ldloc.2
L_0114: callvirt RimWorld.Apparel get_Item(Int32)
L_0119: callvirt Boolean AllowedToAutomaticallyDrop(RimWorld.Apparel)
L_011e: brfalse Label #9
L_0123: ldsfld Verse.JobDef RemoveApparel
L_0128: ldloc.1
L_0129: ldloc.2
L_012a: callvirt RimWorld.Apparel get_Item(Int32)
L_012f: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0134: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0139: stloc.3
L_013a: ldloc.3
L_013b: ldc.i4.1
L_013c: stfld System.Boolean haulDroppedApparel
L_0141: ldloc.3
L_0142: br Label #0
L_0147: Label #8
L_0147: Label #9
L_0147: ldloc.2
L_0148: ldc.i4.1
L_0149: sub
L_014a: stloc.2
L_014b: Label #7
L_014b: ldloc.2
L_014c: ldc.i4.0
L_014d: bge Label #10
L_0152: ldnull
L_0153: stloc.s 4 (Verse.Thing)
L_0155: ldc.r4 0
L_015a: stloc.s 5 (System.Single)
L_015c: ldarg.1
L_015d: callvirt Verse.Map get_Map()
L_0162: ldfld Verse.ListerThings listerThings
L_0167: ldc.i4.s 26
L_0169: callvirt System.Collections.Generic.List`1[Verse.Thing]
ThingsInGroup(ThingRequestGroup)
L_016e: stloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0170: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_0172: callvirt Int32 get_Count()
L_0177: brtrue Label #11
L_017c: ldarg.0
L_017d: ldarg.1
L_017e: call Void SetNextOptimizeTick(Verse.Pawn)
L_0183: ldnull
L_0184: br Label #0
L_0189: Label #11
L_0189: ldarg.1
L_018a: ldarg.1
L_018b: callvirt Verse.Map get_Map()
L_0190: callvirt Int32 get_Tile()
L_0195: ldarg.1
L_0196: call Twelfth Twelfth(Verse.Thing)
L_019b: call NeededWarmth CalculateNeededWarmth(Verse.Pawn, Int32, Twelfth)
L_01a0: stsfld RimWorld.NeededWarmth neededWarmth
L_01a5: ldc.i4.0
L_01a6: stloc.s 7 (System.Int32)
L_01a8: br Label #12
L_01ad: Label #27
L_01ad: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_01af: ldloc.s 7 (System.Int32)
L_01b1: callvirt Verse.Thing get_Item(Int32)
L_01b6: castclass RimWorld.Apparel
L_01bb: stloc.s 8 (RimWorld.Apparel)
L_01bd: ldloc.0
L_01be: ldfld Verse.ThingFilter filter
L_01c3: ldloc.s 8 (RimWorld.Apparel)
L_01c5: callvirt Boolean Allows(Verse.Thing)
L_01ca: brtrue Label #13
L_01cf: br Label #14
L_01d4: Label #13
L_01d4: ldloc.s 8 (RimWorld.Apparel)
L_01d6: callvirt Verse.Map get_Map()
L_01db: ldfld RimWorld.SlotGroupManager slotGroupManager
L_01e0: ldloc.s 8 (RimWorld.Apparel)
L_01e2: callvirt IntVec3 get_Position()
L_01e7: callvirt RimWorld.SlotGroup SlotGroupAt(IntVec3)
L_01ec: stloc.s 9 (RimWorld.SlotGroup)
L_01ee: ldloc.s 9 (RimWorld.SlotGroup)
L_01f0: brtrue Label #15
L_01f5: br Label #16
L_01fa: Label #15
L_01fa: ldloc.s 8 (RimWorld.Apparel)
L_01fc: ldarg.1
L_01fd: call Boolean IsForbidden(Verse.Thing, Verse.Pawn)
L_0202: brfalse Label #17
L_0207: br Label #18
L_020c: Label #17
L_020c: ldarg.1
L_020d: ldloc.s 8 (RimWorld.Apparel)
L_020f: call Single ApparelScoreGain(Verse.Pawn, RimWorld.Apparel)
L_0214: stloc.s 10 (System.Single)
L_0216: ldsfld System.Boolean debugApparelOptimize
L_021b: brfalse Label #19
L_0220: ldsfld System.Text.StringBuilder debugSb
L_0225: ldloc.s 8 (RimWorld.Apparel)
L_0227: callvirt System.String get_LabelCap()
L_022c: ldstr ": "
L_0231: ldloca.s 10 (System.Single)
L_0233: ldstr "F2"
L_0238: call System.String ToString(System.String)
L_023d: call System.String Concat(System.String, System.String, System.String)
L_0242: callvirt System.Text.StringBuilder AppendLine(System.String)
L_0247: pop
L_0248: Label #19
L_0248: ldloc.s 10 (System.Single)
L_024a: ldc.r4 0.05
L_024f: blt Label #20
L_0254: ldloc.s 10 (System.Single)
L_0256: ldloc.s 5 (System.Single)
L_0258: bge.un Label #21
L_025d: Label #20
L_025d: br Label #22
L_0262: Label #21
L_0262: ldarg.1
L_0263: ldloc.s 8 (RimWorld.Apparel)
L_0265: ldfld Verse.ThingDef def
L_026a: call Boolean HasPartsToWear(Verse.Pawn, Verse.ThingDef)
L_026f: brtrue Label #23
L_0274: br Label #24
L_0279: Label #23
L_0279: ldarg.1
L_027a: ldloc.s 8 (RimWorld.Apparel)
L_027c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_0281: ldc.i4.1
L_0282: ldarg.1
L_0283: call Danger NormalMaxDanger(Verse.Pawn)
L_0288: ldc.i4.1
L_0289: ldc.i4.m1
L_028a: ldnull
L_028b: ldc.i4.0
L_028c: call Boolean CanReserveAndReach(Verse.Pawn, LocalTargetInfo, PathEndMode,
Danger, Int32, Int32, Verse.ReservationLayerDef, Boolean)
L_0291: brtrue Label #25
L_0296: br Label #26
L_029b: Label #25
L_029b: ldloc.s 8 (RimWorld.Apparel)
L_029d: stloc.s 4 (Verse.Thing)
L_029f: ldloc.s 10 (System.Single)
L_02a1: stloc.s 5 (System.Single)
L_02a3: Label #14
L_02a3: Label #16
L_02a3: Label #18
L_02a3: Label #22
L_02a3: Label #24
L_02a3: Label #26
L_02a3: ldloc.s 7 (System.Int32)
L_02a5: ldc.i4.1
L_02a6: add
L_02a7: stloc.s 7 (System.Int32)
L_02a9: Label #12
L_02a9: ldloc.s 7 (System.Int32)
L_02ab: ldloc.s 6 (System.Collections.Generic.List`1[Verse.Thing])
L_02ad: callvirt Int32 get_Count()
L_02b2: blt Label #27
L_02b7: ldsfld System.Boolean debugApparelOptimize
L_02bc: brfalse Label #28
L_02c1: ldsfld System.Text.StringBuilder debugSb
L_02c6: ldstr "BEST: "
L_02cb: ldloc.s 4 (Verse.Thing)
L_02cd: call System.String Concat(System.Object, System.Object)
L_02d2: callvirt System.Text.StringBuilder AppendLine(System.String)
L_02d7: pop
L_02d8: ldsfld System.Text.StringBuilder debugSb
L_02dd: callvirt System.String ToString()
L_02e2: call Void Message(System.String)
L_02e7: ldnull
L_02e8: stsfld System.Text.StringBuilder debugSb
L_02ed: Label #28
L_02ed: ldloc.s 4 (Verse.Thing)
L_02ef: brtrue Label #29
L_02f4: ldarg.0
L_02f5: ldarg.1
L_02f6: call Void SetNextOptimizeTick(Verse.Pawn)
L_02fb: ldnull
L_02fc: br Label #0
L_0301: Label #29
L_0301: ldsfld Verse.JobDef Wear
L_0306: ldloc.s 4 (Verse.Thing)
L_0308: call LocalTargetInfo op_Implicit(Verse.Thing)
L_030d: newobj Void .ctor(JobDef, LocalTargetInfo)
L_0312: br Label #0
L_0317: Label #0
L_0317: stloc 11 (Verse.AI.Job)
L_0319: ldloca 11 (Verse.AI.Job)
L_031b: ldarga 1
L_0321: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_0326: ldloc 11 (Verse.AI.Job)
L_0328: ret
DONE

PATCHING Verse.Pawn_HealthTracker Boolean ShouldBeDowned()


L_0000: Local var #0 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 0 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean get_InPainShock()
L_000c: brtrue Label #2
L_0011: ldarg.0
L_0012: ldfld Verse.PawnCapacitiesHandler capacities
L_0017: callvirt Boolean get_CanBeAwake()
L_001c: brfalse Label #3
L_0021: ldarg.0
L_0022: ldfld Verse.PawnCapacitiesHandler capacities
L_0027: ldsfld Verse.PawnCapacityDef Moving
L_002c: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0031: ldc.i4.0
L_0032: ceq
L_0034: br Label #4
L_0039: Label #2
L_0039: Label #3
L_0039: ldc.i4.1
L_003a: Label #4
L_003a: br Label #0
L_003f: Label #0
L_003f: stloc 0 (System.Boolean)
L_0040: ldarga 0
L_0046: ldloca 0 (System.Boolean)
L_0048: call Void SBD(Verse.Pawn_HealthTracker ByRef, Boolean ByRef)
L_004d: ldloc 0 (System.Boolean)
L_004e: ret
DONE

PATCHING Verse.Pawn_HealthTracker Void CheckForStateChange(Nullable`1,


Verse.Hediff)
L_0000: Local var #0 System.Single
L_0000: Local var #1 Verse.DamageInfo
L_0000: Local var #2 Verse.ThingWithComps
L_0000: ldarg.0
L_0001: call Boolean get_Dead()
L_0006: brtrue Label #2
L_000b: ldarg.0
L_000c: call Boolean ShouldBeDead()
L_0011: brfalse Label #3
L_0016: ldarg.0
L_0017: ldfld Verse.Pawn pawn
L_001c: callvirt Boolean get_Destroyed()
L_0021: brtrue Label #4
L_0026: ldarg.0
L_0027: ldfld Verse.Pawn pawn
L_002c: ldarg.1
L_002d: ldarg.2
L_002e: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_0033: Label #4
L_0033: br Label #0
L_0038: Label #3
L_0038: ldarg.0
L_0039: call Boolean get_Downed()
L_003e: brtrue Label #5
L_0043: ldarg.0
L_0044: call Boolean ShouldBeDowned()
L_0049: brfalse Label #6
L_004e: ldarg.0
L_004f: ldfld Verse.Pawn pawn
L_0054: callvirt Verse.RaceProperties get_RaceProps()
L_0059: callvirt Boolean get_Animal()
L_005e: brfalse Label #7
L_0063: ldc.r4 0.47
L_0068: br Label #8
L_006d: Label #7
L_006d: ldc.r4 0.67
L_0072: Label #8
L_0072: stloc.0
L_0073: ldarg.0
L_0074: ldfld System.Boolean forceIncap
L_0079: brtrue Label #9
L_007e: ldarga.s 1
L_0080: call Boolean get_HasValue()
L_0085: brfalse Label #10
L_008a: ldarga.s 1
L_008c: call DamageInfo get_Value()
L_0091: stloc.1
L_0092: ldloca.s 1 (Verse.DamageInfo)
L_0094: call Verse.DamageDef get_Def()
L_0099: ldfld System.Boolean externalViolence
L_009e: brfalse Label #11
L_00a3: ldarg.0
L_00a4: ldfld Verse.Pawn pawn
L_00a9: callvirt RimWorld.Faction get_Faction()
L_00ae: brfalse Label #12
L_00b3: ldarg.0
L_00b4: ldfld Verse.Pawn pawn
L_00b9: callvirt RimWorld.Faction get_Faction()
L_00be: callvirt Boolean get_IsPlayer()
L_00c3: brtrue Label #13
L_00c8: br Label #13
L_00cd: Label #12
L_00cd: ldarg.0
L_00ce: ldfld Verse.Pawn pawn
L_00d3: callvirt Boolean get_IsPrisonerOfColony()
L_00d8: brtrue Label #14
L_00dd: ldarg.0
L_00de: ldfld Verse.Pawn pawn
L_00e3: callvirt Verse.RaceProperties get_RaceProps()
L_00e8: callvirt Boolean get_IsFlesh()
L_00ed: brfalse Label #15
L_00f2: call Single get_Value()
L_00f7: ldloc.0
L_00f8: bge.un Label #16
L_00fd: ldarg.0
L_00fe: ldfld Verse.Pawn pawn
L_0103: ldarg.1
L_0104: ldnull
L_0105: callvirt Void Kill(Nullable`1, Verse.Hediff)
L_010a: br Label #0
L_010f: Label #9
L_010f: Label #10
L_010f: Label #11
L_010f: Label #13
L_010f: Label #14
L_010f: Label #15
L_010f: Label #16
L_010f: ldarg.0
L_0110: ldc.i4.0
L_0111: stfld System.Boolean forceIncap
L_0116: ldarg.0
L_0117: ldarg.1
L_0118: ldarg.2
L_0119: call Void MakeDowned(Nullable`1, Verse.Hediff)
L_011e: br Label #0
L_0123: Label #6
L_0123: ldarg.0
L_0124: ldfld Verse.PawnCapacitiesHandler capacities
L_0129: ldsfld Verse.PawnCapacityDef Manipulation
L_012e: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_0133: brtrue Label #17
L_0138: ldarg.0
L_0139: ldfld Verse.Pawn pawn
L_013e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0143: brfalse Label #18
L_0148: ldarg.0
L_0149: ldfld Verse.Pawn pawn
L_014e: ldfld Verse.Pawn_CarryTracker carryTracker
L_0153: callvirt Verse.Thing get_CarriedThing()
L_0158: brfalse Label #19
L_015d: ldarg.0
L_015e: ldfld Verse.Pawn pawn
L_0163: ldfld Verse.AI.Pawn_JobTracker jobs
L_0168: brfalse Label #20
L_016d: ldarg.0
L_016e: ldfld Verse.Pawn pawn
L_0173: callvirt Verse.AI.Job get_CurJob()
L_0178: brfalse Label #21
L_017d: ldarg.0
L_017e: ldfld Verse.Pawn pawn
L_0183: ldfld Verse.AI.Pawn_JobTracker jobs
L_0188: ldc.i4.5
L_0189: ldc.i4.1
L_018a: callvirt Void EndCurrentJob(JobCondition, Boolean)
L_018f: Label #18
L_018f: Label #19
L_018f: Label #20
L_018f: Label #21
L_018f: ldarg.0
L_0190: ldfld Verse.Pawn pawn
L_0195: ldfld Verse.Pawn_EquipmentTracker equipment
L_019a: brfalse Label #22
L_019f: ldarg.0
L_01a0: ldfld Verse.Pawn pawn
L_01a5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01aa: callvirt Verse.ThingWithComps get_Primary()
L_01af: brfalse Label #23
L_01b4: ldarg.0
L_01b5: ldfld Verse.Pawn pawn
L_01ba: callvirt Boolean get_InContainerEnclosed()
L_01bf: brfalse Label #24
L_01c4: ldarg.0
L_01c5: ldfld Verse.Pawn pawn
L_01ca: ldfld Verse.Pawn_EquipmentTracker equipment
L_01cf: ldarg.0
L_01d0: ldfld Verse.Pawn pawn
L_01d5: ldfld Verse.Pawn_EquipmentTracker equipment
L_01da: callvirt Verse.ThingWithComps get_Primary()
L_01df: ldarg.0
L_01e0: ldfld Verse.Pawn pawn
L_01e5: ldfld Verse.ThingOwner holdingOwner
L_01ea: callvirt Boolean TryTransferEquipmentToContainer(Verse.ThingWithComps,
Verse.ThingOwner)
L_01ef: pop
L_01f0: br Label #25
L_01f5: Label #24
L_01f5: ldarg.0
L_01f6: ldfld Verse.Pawn pawn
L_01fb: callvirt Boolean get_SpawnedOrAnyParentSpawned()
L_0200: brfalse Label #26
L_0205: ldarg.0
L_0206: ldfld Verse.Pawn pawn
L_020b: ldfld Verse.Pawn_EquipmentTracker equipment
L_0210: ldarg.0
L_0211: ldfld Verse.Pawn pawn
L_0216: ldfld Verse.Pawn_EquipmentTracker equipment
L_021b: callvirt Verse.ThingWithComps get_Primary()
L_0220: ldloca.s 2 (Verse.ThingWithComps)
L_0222: ldarg.0
L_0223: ldfld Verse.Pawn pawn
L_0228: callvirt IntVec3 get_PositionHeld()
L_022d: ldc.i4.1
L_022e: callvirt Boolean TryDropEquipment(Verse.ThingWithComps,
Verse.ThingWithComps ByRef, IntVec3, Boolean)
L_0233: pop
L_0234: br Label #27
L_0239: Label #26
L_0239: ldarg.0
L_023a: ldfld Verse.Pawn pawn
L_023f: ldfld Verse.Pawn_EquipmentTracker equipment
L_0244: ldarg.0
L_0245: ldfld Verse.Pawn pawn
L_024a: ldfld Verse.Pawn_EquipmentTracker equipment
L_024f: callvirt Verse.ThingWithComps get_Primary()
L_0254: callvirt Void DestroyEquipment(Verse.ThingWithComps)
L_0259: Label #17
L_0259: Label #22
L_0259: Label #23
L_0259: Label #25
L_0259: Label #27
L_0259: br Label #28
L_025e: Label #5
L_025e: ldarg.0
L_025f: call Boolean ShouldBeDowned()
L_0264: brtrue Label #29
L_0269: ldarg.0
L_026a: call Void MakeUndowned()
L_026f: br Label #0
L_0274: Label #2
L_0274: Label #28
L_0274: Label #29
L_0274: br Label #0
L_0279: Label #0
L_0279: ret
DONE

PATCHING RimWorld.RestUtility Single WakeThreshold(Verse.Pawn)


L_0000: Local var #0 Verse.AI.Group.Lord
L_0000: Local var #1 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #2 System.Nullable`1[[System.Single, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]
L_0000: Local var #3 System.Single
L_0000: ldc.r4 0
L_0005: stloc 3 (System.Single)
L_0006: ldarg.0
L_0007: call Verse.AI.Group.Lord GetLord(Verse.Pawn)
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldloc.0
L_0014: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0019: brfalse Label #3
L_001e: ldloc.0
L_001f: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_0024: callvirt Nullable`1 get_CustomWakeThreshold()
L_0029: stloc.1
L_002a: ldloca.s 1 (System.Nullable`1[System.Single])
L_002c: call Boolean get_HasValue()
L_0031: brfalse Label #4
L_0036: ldloc.0
L_0037: callvirt Verse.AI.Group.LordToil get_CurLordToil()
L_003c: callvirt Nullable`1 get_CustomWakeThreshold()
L_0041: stloc.2
L_0042: ldloca.s 2 (System.Nullable`1[System.Single])
L_0044: call Single get_Value()
L_0049: br Label #0
L_004e: Label #2
L_004e: Label #3
L_004e: Label #4
L_004e: ldc.r4 1
L_0053: br Label #0
L_0058: Label #0
L_0058: stloc 3 (System.Single)
L_0059: ldloca 3 (System.Single)
L_005b: ldarga 0
L_0061: call Void WakeThreshold_Patch(Single ByRef, Verse.Pawn ByRef)
L_0066: ldloc 3 (System.Single)
L_0067: ret
DONE

PATCHING Verse.Verb_Shoot Boolean TryCastShot()


L_0000: Local var #0 System.Boolean
L_0000: Local var #1 System.Boolean
L_0000: ldc.i4 0
L_0005: stloc 1 (System.Boolean)
L_0006: ldarg.0
L_0007: call Boolean TryCastShot()
L_000c: stloc.0
L_000d: ldloc.0
L_000e: brfalse Label #2
L_0013: ldarg.0
L_0014: call Boolean get_CasterIsPawn()
L_0019: brfalse Label #3
L_001e: ldarg.0
L_001f: call Verse.Pawn get_CasterPawn()
L_0024: ldfld RimWorld.Pawn_RecordsTracker records
L_0029: ldsfld RimWorld.RecordDef ShotsFired
L_002e: callvirt Void Increment(RimWorld.RecordDef)
L_0033: Label #2
L_0033: Label #3
L_0033: ldloc.0
L_0034: br Label #0
L_0039: Label #0
L_0039: stloc 1 (System.Boolean)
L_003a: ldarga 0
L_0040: call Void TryCastShot_Patch(Verse.Verb_Shoot ByRef)
L_0045: ldloc 1 (System.Boolean)
L_0046: ret
DONE

PATCHING Verse.Pawn_EquipmentTracker Void


Notify_EquipmentAdded(Verse.ThingWithComps)
L_0000: Local var #0 Verse.Verb
L_0000: Local var #1 System.Collections.Generic.List`1+Enumerator[[Verse.Verb,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: ldarg.1
L_0001: callvirt Verse.CompEquippable GetComp[CompEquippable]()
L_0006: callvirt System.Collections.Generic.List`1[Verse.Verb] get_AllVerbs()
L_000b: callvirt Enumerator GetEnumerator()
L_0010: stloc.1
L_0011: br Label #2
L_0016: Label #3
L_0016: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0018: call Verse.Verb get_Current()
L_001d: stloc.0
L_001e: ldloc.0
L_001f: ldarg.0
L_0020: ldfld Verse.Pawn pawn
L_0025: stfld Verse.Thing caster
L_002a: ldloc.0
L_002b: callvirt Void Notify_PickedUp()
L_0030: Label #2
L_0030: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0032: call Boolean MoveNext()
L_0037: brtrue Label #3
L_003c: leave Label #4
L_0041: ldloca.s 1 (System.Collections.Generic.List`1+Enumerator[Verse.Verb])
L_0043: constrained. System.Collections.Generic.List`1+Enumerator[Verse.Verb]
L_0049: callvirt Void Dispose()
L_004e: endfinally
L_004f: Label #4
L_004f: br Label #0
L_0054: Label #0
L_0054: ldarga 1
L_005a: ldarga 0
L_0060: call Void Notify_EquipmentAdded_Patch(Verse.ThingWithComps ByRef,
Verse.Pawn_EquipmentTracker ByRef)
L_0065: ret
DONE

PATCHING RimWorld.PawnWeaponGenerator Void TryGenerateWeaponFor(Verse.Pawn)


L_0000: Local var #0 System.Single
L_0000: Local var #1 System.Int32
L_0000: Local var #2
RimWorld.PawnWeaponGenerator+<TryGenerateWeaponFor>c__AnonStorey2
L_0000: Local var #3 RimWorld.ThingStuffPair
L_0000: Local var #4 Verse.ThingWithComps
L_0000: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0005: callvirt Void Clear()
L_000a: ldarg.0
L_000b: ldfld Verse.PawnKindDef kindDef
L_0010: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0015: brfalse Label #2
L_001a: ldarg.0
L_001b: ldfld Verse.PawnKindDef kindDef
L_0020: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_0025: callvirt Int32 get_Count()
L_002a: brtrue Label #3
L_002f: Label #2
L_002f: br Label #0
L_0034: Label #3
L_0034: ldarg.0
L_0035: callvirt Verse.RaceProperties get_RaceProps()
L_003a: callvirt Boolean get_ToolUser()
L_003f: brtrue Label #4
L_0044: br Label #0
L_0049: Label #4
L_0049: ldarg.0
L_004a: ldfld Verse.Pawn_HealthTracker health
L_004f: ldfld Verse.PawnCapacitiesHandler capacities
L_0054: ldsfld Verse.PawnCapacityDef Manipulation
L_0059: callvirt Boolean CapableOf(Verse.PawnCapacityDef)
L_005e: brtrue Label #5
L_0063: br Label #0
L_0068: Label #5
L_0068: ldarg.0
L_0069: ldfld RimWorld.Pawn_StoryTracker story
L_006e: brfalse Label #6
L_0073: ldarg.0
L_0074: ldfld RimWorld.Pawn_StoryTracker story
L_0079: ldc.i4.8
L_007a: callvirt Boolean WorkTagIsDisabled(WorkTags)
L_007f: brfalse Label #7
L_0084: br Label #0
L_0089: Label #6
L_0089: Label #7
L_0089: ldarg.0
L_008a: ldfld Verse.PawnKindDef kindDef
L_008f: ldflda Verse.FloatRange weaponMoney
L_0094: call Single get_RandomInRange()
L_0099: stloc.0
L_009a: ldc.i4.0
L_009b: stloc.1
L_009c: br Label #8
L_00a1: Label #16
L_00a1: newobj Void .ctor()
L_00a6: stloc.2
L_00a7: ldloc.2
L_00a8: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_00ad: ldloc.1
L_00ae: callvirt ThingStuffPair get_Item(Int32)
L_00b3: stfld RimWorld.ThingStuffPair w
L_00b8: ldloc.2
L_00b9: ldflda RimWorld.ThingStuffPair w
L_00be: call Single get_Price()
L_00c3: ldloc.0
L_00c4: ble.un Label #9
L_00c9: br Label #10
L_00ce: Label #9
L_00ce: ldarg.0
L_00cf: ldfld Verse.PawnKindDef kindDef
L_00d4: ldfld System.Collections.Generic.List`1[System.String] weaponTags
L_00d9: ldloc.2
L_00da: ldftn Boolean <>m__0(System.String)
L_00e0: newobj Void .ctor(Object, IntPtr)
L_00e5: call Boolean Any[String](System.Collections.Generic.List`1[System.String],
System.Predicate`1[System.String])
L_00ea: brtrue Label #11
L_00ef: br Label #12
L_00f4: Label #11
L_00f4: ldloc.2
L_00f5: ldflda RimWorld.ThingStuffPair w
L_00fa: ldfld Verse.ThingDef thing
L_00ff: ldfld System.Single generateAllowChance
L_0104: ldc.r4 1
L_0109: bge.un Label #13
L_010e: ldarg.0
L_010f: ldfld System.Int32 thingIDNumber
L_0114: ldc.i4 28554824
L_0119: xor
L_011a: call Single ValueSeeded(Int32)
L_011f: ldloc.2
L_0120: ldflda RimWorld.ThingStuffPair w
L_0125: ldfld Verse.ThingDef thing
L_012a: ldfld System.Single generateAllowChance
L_012f: ble.un Label #14
L_0134: br Label #15
L_0139: Label #13
L_0139: Label #14
L_0139: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_013e: ldloc.2
L_013f: ldfld RimWorld.ThingStuffPair w
L_0144: callvirt Void Add(ThingStuffPair)
L_0149: Label #10
L_0149: Label #12
L_0149: Label #15
L_0149: ldloc.1
L_014a: ldc.i4.1
L_014b: add
L_014c: stloc.1
L_014d: Label #8
L_014d: ldloc.1
L_014e: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
allWeaponPairs
L_0153: callvirt Int32 get_Count()
L_0158: blt Label #16
L_015d: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_0162: callvirt Int32 get_Count()
L_0167: brtrue Label #17
L_016c: br Label #0
L_0171: ldarg.0
L_0172: ldloc.2
L_0173: callvirt System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
FilterChildWeapons(Verse.Pawn,
System.Collections.Generic.List`1[RimWorld.ThingStuffPair])
L_0178: stloc.2
L_0179: Label #17
L_0179: ldarg.0
L_017a: ldfld Verse.Pawn_EquipmentTracker equipment
L_017f: ldc.i4.0
L_0180: callvirt Void DestroyAllEquipment(DestroyMode)
L_0185: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_018a: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_018f: brtrue Label #18
L_0194: ldnull
L_0195: ldftn Single <TryGenerateWeaponFor>m__2(ThingStuffPair)
L_019b: newobj Void .ctor(Object, IntPtr)
L_01a0: stsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01a5: Label #18
L_01a5: ldsfld System.Func`2[RimWorld.ThingStuffPair,System.Single] <>f__am$cache2
L_01aa: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01ac: call Boolean TryRandomElementByWeight[ThingStuffPair](IEnumerable`1,
System.Func`2[RimWorld.ThingStuffPair,System.Single], ThingStuffPair ByRef)
L_01b1: brfalse Label #19
L_01b6: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01b8: ldfld Verse.ThingDef thing
L_01bd: ldloca.s 3 (RimWorld.ThingStuffPair)
L_01bf: ldfld Verse.ThingDef stuff
L_01c4: call Verse.Thing MakeThing(Verse.ThingDef, Verse.ThingDef)
L_01c9: castclass Verse.ThingWithComps
L_01ce: stloc.s 4 (Verse.ThingWithComps)
L_01d0: ldloc.s 4 (Verse.ThingWithComps)
L_01d2: ldarg.0
L_01d3: call Void PostProcessGeneratedGear(Verse.Thing, Verse.Pawn)
L_01d8: ldarg.0
L_01d9: ldfld Verse.Pawn_EquipmentTracker equipment
L_01de: ldloc.s 4 (Verse.ThingWithComps)
L_01e0: callvirt Void AddEquipment(Verse.ThingWithComps)
L_01e5: Label #19
L_01e5: ldsfld System.Collections.Generic.List`1[RimWorld.ThingStuffPair]
workingWeapons
L_01ea: callvirt Void Clear()
L_01ef: br Label #0
L_01f4: Label #0
L_01f4: ret
DONE

PATCHING RimWorld.Bill_Medical Void Notify_DoBillStarted(Verse.Pawn)


L_0000: Local var #0 System.Collections.Generic.List`1[[Verse.ThingStackPartClass,
Assembly-CSharp, Version=0.18.6527.35959, Culture=neutral, PublicKeyToken=null]]
L_0000: Local var #1 System.Int32
L_0000: ldarg.0
L_0001: ldarg.1
L_0002: call Void Notify_DoBillStarted(Verse.Pawn)
L_0007: ldarg.0
L_0008: ldnull
L_0009: stfld Verse.ThingDef consumedInitialMedicineDef
L_000e: ldarg.0
L_000f: call Verse.Pawn get_GiverPawn()
L_0014: callvirt Boolean get_Dead()
L_0019: brtrue Label #2
L_001e: ldarg.0
L_001f: ldfld Verse.RecipeDef recipe
L_0024: call Boolean RecipeHasNoIngredients(Verse.RecipeDef)
L_0029: brtrue Label #2
L_002e: ldarg.0
L_002f: ldfld Verse.RecipeDef recipe
L_0034: ldfld System.Boolean anesthetize
L_0039: brfalse Label #3
L_003e: ldarg.0
L_003f: call Verse.Pawn get_GiverPawn()
L_0044: call Boolean TryAnesthetize(Verse.Pawn)
L_0049: brfalse Label #4
L_004e: ldarg.1
L_004f: callvirt Verse.AI.Job get_CurJob()
L_0054: ldfld System.Collections.Generic.List`1[Verse.ThingStackPartClass]
placedThings
L_0059: stloc.0
L_005a: ldc.i4.0
L_005b: stloc.1
L_005c: br Label #5
L_0061: Label #10
L_0061: ldloc.0
L_0062: ldloc.1
L_0063: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0068: ldfld Verse.Thing thing
L_006d: isinst RimWorld.Medicine
L_0072: brfalse Label #6
L_0077: ldarg.0
L_0078: ldfld Verse.RecipeDef recipe
L_007d: callvirt Verse.RecipeWorker get_Worker()
L_0082: ldloc.0
L_0083: ldloc.1
L_0084: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_0089: ldfld Verse.Thing thing
L_008e: ldc.i4.1
L_008f: callvirt Verse.Thing SplitOff(Int32)
L_0094: ldarg.0
L_0095: ldfld Verse.RecipeDef recipe
L_009a: ldarg.1
L_009b: callvirt Verse.Map get_MapHeld()
L_00a0: callvirt Void ConsumeIngredient(Verse.Thing, Verse.RecipeDef, Verse.Map)
L_00a5: ldloc.0
L_00a6: ldloc.1
L_00a7: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ac: dup
L_00ad: callvirt Int32 get_Count()
L_00b2: ldc.i4.1
L_00b3: sub
L_00b4: callvirt Void set_Count(Int32)
L_00b9: ldarg.0
L_00ba: ldloc.0
L_00bb: ldloc.1
L_00bc: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00c1: ldfld Verse.Thing thing
L_00c6: ldfld Verse.ThingDef def
L_00cb: stfld Verse.ThingDef consumedInitialMedicineDef
L_00d0: ldloc.0
L_00d1: ldloc.1
L_00d2: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00d7: ldfld Verse.Thing thing
L_00dc: callvirt Boolean get_Destroyed()
L_00e1: brtrue Label #7
L_00e6: ldloc.0
L_00e7: ldloc.1
L_00e8: callvirt Verse.ThingStackPartClass get_Item(Int32)
L_00ed: callvirt Int32 get_Count()
L_00f2: ldc.i4.0
L_00f3: bgt Label #8
L_00f8: Label #7
L_00f8: ldloc.0
L_00f9: ldloc.1
L_00fa: callvirt Void RemoveAt(Int32)
L_00ff: Label #8
L_00ff: br Label #9
L_0104: Label #6
L_0104: ldloc.1
L_0105: ldc.i4.1
L_0106: add
L_0107: stloc.1
L_0108: Label #5
L_0108: ldloc.1
L_0109: ldloc.0
L_010a: callvirt Int32 get_Count()
L_010f: blt Label #10
L_0114: Label #2
L_0114: Label #3
L_0114: Label #4
L_0114: Label #9
L_0114: br Label #0
L_0119: Label #0
L_0119: ret
DONE

PATCHING RimWorld.Building_Bed IEnumerable`1 get_AssigningCandidates()


L_0000: ldarg.0
L_0001: callvirt IEnumerable`1 BedCandidates(RimWorld.Building_Bed)
L_0006: Label #0
L_0006: ret
DONE

PATCHING RimWorld.RestUtility RimWorld.Building_Bed FindBedFor(Verse.Pawn,


Verse.Pawn, Boolean, Boolean, Boolean)
L_0000: Local var #0 RimWorld.RestUtility+<FindBedFor>c__AnonStorey0
L_0000: Local var #1 RimWorld.Building_Bed
L_0000: Local var #2 Verse.Pawn
L_0000: Local var #3 Verse.Pawn
L_0000: Local var #4 System.Boolean
L_0000: Local var #5 System.Boolean
L_0000: Local var #6 System.Boolean
L_0000: Local var #7 System.Int32
L_0000: Local var #8 Verse.ThingDef
L_0000: Local var #9 System.Int32
L_0000: Local var #10 RimWorld.RestUtility+<FindBedFor>c__AnonStorey1
L_0000: Local var #11 RimWorld.Building_Bed
L_0000: Local var #12 RimWorld.DirectPawnRelation
L_0000: Local var #13 RimWorld.Building_Bed
L_0000: Local var #14 System.Int32
L_0000: Local var #15 RimWorld.RestUtility+<FindBedFor>c__AnonStorey2
L_0000: Local var #16 System.Int32
L_0000: Local var #17 Verse.ThingDef
L_0000: Local var #18 RimWorld.Building_Bed
L_0000: Local var #19 RimWorld.Building_Bed
L_0000: ldnull
L_0001: stloc 19 (RimWorld.Building_Bed)
L_0003: newobj Void .ctor()
L_0008: stloc.0
L_0009: ldloc.0
L_000a: ldarg.0
L_000b: stfld Verse.Pawn sleeper
L_0010: ldloc.0
L_0011: ldarg.1
L_0012: stfld Verse.Pawn traveler
L_0017: ldloc.0
L_0018: ldarg.2
L_0019: stfld System.Boolean sleeperWillBePrisoner
L_001e: ldloc.0
L_001f: ldarg.3
L_0020: stfld System.Boolean checkSocialProperness
L_0025: ldloc.0
L_0026: ldarg.s 4
L_0028: stfld System.Boolean ignoreOtherReservations
L_002d: ldloc.0
L_002e: ldfld Verse.Pawn sleeper
L_0033: call Boolean ShouldSeekMedicalRest(Verse.Pawn)
L_0038: brfalse Label #2
L_003d: ldloc.0
L_003e: ldfld Verse.Pawn sleeper
L_0043: call Boolean InBed(Verse.Pawn)
L_0048: brfalse Label #3
L_004d: ldloc.0
L_004e: ldfld Verse.Pawn sleeper
L_0053: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0058: callvirt Boolean get_Medical()
L_005d: brfalse Label #4
L_0062: ldloc.0
L_0063: ldfld Verse.Pawn sleeper
L_0068: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_006d: stloc.1
L_006e: ldloc.0
L_006f: ldfld Verse.Pawn sleeper
L_0074: stloc.2
L_0075: ldloc.0
L_0076: ldfld Verse.Pawn traveler
L_007b: stloc.3
L_007c: ldloc.0
L_007d: ldfld System.Boolean sleeperWillBePrisoner
L_0082: stloc.s 4 (System.Boolean)
L_0084: ldloc.0
L_0085: ldfld System.Boolean checkSocialProperness
L_008a: stloc.s 5 (System.Boolean)
L_008c: ldloc.0
L_008d: ldfld System.Boolean ignoreOtherReservations
L_0092: stloc.s 6 (System.Boolean)
L_0094: ldloc.1
L_0095: ldloc.2
L_0096: ldloc.3
L_0097: ldloc.s 4 (System.Boolean)
L_0099: ldloc.s 5 (System.Boolean)
L_009b: ldc.i4.0
L_009c: ldloc.s 6 (System.Boolean)
L_009e: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_00a3: brfalse Label #5
L_00a8: ldloc.0
L_00a9: ldfld Verse.Pawn sleeper
L_00ae: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00b3: br Label #0
L_00b8: Label #3
L_00b8: Label #4
L_00b8: Label #5
L_00b8: ldc.i4.0
L_00b9: stloc.s 7 (System.Int32)
L_00bb: br Label #6
L_00c0: Label #14
L_00c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_00c5: ldloc.s 7 (System.Int32)
L_00c7: callvirt Verse.ThingDef get_Item(Int32)
L_00cc: stloc.s 8 (Verse.ThingDef)
L_00ce: ldloc.0
L_00cf: ldfld Verse.Pawn sleeper
L_00d4: ldloc.s 8 (Verse.ThingDef)
L_00d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_00db: brtrue Label #7
L_00e0: br Label #8
L_00e5: Label #7
L_00e5: ldc.i4.0
L_00e6: stloc.s 9 (System.Int32)
L_00e8: br Label #9
L_00ed: Label #13
L_00ed: newobj Void .ctor()
L_00f2: stloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f4: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00f6: ldloc.0
L_00f7: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_00fc: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_00fe: ldloc.s 9 (System.Int32)
L_0100: brtrue Label #10
L_0105: ldc.i4.1
L_0106: br Label #11
L_010b: Label #10
L_010b: ldc.i4.3
L_010c: Label #11
L_010c: stfld Verse.Danger maxDanger
L_0111: ldloc.0
L_0112: ldfld Verse.Pawn sleeper
L_0117: callvirt IntVec3 get_Position()
L_011c: ldloc.0
L_011d: ldfld Verse.Pawn sleeper
L_0122: callvirt Verse.Map get_Map()
L_0127: ldloc.s 8 (Verse.ThingDef)
L_0129: call ThingRequest ForDef(Verse.ThingDef)
L_012e: ldc.i4.1
L_012f: ldloc.0
L_0130: ldfld Verse.Pawn traveler
L_0135: ldc.i4.3
L_0136: ldc.i4.0
L_0137: ldc.i4.0
L_0138: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_013d: ldc.r4 9999
L_0142: ldloc.s 10 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey1)
L_0144: ldftn Boolean <>m__0(Verse.Thing)
L_014a: newobj Void .ctor(Object, IntPtr)
L_014f: ldnull
L_0150: ldc.i4.0
L_0151: ldc.i4.m1
L_0152: ldc.i4.0
L_0153: ldc.i4.6
L_0154: ldc.i4.0
L_0155: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_015a: castclass RimWorld.Building_Bed
L_015f: stloc.s 11 (RimWorld.Building_Bed)
L_0161: ldloc.s 11 (RimWorld.Building_Bed)
L_0163: brfalse Label #12
L_0168: ldloc.s 11 (RimWorld.Building_Bed)
L_016a: br Label #0
L_016f: Label #12
L_016f: ldloc.s 9 (System.Int32)
L_0171: ldc.i4.1
L_0172: add
L_0173: stloc.s 9 (System.Int32)
L_0175: Label #9
L_0175: ldloc.s 9 (System.Int32)
L_0177: ldc.i4.2
L_0178: blt Label #13
L_017d: Label #8
L_017d: ldloc.s 7 (System.Int32)
L_017f: ldc.i4.1
L_0180: add
L_0181: stloc.s 7 (System.Int32)
L_0183: Label #6
L_0183: ldloc.s 7 (System.Int32)
L_0185: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_Medical
L_018a: callvirt Int32 get_Count()
L_018f: blt Label #14
L_0194: Label #2
L_0194: ldloc.0
L_0195: ldfld Verse.Pawn sleeper
L_019a: ldfld RimWorld.Pawn_Ownership ownership
L_019f: brfalse Label #15
L_01a4: ldloc.0
L_01a5: ldfld Verse.Pawn sleeper
L_01aa: ldfld RimWorld.Pawn_Ownership ownership
L_01af: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01b4: brfalse Label #16
L_01b9: ldloc.0
L_01ba: ldfld Verse.Pawn sleeper
L_01bf: ldfld RimWorld.Pawn_Ownership ownership
L_01c4: callvirt RimWorld.Building_Bed get_OwnedBed()
L_01c9: stloc.1
L_01ca: ldloc.0
L_01cb: ldfld Verse.Pawn sleeper
L_01d0: stloc.3
L_01d1: ldloc.0
L_01d2: ldfld Verse.Pawn traveler
L_01d7: stloc.2
L_01d8: ldloc.0
L_01d9: ldfld System.Boolean sleeperWillBePrisoner
L_01de: stloc.s 6 (System.Boolean)
L_01e0: ldloc.0
L_01e1: ldfld System.Boolean checkSocialProperness
L_01e6: stloc.s 5 (System.Boolean)
L_01e8: ldloc.0
L_01e9: ldfld System.Boolean ignoreOtherReservations
L_01ee: stloc.s 4 (System.Boolean)
L_01f0: ldloc.1
L_01f1: ldloc.3
L_01f2: ldloc.2
L_01f3: ldloc.s 6 (System.Boolean)
L_01f5: ldloc.s 5 (System.Boolean)
L_01f7: ldc.i4.0
L_01f8: ldloc.s 4 (System.Boolean)
L_01fa: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_01ff: brfalse Label #17
L_0204: ldloc.0
L_0205: ldfld Verse.Pawn sleeper
L_020a: ldfld RimWorld.Pawn_Ownership ownership
L_020f: callvirt RimWorld.Building_Bed get_OwnedBed()
L_0214: br Label #0
L_0219: Label #15
L_0219: Label #16
L_0219: Label #17
L_0219: ldloc.0
L_021a: ldfld Verse.Pawn sleeper
L_021f: ldc.i4.0
L_0220: call RimWorld.DirectPawnRelation
ExistingMostLikedLovePartnerRel(Verse.Pawn, Boolean)
L_0225: stloc.s 12 (RimWorld.DirectPawnRelation)
L_0227: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0229: brfalse Label #18
L_022e: ldloc.s 12 (RimWorld.DirectPawnRelation)
L_0230: ldfld Verse.Pawn otherPawn
L_0235: ldfld RimWorld.Pawn_Ownership ownership
L_023a: callvirt RimWorld.Building_Bed get_OwnedBed()
L_023f: stloc.s 13 (RimWorld.Building_Bed)
L_0241: ldloc.s 13 (RimWorld.Building_Bed)
L_0243: brfalse Label #19
L_0248: ldloc.s 13 (RimWorld.Building_Bed)
L_024a: stloc.1
L_024b: ldloc.0
L_024c: ldfld Verse.Pawn sleeper
L_0251: stloc.2
L_0252: ldloc.0
L_0253: ldfld Verse.Pawn traveler
L_0258: stloc.3
L_0259: ldloc.0
L_025a: ldfld System.Boolean sleeperWillBePrisoner
L_025f: stloc.s 4 (System.Boolean)
L_0261: ldloc.0
L_0262: ldfld System.Boolean checkSocialProperness
L_0267: stloc.s 5 (System.Boolean)
L_0269: ldloc.0
L_026a: ldfld System.Boolean ignoreOtherReservations
L_026f: stloc.s 6 (System.Boolean)
L_0271: ldloc.1
L_0272: ldloc.2
L_0273: ldloc.3
L_0274: ldloc.s 4 (System.Boolean)
L_0276: ldloc.s 5 (System.Boolean)
L_0278: ldc.i4.0
L_0279: ldloc.s 6 (System.Boolean)
L_027b: call Boolean IsValidBedFor(Verse.Thing, Verse.Pawn, Verse.Pawn, Boolean,
Boolean, Boolean, Boolean)
L_0280: brfalse Label #20
L_0285: ldloc.s 13 (RimWorld.Building_Bed)
L_0287: br Label #0
L_028c: Label #18
L_028c: Label #19
L_028c: Label #20
L_028c: ldc.i4.0
L_028d: stloc.s 14 (System.Int32)
L_028f: br Label #21
L_0294: Label #29
L_0294: newobj Void .ctor()
L_0299: stloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029b: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_029d: ldloc.0
L_029e: stfld RimWorld.RestUtility+<FindBedFor>c__AnonStorey0 <>f__ref$0
L_02a3: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_02a5: ldloc.s 14 (System.Int32)
L_02a7: brtrue Label #22
L_02ac: ldc.i4.1
L_02ad: br Label #23
L_02b2: Label #22
L_02b2: ldc.i4.3
L_02b3: Label #23
L_02b3: stfld Verse.Danger maxDanger
L_02b8: ldc.i4.0
L_02b9: stloc.s 16 (System.Int32)
L_02bb: br Label #24
L_02c0: Label #28
L_02c0: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_02c5: ldloc.s 16 (System.Int32)
L_02c7: callvirt Verse.ThingDef get_Item(Int32)
L_02cc: stloc.s 17 (Verse.ThingDef)
L_02ce: ldloc.0
L_02cf: ldfld Verse.Pawn sleeper
L_02d4: ldloc.s 17 (Verse.ThingDef)
L_02d6: call Boolean CanUseBedEver(Verse.Pawn, Verse.ThingDef)
L_02db: brtrue Label #25
L_02e0: br Label #26
L_02e5: Label #25
L_02e5: ldloc.0
L_02e6: ldfld Verse.Pawn sleeper
L_02eb: callvirt IntVec3 get_Position()
L_02f0: ldloc.0
L_02f1: ldfld Verse.Pawn sleeper
L_02f6: callvirt Verse.Map get_Map()
L_02fb: ldloc.s 17 (Verse.ThingDef)
L_02fd: call ThingRequest ForDef(Verse.ThingDef)
L_0302: ldc.i4.1
L_0303: ldloc.0
L_0304: ldfld Verse.Pawn traveler
L_0309: ldc.i4.3
L_030a: ldc.i4.0
L_030b: ldc.i4.0
L_030c: call TraverseParms For(Verse.Pawn, Danger, TraverseMode, Boolean)
L_0311: ldc.r4 9999
L_0316: ldloc.s 15 (RimWorld.RestUtility+<FindBedFor>c__AnonStorey2)
L_0318: ldftn Boolean <>m__0(Verse.Thing)
L_031e: newobj Void .ctor(Object, IntPtr)
L_0323: ldnull
L_0324: ldc.i4.0
L_0325: ldc.i4.m1
L_0326: ldc.i4.0
L_0327: ldc.i4.6
L_0328: ldc.i4.0
L_0329: call Verse.Thing ClosestThingReachable(IntVec3, Verse.Map, ThingRequest,
PathEndMode, TraverseParms, Single, System.Predicate`1[Verse.Thing], IEnumerable`1,
Int32, Int32, Boolean, RegionType, Boolean)
L_032e: castclass RimWorld.Building_Bed
L_0333: stloc.s 18 (RimWorld.Building_Bed)
L_0335: ldloc.s 18 (RimWorld.Building_Bed)
L_0337: brfalse Label #27
L_033c: ldloc.s 18 (RimWorld.Building_Bed)
L_033e: br Label #0
L_0343: Label #26
L_0343: Label #27
L_0343: ldloc.s 16 (System.Int32)
L_0345: ldc.i4.1
L_0346: add
L_0347: stloc.s 16 (System.Int32)
L_0349: Label #24
L_0349: ldloc.s 16 (System.Int32)
L_034b: ldsfld System.Collections.Generic.List`1[Verse.ThingDef]
bedDefsBestToWorst_RestEffectiveness
L_0350: callvirt Int32 get_Count()
L_0355: blt Label #28
L_035a: ldloc.s 14 (System.Int32)
L_035c: ldc.i4.1
L_035d: add
L_035e: stloc.s 14 (System.Int32)
L_0360: Label #21
L_0360: ldloc.s 14 (System.Int32)
L_0362: ldc.i4.2
L_0363: blt Label #29
L_0368: ldnull
L_0369: br Label #0
L_036e: Label #0
L_036e: stloc 19 (RimWorld.Building_Bed)
L_0370: ldarga 0
L_0376: ldloca 19 (RimWorld.Building_Bed)
L_0378: ldarga 1
L_037e: ldarga 4
L_0384: ldarga 2
L_038a: ldarga 3
L_0390: call Void FindBedFor_Patch(Verse.Pawn ByRef, RimWorld.Building_Bed ByRef,
Verse.Pawn ByRef, Boolean ByRef, Boolean ByRef, Boolean ByRef)
L_0395: ldloc 19 (RimWorld.Building_Bed)
L_0397: ret
DONE

PATCHING RimWorld.JobGiver_DoLovin Verse.AI.Job TryGiveJob(Verse.Pawn)


L_0000: Local var #0 Verse.Pawn
L_0000: Local var #1 Verse.AI.Job
L_0000: ldnull
L_0001: stloc 1 (Verse.AI.Job)
L_0002: call Verse.TickManager get_TickManager()
L_0007: callvirt Int32 get_TicksGame()
L_000c: ldarg.1
L_000d: ldfld Verse.AI.Pawn_MindState mindState
L_0012: ldfld System.Int32 canLovinTick
L_0017: bge Label #2
L_001c: ldnull
L_001d: br Label #0
L_0022: Label #2
L_0022: ldarg.1
L_0023: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0028: brfalse Label #3
L_002d: ldarg.1
L_002e: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_0033: callvirt Boolean get_Medical()
L_0038: brtrue Label #4
L_003d: ldarg.1
L_003e: ldfld Verse.Pawn_HealthTracker health
L_0043: ldfld Verse.PawnCapacitiesHandler capacities
L_0048: callvirt Boolean get_CanBeAwake()
L_004d: brtrue Label #5
L_0052: Label #3
L_0052: Label #4
L_0052: ldnull
L_0053: br Label #0
L_0058: Label #5
L_0058: ldarg.1
L_0059: call Verse.Pawn GetPartnerInMyBed(Verse.Pawn)
L_005e: stloc.0
L_005f: ldloc.0
L_0060: brfalse Label #6
L_0065: ldloc.0
L_0066: ldfld Verse.Pawn_HealthTracker health
L_006b: ldfld Verse.PawnCapacitiesHandler capacities
L_0070: callvirt Boolean get_CanBeAwake()
L_0075: brfalse Label #7
L_007a: call Verse.TickManager get_TickManager()
L_007f: callvirt Int32 get_TicksGame()
L_0084: ldloc.0
L_0085: ldfld Verse.AI.Pawn_MindState mindState
L_008a: ldfld System.Int32 canLovinTick
L_008f: bge Label #8
L_0094: Label #6
L_0094: Label #7
L_0094: ldnull
L_0095: br Label #0
L_009a: Label #8
L_009a: ldarg.1
L_009b: ldloc.0
L_009c: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00a1: ldc.i4.1
L_00a2: ldc.i4.m1
L_00a3: ldnull
L_00a4: ldc.i4.0
L_00a5: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00aa: brfalse Label #9
L_00af: ldloc.0
L_00b0: ldarg.1
L_00b1: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00b6: ldc.i4.1
L_00b7: ldc.i4.m1
L_00b8: ldnull
L_00b9: ldc.i4.0
L_00ba: call Boolean CanReserve(Verse.Pawn, LocalTargetInfo, Int32, Int32,
Verse.ReservationLayerDef, Boolean)
L_00bf: brtrue Label #10
L_00c4: Label #9
L_00c4: ldnull
L_00c5: br Label #0
L_00ca: Label #10
L_00ca: ldsfld Verse.JobDef Lovin
L_00cf: ldloc.0
L_00d0: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00d5: ldarg.1
L_00d6: call RimWorld.Building_Bed CurrentBed(Verse.Pawn)
L_00db: call LocalTargetInfo op_Implicit(Verse.Thing)
L_00e0: newobj Void .ctor(JobDef, LocalTargetInfo, LocalTargetInfo)
L_00e5: br Label #0
L_00ea: Label #0
L_00ea: stloc 1 (Verse.AI.Job)
L_00eb: ldloca 1 (Verse.AI.Job)
L_00ed: ldarga 1
L_00f3: call Void TryGiveJob_Patch(Verse.AI.Job ByRef, Verse.Pawn ByRef)
L_00f8: ldloc 1 (Verse.AI.Job)
L_00f9: ret
DONE

You might also like