rnd-20030618-1-src
authorHolger Schemel <info@artsoft.org>
Tue, 17 Jun 2003 22:54:33 +0000 (00:54 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:42:12 +0000 (10:42 +0200)
src/conftime.h
src/game.c

index 0a8f5d10316281d713eb56f80bf2e4718cc4735b..c4658ed92cfb1e3e1d9209e22cb268f5fffa990f 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2003-06-17 00:51]"
+#define COMPILE_DATE_STRING "[2003-06-18 00:47]"
index 770f34bc1e5eaf84c754d87bc39243c49b3b183a..3c3f144b751a0b82601d37ec76442a261a1c3717 100644 (file)
@@ -114,6 +114,7 @@ static void CloseAllOpenTimegates(void);
 static void CheckGravityMovement(struct PlayerInfo *);
 static void KillHeroUnlessProtected(int, int);
 
+static void CheckTriggeredElementChange(int, int);
 static void ChangeElementDoIt(int, int, int);
 
 static void PlaySoundLevel(int, int, int);
@@ -2023,6 +2024,8 @@ void Bang(int x, int y)
       Explode(x, y, EX_PHASE_START, EX_NORMAL);
       break;
   }
+
+  CheckTriggeredElementChange(element, CE_OTHER_EXPLODING);
 }
 
 void SplashAcid(int x, int y)
@@ -4848,10 +4851,12 @@ static void ChangeActiveTrap(int x, int y)
     DrawLevelFieldCrumbledSand(x, y);
 }
 
-static void ChangeElementDoIt(int x, int y, int element)
+static void ChangeElementDoIt(int x, int y, int element_new)
 {
+  CheckTriggeredElementChange(Feld[x][y], CE_OTHER_CHANGING);
+
   RemoveField(x, y);
-  Feld[x][y] = element;
+  Feld[x][y] = element_new;
 
   ResetGfxAnimation(x, y);
   ResetRandomAnimationValue(x, y);
@@ -6747,6 +6752,9 @@ int DigField(struct PlayerInfo *player,
 
       DrawLevelField(x + dx, y + dy);
       PlaySoundLevelElementAction(x, y, element, ACTION_PUSHING);
+
+      CheckTriggeredElementChange(element, CE_OTHER_PUSHING);
+
       break;
 
     case EL_GATE_1:
@@ -7032,6 +7040,8 @@ int DigField(struct PlayerInfo *player,
        PlaySoundLevel(x, y, SND_GAME_SOKOBAN_SOLVING);
       }
 
+      CheckTriggeredElementChange(element, CE_OTHER_PUSHING);
+
       break;
 
     case EL_PENGUIN:
@@ -7116,6 +7126,8 @@ int DigField(struct PlayerInfo *player,
        DrawLevelField(x + dx, y + dy);
        PlaySoundLevelElementAction(x, y, element, ACTION_PUSHING);
 
+       CheckTriggeredElementChange(element, CE_OTHER_PUSHING);
+
        break;
       }