rnd-20040323-1-src
authorHolger Schemel <info@artsoft.org>
Tue, 23 Mar 2004 09:51:47 +0000 (10:51 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:46:34 +0000 (10:46 +0200)
Makefile
src/Makefile
src/conftime.h
src/editor.c
src/game.c
src/init.c
src/main.h

index 1ea92b071143a8f34b3ef39b687194fc893a8a00..481244f71d62f19aa28798e6d2579a159c37ac06 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -50,8 +50,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
 
 
 # -----------------------------------------------------------------------------
index ef1f52af1cd9b8b1be223b2036c4533f0076c8b3..f065f0b92cfb9a87ba2326f7db908e702e14b04a 100644 (file)
@@ -85,8 +85,7 @@ endif
 
 ifeq ($(TARGET),x11)
 SYS_CFLAGS  = -DTARGET_X11 $(X11_INCL)
-# SYS_LDFLAGS = $(X11_LIBS) -lX11
-SYS_LDFLAGS = $(XLIB_PATH)/libX11.a
+SYS_LDFLAGS = $(X11_LIBS) -lX11
 endif
 
 ifeq ($(TARGET),sdl)
index c6bb17a2b2844d9d6cf47941c5662ff24582586f..1280375f3e5f9ca80f3f14d9c48f2239d742885a 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2004-03-22 20:42]"
+#define COMPILE_DATE_STRING "[2004-03-23 06:40]"
index 7852895b4d85797be41f155461ec36116a7c21ae..60e64be0be99ad3d2329448506283e48b7f757d3 100644 (file)
@@ -84,9 +84,9 @@
 #define ED_NUM_CTRL4_BUTTONS   (ED_CTRL4_BUTTONS_HORIZ * ED_CTRL4_BUTTONS_VERT)
 #define ED_NUM_CTRL1_2_BUTTONS (ED_NUM_CTRL1_BUTTONS   + ED_NUM_CTRL2_BUTTONS)
 #define ED_NUM_CTRL1_3_BUTTONS (ED_NUM_CTRL1_2_BUTTONS + ED_NUM_CTRL3_BUTTONS)
-#define ED_NUM_CTRL_BUTTONS    (ED_NUM_CTRL1_BUTTONS + \
-                               ED_NUM_CTRL2_BUTTONS + \
-                               ED_NUM_CTRL3_BUTTONS + \
+#define ED_NUM_CTRL_BUTTONS    (ED_NUM_CTRL1_BUTTONS + \
+                               ED_NUM_CTRL2_BUTTONS +  \
+                               ED_NUM_CTRL3_BUTTONS +  \
                                ED_NUM_CTRL4_BUTTONS)
 
 /* values for the element list */
@@ -96,7 +96,7 @@
 #define ED_ELEMENTLIST_YSIZE           20
 #define ED_ELEMENTLIST_BUTTONS_HORIZ   4
 #define ED_ELEMENTLIST_BUTTONS_VERT    11
-#define ED_NUM_ELEMENTLIST_BUTTONS     (ED_ELEMENTLIST_BUTTONS_HORIZ * \
+#define ED_NUM_ELEMENTLIST_BUTTONS     (ED_ELEMENTLIST_BUTTONS_HORIZ * \
                                         ED_ELEMENTLIST_BUTTONS_VERT)
 
 /* standard distances */
 
 #define ED_GADGET_DISTANCE             2
 #define ED_GADGET_TEXT_DISTANCE                (2 * ED_GADGET_DISTANCE)
-#define ED_DRAWINGAREA_TEXT_DISTANCE   (ED_GADGET_TEXT_DISTANCE + \
+#define ED_DRAWINGAREA_TEXT_DISTANCE   (ED_GADGET_TEXT_DISTANCE +      \
                                         MINI_TILEX / 2)
 
-/* values for the setting windows */
+/* values for the settings windows */
 #define ED_SETTINGS_XSTART             (3 * MINI_TILEX / 2)
 #define ED_SETTINGS_YSTART             (MINI_TILEY * 10)
 
