From eead6ae7ca87926ce5391841b83da61f725c49d1 Mon Sep 17 00:00:00 2001 From: c0ffee Date: Fri, 3 May 2024 06:54:32 -0700 Subject: [PATCH] null ref checks for jobs --- .gitignore | 6 +++ 1.5/Assemblies/Rimworld-Animations.dll | Bin 49152 -> 49152 bytes ...HarmonyPatch_JobDriver_SexBaseInitiator.cs | 41 +++++++----------- Rimworld-Animations.csproj | 6 +++ 4 files changed, 27 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index 1c79e0c..67e62ea 100644 --- a/.gitignore +++ b/.gitignore @@ -348,3 +348,9 @@ healthchecksdb /Source/Patches/OtherModPatches/HarmonyPatch_AlienRace.cs /Source/Patches/ThingAnimationPatches/HarmonyPatch_ThingDrawAt.cs /Defs/AnimationDefs/Animations_SexToys.xml +/1.5/Defs/AnimationDefs/BasicBestiality/HumanRotatedOffset.xml +/1.5/Defs/AnimationDefs/BasicBestiality/BasicBestiality4v1.xml +/1.5/Defs/AnimationDefs/BasicBestiality/BasicBestiality3v1.xml +/1.5/Defs/AnimationDefs/BasicBestiality/BasicBestiality2v1.xml +/1.5/Defs/AnimationDefs/BasicBestiality/BasicBestiality1v1.xml +/1.5/Defs/AnimationDefs/BasicBestiality/!BasicBestiality.xml diff --git a/1.5/Assemblies/Rimworld-Animations.dll b/1.5/Assemblies/Rimworld-Animations.dll index fc2cf06011a61963092030846830eb6c7d04d29f..91abcb8ac45f54ec462779ab38bd1062e252feee 100644 GIT binary patch delta 11946 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 H$^QQUAGGXs diff --git a/1.5/Source/Patches/RJWPatches/JobDrivers/HarmonyPatch_JobDriver_SexBaseInitiator.cs b/1.5/Source/Patches/RJWPatches/JobDrivers/HarmonyPatch_JobDriver_SexBaseInitiator.cs index 3ba2def..024d43e 100644 --- a/1.5/Source/Patches/RJWPatches/JobDrivers/HarmonyPatch_JobDriver_SexBaseInitiator.cs +++ b/1.5/Source/Patches/RJWPatches/JobDrivers/HarmonyPatch_JobDriver_SexBaseInitiator.cs @@ -11,50 +11,38 @@ namespace Rimworld_Animations { [HarmonyPatch(typeof(JobDriver_SexBaseInitiator), "Start")] static class HarmonyPatch_JobDriver_SexBaseInitiator_Start { public static void Postfix(ref JobDriver_SexBaseInitiator __instance) { - /* - These particular jobs need special code - don't play anim for now - */ - if(__instance is JobDriver_Masturbate || __instance is JobDriver_ViolateCorpse) { - - return; - - } - - if(!RJWAnimationSettings.PlayAnimForNonsexualActs && NonSexualAct(__instance)) - { - return; - } Pawn pawn = __instance.pawn; Pawn partner = __instance.Target as Pawn; - Building_Bed bed = __instance.Bed; + if (partner?.jobs?.curDriver is JobDriver_SexBaseReciever partnerSexBaseReceiver) { Pawn Target = __instance.Target as Pawn; - int preAnimDuration = __instance.duration; - - List participants = partnerSexBaseReceiver.parteners.Append(partner).ToList(); GroupAnimationDef groupAnimation = AnimationUtility.FindGroupAnimation(participants, out int reorder); if (groupAnimation != null) { - Thing anchor; - if (bed != null) anchor = bed; - else anchor = partner; + + Thing anchor = (Thing)__instance.Bed ?? partner; AnimationUtility.StartGroupAnimation(participants, groupAnimation, reorder, anchor); int animTicks = AnimationUtility.GetAnimationLength(pawn); foreach(Pawn participant in participants) { - (participant.jobs.curDriver as JobDriver_Sex).ticks_left = animTicks; - (participant.jobs.curDriver as JobDriver_Sex).sex_ticks = animTicks; - (participant.jobs.curDriver as JobDriver_Sex).orgasmStartTick = animTicks; - (participant.jobs.curDriver as JobDriver_Sex).duration = animTicks; + //null ref check for pawns that might have lost their jobs or become null for some reason + if (participant?.jobs?.curDriver is JobDriver_Sex participantJobDriver) + { + participantJobDriver.ticks_left = animTicks; + participantJobDriver.sex_ticks = animTicks; + participantJobDriver.orgasmStartTick = animTicks; + participantJobDriver.duration = animTicks; + } + + } } } @@ -92,7 +80,8 @@ namespace Rimworld_Animations { } //stop partner's other partners (threesome pawns) animating - if (__instance.Partner.jobs.curDriver is JobDriver_SexBaseReciever partnerReceiverJob) + //added null ref checks for instances when pawns get nulled or lose their jobs + if (__instance.Partner?.jobs?.curDriver is JobDriver_SexBaseReciever partnerReceiverJob) { foreach(Pawn pawn in partnerReceiverJob.parteners) { diff --git a/Rimworld-Animations.csproj b/Rimworld-Animations.csproj index 619c1b1..e527804 100644 --- a/Rimworld-Animations.csproj +++ b/Rimworld-Animations.csproj @@ -143,6 +143,12 @@ + + + + + +