From b52523883de3d50d00a52319fc224bc43ccb85fb Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Sat, 28 Oct 2006 14:24:25 +0200 Subject: [PATCH] rnd-20061028-2-src * fixed bug which caused elements with "change when digging " event to change for _every_ digged element, not only those specified in --- ChangeLog | 2 ++ src/conftime.h | 2 +- src/game.c | 12 ++++++++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index bd7464c9..ee351ca0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2006-10-28 * fixed bug when displaying titlescreen with size less than element tile + * fixed bug which caused elements with "change when digging " event + to change for _every_ digged element, not only those specified in 2006-10-24 * fixed bug that allowed making engine snapshots from the level editor diff --git a/src/conftime.h b/src/conftime.h index 15feac76..8deef746 100644 --- a/src/conftime.h +++ b/src/conftime.h @@ -1 +1 @@ -#define COMPILE_DATE_STRING "[2006-10-28 13:41]" +#define COMPILE_DATE_STRING "[2006-10-28 14:24]" diff --git a/src/game.c b/src/game.c index f078ff7c..5cf59431 100644 --- a/src/game.c +++ b/src/game.c @@ -6667,7 +6667,7 @@ void ContinueMoving(int x, int y) if (IS_CUSTOM_ELEMENT(element) && ei->move_enter_element != EL_EMPTY && IS_EQUAL_OR_IN_GROUP(stored_new, ei->move_enter_element)) CheckElementChangeBySide(newx, newy, element, stored_new, CE_DIGGING_X, - MV_DIR_OPPOSITE(direction)); + MV_DIR_OPPOSITE(direction)); } int AmoebeNachbarNr(int ax, int ay) @@ -8644,10 +8644,18 @@ static boolean CheckElementChangeExt(int x, int y, { struct ElementChangeInfo *change = &element_info[element].change_page[p]; + /* check trigger element for all events where the element that is checked + for changing interacts with a directly adjacent element -- this is + different to element changes that affect other elements to change on the + whole playfield (which is handeld by CheckTriggeredElementChangeExt()) */ boolean check_trigger_element = (trigger_event == CE_TOUCHING_X || trigger_event == CE_HITTING_X || - trigger_event == CE_HIT_BY_X); + trigger_event == CE_HIT_BY_X || +#if 1 + /* this one was forgotten until 3.2.3 */ + trigger_event == CE_DIGGING_X); +#endif if (change->can_change_or_has_action && change->has_event[trigger_event] && -- 2.34.1