-#define ED_XOFFSET_CHECKBOX            (ED_CHECKBUTTON_XSIZE + \
+#define ED_XOFFSET_CHECKBOX            (ED_CHECKBUTTON_XSIZE +         \
                                         2 * ED_GADGET_DISTANCE)
 
 #define ED_SETTINGS_XOFFSET            ED_XOFFSET_CHECKBOX
 #define ED_SETTINGS_YOFFSET            (3 * MINI_TILEY / 2)
 
-#define ED_SETTINGS_XPOS(n)            (ED_SETTINGS_XSTART + \
+#define ED_SETTINGS_XPOS(n)            (ED_SETTINGS_XSTART +           \
                                         (n) * ED_SETTINGS_XOFFSET)
-#define ED_SETTINGS_YPOS(n)            (ED_SETTINGS_YSTART + \
+#define ED_SETTINGS_YPOS(n)            (ED_SETTINGS_YSTART +           \
                                         (n) * ED_SETTINGS_YOFFSET)
 
 #define ED_SETTINGS1_YPOS              MINI_TILEY
 /* values for counter gadgets */
 #define ED_COUNTER_YSTART              (ED_SETTINGS1_YPOS + 2 * TILEY)
 #define ED_COUNTER_YDISTANCE           (3 * MINI_TILEY)
-#define ED_COUNTER_YPOS(n)             (ED_COUNTER_YSTART + \
+#define ED_COUNTER_YPOS(n)             (ED_COUNTER_YSTART +            \
                                         (n) * ED_COUNTER_YDISTANCE)
-#define ED_COUNTER2_YPOS(n)            (ED_COUNTER_YSTART + \
+#define ED_COUNTER2_YPOS(n)            (ED_COUNTER_YSTART +            \
                                         (n) * ED_COUNTER_YDISTANCE - 2)
 
 /* values for element content drawing areas */
-/* amoeba content */
-#define ED_AREA_AMOEBA_CONTENT_XPOS    ED_SETTINGS_XPOS(0)
-#define ED_AREA_AMOEBA_CONTENT_YPOS    (ED_SETTINGS_YPOS(2) + \
+#define ED_AREA_1X1_SETTINGS_XPOS(n)   (ED_SETTINGS_XPOS(n))
+#define ED_AREA_1X1_SETTINGS_YPOS(n)   (ED_SETTINGS_YPOS(n) +          \
                                         ED_GADGET_DISTANCE)
 
+#define ED_AREA_3X3_SETTINGS_XPOS(n)   (ED_SETTINGS_XPOS(n))
+#define ED_AREA_3X3_SETTINGS_YPOS(n)   (ED_SETTINGS_YPOS(n) +          \
+                                        ED_GADGET_DISTANCE - MINI_TILEY)
+
 /* yamyam content */
-#define ED_AREA_YAMYAM_CONTENT_XPOS(n) (2 * MINI_TILEX + \
+#define ED_AREA_YAMYAM_CONTENT_XPOS(n) (2 * MINI_TILEX +               \
                                         5 * ((n) % 4) * MINI_TILEX)
-#define ED_AREA_YAMYAM_CONTENT_YPOS(n) (17 * MINI_TILEY + \
+#define ED_AREA_YAMYAM_CONTENT_YPOS(n) (17 * MINI_TILEY +              \
                                         6 * ((n) / 4) * MINI_TILEY)
 
