Vanilla-Conquer icon indicating copy to clipboard operation
Vanilla-Conquer copied to clipboard

Vanilla RA: Music stops when starting skirmish or multiplayer game

Open tore29 opened this issue 3 years ago • 7 comments
trafficstars

Music stops when starting a skirmish or multiplayer game

Steps to reproduce:

  1. Start a skirmish or multiplayer game
  2. No music is playing

Music should play when starting any game

tore29 avatar Dec 19 '21 20:12 tore29

I can reproduce the other RA save/load music issue that you filed today, but cannot reproduce this one. Here both in TD and RA music starts playing in Skirmish mode automatically.

Using DEV Build: vanilla-conquer-win-gcc-i686-edb8391.zip

Gerwin2k avatar Dec 20 '21 00:12 Gerwin2k

I tested it some more it and it seems that music on multiplayer/skirmish maps only auto-starts with certain map numbers. When I extract map 'Green Acres' SCM01EA and give it number SCM19EA, the music still auto-starts. Give it number SCM20EA or higher: no music. Does anyone know where this logic is hardcoded?

Gerwin2k avatar Jan 02 '22 17:01 Gerwin2k

I found it. The logic that determines the music in skirmish is in line 90 of tiberiandawn\scenario.cpp

The "< 20" there limits the music to map scm19ea and lower. The song that gets chosen is 19 lines below: THEME_AOI = Act On Instinct.

As for any of the multiplayer modes, in tiberiandawn\init.cpp after line 1110 it sets "Options.ScoreVolume = 0;" on purpose for these game modes.

I have no suggestion yet. Just pointing out the cause.

        if (Scenario < 20 && (!Special.IsJurassic || !AreThingiesEnabled)) {
            if (Scenario != 1 || Whom == HOUSE_GOOD) {
                Play_Movie(IntroMovie);
            }
#ifndef REMASTER_BUILD
            if (Scenario > 1 || Whom == HOUSE_BAD) {
                if (briefing) {
                    PreserveVQAScreen = (Scenario == 1);
                    Play_Movie(BriefMovie);
                }
            }
#else
            if (briefing) {
                PreserveVQAScreen = (Scenario == 1);
                Play_Movie(BriefMovie);
            }
#endif
            Play_Movie(ActionMovie, TransitTheme);
            if (TransitTheme == THEME_NONE) {
                Theme.Queue_Song(THEME_AOI);
            }
        } else {
            Play_Movie(BriefMovie);
            Play_Movie(ActionMovie, TransitTheme);

Gerwin2k avatar Jan 05 '22 03:01 Gerwin2k

@tore29 I believe this is partly the result of an OG bug from the 3.xx patches that sets the multiplayer volume to 0 in the options constructor. If you change the line MultiplayerScoreVolume in your redalert.ini to something other than 0 it should be fixed. however it looks like there is an options bug that over writes the changes to redalert.ini on exit if they are changed within the game.

OmniBlade avatar Jan 06 '22 23:01 OmniBlade

Seems I drifted off to VanillaTD without this issue originally being linked to TD, only RA. Should I file that in another ticket, with TD prefix, or can it remain here?

Gerwin2k avatar Jan 07 '22 03:01 Gerwin2k

@Gerwin2k Best make a separate issue since the causes of the two differ, just put this issues number in the new one and they will be linked so its easy to follow the discussion.

OmniBlade avatar Jan 07 '22 09:01 OmniBlade

Hmm this seems to still happen with the latest release (https://github.com/TheAssemblyArmada/Vanilla-Conquer/commit/83c152c43497223da3adad2e52e2221efd9087c4).

I start up skirmish on A Path Beyond and no music, when I check the options menu the music volume is 0. MultiplayerScoreVolume=1 is set in redalert.ini.

tore29 avatar May 19 '23 00:05 tore29