rnd-20060510-1-src
[rocksndiamonds.git] / src / main.h
index 774c97c73a10b1e3d9221549410b4dc8cc914427..4d05cfd3420d1c596bd06cfff169d3bb1d4fd88f 100644 (file)
 #define EP_HAS_ACTION                  87
 #define EP_CAN_CHANGE_OR_HAS_ACTION    88
 
-#define NUM_ELEMENT_PROPERTIES         89
+/* values for internal purpose only (other) */
+#define EP_OBSOLETE                    89
+
+#define NUM_ELEMENT_PROPERTIES         90
 
 #define NUM_EP_BITFIELDS               ((NUM_ELEMENT_PROPERTIES + 31) / 32)
 #define EP_BITFIELD_BASE               0
 
 #define NUM_CHANGE_EVENTS              40
 
+#define NUM_CE_BITFIELDS               ((NUM_CHANGE_EVENTS + 31) / 32)
+
 #define CE_BITMASK_DEFAULT             0
 
+#define EVENT_BITFIELD_NR(e)           (e / 32)
+#define EVENT_BIT(e)                   (1 << ((e) % 32))
+
 #define CH_EVENT_VAR(e,c)              (element_info[e].change->has_event[c])
 #define CH_ANY_EVENT_VAR(e,c)          (element_info[e].has_change_event[c])
 
 #define CAN_CHANGE_OR_HAS_ACTION(e)    \
                                HAS_PROPERTY(e, EP_CAN_CHANGE_OR_HAS_ACTION)
 
+#define IS_OBSOLETE(e)         HAS_PROPERTY(e, EP_OBSOLETE)
+
 /* special macros used in game engine */
 #define IS_CUSTOM_ELEMENT(e)   ((e) >= EL_CUSTOM_START &&              \
                                 (e) <= EL_CUSTOM_END)