fixed bug with reanimating killed player by CE condition
[rocksndiamonds.git] / src / game.c
index f366a36823529583faf4d0e570c77d3080410d4a..d67a91a0b8c743ba46cbb55d245067f314897fa4 100644 (file)
@@ -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];
@@ -4394,12 +4394,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;
@@ -14859,8 +14853,8 @@ 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 = 0;
-  int x = xx - 1 - offset;
-  int y = yy - 1 - offset;
+  int x = xx - offset;
+  int y = yy - offset;
 
   switch (sample)
   {