From: Holger Schemel Date: Thu, 15 Mar 2007 02:46:30 +0000 (+0100) Subject: rnd-20070315-2-src X-Git-Tag: 3.2.4^2~68 X-Git-Url: https://git.artsoft.org/?a=commitdiff_plain;h=0868de4751d9e3d4b2f3185c52edb5569217d39a;p=rocksndiamonds.git rnd-20070315-2-src --- diff --git a/src/conf_gfx.c b/src/conf_gfx.c index fc506b54..80574cea 100644 --- a/src/conf_gfx.c +++ b/src/conf_gfx.c @@ -64,6 +64,7 @@ struct ConfigTypeInfo image_config_suffix[] = { ".post_delay", ARG_UNDEFINED, TYPE_INTEGER }, { ".auto_delay", ARG_UNDEFINED, TYPE_INTEGER }, { ".align", ARG_UNDEFINED, TYPE_INTEGER }, + { ".valign", ARG_UNDEFINED, TYPE_INTEGER }, { ".sort_priority", ARG_UNDEFINED, TYPE_INTEGER }, { NULL, NULL, 0 } @@ -4958,121 +4959,131 @@ struct ConfigInfo image_config[] = /* keyword to start parser: "CONFIG_VARS_START" <-- do not change! */ - { "titlemessage_initial_1.x", "-1" }, - { "titlemessage_initial_1.y", "-1" }, - { "titlemessage_initial_1.width", "-1" }, - { "titlemessage_initial_1.height", "-1" }, + { "titlemessage_initial_1.x", "336" }, + { "titlemessage_initial_1.y", "280" }, + { "titlemessage_initial_1.width", "640" }, + { "titlemessage_initial_1.height", "512" }, { "titlemessage_initial_1.chars", "-1" }, { "titlemessage_initial_1.lines", "-1" }, { "titlemessage_initial_1.align", "center" }, + { "titlemessage_initial_1.valign", "middle" }, { "titlemessage_initial_1.font", "font.text_1" }, { "titlemessage_initial_1.autowrap", "false" }, { "titlemessage_initial_1.centered", "false" }, { "titlemessage_initial_1.skip_comments", "false" }, { "titlemessage_initial_1.sort_priority", "0" }, - { "titlemessage_initial_2.x", "-1" }, - { "titlemessage_initial_2.y", "-1" }, - { "titlemessage_initial_2.width", "-1" }, - { "titlemessage_initial_2.height", "-1" }, + { "titlemessage_initial_2.x", "336" }, + { "titlemessage_initial_2.y", "280" }, + { "titlemessage_initial_2.width", "640" }, + { "titlemessage_initial_2.height", "512" }, { "titlemessage_initial_2.chars", "-1" }, { "titlemessage_initial_2.lines", "-1" }, { "titlemessage_initial_2.align", "center" }, + { "titlemessage_initial_2.valign", "middle" }, { "titlemessage_initial_2.font", "font.text_1" }, { "titlemessage_initial_2.autowrap", "false" }, { "titlemessage_initial_2.centered", "false" }, { "titlemessage_initial_2.skip_comments", "false" }, { "titlemessage_initial_2.sort_priority", "0" }, - { "titlemessage_initial_3.x", "-1" }, - { "titlemessage_initial_3.y", "-1" }, - { "titlemessage_initial_3.width", "-1" }, - { "titlemessage_initial_3.height", "-1" }, + { "titlemessage_initial_3.x", "336" }, + { "titlemessage_initial_3.y", "280" }, + { "titlemessage_initial_3.width", "640" }, + { "titlemessage_initial_3.height", "512" }, { "titlemessage_initial_3.chars", "-1" }, { "titlemessage_initial_3.lines", "-1" }, { "titlemessage_initial_3.align", "center" }, + { "titlemessage_initial_3.valign", "middle" }, { "titlemessage_initial_3.font", "font.text_1" }, { "titlemessage_initial_3.autowrap", "false" }, { "titlemessage_initial_3.centered", "false" }, { "titlemessage_initial_3.skip_comments", "false" }, { "titlemessage_initial_3.sort_priority", "0" }, - { "titlemessage_initial_4.x", "-1" }, - { "titlemessage_initial_4.y", "-1" }, - { "titlemessage_initial_4.width", "-1" }, - { "titlemessage_initial_4.height", "-1" }, + { "titlemessage_initial_4.x", "336" }, + { "titlemessage_initial_4.y", "280" }, + { "titlemessage_initial_4.width", "640" }, + { "titlemessage_initial_4.height", "512" }, { "titlemessage_initial_4.chars", "-1" }, { "titlemessage_initial_4.lines", "-1" }, { "titlemessage_initial_4.align", "center" }, + { "titlemessage_initial_4.valign", "middle" }, { "titlemessage_initial_4.font", "font.text_1" }, { "titlemessage_initial_4.autowrap", "false" }, { "titlemessage_initial_4.centered", "false" }, { "titlemessage_initial_4.skip_comments", "false" }, { "titlemessage_initial_4.sort_priority", "0" }, - { "titlemessage_initial_5.x", "-1" }, - { "titlemessage_initial_5.y", "-1" }, - { "titlemessage_initial_5.width", "-1" }, - { "titlemessage_initial_5.height", "-1" }, + { "titlemessage_initial_5.x", "336" }, + { "titlemessage_initial_5.y", "280" }, + { "titlemessage_initial_5.width", "640" }, + { "titlemessage_initial_5.height", "512" }, { "titlemessage_initial_5.chars", "-1" }, { "titlemessage_initial_5.lines", "-1" }, { "titlemessage_initial_5.align", "center" }, + { "titlemessage_initial_5.valign", "middle" }, { "titlemessage_initial_5.font", "font.text_1" }, { "titlemessage_initial_5.autowrap", "false" }, { "titlemessage_initial_5.centered", "false" }, { "titlemessage_initial_5.skip_comments", "false" }, { "titlemessage_initial_5.sort_priority", "0" }, - { "titlemessage_1.x", "-1" }, - { "titlemessage_1.y", "-1" }, - { "titlemessage_1.width", "-1" }, - { "titlemessage_1.height", "-1" }, + { "titlemessage_1.x", "336" }, + { "titlemessage_1.y", "280" }, + { "titlemessage_1.width", "640" }, + { "titlemessage_1.height", "512" }, { "titlemessage_1.chars", "-1" }, { "titlemessage_1.lines", "-1" }, { "titlemessage_1.align", "center" }, + { "titlemessage_1.valign", "middle" }, { "titlemessage_1.font", "font.text_1" }, { "titlemessage_1.autowrap", "false" }, { "titlemessage_1.centered", "false" }, { "titlemessage_1.skip_comments", "false" }, { "titlemessage_1.sort_priority", "0" }, - { "titlemessage_2.x", "-1" }, - { "titlemessage_2.y", "-1" }, - { "titlemessage_2.width", "-1" }, - { "titlemessage_2.height", "-1" }, + { "titlemessage_2.x", "336" }, + { "titlemessage_2.y", "280" }, + { "titlemessage_2.width", "640" }, + { "titlemessage_2.height", "512" }, { "titlemessage_2.chars", "-1" }, { "titlemessage_2.lines", "-1" }, { "titlemessage_2.align", "center" }, + { "titlemessage_2.valign", "middle" }, { "titlemessage_2.font", "font.text_1" }, { "titlemessage_2.autowrap", "false" }, { "titlemessage_2.centered", "false" }, { "titlemessage_2.skip_comments", "false" }, { "titlemessage_2.sort_priority", "0" }, - { "titlemessage_3.x", "-1" }, - { "titlemessage_3.y", "-1" }, - { "titlemessage_3.width", "-1" }, - { "titlemessage_3.height", "-1" }, + { "titlemessage_3.x", "336" }, + { "titlemessage_3.y", "280" }, + { "titlemessage_3.width", "640" }, + { "titlemessage_3.height", "512" }, { "titlemessage_3.chars", "-1" }, { "titlemessage_3.lines", "-1" }, { "titlemessage_3.align", "center" }, + { "titlemessage_3.valign", "middle" }, { "titlemessage_3.font", "font.text_1" }, { "titlemessage_3.autowrap", "false" }, { "titlemessage_3.centered", "false" }, { "titlemessage_3.skip_comments", "false" }, { "titlemessage_3.sort_priority", "0" }, - { "titlemessage_4.x", "-1" }, - { "titlemessage_4.y", "-1" }, - { "titlemessage_4.width", "-1" }, - { "titlemessage_4.height", "-1" }, + { "titlemessage_4.x", "336" }, + { "titlemessage_4.y", "280" }, + { "titlemessage_4.width", "640" }, + { "titlemessage_4.height", "512" }, { "titlemessage_4.chars", "-1" }, { "titlemessage_4.lines", "-1" }, { "titlemessage_4.align", "center" }, + { "titlemessage_4.valign", "middle" }, { "titlemessage_4.font", "font.text_1" }, { "titlemessage_4.autowrap", "false" }, { "titlemessage_4.centered", "false" }, { "titlemessage_4.skip_comments", "false" }, { "titlemessage_4.sort_priority", "0" }, - { "titlemessage_5.x", "-1" }, - { "titlemessage_5.y", "-1" }, - { "titlemessage_5.width", "-1" }, - { "titlemessage_5.height", "-1" }, + { "titlemessage_5.x", "336" }, + { "titlemessage_5.y", "280" }, + { "titlemessage_5.width", "640" }, + { "titlemessage_5.height", "512" }, { "titlemessage_5.chars", "-1" }, { "titlemessage_5.lines", "-1" }, { "titlemessage_5.align", "center" }, + { "titlemessage_5.valign", "middle" }, { "titlemessage_5.font", "font.text_1" }, { "titlemessage_5.autowrap", "false" }, { "titlemessage_5.centered", "false" }, @@ -5086,6 +5097,7 @@ struct ConfigInfo image_config[] = { "readme.chars", "-1" }, { "readme.lines", "-1" }, { "readme.align", "center" }, + { "readme.valign", "top" }, { "readme.font", "font.info.levelset" }, { "readme.autowrap", "true" }, { "readme.centered", "false" }, @@ -5173,124 +5185,148 @@ struct ConfigInfo image_config[] = { "main.text.name.width", "-1" }, { "main.text.name.height", "-1" }, { "main.text.name.align", "left" }, + { "main.text.name.valign", "top" }, { "main.text.name.font", "font.menu_1" }, { "main.text.levels.x", "-1" }, { "main.text.levels.y", "-1" }, { "main.text.levels.width", "-1" }, { "main.text.levels.height", "-1" }, { "main.text.levels.align", "left" }, + { "main.text.levels.valign", "top" }, { "main.text.levels.font", "font.menu_1" }, { "main.text.scores.x", "-1" }, { "main.text.scores.y", "-1" }, { "main.text.scores.width", "-1" }, { "main.text.scores.height", "-1" }, { "main.text.scores.align", "left" }, + { "main.text.scores.valign", "top" }, { "main.text.scores.font", "font.menu_1" }, { "main.text.editor.x", "-1" }, { "main.text.editor.y", "-1" }, { "main.text.editor.width", "-1" }, { "main.text.editor.height", "-1" }, { "main.text.editor.align", "left" }, + { "main.text.editor.valign", "top" }, { "main.text.editor.font", "font.menu_1" }, { "main.text.info.x", "-1" }, { "main.text.info.y", "-1" }, { "main.text.info.width", "-1" }, { "main.text.info.height", "-1" }, { "main.text.info.align", "left" }, + { "main.text.info.valign", "top" }, { "main.text.info.font", "font.menu_1" }, { "main.text.game.x", "-1" }, { "main.text.game.y", "-1" }, { "main.text.game.width", "-1" }, { "main.text.game.height", "-1" }, { "main.text.game.align", "left" }, + { "main.text.game.valign", "top" }, { "main.text.game.font", "font.menu_1" }, { "main.text.setup.x", "-1" }, { "main.text.setup.y", "-1" }, { "main.text.setup.width", "-1" }, { "main.text.setup.height", "-1" }, { "main.text.setup.align", "left" }, + { "main.text.setup.valign", "top" }, { "main.text.setup.font", "font.menu_1" }, { "main.text.quit.x", "-1" }, { "main.text.quit.y", "-1" }, { "main.text.quit.width", "-1" }, { "main.text.quit.height", "-1" }, { "main.text.quit.align", "left" }, + { "main.text.quit.valign", "top" }, { "main.text.quit.font", "font.menu_1" }, { "main.text.first_level.x", "488" }, { "main.text.first_level.y", "98" }, { "main.text.first_level.align", "left" }, + { "main.text.first_level.valign", "top" }, { "main.text.first_level.font", "font.text_3" }, { "main.text.last_level.x", "488" }, { "main.text.last_level.y", "112" }, { "main.text.last_level.align", "left" }, + { "main.text.last_level.valign", "top" }, { "main.text.last_level.font", "font.text_3" }, { "main.text.level_number.x", "352" }, { "main.text.level_number.y", "96" }, { "main.text.level_number.align", "left" }, + { "main.text.level_number.valign", "top" }, { "main.text.level_number.font", "font.value_1" }, { "main.text.level_info_1.x", "272" }, { "main.text.level_info_1.y", "352" }, { "main.text.level_info_1.align", "center" }, + { "main.text.level_info_1.valign", "top" }, { "main.text.level_info_1.chars", "-1" }, { "main.text.level_info_1.font", "font.text_1" }, { "main.text.level_info_2.x", "272" }, { "main.text.level_info_2.y", "523" }, { "main.text.level_info_2.align", "center" }, + { "main.text.level_info_2.valign", "top" }, { "main.text.level_info_2.chars", "-1" }, { "main.text.level_info_2.font", "font.text_2" }, { "main.text.level_info_2.font_header", "font.text_4" }, { "main.text.level_name.x", "-1" }, { "main.text.level_name.y", "-1" }, { "main.text.level_name.align", "left" }, + { "main.text.level_name.valign", "top" }, { "main.text.level_name.chars", "-1" }, { "main.text.level_name.font", "font.text_2" }, { "main.text.level_author.x", "-1" }, { "main.text.level_author.y", "-1" }, { "main.text.level_author.align", "left" }, + { "main.text.level_author.valign", "top" }, { "main.text.level_author.chars", "-1" }, { "main.text.level_author.font", "font.text_2" }, { "main.text.level_year.x", "-1" }, { "main.text.level_year.y", "-1" }, { "main.text.level_year.align", "left" }, + { "main.text.level_year.valign", "top" }, { "main.text.level_year.chars", "-1" }, { "main.text.level_year.font", "font.text_2" }, { "main.text.level_imported_from.x", "-1" }, { "main.text.level_imported_from.y", "-1" }, { "main.text.level_imported_from.align", "left" }, + { "main.text.level_imported_from.valign", "top" }, { "main.text.level_imported_from.chars", "-1" }, { "main.text.level_imported_from.font", "font.text_2" }, { "main.text.level_imported_by.x", "-1" }, { "main.text.level_imported_by.y", "-1" }, { "main.text.level_imported_by.align", "left" }, + { "main.text.level_imported_by.valign", "top" }, { "main.text.level_imported_by.chars", "-1" }, { "main.text.level_imported_by.font", "font.text_2" }, { "main.text.level_tested_by.x", "-1" }, { "main.text.level_tested_by.y", "-1" }, { "main.text.level_tested_by.align", "left" }, + { "main.text.level_tested_by.valign", "top" }, { "main.text.level_tested_by.chars", "-1" }, { "main.text.level_tested_by.font", "font.text_2" }, { "main.text.title_1.x", "272" }, { "main.text.title_1.y", "8" }, { "main.text.title_1.align", "center" }, + { "main.text.title_1.valign", "top" }, { "main.text.title_1.font", "font.title_1" }, { "main.text.title_2.x", "272" }, { "main.text.title_2.y", "46" }, { "main.text.title_2.align", "center" }, + { "main.text.title_2.valign", "top" }, { "main.text.title_2.font", "font.title_2" }, { "main.text.title_3.x", "272" }, { "main.text.title_3.y", "326" }, { "main.text.title_3.align", "center" }, + { "main.text.title_3.valign", "top" }, { "main.text.title_3.font", "font.title_2" }, { "main.input.name.x", "-1" }, { "main.input.name.y", "-1" }, { "main.input.name.align", "left" }, + { "main.input.name.valign", "top" }, { "main.input.name.font", "font.input_1" }, { "preview.x", "272" }, { "preview.y", "380" }, { "preview.align", "center" }, + { "preview.valign", "top" }, { "preview.xsize", "66" }, { "preview.ysize", "34" }, { "preview.xoffset", "0" }, @@ -5315,6 +5351,7 @@ struct ConfigInfo image_config[] = { "game.panel.level_number.x", "51" }, { "game.panel.level_number.y", "20" }, { "game.panel.level_number.align", "center" }, + { "game.panel.level_number.valign", "top" }, { "game.panel.level_number.chars", "-1" }, { "game.panel.level_number.font", "font.text_2" }, { "game.panel.level_number.font_narrow", "font.text_1" }, @@ -5322,12 +5359,14 @@ struct ConfigInfo image_config[] = { "game.panel.gems.x", "50" }, { "game.panel.gems.y", "54" }, { "game.panel.gems.align", "center" }, + { "game.panel.gems.valign", "top" }, { "game.panel.gems.chars", "3" }, { "game.panel.gems.font", "font.text_2" }, { "game.panel.inventory.x", "50" }, { "game.panel.inventory.y", "89" }, { "game.panel.inventory.align", "center" }, + { "game.panel.inventory.valign", "top" }, { "game.panel.inventory.chars", "3" }, { "game.panel.inventory.font", "font.text_2" }, @@ -5352,18 +5391,21 @@ struct ConfigInfo image_config[] = { "game.panel.key_white_count.x", "-1" }, { "game.panel.key_white_count.y", "-1" }, { "game.panel.key_white_count.align", "left" }, + { "game.panel.key_white_count.valign", "top" }, { "game.panel.key_white_count.chars", "-1" }, { "game.panel.key_white_count.font", "font.text_2" }, { "game.panel.score.x", "50" }, { "game.panel.score.y", "159" }, { "game.panel.score.align", "center" }, + { "game.panel.score.valign", "top" }, { "game.panel.score.chars", "5" }, { "game.panel.score.font", "font.text_2" }, { "game.panel.time.x", "50" }, { "game.panel.time.y", "194" }, { "game.panel.time.align", "center" }, + { "game.panel.time.valign", "top" }, { "game.panel.time.chars", "-1" }, { "game.panel.time.font", "font.text_2" }, { "game.panel.time.font_narrow", "font.text_1" }, @@ -5371,16 +5413,19 @@ struct ConfigInfo image_config[] = { "game.panel.time_hh.x", "-1" }, { "game.panel.time_hh.y", "-1" }, { "game.panel.time_hh.align", "left" }, + { "game.panel.time_hh.valign", "top" }, { "game.panel.time_hh.chars", "-1" }, { "game.panel.time_hh.font", "font.text_2" }, { "game.panel.time_mm.x", "-1" }, { "game.panel.time_mm.y", "-1" }, { "game.panel.time_mm.align", "left" }, + { "game.panel.time_mm.valign", "top" }, { "game.panel.time_mm.chars", "-1" }, { "game.panel.time_mm.font", "font.text_2" }, { "game.panel.time_ss.x", "-1" }, { "game.panel.time_ss.y", "-1" }, { "game.panel.time_ss.align", "left" }, + { "game.panel.time_ss.valign", "top" }, { "game.panel.time_ss.chars", "-1" }, { "game.panel.time_ss.font", "font.text_2" }, @@ -5406,6 +5451,7 @@ struct ConfigInfo image_config[] = { "game.panel.shield_normal_time.x", "-1" }, { "game.panel.shield_normal_time.y", "-1" }, { "game.panel.shield_normal_time.align", "left" }, + { "game.panel.shield_normal_time.valign", "top" }, { "game.panel.shield_normal_time.chars", "-1" }, { "game.panel.shield_normal_time.font", "font.text_2" }, { "game.panel.shield_deadly.x", "-1" }, @@ -5413,6 +5459,7 @@ struct ConfigInfo image_config[] = { "game.panel.shield_deadly_time.x", "-1" }, { "game.panel.shield_deadly_time.y", "-1" }, { "game.panel.shield_deadly_time.align", "left" }, + { "game.panel.shield_deadly_time.valign", "top" }, { "game.panel.shield_deadly_time.chars", "-1" }, { "game.panel.shield_deadly_time.font", "font.text_2" }, @@ -5434,6 +5481,7 @@ struct ConfigInfo image_config[] = { "game.panel.emc_magic_ball_time.x", "-1" }, { "game.panel.emc_magic_ball_time.y", "-1" }, { "game.panel.emc_magic_ball_time.align", "left" }, + { "game.panel.emc_magic_ball_time.valign", "top" }, { "game.panel.emc_magic_ball_time.chars", "-1" }, { "game.panel.emc_magic_ball_time.font", "font.text_2" }, @@ -5442,6 +5490,7 @@ struct ConfigInfo image_config[] = { "game.panel.light_switch_time.x", "-1" }, { "game.panel.light_switch_time.y", "-1" }, { "game.panel.light_switch_time.align", "left" }, + { "game.panel.light_switch_time.valign", "top" }, { "game.panel.light_switch_time.chars", "-1" }, { "game.panel.light_switch_time.font", "font.text_2" }, @@ -5450,6 +5499,7 @@ struct ConfigInfo image_config[] = { "game.panel.timegate_switch_time.x", "-1" }, { "game.panel.timegate_switch_time.y", "-1" }, { "game.panel.timegate_switch_time.align", "left" }, + { "game.panel.timegate_switch_time.valign", "top" }, { "game.panel.timegate_switch_time.chars", "-1" }, { "game.panel.timegate_switch_time.font", "font.text_2" }, @@ -5461,6 +5511,7 @@ struct ConfigInfo image_config[] = { "game.panel.emc_lenses_time.x", "-1" }, { "game.panel.emc_lenses_time.y", "-1" }, { "game.panel.emc_lenses_time.align", "left" }, + { "game.panel.emc_lenses_time.valign", "top" }, { "game.panel.emc_lenses_time.chars", "-1" }, { "game.panel.emc_lenses_time.font", "font.text_2" }, @@ -5469,6 +5520,7 @@ struct ConfigInfo image_config[] = { "game.panel.emc_magnifier_time.x", "-1" }, { "game.panel.emc_magnifier_time.y", "-1" }, { "game.panel.emc_magnifier_time.align", "left" }, + { "game.panel.emc_magnifier_time.valign", "top" }, { "game.panel.emc_magnifier_time.chars", "-1" }, { "game.panel.emc_magnifier_time.font", "font.text_2" }, @@ -5478,11 +5530,13 @@ struct ConfigInfo image_config[] = { "game.panel.dynabomb_number.x", "-1" }, { "game.panel.dynabomb_number.y", "-1" }, { "game.panel.dynabomb_number.align", "left" }, + { "game.panel.dynabomb_number.valign", "top" }, { "game.panel.dynabomb_number.chars", "-1" }, { "game.panel.dynabomb_number.font", "font.text_2" }, { "game.panel.dynabomb_size.x", "-1" }, { "game.panel.dynabomb_size.y", "-1" }, { "game.panel.dynabomb_size.align", "left" }, + { "game.panel.dynabomb_size.valign", "top" }, { "game.panel.dynabomb_size.chars", "-1" }, { "game.panel.dynabomb_size.font", "font.text_2" }, { "game.panel.dynabomb_power.x", "-1" }, @@ -5491,17 +5545,20 @@ struct ConfigInfo image_config[] = { "game.panel.penguins.x", "-1" }, { "game.panel.penguins.y", "-1" }, { "game.panel.penguins.align", "left" }, + { "game.panel.penguins.valign", "top" }, { "game.panel.penguins.chars", "-1" }, { "game.panel.penguins.font", "font.text_2" }, { "game.panel.sokoban_objects.x", "-1" }, { "game.panel.sokoban_objects.y", "-1" }, { "game.panel.sokoban_objects.align", "left" }, + { "game.panel.sokoban_objects.valign", "top" }, { "game.panel.sokoban_objects.chars", "-1" }, { "game.panel.sokoban_objects.font", "font.text_2" }, { "game.panel.sokoban_fields.x", "-1" }, { "game.panel.sokoban_fields.y", "-1" }, { "game.panel.sokoban_fields.align", "left" }, + { "game.panel.sokoban_fields.valign", "top" }, { "game.panel.sokoban_fields.chars", "-1" }, { "game.panel.sokoban_fields.font", "font.text_2" }, @@ -5530,6 +5587,7 @@ struct ConfigInfo image_config[] = { "game.panel.magic_wall_time.x", "-1" }, { "game.panel.magic_wall_time.y", "-1" }, { "game.panel.magic_wall_time.align", "left" }, + { "game.panel.magic_wall_time.valign", "top" }, { "game.panel.magic_wall_time.chars", "-1" }, { "game.panel.magic_wall_time.font", "font.text_2" }, { "game.panel.bd_magic_wall.x", "-1" }, @@ -5540,17 +5598,20 @@ struct ConfigInfo image_config[] = { "game.panel.player_name.x", "-1" }, { "game.panel.player_name.y", "-1" }, { "game.panel.player_name.align", "left" }, + { "game.panel.player_name.valign", "top" }, { "game.panel.player_name.chars", "-1" }, { "game.panel.player_name.font", "font.text_2" }, { "game.panel.level_name.x", "-1" }, { "game.panel.level_name.y", "-1" }, { "game.panel.level_name.align", "left" }, + { "game.panel.level_name.valign", "top" }, { "game.panel.level_name.chars", "-1" }, { "game.panel.level_name.font", "font.text_2" }, { "game.panel.level_author.x", "-1" }, { "game.panel.level_author.y", "-1" }, { "game.panel.level_author.align", "left" }, + { "game.panel.level_author.valign", "top" }, { "game.panel.level_author.chars", "-1" }, { "game.panel.level_author.font", "font.text_2" }, diff --git a/src/conf_var.c b/src/conf_var.c index ff66e47a..f8ddce17 100644 --- a/src/conf_var.c +++ b/src/conf_var.c @@ -48,6 +48,10 @@ struct TokenIntPtrInfo image_config_vars[] = "titlemessage_initial_1.align", &titlemessage_initial[0].align }, + { + "titlemessage_initial_1.valign", + &titlemessage_initial[0].valign + }, { "titlemessage_initial_1.font", &titlemessage_initial[0].font @@ -96,6 +100,10 @@ struct TokenIntPtrInfo image_config_vars[] = "titlemessage_initial_2.align", &titlemessage_initial[1].align }, + { + "titlemessage_initial_2.valign", + &titlemessage_initial[1].valign + }, { "titlemessage_initial_2.font", &titlemessage_initial[1].font @@ -144,6 +152,10 @@ struct TokenIntPtrInfo image_config_vars[] = "titlemessage_initial_3.align", &titlemessage_initial[2].align }, + { + "titlemessage_initial_3.valign", + &titlemessage_initial[2].valign + }, { "titlemessage_initial_3.font", &titlemessage_initial[2].font @@ -192,6 +204,10 @@ struct TokenIntPtrInfo image_config_vars[] = "titlemessage_initial_4.align", &titlemessage_initial[3].align }, + { + "titlemessage_initial_4.valign", + &titlemessage_initial[3].valign + }, { "titlemessage_initial_4.font", &titlemessage_initial[3].font @@ -240,6 +256,10 @@ struct TokenIntPtrInfo image_config_vars[] = "titlemessage_initial_5.align", &titlemessage_initial[4].align }, + { + "titlemessage_initial_5.valign", + &titlemessage_initial[4].valign + }, { "titlemessage_initial_5.font", &titlemessage_initial[4].font @@ -288,6 +308,10 @@ struct TokenIntPtrInfo image_config_vars[] = "titlemessage_1.align", &titlemessage[0].align }, + { + "titlemessage_1.valign", + &titlemessage[0].valign + }, { "titlemessage_1.font", &titlemessage[0].font @@ -336,6 +360,10 @@ struct TokenIntPtrInfo image_config_vars[] = "titlemessage_2.align", &titlemessage[1].align }, + { + "titlemessage_2.valign", + &titlemessage[1].valign + }, { "titlemessage_2.font", &titlemessage[1].font @@ -384,6 +412,10 @@ struct TokenIntPtrInfo image_config_vars[] = "titlemessage_3.align", &titlemessage[2].align }, + { + "titlemessage_3.valign", + &titlemessage[2].valign + }, { "titlemessage_3.font", &titlemessage[2].font @@ -432,6 +464,10 @@ struct TokenIntPtrInfo image_config_vars[] = "titlemessage_4.align", &titlemessage[3].align }, + { + "titlemessage_4.valign", + &titlemessage[3].valign + }, { "titlemessage_4.font", &titlemessage[3].font @@ -480,6 +516,10 @@ struct TokenIntPtrInfo image_config_vars[] = "titlemessage_5.align", &titlemessage[4].align }, + { + "titlemessage_5.valign", + &titlemessage[4].valign + }, { "titlemessage_5.font", &titlemessage[4].font @@ -528,6 +568,10 @@ struct TokenIntPtrInfo image_config_vars[] = "readme.align", &readme.align }, + { + "readme.valign", + &readme.valign + }, { "readme.font", &readme.font @@ -836,6 +880,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.name.align", &menu.main.text.name.align }, + { + "main.text.name.valign", + &menu.main.text.name.valign + }, { "main.text.name.font", &menu.main.text.name.font @@ -860,6 +908,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.levels.align", &menu.main.text.levels.align }, + { + "main.text.levels.valign", + &menu.main.text.levels.valign + }, { "main.text.levels.font", &menu.main.text.levels.font @@ -884,6 +936,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.scores.align", &menu.main.text.scores.align }, + { + "main.text.scores.valign", + &menu.main.text.scores.valign + }, { "main.text.scores.font", &menu.main.text.scores.font @@ -908,6 +964,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.editor.align", &menu.main.text.editor.align }, + { + "main.text.editor.valign", + &menu.main.text.editor.valign + }, { "main.text.editor.font", &menu.main.text.editor.font @@ -932,6 +992,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.info.align", &menu.main.text.info.align }, + { + "main.text.info.valign", + &menu.main.text.info.valign + }, { "main.text.info.font", &menu.main.text.info.font @@ -956,6 +1020,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.game.align", &menu.main.text.game.align }, + { + "main.text.game.valign", + &menu.main.text.game.valign + }, { "main.text.game.font", &menu.main.text.game.font @@ -980,6 +1048,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.setup.align", &menu.main.text.setup.align }, + { + "main.text.setup.valign", + &menu.main.text.setup.valign + }, { "main.text.setup.font", &menu.main.text.setup.font @@ -1004,6 +1076,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.quit.align", &menu.main.text.quit.align }, + { + "main.text.quit.valign", + &menu.main.text.quit.valign + }, { "main.text.quit.font", &menu.main.text.quit.font @@ -1020,6 +1096,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.first_level.align", &menu.main.text.first_level.align }, + { + "main.text.first_level.valign", + &menu.main.text.first_level.valign + }, { "main.text.first_level.font", &menu.main.text.first_level.font @@ -1036,6 +1116,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.last_level.align", &menu.main.text.last_level.align }, + { + "main.text.last_level.valign", + &menu.main.text.last_level.valign + }, { "main.text.last_level.font", &menu.main.text.last_level.font @@ -1052,6 +1136,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.level_number.align", &menu.main.text.level_number.align }, + { + "main.text.level_number.valign", + &menu.main.text.level_number.valign + }, { "main.text.level_number.font", &menu.main.text.level_number.font @@ -1068,6 +1156,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.level_info_1.align", &menu.main.text.level_info_1.align }, + { + "main.text.level_info_1.valign", + &menu.main.text.level_info_1.valign + }, { "main.text.level_info_1.chars", &menu.main.text.level_info_1.chars @@ -1088,6 +1180,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.level_info_2.align", &menu.main.text.level_info_2.align }, + { + "main.text.level_info_2.valign", + &menu.main.text.level_info_2.valign + }, { "main.text.level_info_2.chars", &menu.main.text.level_info_2.chars @@ -1112,6 +1208,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.level_name.align", &menu.main.text.level_name.align }, + { + "main.text.level_name.valign", + &menu.main.text.level_name.valign + }, { "main.text.level_name.chars", &menu.main.text.level_name.chars @@ -1132,6 +1232,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.level_author.align", &menu.main.text.level_author.align }, + { + "main.text.level_author.valign", + &menu.main.text.level_author.valign + }, { "main.text.level_author.chars", &menu.main.text.level_author.chars @@ -1152,6 +1256,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.level_year.align", &menu.main.text.level_year.align }, + { + "main.text.level_year.valign", + &menu.main.text.level_year.valign + }, { "main.text.level_year.chars", &menu.main.text.level_year.chars @@ -1172,6 +1280,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.level_imported_from.align", &menu.main.text.level_imported_from.align }, + { + "main.text.level_imported_from.valign", + &menu.main.text.level_imported_from.valign + }, { "main.text.level_imported_from.chars", &menu.main.text.level_imported_from.chars @@ -1192,6 +1304,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.level_imported_by.align", &menu.main.text.level_imported_by.align }, + { + "main.text.level_imported_by.valign", + &menu.main.text.level_imported_by.valign + }, { "main.text.level_imported_by.chars", &menu.main.text.level_imported_by.chars @@ -1212,6 +1328,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.level_tested_by.align", &menu.main.text.level_tested_by.align }, + { + "main.text.level_tested_by.valign", + &menu.main.text.level_tested_by.valign + }, { "main.text.level_tested_by.chars", &menu.main.text.level_tested_by.chars @@ -1232,6 +1352,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.title_1.align", &menu.main.text.title_1.align }, + { + "main.text.title_1.valign", + &menu.main.text.title_1.valign + }, { "main.text.title_1.font", &menu.main.text.title_1.font @@ -1248,6 +1372,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.title_2.align", &menu.main.text.title_2.align }, + { + "main.text.title_2.valign", + &menu.main.text.title_2.valign + }, { "main.text.title_2.font", &menu.main.text.title_2.font @@ -1264,6 +1392,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.title_3.align", &menu.main.text.title_3.align }, + { + "main.text.title_3.valign", + &menu.main.text.title_3.valign + }, { "main.text.title_3.font", &menu.main.text.title_3.font @@ -1280,6 +1412,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.input.name.align", &menu.main.input.name.align }, + { + "main.input.name.valign", + &menu.main.input.name.valign + }, { "main.input.name.font", &menu.main.input.name.font @@ -1296,6 +1432,10 @@ struct TokenIntPtrInfo image_config_vars[] = "preview.align", &preview.align }, + { + "preview.valign", + &preview.valign + }, { "preview.xsize", &preview.xsize @@ -1380,6 +1520,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.level_number.align", &game.panel.level_number.align }, + { + "game.panel.level_number.valign", + &game.panel.level_number.valign + }, { "game.panel.level_number.chars", &game.panel.level_number.chars @@ -1404,6 +1548,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.gems.align", &game.panel.gems.align }, + { + "game.panel.gems.valign", + &game.panel.gems.valign + }, { "game.panel.gems.chars", &game.panel.gems.chars @@ -1424,6 +1572,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.inventory.align", &game.panel.inventory.align }, + { + "game.panel.inventory.valign", + &game.panel.inventory.valign + }, { "game.panel.inventory.chars", &game.panel.inventory.chars @@ -1516,6 +1668,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.key_white_count.align", &game.panel.key_white_count.align }, + { + "game.panel.key_white_count.valign", + &game.panel.key_white_count.valign + }, { "game.panel.key_white_count.chars", &game.panel.key_white_count.chars @@ -1536,6 +1692,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.score.align", &game.panel.score.align }, + { + "game.panel.score.valign", + &game.panel.score.valign + }, { "game.panel.score.chars", &game.panel.score.chars @@ -1556,6 +1716,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.time.align", &game.panel.time.align }, + { + "game.panel.time.valign", + &game.panel.time.valign + }, { "game.panel.time.chars", &game.panel.time.chars @@ -1580,6 +1744,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.time_hh.align", &game.panel.time_hh.align }, + { + "game.panel.time_hh.valign", + &game.panel.time_hh.valign + }, { "game.panel.time_hh.chars", &game.panel.time_hh.chars @@ -1600,6 +1768,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.time_mm.align", &game.panel.time_mm.align }, + { + "game.panel.time_mm.valign", + &game.panel.time_mm.valign + }, { "game.panel.time_mm.chars", &game.panel.time_mm.chars @@ -1620,6 +1792,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.time_ss.align", &game.panel.time_ss.align }, + { + "game.panel.time_ss.valign", + &game.panel.time_ss.valign + }, { "game.panel.time_ss.chars", &game.panel.time_ss.chars @@ -1712,6 +1888,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.shield_normal_time.align", &game.panel.shield_normal_time.align }, + { + "game.panel.shield_normal_time.valign", + &game.panel.shield_normal_time.valign + }, { "game.panel.shield_normal_time.chars", &game.panel.shield_normal_time.chars @@ -1740,6 +1920,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.shield_deadly_time.align", &game.panel.shield_deadly_time.align }, + { + "game.panel.shield_deadly_time.valign", + &game.panel.shield_deadly_time.valign + }, { "game.panel.shield_deadly_time.chars", &game.panel.shield_deadly_time.chars @@ -1816,6 +2000,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.emc_magic_ball_time.align", &game.panel.emc_magic_ball_time.align }, + { + "game.panel.emc_magic_ball_time.valign", + &game.panel.emc_magic_ball_time.valign + }, { "game.panel.emc_magic_ball_time.chars", &game.panel.emc_magic_ball_time.chars @@ -1844,6 +2032,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.light_switch_time.align", &game.panel.light_switch_time.align }, + { + "game.panel.light_switch_time.valign", + &game.panel.light_switch_time.valign + }, { "game.panel.light_switch_time.chars", &game.panel.light_switch_time.chars @@ -1872,6 +2064,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.timegate_switch_time.align", &game.panel.timegate_switch_time.align }, + { + "game.panel.timegate_switch_time.valign", + &game.panel.timegate_switch_time.valign + }, { "game.panel.timegate_switch_time.chars", &game.panel.timegate_switch_time.chars @@ -1908,6 +2104,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.emc_lenses_time.align", &game.panel.emc_lenses_time.align }, + { + "game.panel.emc_lenses_time.valign", + &game.panel.emc_lenses_time.valign + }, { "game.panel.emc_lenses_time.chars", &game.panel.emc_lenses_time.chars @@ -1936,6 +2136,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.emc_magnifier_time.align", &game.panel.emc_magnifier_time.align }, + { + "game.panel.emc_magnifier_time.valign", + &game.panel.emc_magnifier_time.valign + }, { "game.panel.emc_magnifier_time.chars", &game.panel.emc_magnifier_time.chars @@ -1964,6 +2168,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.dynabomb_number.align", &game.panel.dynabomb_number.align }, + { + "game.panel.dynabomb_number.valign", + &game.panel.dynabomb_number.valign + }, { "game.panel.dynabomb_number.chars", &game.panel.dynabomb_number.chars @@ -1984,6 +2192,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.dynabomb_size.align", &game.panel.dynabomb_size.align }, + { + "game.panel.dynabomb_size.valign", + &game.panel.dynabomb_size.valign + }, { "game.panel.dynabomb_size.chars", &game.panel.dynabomb_size.chars @@ -2012,6 +2224,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.penguins.align", &game.panel.penguins.align }, + { + "game.panel.penguins.valign", + &game.panel.penguins.valign + }, { "game.panel.penguins.chars", &game.panel.penguins.chars @@ -2032,6 +2248,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.sokoban_objects.align", &game.panel.sokoban_objects.align }, + { + "game.panel.sokoban_objects.valign", + &game.panel.sokoban_objects.valign + }, { "game.panel.sokoban_objects.chars", &game.panel.sokoban_objects.chars @@ -2052,6 +2272,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.sokoban_fields.align", &game.panel.sokoban_fields.align }, + { + "game.panel.sokoban_fields.valign", + &game.panel.sokoban_fields.valign + }, { "game.panel.sokoban_fields.chars", &game.panel.sokoban_fields.chars @@ -2152,6 +2376,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.magic_wall_time.align", &game.panel.magic_wall_time.align }, + { + "game.panel.magic_wall_time.valign", + &game.panel.magic_wall_time.valign + }, { "game.panel.magic_wall_time.chars", &game.panel.magic_wall_time.chars @@ -2188,6 +2416,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.player_name.align", &game.panel.player_name.align }, + { + "game.panel.player_name.valign", + &game.panel.player_name.valign + }, { "game.panel.player_name.chars", &game.panel.player_name.chars @@ -2208,6 +2440,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.level_name.align", &game.panel.level_name.align }, + { + "game.panel.level_name.valign", + &game.panel.level_name.valign + }, { "game.panel.level_name.chars", &game.panel.level_name.chars @@ -2228,6 +2464,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.level_author.align", &game.panel.level_author.align }, + { + "game.panel.level_author.valign", + &game.panel.level_author.valign + }, { "game.panel.level_author.chars", &game.panel.level_author.chars diff --git a/src/conftime.h b/src/conftime.h index 248978e2..27965c93 100644 --- a/src/conftime.h +++ b/src/conftime.h @@ -1 +1 @@ -#define COMPILE_DATE_STRING "2007-03-14 23:19" +#define COMPILE_DATE_STRING "2007-03-15 03:32" diff --git a/src/game.c b/src/game.c index 17981be5..c257bb40 100644 --- a/src/game.c +++ b/src/game.c @@ -87,16 +87,10 @@ #define EX_TYPE_DYNA (1 << 4) #define EX_TYPE_SINGLE_TILE (EX_TYPE_CENTER | EX_TYPE_BORDER) -#if 1 #define PANEL_OFF() (local_player->LevelSolved_PanelOff) #define PANEL_DEACTIVATED(p) ((p)->x < 0 || (p)->y < 0 || PANEL_OFF()) #define PANEL_XPOS(p) (DX + ALIGNED_TEXT_XPOS(p)) #define PANEL_YPOS(p) (DY + ALIGNED_TEXT_YPOS(p)) -#else -#define PANEL_DEACTIVATED(p) ((p).x < 0 || (p).y < 0) -#define PANEL_XPOS(p) (ALIGNED_XPOS((p).x, (p).width, (p).align)) -#define PANEL_YPOS(p) ((p).y) -#endif /* special positions in the game control window (relative to control window) */ #define XX_LEVEL1 (PANEL_XPOS(game.panel.level)) diff --git a/src/init.c b/src/init.c index 67c612d5..95d9a1ca 100644 --- a/src/init.c +++ b/src/init.c @@ -1020,6 +1020,7 @@ static void set_graphic_parameters(int graphic) graphic_info[graphic].post_delay = -1; graphic_info[graphic].auto_delay = -1; graphic_info[graphic].align = ALIGN_CENTER; /* default for title screens */ + graphic_info[graphic].valign = VALIGN_MIDDLE; /* default for title screens */ graphic_info[graphic].sort_priority = 0; /* default for title screens */ #if 1 @@ -1215,6 +1216,8 @@ static void set_graphic_parameters(int graphic) graphic_info[graphic].auto_delay = parameter[GFX_ARG_AUTO_DELAY]; if (parameter[GFX_ARG_ALIGN] != ARG_UNDEFINED_VALUE) graphic_info[graphic].align = parameter[GFX_ARG_ALIGN]; + if (parameter[GFX_ARG_VALIGN] != ARG_UNDEFINED_VALUE) + graphic_info[graphic].valign = parameter[GFX_ARG_VALIGN]; if (parameter[GFX_ARG_SORT_PRIORITY] != ARG_UNDEFINED_VALUE) graphic_info[graphic].sort_priority = parameter[GFX_ARG_SORT_PRIORITY]; } diff --git a/src/libgame/misc.c b/src/libgame/misc.c index 448b39ce..d0c62ab5 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -1787,7 +1787,15 @@ int get_parameter_value(char *value_raw, char *suffix, int type) { result = (strEqual(value, "left") ? ALIGN_LEFT : strEqual(value, "right") ? ALIGN_RIGHT : - strEqual(value, "center") ? ALIGN_CENTER : ALIGN_DEFAULT); + strEqual(value, "center") ? ALIGN_CENTER : + strEqual(value, "middle") ? ALIGN_CENTER : ALIGN_DEFAULT); + } + else if (strEqual(suffix, ".valign")) + { + result = (strEqual(value, "top") ? VALIGN_TOP : + strEqual(value, "bottom") ? VALIGN_BOTTOM : + strEqual(value, "middle") ? VALIGN_MIDDLE : + strEqual(value, "center") ? VALIGN_MIDDLE : VALIGN_DEFAULT); } else if (strEqual(suffix, ".anim_mode")) { diff --git a/src/libgame/system.h b/src/libgame/system.h index 6df8df04..331522ac 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -205,13 +205,19 @@ #define ALIGN_LEFT (1 << 0) #define ALIGN_RIGHT (1 << 1) #define ALIGN_CENTER (1 << 2) - #define ALIGN_DEFAULT ALIGN_LEFT -#define ALIGNED_XPOS(x,w,a) ((a) == ALIGN_CENTER ? (x) - (w) / 2 : \ - (a) == ALIGN_RIGHT ? (x) - (w) : (x)) -#define ALIGNED_TEXT_XPOS(p) ALIGNED_XPOS((p)->x, (p)->width, (p)->align) -#define ALIGNED_TEXT_YPOS(p) ((p)->y) +#define VALIGN_TOP (1 << 0) +#define VALIGN_BOTTOM (1 << 1) +#define VALIGN_MIDDLE (1 << 2) +#define VALIGN_DEFAULT VALIGN_TOP + +#define ALIGNED_XPOS(x,w,a) ((a) == ALIGN_CENTER ? (x) - (w) / 2 : \ + (a) == ALIGN_RIGHT ? (x) - (w) : (x)) +#define ALIGNED_YPOS(y,h,v) ((v) == VALIGN_MIDDLE ? (y) - (h) / 2 : \ + (v) == VALIGN_BOTTOM ? (y) - (h) : (y)) +#define ALIGNED_TEXT_XPOS(p) ALIGNED_XPOS((p)->x, (p)->width, (p)->align) +#define ALIGNED_TEXT_YPOS(p) ALIGNED_YPOS((p)->y, (p)->height, (p)->valign) /* values for redraw_mask */ #define REDRAW_NONE (0) @@ -1019,14 +1025,14 @@ struct MenuPosInfo { int x, y; int width, height; - int align; + int align, valign; }; struct TextPosInfo { int x, y; int width, height; - int align; + int align, valign; int chars; int font, font_alt; }; diff --git a/src/libgame/text.c b/src/libgame/text.c index 6446ffe2..c8cc667d 100644 --- a/src/libgame/text.c +++ b/src/libgame/text.c @@ -251,6 +251,11 @@ void DrawTextSCentered(int y, int font_nr, char *text) gfx.sy + y, text, font_nr); } +void DrawTextCentered(int y, int font_nr, char *text) +{ + DrawText((gfx.sxsize - getTextWidth(text, font_nr)) / 2, y, text, font_nr); +} + void DrawTextSAligned(int x, int y, char *text, int font_nr, int align) { DrawText(gfx.sx + ALIGNED_XPOS(x, getTextWidth(text, font_nr), align), diff --git a/src/libgame/text.h b/src/libgame/text.h index f5088b4a..46614de5 100644 --- a/src/libgame/text.h +++ b/src/libgame/text.h @@ -77,6 +77,7 @@ void DrawTextF(int, int, int, char *, ...); void DrawTextFCentered(int, int, char *, ...); void DrawTextS(int, int, int, char *); void DrawTextSCentered(int, int, char *); +void DrawTextCentered(int, int, char *); void DrawTextSAligned(int, int, char *, int, int); void DrawTextAligned(int, int, char *, int, int); void DrawText(int, int, char *, int); diff --git a/src/main.h b/src/main.h index 8ea48949..6d80a9b2 100644 --- a/src/main.h +++ b/src/main.h @@ -1792,9 +1792,10 @@ #define GFX_ARG_POST_DELAY 40 #define GFX_ARG_AUTO_DELAY 41 #define GFX_ARG_ALIGN 42 -#define GFX_ARG_SORT_PRIORITY 43 +#define GFX_ARG_VALIGN 43 +#define GFX_ARG_SORT_PRIORITY 44 -#define NUM_GFX_ARGS 44 +#define NUM_GFX_ARGS 45 /* values for sound configuration suffixes */ @@ -1992,15 +1993,6 @@ struct BorderInfo boolean draw_masked[NUM_SPECIAL_GFX_ARGS]; }; -#if 0 -struct MenuPosInfo -{ - int x, y; - int width, height; - int align; -}; -#endif - struct MenuMainButtonInfo { struct MenuPosInfo name; @@ -2068,13 +2060,10 @@ struct TitleInfo struct TitleMessageInfo { - int x; - int y; - int width; - int height; - int chars; - int lines; - int align; + int x, y; + int width, height; + int chars, lines; + int align, valign; int font; boolean autowrap; boolean centered; @@ -2115,7 +2104,7 @@ struct DoorInfo struct PreviewInfo { int x, y; - int align; + int align, valign; int xsize, ysize; int xoffset, yoffset; int tile_size; @@ -2531,7 +2520,7 @@ struct GraphicInfo int fade_delay; /* optional setting for drawing title screens */ int post_delay; /* optional setting for drawing title screens */ int auto_delay; /* optional setting for drawing title screens */ - int align; /* optional setting for drawing title screens */ + int align, valign; /* optional setting for drawing title screens */ int sort_priority; /* optional setting for drawing title screens */ boolean use_image_size; /* use image size as default width and height */ diff --git a/src/screens.c b/src/screens.c index 51a30367..a1ef1ce3 100644 --- a/src/screens.c +++ b/src/screens.c @@ -959,6 +959,7 @@ void DrawTitleScreenMessage(int nr, boolean initial) { char *filename = getLevelSetTitleMessageFilename(nr, initial); struct TitleMessageInfo *tmi = getTitleMessageInfo(nr, initial); +#if 0 int font_nr = FONT_TEXT_1; int font_width; int font_height; @@ -968,27 +969,48 @@ void DrawTitleScreenMessage(int nr, boolean initial) int sy = pad_y; int max_chars_per_line; int max_lines_per_screen; +#endif int last_game_status = game_status; /* save current game status */ if (filename == NULL) return; + /* force MESSAGE font on title message screen */ + game_status = GAME_MODE_MESSAGE; + + /* if chars set to "-1", automatically determine by text and font width */ + if (tmi->chars == -1) + tmi->chars = tmi->width / getFontWidth(tmi->font); + else + tmi->width = tmi->chars * getFontWidth(tmi->font); + + /* if lines set to "-1", automatically determine by text and font height */ + if (tmi->lines == -1) + tmi->lines = tmi->height / getFontHeight(tmi->font); + else + tmi->height = tmi->lines * getFontHeight(tmi->font); + SetDrawBackgroundMask(REDRAW_ALL); SetWindowBackgroundImage(IMG_BACKGROUND_MESSAGE); ClearRectangleOnBackground(drawto, 0, 0, WIN_XSIZE, WIN_YSIZE); - /* force MESSAGE font on title message screen */ - game_status = GAME_MODE_MESSAGE; - +#if 0 font_width = getFontWidth(font_nr); font_height = getFontHeight(font_nr); max_chars_per_line = (WIN_XSIZE - 2 * pad_x) / font_width; max_lines_per_screen = (WIN_YSIZE - pad_y) / font_height - 1; +#endif +#if 1 + DrawTextFile(ALIGNED_TEXT_XPOS(tmi), ALIGNED_TEXT_YPOS(tmi), + filename, tmi->font, tmi->chars, -1, tmi->lines, -1, + tmi->autowrap, tmi->centered, tmi->skip_comments); +#else DrawTextFile(sx, sy, filename, font_nr, max_chars_per_line, -1, max_lines_per_screen, -1, tmi->autowrap, tmi->centered, tmi->skip_comments); +#endif game_status = last_game_status; /* restore current game status */ } @@ -3096,65 +3118,19 @@ void HandleInfoScreen_Version(int button) void DrawInfoScreen_LevelSet() { struct TitleMessageInfo *tmi = &readme; - int ystart1 = mSY - SY + 100; - int ystart2 = mSY - SY + 150; - int ybottom = mSY - SY + SYSIZE - 20; char *filename = getLevelSetInfoFilename(); -#if 1 -#if 1 - int font_nr = tmi->font; -#else - int font_nr = FONT_INFO_LEVELSET; -#endif -#else - int font_nr = FONT_LEVEL_NUMBER; -#endif -#if 0 - int font_width = getFontWidth(font_nr); - int font_height = getFontHeight(font_nr); -#endif -#if 1 -#if 0 - int sx = mSX + ALIGNED_TEXT_XPOS(tmi); - int sy = mSY + ALIGNED_TEXT_YPOS(tmi); -#endif -#if 0 - int width = tmi->width; - int height = tmi->height; -#endif -#else - int pad_x = 32; - int pad_y = 150; - int sx = mSX + pad_x; - int sy = mSY + pad_y; - int width = SXSIZE - 2 * pad_x; - int height = SYSIZE - pad_y; -#endif -#if 1 -#if 0 - int max_chars = tmi->chars; - int max_lines = tmi->lines; -#endif -#else - int max_chars_per_line = width / font_width; -#if 1 - int max_lines_per_screen = height / font_height; -#else - int max_lines_per_screen = height / font_height - 1; /* minus footer line */ -#endif -#endif /* if chars set to "-1", automatically determine by text and font width */ if (tmi->chars == -1) - tmi->chars = tmi->width / getFontWidth(font_nr); + tmi->chars = tmi->width / getFontWidth(tmi->font); else - tmi->width = tmi->chars * getFontWidth(font_nr); + tmi->width = tmi->chars * getFontWidth(tmi->font); /* if lines set to "-1", automatically determine by text and font height */ if (tmi->lines == -1) - tmi->lines = tmi->height / getFontHeight(font_nr); + tmi->lines = tmi->height / getFontHeight(tmi->font); else - tmi->height = tmi->lines * getFontHeight(font_nr); + tmi->height = tmi->lines * getFontHeight(tmi->font); SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_LEVELSET); @@ -3163,18 +3139,18 @@ void DrawInfoScreen_LevelSet() ClearWindow(); DrawHeadline(); - DrawTextSCentered(ystart1, FONT_TEXT_1, "Level Set Information:"); - - DrawTextSCentered(ybottom, FONT_TEXT_4, - "Press any key or button for info menu"); + DrawTextCentered(mSY + 100, FONT_TEXT_1, "Level Set Information:"); if (filename != NULL) DrawTextFile(mSX + ALIGNED_TEXT_XPOS(tmi), mSY + ALIGNED_TEXT_YPOS(tmi), - filename, font_nr, tmi->chars, -1, tmi->lines, -1, + filename, tmi->font, tmi->chars, -1, tmi->lines, -1, tmi->autowrap, tmi->centered, tmi->skip_comments); else - DrawTextSCentered(ystart2, FONT_TEXT_2, - "No information for this level set."); + DrawTextCentered(mSY + ALIGNED_TEXT_YPOS(tmi), FONT_TEXT_2, + "No information for this level set."); + + DrawTextCentered(mSY + SYSIZE - 20, FONT_TEXT_4, + "Press any key or button for info menu"); FadeIn(REDRAW_FIELD); } diff --git a/src/tools.c b/src/tools.c index 61ae3e71..558e83a6 100644 --- a/src/tools.c +++ b/src/tools.c @@ -1766,7 +1766,11 @@ static void DrawPreviewLevelExt(int from_x, int from_y) int real_preview_xsize = MIN(level_xsize, preview.xsize); int real_preview_ysize = MIN(level_ysize, preview.ysize); int dst_x = SX + ALIGNED_XPOS(preview.x, preview_width, preview.align); +#if 1 + int dst_y = SY + ALIGNED_YPOS(preview.y, preview_height, preview.valign); +#else int dst_y = SY + preview.y; +#endif int x, y; DrawBackground(dst_x, dst_y, preview_width, preview_height);