static void PlayLevelSoundActionIfLoop(int, int, int);
static void StopLevelSoundActionIfLoop(int, int, int);
static void PlayLevelMusic(void);
+static void FadeLevelMusic(void);
static void FadeLevelSoundsAndMusic(void);
static void HandleGameButtons(struct GadgetInfo *);
}
#endif
+static boolean checkKeepPlayingSoundsWhenRestarting(boolean restarting)
+{
+ // keep playing continuous loop sound during covering and uncovering screen for BD engine
+ if (level.game_engine_type == GAME_ENGINE_TYPE_BD &&
+ restarting && game.keep_panel_open_when_restarting)
+ return TRUE;
+
+ return FALSE;
+}
+
static boolean checkCloseGamePanelDoor(boolean restarting)
{
// do not close game panel door if game restart was triggered by CE action
// cover BD screen before closing game panel door
CoverScreen();
- FadeLevelSoundsAndMusic();
+ if (checkKeepPlayingSoundsWhenRestarting(restarting))
+ FadeLevelMusic();
+ else
+ FadeLevelSoundsAndMusic();
if (checkCloseGamePanelDoor(restarting))
CloseDoor(DOOR_CLOSE_1);