#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)