From 5244648070a54cc18f45fd80741788fbfa0e7fb7 Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Wed, 13 Aug 2025 02:48:23 -0400 Subject: [PATCH 1/2] Store initial skin configuration for split display --- src/g_demo.cpp | 20 ++++++++++++++++---- src/g_demo.h | 2 ++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/g_demo.cpp b/src/g_demo.cpp index 4106c74f6..238c71c3f 100644 --- a/src/g_demo.cpp +++ b/src/g_demo.cpp @@ -2251,9 +2251,9 @@ void G_SetDemoCheckpointTiming(player_t *player, tic_t time, UINT8 checkpoint) if (lowest > g->splits[checkpoint]) { lowest = g->splits[checkpoint]; - lowestskin = ((skin_t*)g->mo->skin)->skinnum; - lowestcolor = g->mo->color; - + lowestskin = g->initialskin; + lowestcolor = g->initialcolor; + CONS_Printf("Found ghost with lowestskin %d lowestcolor %d\n", lowestskin, lowestcolor); } } @@ -3389,6 +3389,8 @@ void G_AddGhost(savebuffer_t *buffer, const char *defdemoname) UINT8 *p; mapthing_t *mthing; UINT16 count, ghostversion; + UINT16 initialskin = 0; + UINT16 initialcolor = 0; skin_t *ghskin = skins[0]; UINT8 worknumskins; UINT32 num_classes; @@ -3538,7 +3540,11 @@ void G_AddGhost(savebuffer_t *buffer, const char *defdemoname) // Skin i = READUINT8(p); if (i < worknumskins) + { ghskin = skins[skinlist[i].mapping]; + initialskin = skinlist[i].mapping; + } + p++; // lastfakeskin p++; // team @@ -3630,15 +3636,21 @@ void G_AddGhost(savebuffer_t *buffer, const char *defdemoname) gh->mo->skin = gh->oldmo.skin = ghskin; // Set color - gh->mo->color = ((skin_t*)gh->mo->skin)->prefcolor; + gh->mo->color = initialcolor = ((skin_t*)gh->mo->skin)->prefcolor; for (i = 0; i < numskincolors; i++) if (!stricmp(skincolors[i].name,color)) { gh->mo->color = (UINT16)i; + initialcolor = (UINT16)i; break; } gh->oldmo.color = gh->mo->color; + gh->initialskin = initialskin; + gh->initialcolor = initialcolor; + + CONS_Printf("Adding ghost with initialskin %d initialcolor %d\n", gh->initialskin, gh->initialcolor); + CONS_Printf(M_GetText("Added ghost %s from %s\n"), name, defdemoname); } diff --git a/src/g_demo.h b/src/g_demo.h index 61a6a17fc..62d5577cb 100644 --- a/src/g_demo.h +++ b/src/g_demo.h @@ -201,6 +201,8 @@ struct DemoBufferSizes struct demoghost { UINT8 checksum[16]; UINT8 *buffer, *p, color; + UINT16 initialskin; + UINT16 initialcolor; UINT8 fadein; UINT16 version; UINT8 numskins; From 662f849a71db6760067ef1c1112e8a4143a811c3 Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Wed, 13 Aug 2025 03:57:23 -0400 Subject: [PATCH 2/2] Remove skin configuration debug prints --- src/g_demo.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/g_demo.cpp b/src/g_demo.cpp index 238c71c3f..1f125a46a 100644 --- a/src/g_demo.cpp +++ b/src/g_demo.cpp @@ -2253,7 +2253,6 @@ void G_SetDemoCheckpointTiming(player_t *player, tic_t time, UINT8 checkpoint) lowest = g->splits[checkpoint]; lowestskin = g->initialskin; lowestcolor = g->initialcolor; - CONS_Printf("Found ghost with lowestskin %d lowestcolor %d\n", lowestskin, lowestcolor); } } @@ -3649,8 +3648,6 @@ void G_AddGhost(savebuffer_t *buffer, const char *defdemoname) gh->initialskin = initialskin; gh->initialcolor = initialcolor; - CONS_Printf("Adding ghost with initialskin %d initialcolor %d\n", gh->initialskin, gh->initialcolor); - CONS_Printf(M_GetText("Added ghost %s from %s\n"), name, defdemoname); }