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;
// 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())
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:
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:
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:
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:
break;
case GD_S_AMOEBA_MAGIC:
- sound_effect = SND_BD_AMOEBA_OTHER;
+ sound_effect = SND_BDX_AMOEBA_1_OTHER;
break;
case GD_S_FINISHED: