From 6d4eb8774912ce81593e0503df3923d1bc6df699 Mon Sep 17 00:00:00 2001 From: Crystalwarrior Date: Tue, 30 Jun 2020 23:29:51 +0300 Subject: [PATCH] Add explanation comments to the music looping vars Make music not loop by default for backwards compatibility with old style on servers not supporting clientside music looping Make the music loop when the packet containing loop data gives us "1", treating it as "looping=true". --- src/courtroom.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 5080b1d..7a38b94 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -3000,13 +3000,17 @@ void Courtroom::handle_song(QStringList *p_contents) (f_song_clear.lastIndexOf("/") + 1)); int n_char = f_contents.at(1).toInt(); - bool looping = true; + //Assume the song doesn't loop unless told otherwise (due to most outdated servers handling looping through serverside) + bool looping = false; + //Channel 0 is the 'master music', other channels would commonly be used for ambience int channel = 0; + //No effects assumed by default - vanilla functionality int effect_flags = 0; + if (n_char < 0 || n_char >= char_list.size()) { int channel = 0; - if (p_contents->length() > 3 && p_contents->at(3) != "-1") - looping = false; + if (p_contents->length() > 3 && p_contents->at(3) == "1") + looping = true; if (p_contents->length() > 4) // eyyy we want to change this song's CHANNEL huh @@ -3032,10 +3036,8 @@ void Courtroom::handle_song(QStringList *p_contents) str_show = p_contents->at(2); } } - if (p_contents->length() > 3 && p_contents->at(3) != "-1") { - // I am really confused why "-1" is "loop this song" and why anything else - // passes as "don't loop" (if we even have this length) but alright - looping = false; + if (p_contents->length() > 3 && p_contents->at(3) == "1") { + looping = true; } if (p_contents->length() > 4) // eyyy we want to change this song's CHANNEL huh