From 3f633e47409a0572854daf0b5c329ad7f9cc4e69 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Mon, 24 May 2004 09:12:29 +0200 Subject: [PATCH] rnd-20040524-1-src * fixed bug with CE change replacing player with same or other player --- ChangeLog | 3 +++ src/conftime.h | 2 +- src/game.c | 19 +++++++++++++------ 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 92099e87..41bf977b 100644 --- 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 diff --git a/src/conftime.h b/src/conftime.h index 853db5b9..90af2d01 100644 --- a/src/conftime.h +++ b/src/conftime.h @@ -1 +1 @@ -#define COMPILE_DATE_STRING "[2004-05-16 14:32]" +#define COMPILE_DATE_STRING "[2004-05-23 22:37]" diff --git a/src/game.c b/src/game.c index 9f6c1616..ea898eba 100644 --- a/src/game.c +++ b/src/game.c @@ -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; -- 2.34.1