player->jy = player->last_jy = y;
}
- if (!init_game)
+ // always check if player was just killed and should be reanimated
{
int player_nr = GET_PLAYER_NR(element);
struct PlayerInfo *player = &stored_player[player_nr];
case EL_MOLE_RIGHT:
case EL_MOLE_UP:
case EL_MOLE_DOWN:
+ case EL_SPRING_LEFT:
+ case EL_SPRING_RIGHT:
InitMovDir(x, y);
break;
game_em.use_old_explosions =
(game.engine_version < VERSION_IDENT(4,1,4,2));
+ game_em.use_old_android =
+ (game.engine_version < VERSION_IDENT(4,1,4,2));
+
+ game_em.use_wrap_around =
+ (game.engine_version > VERSION_IDENT(4,1,4,1));
+
// --------------------------------------------------------------------------
// set maximal allowed number of custom element changes per game frame
{
// this is used for non-R'n'D game engines to update certain engine values
- if (level.game_engine_type == GAME_ENGINE_TYPE_EM)
- {
- actual_scroll_x = correctLevelPosX_EM(actual_scroll_x);
- actual_scroll_y = correctLevelPosY_EM(actual_scroll_y);
-
- actual_player_x = correctLevelPosX_EM(actual_player_x);
- actual_player_y = correctLevelPosY_EM(actual_player_y);
- }
-
// needed to determine if sounds are played within the visible screen area
scroll_x = actual_scroll_x;
scroll_y = actual_scroll_y;
MovDir[x][y] = direction[2][element - EL_MOLE_LEFT];
break;
+ case EL_SPRING_LEFT:
+ case EL_SPRING_RIGHT:
+ Feld[x][y] = EL_SPRING;
+ MovDir[x][y] = direction[2][element - EL_SPRING_LEFT];
+ break;
+
default:
if (IS_CUSTOM_ELEMENT(element))
{
int x = xx - offset;
int y = yy - offset;
- x = correctLevelPosX_EM(x);
- y = correctLevelPosY_EM(y);
-
switch (sample)
{
case SOUND_blank: