From 8114ece18ab0262815c5fb8306c6de21fab3940e Mon Sep 17 00:00:00 2001 From: GenericHeroGuy Date: Thu, 9 Oct 2025 20:42:45 +0200 Subject: [PATCH] Don't overwrite mobj fields with defaults in write mode (whoops!) --- src/p_saveg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/p_saveg.c b/src/p_saveg.c index 75ddfd8da..03e4131d4 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -1023,7 +1023,8 @@ enum linediff_e #define GETB(b) (diff[b / (8*sizeof(*diff))] & (1 << (b & (8*sizeof(*diff) - 1)))) #define SYNCF(b, v) if (GETB(b)) SYNC(v) #define SYNCFB(b, v) if (GETB(b)) SYNCBOOLEAN(v) -#define SYNCDEF(b, v, d) (GETB(b) ? SYNC(v) : (v = d)) +// if diff includes b, sync v, else if in read mode, set v to d(efault) +#define SYNCDEF(b, v, d) (GETB(b) ? SYNC(v) : !save->write ? (v = d) : (void)0) static boolean P_LineArgsEqual(const line_t *li, const line_t *spawnli) {