-/* custom change target */
-#define ED_AREA_ELEM_CONTENT2_YPOS     (ED_SETTINGS_YPOS(1) + \
-                                        ED_GADGET_DISTANCE)
-/* optional custom graphic */
-#define ED_AREA_ELEM_CONTENT3_YPOS     (ED_SETTINGS_YPOS(1) + \
-                                        ED_GADGET_DISTANCE)
-/* custom element content */
-#define ED_AREA_ELEM_CONTENT4_XPOS     (29 * MINI_TILEX)
-#define ED_AREA_ELEM_CONTENT4_YPOS     (ED_SETTINGS_YPOS(2) + \
-                                        ED_GADGET_DISTANCE - MINI_TILEY)
-/* movement enter/leave element */
-#define ED_AREA_ELEM_CONTENT4a_XPOS    (29 * MINI_TILEX)
-#define ED_AREA_ELEM_CONTENT4a_YPOS    (ED_SETTINGS_YPOS(11) + \
-                                        ED_GADGET_DISTANCE)
-#define ED_AREA_ELEM_CONTENT4b_XPOS    (29 * MINI_TILEX)
-#define ED_AREA_ELEM_CONTENT4b_YPOS    (ED_SETTINGS_YPOS(11) + \
-                                        ED_GADGET_DISTANCE)
-/* custom change trigger element */
-#define ED_AREA_ELEM_CONTENT5_YPOS     (ED_SETTINGS_YPOS(5) + \
-                                        ED_GADGET_DISTANCE)
-/* extended custom change target */
-#define ED_AREA_ELEM_CONTENT6_XPOS     (29 * MINI_TILEX)
-#define ED_AREA_ELEM_CONTENT6_YPOS     (ED_SETTINGS_YPOS(10) + \
-                                        ED_GADGET_DISTANCE - MINI_TILEY)
-/* group element content */
-#define ED_AREA_GROUP_CONTENT_XPOS     ED_SETTINGS_XPOS(0)
-#if 1
-#define ED_AREA_GROUP_CONTENT_YPOS     (ED_SETTINGS_YPOS(4) + \
-                                        ED_GADGET_DISTANCE)
-#else
-#define ED_AREA_GROUP_CONTENT_YPOS     (22 * MINI_TILEY)
-#endif
-
-/* values for random placement background drawing area */
-#define ED_AREA_RANDOM_BACKGROUND_YPOS (31 * MINI_TILEY)
-
 /* values for scrolling gadgets for drawing area */
 #define ED_SCROLLBUTTON_XPOS           24
 #define ED_SCROLLBUTTON_YPOS           0
 #define ED_SCROLL_LEFT_YPOS            (SYSIZE - 2 * ED_SCROLLBUTTON_YSIZE)
 #define ED_SCROLL_RIGHT_XPOS           (SXSIZE - 2 * ED_SCROLLBUTTON_XSIZE)
 #define ED_SCROLL_RIGHT_YPOS           ED_SCROLL_LEFT_YPOS
-#define ED_SCROLL_HORIZONTAL_XPOS (ED_SCROLL_LEFT_XPOS + ED_SCROLLBUTTON_XSIZE)
+#define ED_SCROLL_HORIZONTAL_XPOS      (ED_SCROLL_LEFT_XPOS +          \
+                                        ED_SCROLLBUTTON_XSIZE)
 #define ED_SCROLL_HORIZONTAL_YPOS      ED_SCROLL_LEFT_YPOS
 #define ED_SCROLL_HORIZONTAL_XSIZE     (SXSIZE - 3 * ED_SCROLLBUTTON_XSIZE)
 #define ED_SCROLL_HORIZONTAL_YSIZE     ED_SCROLLBUTTON_YSIZE
 #define ED_SCROLL_VERTICAL_XPOS                ED_SCROLL_UP_XPOS
-#define ED_SCROLL_VERTICAL_YPOS          (ED_SCROLL_UP_YPOS + ED_SCROLLBUTTON_YSIZE)
+#define ED_SCROLL_VERTICAL_YPOS                (ED_SCROLL_UP_YPOS +            \
+                                        ED_SCROLLBUTTON_YSIZE)
 #define ED_SCROLL_VERTICAL_XSIZE       ED_SCROLLBUTTON_XSIZE
 #define ED_SCROLL_VERTICAL_YSIZE       (SYSIZE - 4 * ED_SCROLLBUTTON_YSIZE)
 
 #define ED_SCROLL2_UP_XPOS             85
 #define ED_SCROLL2_UP_YPOS             30
 #define ED_SCROLL2_DOWN_XPOS           ED_SCROLL2_UP_XPOS
