+#if 1
+/* game panel display and control definitions */
+
+#define GAME_CONTROL_LEVEL_NUMBER 0
+#define GAME_CONTROL_GEMS 1
+#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];
+
+struct GameControlInfo
+{
+ int nr;
+
+ struct TextPosInfo *pos;
+ int type;
+};
+
+static struct GameControlInfo game_controls[] =
+{
+ {
+ GAME_CONTROL_LEVEL_NUMBER,
+ &game.panel.level_number,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_GEMS,
+ &game.panel.gems,
+ TYPE_INTEGER,
+ },
+ {
+ 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],
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_KEY_2,
+ &game.panel.key[1],
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_KEY_3,
+ &game.panel.key[2],
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_KEY_4,
+ &game.panel.key[3],
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_KEY_5,
+ &game.panel.key[4],
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_KEY_6,
+ &game.panel.key[5],
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_KEY_7,
+ &game.panel.key[6],
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_KEY_8,
+ &game.panel.key[7],
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_KEY_WHITE,
+ &game.panel.key_white,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_KEY_WHITE_COUNT,
+ &game.panel.key_white_count,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_SCORE,
+ &game.panel.score,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_TIME,
+ &game.panel.time,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_TIME_HH,
+ &game.panel.time_hh,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_TIME_MM,
+ &game.panel.time_mm,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_TIME_SS,
+ &game.panel.time_ss,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_SHIELD_NORMAL,
+ &game.panel.shield_normal,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_SHIELD_NORMAL_TIME,
+ &game.panel.shield_normal_time,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_SHIELD_DEADLY,
+ &game.panel.shield_deadly,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_SHIELD_DEADLY_TIME,
+ &game.panel.shield_deadly_time,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_EXIT,
+ &game.panel.exit,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_EM_EXIT,
+ &game.panel.em_exit,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_SP_EXIT,
+ &game.panel.sp_exit,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_STEEL_EXIT,
+ &game.panel.steel_exit,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_EM_STEEL_EXIT,
+ &game.panel.em_steel_exit,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_EMC_MAGIC_BALL,
+ &game.panel.emc_magic_ball,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_EMC_MAGIC_BALL_SWITCH,
+ &game.panel.emc_magic_ball_switch,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_LIGHT_SWITCH,
+ &game.panel.light_switch,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_LIGHT_SWITCH_TIME,
+ &game.panel.light_switch_time,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_TIMEGATE_SWITCH,
+ &game.panel.timegate_switch,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_TIMEGATE_SWITCH_TIME,
+ &game.panel.timegate_switch_time,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_SWITCHGATE_SWITCH,
+ &game.panel.switchgate_switch,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_EMC_LENSES,
+ &game.panel.emc_lenses,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_EMC_LENSES_TIME,
+ &game.panel.emc_lenses_time,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_EMC_MAGNIFIER,
+ &game.panel.emc_magnifier,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_EMC_MAGNIFIER_TIME,
+ &game.panel.emc_magnifier_time,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_BALLOON_SWITCH,
+ &game.panel.balloon_switch,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_DYNABOMB_NUMBER,
+ &game.panel.dynabomb_number,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_DYNABOMB_SIZE,
+ &game.panel.dynabomb_size,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_DYNABOMB_POWER,
+ &game.panel.dynabomb_power,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_PENGUINS,
+ &game.panel.penguins,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_SOKOBAN_OBJECTS,
+ &game.panel.sokoban_objects,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_SOKOBAN_FIELDS,
+ &game.panel.sokoban_fields,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_ROBOT_WHEEL,
+ &game.panel.robot_wheel,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_CONVEYOR_BELT_1,
+ &game.panel.conveyor_belt_1,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_CONVEYOR_BELT_1_SWITCH,
+ &game.panel.conveyor_belt_1_switch,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_CONVEYOR_BELT_2,
+ &game.panel.conveyor_belt_2,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_CONVEYOR_BELT_2_SWITCH,
+ &game.panel.conveyor_belt_2_switch,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_CONVEYOR_BELT_3,
+ &game.panel.conveyor_belt_3,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_CONVEYOR_BELT_3_SWITCH,
+ &game.panel.conveyor_belt_3_switch,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_CONVEYOR_BELT_4,
+ &game.panel.conveyor_belt_4,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_CONVEYOR_BELT_4_SWITCH,
+ &game.panel.conveyor_belt_4_switch,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_MAGIC_WALL,
+ &game.panel.magic_wall,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_MAGIC_WALL_TIME,
+ &game.panel.magic_wall_time,
+ TYPE_INTEGER,
+ },
+ {
+ GAME_CONTROL_BD_MAGIC_WALL,
+ &game.panel.bd_magic_wall,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_DC_MAGIC_WALL,
+ &game.panel.dc_magic_wall,
+ TYPE_ELEMENT,
+ },
+ {
+ GAME_CONTROL_PLAYER_NAME,
+ &game.panel.player_name,
+ TYPE_STRING,
+ },
+ {
+ GAME_CONTROL_LEVEL_NAME,
+ &game.panel.level_name,
+ TYPE_STRING,
+ },
+ {
+ GAME_CONTROL_LEVEL_AUTHOR,
+ &game.panel.level_author,
+ TYPE_STRING,
+ },
+
+ {
+ -1,
+ NULL,
+ -1,
+ }
+};
+#endif
+
+