rnd-20030730-1-src
authorHolger Schemel <info@artsoft.org>
Wed, 30 Jul 2003 00:30:29 +0000 (02:30 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:42:54 +0000 (10:42 +0200)
Makefile
src/conftime.h
src/editor.c
src/game.c
src/init.c
src/libgame/image.c
src/tools.c

index bdd285b5e775938c501bd4dd53fd57723470f574..0c22aefb3fa9bcb1696e9a9c507b3dde989eaf00 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -49,8 +49,8 @@ CROSS_PATH_WIN32=/usr/local/cross-tools/i386-mingw32msvc
 SRC_DIR = src
 MAKE_CMD = $(MAKE) -C $(SRC_DIR)
 
-DEFAULT_TARGET = x11
-DEFAULT_TARGET = sdl
+DEFAULT_TARGET = x11
+DEFAULT_TARGET = sdl
 
 all:
        @$(MAKE_CMD) TARGET=$(DEFAULT_TARGET)
index 8fc196670b36a0635d61a43aaaa40aeb3f00d25f..34487a738b0db2af4efd2489d1660ce65788ae12 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2003-07-29 00:38]"
+#define COMPILE_DATE_STRING "[2003-07-30 02:23]"
index 77557f6e596a8fad672a43446f3d2c0300d44e48..4806b8423b3db0be7e0fff7d90ffb6761071993a 100644 (file)
@@ -4789,9 +4789,13 @@ static void DrawPropertiesInfo()
   properties[] =
   {
     /* configurable properties */
-    { EP_INDESTRUCTIBLE,       "- undestructible"                      },
-    { EP_SLIPPERY,             "- slippery for falling objects"        },
-    { EP_EM_SLIPPERY_WALL,     "- slippery for some gems (EM style)"   },
+
+    { EP_WALKABLE_OVER,                "- player can walk over it"             },
+    { EP_WALKABLE_INSIDE,      "- player can walk inside it"           },
+    { EP_WALKABLE_UNDER,       "- player can walk under it"            },
+    { EP_PASSABLE_OVER,                "- player can pass over it"             },
+    { EP_PASSABLE_INSIDE,      "- player can pass through it"          },
+    { EP_PASSABLE_UNDER,       "- player can pass under it"            },
 
     { EP_DIGGABLE,             "- diggable"                            },
     { EP_COLLECTIBLE,          "- collectible"                         },
@@ -4799,27 +4803,27 @@ static void DrawPropertiesInfo()
 
     { EP_CAN_MOVE,             "- can move"                            },
     { EP_CAN_FALL,             "- can fall"                            },
-#if 0
-    { EP_CAN_SMASH,            "- can smash"                           },
-#endif
+
     { EP_CAN_SMASH_PLAYER,     "- can smash player"                    },
+#if 0
     { EP_CAN_SMASH_ENEMIES,    "- can smash good and bad guys"         },
+#endif
     { EP_CAN_SMASH_EVERYTHING, "- can smash everything smashable"      },
-    { EP_CAN_EXPLODE,          "- can explode"                         },
-    { EP_CAN_EXPLODE_BY_FIRE,  "  - by fire or explosions"             },
-    { EP_CAN_EXPLODE_SMASHED,  "  - when smashed"                      },
-    { EP_CAN_EXPLODE_IMPACT,   "  - on impact"                         },
+
+    { EP_SLIPPERY,             "- slippery for falling objects"        },
+    { EP_EM_SLIPPERY_WALL,     "- slippery for some gems (EM style)"   },
 
     { EP_DONT_RUN_INTO,                "- deadly when running into"            },
     { EP_DONT_COLLIDE_WITH,    "- deadly when colliding with"          },
     { EP_DONT_TOUCH,           "- deadly when touching"                },
 
-    { EP_WALKABLE_OVER,                "- player can walk over it"             },
-    { EP_WALKABLE_INSIDE,      "- player can walk inside it"           },
-    { EP_WALKABLE_UNDER,       "- player can walk under it"            },
-    { EP_PASSABLE_OVER,                "- player can pass over it"             },
-    { EP_PASSABLE_INSIDE,      "- player can pass through it"          },
-    { EP_PASSABLE_UNDER,       "- player can pass under it"            },
+    { EP_INDESTRUCTIBLE,       "- undestructible"                      },
+
+    { EP_CAN_EXPLODE_BY_FIRE,  "- can explode by fire or explosions"   },
+    { EP_CAN_EXPLODE_SMASHED,  "- can explode when smashed"            },
+    { EP_CAN_EXPLODE_IMPACT,   "- can explode on impact"               },
+
+    { EP_CAN_CHANGE,           "- can change to other element"         },
 
     /* pre-defined properties */
     { EP_CAN_PASS_MAGIC_WALL,  "- can pass magic walls"                },
index 54d678499801233dd497952ba799c00004722253..2c577f2fe3fa8db757c460a06a51b3a8a529fe7f 100644 (file)
@@ -1893,7 +1893,7 @@ void Explode(int ex, int ey, int phase, int mode)
       PlaySoundLevelAction(ex, ey, ACTION_EXPLODING);
 
     /* remove things displayed in background while burning dynamite */
-    if (!IS_INDESTRUCTIBLE(Back[ex][ey]))
+    if (Back[ex][ey] != EL_EMPTY && !IS_INDESTRUCTIBLE(Back[ex][ey]))
       Back[ex][ey] = 0;
 
     if (IS_MOVING(ex, ey) || IS_BLOCKED(ex, ey))
@@ -1927,7 +1927,7 @@ void Explode(int ex, int ey, int phase, int mode)
 
 #if 1
 
-#if 1
+#if 0
       if (IS_EXPLOSION_PROOF(element))
        continue;
 #else
@@ -1958,11 +1958,11 @@ void Explode(int ex, int ey, int phase, int mode)
       }
 
       /* save walkable background elements while explosion on same tile */
