From fe8db18066e978e79b0e83c47ca2285ca43220d5 Mon Sep 17 00:00:00 2001 From: toaster Date: Thu, 30 Mar 2023 23:28:51 +0100 Subject: [PATCH] Store non-looping information in musicdef Preface with a `\` (ie `Lump VOTEEA,\VOTEEB`) to indicate the preference is not to loop. This is for special jingles that have definitive conclusions. --- src/s_sound.c | 8 +++++++- src/s_sound.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/s_sound.c b/src/s_sound.c index 5c92622da..38b95d3f7 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -1613,7 +1613,8 @@ void S_SoundTestPlay(void) S_SoundTestTogglePause(); } - S_ChangeMusicInternal(soundtest.current->name[soundtest.currenttrack], true); + S_ChangeMusicInternal(soundtest.current->name[soundtest.currenttrack], + !soundtest.current->basenoloop[soundtest.currenttrack]); S_ShowMusicCredit(); soundtest.privilegedrequest = false; @@ -1760,6 +1761,11 @@ ReadMusicDefFields do { if (i >= MAXDEFTRACKS) break; + if (value[0] == '\\') + { + def->basenoloop[i] = true; + value++; + } STRBUFCPY(def->name[i], value); strlwr(def->name[i]); def->hash[i] = quickncasehash (def->name[i], 6); diff --git a/src/s_sound.h b/src/s_sound.h index fb711225f..1bb5e2ce3 100644 --- a/src/s_sound.h +++ b/src/s_sound.h @@ -188,6 +188,7 @@ struct musicdef_t { char name[MAXDEFTRACKS][7]; UINT32 hash[MAXDEFTRACKS]; + boolean basenoloop[MAXDEFTRACKS]; UINT8 numtracks; char *title; char *author;