X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.c;h=76bb7c5b911ce9a09f7cf6a29492920e3cbf7d2c;hb=e300f91a9ee9f6160aff68d3bc50a21b797d9941;hp=915ea749a8bd24b8d53cfe642ac4d75cf5a1723b;hpb=c0f3e2e3c8f0c8b88fca68375d0b942bda8ffcbf;p=rocksndiamonds.git diff --git a/src/main.c b/src/main.c index 915ea749..76bb7c5b 100644 --- a/src/main.c +++ b/src/main.c @@ -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]; @@ -105,6 +106,7 @@ struct SetupInfo setup; struct GameInfo game; struct GlobalInfo global; struct BorderInfo border; +struct TitleInfo title; struct MenuInfo menu; struct DoorInfo door_1, door_2; struct PreviewInfo preview; @@ -1113,17 +1115,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", @@ -3785,6 +3787,406 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = "any_element", "this element matches any element" }, + { + "steelchar_space", + "steelchar", + "steel letter ' '" + }, + { + "steelchar_exclam", + "steelchar", + "steel letter '!'" + }, + { + "steelchar_quotedbl", + "steelchar", + "steel letter '\"'" + }, + { + "steelchar_numbersign", + "steelchar", + "steel letter '#'" + }, + { + "steelchar_dollar", + "steelchar", + "steel letter '$'" + }, + { + "steelchar_percent", + "steelchar", + "steel letter '%'" + }, + { + "steelchar_ampersand", + "steelchar", + "steel letter '&'" + }, + { + "steelchar_apostrophe", + "steelchar", + "steel letter '''" + }, + { + "steelchar_parenleft", + "steelchar", + "steel letter '('" + }, + { + "steelchar_parenright", + "steelchar", + "steel letter ')'" + }, + { + "steelchar_asterisk", + "steelchar", + "steel letter '*'" + }, + { + "steelchar_plus", + "steelchar", + "steel letter '+'" + }, + { + "steelchar_comma", + "steelchar", + "steel letter ','" + }, + { + "steelchar_minus", + "steelchar", + "steel letter '-'" + }, + { + "steelchar_period", + "steelchar", + "steel letter '.'" + }, + { + "steelchar_slash", + "steelchar", + "steel letter '/'" + }, + { + "steelchar_0", + "steelchar", + "steel letter '0'" + }, + { + "steelchar_1", + "steelchar", + "steel letter '1'" + }, + { + "steelchar_2", + "steelchar", + "steel letter '2'" + }, + { + "steelchar_3", + "steelchar", + "steel letter '3'" + }, + { + "steelchar_4", + "steelchar", + "steel letter '4'" + }, + { + "steelchar_5", + "steelchar", + "steel letter '5'" + }, + { + "steelchar_6", + "steelchar", + "steel letter '6'" + }, + { + "steelchar_7", + "steelchar", + "steel letter '7'" + }, + { + "steelchar_8", + "steelchar", + "steel letter '8'" + }, + { + "steelchar_9", + "steelchar", + "steel letter '9'" + }, + { + "steelchar_colon", + "steelchar", + "steel letter ':'" + }, + { + "steelchar_semicolon", + "steelchar", + "steel letter ';'" + }, + { + "steelchar_less", + "steelchar", + "steel letter '<'" + }, + { + "steelchar_equal", + "steelchar", + "steel letter '='" + }, + { + "steelchar_greater", + "steelchar", + "steel letter '>'" + }, + { + "steelchar_question", + "steelchar", + "steel letter '?'" + }, + { + "steelchar_at", + "steelchar", + "steel letter '@'" + }, + { + "steelchar_a", + "steelchar", + "steel letter 'A'" + }, + { + "steelchar_b", + "steelchar", + "steel letter 'B'" + }, + { + "steelchar_c", + "steelchar", + "steel letter 'C'" + }, + { + "steelchar_d", + "steelchar", + "steel letter 'D'" + }, + { + "steelchar_e", + "steelchar", + "steel letter 'E'" + }, + { + "steelchar_f", + "steelchar", + "steel letter 'F'" + }, + { + "steelchar_g", + "steelchar", + "steel letter 'G'" + }, + { + "steelchar_h", + "steelchar", + "steel letter 'H'" + }, + { + "steelchar_i", + "steelchar", + "steel letter 'I'" + }, + { + "steelchar_j", + "steelchar", + "steel letter 'J'" + }, + { + "steelchar_k", + "steelchar", + "steel letter 'K'" + }, + { + "steelchar_l", + "steelchar", + "steel letter 'L'" + }, + { + "steelchar_m", + "steelchar", + "steel letter 'M'" + }, + { + "steelchar_n", + "steelchar", + "steel letter 'N'" + }, + { + "steelchar_o", + "steelchar", + "steel letter 'O'" + }, + { + "steelchar_p", + "steelchar", + "steel letter 'P'" + }, + { + "steelchar_q", + "steelchar", + "steel letter 'Q'" + }, + { + "steelchar_r", + "steelchar", + "steel letter 'R'" + }, + { + "steelchar_s", + "steelchar", + "steel letter 'S'" + }, + { + "steelchar_t", + "steelchar", + "steel letter 'T'" + }, + { + "steelchar_u", + "steelchar", + "steel letter 'U'" + }, + { + "steelchar_v", + "steelchar", + "steel letter 'V'" + }, + { + "steelchar_w", + "steelchar", + "steel letter 'W'" + }, + { + "steelchar_x", + "steelchar", + "steel letter 'X'" + }, + { + "steelchar_y", + "steelchar", + "steel letter 'Y'" + }, + { + "steelchar_z", + "steelchar", + "steel letter 'Z'" + }, + { + "steelchar_bracketleft", + "steelchar", + "steel letter '['" + }, + { + "steelchar_backslash", + "steelchar", + "steel letter '\\'" + }, + { + "steelchar_bracketright", + "steelchar", + "steel letter ']'" + }, + { + "steelchar_asciicircum", + "steelchar", + "steel letter '^'" + }, + { + "steelchar_underscore", + "steelchar", + "steel letter '_'" + }, + { + "steelchar_copyright", + "steelchar", + "steel letter '©'" + }, + { + "steelchar_aumlaut", + "steelchar", + "steel letter 'Ä'" + }, + { + "steelchar_oumlaut", + "steelchar", + "steel letter 'Ö'" + }, + { + "steelchar_uumlaut", + "steelchar", + "steel letter 'Ü'" + }, + { + "steelchar_degree", + "steelchar", + "steel letter '°'" + }, + { + "steelchar_trademark", + "steelchar", + "steel letter '®'" + }, + { + "steelchar_cursor", + "steelchar", + "steel letter ' '" + }, + { + "steelchar_unused", + "steelchar", + "steel letter ''" + }, + { + "steelchar_unused", + "steelchar", + "steel letter ''" + }, + { + "steelchar_unused", + "steelchar", + "steel letter ''" + }, + { + "steelchar_unused", + "steelchar", + "steel letter ''" + }, + { + "steelchar_unused", + "steelchar", + "steel letter ''" + }, + { + "steelchar_unused", + "steelchar", + "steel letter ''" + }, + { + "steelchar_unused", + "steelchar", + "steel letter 'button'" + }, + { + "steelchar_unused", + "steelchar", + "steel letter 'up'" + }, + { + "steelchar_unused", + "steelchar", + "steel letter 'down'" + }, /* ----------------------------------------------------------------------- */ /* "real" (and therefore drawable) runtime elements */ @@ -4441,6 +4843,16 @@ struct ElementNameInfo element_name_info[MAX_NUM_ELEMENTS + 1] = "internal", "hide text elements" }, + { + "internal_cascade_steelchars", + "internal", + "show steel text elements" + }, + { + "internal_cascade_steelchars.active", + "internal", + "hide steel text elements" + }, { "internal_cascade_ce", "internal", @@ -4618,6 +5030,7 @@ 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, }, @@ -4649,6 +5062,14 @@ struct TokenIntPtrInfo image_config_vars[] = { "border.draw_masked.PLAYING",&border.draw_masked[GFX_SPECIAL_ARG_PLAYING] }, { "border.draw_masked.DOOR", &border.draw_masked[GFX_SPECIAL_ARG_DOOR] }, + { "title.fade_delay", &title.fade_delay }, + { "title.post_delay", &title.post_delay }, + { "title.auto_delay", &title.auto_delay }, + + { "menu.fade_delay", &menu.fade_delay }, + { "menu.post_delay", &menu.post_delay }, + { "menu.auto_delay", &menu.auto_delay }, + { "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] }, @@ -4661,6 +5082,26 @@ struct TokenIntPtrInfo image_config_vars[] = { "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[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] }, @@ -4671,9 +5112,6 @@ struct TokenIntPtrInfo image_config_vars[] = { "menu.list_size.SCORES", &menu.list_size[GFX_SPECIAL_ARG_SCORES] }, { "menu.list_size.INFO", &menu.list_size[GFX_SPECIAL_ARG_INFO] }, - { "menu.fade_delay", &menu.fade_delay }, - { "menu.post_delay", &menu.post_delay }, - { "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 }, @@ -4690,6 +5128,7 @@ struct TokenIntPtrInfo image_config_vars[] = { "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 }, + { "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 }, @@ -4699,56 +5138,83 @@ struct TokenIntPtrInfo image_config_vars[] = { "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 }, - { "main.text.current_level.x",&menu.main.text.current_level.x }, - { "main.text.current_level.y",&menu.main.text.current_level.y }, - { "main.text.first_level.x", &menu.main.text.first_level.x }, - { "main.text.first_level.y", &menu.main.text.first_level.y }, - { "main.text.last_level.x", &menu.main.text.last_level.x }, - { "main.text.last_level.y", &menu.main.text.last_level.y }, - { "main.text.levelset_info.x",&menu.main.text.levelset_info.x }, - { "main.text.levelset_info.y",&menu.main.text.levelset_info.y }, - { "main.text.level_info.x", &menu.main.text.level_info.x }, - { "main.text.level_info.y", &menu.main.text.level_info.y }, + { "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_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.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 }, { "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 }, { "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 }, { "door_1.width", &door_1.width }, { "door_1.height", &door_1.height }, @@ -4788,7 +5254,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] = { @@ -4798,6 +5265,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" },