X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=ba4c8f9d9ed8a7fe78d01489b9c511907eb882e1;hb=bafa61706833e7bfe942c388471058749c20c79e;hp=34a57f74728c6790ddf24442678b4ece5feb90aa;hpb=f8f691137746b187cca2f997604a2336882b5cd9;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 34a57f74..ba4c8f9d 100644 --- a/src/game.c +++ b/src/game.c @@ -56,6 +56,8 @@ #define USE_DROP_BUGFIX (TRUE * USE_NEW_STUFF * 1) +#define USE_CHANGE_TO_TRIGGERED (TRUE * USE_NEW_STUFF * 1) + /* for DigField() */ #define DF_NO_PUSH 0 @@ -6219,7 +6221,16 @@ void StartMoving(int x, int y) #if 1 Store[newx][newy] = EL_EMPTY; if (IS_EQUAL_OR_IN_GROUP(new_element, MOVE_ENTER_EL(element))) + { +#if USE_CHANGE_TO_TRIGGERED + int move_leave_element = element_info[element].move_leave_element; + + Store[newx][newy] = (move_leave_element == EL_TRIGGER_ELEMENT ? + new_element : move_leave_element); +#else Store[newx][newy] = element_info[element].move_leave_element; +#endif + } #else Store[newx][newy] = EL_EMPTY; if (IS_EQUAL_OR_IN_GROUP(new_element, MOVE_ENTER_EL(element)) || @@ -6629,6 +6640,12 @@ void ContinueMoving(int x, int y) { int move_leave_element = ei->move_leave_element; +#if USE_CHANGE_TO_TRIGGERED + if (ei->move_leave_type == LEAVE_TYPE_LIMITED && + ei->move_leave_element == EL_TRIGGER_ELEMENT) + move_leave_element = stored; +#endif + Feld[x][y] = move_leave_element; #if USE_PREVIOUS_MOVE_DIR