From: Holger Schemel Date: Sat, 28 Oct 2006 12:24:25 +0000 (+0200) Subject: rnd-20061028-2-src X-Git-Tag: 3.2.3^2~21 X-Git-Url: https://git.artsoft.org/?a=commitdiff_plain;h=b52523883de3d50d00a52319fc224bc43ccb85fb;hp=1264abe158bef8419451c95e6db9a738eeec76f8;p=rocksndiamonds.git 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 --- 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] &&