X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.c;h=bfa11abd651c4b346c8f4977443f9a56c7c93fbc;hb=ba702cd338586991ab20176cf5587afbb4d77af7;hp=f09dbd62a22d7c8e4ee033673a64d207bd7f33ff;hpb=c0c5862d9ee59c70412b1c35e558101b109a8ec9;p=rocksndiamonds.git diff --git a/src/main.c b/src/main.c index f09dbd62..bfa11abd 100644 --- a/src/main.c +++ b/src/main.c @@ -1,7 +1,7 @@ /*********************************************************** * Rocks'n'Diamonds -- McDuffin Strikes Back! * *----------------------------------------------------------* -* (c) 1995-2002 Artsoft Entertainment * +* (c) 1995-2006 Artsoft Entertainment * * Holger Schemel * * Detmolder Strasse 189 * * 33604 Bielefeld * @@ -59,6 +59,7 @@ short ChangeEvent[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short WasJustMoving[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short WasJustFalling[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short CheckCollision[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +short CheckImpact[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short AmoebaCnt[MAX_NUM_AMOEBA]; short AmoebaCnt2[MAX_NUM_AMOEBA]; @@ -68,10 +69,6 @@ short ExplodeDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; int RunnerVisit[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; int PlayerVisit[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -#if 0 -unsigned long Properties[MAX_NUM_ELEMENTS][NUM_EP_BITFIELDS]; -#endif - int GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; int GfxRandom[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; int GfxElement[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; @@ -108,6 +105,11 @@ struct TapeInfo tape; struct SetupInfo setup; struct GameInfo game; struct GlobalInfo global; +struct BorderInfo border; +struct TitleInfo title; +struct TitleMessageInfo titlemessage_initial[MAX_NUM_TITLE_MESSAGES]; +struct TitleMessageInfo titlemessage[MAX_NUM_TITLE_MESSAGES]; +struct TitleMessageInfo readme; struct MenuInfo menu; struct DoorInfo door_1, door_2; struct PreviewInfo preview; @@ -217,12 +219,12 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = { "quicksand_empty", "quicksand", - "empty quicksand" + "quicksand (empty)" }, { "quicksand_full", "quicksand", - "quicksand with rock" + "quicksand (with rock)" }, { "amoeba_drop", @@ -1116,17 +1118,17 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = { "char_unused", "char", - "letter ''" + "letter 'button'" }, { "char_unused", "char", - "letter ''" + "letter 'up'" }, { "char_unused", "char", - "letter ''" + "letter 'down'" }, { "expandable_wall_horizontal", @@ -1429,17 +1431,17 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = "wall with crystal" }, { - "door_white", + "dc_gate_white", "gate", - "white door" + "white gate" }, { - "door_white_gray", + "dc_gate_white_gray", "gate", "gray door (opened by white key)" }, { - "key_white", + "dc_key_white", "key", "white key" }, @@ -1605,8 +1607,8 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = }, { "landmine", - "sand", - "land mine" + "landmine", + "land mine (not removable)" }, { "envelope_obsolete", @@ -1625,63 +1627,63 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = }, { "sign_exclamation", - "wall", + "sign", "sign (exclamation)" }, { "sign_radioactivity", - "wall", + "sign", "sign (radio activity)" }, { "sign_stop", - "wall", + "sign", "sign (stop)" }, { "sign_wheelchair", - "wall", + "sign", "sign (wheel chair)" }, { "sign_parking", - "wall", + "sign", "sign (parking)" }, { - "sign_oneway", - "wall", - "sign (one way)" + "sign_no_entry", + "sign", + "sign (no entry)" }, { - "sign_heart", - "wall", - "sign (heart)" + "sign_unused_1", + "sign", + "sign (unused)" }, { - "sign_triangle", - "wall", - "sign (triangle)" + "sign_give_way", + "sign", + "sign (give way)" }, { - "sign_round", - "wall", - "sign (round)" + "sign_entry_forbidden", + "sign", + "sign (entry forbidden)" }, { - "sign_exit", - "wall", - "sign (exit)" + "sign_emergency_exit", + "sign", + "sign (emergency exit)" }, { - "sign_yinyang", - "wall", + "sign_yin_yang", + "sign", "sign (yin yang)" }, { - "sign_other", - "wall", - "sign (other)" + "sign_unused_2", + "sign", + "sign (unused)" }, { "mole.left", @@ -3699,43 +3701,43 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = "growing wall (horizontal, BD style)" }, { - "last_ce_8", - "last_ce", + "prev_ce_8", + "prev_ce", "CE 8 positions earlier in list" }, { - "last_ce_7", - "last_ce", + "prev_ce_7", + "prev_ce", "CE 7 positions earlier in list" }, { - "last_ce_6", - "last_ce", + "prev_ce_6", + "prev_ce", "CE 6 positions earlier in list" }, { - "last_ce_5", - "last_ce", + "prev_ce_5", + "prev_ce", "CE 5 positions earlier in list" }, { - "last_ce_4", - "last_ce", + "prev_ce_4", + "prev_ce", "CE 4 positions earlier in list" }, { - "last_ce_3", - "last_ce", + "prev_ce_3", + "prev_ce", "CE 3 positions earlier in list" }, { - "last_ce_2", - "last_ce", + "prev_ce_2", + "prev_ce", "CE 2 positions earlier in list" }, { - "last_ce_1", - "last_ce", + "prev_ce_1", + "prev_ce", "CE 1 position earlier in list" }, { @@ -3788,923 +3790,2427 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = "any_element", "this element matches any element" }, - - /* ----------------------------------------------------------------------- */ - /* "real" (and therefore drawable) runtime elements */ - /* ----------------------------------------------------------------------- */ - { - "dynabomb_player_1.active", - "dynabomb", - "-" + "steel_char_space", + "steel_char", + "steel letter ' '" }, { - "dynabomb_player_2.active", - "dynabomb", - "-" + "steel_char_exclam", + "steel_char", + "steel letter '!'" }, { - "dynabomb_player_3.active", - "dynabomb", - "-" + "steel_char_quotedbl", + "steel_char", + "steel letter '\"'" }, { - "dynabomb_player_4.active", - "dynabomb", - "-" + "steel_char_numbersign", + "steel_char", + "steel letter '#'" }, { - "sp_disk_red.active", - "dynamite", - "-" + "steel_char_dollar", + "steel_char", + "steel letter '$'" }, { - "switchgate.opening", - "switchgate", - "-" + "steel_char_percent", + "steel_char", + "steel letter '%'" }, { - "switchgate.closing", - "switchgate", - "-" + "steel_char_ampersand", + "steel_char", + "steel letter '&'" }, { - "timegate.opening", - "timegate", - "-" + "steel_char_apostrophe", + "steel_char", + "steel letter '''" }, { - "timegate.closing", - "timegate", - "-" + "steel_char_parenleft", + "steel_char", + "steel letter '('" }, { - "pearl.breaking", - "pearl", - "-" + "steel_char_parenright", + "steel_char", + "steel letter ')'" }, { - "trap.active", - "trap", - "-" + "steel_char_asterisk", + "steel_char", + "steel letter '*'" }, { - "invisible_steelwall.active", - "steelwall", - "-" + "steel_char_plus", + "steel_char", + "steel letter '+'" }, { - "invisible_wall.active", - "wall", - "-" + "steel_char_comma", + "steel_char", + "steel letter ','" }, { - "invisible_sand.active", - "sand", - "-" + "steel_char_minus", + "steel_char", + "steel letter '-'" }, { - "conveyor_belt_1_left.active", - "conveyor_belt", - "-" + "steel_char_period", + "steel_char", + "steel letter '.'" }, { - "conveyor_belt_1_middle.active", - "conveyor_belt", - "-" + "steel_char_slash", + "steel_char", + "steel letter '/'" }, { - "conveyor_belt_1_right.active", - "conveyor_belt", - "-" + "steel_char_0", + "steel_char", + "steel letter '0'" }, { - "conveyor_belt_2_left.active", - "conveyor_belt", - "-" + "steel_char_1", + "steel_char", + "steel letter '1'" }, { - "conveyor_belt_2_middle.active", - "conveyor_belt", - "-" + "steel_char_2", + "steel_char", + "steel letter '2'" }, { - "conveyor_belt_2_right.active", - "conveyor_belt", - "-" + "steel_char_3", + "steel_char", + "steel letter '3'" }, { - "conveyor_belt_3_left.active", - "conveyor_belt", - "-" + "steel_char_4", + "steel_char", + "steel letter '4'" }, { - "conveyor_belt_3_middle.active", - "conveyor_belt", - "-" + "steel_char_5", + "steel_char", + "steel letter '5'" }, { - "conveyor_belt_3_right.active", - "conveyor_belt", - "-" + "steel_char_6", + "steel_char", + "steel letter '6'" }, { - "conveyor_belt_4_left.active", - "conveyor_belt", - "-" + "steel_char_7", + "steel_char", + "steel letter '7'" }, { - "conveyor_belt_4_middle.active", - "conveyor_belt", - "-" + "steel_char_8", + "steel_char", + "steel letter '8'" }, { - "conveyor_belt_4_right.active", - "conveyor_belt", - "-" + "steel_char_9", + "steel_char", + "steel letter '9'" }, { - "exit.opening", - "exit", - "-" + "steel_char_colon", + "steel_char", + "steel letter ':'" }, { - "exit.closing", - "exit", - "-" + "steel_char_semicolon", + "steel_char", + "steel letter ';'" }, { - "sp_exit.opening", - "sp_exit", - "-" + "steel_char_less", + "steel_char", + "steel letter '<'" }, { - "sp_exit.closing", - "sp_exit", - "-" + "steel_char_equal", + "steel_char", + "steel letter '='" }, { - "sp_exit_open", - "sp_exit", - "-" + "steel_char_greater", + "steel_char", + "steel letter '>'" }, { - "sp_terminal.active", - "sp_terminal", - "-" + "steel_char_question", + "steel_char", + "steel letter '?'" }, { - "sp_buggy_base.activating", - "sp_buggy_base", - "-" + "steel_char_at", + "steel_char", + "steel letter '@'" }, { - "sp_buggy_base.active", - "sp_buggy_base", - "-" + "steel_char_a", + "steel_char", + "steel letter 'A'" }, { - "sp_murphy_clone", - "murphy_clone", - "-" + "steel_char_b", + "steel_char", + "steel letter 'B'" }, { - "amoeba.dropping", - "amoeba", - "-" + "steel_char_c", + "steel_char", + "steel letter 'C'" }, { - "quicksand.emptying", - "quicksand", - "-" + "steel_char_d", + "steel_char", + "steel letter 'D'" }, { - "magic_wall.active", - "magic_wall", - "-" + "steel_char_e", + "steel_char", + "steel letter 'E'" }, { - "bd_magic_wall.active", - "magic_wall", - "-" + "steel_char_f", + "steel_char", + "steel letter 'F'" }, { - "magic_wall_full", - "magic_wall", - "-" + "steel_char_g", + "steel_char", + "steel letter 'G'" }, { - "bd_magic_wall_full", - "magic_wall", - "-" + "steel_char_h", + "steel_char", + "steel letter 'H'" }, { - "magic_wall.emptying", - "magic_wall", - "-" + "steel_char_i", + "steel_char", + "steel letter 'I'" }, { - "bd_magic_wall.emptying", - "magic_wall", - "-" + "steel_char_j", + "steel_char", + "steel letter 'J'" }, { - "magic_wall_dead", - "magic_wall", - "-" + "steel_char_k", + "steel_char", + "steel letter 'K'" }, { - "bd_magic_wall_dead", - "magic_wall", - "-" + "steel_char_l", + "steel_char", + "steel letter 'L'" }, - { - "emc_fake_grass.active", - "fake_grass", - "-" + "steel_char_m", + "steel_char", + "steel letter 'M'" }, { - "gate_1_gray.active", - "gate", - "" + "steel_char_n", + "steel_char", + "steel letter 'N'" }, { - "gate_2_gray.active", - "gate", - "" + "steel_char_o", + "steel_char", + "steel letter 'O'" }, { - "gate_3_gray.active", - "gate", - "" + "steel_char_p", + "steel_char", + "steel letter 'P'" }, { - "gate_4_gray.active", - "gate", - "" + "steel_char_q", + "steel_char", + "steel letter 'Q'" }, { - "em_gate_1_gray.active", - "gate", - "" + "steel_char_r", + "steel_char", + "steel letter 'R'" }, { - "em_gate_2_gray.active", - "gate", - "" + "steel_char_s", + "steel_char", + "steel letter 'S'" }, { - "em_gate_3_gray.active", - "gate", - "" + "steel_char_t", + "steel_char", + "steel letter 'T'" }, { - "em_gate_4_gray.active", - "gate", - "" + "steel_char_u", + "steel_char", + "steel letter 'U'" }, { - "emc_gate_5_gray.active", - "gate", - "", + "steel_char_v", + "steel_char", + "steel letter 'V'" }, { - "emc_gate_6_gray.active", - "gate", - "", + "steel_char_w", + "steel_char", + "steel letter 'W'" }, { - "emc_gate_7_gray.active", - "gate", - "", + "steel_char_x", + "steel_char", + "steel letter 'X'" }, { - "emc_gate_8_gray.active", - "gate", - "", + "steel_char_y", + "steel_char", + "steel letter 'Y'" }, { - "emc_dripper.active", - "dripper", - "dripper" + "steel_char_z", + "steel_char", + "steel letter 'Z'" }, { - "emc_spring_bumper.active", - "emc_spring_bumper", - "spring bumper", + "steel_char_bracketleft", + "steel_char", + "steel letter '['" }, - - /* ----------------------------------------------------------------------- */ - /* "unreal" (and therefore not drawable) runtime elements */ - /* ----------------------------------------------------------------------- */ - { - "blocked", - "-", - "-" + "steel_char_backslash", + "steel_char", + "steel letter '\\'" }, { - "explosion", - "-", - "-" + "steel_char_bracketright", + "steel_char", + "steel letter ']'" }, { - "nut.breaking", - "-", - "-" + "steel_char_asciicircum", + "steel_char", + "steel letter '^'" }, { - "diamond.breaking", - "-", - "-" + "steel_char_underscore", + "steel_char", + "steel letter '_'" }, { - "acid_splash_left", - "-", - "-" + "steel_char_copyright", + "steel_char", + "steel letter '©'" }, { - "acid_splash_right", - "-", - "-" + "steel_char_aumlaut", + "steel_char", + "steel letter 'Ä'" }, { - "amoeba.growing", - "-", - "-" + "steel_char_oumlaut", + "steel_char", + "steel letter 'Ö'" }, { - "amoeba.shrinking", - "-", - "-" + "steel_char_uumlaut", + "steel_char", + "steel letter 'Ü'" }, { - "expandable_wall.growing", - "-", - "-" + "steel_char_degree", + "steel_char", + "steel letter '°'" }, { - "flames", - "-", - "-" + "steel_char_trademark", + "steel_char", + "steel letter '®'" }, { - "player_is_leaving", - "-", - "-" + "steel_char_cursor", + "steel_char", + "steel letter ' '" }, { - "player_is_exploding_1", - "-", - "-" + "steel_char_unused", + "steel_char", + "steel letter ''" }, { - "player_is_exploding_2", - "-", - "-" + "steel_char_unused", + "steel_char", + "steel letter ''" }, { - "player_is_exploding_3", - "-", - "-" + "steel_char_unused", + "steel_char", + "steel letter ''" }, { - "player_is_exploding_4", - "-", - "-" + "steel_char_unused", + "steel_char", + "steel letter ''" }, { - "quicksand.filling", - "quicksand", - "-" + "steel_char_unused", + "steel_char", + "steel letter ''" }, { - "magic_wall.filling", - "-", - "-" + "steel_char_unused", + "steel_char", + "steel letter ''" }, { - "bd_magic_wall.filling", - "-", - "-" + "steel_char_unused", + "steel_char", + "steel letter 'button'" }, { - "element.snapping", - "-", - "-" + "steel_char_unused", + "steel_char", + "steel letter 'up'" }, { - "diagonal.shrinking", - "-", - "-" + "steel_char_unused", + "steel_char", + "steel letter 'down'" }, { - "diagonal.growing", - "-", - "-" + "sperms", + "frankie", + "sperms" }, - - /* ----------------------------------------------------------------------- */ - /* dummy elements (never used as game elements, only used as graphics) */ - /* ----------------------------------------------------------------------- */ - { - "steelwall_topleft", - "-", - "-" + "bullet", + "frankie", + "bullet" }, { - "steelwall_topright", - "-", - "-" + "heart", + "frankie", + "heart" }, { - "steelwall_bottomleft", - "-", - "-" + "cross", + "frankie", + "cross" }, { - "steelwall_bottomright", - "-", - "-" + "frankie", + "frankie", + "frankie" }, { - "steelwall_horizontal", - "-", - "-" + "sign_sperms", + "sign", + "sign (sperms)" }, { - "steelwall_vertical", - "-", - "-" + "sign_bullet", + "sign", + "sign (bullet)" }, { - "invisible_steelwall_topleft", - "-", - "-" + "sign_heart", + "sign", + "sign (heart)" }, { - "invisible_steelwall_topright", - "-", - "-" + "sign_cross", + "sign", + "sign (cross)" }, { - "invisible_steelwall_bottomleft", - "-", - "-" + "sign_frankie", + "sign", + "sign (frankie)" }, { - "invisible_steelwall_bottomright", - "-", - "-" + "steel_exit_closed", + "steel_exit", + "closed steel exit" }, { - "invisible_steelwall_horizontal", - "-", - "-" + "steel_exit_open", + "steel_exit", + "open steel exit" }, { - "invisible_steelwall_vertical", - "-", - "-" + "dc_steelwall_1_left", + "steelwall", + "steel wall (left)" }, { - "dynabomb", - "-", - "-" + "dc_steelwall_1_right", + "steelwall", + "steel wall (right)" }, { - "dynabomb.active", - "-", - "-" + "dc_steelwall_1_top", + "steelwall", + "steel wall (top)" }, { - "dynabomb_player_1", - "-", - "-" + "dc_steelwall_1_bottom", + "steelwall", + "steel wall (bottom)" }, { - "dynabomb_player_2", - "-", - "-" + "dc_steelwall_1_horizontal", + "steelwall", + "steel wall (top/bottom)" }, { - "dynabomb_player_3", - "-", - "-" + "dc_steelwall_1_vertical", + "steelwall", + "steel wall (left/right)" }, { - "dynabomb_player_4", - "-", - "-" + "dc_steelwall_1_topleft", + "steelwall", + "steel wall (top/left)" }, { - "shield_normal.active", - "-", - "-" + "dc_steelwall_1_topright", + "steelwall", + "steel wall (top/right)" }, { - "shield_deadly.active", - "-", - "-" + "dc_steelwall_1_bottomleft", + "steelwall", + "steel wall (bottom/left)" }, { - "amoeba", - "amoeba", - "-" + "dc_steelwall_1_bottomright", + "steelwall", + "steel wall (bottom/right)" }, { - "[default]", - "default", - "-" + "dc_steelwall_1_topleft_2", + "steelwall", + "steel wall (top/left corner)" }, { - "[bd_default]", - "bd_default", - "-" + "dc_steelwall_1_topright_2", + "steelwall", + "steel wall (top/right corner)" }, { - "[sp_default]", - "sp_default", - "-" + "dc_steelwall_1_bottomleft_2", + "steelwall", + "steel wall (bottom/left corner)" }, { - "[sb_default]", - "sb_default", - "-" + "dc_steelwall_1_bottomright_2", + "steelwall", + "steel wall (bottom/right corner)" }, { - "internal_clipboard_custom", - "internal", - "empty custom element" + "dc_steelwall_2_left", + "steelwall", + "steel wall (left)" }, { - "internal_clipboard_change", - "internal", - "empty change page" + "dc_steelwall_2_right", + "steelwall", + "steel wall (right)" }, { - "internal_clipboard_group", - "internal", - "empty group element" + "dc_steelwall_2_top", + "steelwall", + "steel wall (top)" }, { - "internal_dummy", - "internal", - "-" + "dc_steelwall_2_bottom", + "steelwall", + "steel wall (bottom)" }, { - "internal_cascade_bd", - "internal", - "show Boulder Dash elements" + "dc_steelwall_2_horizontal", + "steelwall", + "steel wall (horizontal)" }, { - "internal_cascade_bd.active", - "internal", - "hide Boulder Dash elements" + "dc_steelwall_2_vertical", + "steelwall", + "steel wall (vertical)" }, { - "internal_cascade_em", - "internal", - "show Emerald Mine elements" + "dc_steelwall_2_middle", + "steelwall", + "steel wall (middle)" }, { - "internal_cascade_em.active", - "internal", - "hide Emerald Mine elements" + "dc_steelwall_2_single", + "steelwall", + "steel wall (single)" }, { - "internal_cascade_emc", - "internal", - "show Emerald Mine Club elements" + "dc_switchgate_switch_up", + "switchgate_switch", + "switch for switch gate (steel)" }, { - "internal_cascade_emc.active", - "internal", - "hide Emerald Mine Club elements" + "dc_switchgate_switch_down", + "switchgate_switch", + "switch for switch gate (steel)" }, { - "internal_cascade_rnd", - "internal", - "show Rocks'n'Diamonds elements" + "dc_timegate_switch", + "timegate_switch", + "switch for time gate (steel)" }, { - "internal_cascade_rnd.active", - "internal", - "hide Rocks'n'Diamonds elements" + "dc_timegate_switch.active", + "timegate_switch", + "switch for time gate (steel)" }, { - "internal_cascade_sb", - "internal", - "show Sokoban elements" + "dc_landmine", + "dc_landmine", + "land mine (DC style, removable)" }, { - "internal_cascade_sb.active", - "internal", - "hide Sokoban elements" + "expandable_steelwall", + "steelwall", + "growing steel wall" }, { - "internal_cascade_sp", - "internal", - "show Supaplex elements" + "expandable_steelwall_horizontal", + "steelwall", + "growing steel wall (horizontal)" }, { - "internal_cascade_sp.active", - "internal", - "hide Supaplex elements" + "expandable_steelwall_vertical", + "steelwall", + "growing steel wall (vertical)" }, { - "internal_cascade_dc", - "internal", - "show Diamond Caves II elements" + "expandable_steelwall_any", + "steelwall", + "growing steel wall (any direction)" }, { - "internal_cascade_dc.active", - "internal", - "hide Diamond Caves II elements" + "em_exit_closed", + "em_exit", + "closed exit (EM style)" }, { - "internal_cascade_dx", - "internal", - "show DX Boulderdash elements" + "em_exit_open", + "em_exit", + "open exit (EM style)" }, { - "internal_cascade_dx.active", - "internal", - "hide DX Boulderdash elements" + "em_steel_exit_closed", + "em_steel_exit", + "closed steel exit (EM style)" }, { - "internal_cascade_chars", - "internal", - "show text elements" + "em_steel_exit_open", + "em_steel_exit", + "open steel exit (EM style)" }, { - "internal_cascade_chars.active", - "internal", - "hide text elements" + "dc_gate_fake_gray", + "gate", + "gray door (opened by no key)" }, { - "internal_cascade_ce", - "internal", - "show custom elements" + "dc_magic_wall", + "dc_magic_wall", + "magic wall (DC style)" }, { - "internal_cascade_ce.active", - "internal", - "hide custom elements" + "quicksand_fast_empty", + "quicksand", + "fast quicksand (empty)" }, { - "internal_cascade_ge", - "internal", - "show group elements" + "quicksand_fast_full", + "quicksand", + "fast quicksand (with rock)" }, + + /* ----------------------------------------------------------------------- */ + /* "real" (and therefore drawable) runtime elements */ + /* ----------------------------------------------------------------------- */ + { - "internal_cascade_ge.active", - "internal", - "hide group elements" + "dynabomb_player_1.active", + "dynabomb", + "-" }, { - "internal_cascade_ref", - "internal", - "show reference elements" + "dynabomb_player_2.active", + "dynabomb", + "-" }, { - "internal_cascade_ref.active", - "internal", - "hide reference elements" + "dynabomb_player_3.active", + "dynabomb", + "-" }, { - "internal_cascade_user", - "internal", - "show user defined elements" + "dynabomb_player_4.active", + "dynabomb", + "-" }, { - "internal_cascade_user.active", - "internal", - "hide user defined elements" + "sp_disk_red.active", + "dynamite", + "-" }, { - "internal_cascade_dynamic", - "internal", - "show elements used in this level" + "switchgate.opening", + "switchgate", + "-" }, { - "internal_cascade_dynamic.active", - "internal", - "hide elements used in this level" + "switchgate.closing", + "switchgate", + "-" }, + { + "timegate.opening", + "timegate", + "-" + }, + { + "timegate.closing", + "timegate", + "-" + }, + { + "pearl.breaking", + "pearl", + "-" + }, + { + "trap.active", + "trap", + "-" + }, + { + "invisible_steelwall.active", + "steelwall", + "-" + }, + { + "invisible_wall.active", + "wall", + "-" + }, + { + "invisible_sand.active", + "sand", + "-" + }, + { + "conveyor_belt_1_left.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_1_middle.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_1_right.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_2_left.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_2_middle.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_2_right.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_3_left.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_3_middle.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_3_right.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_4_left.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_4_middle.active", + "conveyor_belt", + "-" + }, + { + "conveyor_belt_4_right.active", + "conveyor_belt", + "-" + }, + { + "exit.opening", + "exit", + "-" + }, + { + "exit.closing", + "exit", + "-" + }, + { + "steel_exit.opening", + "steel_exit", + "-" + }, + { + "steel_exit.closing", + "steel_exit", + "-" + }, + { + "em_exit.opening", + "em_exit", + "-" + }, + { + "em_exit.closing", + "em_exit", + "-" + }, + { + "em_steel_exit.opening", + "em_steel_exit", + "-" + }, + { + "em_steel_exit.closing", + "em_steel_exit", + "-" + }, + { + "sp_exit.opening", + "sp_exit", + "-" + }, + { + "sp_exit.closing", + "sp_exit", + "-" + }, + { + "sp_exit_open", + "sp_exit", + "-" + }, + { + "sp_terminal.active", + "sp_terminal", + "-" + }, + { + "sp_buggy_base.activating", + "sp_buggy_base", + "-" + }, + { + "sp_buggy_base.active", + "sp_buggy_base", + "-" + }, + { + "sp_murphy_clone", + "murphy_clone", + "-" + }, + { + "amoeba.dropping", + "amoeba", + "-" + }, + { + "quicksand.emptying", + "quicksand", + "-" + }, + { + "quicksand_fast.emptying", + "quicksand", + "-" + }, + { + "magic_wall.active", + "magic_wall", + "-" + }, + { + "bd_magic_wall.active", + "magic_wall", + "-" + }, + { + "dc_magic_wall.active", + "magic_wall", + "-" + }, + { + "magic_wall_full", + "magic_wall", + "-" + }, + { + "bd_magic_wall_full", + "magic_wall", + "-" + }, + { + "dc_magic_wall_full", + "magic_wall", + "-" + }, + { + "magic_wall.emptying", + "magic_wall", + "-" + }, + { + "bd_magic_wall.emptying", + "magic_wall", + "-" + }, + { + "dc_magic_wall.emptying", + "magic_wall", + "-" + }, + { + "magic_wall_dead", + "magic_wall", + "-" + }, + { + "bd_magic_wall_dead", + "magic_wall", + "-" + }, + { + "dc_magic_wall_dead", + "magic_wall", + "-" + }, + + { + "emc_fake_grass.active", + "fake_grass", + "-" + }, + { + "gate_1_gray.active", + "gate", + "" + }, + { + "gate_2_gray.active", + "gate", + "" + }, + { + "gate_3_gray.active", + "gate", + "" + }, + { + "gate_4_gray.active", + "gate", + "" + }, + { + "em_gate_1_gray.active", + "gate", + "" + }, + { + "em_gate_2_gray.active", + "gate", + "" + }, + { + "em_gate_3_gray.active", + "gate", + "" + }, + { + "em_gate_4_gray.active", + "gate", + "" + }, + { + "emc_gate_5_gray.active", + "gate", + "", + }, + { + "emc_gate_6_gray.active", + "gate", + "", + }, + { + "emc_gate_7_gray.active", + "gate", + "", + }, + { + "emc_gate_8_gray.active", + "gate", + "", + }, + { + "dc_gate_white_gray.active", + "gate", + "", + }, + { + "emc_dripper.active", + "dripper", + "dripper" + }, + { + "emc_spring_bumper.active", + "emc_spring_bumper", + "spring bumper", + }, + + /* ----------------------------------------------------------------------- */ + /* "unreal" (and therefore not drawable) runtime elements */ + /* ----------------------------------------------------------------------- */ + + { + "blocked", + "-", + "-" + }, + { + "explosion", + "-", + "-" + }, + { + "nut.breaking", + "-", + "-" + }, + { + "diamond.breaking", + "-", + "-" + }, + { + "acid_splash_left", + "-", + "-" + }, + { + "acid_splash_right", + "-", + "-" + }, + { + "amoeba.growing", + "-", + "-" + }, + { + "amoeba.shrinking", + "-", + "-" + }, + { + "expandable_wall.growing", + "-", + "-" + }, + { + "expandable_steelwall.growing", + "-", + "-" + }, + { + "flames", + "-", + "-" + }, + { + "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 }, - /* keyword to stop parser: "ELEMENT_INFO_END" <-- do not change! */ + /* 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.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.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.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.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.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.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.autowrap", + &titlemessage[1].autowrap + }, + { + "titlemessage_2.centered", + &titlemessage[1].centered + }, + { + "titlemessage_2.skip_comments", + &titlemessage[1].skip_comments + }, + { + "titlemessage_2.sort_priority", + &titlemessage[1].sort_priority + }, + { + "titlemessage_3.x", + &titlemessage[2].x + }, + { + "titlemessage_3.y", + &titlemessage[2].y + }, + { + "titlemessage_3.width", + &titlemessage[2].width + }, + { + "titlemessage_3.height", + &titlemessage[2].height + }, + { + "titlemessage_3.chars", + &titlemessage[2].chars + }, + { + "titlemessage_3.lines", + &titlemessage[2].lines + }, + { + "titlemessage_3.align", + &titlemessage[2].align + }, + { + "titlemessage_3.autowrap", + &titlemessage[2].autowrap + }, + { + "titlemessage_3.centered", + &titlemessage[2].centered + }, + { + "titlemessage_3.skip_comments", + &titlemessage[2].skip_comments + }, + { + "titlemessage_3.sort_priority", + &titlemessage[2].sort_priority + }, + { + "titlemessage_4.x", + &titlemessage[3].x + }, + { + "titlemessage_4.y", + &titlemessage[3].y + }, + { + "titlemessage_4.width", + &titlemessage[3].width + }, + { + "titlemessage_4.height", + &titlemessage[3].height + }, + { + "titlemessage_4.chars", + &titlemessage[3].chars + }, + { + "titlemessage_4.lines", + &titlemessage[3].lines + }, + { + "titlemessage_4.align", + &titlemessage[3].align + }, + { + "titlemessage_4.autowrap", + &titlemessage[3].autowrap + }, + { + "titlemessage_4.centered", + &titlemessage[3].centered + }, + { + "titlemessage_4.skip_comments", + &titlemessage[3].skip_comments + }, + { + "titlemessage_4.sort_priority", + &titlemessage[3].sort_priority + }, + { + "titlemessage_5.x", + &titlemessage[4].x + }, { - NULL, - NULL, - NULL - } -}; - - -/* ------------------------------------------------------------------------- */ -/* element action and direction definitions */ -/* ------------------------------------------------------------------------- */ + "titlemessage_5.y", + &titlemessage[4].y + }, + { + "titlemessage_5.width", + &titlemessage[4].width + }, + { + "titlemessage_5.height", + &titlemessage[4].height + }, + { + "titlemessage_5.chars", + &titlemessage[4].chars + }, + { + "titlemessage_5.lines", + &titlemessage[4].lines + }, + { + "titlemessage_5.align", + &titlemessage[4].align + }, + { + "titlemessage_5.autowrap", + &titlemessage[4].autowrap + }, + { + "titlemessage_5.centered", + &titlemessage[4].centered + }, + { + "titlemessage_5.skip_comments", + &titlemessage[4].skip_comments + }, + { + "titlemessage_5.sort_priority", + &titlemessage[4].sort_priority + }, -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 }, + { + "readme.x", + &readme.x + }, + { + "readme.y", + &readme.y + }, + { + "readme.width", + &readme.width + }, + { + "readme.height", + &readme.height + }, + { + "readme.chars", + &readme.chars + }, + { + "readme.lines", + &readme.lines + }, + { + "readme.align", + &readme.align + }, + { + "readme.autowrap", + &readme.autowrap + }, + { + "readme.centered", + &readme.centered + }, + { + "readme.skip_comments", + &readme.skip_comments + }, + { + "readme.sort_priority", + &readme.sort_priority + }, - /* empty suffix always matches -- check as last entry in InitSoundInfo() */ - { "", ACTION_DEFAULT, TRUE }, + { + "global.num_toons", + &global.num_toons + }, - { NULL, 0, 0 } -}; + { + "border.draw_masked.TITLE", + &border.draw_masked[GFX_SPECIAL_ARG_TITLE] + }, + { + "border.draw_masked.MAIN", + &border.draw_masked[GFX_SPECIAL_ARG_MAIN] + }, + { + "border.draw_masked.LEVELS", + &border.draw_masked[GFX_SPECIAL_ARG_LEVELS] + }, + { + "border.draw_masked.SCORES", + &border.draw_masked[GFX_SPECIAL_ARG_SCORES] + }, + { + "border.draw_masked.EDITOR", + &border.draw_masked[GFX_SPECIAL_ARG_EDITOR] + }, + { + "border.draw_masked.INFO", + &border.draw_masked[GFX_SPECIAL_ARG_INFO] + }, + { + "border.draw_masked.SETUP", + &border.draw_masked[GFX_SPECIAL_ARG_SETUP] + }, + { + "border.draw_masked.PLAYING", + &border.draw_masked[GFX_SPECIAL_ARG_PLAYING] + }, + { + "border.draw_masked.DOOR", + &border.draw_masked[GFX_SPECIAL_ARG_DOOR] + }, -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 }, + { + "title.fade_delay", + &title.fade_delay + }, + { + "title.post_delay", + &title.post_delay + }, + { + "title.auto_delay", + &title.auto_delay + }, - { NULL, 0 } -}; + { + "menu.fade_delay", + &menu.fade_delay + }, + { + "menu.post_delay", + &menu.post_delay + }, + { + "menu.auto_delay", + &menu.auto_delay + }, -struct SpecialSuffixInfo special_suffix_info[NUM_SPECIAL_GFX_ARGS + 1 + 1] = -{ - { ".[DEFAULT]", GAME_MODE_DEFAULT, }, - { ".TITLE", GAME_MODE_TITLE, }, - { ".MAIN", GAME_MODE_MAIN, }, - { ".LEVELS", GAME_MODE_LEVELS }, - { ".SCORES", GAME_MODE_SCORES, }, - { ".EDITOR", GAME_MODE_EDITOR, }, - { ".INFO", GAME_MODE_INFO, }, - { ".SETUP", GAME_MODE_SETUP, }, - { ".PLAYING", GAME_MODE_PLAYING, }, - { ".DOOR", GAME_MODE_PSEUDO_DOOR, }, - { ".PREVIEW", GAME_MODE_PSEUDO_PREVIEW, }, - { ".CRUMBLED", GAME_MODE_PSEUDO_CRUMBLED, }, + { + "menu.draw_xoffset", + &menu.draw_xoffset[GFX_SPECIAL_ARG_DEFAULT] + }, + { + "menu.draw_yoffset", + &menu.draw_yoffset[GFX_SPECIAL_ARG_DEFAULT] + }, + { + "menu.draw_xoffset.MAIN", + &menu.draw_xoffset[GFX_SPECIAL_ARG_MAIN] + }, + { + "menu.draw_yoffset.MAIN", + &menu.draw_yoffset[GFX_SPECIAL_ARG_MAIN] + }, + { + "menu.draw_xoffset.LEVELS", + &menu.draw_xoffset[GFX_SPECIAL_ARG_LEVELS] + }, + { + "menu.draw_yoffset.LEVELS", + &menu.draw_yoffset[GFX_SPECIAL_ARG_LEVELS] + }, + { + "menu.draw_xoffset.SCORES", + &menu.draw_xoffset[GFX_SPECIAL_ARG_SCORES] + }, + { + "menu.draw_yoffset.SCORES", + &menu.draw_yoffset[GFX_SPECIAL_ARG_SCORES] + }, + { + "menu.draw_xoffset.EDITOR", + &menu.draw_xoffset[GFX_SPECIAL_ARG_EDITOR] + }, + { + "menu.draw_yoffset.EDITOR", + &menu.draw_yoffset[GFX_SPECIAL_ARG_EDITOR] + }, + { + "menu.draw_xoffset.INFO", + &menu.draw_xoffset[GFX_SPECIAL_ARG_INFO] + }, + { + "menu.draw_yoffset.INFO", + &menu.draw_yoffset[GFX_SPECIAL_ARG_INFO] + }, + { + "menu.draw_xoffset.INFO[ELEMENTS]", + &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_ELEMENTS] + }, + { + "menu.draw_yoffset.INFO[ELEMENTS]", + &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_ELEMENTS] + }, + { + "menu.draw_xoffset.INFO[MUSIC]", + &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_MUSIC] + }, + { + "menu.draw_yoffset.INFO[MUSIC]", + &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_MUSIC] + }, + { + "menu.draw_xoffset.INFO[CREDITS]", + &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_CREDITS] + }, + { + "menu.draw_yoffset.INFO[CREDITS]", + &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_CREDITS] + }, + { + "menu.draw_xoffset.INFO[PROGRAM]", + &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_PROGRAM] + }, + { + "menu.draw_yoffset.INFO[PROGRAM]", + &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_PROGRAM] + }, + { + "menu.draw_xoffset.INFO[VERSION]", + &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_VERSION] + }, + { + "menu.draw_yoffset.INFO[VERSION]", + &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_VERSION] + }, + { + "menu.draw_xoffset.INFO[LEVELSET]", + &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_LEVELSET] + }, + { + "menu.draw_yoffset.INFO[LEVELSET]", + &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_LEVELSET] + }, + { + "menu.draw_xoffset.SETUP", + &menu.draw_xoffset[GFX_SPECIAL_ARG_SETUP] + }, + { + "menu.draw_yoffset.SETUP", + &menu.draw_yoffset[GFX_SPECIAL_ARG_SETUP] + }, - /* empty suffix always matches -- check as last entry in InitMusicInfo() */ - { "", GAME_MODE_DEFAULT, }, + { + "menu.scrollbar_xoffset", + &menu.scrollbar_xoffset + }, - { NULL, 0, } -}; + { + "menu.list_size", + &menu.list_size[GFX_SPECIAL_ARG_DEFAULT] + }, + { + "menu.list_size.LEVELS", + &menu.list_size[GFX_SPECIAL_ARG_LEVELS] + }, + { + "menu.list_size.SCORES", + &menu.list_size[GFX_SPECIAL_ARG_SCORES] + }, + { + "menu.list_size.INFO", + &menu.list_size[GFX_SPECIAL_ARG_INFO] + }, -struct TokenIntPtrInfo image_config_vars[] = -{ - { "global.num_toons", &global.num_toons }, + { "main.button.name.x", &menu.main.button.name.x }, + { "main.button.name.y", &menu.main.button.name.y }, + { "main.button.levels.x", &menu.main.button.levels.x }, + { "main.button.levels.y", &menu.main.button.levels.y }, + { "main.button.scores.x", &menu.main.button.scores.x }, + { "main.button.scores.y", &menu.main.button.scores.y }, + { "main.button.editor.x", &menu.main.button.editor.x }, + { "main.button.editor.y", &menu.main.button.editor.y }, + { "main.button.info.x", &menu.main.button.info.x }, + { "main.button.info.y", &menu.main.button.info.y }, + { "main.button.game.x", &menu.main.button.game.x }, + { "main.button.game.y", &menu.main.button.game.y }, + { "main.button.setup.x", &menu.main.button.setup.x }, + { "main.button.setup.y", &menu.main.button.setup.y }, + { "main.button.quit.x", &menu.main.button.quit.x }, + { "main.button.quit.y", &menu.main.button.quit.y }, - { "menu.draw_xoffset", &menu.draw_xoffset[GFX_SPECIAL_ARG_DEFAULT] }, - { "menu.draw_yoffset", &menu.draw_yoffset[GFX_SPECIAL_ARG_DEFAULT] }, - { "menu.draw_xoffset.MAIN", &menu.draw_xoffset[GFX_SPECIAL_ARG_MAIN] }, - { "menu.draw_yoffset.MAIN", &menu.draw_yoffset[GFX_SPECIAL_ARG_MAIN] }, - { "menu.draw_xoffset.LEVELS", &menu.draw_xoffset[GFX_SPECIAL_ARG_LEVELS] }, - { "menu.draw_yoffset.LEVELS", &menu.draw_yoffset[GFX_SPECIAL_ARG_LEVELS] }, - { "menu.draw_xoffset.SCORES", &menu.draw_xoffset[GFX_SPECIAL_ARG_SCORES] }, - { "menu.draw_yoffset.SCORES", &menu.draw_yoffset[GFX_SPECIAL_ARG_SCORES] }, - { "menu.draw_xoffset.EDITOR", &menu.draw_xoffset[GFX_SPECIAL_ARG_EDITOR] }, - { "menu.draw_yoffset.EDITOR", &menu.draw_yoffset[GFX_SPECIAL_ARG_EDITOR] }, - { "menu.draw_xoffset.INFO", &menu.draw_xoffset[GFX_SPECIAL_ARG_INFO] }, - { "menu.draw_yoffset.INFO", &menu.draw_yoffset[GFX_SPECIAL_ARG_INFO] }, - { "menu.draw_xoffset.SETUP", &menu.draw_xoffset[GFX_SPECIAL_ARG_SETUP] }, - { "menu.draw_yoffset.SETUP", &menu.draw_yoffset[GFX_SPECIAL_ARG_SETUP] }, + { "main.button.prev_level.x", &menu.main.button.prev_level.x }, + { "main.button.prev_level.y", &menu.main.button.prev_level.y }, + { "main.button.next_level.x", &menu.main.button.next_level.x }, + { "main.button.next_level.y", &menu.main.button.next_level.y }, - { "menu.scrollbar_xoffset", &menu.scrollbar_xoffset }, + { "main.text.name.x", &menu.main.text.name.x }, + { "main.text.name.y", &menu.main.text.name.y }, + { "main.text.name.width", &menu.main.text.name.width }, + { "main.text.name.height", &menu.main.text.name.height }, + { "main.text.name.align", &menu.main.text.name.align }, + { "main.text.levels.x", &menu.main.text.levels.x }, + { "main.text.levels.y", &menu.main.text.levels.y }, + { "main.text.levels.width", &menu.main.text.levels.width }, + { "main.text.levels.height", &menu.main.text.levels.height }, + { "main.text.levels.align", &menu.main.text.levels.align }, + { "main.text.scores.x", &menu.main.text.scores.x }, + { "main.text.scores.y", &menu.main.text.scores.y }, + { "main.text.scores.width", &menu.main.text.scores.width }, + { "main.text.scores.height", &menu.main.text.scores.height }, + { "main.text.scores.align", &menu.main.text.scores.align }, + { "main.text.editor.x", &menu.main.text.editor.x }, + { "main.text.editor.y", &menu.main.text.editor.y }, + { "main.text.editor.width", &menu.main.text.editor.width }, + { "main.text.editor.height", &menu.main.text.editor.height }, + { "main.text.editor.align", &menu.main.text.editor.align }, + { "main.text.info.x", &menu.main.text.info.x }, + { "main.text.info.y", &menu.main.text.info.y }, + { "main.text.info.width", &menu.main.text.info.width }, + { "main.text.info.height", &menu.main.text.info.height }, + { "main.text.info.align", &menu.main.text.info.align }, + { "main.text.game.x", &menu.main.text.game.x }, + { "main.text.game.y", &menu.main.text.game.y }, + { "main.text.game.width", &menu.main.text.game.width }, + { "main.text.game.height", &menu.main.text.game.height }, + { "main.text.game.align", &menu.main.text.game.align }, + { "main.text.setup.x", &menu.main.text.setup.x }, + { "main.text.setup.y", &menu.main.text.setup.y }, + { "main.text.setup.width", &menu.main.text.setup.width }, + { "main.text.setup.height", &menu.main.text.setup.height }, + { "main.text.setup.align", &menu.main.text.setup.align }, + { "main.text.quit.x", &menu.main.text.quit.x }, + { "main.text.quit.y", &menu.main.text.quit.y }, + { "main.text.quit.width", &menu.main.text.quit.width }, + { "main.text.quit.height", &menu.main.text.quit.height }, + { "main.text.quit.align", &menu.main.text.quit.align }, - { "menu.list_size", &menu.list_size[GFX_SPECIAL_ARG_DEFAULT] }, - { "menu.list_size.LEVELS", &menu.list_size[GFX_SPECIAL_ARG_LEVELS] }, - { "menu.list_size.SCORES", &menu.list_size[GFX_SPECIAL_ARG_SCORES] }, - { "menu.list_size.INFO", &menu.list_size[GFX_SPECIAL_ARG_INFO] }, + { "main.text.current_level.x", &menu.main.text.current_level.x }, + { "main.text.current_level.y", &menu.main.text.current_level.y }, + { "main.text.current_level.align", &menu.main.text.current_level.align }, + { "main.text.first_level.x", &menu.main.text.first_level.x }, + { "main.text.first_level.y", &menu.main.text.first_level.y }, + { "main.text.first_level.align", &menu.main.text.first_level.align }, + { "main.text.last_level.x", &menu.main.text.last_level.x }, + { "main.text.last_level.y", &menu.main.text.last_level.y }, + { "main.text.last_level.align", &menu.main.text.last_level.align }, + { "main.text.level_info_1.x", &menu.main.text.level_info_1.x }, + { "main.text.level_info_1.y", &menu.main.text.level_info_1.y }, + { "main.text.level_info_1.align", &menu.main.text.level_info_1.align }, + { "main.text.level_info_1.chars", &menu.main.text.level_info_1.chars }, + { "main.text.level_info_2.x", &menu.main.text.level_info_2.x }, + { "main.text.level_info_2.y", &menu.main.text.level_info_2.y }, + { "main.text.level_info_2.align", &menu.main.text.level_info_2.align }, + { "main.text.level_info_2.chars", &menu.main.text.level_info_2.chars }, + { "main.text.title_1.x", &menu.main.text.title_1.x }, + { "main.text.title_1.y", &menu.main.text.title_1.y }, + { "main.text.title_1.align", &menu.main.text.title_1.align }, + { "main.text.title_2.x", &menu.main.text.title_2.x }, + { "main.text.title_2.y", &menu.main.text.title_2.y }, + { "main.text.title_2.align", &menu.main.text.title_2.align }, + { "main.text.title_3.x", &menu.main.text.title_3.x }, + { "main.text.title_3.y", &menu.main.text.title_3.y }, + { "main.text.title_3.align", &menu.main.text.title_3.align }, - { "menu.fade_delay", &menu.fade_delay }, - { "menu.post_delay", &menu.post_delay }, + { "main.input.name.x", &menu.main.input.name.x }, + { "main.input.name.y", &menu.main.input.name.y }, + { "main.input.name.align", &menu.main.input.name.align }, - { "door_1.width", &door_1.width }, - { "door_1.height", &door_1.height }, - { "door_1.step_offset", &door_1.step_offset }, - { "door_1.step_delay", &door_1.step_delay }, - { "door_1.anim_mode", &door_1.anim_mode }, - { "door_2.width", &door_2.width }, - { "door_2.height", &door_2.height }, - { "door_2.step_offset", &door_2.step_offset }, - { "door_2.step_delay", &door_2.step_delay }, - { "door_2.anim_mode", &door_2.anim_mode }, + { "preview.x", &preview.x }, + { "preview.y", &preview.y }, + { "preview.align", &preview.align }, + { "preview.xsize", &preview.xsize }, + { "preview.ysize", &preview.ysize }, + { "preview.xoffset", &preview.xoffset }, + { "preview.yoffset", &preview.yoffset }, + { "preview.tile_size", &preview.tile_size }, + { "preview.step_offset", &preview.step_offset }, + { "preview.step_delay", &preview.step_delay }, + { "preview.anim_mode", &preview.anim_mode }, - { "preview.x", &preview.x }, - { "preview.y", &preview.y }, - { "preview.xsize", &preview.xsize }, - { "preview.ysize", &preview.ysize }, - { "preview.tile_size", &preview.tile_size }, - { "preview.step_offset", &preview.step_offset }, - { "preview.step_delay", &preview.step_delay }, + { "door_1.width", &door_1.width }, + { "door_1.height", &door_1.height }, + { "door_1.step_offset", &door_1.step_offset }, + { "door_1.step_delay", &door_1.step_delay }, + { "door_1.anim_mode", &door_1.anim_mode }, + { "door_2.width", &door_2.width }, + { "door_2.height", &door_2.height }, + { "door_2.step_offset", &door_2.step_offset }, + { "door_2.step_delay", &door_2.step_delay }, + { "door_2.anim_mode", &door_2.anim_mode }, - { "game.panel.level.x", &game.panel.level.x }, - { "game.panel.level.y", &game.panel.level.y }, - { "game.panel.gems.x", &game.panel.gems.x }, - { "game.panel.gems.y", &game.panel.gems.y }, - { "game.panel.inventory.x", &game.panel.inventory.x }, - { "game.panel.inventory.y", &game.panel.inventory.y }, - { "game.panel.keys.x", &game.panel.keys.x }, - { "game.panel.keys.y", &game.panel.keys.y }, - { "game.panel.score.x", &game.panel.score.x }, - { "game.panel.score.y", &game.panel.score.y }, - { "game.panel.time.x", &game.panel.time.x }, - { "game.panel.time.y", &game.panel.time.y }, + { "game.panel.level.x", &game.panel.level.x }, + { "game.panel.level.y", &game.panel.level.y }, + { "game.panel.level.align", &game.panel.level.align }, + { "game.panel.level.digits", &game.panel.level.chars }, + { "game.panel.gems.x", &game.panel.gems.x }, + { "game.panel.gems.y", &game.panel.gems.y }, + { "game.panel.gems.align", &game.panel.gems.align }, + { "game.panel.gems.digits", &game.panel.gems.chars }, + { "game.panel.inventory.x", &game.panel.inventory.x }, + { "game.panel.inventory.y", &game.panel.inventory.y }, + { "game.panel.inventory.align", &game.panel.inventory.align }, + { "game.panel.inventory.digits", &game.panel.inventory.chars }, + { "game.panel.keys.x", &game.panel.keys.x }, + { "game.panel.keys.y", &game.panel.keys.y }, + { "game.panel.keys.align", &game.panel.keys.align }, + { "game.panel.score.x", &game.panel.score.x }, + { "game.panel.score.y", &game.panel.score.y }, + { "game.panel.score.align", &game.panel.score.align }, + { "game.panel.score.digits", &game.panel.score.chars }, + { "game.panel.time.x", &game.panel.time.x }, + { "game.panel.time.y", &game.panel.time.y }, + { "game.panel.time.align", &game.panel.time.align }, + { "game.panel.time.digits", &game.panel.time.chars }, - { "[player].boring_delay_fixed", &game.player_boring_delay_fixed }, - { "[player].boring_delay_random", &game.player_boring_delay_random }, - { "[player].sleeping_delay_fixed", &game.player_sleeping_delay_fixed }, - { "[player].sleeping_delay_random", &game.player_sleeping_delay_random }, + { "[player].boring_delay_fixed", &game.player_boring_delay_fixed }, + { "[player].boring_delay_random", &game.player_boring_delay_random }, + { "[player].sleeping_delay_fixed", &game.player_sleeping_delay_fixed }, + { "[player].sleeping_delay_random", &game.player_sleeping_delay_random }, - { NULL, NULL, } + { NULL, NULL, } }; @@ -4713,7 +6219,8 @@ struct TokenIntPtrInfo image_config_vars[] = /* ------------------------------------------------------------------------- */ /* Important: When one entry is a prefix of another entry, the longer entry - must come first, because the dynamic configuration does prefix matching! */ + must come first, because the dynamic configuration does prefix matching! + (These definitions must match the corresponding definitions in "main.h"!) */ struct FontInfo font_info[NUM_FONTS + 1] = { @@ -4723,6 +6230,8 @@ struct FontInfo font_info[NUM_FONTS + 1] = { "font.initial_4" }, { "font.title_1" }, { "font.title_2" }, + { "font.menu_1.active" }, + { "font.menu_2.active" }, { "font.menu_1" }, { "font.menu_2" }, { "font.text_1.active" }, @@ -4750,6 +6259,8 @@ struct FontInfo font_info[NUM_FONTS + 1] = { "font.level_number" }, { "font.tape_recorder" }, { "font.game_info" }, + { "font.info.elements" }, + { "font.info.levelset" }, };