-#define ED_SCROLL2_DOWN_YPOS           (ED_SCROLL2_UP_YPOS + \
-                                        ED_ELEMENTLIST_BUTTONS_VERT * \
-                                        ED_ELEMENTLIST_YSIZE - \
+#define ED_SCROLL2_DOWN_YPOS           (ED_SCROLL2_UP_YPOS +           \
+                                        ED_ELEMENTLIST_BUTTONS_VERT *  \
+                                        ED_ELEMENTLIST_YSIZE -         \
                                         ED_SCROLLBUTTON2_YSIZE)
 #define ED_SCROLL2_VERTICAL_XPOS       ED_SCROLL2_UP_XPOS
-#define ED_SCROLL2_VERTICAL_YPOS       (ED_SCROLL2_UP_YPOS + \
+#define ED_SCROLL2_VERTICAL_YPOS       (ED_SCROLL2_UP_YPOS +           \
                                         ED_SCROLLBUTTON2_YSIZE)
 #define ED_SCROLL2_VERTICAL_XSIZE      ED_SCROLLBUTTON2_XSIZE
-#define ED_SCROLL2_VERTICAL_YSIZE      (ED_ELEMENTLIST_BUTTONS_VERT * \
-                                        ED_ELEMENTLIST_YSIZE - \
+#define ED_SCROLL2_VERTICAL_YSIZE      (ED_ELEMENTLIST_BUTTONS_VERT *  \
+                                        ED_ELEMENTLIST_YSIZE -         \
                                         2 * ED_SCROLLBUTTON2_YSIZE)
 
 /* values for checkbutton gadgets */
 #define ED_BUTTON_MINUS_YPOS           ED_BUTTON_COUNT_YPOS
 #define ED_BUTTON_MINUS_XSIZE          ED_BUTTON_COUNT_XSIZE
 #define ED_BUTTON_MINUS_YSIZE          ED_BUTTON_COUNT_YSIZE
-#define ED_BUTTON_PLUS_XPOS            (ED_WIN_COUNT_XPOS + \
+#define ED_BUTTON_PLUS_XPOS            (ED_WIN_COUNT_XPOS +            \
                                         ED_WIN_COUNT_XSIZE + 2)
 #define ED_BUTTON_PLUS_YPOS            ED_BUTTON_COUNT_YPOS
 #define ED_BUTTON_PLUS_XSIZE           ED_BUTTON_COUNT_XSIZE
 #define ED_BUTTON_PLUS_YSIZE           ED_BUTTON_COUNT_YSIZE
 
 #define ED_SELECTBOX_XPOS              ED_WIN_COUNT_XPOS
-#define ED_SELECTBOX_YPOS              (ED_WIN_COUNT_YPOS + \
+#define ED_SELECTBOX_YPOS              (ED_WIN_COUNT_YPOS +            \
                                         2 + ED_WIN_COUNT_YSIZE)
 #define ED_SELECTBOX_XSIZE             ED_WIN_COUNT_XSIZE
 #define ED_SELECTBOX_YSIZE             ED_WIN_COUNT_YSIZE
 #define ED_SELECTBOX_BUTTON_XSIZE      14
 
 #define ED_TEXTBUTTON_XPOS             ED_WIN_COUNT_XPOS
-#define ED_TEXTBUTTON_YPOS             (ED_WIN_COUNT_YPOS + \
+#define ED_TEXTBUTTON_YPOS             (ED_WIN_COUNT_YPOS +            \
                                         4 * (2 + ED_WIN_COUNT_YSIZE))
 #define ED_TEXTBUTTON_INACTIVE_YPOS    ED_TEXTBUTTON_YPOS
 
 #define ED_TEXTBUTTON_TAB_XPOS         ED_WIN_COUNT_XPOS
-#define ED_TEXTBUTTON_TAB_YPOS         (ED_WIN_COUNT_YPOS + \
+#define ED_TEXTBUTTON_TAB_YPOS         (ED_WIN_COUNT_YPOS +            \
                                         2 * (2 + ED_WIN_COUNT_YSIZE))
