rnd-20030419-1-src
[rocksndiamonds.git] / src / tools.c
index 8582ac846da647c0845d04e6fe45ce27cbfdb786..5bba1c107785e4bfbb5dc8dc1c70e03ca7037f4a 100644 (file)
@@ -575,9 +575,9 @@ void DrawPlayer(struct PlayerInfo *player)
 
   if (player_is_moving)
   {
-    if (Store[last_jx][last_jy] && IS_DRAWABLE(last_element))
+    if (Back[last_jx][last_jy] && IS_DRAWABLE(last_element))
     {
-      DrawLevelElement(last_jx, last_jy, Store[last_jx][last_jy]);
+      DrawLevelElement(last_jx, last_jy, Back[last_jx][last_jy]);
 
       if (last_element == EL_DYNAMITE_ACTIVE ||
          last_element == EL_SP_DISK_RED_ACTIVE)
@@ -615,8 +615,8 @@ void DrawPlayer(struct PlayerInfo *player)
   /* draw things behind the player, if needed                                */
   /* ----------------------------------------------------------------------- */
 
-  if (Store[jx][jy])
-    DrawLevelElement(jx, jy, Store[jx][jy]);
+  if (Back[jx][jy])
+    DrawLevelElement(jx, jy, Back[jx][jy]);
   else if (IS_ACTIVE_BOMB(element))
     DrawLevelElement(jx, jy, EL_EMPTY);
   else
@@ -745,16 +745,20 @@ void DrawPlayer(struct PlayerInfo *player)
   }
 
   /* ----------------------------------------------------------------------- */
-  /* draw elements that stay over the player                                 */
+  /* draw elements the player is just walking/passing through/under          */
   /* ----------------------------------------------------------------------- */
 
   /* handle the field the player is leaving ... */
-  if (player_is_moving && IS_OVER_PLAYER(last_element))
+  if (player_is_moving && IS_ACCESSIBLE_INSIDE(last_element))
     DrawLevelField(last_jx, last_jy);
+  else if (player_is_moving && IS_ACCESSIBLE_UNDER(last_element))
+    DrawLevelFieldThruMask(last_jx, last_jy);
 
   /* ... and the field the player is entering */
-  if (IS_OVER_PLAYER(element))
+  if (IS_ACCESSIBLE_INSIDE(element))
     DrawLevelField(jx, jy);
+  else if (IS_ACCESSIBLE_UNDER(element))
+    DrawLevelFieldThruMask(jx, jy);
 
   if (setup.direct_draw)
   {