#define CE_COLLISION 4
#define CE_IMPACT 5
#define CE_SMASHED 6
-#define CE_OTHER_COLLECTING 7
-#define CE_OTHER_TOUCHING 8
-#define CE_OTHER_PRESSING 9
-#define CE_OTHER_PUSHING 10
-#define CE_OTHER_CHANGING 11
-#define CE_OTHER_EXPLODING 12
+#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 13
-#define CE_BY_COLLISION 14
-#define CE_BY_OTHER 15
+#define CE_BY_PLAYER 14
+#define CE_BY_COLLISION 15
+#define CE_BY_OTHER 16
-#define NUM_CHANGE_EVENTS 16
+#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 */
/* ---------- special element property values ---------- */
- boolean use_template; /* use all properties from template file */
-
boolean use_gfx_element;
short gfx_element; /* optional custom graphic element */