X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=831ec9010a5a0a4a9460d471bb8aaf2574b53045;hb=72baf2035efe4643ddafab987670953402ef186a;hp=506def33ce0682ae91f3903b2802715300dcba56;hpb=8e65ad775c169be345f846f9a3cb1be4bddbd4ce;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 506def33..831ec901 100644 --- a/src/game.c +++ b/src/game.c @@ -1840,13 +1840,13 @@ static void InitFieldForEngine_RND(int x, int y) int element = Tile[x][y]; // convert BD engine elements to corresponding R'n'D engine elements - element = (element == EL_BD_EMPTY ? EL_EMPTY : - element == EL_BD_PLAYER ? EL_PLAYER_1 : - element == EL_BD_INBOX ? EL_PLAYER_1 : - element == EL_BD_SAND ? EL_SAND : - element == EL_BD_STEELWALL ? EL_STEELWALL : - element == EL_BD_EXIT_CLOSED ? EL_EXIT_CLOSED : - element == EL_BD_EXIT_OPEN ? EL_EXIT_OPEN : + element = (element == EL_BDX_EMPTY ? EL_EMPTY : + element == EL_BDX_PLAYER ? EL_PLAYER_1 : + element == EL_BDX_INBOX ? EL_PLAYER_1 : + element == EL_BDX_SAND_1 ? EL_SAND : + element == EL_BDX_STEELWALL ? EL_STEELWALL : + element == EL_BDX_EXIT_CLOSED ? EL_EXIT_CLOSED : + element == EL_BDX_EXIT_OPEN ? EL_EXIT_OPEN : element); Tile[x][y] = element; @@ -3676,6 +3676,9 @@ void InitGame(void) else { SetGameStatus(GAME_MODE_PLAYING); + + // do not cover screen before fading out when starting from main menu + game_bd.cover_screen = FALSE; } if (level_editor_test_game) @@ -5168,7 +5171,16 @@ void GameEnd(void) // do not handle game end if game over and automatically asking for game restart if (game_over && setup.ask_on_game_over) + { + // (this is a special case: player pressed "return" key or fire button shortly before + // automatically asking to restart the game, so skip asking and restart right away) + + CloseDoor(DOOR_CLOSE_1); + + StartGameActions(network.enabled, setup.autorecord, level.random_seed); + return; + } // do not handle game end if request dialog is already active if (checkRequestActive()) @@ -15775,10 +15787,10 @@ static int getSoundEffect_BD(int element_bd, int sample) case GD_S_DIAMOND_FALLING_8: nr = (sample == GD_S_DIAMOND_FALLING_RANDOM ? GetSimpleRandom(8) : sample - GD_S_DIAMOND_FALLING_1); - sound_effect = SND_BD_DIAMOND_FALLING_RANDOM_1 + nr; + sound_effect = SND_BDX_DIAMOND_FALLING_RANDOM_1 + nr; if (getSoundInfoEntryFilename(sound_effect) == NULL) - sound_effect = SND_BD_DIAMOND_FALLING; + sound_effect = SND_BDX_DIAMOND_FALLING; break; case GD_S_DIAMOND_IMPACT_RANDOM: @@ -15792,10 +15804,10 @@ static int getSoundEffect_BD(int element_bd, int sample) case GD_S_DIAMOND_IMPACT_8: nr = (sample == GD_S_DIAMOND_IMPACT_RANDOM ? GetSimpleRandom(8) : sample - GD_S_DIAMOND_IMPACT_1); - sound_effect = SND_BD_DIAMOND_IMPACT_RANDOM_1 + nr; + sound_effect = SND_BDX_DIAMOND_IMPACT_RANDOM_1 + nr; if (getSoundInfoEntryFilename(sound_effect) == NULL) - sound_effect = SND_BD_DIAMOND_IMPACT; + sound_effect = SND_BDX_DIAMOND_IMPACT; break; case GD_S_FLYING_DIAMOND_FALLING_RANDOM: @@ -15809,10 +15821,10 @@ static int getSoundEffect_BD(int element_bd, int sample) case GD_S_FLYING_DIAMOND_FALLING_8: nr = (sample == GD_S_FLYING_DIAMOND_FALLING_RANDOM ? GetSimpleRandom(8) : sample - GD_S_FLYING_DIAMOND_FALLING_1); - sound_effect = SND_BD_FLYING_DIAMOND_FALLING_RANDOM_1 + nr; + sound_effect = SND_BDX_FLYING_DIAMOND_FALLING_RANDOM_1 + nr; if (getSoundInfoEntryFilename(sound_effect) == NULL) - sound_effect = SND_BD_FLYING_DIAMOND_FALLING; + sound_effect = SND_BDX_FLYING_DIAMOND_FALLING; break; case GD_S_FLYING_DIAMOND_IMPACT_RANDOM: @@ -15826,10 +15838,10 @@ static int getSoundEffect_BD(int element_bd, int sample) case GD_S_FLYING_DIAMOND_IMPACT_8: nr = (sample == GD_S_FLYING_DIAMOND_IMPACT_RANDOM ? GetSimpleRandom(8) : sample - GD_S_FLYING_DIAMOND_IMPACT_1); - sound_effect = SND_BD_FLYING_DIAMOND_IMPACT_RANDOM_1 + nr; + sound_effect = SND_BDX_FLYING_DIAMOND_IMPACT_RANDOM_1 + nr; if (getSoundInfoEntryFilename(sound_effect) == NULL) - sound_effect = SND_BD_FLYING_DIAMOND_IMPACT; + sound_effect = SND_BDX_FLYING_DIAMOND_IMPACT; break; case GD_S_TIMEOUT_0: @@ -15855,7 +15867,7 @@ static int getSoundEffect_BD(int element_bd, int sample) break; case GD_S_AMOEBA_MAGIC: - sound_effect = SND_BD_AMOEBA_OTHER; + sound_effect = SND_BDX_AMOEBA_1_OTHER; break; case GD_S_FINISHED: