#define CE_TOUCHED_BY_PLAYER 1
#define CE_PRESSED_BY_PLAYER 2
#define CE_PUSHED_BY_PLAYER 3
-#define CE_IMPACT 4
-#define CE_SMASHED 5
-#define CE_OTHER_COLLECTING 6
-#define CE_OTHER_PUSHING 7
-#define CE_OTHER_CHANGING 8
-#define CE_OTHER_EXPLODING 9
+#define CE_COLLISION 4
+#define CE_IMPACT 5
+#define CE_SMASHED 6
+#define CE_OTHER_IS_TOUCHING 7
+#define CE_OTHER_IS_CHANGING 8
+#define CE_OTHER_IS_EXPLODING 9
+#define CE_OTHER_GETS_TOUCHED 10
+#define CE_OTHER_GETS_PRESSED 11
+#define CE_OTHER_GETS_PUSHED 12
+#define CE_OTHER_GETS_COLLECTED 13
/* values for internal purpose only (level editor) */
-#define CE_BY_PLAYER 10
-#define CE_IMPACT_SMASHED 11
-#define CE_BY_OTHER 12
+#define CE_BY_PLAYER 14
+#define CE_BY_COLLISION 15
+#define CE_BY_OTHER 16
-#define NUM_CHANGE_EVENTS 13
+#define NUM_CHANGE_EVENTS 17
#define CE_BITMASK_DEFAULT 0
boolean gravity;
boolean em_slippery_gems; /* EM style "gems slip from wall" behaviour */
+ boolean use_custom_template; /* use custom properties from template file */
+
boolean no_level_file;
};
{
unsigned long events; /* bitfield for change events */
+ short target_element; /* target element after change */
+
int delay_fixed; /* added frame delay before changed (fixed) */
int delay_random; /* added frame delay before changed (random) */
int delay_frames; /* either 1 (frames) or 50 (seconds; 50 fps) */
- short trigger; /* custom element triggering change */
-
- short target_element; /* target element after change */
+ short trigger_element; /* custom element triggering change */
int content[3][3]; /* new elements after extended change */
boolean use_content; /* use extended change content */
boolean only_complete; /* only use complete content */
+ boolean use_random_change; /* use random value for setting content */
+ int random; /* random value for setting content */
int power; /* power of extended change */
boolean explode; /* explode instead of change */
/* ---------- special element property values ---------- */
- boolean use_template; /* use all properties from template file */
-
boolean use_gfx_element;
short gfx_element; /* optional custom graphic element */