rnd-20030502-1-src
[rocksndiamonds.git] / src / main.h
index 2c7b84c3f40ff2610736974e80c192bb72c9d639..c92fe607dd11f84072725a93077b7cc05312636f 100644 (file)
@@ -78,7 +78,7 @@
 #define EP_PASSABLE_OVER       14
 #define EP_PASSABLE_INSIDE     15
 #define EP_PASSABLE_UNDER      16
-#define EP_UNUSED_17           17
+#define EP_CHANGEABLE          17
 #define EP_UNUSED_18           18
 #define EP_UNUSED_19           19
 #define EP_UNUSED_20           20
 #define EP_PLAYER              26
 #define EP_CAN_BE_CRUMBLED     27
 #define EP_CAN_MOVE            28
-#define EP_CAN_CHANGE          29
-#define EP_DONT_TOUCH          30
-#define EP_ENEMY               31
-#define EP_DONT_GO_TO          32
-#define EP_EXPLOSIVE           33
-#define EP_BD_ELEMENT          34
-#define EP_SP_ELEMENT          35
-#define EP_SB_ELEMENT          36
-#define EP_GEM                 37
-#define EP_FOOD_DARK_YAMYAM    38
-#define EP_FOOD_PENGUIN                39
-#define EP_HISTORIC_WALL       40
-#define EP_HISTORIC_SOLID      41
-#define EP_BELT                        42
-#define EP_BELT_ACTIVE         43
-#define EP_BELT_SWITCH         44
-#define EP_TUBE                        45
-#define EP_KEYGATE             46
-#define EP_AMOEBOID            47
-#define EP_AMOEBALIVE          48
-#define EP_HAS_CONTENT         49
-#define EP_ACTIVE_BOMB         50
-#define EP_INACTIVE            51
+#define EP_CAN_PASS_MAGIC_WALL 29
+#define EP_SWITCHABLE          30
+#define EP_DONT_TOUCH          31
+#define EP_ENEMY               32
+#define EP_DONT_GO_TO          33
+#define EP_CAN_EXPLODE         34
+#define EP_BD_ELEMENT          35
+#define EP_SP_ELEMENT          36
+#define EP_SB_ELEMENT          37
+#define EP_GEM                 38
+#define EP_FOOD_DARK_YAMYAM    39
+#define EP_FOOD_PENGUIN                40
+#define EP_FOOD_PIG            41
+#define EP_HISTORIC_WALL       42
+#define EP_HISTORIC_SOLID      43
+#define EP_BELT                        44
+#define EP_BELT_ACTIVE         45
+#define EP_BELT_SWITCH         46
+#define EP_TUBE                        47
+#define EP_KEYGATE             48
+#define EP_AMOEBOID            49
+#define EP_AMOEBALIVE          50
+#define EP_HAS_CONTENT         51
+#define EP_ACTIVE_BOMB         52
+#define EP_INACTIVE            53
 
 /* values for derived properties (determined from properties above) */
-#define EP_ACCESSIBLE_OVER     52
-#define EP_ACCESSIBLE_INSIDE   53
-#define EP_ACCESSIBLE_UNDER    54
-#define EP_WALKABLE            55
-#define EP_PASSABLE            56
-#define EP_ACCESSIBLE          57
-#define EP_WALL                        58
-#define EP_SOLID_FOR_PUSHING   59
-#define EP_DRAGONFIRE_PROOF    60
-#define EP_EXPLOSION_PROOF     61
-#define NUM_ELEMENT_PROPERTIES 63
+#define EP_ACCESSIBLE_OVER     54
+#define EP_ACCESSIBLE_INSIDE   55
+#define EP_ACCESSIBLE_UNDER    56
+#define EP_WALKABLE            57
+#define EP_PASSABLE            58
+#define EP_ACCESSIBLE          59
+#define EP_SNAPPABLE           60
+#define EP_WALL                        61
+#define EP_SOLID_FOR_PUSHING   62
+#define EP_DRAGONFIRE_PROOF    63
+#define EP_EXPLOSION_PROOF     64
+
+#define NUM_ELEMENT_PROPERTIES 65
 
 #define NUM_EP_BITFIELDS       ((NUM_ELEMENT_PROPERTIES + 31) / 32)
 #define EP_BITFIELD_BASE       0
 #define IS_PASSABLE_INSIDE(e)  HAS_PROPERTY(e, EP_PASSABLE_INSIDE)
 #define IS_PASSABLE_UNDER(e)   HAS_PROPERTY(e, EP_PASSABLE_UNDER)
 #define IS_PUSHABLE(e)         HAS_PROPERTY(e, EP_PUSHABLE)