-#define ED_TEXTBUTTON_TAB_INACTIVE_YPOS        (ED_WIN_COUNT_YPOS + \
+#define ED_TEXTBUTTON_TAB_INACTIVE_YPOS        (ED_WIN_COUNT_YPOS +            \
                                         3 * (2 + ED_WIN_COUNT_YSIZE))
 
 #define ED_TEXTBUTTON_XSIZE            ED_WIN_COUNT_XSIZE
@@ -2241,7 +2210,7 @@ static struct
   /* ---------- amoeba content --------------------------------------------- */
 
   {
-    ED_AREA_AMOEBA_CONTENT_XPOS,       ED_AREA_AMOEBA_CONTENT_YPOS,
+    ED_AREA_1X1_SETTINGS_XPOS(0),      ED_AREA_1X1_SETTINGS_YPOS(2),
     1, 1,
     GADGET_ID_AMOEBA_CONTENT,          GADGET_ID_NONE,
     "content:", NULL,                  NULL
@@ -2250,7 +2219,7 @@ static struct
   /* ---------- custom graphic --------------------------------------------- */
 
   {
-    -1,                                        ED_AREA_ELEM_CONTENT3_YPOS,
+    -1,                                        ED_AREA_1X1_SETTINGS_YPOS(1),
     1, 1,
     GADGET_ID_CUSTOM_GRAPHIC,          GADGET_ID_CUSTOM_USE_GRAPHIC,
     NULL, NULL,                                NULL
@@ -2259,7 +2228,7 @@ static struct
   /* ---------- custom content (when exploding) ---------------------------- */
 
   {
-    ED_AREA_ELEM_CONTENT4_XPOS,                ED_AREA_ELEM_CONTENT4_YPOS,
+    -1,                                        ED_AREA_3X3_SETTINGS_YPOS(2),
     3, 3,
     GADGET_ID_CUSTOM_CONTENT,          GADGET_ID_NONE, /* align three rows */
     "content:", NULL,                  NULL
@@ -2268,13 +2237,13 @@ static struct
   /* ---------- custom enter and leave element (when moving) --------------- */
 
   {
-    ED_SETTINGS_XPOS(1),               ED_AREA_ELEM_CONTENT4a_YPOS,
+    ED_AREA_1X1_SETTINGS_XPOS(1),      ED_AREA_1X1_SETTINGS_YPOS(11),
     1, 1,
     GADGET_ID_CUSTOM_MOVE_ENTER,       GADGET_ID_NONE,
     "can dig:", " ",                   NULL
   },
   {
-    -1,                                        ED_AREA_ELEM_CONTENT4b_YPOS,
+    -1,                                        ED_AREA_1X1_SETTINGS_YPOS(11),
     1, 1,
     GADGET_ID_CUSTOM_MOVE_LEAVE,       GADGET_ID_CUSTOM_MOVE_LEAVE_TYPE,
     NULL, NULL,                                NULL
@@ -2283,7 +2252,7 @@ static struct
   /* ---------- custom change target --------------------------------------- */
 
   {
-    -1,                                        ED_AREA_ELEM_CONTENT2_YPOS,
+    -1,                                        ED_AREA_1X1_SETTINGS_YPOS(1),
     1, 1,
     GADGET_ID_CUSTOM_CHANGE_TARGET,    GADGET_ID_CUSTOM_CAN_CHANGE,
     NULL, "after/when:",               NULL
@@ -2292,7 +2261,7 @@ static struct
   /* ---------- custom change content (extended change target) ------------- */
 
   {
-    ED_AREA_ELEM_CONTENT6_XPOS,                ED_AREA_ELEM_CONTENT6_YPOS,
+    -1,                                        ED_AREA_3X3_SETTINGS_YPOS(10),
     3, 3,
     GADGET_ID_CUSTOM_CHANGE_CONTENT,   GADGET_ID_NONE, /* align three rows */
     NULL, NULL,                                NULL
@@ -2301,7 +2270,7 @@ static struct
   /* ---------- custom change trigger (element causing change) ------------- */
 
   {
-    -1,                                        ED_AREA_ELEM_CONTENT5_YPOS,
+    -1,                                        ED_AREA_1X1_SETTINGS_YPOS(5),
     1, 1,
     GADGET_ID_CUSTOM_CHANGE_TRIGGER,   GADGET_ID_CHANGE_OTHER_ACTION,
     NULL, NULL,                                NULL
@@ -2310,7 +2279,7 @@ static struct
   /* ---------- group element content -------------------------------------- */
 
   {
-    ED_AREA_GROUP_CONTENT_XPOS,                ED_AREA_GROUP_CONTENT_YPOS,
+    ED_AREA_1X1_SETTINGS_XPOS(0),      ED_AREA_1X1_SETTINGS_YPOS(4),
     MAX_ELEMENTS_IN_GROUP, 1,
     GADGET_ID_GROUP_CONTENT,           GADGET_ID_NONE,
     "content:", NULL,                  NULL
@@ -2319,7 +2288,7 @@ static struct
   /* ---------- random background (for random painting) -------------------- */
 
   {
-    -1,                                        ED_AREA_RANDOM_BACKGROUND_YPOS,
+    -1,                                        ED_SETTINGS_YPOS(14),
     1, 1,
     GADGET_ID_RANDOM_BACKGROUND,       GADGET_ID_RANDOM_RESTRICTED,
     NULL, NULL,                                NULL
index 6fc7f7bdc7dbd196ecfd616c94935a282f716466..5d89ddffc1cf606225bbd3ca672c2b65f9576a3f 100644 (file)
@@ -2095,7 +2095,7 @@ void InitMovDir(int x, int y)
              break;
            }
 
-#if 1
+#if 0
            if (MovDir[x][y] == MV_NO_MOVING)   /* no start direction found */
              MovDir[x][y] = 1 << RND(4);       /* => use random direction */
 #endif
@@ -5965,9 +5965,18 @@ void ContinueMoving(int x, int y)
     MovDir[newx][newy] = 0;
   */
 
+#if 0
   if (!CAN_MOVE(element) ||
       (CAN_FALL(element) && direction == MV_DOWN))
     GfxDir[x][y] = MovDir[newx][newy] = 0;
+#else
+  if (!CAN_MOVE(element) ||
+      (CAN_FALL(element) && direction == MV_DOWN &&
+       (element == EL_SPRING ||
+       element_info[element].move_pattern == MV_WHEN_PUSHED ||
+       element_info[element].move_pattern == MV_WHEN_DROPPED)))
+    GfxDir[x][y] = MovDir[newx][newy] = 0;
+#endif
 
 #endif
 #endif
index 92a7019409982120ff7abc2eaf2503ee91ac1121..6917ee0b1aabc04799fb382eff7feb95d0b7cdeb 100644 (file)
@@ -2830,6 +2830,12 @@ void InitElementPropertiesStatic()
     -1
   };
 
+  static int ep_can_turn_each_move[] =
+  {
+    /* !!! do something !!! */
+    -1
+  };
+
   static int ep_active_bomb[] =
   {
     EL_DYNAMITE_ACTIVE,
@@ -3050,6 +3056,7 @@ void InitElementPropertiesStatic()
     { ep_amoeboid,             EP_AMOEBOID             },
     { ep_amoebalive,           EP_AMOEBALIVE           },
     { ep_has_content,          EP_HAS_CONTENT          },
+    { ep_can_turn_each_move,   EP_CAN_TURN_EACH_MOVE   },
     { ep_active_bomb,          EP_ACTIVE_BOMB          },
     { ep_inactive,             EP_INACTIVE             },
 
index 682f9247774e054e111439d9f17556845f1015b1..f2e076fafb4dd0b36e60282c19b76700d7d55ca7 100644 (file)
 #define EP_AMOEBOID            50
 #define EP_AMOEBALIVE          51
 #define EP_HAS_CONTENT         52
-#define EP_ACTIVE_BOMB         53
-#define EP_INACTIVE            54
+#define EP_CAN_TURN_EACH_MOVE  53
+#define EP_ACTIVE_BOMB         54
+#define EP_INACTIVE            55
 
 /* values for special configurable properties (depending on level settings) */
-#define EP_EM_SLIPPERY_WALL    55
+#define EP_EM_SLIPPERY_WALL    56
 
 /* values for special graphics properties (no effect on game engine) */
-#define EP_GFX_CRUMBLED                56
+#define EP_GFX_CRUMBLED                57
 
 /* values for derived properties (determined from properties above) */
-#define EP_ACCESSIBLE_OVER     57
-#define EP_ACCESSIBLE_INSIDE   58
-#define EP_ACCESSIBLE_UNDER    59
-#define EP_WALKABLE            60
-#define EP_PASSABLE            61
-#define EP_ACCESSIBLE          62
-#define EP_COLLECTIBLE         63
-#define EP_SNAPPABLE           64
-#define EP_WALL                        65
-#define EP_SOLID_FOR_PUSHING   66
-#define EP_DRAGONFIRE_PROOF    67
-#define EP_EXPLOSION_PROOF     68
-#define EP_CAN_SMASH           69
-#define EP_CAN_EXPLODE         70
-#define EP_CAN_EXPLODE_3X3     71
-#define EP_SP_PORT             72
-#define EP_CAN_EXPLODE_BY_DRAGONFIRE   73
-#define EP_CAN_EXPLODE_BY_EXPLOSION    74
-#define EP_COULD_MOVE_INTO_ACID                75
-#define EP_MAYBE_DONT_COLLIDE_WITH     76
+#define EP_ACCESSIBLE_OVER     58
+#define EP_ACCESSIBLE_INSIDE   59
+#define EP_ACCESSIBLE_UNDER    60
+#define EP_WALKABLE            61
+#define EP_PASSABLE            62
+#define EP_ACCESSIBLE          63
+#define EP_COLLECTIBLE         64
+#define EP_SNAPPABLE           65
+#define EP_WALL                        66
+#define EP_SOLID_FOR_PUSHING   67
+#define EP_DRAGONFIRE_PROOF    68
+#define EP_EXPLOSION_PROOF     69
+#define EP_CAN_SMASH           70
+#define EP_CAN_EXPLODE         71
+#define EP_CAN_EXPLODE_3X3     72
+#define EP_SP_PORT             73
+#define EP_CAN_EXPLODE_BY_DRAGONFIRE   74
+#define EP_CAN_EXPLODE_BY_EXPLOSION    75
+#define EP_COULD_MOVE_INTO_ACID                76
+#define EP_MAYBE_DONT_COLLIDE_WITH     77
 
 /* values for internal purpose only (level editor) */
-#define EP_EXPLODE_RESULT      77
-#define EP_WALK_TO_OBJECT      78
-#define EP_DEADLY              79
+#define EP_EXPLODE_RESULT      78
+#define EP_WALK_TO_OBJECT      79
+#define EP_DEADLY              80
 
-#define NUM_ELEMENT_PROPERTIES 80
+#define NUM_ELEMENT_PROPERTIES 81
 
 #define NUM_EP_BITFIELDS       ((NUM_ELEMENT_PROPERTIES + 31) / 32)
 #define EP_BITFIELD_BASE       0
 #define IS_AMOEBOID(e)         HAS_PROPERTY(e, EP_AMOEBOID)
 #define IS_AMOEBALIVE(e)       HAS_PROPERTY(e, EP_AMOEBALIVE)
 #define HAS_CONTENT(e)         HAS_PROPERTY(e, EP_HAS_CONTENT)
+#define CAN_TURN_EACH_MOVE(e)  HAS_PROPERTY(e, EP_CAN_TURN_EACH_MOVE)
 #define IS_ACTIVE_BOMB(e)      HAS_PROPERTY(e, EP_ACTIVE_BOMB)
 #define IS_INACTIVE(e)         HAS_PROPERTY(e, EP_INACTIVE)