From c5c287ffb0113cea956c23e4991c512e33e55d49 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 18 Oct 2025 22:45:46 -0400 Subject: [PATCH] experiment with sector archival --- src/p_saveg.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/p_saveg.c b/src/p_saveg.c index bac5a8104..0044df4ca 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -1169,17 +1169,20 @@ static void DiffSectors(const sector_t *ss, const sector_t *spawnss, UINT8 diff[ static void SyncSectors(savebuffer_t *save) { - size_t i = 0, j; + size_t i = 0, j = 0; sector_t *sec; UINT8 diff[(SD__MAX>>3) + 1]; - for (;;) + for (i = 0;; i++) { memset(diff, 0, sizeof(diff)); if (save->write) { - if (++i == numsectors) + if (i >= numsectors) + { + WRITEUINT16(save->p, 0xffff); break; + } DiffSectors(§ors[i], &spawnsectors[i], diff); for (j = sizeof(diff)-1; j > 0; j--) @@ -1188,18 +1191,16 @@ static void SyncSectors(savebuffer_t *save) if (diff[0] == 0) continue; - WRITEUINT16(save->p, i); + // WRITEUINT16(save->p, i); } - else - { - i = READUINT16(save->p); - if (i == 0xffff) - break; + i = P_SyncUINT16(save, i); - if (i >= numsectors) - I_Error("Invalid sector number %zu from server (expected end at %zu)", i, numsectors); - } + if (i == 0xffff) + break; + + if (i >= numsectors) + I_Error("Invalid sector number %zu from server (expected end at %zu)", i, numsectors); sec = §ors[i]; j = 0; @@ -1357,9 +1358,6 @@ static void SyncSectors(savebuffer_t *save) } } } - - if (save->write) - WRITEUINT16(save->p, 0xffff); } static void DiffLines(const line_t *li, const line_t *spawnli, UINT8 diff[])