+#define IS_CHANGEABLE(e)       HAS_PROPERTY(e, EP_CHANGEABLE)
 
 /* macros for special configurable properties */
 #define IS_EM_SLIPPERY_WALL(e) HAS_PROPERTY(e, EP_EM_SLIPPERY_WALL)
 #define ELEM_IS_PLAYER(e)      HAS_PROPERTY(e, EP_PLAYER)
 #define CAN_BE_CRUMBLED(e)     HAS_PROPERTY(e, EP_CAN_BE_CRUMBLED)
 #define CAN_MOVE(e)            HAS_PROPERTY(e, EP_CAN_MOVE)
-#define CAN_CHANGE(e)          HAS_PROPERTY(e, EP_CAN_CHANGE)
+#define CAN_PASS_MAGIC_WALL(e) HAS_PROPERTY(e, EP_CAN_PASS_MAGIC_WALL)
+#define IS_SWITCHABLE(e)       HAS_PROPERTY(e, EP_SWITCHABLE)
 #define DONT_TOUCH(e)          HAS_PROPERTY(e, EP_DONT_TOUCH)
 #define IS_ENEMY(e)            HAS_PROPERTY(e, EP_ENEMY)
 #define DONT_GO_TO(e)          HAS_PROPERTY(e, EP_DONT_GO_TO)
-#define IS_EXPLOSIVE(e)                HAS_PROPERTY(e, EP_EXPLOSIVE)
+#define IS_CAN_EXPLODE(e)      HAS_PROPERTY(e, EP_CAN_EXPLODE)
 #define IS_BD_ELEMENT(e)       HAS_PROPERTY(e, EP_BD_ELEMENT)
 #define IS_SP_ELEMENT(e)       HAS_PROPERTY(e, EP_SP_ELEMENT)
 #define IS_SB_ELEMENT(e)       HAS_PROPERTY(e, EP_SB_ELEMENT)
 #define IS_GEM(e)              HAS_PROPERTY(e, EP_GEM)
 #define IS_FOOD_DARK_YAMYAM(e) HAS_PROPERTY(e, EP_FOOD_DARK_YAMYAM)
 #define IS_FOOD_PENGUIN(e)     HAS_PROPERTY(e, EP_FOOD_PENGUIN)
+#define IS_FOOD_PIG(e)         HAS_PROPERTY(e, EP_FOOD_PIG)
 #define IS_HISTORIC_WALL(e)    HAS_PROPERTY(e, EP_HISTORIC_WALL)
 #define IS_HISTORIC_SOLID(e)   HAS_PROPERTY(e, EP_HISTORIC_SOLID)
 #define IS_BELT(e)             HAS_PROPERTY(e, EP_BELT)
 #define IS_ACCESSIBLE_OVER(e)  HAS_PROPERTY(e, EP_ACCESSIBLE_OVER)
 #define IS_ACCESSIBLE_INSIDE(e)        HAS_PROPERTY(e, EP_ACCESSIBLE_INSIDE)
 #define IS_ACCESSIBLE_UNDER(e) HAS_PROPERTY(e, EP_ACCESSIBLE_UNDER)
+#define IS_SNAPPABLE(e)                HAS_PROPERTY(e, EP_SNAPPABLE)
 #define IS_WALKABLE(e)         HAS_PROPERTY(e, EP_WALKABLE)
 #define IS_PASSABLE(e)         HAS_PROPERTY(e, EP_PASSABLE)
 #define IS_ACCESSIBLE(e)       HAS_PROPERTY(e, EP_ACCESSIBLE)