#define CE_OTHER_GETS_DROPPED 15
/* values for activating change events (also stored in level file!) */
-#define CE_BY_PLAYER 16
-#define CE_BY_COLLISION 17
-#define CE_BY_OTHER 18
+#define CE_BY_PLAYER 16 /* obsolete; map'd to CE_BY_DIRECT_ACTION */
+#define CE_BY_COLLISION 17 /* obsolete; map'd to CE_BY_DIRECT_ACTION */
+#define CE_BY_OTHER_ACTION 18
+#define CE_BY_DIRECT_ACTION 19
-#define NUM_CHANGE_EVENTS 19
+#define NUM_CHANGE_EVENTS 20
#define CE_BITMASK_DEFAULT 0
#define GFX_SPECIAL_ARG_EDITOR 3
#define GFX_SPECIAL_ARG_INFO 4
#define GFX_SPECIAL_ARG_SETUP 5
-#define GFX_SPECIAL_ARG_DOOR 6
-#define GFX_SPECIAL_ARG_PREVIEW 7
-#define GFX_SPECIAL_ARG_CRUMBLED 8
+#define GFX_SPECIAL_ARG_PLAYING 6
+#define GFX_SPECIAL_ARG_DOOR 7
+#define GFX_SPECIAL_ARG_PREVIEW 8
+#define GFX_SPECIAL_ARG_CRUMBLED 9
-#define NUM_SPECIAL_GFX_ARGS 9
+#define NUM_SPECIAL_GFX_ARGS 10
/* values for image configuration suffixes */
#define GAME_MODE_EDITOR 3
#define GAME_MODE_INFO 4
#define GAME_MODE_SETUP 5
-#define GAME_MODE_PSEUDO_DOOR 6
-#define GAME_MODE_PSEUDO_PREVIEW 7
-#define GAME_MODE_PSEUDO_CRUMBLED 8
+#define GAME_MODE_PLAYING 6
+#define GAME_MODE_PSEUDO_DOOR 7
+#define GAME_MODE_PSEUDO_PREVIEW 8
+#define GAME_MODE_PSEUDO_CRUMBLED 9
/* there are no special config file suffixes for these modes */
-#define GAME_MODE_PLAYING 9
#define GAME_MODE_PSEUDO_TYPENAME 10
#define GAME_MODE_QUIT 11
/* ---------- internal values used in level editor ---------- */
- int player_action; /* touched/pressed/pushed by player */
- int collide_action; /* collision/impact/smashed */
- int other_action; /* various change actions */
+ int direct_action; /* change triggered by actions on element */
+ int other_action; /* change triggered by other element actions */
};
struct ElementInfo