From 7db5094577f7a3503e72b45530adf222838cba2c Mon Sep 17 00:00:00 2001 From: toaster Date: Sat, 9 Mar 2024 23:03:41 +0000 Subject: [PATCH] Alt music: Don't destroy cache_muslock data when replacing the music in the mapheader --- src/deh_soc.c | 2 -- src/p_setup.cpp | 13 ++++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/deh_soc.c b/src/deh_soc.c index 8817ad40b..18ea9fe62 100644 --- a/src/deh_soc.c +++ b/src/deh_soc.c @@ -1234,8 +1234,6 @@ void readlevelheader(MYFILE *f, char * name) break; deh_strlcpy(mapheaderinfo[num]->musname[j], tmp, sizeof(mapheaderinfo[num]->musname[j]), va("Level header %d: music", num)); - if (j) - mapheaderinfo[num]->cache_muslock[j - 1] = MAXUNLOCKABLES; j++; } while ((tmp = strtok(NULL,",")) != NULL); diff --git a/src/p_setup.cpp b/src/p_setup.cpp index bb9639f82..3357c18f0 100644 --- a/src/p_setup.cpp +++ b/src/p_setup.cpp @@ -433,6 +433,8 @@ static void P_ClearMapHeaderLighting(mapheader_lighting_t *lighting) */ static void P_ClearSingleMapHeaderInfo(INT16 num) { + int i; + mapheaderinfo[num]->lvlttl[0] = '\0'; mapheaderinfo[num]->menuttl[0] = '\0'; mapheaderinfo[num]->zonttl[0] = '\0'; @@ -441,13 +443,22 @@ static void P_ClearSingleMapHeaderInfo(INT16 num) mapheaderinfo[num]->gravity = DEFAULT_GRAVITY; mapheaderinfo[num]->keywords[0] = '\0'; mapheaderinfo[num]->relevantskin[0] = '\0'; + mapheaderinfo[num]->musname[0][0] = 0; mapheaderinfo[num]->musname_size = 0; + + for (i = 0; i < MAXMUSNAMES-1; i++) + { + mapheaderinfo[num]->cache_muslock[i] = MAXUNLOCKABLES; + } + mapheaderinfo[num]->positionmus[0] = '\0'; mapheaderinfo[num]->associatedmus[0][0] = 0; mapheaderinfo[num]->associatedmus_size = 0; + mapheaderinfo[num]->mustrack = 0; mapheaderinfo[num]->muspos = 0; + mapheaderinfo[num]->weather = PRECIP_NONE; snprintf(mapheaderinfo[num]->skytexture, 5, "SKY1"); mapheaderinfo[num]->skytexture[4] = 0; @@ -494,7 +505,7 @@ static void P_ClearSingleMapHeaderInfo(INT16 num) if (mapheaderinfo[num]->ghostBrief != NULL) { - for (int i = 0; i < mapheaderinfo[num]->ghostCount; i++) + for (i = 0; i < mapheaderinfo[num]->ghostCount; i++) { Z_Free(mapheaderinfo[num]->ghostBrief[i]); }