From: Holger Schemel Date: Tue, 3 Apr 2007 00:01:57 +0000 (+0200) Subject: rnd-20070403-1-src X-Git-Tag: 3.2.4^2~48 X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=commitdiff_plain;h=7b387b9e5e8095a01c18ea041f19d71be83146b9 rnd-20070403-1-src * added attribute ".tile_size" for element style game panel controls --- diff --git a/ChangeLog b/ChangeLog index e15d9e8e..6198cbd2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2007-04-02 + * added attribute ".tile_size" for element style game panel controls + 2007-04-01 * added key as additional valid key to use for confirm requester diff --git a/src/conf_gfx.c b/src/conf_gfx.c index c7469e7e..7034a099 100644 --- a/src/conf_gfx.c +++ b/src/conf_gfx.c @@ -5376,16 +5376,19 @@ struct ConfigInfo image_config[] = { "main.text.first_level.y", "98" }, { "main.text.first_level.align", "left" }, { "main.text.first_level.valign", "top" }, + { "main.text.first_level.digits", "3" }, { "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.digits", "3" }, { "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.digits", "3" }, { "main.text.level_number.font", "font.value_1" }, { "main.text.level_info_1.x", "272" }, { "main.text.level_info_1.y", "352" }, @@ -5416,7 +5419,7 @@ struct ConfigInfo image_config[] = { "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.digits", "-1" }, { "main.text.level_year.font", "font.text_2" }, { "main.text.level_imported_from.x", "-1" }, { "main.text.level_imported_from.y", "-1" }, @@ -5487,7 +5490,7 @@ struct ConfigInfo image_config[] = { "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.digits", "-1" }, { "game.panel.level_number.font", "font.text_2" }, { "game.panel.level_number.font_narrow", "font.text_1" }, @@ -5495,53 +5498,112 @@ struct ConfigInfo image_config[] = { "game.panel.gems.y", "54" }, { "game.panel.gems.align", "center" }, { "game.panel.gems.valign", "top" }, - { "game.panel.gems.chars", "3" }, + { "game.panel.gems.digits", "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" }, + { "game.panel.inventory_count.x", "50" }, + { "game.panel.inventory_count.y", "89" }, + { "game.panel.inventory_count.align", "center" }, + { "game.panel.inventory_count.valign", "top" }, + { "game.panel.inventory_count.digits", "3" }, + { "game.panel.inventory_count.font", "font.text_2" }, + + { "game.panel.inventory_first_1.x", "-1" }, + { "game.panel.inventory_first_1.y", "-1" }, + { "game.panel.inventory_first_1.tile_size", "16" }, + { "game.panel.inventory_first_2.x", "-1" }, + { "game.panel.inventory_first_2.y", "-1" }, + { "game.panel.inventory_first_2.tile_size", "16" }, + { "game.panel.inventory_first_3.x", "-1" }, + { "game.panel.inventory_first_3.y", "-1" }, + { "game.panel.inventory_first_3.tile_size", "16" }, + { "game.panel.inventory_first_4.x", "-1" }, + { "game.panel.inventory_first_4.y", "-1" }, + { "game.panel.inventory_first_4.tile_size", "16" }, + { "game.panel.inventory_first_5.x", "-1" }, + { "game.panel.inventory_first_5.y", "-1" }, + { "game.panel.inventory_first_5.tile_size", "16" }, + { "game.panel.inventory_first_6.x", "-1" }, + { "game.panel.inventory_first_6.y", "-1" }, + { "game.panel.inventory_first_6.tile_size", "16" }, + { "game.panel.inventory_first_7.x", "-1" }, + { "game.panel.inventory_first_7.y", "-1" }, + { "game.panel.inventory_first_7.tile_size", "16" }, + { "game.panel.inventory_first_8.x", "-1" }, + { "game.panel.inventory_first_8.y", "-1" }, + { "game.panel.inventory_first_8.tile_size", "16" }, + + { "game.panel.inventory_last_1.x", "-1" }, + { "game.panel.inventory_last_1.y", "-1" }, + { "game.panel.inventory_last_1.tile_size", "16" }, + { "game.panel.inventory_last_2.x", "-1" }, + { "game.panel.inventory_last_2.y", "-1" }, + { "game.panel.inventory_last_2.tile_size", "16" }, + { "game.panel.inventory_last_3.x", "-1" }, + { "game.panel.inventory_last_3.y", "-1" }, + { "game.panel.inventory_last_3.tile_size", "16" }, + { "game.panel.inventory_last_4.x", "-1" }, + { "game.panel.inventory_last_4.y", "-1" }, + { "game.panel.inventory_last_4.tile_size", "16" }, + { "game.panel.inventory_last_5.x", "-1" }, + { "game.panel.inventory_last_5.y", "-1" }, + { "game.panel.inventory_last_5.tile_size", "16" }, + { "game.panel.inventory_last_6.x", "-1" }, + { "game.panel.inventory_last_6.y", "-1" }, + { "game.panel.inventory_last_6.tile_size", "16" }, + { "game.panel.inventory_last_7.x", "-1" }, + { "game.panel.inventory_last_7.y", "-1" }, + { "game.panel.inventory_last_7.tile_size", "16" }, + { "game.panel.inventory_last_8.x", "-1" }, + { "game.panel.inventory_last_8.y", "-1" }, + { "game.panel.inventory_last_8.tile_size", "16" }, { "game.panel.key_1.x", "18" }, { "game.panel.key_1.y", "123" }, + { "game.panel.key_1.tile_size", "16" }, { "game.panel.key_2.x", "34" }, { "game.panel.key_2.y", "123" }, + { "game.panel.key_2.tile_size", "16" }, { "game.panel.key_3.x", "50" }, { "game.panel.key_3.y", "123" }, + { "game.panel.key_3.tile_size", "16" }, { "game.panel.key_4.x", "66" }, { "game.panel.key_4.y", "123" }, + { "game.panel.key_4.tile_size", "16" }, { "game.panel.key_5.x", "-1" }, { "game.panel.key_5.y", "-1" }, + { "game.panel.key_5.tile_size", "16" }, { "game.panel.key_6.x", "-1" }, { "game.panel.key_6.y", "-1" }, + { "game.panel.key_6.tile_size", "16" }, { "game.panel.key_7.x", "-1" }, { "game.panel.key_7.y", "-1" }, + { "game.panel.key_7.tile_size", "16" }, { "game.panel.key_8.x", "-1" }, { "game.panel.key_8.y", "-1" }, + { "game.panel.key_8.tile_size", "16" }, { "game.panel.key_white.x", "-1" }, { "game.panel.key_white.y", "-1" }, + { "game.panel.key_white.tile_size", "16" }, { "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.digits", "-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.digits", "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.digits", "-1" }, { "game.panel.time.font", "font.text_2" }, { "game.panel.time.font_narrow", "font.text_1" }, @@ -5549,180 +5611,191 @@ struct ConfigInfo image_config[] = { "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.digits", "2" }, { "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.digits", "2" }, { "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.digits", "2" }, { "game.panel.time_ss.font", "font.text_2" }, - { "game.panel.drop_next_1.x", "-1" }, - { "game.panel.drop_next_1.y", "-1" }, - { "game.panel.drop_next_2.x", "-1" }, - { "game.panel.drop_next_2.y", "-1" }, - { "game.panel.drop_next_3.x", "-1" }, - { "game.panel.drop_next_3.y", "-1" }, - { "game.panel.drop_next_4.x", "-1" }, - { "game.panel.drop_next_4.y", "-1" }, - { "game.panel.drop_next_5.x", "-1" }, - { "game.panel.drop_next_5.y", "-1" }, - { "game.panel.drop_next_6.x", "-1" }, - { "game.panel.drop_next_6.y", "-1" }, - { "game.panel.drop_next_7.x", "-1" }, - { "game.panel.drop_next_7.y", "-1" }, - { "game.panel.drop_next_8.x", "-1" }, - { "game.panel.drop_next_8.y", "-1" }, - { "game.panel.shield_normal.x", "-1" }, { "game.panel.shield_normal.y", "-1" }, + { "game.panel.shield_normal.tile_size", "16" }, { "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.digits", "-1" }, { "game.panel.shield_normal_time.font", "font.text_2" }, { "game.panel.shield_deadly.x", "-1" }, { "game.panel.shield_deadly.y", "-1" }, + { "game.panel.shield_deadly.tile_size", "16" }, { "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.digits", "-1" }, { "game.panel.shield_deadly_time.font", "font.text_2" }, { "game.panel.exit.x", "-1" }, { "game.panel.exit.y", "-1" }, + { "game.panel.exit.tile_size", "16" }, { "game.panel.em_exit.x", "-1" }, { "game.panel.em_exit.y", "-1" }, + { "game.panel.em_exit.tile_size", "16" }, { "game.panel.sp_exit.x", "-1" }, { "game.panel.sp_exit.y", "-1" }, + { "game.panel.sp_exit.tile_size", "16" }, { "game.panel.steel_exit.x", "-1" }, { "game.panel.steel_exit.y", "-1" }, + { "game.panel.steel_exit.tile_size", "16" }, { "game.panel.em_steel_exit.x", "-1" }, { "game.panel.em_steel_exit.y", "-1" }, + { "game.panel.em_steel_exit.tile_size", "16" }, { "game.panel.emc_magic_ball.x", "-1" }, { "game.panel.emc_magic_ball.y", "-1" }, + { "game.panel.emc_magic_ball.tile_size", "16" }, { "game.panel.emc_magic_ball_switch.x", "-1" }, { "game.panel.emc_magic_ball_switch.y", "-1" }, + { "game.panel.emc_magic_ball_switch.tile_size", "16" }, { "game.panel.light_switch.x", "-1" }, { "game.panel.light_switch.y", "-1" }, + { "game.panel.light_switch.tile_size", "16" }, { "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.digits", "-1" }, { "game.panel.light_switch_time.font", "font.text_2" }, { "game.panel.timegate_switch.x", "-1" }, { "game.panel.timegate_switch.y", "-1" }, + { "game.panel.timegate_switch.tile_size", "16" }, { "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.digits", "-1" }, { "game.panel.timegate_switch_time.font", "font.text_2" }, { "game.panel.switchgate_switch.x", "-1" }, { "game.panel.switchgate_switch.y", "-1" }, + { "game.panel.switchgate_switch.tile_size", "16" }, { "game.panel.emc_lenses.x", "-1" }, { "game.panel.emc_lenses.y", "-1" }, + { "game.panel.emc_lenses.tile_size", "16" }, { "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.digits", "-1" }, { "game.panel.emc_lenses_time.font", "font.text_2" }, { "game.panel.emc_magnifier.x", "-1" }, { "game.panel.emc_magnifier.y", "-1" }, + { "game.panel.emc_magnifier.tile_size", "16" }, { "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.digits", "-1" }, { "game.panel.emc_magnifier_time.font", "font.text_2" }, { "game.panel.balloon_switch.x", "-1" }, { "game.panel.balloon_switch.y", "-1" }, + { "game.panel.balloon_switch.tile_size", "16" }, { "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.digits", "-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.digits", "-1" }, { "game.panel.dynabomb_size.font", "font.text_2" }, { "game.panel.dynabomb_power.x", "-1" }, { "game.panel.dynabomb_power.y", "-1" }, + { "game.panel.dynabomb_power.tile_size", "16" }, { "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.digits", "-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.digits", "-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.digits", "-1" }, { "game.panel.sokoban_fields.font", "font.text_2" }, { "game.panel.robot_wheel.x", "-1" }, { "game.panel.robot_wheel.y", "-1" }, + { "game.panel.robot_wheel.tile_size", "16" }, { "game.panel.conveyor_belt_1.x", "-1" }, { "game.panel.conveyor_belt_1.y", "-1" }, + { "game.panel.conveyor_belt_1.tile_size", "16" }, { "game.panel.conveyor_belt_1_switch.x", "-1" }, { "game.panel.conveyor_belt_1_switch.y", "-1" }, + { "game.panel.conveyor_belt_1_switch.tile_size", "16" }, { "game.panel.conveyor_belt_2.x", "-1" }, { "game.panel.conveyor_belt_2.y", "-1" }, + { "game.panel.conveyor_belt_2.tile_size", "16" }, { "game.panel.conveyor_belt_2_switch.x", "-1" }, { "game.panel.conveyor_belt_2_switch.y", "-1" }, + { "game.panel.conveyor_belt_2_switch.tile_size", "16" }, { "game.panel.conveyor_belt_3.x", "-1" }, { "game.panel.conveyor_belt_3.y", "-1" }, + { "game.panel.conveyor_belt_3.tile_size", "16" }, { "game.panel.conveyor_belt_3_switch.x", "-1" }, { "game.panel.conveyor_belt_3_switch.y", "-1" }, + { "game.panel.conveyor_belt_3_switch.tile_size", "16" }, { "game.panel.conveyor_belt_4.x", "-1" }, { "game.panel.conveyor_belt_4.y", "-1" }, + { "game.panel.conveyor_belt_4.tile_size", "16" }, { "game.panel.conveyor_belt_4_switch.x", "-1" }, { "game.panel.conveyor_belt_4_switch.y", "-1" }, + { "game.panel.conveyor_belt_4_switch.tile_size", "16" }, { "game.panel.magic_wall.x", "-1" }, { "game.panel.magic_wall.y", "-1" }, + { "game.panel.magic_wall.tile_size", "16" }, { "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.digits", "-1" }, { "game.panel.magic_wall_time.font", "font.text_2" }, { "game.panel.bd_magic_wall.x", "-1" }, { "game.panel.bd_magic_wall.y", "-1" }, + { "game.panel.bd_magic_wall.tile_size", "16" }, { "game.panel.dc_magic_wall.x", "-1" }, { "game.panel.dc_magic_wall.y", "-1" }, + { "game.panel.dc_magic_wall.tile_size", "16" }, { "game.panel.player_name.x", "-1" }, { "game.panel.player_name.y", "-1" }, diff --git a/src/conf_var.c b/src/conf_var.c index 38ab1c56..58cae465 100644 --- a/src/conf_var.c +++ b/src/conf_var.c @@ -1548,6 +1548,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.first_level.valign", &menu.main.text.first_level.valign }, + { + "main.text.first_level.digits", + &menu.main.text.first_level.size + }, { "main.text.first_level.font", &menu.main.text.first_level.font @@ -1568,6 +1572,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.last_level.valign", &menu.main.text.last_level.valign }, + { + "main.text.last_level.digits", + &menu.main.text.last_level.size + }, { "main.text.last_level.font", &menu.main.text.last_level.font @@ -1588,6 +1596,10 @@ struct TokenIntPtrInfo image_config_vars[] = "main.text.level_number.valign", &menu.main.text.level_number.valign }, + { + "main.text.level_number.digits", + &menu.main.text.level_number.size + }, { "main.text.level_number.font", &menu.main.text.level_number.font @@ -1610,7 +1622,7 @@ struct TokenIntPtrInfo image_config_vars[] = }, { "main.text.level_info_1.chars", - &menu.main.text.level_info_1.chars + &menu.main.text.level_info_1.size }, { "main.text.level_info_1.font", @@ -1634,7 +1646,7 @@ struct TokenIntPtrInfo image_config_vars[] = }, { "main.text.level_info_2.chars", - &menu.main.text.level_info_2.chars + &menu.main.text.level_info_2.size }, { "main.text.level_info_2.font", @@ -1662,7 +1674,7 @@ struct TokenIntPtrInfo image_config_vars[] = }, { "main.text.level_name.chars", - &menu.main.text.level_name.chars + &menu.main.text.level_name.size }, { "main.text.level_name.font", @@ -1686,7 +1698,7 @@ struct TokenIntPtrInfo image_config_vars[] = }, { "main.text.level_author.chars", - &menu.main.text.level_author.chars + &menu.main.text.level_author.size }, { "main.text.level_author.font", @@ -1709,8 +1721,8 @@ struct TokenIntPtrInfo image_config_vars[] = &menu.main.text.level_year.valign }, { - "main.text.level_year.chars", - &menu.main.text.level_year.chars + "main.text.level_year.digits", + &menu.main.text.level_year.size }, { "main.text.level_year.font", @@ -1734,7 +1746,7 @@ struct TokenIntPtrInfo image_config_vars[] = }, { "main.text.level_imported_from.chars", - &menu.main.text.level_imported_from.chars + &menu.main.text.level_imported_from.size }, { "main.text.level_imported_from.font", @@ -1758,7 +1770,7 @@ struct TokenIntPtrInfo image_config_vars[] = }, { "main.text.level_imported_by.chars", - &menu.main.text.level_imported_by.chars + &menu.main.text.level_imported_by.size }, { "main.text.level_imported_by.font", @@ -1782,7 +1794,7 @@ struct TokenIntPtrInfo image_config_vars[] = }, { "main.text.level_tested_by.chars", - &menu.main.text.level_tested_by.chars + &menu.main.text.level_tested_by.size }, { "main.text.level_tested_by.font", @@ -1973,8 +1985,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.level_number.valign }, { - "game.panel.level_number.chars", - &game.panel.level_number.chars + "game.panel.level_number.digits", + &game.panel.level_number.size }, { "game.panel.level_number.font", @@ -2001,36 +2013,228 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.gems.valign }, { - "game.panel.gems.chars", - &game.panel.gems.chars + "game.panel.gems.digits", + &game.panel.gems.size }, { "game.panel.gems.font", &game.panel.gems.font }, { - "game.panel.inventory.x", - &game.panel.inventory.x + "game.panel.inventory_count.x", + &game.panel.inventory_count.x + }, + { + "game.panel.inventory_count.y", + &game.panel.inventory_count.y + }, + { + "game.panel.inventory_count.align", + &game.panel.inventory_count.align + }, + { + "game.panel.inventory_count.valign", + &game.panel.inventory_count.valign + }, + { + "game.panel.inventory_count.digits", + &game.panel.inventory_count.size + }, + { + "game.panel.inventory_count.font", + &game.panel.inventory_count.font + }, + { + "game.panel.inventory_first_1.x", + &game.panel.inventory_first_1.x + }, + { + "game.panel.inventory_first_1.y", + &game.panel.inventory_first_1.y + }, + { + "game.panel.inventory_first_1.tile_size", + &game.panel.inventory_first_1.size + }, + { + "game.panel.inventory_first_2.x", + &game.panel.inventory_first_2.x + }, + { + "game.panel.inventory_first_2.y", + &game.panel.inventory_first_2.y + }, + { + "game.panel.inventory_first_2.tile_size", + &game.panel.inventory_first_2.size + }, + { + "game.panel.inventory_first_3.x", + &game.panel.inventory_first_3.x + }, + { + "game.panel.inventory_first_3.y", + &game.panel.inventory_first_3.y + }, + { + "game.panel.inventory_first_3.tile_size", + &game.panel.inventory_first_3.size + }, + { + "game.panel.inventory_first_4.x", + &game.panel.inventory_first_4.x + }, + { + "game.panel.inventory_first_4.y", + &game.panel.inventory_first_4.y + }, + { + "game.panel.inventory_first_4.tile_size", + &game.panel.inventory_first_4.size + }, + { + "game.panel.inventory_first_5.x", + &game.panel.inventory_first_5.x + }, + { + "game.panel.inventory_first_5.y", + &game.panel.inventory_first_5.y + }, + { + "game.panel.inventory_first_5.tile_size", + &game.panel.inventory_first_5.size + }, + { + "game.panel.inventory_first_6.x", + &game.panel.inventory_first_6.x + }, + { + "game.panel.inventory_first_6.y", + &game.panel.inventory_first_6.y + }, + { + "game.panel.inventory_first_6.tile_size", + &game.panel.inventory_first_6.size }, { - "game.panel.inventory.y", - &game.panel.inventory.y + "game.panel.inventory_first_7.x", + &game.panel.inventory_first_7.x }, { - "game.panel.inventory.align", - &game.panel.inventory.align + "game.panel.inventory_first_7.y", + &game.panel.inventory_first_7.y }, { - "game.panel.inventory.valign", - &game.panel.inventory.valign + "game.panel.inventory_first_7.tile_size", + &game.panel.inventory_first_7.size }, { - "game.panel.inventory.chars", - &game.panel.inventory.chars + "game.panel.inventory_first_8.x", + &game.panel.inventory_first_8.x }, { - "game.panel.inventory.font", - &game.panel.inventory.font + "game.panel.inventory_first_8.y", + &game.panel.inventory_first_8.y + }, + { + "game.panel.inventory_first_8.tile_size", + &game.panel.inventory_first_8.size + }, + { + "game.panel.inventory_last_1.x", + &game.panel.inventory_last_1.x + }, + { + "game.panel.inventory_last_1.y", + &game.panel.inventory_last_1.y + }, + { + "game.panel.inventory_last_1.tile_size", + &game.panel.inventory_last_1.size + }, + { + "game.panel.inventory_last_2.x", + &game.panel.inventory_last_2.x + }, + { + "game.panel.inventory_last_2.y", + &game.panel.inventory_last_2.y + }, + { + "game.panel.inventory_last_2.tile_size", + &game.panel.inventory_last_2.size + }, + { + "game.panel.inventory_last_3.x", + &game.panel.inventory_last_3.x + }, + { + "game.panel.inventory_last_3.y", + &game.panel.inventory_last_3.y + }, + { + "game.panel.inventory_last_3.tile_size", + &game.panel.inventory_last_3.size + }, + { + "game.panel.inventory_last_4.x", + &game.panel.inventory_last_4.x + }, + { + "game.panel.inventory_last_4.y", + &game.panel.inventory_last_4.y + }, + { + "game.panel.inventory_last_4.tile_size", + &game.panel.inventory_last_4.size + }, + { + "game.panel.inventory_last_5.x", + &game.panel.inventory_last_5.x + }, + { + "game.panel.inventory_last_5.y", + &game.panel.inventory_last_5.y + }, + { + "game.panel.inventory_last_5.tile_size", + &game.panel.inventory_last_5.size + }, + { + "game.panel.inventory_last_6.x", + &game.panel.inventory_last_6.x + }, + { + "game.panel.inventory_last_6.y", + &game.panel.inventory_last_6.y + }, + { + "game.panel.inventory_last_6.tile_size", + &game.panel.inventory_last_6.size + }, + { + "game.panel.inventory_last_7.x", + &game.panel.inventory_last_7.x + }, + { + "game.panel.inventory_last_7.y", + &game.panel.inventory_last_7.y + }, + { + "game.panel.inventory_last_7.tile_size", + &game.panel.inventory_last_7.size + }, + { + "game.panel.inventory_last_8.x", + &game.panel.inventory_last_8.x + }, + { + "game.panel.inventory_last_8.y", + &game.panel.inventory_last_8.y + }, + { + "game.panel.inventory_last_8.tile_size", + &game.panel.inventory_last_8.size }, { "game.panel.key_1.x", @@ -2040,6 +2244,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.key_1.y", &game.panel.key[0].y }, + { + "game.panel.key_1.tile_size", + &game.panel.key[0].size + }, { "game.panel.key_2.x", &game.panel.key[1].x @@ -2048,6 +2256,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.key_2.y", &game.panel.key[1].y }, + { + "game.panel.key_2.tile_size", + &game.panel.key[1].size + }, { "game.panel.key_3.x", &game.panel.key[2].x @@ -2056,6 +2268,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.key_3.y", &game.panel.key[2].y }, + { + "game.panel.key_3.tile_size", + &game.panel.key[2].size + }, { "game.panel.key_4.x", &game.panel.key[3].x @@ -2064,6 +2280,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.key_4.y", &game.panel.key[3].y }, + { + "game.panel.key_4.tile_size", + &game.panel.key[3].size + }, { "game.panel.key_5.x", &game.panel.key[4].x @@ -2072,6 +2292,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.key_5.y", &game.panel.key[4].y }, + { + "game.panel.key_5.tile_size", + &game.panel.key[4].size + }, { "game.panel.key_6.x", &game.panel.key[5].x @@ -2080,6 +2304,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.key_6.y", &game.panel.key[5].y }, + { + "game.panel.key_6.tile_size", + &game.panel.key[5].size + }, { "game.panel.key_7.x", &game.panel.key[6].x @@ -2088,6 +2316,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.key_7.y", &game.panel.key[6].y }, + { + "game.panel.key_7.tile_size", + &game.panel.key[6].size + }, { "game.panel.key_8.x", &game.panel.key[7].x @@ -2096,6 +2328,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.key_8.y", &game.panel.key[7].y }, + { + "game.panel.key_8.tile_size", + &game.panel.key[7].size + }, { "game.panel.key_white.x", &game.panel.key_white.x @@ -2104,6 +2340,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.key_white.y", &game.panel.key_white.y }, + { + "game.panel.key_white.tile_size", + &game.panel.key_white.size + }, { "game.panel.key_white_count.x", &game.panel.key_white_count.x @@ -2121,8 +2361,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.key_white_count.valign }, { - "game.panel.key_white_count.chars", - &game.panel.key_white_count.chars + "game.panel.key_white_count.digits", + &game.panel.key_white_count.size }, { "game.panel.key_white_count.font", @@ -2145,8 +2385,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.score.valign }, { - "game.panel.score.chars", - &game.panel.score.chars + "game.panel.score.digits", + &game.panel.score.size }, { "game.panel.score.font", @@ -2169,8 +2409,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.time.valign }, { - "game.panel.time.chars", - &game.panel.time.chars + "game.panel.time.digits", + &game.panel.time.size }, { "game.panel.time.font", @@ -2197,8 +2437,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.time_hh.valign }, { - "game.panel.time_hh.chars", - &game.panel.time_hh.chars + "game.panel.time_hh.digits", + &game.panel.time_hh.size }, { "game.panel.time_hh.font", @@ -2221,8 +2461,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.time_mm.valign }, { - "game.panel.time_mm.chars", - &game.panel.time_mm.chars + "game.panel.time_mm.digits", + &game.panel.time_mm.size }, { "game.panel.time_mm.font", @@ -2245,77 +2485,13 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.time_ss.valign }, { - "game.panel.time_ss.chars", - &game.panel.time_ss.chars + "game.panel.time_ss.digits", + &game.panel.time_ss.size }, { "game.panel.time_ss.font", &game.panel.time_ss.font }, - { - "game.panel.drop_next_1.x", - &game.panel.drop_next_1.x - }, - { - "game.panel.drop_next_1.y", - &game.panel.drop_next_1.y - }, - { - "game.panel.drop_next_2.x", - &game.panel.drop_next_2.x - }, - { - "game.panel.drop_next_2.y", - &game.panel.drop_next_2.y - }, - { - "game.panel.drop_next_3.x", - &game.panel.drop_next_3.x - }, - { - "game.panel.drop_next_3.y", - &game.panel.drop_next_3.y - }, - { - "game.panel.drop_next_4.x", - &game.panel.drop_next_4.x - }, - { - "game.panel.drop_next_4.y", - &game.panel.drop_next_4.y - }, - { - "game.panel.drop_next_5.x", - &game.panel.drop_next_5.x - }, - { - "game.panel.drop_next_5.y", - &game.panel.drop_next_5.y - }, - { - "game.panel.drop_next_6.x", - &game.panel.drop_next_6.x - }, - { - "game.panel.drop_next_6.y", - &game.panel.drop_next_6.y - }, - { - "game.panel.drop_next_7.x", - &game.panel.drop_next_7.x - }, - { - "game.panel.drop_next_7.y", - &game.panel.drop_next_7.y - }, - { - "game.panel.drop_next_8.x", - &game.panel.drop_next_8.x - }, - { - "game.panel.drop_next_8.y", - &game.panel.drop_next_8.y - }, { "game.panel.shield_normal.x", &game.panel.shield_normal.x @@ -2324,6 +2500,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.shield_normal.y", &game.panel.shield_normal.y }, + { + "game.panel.shield_normal.tile_size", + &game.panel.shield_normal.size + }, { "game.panel.shield_normal_time.x", &game.panel.shield_normal_time.x @@ -2341,8 +2521,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.shield_normal_time.valign }, { - "game.panel.shield_normal_time.chars", - &game.panel.shield_normal_time.chars + "game.panel.shield_normal_time.digits", + &game.panel.shield_normal_time.size }, { "game.panel.shield_normal_time.font", @@ -2356,6 +2536,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.shield_deadly.y", &game.panel.shield_deadly.y }, + { + "game.panel.shield_deadly.tile_size", + &game.panel.shield_deadly.size + }, { "game.panel.shield_deadly_time.x", &game.panel.shield_deadly_time.x @@ -2373,8 +2557,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.shield_deadly_time.valign }, { - "game.panel.shield_deadly_time.chars", - &game.panel.shield_deadly_time.chars + "game.panel.shield_deadly_time.digits", + &game.panel.shield_deadly_time.size }, { "game.panel.shield_deadly_time.font", @@ -2388,6 +2572,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.exit.y", &game.panel.exit.y }, + { + "game.panel.exit.tile_size", + &game.panel.exit.size + }, { "game.panel.em_exit.x", &game.panel.em_exit.x @@ -2396,6 +2584,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.em_exit.y", &game.panel.em_exit.y }, + { + "game.panel.em_exit.tile_size", + &game.panel.em_exit.size + }, { "game.panel.sp_exit.x", &game.panel.sp_exit.x @@ -2404,6 +2596,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.sp_exit.y", &game.panel.sp_exit.y }, + { + "game.panel.sp_exit.tile_size", + &game.panel.sp_exit.size + }, { "game.panel.steel_exit.x", &game.panel.steel_exit.x @@ -2412,6 +2608,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.steel_exit.y", &game.panel.steel_exit.y }, + { + "game.panel.steel_exit.tile_size", + &game.panel.steel_exit.size + }, { "game.panel.em_steel_exit.x", &game.panel.em_steel_exit.x @@ -2420,6 +2620,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.em_steel_exit.y", &game.panel.em_steel_exit.y }, + { + "game.panel.em_steel_exit.tile_size", + &game.panel.em_steel_exit.size + }, { "game.panel.emc_magic_ball.x", &game.panel.emc_magic_ball.x @@ -2428,6 +2632,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.emc_magic_ball.y", &game.panel.emc_magic_ball.y }, + { + "game.panel.emc_magic_ball.tile_size", + &game.panel.emc_magic_ball.size + }, { "game.panel.emc_magic_ball_switch.x", &game.panel.emc_magic_ball_switch.x @@ -2436,6 +2644,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.emc_magic_ball_switch.y", &game.panel.emc_magic_ball_switch.y }, + { + "game.panel.emc_magic_ball_switch.tile_size", + &game.panel.emc_magic_ball_switch.size + }, { "game.panel.light_switch.x", &game.panel.light_switch.x @@ -2444,6 +2656,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.light_switch.y", &game.panel.light_switch.y }, + { + "game.panel.light_switch.tile_size", + &game.panel.light_switch.size + }, { "game.panel.light_switch_time.x", &game.panel.light_switch_time.x @@ -2461,8 +2677,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.light_switch_time.valign }, { - "game.panel.light_switch_time.chars", - &game.panel.light_switch_time.chars + "game.panel.light_switch_time.digits", + &game.panel.light_switch_time.size }, { "game.panel.light_switch_time.font", @@ -2476,6 +2692,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.timegate_switch.y", &game.panel.timegate_switch.y }, + { + "game.panel.timegate_switch.tile_size", + &game.panel.timegate_switch.size + }, { "game.panel.timegate_switch_time.x", &game.panel.timegate_switch_time.x @@ -2493,8 +2713,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.timegate_switch_time.valign }, { - "game.panel.timegate_switch_time.chars", - &game.panel.timegate_switch_time.chars + "game.panel.timegate_switch_time.digits", + &game.panel.timegate_switch_time.size }, { "game.panel.timegate_switch_time.font", @@ -2508,6 +2728,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.switchgate_switch.y", &game.panel.switchgate_switch.y }, + { + "game.panel.switchgate_switch.tile_size", + &game.panel.switchgate_switch.size + }, { "game.panel.emc_lenses.x", &game.panel.emc_lenses.x @@ -2516,6 +2740,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.emc_lenses.y", &game.panel.emc_lenses.y }, + { + "game.panel.emc_lenses.tile_size", + &game.panel.emc_lenses.size + }, { "game.panel.emc_lenses_time.x", &game.panel.emc_lenses_time.x @@ -2533,8 +2761,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.emc_lenses_time.valign }, { - "game.panel.emc_lenses_time.chars", - &game.panel.emc_lenses_time.chars + "game.panel.emc_lenses_time.digits", + &game.panel.emc_lenses_time.size }, { "game.panel.emc_lenses_time.font", @@ -2548,6 +2776,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.emc_magnifier.y", &game.panel.emc_magnifier.y }, + { + "game.panel.emc_magnifier.tile_size", + &game.panel.emc_magnifier.size + }, { "game.panel.emc_magnifier_time.x", &game.panel.emc_magnifier_time.x @@ -2565,8 +2797,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.emc_magnifier_time.valign }, { - "game.panel.emc_magnifier_time.chars", - &game.panel.emc_magnifier_time.chars + "game.panel.emc_magnifier_time.digits", + &game.panel.emc_magnifier_time.size }, { "game.panel.emc_magnifier_time.font", @@ -2580,6 +2812,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.balloon_switch.y", &game.panel.balloon_switch.y }, + { + "game.panel.balloon_switch.tile_size", + &game.panel.balloon_switch.size + }, { "game.panel.dynabomb_number.x", &game.panel.dynabomb_number.x @@ -2597,8 +2833,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.dynabomb_number.valign }, { - "game.panel.dynabomb_number.chars", - &game.panel.dynabomb_number.chars + "game.panel.dynabomb_number.digits", + &game.panel.dynabomb_number.size }, { "game.panel.dynabomb_number.font", @@ -2621,8 +2857,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.dynabomb_size.valign }, { - "game.panel.dynabomb_size.chars", - &game.panel.dynabomb_size.chars + "game.panel.dynabomb_size.digits", + &game.panel.dynabomb_size.size }, { "game.panel.dynabomb_size.font", @@ -2636,6 +2872,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.dynabomb_power.y", &game.panel.dynabomb_power.y }, + { + "game.panel.dynabomb_power.tile_size", + &game.panel.dynabomb_power.size + }, { "game.panel.penguins.x", &game.panel.penguins.x @@ -2653,8 +2893,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.penguins.valign }, { - "game.panel.penguins.chars", - &game.panel.penguins.chars + "game.panel.penguins.digits", + &game.panel.penguins.size }, { "game.panel.penguins.font", @@ -2677,8 +2917,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.sokoban_objects.valign }, { - "game.panel.sokoban_objects.chars", - &game.panel.sokoban_objects.chars + "game.panel.sokoban_objects.digits", + &game.panel.sokoban_objects.size }, { "game.panel.sokoban_objects.font", @@ -2701,8 +2941,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.sokoban_fields.valign }, { - "game.panel.sokoban_fields.chars", - &game.panel.sokoban_fields.chars + "game.panel.sokoban_fields.digits", + &game.panel.sokoban_fields.size }, { "game.panel.sokoban_fields.font", @@ -2716,6 +2956,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.robot_wheel.y", &game.panel.robot_wheel.y }, + { + "game.panel.robot_wheel.tile_size", + &game.panel.robot_wheel.size + }, { "game.panel.conveyor_belt_1.x", &game.panel.conveyor_belt_1.x @@ -2724,6 +2968,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.conveyor_belt_1.y", &game.panel.conveyor_belt_1.y }, + { + "game.panel.conveyor_belt_1.tile_size", + &game.panel.conveyor_belt_1.size + }, { "game.panel.conveyor_belt_1_switch.x", &game.panel.conveyor_belt_1_switch.x @@ -2732,6 +2980,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.conveyor_belt_1_switch.y", &game.panel.conveyor_belt_1_switch.y }, + { + "game.panel.conveyor_belt_1_switch.tile_size", + &game.panel.conveyor_belt_1_switch.size + }, { "game.panel.conveyor_belt_2.x", &game.panel.conveyor_belt_2.x @@ -2740,6 +2992,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.conveyor_belt_2.y", &game.panel.conveyor_belt_2.y }, + { + "game.panel.conveyor_belt_2.tile_size", + &game.panel.conveyor_belt_2.size + }, { "game.panel.conveyor_belt_2_switch.x", &game.panel.conveyor_belt_2_switch.x @@ -2748,6 +3004,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.conveyor_belt_2_switch.y", &game.panel.conveyor_belt_2_switch.y }, + { + "game.panel.conveyor_belt_2_switch.tile_size", + &game.panel.conveyor_belt_2_switch.size + }, { "game.panel.conveyor_belt_3.x", &game.panel.conveyor_belt_3.x @@ -2756,6 +3016,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.conveyor_belt_3.y", &game.panel.conveyor_belt_3.y }, + { + "game.panel.conveyor_belt_3.tile_size", + &game.panel.conveyor_belt_3.size + }, { "game.panel.conveyor_belt_3_switch.x", &game.panel.conveyor_belt_3_switch.x @@ -2764,6 +3028,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.conveyor_belt_3_switch.y", &game.panel.conveyor_belt_3_switch.y }, + { + "game.panel.conveyor_belt_3_switch.tile_size", + &game.panel.conveyor_belt_3_switch.size + }, { "game.panel.conveyor_belt_4.x", &game.panel.conveyor_belt_4.x @@ -2772,6 +3040,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.conveyor_belt_4.y", &game.panel.conveyor_belt_4.y }, + { + "game.panel.conveyor_belt_4.tile_size", + &game.panel.conveyor_belt_4.size + }, { "game.panel.conveyor_belt_4_switch.x", &game.panel.conveyor_belt_4_switch.x @@ -2780,6 +3052,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.conveyor_belt_4_switch.y", &game.panel.conveyor_belt_4_switch.y }, + { + "game.panel.conveyor_belt_4_switch.tile_size", + &game.panel.conveyor_belt_4_switch.size + }, { "game.panel.magic_wall.x", &game.panel.magic_wall.x @@ -2788,6 +3064,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.magic_wall.y", &game.panel.magic_wall.y }, + { + "game.panel.magic_wall.tile_size", + &game.panel.magic_wall.size + }, { "game.panel.magic_wall_time.x", &game.panel.magic_wall_time.x @@ -2805,8 +3085,8 @@ struct TokenIntPtrInfo image_config_vars[] = &game.panel.magic_wall_time.valign }, { - "game.panel.magic_wall_time.chars", - &game.panel.magic_wall_time.chars + "game.panel.magic_wall_time.digits", + &game.panel.magic_wall_time.size }, { "game.panel.magic_wall_time.font", @@ -2820,6 +3100,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.bd_magic_wall.y", &game.panel.bd_magic_wall.y }, + { + "game.panel.bd_magic_wall.tile_size", + &game.panel.bd_magic_wall.size + }, { "game.panel.dc_magic_wall.x", &game.panel.dc_magic_wall.x @@ -2828,6 +3112,10 @@ struct TokenIntPtrInfo image_config_vars[] = "game.panel.dc_magic_wall.y", &game.panel.dc_magic_wall.y }, + { + "game.panel.dc_magic_wall.tile_size", + &game.panel.dc_magic_wall.size + }, { "game.panel.player_name.x", &game.panel.player_name.x @@ -2846,7 +3134,7 @@ struct TokenIntPtrInfo image_config_vars[] = }, { "game.panel.player_name.chars", - &game.panel.player_name.chars + &game.panel.player_name.size }, { "game.panel.player_name.font", @@ -2870,7 +3158,7 @@ struct TokenIntPtrInfo image_config_vars[] = }, { "game.panel.level_name.chars", - &game.panel.level_name.chars + &game.panel.level_name.size }, { "game.panel.level_name.font", @@ -2894,7 +3182,7 @@ struct TokenIntPtrInfo image_config_vars[] = }, { "game.panel.level_author.chars", - &game.panel.level_author.chars + &game.panel.level_author.size }, { "game.panel.level_author.font", diff --git a/src/conftime.h b/src/conftime.h index 7337e53e..16409a5d 100644 --- a/src/conftime.h +++ b/src/conftime.h @@ -1 +1 @@ -#define COMPILE_DATE_STRING "2007-04-01 23:19" +#define COMPILE_DATE_STRING "2007-04-03 01:38" diff --git a/src/game.c b/src/game.c index 22008ecc..9fb95c23 100644 --- a/src/game.c +++ b/src/game.c @@ -133,75 +133,83 @@ #define GAME_CONTROL_LEVEL_NUMBER 0 #define GAME_CONTROL_GEMS 1 -#define GAME_CONTROL_INVENTORY 2 -#define GAME_CONTROL_KEY_1 3 -#define GAME_CONTROL_KEY_2 4 -#define GAME_CONTROL_KEY_3 5 -#define GAME_CONTROL_KEY_4 6 -#define GAME_CONTROL_KEY_5 7 -#define GAME_CONTROL_KEY_6 8 -#define GAME_CONTROL_KEY_7 9 -#define GAME_CONTROL_KEY_8 10 -#define GAME_CONTROL_KEY_WHITE 11 -#define GAME_CONTROL_KEY_WHITE_COUNT 12 -#define GAME_CONTROL_SCORE 13 -#define GAME_CONTROL_TIME 14 -#define GAME_CONTROL_TIME_HH 15 -#define GAME_CONTROL_TIME_MM 16 -#define GAME_CONTROL_TIME_SS 17 -#define GAME_CONTROL_DROP_NEXT_1 18 -#define GAME_CONTROL_DROP_NEXT_2 19 -#define GAME_CONTROL_DROP_NEXT_3 20 -#define GAME_CONTROL_DROP_NEXT_4 21 -#define GAME_CONTROL_DROP_NEXT_5 22 -#define GAME_CONTROL_DROP_NEXT_6 23 -#define GAME_CONTROL_DROP_NEXT_7 24 -#define GAME_CONTROL_DROP_NEXT_8 25 -#define GAME_CONTROL_SHIELD_NORMAL 26 -#define GAME_CONTROL_SHIELD_NORMAL_TIME 27 -#define GAME_CONTROL_SHIELD_DEADLY 28 -#define GAME_CONTROL_SHIELD_DEADLY_TIME 29 -#define GAME_CONTROL_EXIT 30 -#define GAME_CONTROL_EM_EXIT 31 -#define GAME_CONTROL_SP_EXIT 32 -#define GAME_CONTROL_STEEL_EXIT 33 -#define GAME_CONTROL_EM_STEEL_EXIT 34 -#define GAME_CONTROL_EMC_MAGIC_BALL 35 -#define GAME_CONTROL_EMC_MAGIC_BALL_SWITCH 36 -#define GAME_CONTROL_LIGHT_SWITCH 37 -#define GAME_CONTROL_LIGHT_SWITCH_TIME 38 -#define GAME_CONTROL_TIMEGATE_SWITCH 39 -#define GAME_CONTROL_TIMEGATE_SWITCH_TIME 40 -#define GAME_CONTROL_SWITCHGATE_SWITCH 41 -#define GAME_CONTROL_EMC_LENSES 42 -#define GAME_CONTROL_EMC_LENSES_TIME 43 -#define GAME_CONTROL_EMC_MAGNIFIER 44 -#define GAME_CONTROL_EMC_MAGNIFIER_TIME 45 -#define GAME_CONTROL_BALLOON_SWITCH 46 -#define GAME_CONTROL_DYNABOMB_NUMBER 47 -#define GAME_CONTROL_DYNABOMB_SIZE 48 -#define GAME_CONTROL_DYNABOMB_POWER 49 -#define GAME_CONTROL_PENGUINS 50 -#define GAME_CONTROL_SOKOBAN_OBJECTS 51 -#define GAME_CONTROL_SOKOBAN_FIELDS 52 -#define GAME_CONTROL_ROBOT_WHEEL 53 -#define GAME_CONTROL_CONVEYOR_BELT_1 54 -#define GAME_CONTROL_CONVEYOR_BELT_1_SWITCH 55 -#define GAME_CONTROL_CONVEYOR_BELT_2 56 -#define GAME_CONTROL_CONVEYOR_BELT_2_SWITCH 57 -#define GAME_CONTROL_CONVEYOR_BELT_3 58 -#define GAME_CONTROL_CONVEYOR_BELT_3_SWITCH 59 -#define GAME_CONTROL_CONVEYOR_BELT_4 60 -#define GAME_CONTROL_CONVEYOR_BELT_4_SWITCH 61 -#define GAME_CONTROL_MAGIC_WALL 62 -#define GAME_CONTROL_MAGIC_WALL_TIME 63 -#define GAME_CONTROL_BD_MAGIC_WALL 64 -#define GAME_CONTROL_DC_MAGIC_WALL 65 -#define GAME_CONTROL_PLAYER_NAME 66 -#define GAME_CONTROL_LEVEL_NAME 67 -#define GAME_CONTROL_LEVEL_AUTHOR 68 - -#define NUM_GAME_CONTROLS 69 +#define GAME_CONTROL_INVENTORY_COUNT 2 +#define GAME_CONTROL_INVENTORY_FIRST_1 3 +#define GAME_CONTROL_INVENTORY_FIRST_2 4 +#define GAME_CONTROL_INVENTORY_FIRST_3 5 +#define GAME_CONTROL_INVENTORY_FIRST_4 6 +#define GAME_CONTROL_INVENTORY_FIRST_5 7 +#define GAME_CONTROL_INVENTORY_FIRST_6 8 +#define GAME_CONTROL_INVENTORY_FIRST_7 9 +#define GAME_CONTROL_INVENTORY_FIRST_8 10 +#define GAME_CONTROL_INVENTORY_LAST_1 11 +#define GAME_CONTROL_INVENTORY_LAST_2 12 +#define GAME_CONTROL_INVENTORY_LAST_3 13 +#define GAME_CONTROL_INVENTORY_LAST_4 14 +#define GAME_CONTROL_INVENTORY_LAST_5 15 +#define GAME_CONTROL_INVENTORY_LAST_6 16 +#define GAME_CONTROL_INVENTORY_LAST_7 17 +#define GAME_CONTROL_INVENTORY_LAST_8 18 +#define GAME_CONTROL_KEY_1 19 +#define GAME_CONTROL_KEY_2 20 +#define GAME_CONTROL_KEY_3 21 +#define GAME_CONTROL_KEY_4 22 +#define GAME_CONTROL_KEY_5 23 +#define GAME_CONTROL_KEY_6 24 +#define GAME_CONTROL_KEY_7 25 +#define GAME_CONTROL_KEY_8 26 +#define GAME_CONTROL_KEY_WHITE 27 +#define GAME_CONTROL_KEY_WHITE_COUNT 28 +#define GAME_CONTROL_SCORE 29 +#define GAME_CONTROL_TIME 30 +#define GAME_CONTROL_TIME_HH 31 +#define GAME_CONTROL_TIME_MM 32 +#define GAME_CONTROL_TIME_SS 33 +#define GAME_CONTROL_SHIELD_NORMAL 34 +#define GAME_CONTROL_SHIELD_NORMAL_TIME 35 +#define GAME_CONTROL_SHIELD_DEADLY 36 +#define GAME_CONTROL_SHIELD_DEADLY_TIME 37 +#define GAME_CONTROL_EXIT 38 +#define GAME_CONTROL_EM_EXIT 39 +#define GAME_CONTROL_SP_EXIT 40 +#define GAME_CONTROL_STEEL_EXIT 41 +#define GAME_CONTROL_EM_STEEL_EXIT 42 +#define GAME_CONTROL_EMC_MAGIC_BALL 43 +#define GAME_CONTROL_EMC_MAGIC_BALL_SWITCH 44 +#define GAME_CONTROL_LIGHT_SWITCH 45 +#define GAME_CONTROL_LIGHT_SWITCH_TIME 46 +#define GAME_CONTROL_TIMEGATE_SWITCH 47 +#define GAME_CONTROL_TIMEGATE_SWITCH_TIME 48 +#define GAME_CONTROL_SWITCHGATE_SWITCH 49 +#define GAME_CONTROL_EMC_LENSES 50 +#define GAME_CONTROL_EMC_LENSES_TIME 51 +#define GAME_CONTROL_EMC_MAGNIFIER 52 +#define GAME_CONTROL_EMC_MAGNIFIER_TIME 53 +#define GAME_CONTROL_BALLOON_SWITCH 54 +#define GAME_CONTROL_DYNABOMB_NUMBER 55 +#define GAME_CONTROL_DYNABOMB_SIZE 56 +#define GAME_CONTROL_DYNABOMB_POWER 57 +#define GAME_CONTROL_PENGUINS 58 +#define GAME_CONTROL_SOKOBAN_OBJECTS 59 +#define GAME_CONTROL_SOKOBAN_FIELDS 60 +#define GAME_CONTROL_ROBOT_WHEEL 61 +#define GAME_CONTROL_CONVEYOR_BELT_1 62 +#define GAME_CONTROL_CONVEYOR_BELT_1_SWITCH 63 +#define GAME_CONTROL_CONVEYOR_BELT_2 64 +#define GAME_CONTROL_CONVEYOR_BELT_2_SWITCH 65 +#define GAME_CONTROL_CONVEYOR_BELT_3 66 +#define GAME_CONTROL_CONVEYOR_BELT_3_SWITCH 67 +#define GAME_CONTROL_CONVEYOR_BELT_4 68 +#define GAME_CONTROL_CONVEYOR_BELT_4_SWITCH 69 +#define GAME_CONTROL_MAGIC_WALL 70 +#define GAME_CONTROL_MAGIC_WALL_TIME 71 +#define GAME_CONTROL_BD_MAGIC_WALL 72 +#define GAME_CONTROL_DC_MAGIC_WALL 73 +#define GAME_CONTROL_PLAYER_NAME 74 +#define GAME_CONTROL_LEVEL_NAME 75 +#define GAME_CONTROL_LEVEL_AUTHOR 76 + +#define NUM_GAME_CONTROLS 77 int game_control_value[NUM_GAME_CONTROLS]; int last_game_control_value[NUM_GAME_CONTROLS]; @@ -227,10 +235,90 @@ static struct GameControlInfo game_controls[] = TYPE_INTEGER, }, { - GAME_CONTROL_INVENTORY, - &game.panel.inventory, + GAME_CONTROL_INVENTORY_COUNT, + &game.panel.inventory_count, TYPE_INTEGER, }, + { + GAME_CONTROL_INVENTORY_FIRST_1, + &game.panel.inventory_first_1, + TYPE_ELEMENT, + }, + { + GAME_CONTROL_INVENTORY_FIRST_2, + &game.panel.inventory_first_2, + TYPE_ELEMENT, + }, + { + GAME_CONTROL_INVENTORY_FIRST_3, + &game.panel.inventory_first_3, + TYPE_ELEMENT, + }, + { + GAME_CONTROL_INVENTORY_FIRST_4, + &game.panel.inventory_first_4, + TYPE_ELEMENT, + }, + { + GAME_CONTROL_INVENTORY_FIRST_5, + &game.panel.inventory_first_5, + TYPE_ELEMENT, + }, + { + GAME_CONTROL_INVENTORY_FIRST_6, + &game.panel.inventory_first_6, + TYPE_ELEMENT, + }, + { + GAME_CONTROL_INVENTORY_FIRST_7, + &game.panel.inventory_first_7, + TYPE_ELEMENT, + }, + { + GAME_CONTROL_INVENTORY_FIRST_8, + &game.panel.inventory_first_8, + TYPE_ELEMENT, + }, + { + GAME_CONTROL_INVENTORY_LAST_1, + &game.panel.inventory_last_1, + TYPE_ELEMENT, + }, + { + GAME_CONTROL_INVENTORY_LAST_2, + &game.panel.inventory_last_2, + TYPE_ELEMENT, + }, + { + GAME_CONTROL_INVENTORY_LAST_3, + &game.panel.inventory_last_3, + TYPE_ELEMENT, + }, + { + GAME_CONTROL_INVENTORY_LAST_4, + &game.panel.inventory_last_4, + TYPE_ELEMENT, + }, + { + GAME_CONTROL_INVENTORY_LAST_5, + &game.panel.inventory_last_5, + TYPE_ELEMENT, + }, + { + GAME_CONTROL_INVENTORY_LAST_6, + &game.panel.inventory_last_6, + TYPE_ELEMENT, + }, + { + GAME_CONTROL_INVENTORY_LAST_7, + &game.panel.inventory_last_7, + TYPE_ELEMENT, + }, + { + GAME_CONTROL_INVENTORY_LAST_8, + &game.panel.inventory_last_8, + TYPE_ELEMENT, + }, { GAME_CONTROL_KEY_1, &game.panel.key[0], @@ -306,46 +394,6 @@ static struct GameControlInfo game_controls[] = &game.panel.time_ss, TYPE_INTEGER, }, - { - GAME_CONTROL_DROP_NEXT_1, - &game.panel.drop_next_1, - TYPE_ELEMENT, - }, - { - GAME_CONTROL_DROP_NEXT_2, - &game.panel.drop_next_2, - TYPE_ELEMENT, - }, - { - GAME_CONTROL_DROP_NEXT_3, - &game.panel.drop_next_3, - TYPE_ELEMENT, - }, - { - GAME_CONTROL_DROP_NEXT_4, - &game.panel.drop_next_4, - TYPE_ELEMENT, - }, - { - GAME_CONTROL_DROP_NEXT_5, - &game.panel.drop_next_5, - TYPE_ELEMENT, - }, - { - GAME_CONTROL_DROP_NEXT_6, - &game.panel.drop_next_6, - TYPE_ELEMENT, - }, - { - GAME_CONTROL_DROP_NEXT_7, - &game.panel.drop_next_7, - TYPE_ELEMENT, - }, - { - GAME_CONTROL_DROP_NEXT_8, - &game.panel.drop_next_8, - TYPE_ELEMENT, - }, { GAME_CONTROL_SHIELD_NORMAL, &game.panel.shield_normal, @@ -1731,6 +1779,52 @@ static int get_key_element_from_nr(int key_nr) return key_base_element + key_nr; } +static int get_next_drop_element(struct PlayerInfo *player) +{ + return (player->inventory_size > 0 ? + player->inventory_element[player->inventory_size - 1] : + player->inventory_infinite_element != EL_UNDEFINED ? + player->inventory_infinite_element : + player->dynabombs_left > 0 ? + EL_DYNABOMB_PLAYER_1_ACTIVE + player->index_nr : + EL_UNDEFINED); +} + +static int get_drop_element_from_pos(struct PlayerInfo *player, int pos) +{ + /* pos >= 0: get element from bottom of the stack; + pos < 0: get element from top of the stack */ + + if (pos < 0) + { + int min_inventory_size = -pos; + int inventory_pos = player->inventory_size - min_inventory_size; + int min_dynabombs_left = min_inventory_size - player->inventory_size; + + return (player->inventory_size >= min_inventory_size ? + player->inventory_element[inventory_pos] : + player->inventory_infinite_element != EL_UNDEFINED ? + player->inventory_infinite_element : + player->dynabombs_left >= min_dynabombs_left ? + EL_DYNABOMB_PLAYER_1_ACTIVE + player->index_nr : + EL_UNDEFINED); + } + else + { + int min_dynabombs_left = pos + 1; + int min_inventory_size = pos + 1 - player->dynabombs_left; + int inventory_pos = pos - player->dynabombs_left; + + return (player->inventory_infinite_element != EL_UNDEFINED ? + player->inventory_infinite_element : + player->dynabombs_left >= min_dynabombs_left ? + EL_DYNABOMB_PLAYER_1_ACTIVE + player->index_nr : + player->inventory_size >= min_inventory_size ? + player->inventory_element[inventory_pos] : + EL_UNDEFINED); + } +} + void InitGameControlValues() { int i; @@ -1746,20 +1840,29 @@ void InitGameControlValues() /* determine panel value width for later calculation of alignment */ if (type == TYPE_INTEGER || type == TYPE_STRING) - pos->width = pos->chars * getFontWidth(pos->font); + { + pos->width = pos->size * getFontWidth(pos->font); + pos->height = getFontHeight(pos->font); + } else if (type == TYPE_ELEMENT) - pos->width = MINI_TILESIZE; + { + pos->width = pos->size; + pos->height = pos->size; + } } } void UpdateGameControlValues() { int i, k; + int time = (level.time == 0 ? TimePlayed : TimeLeft); + int score = (local_player->LevelSolved ? local_player->score_final : + local_player->score); game_control_value[GAME_CONTROL_LEVEL_NUMBER] = level_nr; game_control_value[GAME_CONTROL_GEMS] = local_player->gems_still_needed; - game_control_value[GAME_CONTROL_INVENTORY] = 0; + game_control_value[GAME_CONTROL_INVENTORY_COUNT] = 0; for (i = 0; i < MAX_NUM_KEYS; i++) game_control_value[GAME_CONTROL_KEY_1 + i] = EL_EMPTY; game_control_value[GAME_CONTROL_KEY_WHITE] = EL_EMPTY; @@ -1774,7 +1877,7 @@ void UpdateGameControlValues() game_control_value[GAME_CONTROL_KEY_1 + k] = get_key_element_from_nr(k); - game_control_value[GAME_CONTROL_INVENTORY] += + game_control_value[GAME_CONTROL_INVENTORY_COUNT] += stored_player[i].inventory_size; if (stored_player[i].num_white_keys > 0) @@ -1793,7 +1896,7 @@ void UpdateGameControlValues() game_control_value[GAME_CONTROL_KEY_1 + k] = get_key_element_from_nr(k); - game_control_value[GAME_CONTROL_INVENTORY] += + game_control_value[GAME_CONTROL_INVENTORY_COUNT] += stored_player[player_nr].inventory_size; if (stored_player[player_nr].num_white_keys > 0) @@ -1803,21 +1906,21 @@ void UpdateGameControlValues() stored_player[player_nr].num_white_keys; } - game_control_value[GAME_CONTROL_SCORE] = (local_player->LevelSolved ? - local_player->score_final : - local_player->score); + for (i = 0; i < 8; i++) + { + game_control_value[GAME_CONTROL_INVENTORY_FIRST_1 + i] = + get_drop_element_from_pos(local_player, i); + game_control_value[GAME_CONTROL_INVENTORY_LAST_1 + i] = + get_drop_element_from_pos(local_player, -i - 1); + } - game_control_value[GAME_CONTROL_TIME] = (level.time == 0 ? - TimePlayed : - TimeLeft); + game_control_value[GAME_CONTROL_SCORE] = score; - game_control_value[GAME_CONTROL_TIME_HH] = TapeTime / 3600; - game_control_value[GAME_CONTROL_TIME_MM] = (TapeTime / 60) % 60; - game_control_value[GAME_CONTROL_TIME_SS] = TapeTime % 60; + game_control_value[GAME_CONTROL_TIME] = time; - /* !!! TODO !!! */ - for (i = 0; i < 8; i++) - game_control_value[GAME_CONTROL_DROP_NEXT_1 + i] = EL_UNDEFINED; + game_control_value[GAME_CONTROL_TIME_HH] = time / 3600; + game_control_value[GAME_CONTROL_TIME_MM] = (time / 60) % 60; + game_control_value[GAME_CONTROL_TIME_SS] = time % 60; game_control_value[GAME_CONTROL_SHIELD_NORMAL] = (local_player->shield_normal_time_left > 0 ? EL_SHIELD_NORMAL_ACTIVE : @@ -1931,7 +2034,7 @@ void DisplayGameControlValues() struct TextPosInfo *pos = game_controls[i].pos; int value = game_control_value[nr]; int last_value = last_game_control_value[nr]; - int chars = pos->chars; + int size = pos->size; int font = pos->font; if (value == last_value) @@ -1950,24 +2053,24 @@ void DisplayGameControlValues() { if (nr == GAME_CONTROL_LEVEL_NUMBER || nr == GAME_CONTROL_TIME) { - boolean use_dynamic_chars = (pos->chars == -1 ? TRUE : FALSE); + boolean use_dynamic_size = (size == -1 ? TRUE : FALSE); - if (use_dynamic_chars) /* use dynamic number of chars */ + if (use_dynamic_size) /* use dynamic number of digits */ { int value_change = (nr == GAME_CONTROL_LEVEL_NUMBER ? 100 : 1000); - int chars1 = (nr == GAME_CONTROL_LEVEL_NUMBER ? 2 : 3); - int chars2 = chars1 + 1; + int size1 = (nr == GAME_CONTROL_LEVEL_NUMBER ? 2 : 3); + int size2 = size1 + 1; int font1 = pos->font; int font2 = pos->font_alt; - chars = (value < value_change ? chars1 : chars2); - font = (value < value_change ? font1 : font2); + size = (value < value_change ? size1 : size2); + font = (value < value_change ? font1 : font2); - /* clear background if value just changed its size (dynamic chars) */ + /* clear background if value just changed its size (dynamic digits) */ if ((last_value < value_change) != (value < value_change)) { - int width1 = chars1 * getFontWidth(font1); - int width2 = chars2 * getFontWidth(font2); + int width1 = size1 * getFontWidth(font1); + int width2 = size2 * getFontWidth(font2); int max_width = MAX(width1, width2); int max_height = MAX(getFontHeight(font1), getFontHeight(font2)); @@ -1978,10 +2081,10 @@ void DisplayGameControlValues() } } - pos->width = chars * getFontWidth(font); + pos->width = size * getFontWidth(font); } - DrawText(PANEL_XPOS(pos), PANEL_YPOS(pos), int2str(value, chars), font); + DrawText(PANEL_XPOS(pos), PANEL_YPOS(pos), int2str(value, size), font); } else if (type == TYPE_ELEMENT) { @@ -1994,13 +2097,13 @@ void DisplayGameControlValues() int src_y = DOOR_GFX_PAGEY1 + ALIGNED_TEXT_YPOS(pos); BlitBitmap(graphic_info[IMG_GLOBAL_DOOR].bitmap, drawto, src_x, src_y, - MINI_TILEX, MINI_TILEY, dst_x, dst_y); + size, size, dst_x, dst_y); } else { - int graphic = el2edimg(value); + int graphic = el2doorimg(value); - DrawMiniGraphicExt(drawto, dst_x, dst_y, graphic); + DrawSizedGraphicExt(drawto, dst_x, dst_y, graphic, size); } } else if (type == TYPE_STRING) @@ -2011,9 +2114,9 @@ void DisplayGameControlValues() if (s != NULL) { - char *s_cut = getStringCopyN(s, pos->chars); + char *s_cut = getStringCopyN(s, size); - DrawText(PANEL_XPOS(pos), PANEL_YPOS(pos), s_cut, pos->font); + DrawText(PANEL_XPOS(pos), PANEL_YPOS(pos), s_cut, font); free(s_cut); } @@ -2032,7 +2135,7 @@ void DrawGameValue_Emeralds(int value) int font_nr = FONT_TEXT_2; #endif int font_width = getFontWidth(font_nr); - int chars = pos->chars; + int chars = pos->size; #if 1 return; /* !!! USE NEW STUFF !!! */ @@ -2048,14 +2151,14 @@ void DrawGameValue_Emeralds(int value) void DrawGameValue_Dynamite(int value) { - struct TextPosInfo *pos = &game.panel.inventory; + struct TextPosInfo *pos = &game.panel.inventory_count; #if 1 int font_nr = pos->font; #else int font_nr = FONT_TEXT_2; #endif int font_width = getFontWidth(font_nr); - int chars = pos->chars; + int chars = pos->size; #if 1 return; /* !!! USE NEW STUFF !!! */ @@ -2078,7 +2181,7 @@ void DrawGameValue_Score(int value) int font_nr = FONT_TEXT_2; #endif int font_width = getFontWidth(font_nr); - int chars = pos->chars; + int chars = pos->size; #if 1 return; /* !!! USE NEW STUFF !!! */ @@ -2098,7 +2201,7 @@ void DrawGameValue_Time(int value) static int last_value = -1; int chars1 = 3; int chars2 = 4; - int chars = pos->chars; + int chars = pos->size; #if 1 int font1_nr = pos->font; int font2_nr = pos->font_alt; @@ -2148,7 +2251,7 @@ void DrawGameValue_Level(int value) struct TextPosInfo *pos = &game.panel.level_number; int chars1 = 2; int chars2 = 3; - int chars = pos->chars; + int chars = pos->size; #if 1 int font1_nr = pos->font; int font2_nr = pos->font_alt; @@ -2296,7 +2399,7 @@ void DrawGameValue_Dynamite(int value) int font_nr = FONT_TEXT_2; int xpos = (3 * 14 - 3 * getFontWidth(font_nr)) / 2; - if (PANEL_DEACTIVATED(game.panel.inventory)) + if (PANEL_DEACTIVATED(game.panel.inventory_count)) return; DrawText(DX_DYNAMITE + xpos, DY_DYNAMITE, int2str(value, 3), font_nr); @@ -14045,6 +14148,9 @@ boolean DropElement(struct PlayerInfo *player) int dropx = player->jx, dropy = player->jy; int drop_direction = player->MovDir; int drop_side = drop_direction; +#if 1 + int drop_element = get_next_drop_element(player); +#else int drop_element = (player->inventory_size > 0 ? player->inventory_element[player->inventory_size - 1] : player->inventory_infinite_element != EL_UNDEFINED ? @@ -14052,6 +14158,7 @@ boolean DropElement(struct PlayerInfo *player) player->dynabombs_left > 0 ? EL_DYNABOMB_PLAYER_1_ACTIVE + player->index_nr : EL_UNDEFINED); +#endif player->is_dropping_pressed = TRUE; diff --git a/src/game.h b/src/game.h index d02c5ced..98bdda1d 100644 --- a/src/game.h +++ b/src/game.h @@ -27,7 +27,23 @@ struct GamePanelInfo { struct TextPosInfo level_number; struct TextPosInfo gems; - struct TextPosInfo inventory; + struct TextPosInfo inventory_count; + struct TextPosInfo inventory_first_1; + struct TextPosInfo inventory_first_2; + struct TextPosInfo inventory_first_3; + struct TextPosInfo inventory_first_4; + struct TextPosInfo inventory_first_5; + struct TextPosInfo inventory_first_6; + struct TextPosInfo inventory_first_7; + struct TextPosInfo inventory_first_8; + struct TextPosInfo inventory_last_1; + struct TextPosInfo inventory_last_2; + struct TextPosInfo inventory_last_3; + struct TextPosInfo inventory_last_4; + struct TextPosInfo inventory_last_5; + struct TextPosInfo inventory_last_6; + struct TextPosInfo inventory_last_7; + struct TextPosInfo inventory_last_8; struct TextPosInfo key[MAX_NUM_KEYS]; struct TextPosInfo key_white; struct TextPosInfo key_white_count; @@ -36,14 +52,6 @@ struct GamePanelInfo struct TextPosInfo time_hh; struct TextPosInfo time_mm; struct TextPosInfo time_ss; - struct TextPosInfo drop_next_1; - struct TextPosInfo drop_next_2; - struct TextPosInfo drop_next_3; - struct TextPosInfo drop_next_4; - struct TextPosInfo drop_next_5; - struct TextPosInfo drop_next_6; - struct TextPosInfo drop_next_7; - struct TextPosInfo drop_next_8; struct TextPosInfo shield_normal; struct TextPosInfo shield_normal_time; struct TextPosInfo shield_deadly; diff --git a/src/libgame/system.h b/src/libgame/system.h index 8de71071..c0e5d776 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -1050,7 +1050,7 @@ struct TextPosInfo int x, y; int width, height; int align, valign; - int chars; + int size; int font, font_alt; }; diff --git a/src/screens.c b/src/screens.c index 2577e79a..fb1fa837 100644 --- a/src/screens.c +++ b/src/screens.c @@ -758,9 +758,13 @@ static void InitializeMainControls() /* set main control text values to dynamically determined values */ sprintf(main_text_name, "%s", local_team_mode ? "Team:" : "Name:"); - sprintf(main_text_first_level, "%03d", leveldir_current->first_level); - sprintf(main_text_last_level, "%03d", leveldir_current->last_level); - sprintf(main_text_level_number, "%s", int2str(level_nr, 3)); + + strcpy(main_text_first_level, int2str(leveldir_current->first_level, + menu.main.text.first_level.size)); + strcpy(main_text_last_level, int2str(leveldir_current->last_level, + menu.main.text.last_level.size)); + strcpy(main_text_level_number, int2str(level_nr, + menu.main.text.level_number.size)); main_text_level_year = leveldir_current->year; main_text_level_imported_from = leveldir_current->imported_from; @@ -1887,7 +1891,8 @@ void HandleMainMenu_SelectLevel(int step, int direction) #if 1 DrawText(mSX + mci->pos_text->x, mSY + mci->pos_text->y, - int2str(level_nr, 3), mci->pos_text->font); + int2str(level_nr, menu.main.text.level_number.size), + mci->pos_text->font); #else DrawText(mSX + 11 * 32, mSY + 3 * 32, int2str(level_nr, 3), FONT_VALUE_1); #endif diff --git a/src/tools.c b/src/tools.c index 3dfdfa92..074b232b 100644 --- a/src/tools.c +++ b/src/tools.c @@ -912,6 +912,55 @@ inline int getGraphicAnimationFrame(int graphic, int sync_frame) sync_frame); } +void getSizedGraphicSource(int graphic, Bitmap **bitmap, int *x, int *y, + int tilesize_raw) +{ + struct + { + int width_mult, width_div; + int height_mult, height_div; + } + offset_calc[6] = + { + { 15, 16, 2, 3 }, /* 1 x 1 */ + { 7, 8, 2, 3 }, /* 2 x 2 */ + { 3, 4, 2, 3 }, /* 4 x 4 */ + { 1, 2, 2, 3 }, /* 8 x 8 */ + { 0, 1, 2, 3 }, /* 16 x 16 */ + { 0, 1, 0, 1 }, /* 32 x 32 */ + }; + int tilesize = MIN(MAX(1, tilesize_raw), TILESIZE); + int offset_calc_pos = log_2(tilesize); + Bitmap *src_bitmap = graphic_info[graphic].bitmap; + int width_mult = offset_calc[offset_calc_pos].width_mult; + int width_div = offset_calc[offset_calc_pos].width_div; + int height_mult = offset_calc[offset_calc_pos].height_mult; + int height_div = offset_calc[offset_calc_pos].height_div; + int startx = src_bitmap->width * width_mult / width_div; + int starty = src_bitmap->height * height_mult / height_div; + int src_x = startx + graphic_info[graphic].src_x * tilesize / TILESIZE; + int src_y = starty + graphic_info[graphic].src_y * tilesize / TILESIZE; + + *bitmap = src_bitmap; + *x = src_x; + *y = src_y; +} + +void getMiniGraphicSource(int graphic, Bitmap **bitmap, int *x, int *y) +{ +#if 1 + getSizedGraphicSource(graphic, bitmap, x, y, MINI_TILESIZE); +#else + struct GraphicInfo *g = &graphic_info[graphic]; + int mini_startx = 0; + int mini_starty = g->bitmap->height * 2 / 3; + + *bitmap = g->bitmap; + *x = mini_startx + g->src_x / 2; + *y = mini_starty + g->src_y / 2; +#endif +} + inline void getGraphicSourceExt(int graphic, int frame, Bitmap **bitmap, int *x, int *y, boolean get_backside) { @@ -1003,21 +1052,26 @@ void DrawGraphicThruMaskExt(DrawBuffer *d, int dst_x, int dst_y, int graphic, BlitBitmapMasked(src_bitmap, d, src_x, src_y, TILEX, TILEY, dst_x, dst_y); } -void DrawMiniGraphic(int x, int y, int graphic) +void DrawSizedGraphic(int x, int y, int graphic, int tilesize) { - DrawMiniGraphicExt(drawto, SX + x * MINI_TILEX,SY + y * MINI_TILEY, graphic); - MarkTileDirty(x / 2, y / 2); + DrawSizedGraphicExt(drawto, SX + x * tilesize, SY + y * tilesize, graphic, + tilesize); + MarkTileDirty(x / tilesize, y / tilesize); } -void getMiniGraphicSource(int graphic, Bitmap **bitmap, int *x, int *y) +void DrawSizedGraphicExt(DrawBuffer *d, int x, int y, int graphic, int tilesize) { - struct GraphicInfo *g = &graphic_info[graphic]; - int mini_startx = 0; - int mini_starty = g->bitmap->height * 2 / 3; + Bitmap *src_bitmap; + int src_x, src_y; - *bitmap = g->bitmap; - *x = mini_startx + g->src_x / 2; - *y = mini_starty + g->src_y / 2; + getSizedGraphicSource(graphic, &src_bitmap, &src_x, &src_y, tilesize); + BlitBitmap(src_bitmap, d, src_x, src_y, tilesize, tilesize, x, y); +} + +void DrawMiniGraphic(int x, int y, int graphic) +{ + DrawMiniGraphicExt(drawto, SX + x * MINI_TILEX,SY + y * MINI_TILEY, graphic); + MarkTileDirty(x / 2, y / 2); } void DrawMiniGraphicExt(DrawBuffer *d, int x, int y, int graphic) @@ -1826,58 +1880,13 @@ void ShowEnvelope(int envelope_nr) BackToFront(); } -void getPreviewGraphicSource(int graphic, Bitmap **bitmap, int *x, int *y, - int tilesize) -{ - struct - { - int width_mult, width_div; - int height_mult, height_div; -#if 1 - } - offset_calc[6] = -#else - offset_calc[4] = -#endif - { - { 0, 1, 0, 1 }, - { 0, 1, 2, 3 }, - { 1, 2, 2, 3 }, - { 3, 4, 2, 3 }, -#if 1 - { 7, 8, 2, 3 }, - { 15, 16, 2, 3 }, -#endif - }; -#if 1 - int offset_calc_pos = (tilesize < MICRO_TILESIZE / 4 || - tilesize > TILESIZE ? 5 : 5 - log_2(tilesize)); -#else - int offset_calc_pos = (tilesize < MICRO_TILESIZE || tilesize > TILESIZE ? 3 : - 5 - log_2(tilesize)); -#endif - Bitmap *src_bitmap = graphic_info[graphic].bitmap; - int width_mult = offset_calc[offset_calc_pos].width_mult; - int width_div = offset_calc[offset_calc_pos].width_div; - int height_mult = offset_calc[offset_calc_pos].height_mult; - int height_div = offset_calc[offset_calc_pos].height_div; - int mini_startx = src_bitmap->width * width_mult / width_div; - int mini_starty = src_bitmap->height * height_mult / height_div; - int src_x = mini_startx + graphic_info[graphic].src_x * tilesize / TILESIZE; - int src_y = mini_starty + graphic_info[graphic].src_y * tilesize / TILESIZE; - - *bitmap = src_bitmap; - *x = src_x; - *y = src_y; -} - void DrawPreviewElement(int dst_x, int dst_y, int element, int tilesize) { Bitmap *src_bitmap; int src_x, src_y; int graphic = el2preimg(element); - getPreviewGraphicSource(graphic, &src_bitmap, &src_x, &src_y, tilesize); + getSizedGraphicSource(graphic, &src_bitmap, &src_x, &src_y, tilesize); BlitBitmap(src_bitmap, drawto, src_x, src_y, tilesize, tilesize, dst_x,dst_y); } @@ -1996,8 +2005,8 @@ static void DrawPreviewLevelLabelExt(int mode) #endif #if 1 - if (pos->chars != -1) - max_len_label_text = pos->chars; + if (pos->size != -1) + max_len_label_text = pos->size; #endif for (i = 0; i < max_len_label_text; i++) @@ -2106,8 +2115,8 @@ void DrawPreviewLevel(boolean restart) #endif #if 1 - if (pos->chars != -1) - max_len_label_text = pos->chars; + if (pos->size != -1) + max_len_label_text = pos->size; #endif strncpy(label_text, leveldir_current->name, max_len_label_text); @@ -5746,6 +5755,13 @@ int el2preimg(int element) return element_info[element].special_graphic[GFX_SPECIAL_ARG_PREVIEW]; } +int el2doorimg(int element) +{ + element = GFX_ELEMENT(element); + + return element_info[element].special_graphic[GFX_SPECIAL_ARG_DOOR]; +} + int font2baseimg(int font_nr) { return font_info[font_nr].special_graphic[GFX_SPECIAL_ARG_DEFAULT]; diff --git a/src/tools.h b/src/tools.h index 2e0762cc..80f76114 100644 --- a/src/tools.h +++ b/src/tools.h @@ -117,6 +117,8 @@ void DrawAllPlayers(void); void DrawPlayerField(int, int); void DrawPlayer(struct PlayerInfo *); +void getSizedGraphicSource(int, Bitmap **, int *, int *, int); +void getMiniGraphicSource(int, Bitmap **, int *, int *); void getGraphicSourceExt(int, int, Bitmap **, int *, int *, boolean); void getGraphicSource(int, int, Bitmap **, int *, int *); void DrawGraphic(int, int, int, int); @@ -124,8 +126,9 @@ void DrawGraphicExt(DrawBuffer *, int, int, int, int); void DrawGraphicThruMask(int, int, int, int); void DrawGraphicThruMaskExt(DrawBuffer *, int, int, int, int); +void DrawSizedGraphic(int, int, int, int); +void DrawSizedGraphicExt(DrawBuffer *, int, int, int, int); void DrawMiniGraphic(int, int, int); -void getMiniGraphicSource(int, Bitmap **, int *, int *); void DrawMiniGraphicExt(DrawBuffer *, int, int, int); void DrawScreenElementExt(int, int, int, int, int, int, int); @@ -182,6 +185,7 @@ int el2baseimg(int); int el2img(int); int el2edimg(int); int el2preimg(int); +int el2doorimg(int); int font2baseimg(int); int getBeltNrFromBeltElement(int);