X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame.c;h=8c243a4954c3bbec07e28c79afa20bfbbc1cec21;hp=4f7f613787a791e589a81ae3c838ea8920d300f4;hb=04c0f30221267649e3c1098270eda66272fce40e;hpb=11cc6689f6aa7397e1b5165c7fc4147c03fc09c3 diff --git a/src/game.c b/src/game.c index 4f7f6137..8c243a49 100644 --- a/src/game.c +++ b/src/game.c @@ -1785,7 +1785,7 @@ static void InitPlayerField(int x, int y, int element, boolean init_game) 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]; @@ -2991,6 +2991,9 @@ static void InitGameEngine(void) game_em.use_old_explosions = (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 @@ -4394,12 +4397,6 @@ void UpdateEngineValues(int actual_scroll_x, int actual_scroll_y, { // 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_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; @@ -14858,9 +14855,9 @@ static void PlayLevelMusic(void) void PlayLevelSound_EM(int xx, int yy, int element_em, int sample) { int element = (element_em > -1 ? map_element_EM_to_RND_game(element_em) : 0); - int offset = (BorderElement == EL_STEELWALL ? 1 : 0); - int x = xx - 1 - offset; - int y = yy - 1 - offset; + int offset = 0; + int x = xx - offset; + int y = yy - offset; switch (sample) {