From cbdbdd82523ddc94c2b29d9f273f77f18e5108b3 Mon Sep 17 00:00:00 2001 From: SokyranTheDragon <36712560+SokyranTheDragon@users.noreply.github.com> Date: Tue, 17 Oct 2023 22:21:26 +0200 Subject: [PATCH] Change Lord, LordJob, LordToil sync workers to handle null (#396) --- .../Client/Syncing/Dict/SyncDictRimWorld.cs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/Source/Client/Syncing/Dict/SyncDictRimWorld.cs b/Source/Client/Syncing/Dict/SyncDictRimWorld.cs index 5a0c5d60..ac287b35 100644 --- a/Source/Client/Syncing/Dict/SyncDictRimWorld.cs +++ b/Source/Client/Syncing/Dict/SyncDictRimWorld.cs @@ -345,19 +345,26 @@ public static class SyncDictRimWorld #region AI { (ByteWriter data, Lord lord) => { - MpContext context = data.MpContext(); - context.map = lord.Map; - data.WriteInt32(lord.loadID); + if (lord == null) { + data.WriteInt32(int.MaxValue); + } + else { + data.WriteInt32(lord.loadID); + MpContext context = data.MpContext(); + context.map = lord.Map; + } }, (ByteReader data) => { - var map = data.MpContext().map; int lordId = data.ReadInt32(); + if (lordId == int.MaxValue) + return null; + var map = data.MpContext().map; return map.lordManager.lords.Find(l => l.loadID == lordId); } }, { (ByteWriter data, LordJob job) => { - WriteSync(data, job.lord); + WriteSync(data, job?.lord); }, (ByteReader data) => { var lord = ReadSync(data); @@ -366,7 +373,7 @@ public static class SyncDictRimWorld }, { (ByteWriter data, LordToil toil) => { - WriteSync(data, toil.lord); + WriteSync(data, toil?.lord); }, (ByteReader data) => { var lord = ReadSync(data);