+ "player_is_leaving",
+ "-",
+ "-"
+ },
+ {
+ "player_is_exploding_1",
+ "-",
+ "-"
+ },
+ {
+ "player_is_exploding_2",
+ "-",
+ "-"
+ },
+ {
+ "player_is_exploding_3",
+ "-",
+ "-"
+ },
+ {
+ "player_is_exploding_4",
+ "-",
+ "-"
+ },
+ {
+ "quicksand.filling",
+ "quicksand",
+ "-"
+ },
+ {
+ "quicksand_fast.filling",
+ "quicksand",
+ "-"
+ },
+ {
+ "magic_wall.filling",
+ "-",
+ "-"
+ },
+ {
+ "bd_magic_wall.filling",
+ "-",
+ "-"
+ },
+ {
+ "dc_magic_wall.filling",
+ "-",
+ "-"
+ },
+ {
+ "element.snapping",
+ "-",
+ "-"
+ },
+ {
+ "diagonal.shrinking",
+ "-",
+ "-"
+ },
+ {
+ "diagonal.growing",
+ "-",
+ "-"
+ },
+
+ /* ----------------------------------------------------------------------- */
+ /* dummy elements (never used as game elements, only used as graphics) */
+ /* ----------------------------------------------------------------------- */
+
+ {
+ "steelwall_topleft",
+ "-",
+ "-"
+ },
+ {
+ "steelwall_topright",
+ "-",
+ "-"
+ },
+ {
+ "steelwall_bottomleft",
+ "-",
+ "-"
+ },
+ {
+ "steelwall_bottomright",
+ "-",
+ "-"
+ },
+ {
+ "steelwall_horizontal",
+ "-",
+ "-"
+ },
+ {
+ "steelwall_vertical",
+ "-",
+ "-"
+ },
+ {
+ "invisible_steelwall_topleft",
+ "-",
+ "-"
+ },
+ {
+ "invisible_steelwall_topright",
+ "-",
+ "-"
+ },
+ {
+ "invisible_steelwall_bottomleft",
+ "-",
+ "-"
+ },
+ {
+ "invisible_steelwall_bottomright",
+ "-",
+ "-"
+ },
+ {
+ "invisible_steelwall_horizontal",
+ "-",
+ "-"
+ },
+ {
+ "invisible_steelwall_vertical",
+ "-",
+ "-"
+ },
+ {
+ "dynabomb",
+ "-",
+ "-"
+ },
+ {
+ "dynabomb.active",
+ "-",
+ "-"
+ },
+ {
+ "dynabomb_player_1",
+ "-",
+ "-"
+ },
+ {
+ "dynabomb_player_2",
+ "-",
+ "-"
+ },
+ {
+ "dynabomb_player_3",
+ "-",
+ "-"
+ },
+ {
+ "dynabomb_player_4",
+ "-",
+ "-"
+ },
+ {
+ "shield_normal.active",
+ "-",
+ "-"
+ },
+ {
+ "shield_deadly.active",
+ "-",
+ "-"
+ },
+ {
+ "amoeba",
+ "amoeba",
+ "-"
+ },
+ {
+ "[default]",
+ "default",
+ "-"
+ },
+ {
+ "[bd_default]",
+ "bd_default",
+ "-"
+ },
+ {
+ "[sp_default]",
+ "sp_default",
+ "-"
+ },
+ {
+ "[sb_default]",
+ "sb_default",
+ "-"
+ },
+ {
+ "internal_clipboard_custom",
+ "internal",
+ "empty custom element"
+ },
+ {
+ "internal_clipboard_change",
+ "internal",
+ "empty change page"
+ },
+ {
+ "internal_clipboard_group",
+ "internal",
+ "empty group element"
+ },
+ {
+ "internal_dummy",
+ "internal",
+ "-"
+ },
+ {
+ "internal_cascade_bd",
+ "internal",
+ "show Boulder Dash elements"
+ },
+ {
+ "internal_cascade_bd.active",
+ "internal",
+ "hide Boulder Dash elements"
+ },
+ {
+ "internal_cascade_em",
+ "internal",
+ "show Emerald Mine elements"
+ },
+ {
+ "internal_cascade_em.active",
+ "internal",
+ "hide Emerald Mine elements"
+ },
+ {
+ "internal_cascade_emc",
+ "internal",
+ "show Emerald Mine Club elements"
+ },
+ {
+ "internal_cascade_emc.active",
+ "internal",
+ "hide Emerald Mine Club elements"
+ },
+ {
+ "internal_cascade_rnd",
+ "internal",
+ "show Rocks'n'Diamonds elements"
+ },
+ {
+ "internal_cascade_rnd.active",
+ "internal",
+ "hide Rocks'n'Diamonds elements"
+ },
+ {
+ "internal_cascade_sb",
+ "internal",
+ "show Sokoban elements"
+ },
+ {
+ "internal_cascade_sb.active",
+ "internal",
+ "hide Sokoban elements"
+ },
+ {
+ "internal_cascade_sp",
+ "internal",
+ "show Supaplex elements"
+ },
+ {
+ "internal_cascade_sp.active",
+ "internal",
+ "hide Supaplex elements"
+ },
+ {
+ "internal_cascade_dc",
+ "internal",
+ "show Diamond Caves II elements"
+ },
+ {
+ "internal_cascade_dc.active",
+ "internal",
+ "hide Diamond Caves II elements"
+ },
+ {
+ "internal_cascade_dx",
+ "internal",
+ "show DX Boulderdash elements"
+ },
+ {
+ "internal_cascade_dx.active",
+ "internal",
+ "hide DX Boulderdash elements"
+ },
+ {
+ "internal_cascade_chars",
+ "internal",
+ "show text elements"
+ },
+ {
+ "internal_cascade_chars.active",
+ "internal",
+ "hide text elements"
+ },
+ {
+ "internal_cascade_steel_chars",
+ "internal",
+ "show steel text elements"
+ },
+ {
+ "internal_cascade_steel_chars.active",
+ "internal",
+ "hide steel text elements"
+ },
+ {
+ "internal_cascade_ce",
+ "internal",
+ "show custom elements"
+ },
+ {
+ "internal_cascade_ce.active",
+ "internal",
+ "hide custom elements"
+ },
+ {
+ "internal_cascade_ge",
+ "internal",
+ "show group elements"
+ },
+ {
+ "internal_cascade_ge.active",
+ "internal",
+ "hide group elements"
+ },
+ {
+ "internal_cascade_ref",
+ "internal",
+ "show reference elements"
+ },
+ {
+ "internal_cascade_ref.active",
+ "internal",
+ "hide reference elements"
+ },
+ {
+ "internal_cascade_user",
+ "internal",
+ "show user defined elements"
+ },
+ {
+ "internal_cascade_user.active",
+ "internal",
+ "hide user defined elements"
+ },
+ {
+ "internal_cascade_dynamic",
+ "internal",
+ "show elements used in this level"
+ },
+ {
+ "internal_cascade_dynamic.active",
+ "internal",
+ "hide elements used in this level"
+ },
+
+ /* keyword to stop parser: "ELEMENT_INFO_END" <-- do not change! */
+
+ {
+ NULL,
+ NULL,
+ NULL
+ }
+};
+
+
+/* ------------------------------------------------------------------------- */
+/* element action and direction definitions */
+/* ------------------------------------------------------------------------- */
+
+struct ElementActionInfo element_action_info[NUM_ACTIONS + 1 + 1] =
+{
+ { ".[DEFAULT]", ACTION_DEFAULT, TRUE },
+ { ".waiting", ACTION_WAITING, TRUE },
+ { ".falling", ACTION_FALLING, TRUE },
+ { ".moving", ACTION_MOVING, TRUE },
+ { ".digging", ACTION_DIGGING, FALSE },
+ { ".snapping", ACTION_SNAPPING, FALSE },
+ { ".collecting", ACTION_COLLECTING, FALSE },
+ { ".dropping", ACTION_DROPPING, FALSE },
+ { ".pushing", ACTION_PUSHING, FALSE },
+ { ".walking", ACTION_WALKING, FALSE },
+ { ".passing", ACTION_PASSING, FALSE },
+ { ".impact", ACTION_IMPACT, FALSE },
+ { ".breaking", ACTION_BREAKING, FALSE },
+ { ".activating", ACTION_ACTIVATING, FALSE },
+ { ".deactivating", ACTION_DEACTIVATING, FALSE },
+ { ".opening", ACTION_OPENING, FALSE },
+ { ".closing", ACTION_CLOSING, FALSE },
+ { ".attacking", ACTION_ATTACKING, TRUE },
+ { ".growing", ACTION_GROWING, TRUE },
+ { ".shrinking", ACTION_SHRINKING, FALSE },
+ { ".active", ACTION_ACTIVE, TRUE },
+ { ".filling", ACTION_FILLING, FALSE },
+ { ".emptying", ACTION_EMPTYING, FALSE },
+ { ".changing", ACTION_CHANGING, FALSE },
+ { ".exploding", ACTION_EXPLODING, FALSE },
+ { ".boring", ACTION_BORING, FALSE },
+ { ".boring[1]", ACTION_BORING_1, FALSE },
+ { ".boring[2]", ACTION_BORING_2, FALSE },
+ { ".boring[3]", ACTION_BORING_3, FALSE },
+ { ".boring[4]", ACTION_BORING_4, FALSE },
+ { ".boring[5]", ACTION_BORING_5, FALSE },
+ { ".boring[6]", ACTION_BORING_6, FALSE },
+ { ".boring[7]", ACTION_BORING_7, FALSE },
+ { ".boring[8]", ACTION_BORING_8, FALSE },
+ { ".boring[9]", ACTION_BORING_9, FALSE },
+ { ".boring[10]", ACTION_BORING_10, FALSE },
+ { ".sleeping", ACTION_SLEEPING, FALSE },
+ { ".sleeping[1]", ACTION_SLEEPING_1, FALSE },
+ { ".sleeping[2]", ACTION_SLEEPING_2, FALSE },
+ { ".sleeping[3]", ACTION_SLEEPING_3, FALSE },
+ { ".awakening", ACTION_AWAKENING, FALSE },
+ { ".dying", ACTION_DYING, FALSE },
+ { ".turning", ACTION_TURNING, FALSE },
+ { ".turning_from_left", ACTION_TURNING_FROM_LEFT, FALSE },
+ { ".turning_from_right", ACTION_TURNING_FROM_RIGHT, FALSE },
+ { ".turning_from_up", ACTION_TURNING_FROM_UP, FALSE },
+ { ".turning_from_down", ACTION_TURNING_FROM_DOWN, FALSE },
+ { ".smashed_by_rock", ACTION_SMASHED_BY_ROCK, FALSE },
+ { ".smashed_by_spring", ACTION_SMASHED_BY_SPRING, FALSE },
+ { ".eating", ACTION_EATING, FALSE },
+ { ".twinkling", ACTION_TWINKLING, FALSE },
+ { ".splashing", ACTION_SPLASHING, FALSE },
+ { ".page[1]", ACTION_PAGE_1, FALSE },
+ { ".page[2]", ACTION_PAGE_2, FALSE },
+ { ".page[3]", ACTION_PAGE_3, FALSE },
+ { ".page[4]", ACTION_PAGE_4, FALSE },
+ { ".page[5]", ACTION_PAGE_5, FALSE },
+ { ".page[6]", ACTION_PAGE_6, FALSE },
+ { ".page[7]", ACTION_PAGE_7, FALSE },
+ { ".page[8]", ACTION_PAGE_8, FALSE },
+ { ".page[9]", ACTION_PAGE_9, FALSE },
+ { ".page[10]", ACTION_PAGE_10, FALSE },
+ { ".page[11]", ACTION_PAGE_11, FALSE },
+ { ".page[12]", ACTION_PAGE_12, FALSE },
+ { ".page[13]", ACTION_PAGE_13, FALSE },
+ { ".page[14]", ACTION_PAGE_14, FALSE },
+ { ".page[15]", ACTION_PAGE_15, FALSE },
+ { ".page[16]", ACTION_PAGE_16, FALSE },
+ { ".page[17]", ACTION_PAGE_17, FALSE },
+ { ".page[18]", ACTION_PAGE_18, FALSE },
+ { ".page[19]", ACTION_PAGE_19, FALSE },
+ { ".page[20]", ACTION_PAGE_20, FALSE },
+ { ".page[21]", ACTION_PAGE_21, FALSE },
+ { ".page[22]", ACTION_PAGE_22, FALSE },
+ { ".page[23]", ACTION_PAGE_23, FALSE },
+ { ".page[24]", ACTION_PAGE_24, FALSE },
+ { ".page[25]", ACTION_PAGE_25, FALSE },
+ { ".page[26]", ACTION_PAGE_26, FALSE },
+ { ".page[27]", ACTION_PAGE_27, FALSE },
+ { ".page[28]", ACTION_PAGE_28, FALSE },
+ { ".page[29]", ACTION_PAGE_29, FALSE },
+ { ".page[30]", ACTION_PAGE_30, FALSE },
+ { ".page[31]", ACTION_PAGE_31, FALSE },
+ { ".page[32]", ACTION_PAGE_32, FALSE },
+ { ".other", ACTION_OTHER, FALSE },
+
+ /* empty suffix always matches -- check as last entry in InitSoundInfo() */
+ { "", ACTION_DEFAULT, TRUE },
+
+ { NULL, 0, 0 }
+};
+
+struct ElementDirectionInfo element_direction_info[NUM_DIRECTIONS_FULL + 1] =
+{
+ { ".left", MV_BIT_LEFT },
+ { ".right", MV_BIT_RIGHT },
+ { ".up", MV_BIT_UP },
+ { ".down", MV_BIT_DOWN },
+ { ".upleft", MV_BIT_UP },
+ { ".upright", MV_BIT_RIGHT },
+ { ".downleft", MV_BIT_LEFT },
+ { ".downright", MV_BIT_DOWN },
+
+ { NULL, 0 }
+};
+
+struct SpecialSuffixInfo special_suffix_info[NUM_SPECIAL_GFX_ARGS + 1 + 1] =
+{
+ { ".[DEFAULT]", GFX_SPECIAL_ARG_DEFAULT, },
+ { ".TITLE", GFX_SPECIAL_ARG_TITLE, },
+ { ".MESSAGE", GFX_SPECIAL_ARG_MESSAGE, },
+ { ".MAIN", GFX_SPECIAL_ARG_MAIN, },
+ { ".LEVELS", GFX_SPECIAL_ARG_LEVELS },
+ { ".SCORES", GFX_SPECIAL_ARG_SCORES, },
+ { ".EDITOR", GFX_SPECIAL_ARG_EDITOR, },
+ { ".INFO", GFX_SPECIAL_ARG_INFO, },
+ { ".SETUP", GFX_SPECIAL_ARG_SETUP, },
+ { ".PLAYING", GFX_SPECIAL_ARG_PLAYING, },
+ { ".DOOR", GFX_SPECIAL_ARG_DOOR, },
+ { ".PREVIEW", GFX_SPECIAL_ARG_PREVIEW, },
+ { ".CRUMBLED", GFX_SPECIAL_ARG_CRUMBLED, },
+
+ /* empty suffix always matches -- check as last entry in InitMusicInfo() */
+ { "", GFX_SPECIAL_ARG_DEFAULT, },
+
+ { NULL, 0, }
+};
+
+struct TokenIntPtrInfo image_config_vars[] =
+{
+ {
+ "titlemessage_initial_1.x",
+ &titlemessage_initial[0].x
+ },
+ {
+ "titlemessage_initial_1.y",
+ &titlemessage_initial[0].y
+ },
+ {
+ "titlemessage_initial_1.width",
+ &titlemessage_initial[0].width
+ },
+ {
+ "titlemessage_initial_1.height",
+ &titlemessage_initial[0].height
+ },
+ {
+ "titlemessage_initial_1.chars",
+ &titlemessage_initial[0].chars
+ },
+ {
+ "titlemessage_initial_1.lines",
+ &titlemessage_initial[0].lines
+ },
+ {
+ "titlemessage_initial_1.align",
+ &titlemessage_initial[0].align
+ },
+ {
+ "titlemessage_initial_1.font",
+ &titlemessage_initial[0].font
+ },
+ {
+ "titlemessage_initial_1.autowrap",
+ &titlemessage_initial[0].autowrap
+ },
+ {
+ "titlemessage_initial_1.centered",
+ &titlemessage_initial[0].centered
+ },
+ {
+ "titlemessage_initial_1.skip_comments",
+ &titlemessage_initial[0].skip_comments
+ },
+ {
+ "titlemessage_initial_1.sort_priority",
+ &titlemessage_initial[0].sort_priority
+ },
+ {
+ "titlemessage_initial_2.x",
+ &titlemessage_initial[1].x
+ },
+ {
+ "titlemessage_initial_2.y",
+ &titlemessage_initial[1].y
+ },
+ {
+ "titlemessage_initial_2.width",
+ &titlemessage_initial[1].width
+ },
+ {
+ "titlemessage_initial_2.height",
+ &titlemessage_initial[1].height
+ },
+ {
+ "titlemessage_initial_2.chars",
+ &titlemessage_initial[1].chars
+ },
+ {
+ "titlemessage_initial_2.lines",
+ &titlemessage_initial[1].lines
+ },
+ {
+ "titlemessage_initial_2.align",
+ &titlemessage_initial[1].align
+ },
+ {
+ "titlemessage_initial_2.font",
+ &titlemessage_initial[1].font
+ },
+ {
+ "titlemessage_initial_2.autowrap",
+ &titlemessage_initial[1].autowrap
+ },
+ {
+ "titlemessage_initial_2.centered",
+ &titlemessage_initial[1].centered
+ },
+ {
+ "titlemessage_initial_2.skip_comments",
+ &titlemessage_initial[1].skip_comments
+ },
+ {
+ "titlemessage_initial_2.sort_priority",
+ &titlemessage_initial[1].sort_priority
+ },
+ {
+ "titlemessage_initial_3.x",
+ &titlemessage_initial[2].x
+ },
+ {
+ "titlemessage_initial_3.y",
+ &titlemessage_initial[2].y
+ },
+ {
+ "titlemessage_initial_3.width",
+ &titlemessage_initial[2].width
+ },
+ {
+ "titlemessage_initial_3.height",
+ &titlemessage_initial[2].height
+ },
+ {
+ "titlemessage_initial_3.chars",
+ &titlemessage_initial[2].chars
+ },
+ {
+ "titlemessage_initial_3.lines",
+ &titlemessage_initial[2].lines
+ },
+ {
+ "titlemessage_initial_3.align",
+ &titlemessage_initial[2].align
+ },
+ {
+ "titlemessage_initial_3.font",
+ &titlemessage_initial[2].font
+ },
+ {
+ "titlemessage_initial_3.autowrap",
+ &titlemessage_initial[2].autowrap
+ },
+ {
+ "titlemessage_initial_3.centered",
+ &titlemessage_initial[2].centered
+ },
+ {
+ "titlemessage_initial_3.skip_comments",
+ &titlemessage_initial[2].skip_comments
+ },
+ {
+ "titlemessage_initial_3.sort_priority",
+ &titlemessage_initial[2].sort_priority
+ },
+ {
+ "titlemessage_initial_4.x",
+ &titlemessage_initial[3].x
+ },
+ {
+ "titlemessage_initial_4.y",
+ &titlemessage_initial[3].y
+ },
+ {
+ "titlemessage_initial_4.width",
+ &titlemessage_initial[3].width
+ },
+ {
+ "titlemessage_initial_4.height",
+ &titlemessage_initial[3].height
+ },
+ {
+ "titlemessage_initial_4.chars",
+ &titlemessage_initial[3].chars
+ },
+ {
+ "titlemessage_initial_4.lines",
+ &titlemessage_initial[3].lines
+ },
+ {
+ "titlemessage_initial_4.align",
+ &titlemessage_initial[3].align
+ },
+ {
+ "titlemessage_initial_4.font",
+ &titlemessage_initial[3].font
+ },
+ {
+ "titlemessage_initial_4.autowrap",
+ &titlemessage_initial[3].autowrap
+ },
+ {
+ "titlemessage_initial_4.centered",
+ &titlemessage_initial[3].centered
+ },
+ {
+ "titlemessage_initial_4.skip_comments",
+ &titlemessage_initial[3].skip_comments
+ },
+ {
+ "titlemessage_initial_4.sort_priority",
+ &titlemessage_initial[3].sort_priority
+ },
+ {
+ "titlemessage_initial_5.x",
+ &titlemessage_initial[4].x
+ },
+ {
+ "titlemessage_initial_5.y",
+ &titlemessage_initial[4].y
+ },
+ {
+ "titlemessage_initial_5.width",
+ &titlemessage_initial[4].width
+ },
+ {
+ "titlemessage_initial_5.height",
+ &titlemessage_initial[4].height
+ },
+ {
+ "titlemessage_initial_5.chars",
+ &titlemessage_initial[4].chars
+ },
+ {
+ "titlemessage_initial_5.lines",
+ &titlemessage_initial[4].lines
+ },
+ {
+ "titlemessage_initial_5.align",
+ &titlemessage_initial[4].align
+ },
+ {
+ "titlemessage_initial_5.font",
+ &titlemessage_initial[4].font
+ },
+ {
+ "titlemessage_initial_5.autowrap",
+ &titlemessage_initial[4].autowrap
+ },
+ {
+ "titlemessage_initial_5.centered",
+ &titlemessage_initial[4].centered
+ },
+ {
+ "titlemessage_initial_5.skip_comments",
+ &titlemessage_initial[4].skip_comments
+ },
+ {
+ "titlemessage_initial_5.sort_priority",
+ &titlemessage_initial[4].sort_priority
+ },
+ {
+ "titlemessage_1.x",
+ &titlemessage[0].x
+ },
+ {
+ "titlemessage_1.y",
+ &titlemessage[0].y
+ },
+ {
+ "titlemessage_1.width",
+ &titlemessage[0].width
+ },
+ {
+ "titlemessage_1.height",
+ &titlemessage[0].height
+ },
+ {
+ "titlemessage_1.chars",
+ &titlemessage[0].chars
+ },
+ {
+ "titlemessage_1.lines",
+ &titlemessage[0].lines
+ },
+ {
+ "titlemessage_1.align",
+ &titlemessage[0].align
+ },
+ {
+ "titlemessage_1.font",
+ &titlemessage[0].font
+ },
+ {
+ "titlemessage_1.autowrap",
+ &titlemessage[0].autowrap
+ },
+ {
+ "titlemessage_1.centered",
+ &titlemessage[0].centered
+ },
+ {
+ "titlemessage_1.skip_comments",
+ &titlemessage[0].skip_comments
+ },
+ {
+ "titlemessage_1.sort_priority",
+ &titlemessage[0].sort_priority
+ },
+ {
+ "titlemessage_2.x",
+ &titlemessage[1].x
+ },
+ {
+ "titlemessage_2.y",
+ &titlemessage[1].y
+ },
+ {
+ "titlemessage_2.width",
+ &titlemessage[1].width
+ },
+ {
+ "titlemessage_2.height",
+ &titlemessage[1].height
+ },
+ {
+ "titlemessage_2.chars",
+ &titlemessage[1].chars
+ },
+ {
+ "titlemessage_2.lines",
+ &titlemessage[1].lines
+ },
+ {
+ "titlemessage_2.align",
+ &titlemessage[1].align
+ },
+ {
+ "titlemessage_2.font",
+ &titlemessage[1].font