rnd-20040524-1-src
authorHolger Schemel <info@artsoft.org>
Mon, 24 May 2004 07:12:29 +0000 (09:12 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:47:17 +0000 (10:47 +0200)
* fixed bug with CE change replacing player with same or other player

ChangeLog
src/conftime.h
src/game.c

index 92099e87e0a1bd93bbe482ac71a1827b8940330d..41bf977bce1dbd44fcfc38049d7a1f179a2f74c6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2004-05-23
+       * fixed bug with CE change replacing player with same or other player
+
 2004-05-16
        * fixed bug with opaque font in envelope with background graphic when
          background graphic is not transparent itself
index 853db5b91ea9bc172e06f7f41b071c5384f9a83f..90af2d019ab851414fd1d75ba92f103102abd088 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2004-05-16 14:32]"
+#define COMPILE_DATE_STRING "[2004-05-23 22:37]"
index 9f6c16168ce4d10454ee7424bb10882810611c68..ea898eba5fd8bcd2d6e6d02a2ebfc0abfc000f0f 100644 (file)
@@ -7441,6 +7441,11 @@ static void ChangeElementNowExt(int x, int y, int target_element)
   if (IS_PLAYER(x, y) && !PLAYER_EXPLOSION_PROTECTED(x, y) &&
       IS_ACCESSIBLE(Feld[x][y]) && !IS_ACCESSIBLE(target_element))
   {
+#if 0
+    printf("::: BOOOM! [%d, '%s']\n", target_element,
+          element_info[target_element].token_name);
+#endif
+
     Bang(x, y);
     return;
   }
@@ -7618,6 +7623,7 @@ static boolean ChangeElementNow(int x, int y, int element, int page)
 #endif
 
 #endif
+
       is_walkable     = (is_empty || IS_WALKABLE(e));
       is_diggable     = (is_empty || IS_DIGGABLE(e));
       is_collectible  = (is_empty || IS_COLLECTIBLE(e));
@@ -7625,12 +7631,13 @@ static boolean ChangeElementNow(int x, int y, int element, int page)
       is_removable    = (is_diggable || is_collectible);
 
       can_replace[xx][yy] =
-       ((change->replace_when == CP_WHEN_EMPTY        && is_empty) ||
-        (change->replace_when == CP_WHEN_WALKABLE     && is_walkable) ||
-        (change->replace_when == CP_WHEN_DIGGABLE     && is_diggable) ||
-        (change->replace_when == CP_WHEN_COLLECTIBLE  && is_collectible) ||
-        (change->replace_when == CP_WHEN_REMOVABLE    && is_removable) ||
-        (change->replace_when == CP_WHEN_DESTRUCTIBLE && is_destructible));
+       (((change->replace_when == CP_WHEN_EMPTY        && is_empty) ||
+         (change->replace_when == CP_WHEN_WALKABLE     && is_walkable) ||
+         (change->replace_when == CP_WHEN_DIGGABLE     && is_diggable) ||
+         (change->replace_when == CP_WHEN_COLLECTIBLE  && is_collectible) ||
+         (change->replace_when == CP_WHEN_REMOVABLE    && is_removable) ||
+         (change->replace_when == CP_WHEN_DESTRUCTIBLE && is_destructible)) &&
+        !(IS_PLAYER(ex, ey) && ELEM_IS_PLAYER(content_element)));
 
       if (!can_replace[xx][yy])
        complete_replace = FALSE;