From bf3bf84eb3b96a09da93485017d4da078116cb85 Mon Sep 17 00:00:00 2001 From: lutepickle <28810-lutepickle@users.noreply.gitgud.io> Date: Wed, 27 Apr 2022 17:34:19 -0700 Subject: [PATCH] Fix null reference on missing hybrid def --- 1.3/Assemblies/RJW_Menstruation.dll | Bin 151040 -> 151552 bytes .../Hediff_MultiplePregnancy.cs | 4 ++-- .../RJW_Menstruation/Things.cs | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/1.3/Assemblies/RJW_Menstruation.dll b/1.3/Assemblies/RJW_Menstruation.dll index 01f25cb02cbfd06b4f06c01d67d50d10911464a0..bb410bf5a465adde88bb037dea372d59a7acb15b 100644 GIT binary patch delta 8034 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 delta 7869 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 GKK}!BwC895 diff --git a/1.3/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs b/1.3/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs index 0383fa1..134e7b0 100644 --- a/1.3/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs +++ b/1.3/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs @@ -492,7 +492,7 @@ namespace RJW_Menstruation string MotherRaceName = ""; string FatherRaceName = ""; MotherRaceName = mother.kindDef?.race?.defName; - PawnKindDef tmp = spawn_kind_def; + PawnKindDef non_hybrid_kind_def = spawn_kind_def; if (father != null) FatherRaceName = father.kindDef?.race?.defName; @@ -507,7 +507,7 @@ namespace RJW_Menstruation { if (!Configurations.UseHybridExtention || spawn_kind_def == null) { - spawn_kind_def = tmp; + spawn_kind_def = non_hybrid_kind_def; var groups = DefDatabase.AllDefs.Where(x => !(x.hybridRaceParents.NullOrEmpty() || x.hybridChildKindDef.NullOrEmpty())); diff --git a/1.3/source/RJW_Menstruation/RJW_Menstruation/Things.cs b/1.3/source/RJW_Menstruation/RJW_Menstruation/Things.cs index f952be8..77dbbd2 100644 --- a/1.3/source/RJW_Menstruation/RJW_Menstruation/Things.cs +++ b/1.3/source/RJW_Menstruation/RJW_Menstruation/Things.cs @@ -50,9 +50,13 @@ namespace RJW_Menstruation { string key = hybridInfo.RandomElementByWeight(x => x.Value).Key; res = DefDatabase.GetNamedSilentFail(key); - if (res == null) res = DefDatabase.GetNamedSilentFail(key).race.AnyPawnKind; + if (res == null) res = DefDatabase.GetNamedSilentFail(key)?.race?.AnyPawnKind; - if (res == null) hybridInfo.Remove(key); + if (res == null) + { + Log.Warning($"Could not find pawnKind or race {key}, removing hybrid definition"); + hybridInfo.Remove(key); + } } while (res == null && !hybridInfo.EnumerableNullOrEmpty()); return res;