X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=1966bb3c6c03ec01db36464d7fce410a6fbedd9a;hb=ee2ea277015cd6d41e5314bbdc18229bd60ca1de;hp=94372a06d23a2ef8afe11f5c0687760f85d4cf11;hpb=33aea5bc32e267538f3993b27774c636211bca1d;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 94372a06..1966bb3c 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_1 ? 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; @@ -2286,7 +2286,7 @@ static void UpdateGameControlValues(void) int time = (game.LevelSolved ? game.LevelSolved_CountingTime : level.game_engine_type == GAME_ENGINE_TYPE_BD ? - game_bd.time_played : + game_bd.time_left : level.game_engine_type == GAME_ENGINE_TYPE_EM ? game_em.lev->time : level.game_engine_type == GAME_ENGINE_TYPE_SP ? @@ -4862,7 +4862,7 @@ void InitAmoebaNr(int x, int y) static void LevelSolved_SetFinalGameValues(void) { - game.time_final = (level.game_engine_type == GAME_ENGINE_TYPE_BD ? game_bd.time_played : + game.time_final = (level.game_engine_type == GAME_ENGINE_TYPE_BD ? game_bd.time_left : game.no_level_time_limit ? TimePlayed : TimeLeft); game.score_time_final = (level.use_step_counter ? TimePlayed : TimePlayed * FRAMES_PER_SECOND + TimeFrames); @@ -5171,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()) @@ -15778,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_NATIVE_FALLING_RANDOM_1 + nr; + sound_effect = SND_BDX_DIAMOND_FALLING_RANDOM_1 + nr; if (getSoundInfoEntryFilename(sound_effect) == NULL) - sound_effect = SND_BD_DIAMOND_NATIVE_FALLING; + sound_effect = SND_BDX_DIAMOND_FALLING; break; case GD_S_DIAMOND_IMPACT_RANDOM: @@ -15795,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_NATIVE_IMPACT_RANDOM_1 + nr; + sound_effect = SND_BDX_DIAMOND_IMPACT_RANDOM_1 + nr; if (getSoundInfoEntryFilename(sound_effect) == NULL) - sound_effect = SND_BD_DIAMOND_NATIVE_IMPACT; + sound_effect = SND_BDX_DIAMOND_IMPACT; break; case GD_S_FLYING_DIAMOND_FALLING_RANDOM: @@ -15812,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: @@ -15829,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: @@ -15858,7 +15867,7 @@ static int getSoundEffect_BD(int element_bd, int sample) break; case GD_S_AMOEBA_MAGIC: - sound_effect = SND_BD_AMOEBA_1_OTHER; + sound_effect = SND_BDX_AMOEBA_1_OTHER; break; case GD_S_FINISHED: