From cd68c55a18410a926b050a3311e54ad2d63fa320 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Wed, 20 Aug 2025 17:37:08 -0400 Subject: [PATCH] Generate cvar names for addon netids --- src/g_demo.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/g_demo.c b/src/g_demo.c index d90e030c2..f2ea59870 100644 --- a/src/g_demo.c +++ b/src/g_demo.c @@ -208,7 +208,7 @@ typedef struct char *name; // NULL = bad netid char *value; boolean stealth; - UINT16 errornetid; + UINT16 legacynetid; } democvar_t; typedef struct @@ -834,7 +834,7 @@ skipfiles: UINT16 netid = READUINT16(dp); consvar_t *legacycvar = CV_FindLegacyNetVar(netid); header->cvars[i].name = legacycvar ? strdup(legacycvar->name) : NULL; - header->cvars[i].errornetid = netid; + header->cvars[i].legacynetid = netid; } else { @@ -1018,7 +1018,7 @@ void G_LoadDemoCvars(void **p, void (*setvalue)(consvar_t *, const char *, boole { if (header->cvars[i].name == NULL) { - CONS_Alert(CONS_WARNING, "Netvar not found with netid %d\n", header->cvars[i].errornetid); + CONS_Alert(CONS_WARNING, "Netvar not found with netid %d\n", header->cvars[i].legacynetid); continue; } @@ -3431,7 +3431,7 @@ void G_DeferedPlayDemo(const char *name) void G_DoPlayDemo(char *defdemoname) { - UINT16 i; + UINT16 i, j; lumpnum_t l; char *n,*pdemoname; char msg[1024]; @@ -3564,7 +3564,19 @@ void G_DoPlayDemo(char *defdemoname) if (demo.title) // Titledemos should always play and ought to always be compatible with whatever wadlist is running. ;//G_SkipDemoExtraFiles(&demobuf.p); else if (demo.loadfiles) + { G_LoadDemoExtraFiles(&header); + + // Generate cvar names for missing Kart addon netids. + for (j = 0; j < header.numcvars; j++) + { + if (header.cvars[j].name == NULL && header.cvars[j].legacynetid) + { + consvar_t *legacycvar = CV_FindLegacyNetVar(header.cvars[j].legacynetid); + header.cvars[j].name = legacycvar ? strdup(legacycvar->name) : NULL; + } + } + } else if (demo.ignorefiles) ;//G_SkipDemoExtraFiles(&demobuf.p); else switch (G_CheckDemoExtraFiles(&header, false))