music reset modes

This commit is contained in:
Zeno Rogue
2026-08-05 15:08:53 +02:00
parent 23c9f2c31d
commit 50f464ebcc
3 changed files with 31 additions and 0 deletions
+11
View File
@@ -27,6 +27,12 @@ EX int effvolume = 60;
EX bool music_available;
EX int musiclength[MUSIC_MAX];
#if HDR
enum class music_reset_t { always, subland, never };
#endif
EX music_reset_t music_reset;
EX eLand getCurrentLandForMusic() {
eLand id = ((anims::center_music()) && centerover) ? centerover->land : cwt.at->land;
if(isHaunted(id)) id = laHaunted;
@@ -129,6 +135,11 @@ EX void handlemusic() {
}
}
}
if(id != cid && musfname[id] == musfname[cid]) {
if(music_reset == music_reset_t::never) id = cid;
if(music_reset == music_reset_t::subland && get_superland(id) == get_superland(cid))
id = cid;
}
if(cid != id && !musfadeval) {
musicpos[cid] = SDL_GetTicks() - musstart;
musfadeval = musicpos[id] ? 500 : 2000;