rnd-20030418-1-src
authorHolger Schemel <info@artsoft.org>
Fri, 18 Apr 2003 21:03:15 +0000 (23:03 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:41:19 +0000 (10:41 +0200)
src/conftime.h
src/editor.c
src/game.c

index 735034f644ffb94b2c0d9137aa31da06357a189b..5f436e4719bfe03efa2963f20ca8c0136a18f57a 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2003-04-17 19:21]"
+#define COMPILE_DATE_STRING "[2003-04-18 23:00]"
index 41c17e2094af616f8c810b4604a4718277242110..a10ba95f4844805b53069071d99c514440359cf9 100644 (file)
@@ -3772,7 +3772,8 @@ static void DrawPropertiesInfo()
 
 static void DrawPropertiesAdvanced()
 {
-  DrawText(SX + ED_SETTINGS_XPOS, SY + 5 * TILEY, "Coming soon!", FONT_TEXT_1);
+  DrawText(SX + ED_SETTINGS_XPOS, SY + 5 * TILEY,
+          "Under construction! :-)", FONT_TEXT_1);
 }
 
 static void DrawPropertiesWindow()
index bf1000db0c1b794f93bc6a1d3ac744f519bbbddd..1691c6924bc816d43a101c2c0df6b28d87bd058c 100644 (file)
@@ -1525,9 +1525,16 @@ void Explode(int ex, int ey, int phase, int mode)
        RemoveMovingField(x, y);
       }
 
-      if ((IS_INDESTRUCTIBLE(element) && !IS_ACCESSIBLE(element)) ||
+#if 1
+      if ((IS_INDESTRUCTIBLE(element) &&
+          (game.engine_version < VERSION_IDENT(2,2,0) ||
+           (!IS_WALKABLE_OVER(element) && !IS_WALKABLE_UNDER(element)))) ||
          element == EL_FLAMES)
        continue;
+#else
+      if (IS_INDESTRUCTIBLE(element) || element == EL_FLAMES)
+        continue;
+#endif
 
       if (IS_PLAYER(x, y) && SHIELD_ON(PLAYERINFO(x, y)))
       {
@@ -1549,6 +1556,11 @@ void Explode(int ex, int ey, int phase, int mode)
        element = Store[x][y];
 #endif
 
+#if 0
+      if (!IS_INDESTRUCTIBLE(Store[x][y]) != !IS_PFORTE(Store[x][y]))
+       printf("\n::: %d\n", Store[x][y]);
+#endif
+
       if (IS_PLAYER(ex, ey) && !PLAYER_PROTECTED(ex, ey))
       {
        switch(StorePlayer[ex][ey])
@@ -1602,13 +1614,22 @@ void Explode(int ex, int ey, int phase, int mode)
       else if (element == EL_WALL_CRYSTAL)
        Store[x][y] = EL_CRYSTAL;
 #if 1
-      else if (IS_INDESTRUCTIBLE(element))
+      else if (IS_INDESTRUCTIBLE(element) && IS_ACCESSIBLE(element))
+       Store[x][y] = element;
+      else
+       Store[x][y] = EL_EMPTY;
+#else
+
+#if 1
+      else if (IS_PFORTE(element))
        Store[x][y] = element;
       else
        Store[x][y] = EL_EMPTY;
 #else
       else if (!IS_PFORTE(Store[x][y]))
        Store[x][y] = EL_EMPTY;
+#endif
+
 #endif
 
       if (x != ex || y != ey ||
@@ -1700,17 +1721,17 @@ void Explode(int ex, int ey, int phase, int mode)
       DrawLevelFieldCrumbledSand(x, y);
 
 #if 1
-    if (IS_ACCESSIBLE_OVER(Store[x][y]))
+    if (IS_WALKABLE_OVER(Store[x][y]))
     {
       DrawLevelElement(x, y, Store[x][y]);
       DrawGraphicThruMask(SCREENX(x), SCREENY(y), graphic, frame);
     }
-    else if (IS_ACCESSIBLE_UNDER(Store[x][y]))
+    else if (IS_WALKABLE_UNDER(Store[x][y]))
     {
       DrawGraphic(SCREENX(x), SCREENY(y), graphic, frame);
       DrawLevelElementThruMask(x, y, Store[x][y]);
     }
-    else if (!IS_ACCESSIBLE_INSIDE(Store[x][y]))
+    else
       DrawGraphic(SCREENX(x), SCREENY(y), graphic, frame);
 #else
     if (IS_PFORTE(Store[x][y]))
@@ -5633,6 +5654,8 @@ void KillHero(struct PlayerInfo *player)
     return;
 
 #if 1
+  /* remove accessible field at the player's position */
+  Feld[jx][jy] = EL_EMPTY;
 #else
   if (IS_PFORTE(Feld[jx][jy]))
     Feld[jx][jy] = EL_EMPTY;