rnd-20051125-1-src
[rocksndiamonds.git] / src / main.h
index c8aca94af96d16e06271779961fb97522ed3f0f0..fcfbf3203a98d1d3aae243c1d9499244c8873a8d 100644 (file)
 
 /* values for internal purpose only (game engine) */
 #define EP_HAS_ACTION          83
+#define EP_CAN_CHANGE_OR_HAS_ACTION    84
 
-#define NUM_ELEMENT_PROPERTIES 84
+#define NUM_ELEMENT_PROPERTIES 85
 
 #define NUM_EP_BITFIELDS       ((NUM_ELEMENT_PROPERTIES + 31) / 32)
 #define EP_BITFIELD_BASE       0
 #define COULD_MOVE_INTO_ACID(e)        HAS_PROPERTY(e, EP_COULD_MOVE_INTO_ACID)
 #define MAYBE_DONT_COLLIDE_WITH(e) HAS_PROPERTY(e, EP_MAYBE_DONT_COLLIDE_WITH)
 #define HAS_ACTION(e)          HAS_PROPERTY(e, EP_HAS_ACTION)
+#define CAN_CHANGE_OR_HAS_ACTION(e)    \
+                               HAS_PROPERTY(e, EP_CAN_CHANGE_OR_HAS_ACTION)
 
 /* special macros used in game engine */
 #define IS_CUSTOM_ELEMENT(e)   ((e) >= EL_CUSTOM_START &&              \
@@ -1918,7 +1921,7 @@ struct ElementChangeInfo
 
   boolean explode;             /* explode instead of change */
 
-  boolean use_action;          /* execute action on specified condition */
+  boolean has_action;          /* execute action on specified condition */
   int action_type;             /* type of action */
   int action_mode;             /* mode of action */
   int action_arg;              /* parameter of action */
@@ -1934,6 +1937,8 @@ struct ElementChangeInfo
   short actual_trigger_element;        /* element that actually triggered change */
   int actual_trigger_player;   /* player which actually triggered change */
 
+  boolean can_change_or_has_action;    /* can_change | has_action */
+
   /* ---------- internal values used in level editor ---------- */
 
   int direct_action;           /* change triggered by actions on element */