-#if 1
+#if 0
       if (IS_INDESTRUCTIBLE(element))
        Back[x][y] = element;
 #else
-      if (IS_INDESTRUCTIBLE(element) && IS_WALKABLE(element))
+      if (IS_WALKABLE(element) && IS_INDESTRUCTIBLE(element))
        Back[x][y] = element;
 #endif
 
@@ -2136,6 +2136,9 @@ void Explode(int ex, int ey, int phase, int mode)
       InitMovDir(x, y);
     DrawLevelField(x, y);
 
+    if (CAN_BE_CRUMBLED(element))
+      DrawLevelFieldCrumbledSandNeighbours(x, y);
+
     if (IS_PLAYER(x, y) && !PLAYERINFO(x,y)->present)
       StorePlayer[x][y] = 0;
   }
@@ -4055,7 +4058,8 @@ void StartMoving(int x, int y)
       TurnRound(x, y);
 
 #if 1
-      DrawLevelElementAnimation(x, y, element);
+      if (GFX_ELEMENT(element) != EL_SAND)
+       DrawLevelElementAnimation(x, y, element);
 #else
       if (element == EL_BUG ||
          element == EL_SPACESHIP ||
index b859112c771a04c6ac5d2a23ab9879d637efb77e..b4ce8d8917ea41515eba64d48d05e5f17048ca1b 100644 (file)
@@ -758,6 +758,12 @@ static void InitGraphicInfo()
     printf("::: image: '%s'\n", image->token);
 #endif
 
+#if 0
+    printf("::: image # %d: '%s' ['%s']\n",
+          i, image->token,
+          getTokenFromImageID(i));
+#endif
+
     set_graphic_parameters(i, image->parameter);
 
     /* now check if no animation frames are outside of the loaded image */
index 3fb28c927f104d25a711708f95e4d6b0781c6072..925147aba8908c58d4f07180eb3f4199d9e8f010 100644 (file)
@@ -718,7 +718,7 @@ static void *Load_PCX(char *filename)
 {
   ImageInfo *img_info;
 
-#if 1
+#if 0
   printf("loading PCX file '%s'\n", filename);
 #endif
 
@@ -800,9 +800,16 @@ Bitmap *getBitmapFromImageID(int pos)
 
 char *getTokenFromImageID(int graphic)
 {
+#if 0
+  /* !!! this does not work for dynamic artwork (crash!) !!! */
   struct FileInfo *file_list = (struct FileInfo *)image_info->file_list;
 
   return file_list[graphic].token;
+#else
+  struct FileInfo *file_list = getImageListEntry(graphic);
+
+  return (file_list != NULL ? file_list->token : NULL);
+#endif
 }
 
 char *getImageConfigFilename()
index e7b996358e77ad7e6e1ab3b91fa42571753c36a1..a20e117759a785dd77bd709c53c3a49b6e998692 100644 (file)
@@ -1200,7 +1200,8 @@ static void DrawLevelFieldCrumbledSandExt(int x, int y, int graphic, int frame)
   if (!IN_LEV_FIELD(x, y))
     return;
 
-  element = (GfxElement[x][y] != EL_UNDEFINED ? GfxElement[x][y] : Feld[x][y]);
+  element = (GfxElement[x][y] != EL_UNDEFINED && Feld[x][y] != EL_EXPLOSION ?
+            GfxElement[x][y] : Feld[x][y]);
 
   /* crumble field itself */
   if (CAN_BE_CRUMBLED(element) && !IS_MOVING(x, y))
@@ -1221,6 +1222,13 @@ static void DrawLevelFieldCrumbledSandExt(int x, int y, int graphic, int frame)
       if (CAN_BE_CRUMBLED(element) && !IS_MOVING(xx, yy))
        continue;
 
+#if 0
+      if (Feld[x][y] == EL_CUSTOM_START + 123)
+       printf("::: crumble [%d] THE CHAOS ENGINE (%d, %d): %d, %d\n",
+              i, Feld[x][y], element,
+              CAN_BE_CRUMBLED(element), IS_MOVING(x, y));
+#endif
+
       if (i == 1 || i == 2)
       {
        width = snip;