From a84d6f6a6ddc76bd3c926247b20f0f528291af13 Mon Sep 17 00:00:00 2001 From: c0ffee Date: Mon, 26 Jul 2021 19:11:34 -0700 Subject: [PATCH] null ref checks in case of missing comps --- 1.3/Assemblies/Rimworld-Animations.dll | Bin 54272 -> 54272 bytes .../OtherModPatches/HarmonyPatch_AlienRace.cs | 18 +++++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/1.3/Assemblies/Rimworld-Animations.dll b/1.3/Assemblies/Rimworld-Animations.dll index 43d8f0ef0f46b54b0753098cb2ed9d911d0d289f..c7612303c809646900b54f0d1b35806be9583e33 100644 GIT binary patch delta 4498 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 delta 4446 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 - if (!renderFlags.FlagSet(PawnRenderFlags.Portrait) && pawnAnimator.isAnimating && (bodyAddon.drawnInBed || bodyAddon.alignWithHead)) + if (pawnAnimator != null && !renderFlags.FlagSet(PawnRenderFlags.Portrait) && pawnAnimator.isAnimating && (bodyAddon.drawnInBed || bodyAddon.alignWithHead)) { Quaternion headQuatInAnimation = Quaternion.AngleAxis(pawnAnimator.headAngle, Vector3.up); @@ -67,16 +67,24 @@ namespace Rimworld_Animations { { yield return ins[i]; } - - } } public static bool Prefix(PawnRenderFlags renderFlags, ref Vector3 vector, ref Vector3 headOffset, Pawn pawn, ref Quaternion quat, ref Rot4 rotation) { - + if(pawn == null) + { + return true; + } + CompBodyAnimator anim = pawn.TryGetComp(); - if (!renderFlags.FlagSet(PawnRenderFlags.Portrait) && anim.isAnimating) + + if(anim == null) + { + return true; + } + + if (anim != null && !renderFlags.FlagSet(PawnRenderFlags.Portrait) && anim.isAnimating) { quat = Quaternion.AngleAxis(anim.bodyAngle, Vector3.up); }