rnd-20070331-1-src
[rocksndiamonds.git] / src / conf_var.c
index 3132795db697cce00e647a5cf8a35b122e5ec431..45ad7dc98ff699b510bb4479bf48db74da9ed4c8 100644 (file)
 
 struct TokenIntPtrInfo image_config_vars[] =
 {
+  {
+    "[title_initial].fade_mode",
+    &title_initial_default.fade_mode
+  },
+  {
+    "[title_initial].fade_delay",
+    &title_initial_default.fade_delay
+  },
+  {
+    "[title_initial].post_delay",
+    &title_initial_default.post_delay
+  },
+  {
+    "[title_initial].auto_delay",
+    &title_initial_default.auto_delay
+  },
+  {
+    "[title].fade_mode",
+    &title_default.fade_mode
+  },
+  {
+    "[title].fade_delay",
+    &title_default.fade_delay
+  },
+  {
+    "[title].post_delay",
+    &title_default.post_delay
+  },
+  {
+    "[title].auto_delay",
+    &title_default.auto_delay
+  },
+  {
+    "[titlemessage_initial].x",
+    &titlemessage_initial_default.x
+  },
+  {
+    "[titlemessage_initial].y",
+    &titlemessage_initial_default.y
+  },
+  {
+    "[titlemessage_initial].width",
+    &titlemessage_initial_default.width
+  },
+  {
+    "[titlemessage_initial].height",
+    &titlemessage_initial_default.height
+  },
+  {
+    "[titlemessage_initial].chars",
+    &titlemessage_initial_default.chars
+  },
+  {
+    "[titlemessage_initial].lines",
+    &titlemessage_initial_default.lines
+  },
+  {
+    "[titlemessage_initial].align",
+    &titlemessage_initial_default.align
+  },
+  {
+    "[titlemessage_initial].valign",
+    &titlemessage_initial_default.valign
+  },
+  {
+    "[titlemessage_initial].font",
+    &titlemessage_initial_default.font
+  },
+  {
+    "[titlemessage_initial].autowrap",
+    &titlemessage_initial_default.autowrap
+  },
+  {
+    "[titlemessage_initial].centered",
+    &titlemessage_initial_default.centered
+  },
+  {
+    "[titlemessage_initial].parse_comments",
+    &titlemessage_initial_default.parse_comments
+  },
+  {
+    "[titlemessage_initial].sort_priority",
+    &titlemessage_initial_default.sort_priority
+  },
+  {
+    "[titlemessage_initial].fade_mode",
+    &titlemessage_initial_default.fade_mode
+  },
+  {
+    "[titlemessage_initial].fade_delay",
+    &titlemessage_initial_default.fade_delay
+  },
+  {
+    "[titlemessage_initial].post_delay",
+    &titlemessage_initial_default.post_delay
+  },
+  {
+    "[titlemessage_initial].auto_delay",
+    &titlemessage_initial_default.auto_delay
+  },
+  {
+    "[titlemessage].x",
+    &titlemessage_default.x
+  },
+  {
+    "[titlemessage].y",
+    &titlemessage_default.y
+  },
+  {
+    "[titlemessage].width",
+    &titlemessage_default.width
+  },
+  {
+    "[titlemessage].height",
+    &titlemessage_default.height
+  },
+  {
+    "[titlemessage].chars",
+    &titlemessage_default.chars
+  },
+  {
+    "[titlemessage].lines",
+    &titlemessage_default.lines
+  },
+  {
+    "[titlemessage].align",
+    &titlemessage_default.align
+  },
+  {
+    "[titlemessage].valign",
+    &titlemessage_default.valign
+  },
+  {
+    "[titlemessage].font",
+    &titlemessage_default.font
+  },
+  {
+    "[titlemessage].autowrap",
+    &titlemessage_default.autowrap
+  },
+  {
+    "[titlemessage].centered",
+    &titlemessage_default.centered
+  },
+  {
+    "[titlemessage].parse_comments",
+    &titlemessage_default.parse_comments
+  },
+  {
+    "[titlemessage].sort_priority",
+    &titlemessage_default.sort_priority
+  },
+  {
+    "[titlemessage].fade_mode",
+    &titlemessage_default.fade_mode
+  },
+  {
+    "[titlemessage].fade_delay",
+    &titlemessage_default.fade_delay
+  },
+  {
+    "[titlemessage].post_delay",
+    &titlemessage_default.post_delay
+  },
+  {
+    "[titlemessage].auto_delay",
+    &titlemessage_default.auto_delay
+  },
   {
     "titlemessage_initial_1.x",
     &titlemessage_initial[0].x
@@ -48,6 +216,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
@@ -61,13 +233,29 @@ struct TokenIntPtrInfo image_config_vars[] =
     &titlemessage_initial[0].centered
   },
   {
-    "titlemessage_initial_1.skip_comments",
-    &titlemessage_initial[0].skip_comments
+    "titlemessage_initial_1.parse_comments",
+    &titlemessage_initial[0].parse_comments
   },
   {
     "titlemessage_initial_1.sort_priority",
     &titlemessage_initial[0].sort_priority
   },
+  {
+    "titlemessage_initial_1.fade_mode",
+    &titlemessage_initial[0].fade_mode
+  },
+  {
+    "titlemessage_initial_1.fade_delay",
+    &titlemessage_initial[0].fade_delay
+  },
+  {
+    "titlemessage_initial_1.post_delay",
+    &titlemessage_initial[0].post_delay
+  },
+  {
+    "titlemessage_initial_1.auto_delay",
+    &titlemessage_initial[0].auto_delay
+  },
   {
     "titlemessage_initial_2.x",
     &titlemessage_initial[1].x
@@ -96,6 +284,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
@@ -109,13 +301,29 @@ struct TokenIntPtrInfo image_config_vars[] =
     &titlemessage_initial[1].centered
   },
   {
-    "titlemessage_initial_2.skip_comments",
-    &titlemessage_initial[1].skip_comments
+    "titlemessage_initial_2.parse_comments",
+    &titlemessage_initial[1].parse_comments
   },
   {
     "titlemessage_initial_2.sort_priority",
     &titlemessage_initial[1].sort_priority
   },
+  {
+    "titlemessage_initial_2.fade_mode",
+    &titlemessage_initial[1].fade_mode
+  },
+  {
+    "titlemessage_initial_2.fade_delay",
+    &titlemessage_initial[1].fade_delay
+  },
+  {
+    "titlemessage_initial_2.post_delay",
+    &titlemessage_initial[1].post_delay
+  },
+  {
+    "titlemessage_initial_2.auto_delay",
+    &titlemessage_initial[1].auto_delay
+  },
   {
     "titlemessage_initial_3.x",
     &titlemessage_initial[2].x
@@ -144,6 +352,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
@@ -157,13 +369,29 @@ struct TokenIntPtrInfo image_config_vars[] =
     &titlemessage_initial[2].centered
   },
   {
-    "titlemessage_initial_3.skip_comments",
-    &titlemessage_initial[2].skip_comments
+    "titlemessage_initial_3.parse_comments",
+    &titlemessage_initial[2].parse_comments
   },
   {
     "titlemessage_initial_3.sort_priority",
     &titlemessage_initial[2].sort_priority
   },
+  {
+    "titlemessage_initial_3.fade_mode",
+    &titlemessage_initial[2].fade_mode
+  },
+  {
+    "titlemessage_initial_3.fade_delay",
+    &titlemessage_initial[2].fade_delay
+  },
+  {
+    "titlemessage_initial_3.post_delay",
+    &titlemessage_initial[2].post_delay
+  },
+  {
+    "titlemessage_initial_3.auto_delay",
+    &titlemessage_initial[2].auto_delay
+  },
   {
     "titlemessage_initial_4.x",
     &titlemessage_initial[3].x
@@ -192,6 +420,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
@@ -205,13 +437,29 @@ struct TokenIntPtrInfo image_config_vars[] =
     &titlemessage_initial[3].centered
   },
   {
-    "titlemessage_initial_4.skip_comments",
-    &titlemessage_initial[3].skip_comments
+    "titlemessage_initial_4.parse_comments",
+    &titlemessage_initial[3].parse_comments
   },
   {
     "titlemessage_initial_4.sort_priority",
     &titlemessage_initial[3].sort_priority
   },
+  {
+    "titlemessage_initial_4.fade_mode",
+    &titlemessage_initial[3].fade_mode
+  },
+  {
+    "titlemessage_initial_4.fade_delay",
+    &titlemessage_initial[3].fade_delay
+  },
+  {
+    "titlemessage_initial_4.post_delay",
+    &titlemessage_initial[3].post_delay
+  },
+  {
+    "titlemessage_initial_4.auto_delay",
+    &titlemessage_initial[3].auto_delay
+  },
   {
     "titlemessage_initial_5.x",
     &titlemessage_initial[4].x
@@ -240,6 +488,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
@@ -253,13 +505,29 @@ struct TokenIntPtrInfo image_config_vars[] =
     &titlemessage_initial[4].centered
   },
   {
-    "titlemessage_initial_5.skip_comments",
-    &titlemessage_initial[4].skip_comments
+    "titlemessage_initial_5.parse_comments",
+    &titlemessage_initial[4].parse_comments
   },
   {
     "titlemessage_initial_5.sort_priority",
     &titlemessage_initial[4].sort_priority
   },
+  {
+    "titlemessage_initial_5.fade_mode",
+    &titlemessage_initial[4].fade_mode
+  },
+  {
+    "titlemessage_initial_5.fade_delay",
+    &titlemessage_initial[4].fade_delay
+  },
+  {
+    "titlemessage_initial_5.post_delay",
+    &titlemessage_initial[4].post_delay
+  },
+  {
+    "titlemessage_initial_5.auto_delay",
+    &titlemessage_initial[4].auto_delay
+  },
   {
     "titlemessage_1.x",
     &titlemessage[0].x
@@ -288,6 +556,10 @@ struct TokenIntPtrInfo image_config_vars[] =
     "titlemessage_1.align",
     &titlemessage[0].align
   },
+  {
+    "titlemessage_1.valign",
+    &titlemessage[0].valign
+  },
   {
     "titlemessage_1.font",
     &titlemessage[0].font
@@ -301,13 +573,29 @@ struct TokenIntPtrInfo image_config_vars[] =
     &titlemessage[0].centered
   },
   {
-    "titlemessage_1.skip_comments",
-    &titlemessage[0].skip_comments
+    "titlemessage_1.parse_comments",
+    &titlemessage[0].parse_comments
   },
   {
     "titlemessage_1.sort_priority",
     &titlemessage[0].sort_priority
   },
+  {
+    "titlemessage_1.fade_mode",
+    &titlemessage[0].fade_mode
+  },
+  {
+    "titlemessage_1.fade_delay",
+    &titlemessage[0].fade_delay
+  },
+  {
+    "titlemessage_1.post_delay",
+    &titlemessage[0].post_delay
+  },
+  {
+    "titlemessage_1.auto_delay",
+    &titlemessage[0].auto_delay
+  },
   {
     "titlemessage_2.x",
     &titlemessage[1].x
@@ -336,6 +624,10 @@ struct TokenIntPtrInfo image_config_vars[] =
     "titlemessage_2.align",
     &titlemessage[1].align
   },
+  {
+    "titlemessage_2.valign",
+    &titlemessage[1].valign
+  },
   {
     "titlemessage_2.font",
     &titlemessage[1].font
@@ -349,13 +641,29 @@ struct TokenIntPtrInfo image_config_vars[] =
     &titlemessage[1].centered
   },
   {
-    "titlemessage_2.skip_comments",
-    &titlemessage[1].skip_comments
+    "titlemessage_2.parse_comments",
+    &titlemessage[1].parse_comments
   },
   {
     "titlemessage_2.sort_priority",
     &titlemessage[1].sort_priority
   },
+  {
+    "titlemessage_2.fade_mode",
+    &titlemessage[1].fade_mode
+  },
+  {
+    "titlemessage_2.fade_delay",
+    &titlemessage[1].fade_delay
+  },
+  {
+    "titlemessage_2.post_delay",
+    &titlemessage[1].post_delay
+  },
+  {
+    "titlemessage_2.auto_delay",
+    &titlemessage[1].auto_delay
+  },
   {
     "titlemessage_3.x",
     &titlemessage[2].x
@@ -384,6 +692,10 @@ struct TokenIntPtrInfo image_config_vars[] =
     "titlemessage_3.align",
     &titlemessage[2].align
   },
+  {
+    "titlemessage_3.valign",
+    &titlemessage[2].valign
+  },
   {
     "titlemessage_3.font",
     &titlemessage[2].font
@@ -397,13 +709,29 @@ struct TokenIntPtrInfo image_config_vars[] =
     &titlemessage[2].centered
   },
   {
-    "titlemessage_3.skip_comments",
-    &titlemessage[2].skip_comments
+    "titlemessage_3.parse_comments",
+    &titlemessage[2].parse_comments
   },
   {
     "titlemessage_3.sort_priority",
     &titlemessage[2].sort_priority
   },
+  {
+    "titlemessage_3.fade_mode",
+    &titlemessage[2].fade_mode
+  },
+  {
+    "titlemessage_3.fade_delay",
+    &titlemessage[2].fade_delay
+  },
+  {
+    "titlemessage_3.post_delay",
+    &titlemessage[2].post_delay
+  },
+  {
+    "titlemessage_3.auto_delay",
+    &titlemessage[2].auto_delay
+  },
   {
     "titlemessage_4.x",
     &titlemessage[3].x
@@ -432,6 +760,10 @@ struct TokenIntPtrInfo image_config_vars[] =
     "titlemessage_4.align",
     &titlemessage[3].align
   },
+  {
+    "titlemessage_4.valign",
+    &titlemessage[3].valign
+  },
   {
     "titlemessage_4.font",
     &titlemessage[3].font
@@ -445,13 +777,29 @@ struct TokenIntPtrInfo image_config_vars[] =
     &titlemessage[3].centered
   },
   {
-    "titlemessage_4.skip_comments",
-    &titlemessage[3].skip_comments
+    "titlemessage_4.parse_comments",
+    &titlemessage[3].parse_comments
   },
   {
     "titlemessage_4.sort_priority",
     &titlemessage[3].sort_priority
   },
+  {
+    "titlemessage_4.fade_mode",
+    &titlemessage[3].fade_mode
+  },
+  {
+    "titlemessage_4.fade_delay",
+    &titlemessage[3].fade_delay
+  },
+  {
+    "titlemessage_4.post_delay",
+    &titlemessage[3].post_delay
+  },
+  {
+    "titlemessage_4.auto_delay",
+    &titlemessage[3].auto_delay
+  },
   {
     "titlemessage_5.x",
     &titlemessage[4].x
@@ -480,6 +828,10 @@ struct TokenIntPtrInfo image_config_vars[] =
     "titlemessage_5.align",
     &titlemessage[4].align
   },
+  {
+    "titlemessage_5.valign",
+    &titlemessage[4].valign
+  },
   {
     "titlemessage_5.font",
     &titlemessage[4].font
@@ -493,13 +845,29 @@ struct TokenIntPtrInfo image_config_vars[] =
     &titlemessage[4].centered
   },
   {
-    "titlemessage_5.skip_comments",
-    &titlemessage[4].skip_comments
+    "titlemessage_5.parse_comments",
+    &titlemessage[4].parse_comments
   },
   {
     "titlemessage_5.sort_priority",
     &titlemessage[4].sort_priority
   },
+  {
+    "titlemessage_5.fade_mode",
+    &titlemessage[4].fade_mode
+  },
+  {
+    "titlemessage_5.fade_delay",
+    &titlemessage[4].fade_delay
+  },
+  {
+    "titlemessage_5.post_delay",
+    &titlemessage[4].post_delay
+  },
+  {
+    "titlemessage_5.auto_delay",
+    &titlemessage[4].auto_delay
+  },
   {
     "readme.x",
     &readme.x
@@ -528,6 +896,10 @@ struct TokenIntPtrInfo image_config_vars[] =
     "readme.align",
     &readme.align
   },
+  {
+    "readme.valign",
+    &readme.valign
+  },
   {
     "readme.font",
     &readme.font
@@ -541,8 +913,8 @@ struct TokenIntPtrInfo image_config_vars[] =
     &readme.centered
   },
   {
-    "readme.skip_comments",
-    &readme.skip_comments
+    "readme.parse_comments",
+    &readme.parse_comments
   },
   {
     "readme.sort_priority",
@@ -589,28 +961,40 @@ struct TokenIntPtrInfo image_config_vars[] =
     &border.draw_masked[GFX_SPECIAL_ARG_DOOR]
   },
   {
-    "title.fade_delay",
-    &title.fade_delay
+    "menu.enter_menu.fade_mode",
+    &menu.enter_menu.fade_mode
+  },
+  {
+    "menu.enter_menu.fade_delay",
+    &menu.enter_menu.fade_delay
+  },
+  {
+    "menu.enter_menu.post_delay",
+    &menu.enter_menu.post_delay
+  },
+  {
+    "menu.leave_menu.fade_mode",
+    &menu.leave_menu.fade_mode
   },
   {
-    "title.post_delay",
-    &title.post_delay
+    "menu.leave_menu.fade_delay",
+    &menu.leave_menu.fade_delay
   },
   {
-    "title.auto_delay",
-    &title.auto_delay
+    "menu.leave_menu.post_delay",
+    &menu.leave_menu.post_delay
   },
   {
-    "menu.fade_delay",
-    &menu.fade_delay
+    "menu.start_item.fade_mode",
+    &menu.start_item.fade_mode
   },
   {
-    "menu.post_delay",
-    &menu.post_delay
+    "menu.start_item.fade_delay",
+    &menu.start_item.fade_delay
   },
   {
-    "menu.auto_delay",
-    &menu.auto_delay
+    "menu.start_item.post_delay",
+    &menu.start_item.post_delay
   },
   {
     "menu.draw_xoffset",
@@ -836,6 +1220,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 +1248,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 +1276,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 +1304,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 +1332,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 +1360,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 +1388,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
@@ -1005,24 +1417,12 @@ struct TokenIntPtrInfo image_config_vars[] =
     &menu.main.text.quit.align
   },
   {
-    "main.text.quit.font",
-    &menu.main.text.quit.font
+    "main.text.quit.valign",
+    &menu.main.text.quit.valign
   },
   {
-    "main.text.current_level.x",
-    &menu.main.text.current_level.x
-  },
-  {
-    "main.text.current_level.y",
-    &menu.main.text.current_level.y
-  },
-  {
-    "main.text.current_level.align",
-    &menu.main.text.current_level.align
-  },
-  {
-    "main.text.current_level.font",
-    &menu.main.text.current_level.font
+    "main.text.quit.font",
+    &menu.main.text.quit.font
   },
   {
     "main.text.first_level.x",
@@ -1036,6 +1436,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
@@ -1052,10 +1456,34 @@ 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
   },
+  {
+    "main.text.level_number.x",
+    &menu.main.text.level_number.x
+  },
+  {
+    "main.text.level_number.y",
+    &menu.main.text.level_number.y
+  },
+  {
+    "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
+  },
   {
     "main.text.level_info_1.x",
     &menu.main.text.level_info_1.x
@@ -1068,6 +1496,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 +1520,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 +1548,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 +1572,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 +1596,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 +1620,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 +1644,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 +1668,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 +1692,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 +1712,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 +1732,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 +1752,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 +1772,10 @@ struct TokenIntPtrInfo image_config_vars[] =
     "preview.align",
     &preview.align
   },
+  {
+    "preview.valign",
+    &preview.valign
+  },
   {
     "preview.xsize",
     &preview.xsize
@@ -1369,28 +1849,32 @@ struct TokenIntPtrInfo image_config_vars[] =
     &door_2.anim_mode
   },
   {
-    "game.panel.level.x",
-    &game.panel.level.x
+    "game.panel.level_number.x",
+    &game.panel.level_number.x
+  },
+  {
+    "game.panel.level_number.y",
+    &game.panel.level_number.y
   },
   {
-    "game.panel.level.y",
-    &game.panel.level.y
+    "game.panel.level_number.align",
+    &game.panel.level_number.align
   },
   {
-    "game.panel.level.align",
-    &game.panel.level.align
+    "game.panel.level_number.valign",
+    &game.panel.level_number.valign
   },
   {
-    "game.panel.level.chars",
-    &game.panel.level.chars
+    "game.panel.level_number.chars",
+    &game.panel.level_number.chars
   },
   {
-    "game.panel.level.font",
-    &game.panel.level.font
+    "game.panel.level_number.font",
+    &game.panel.level_number.font
   },
   {
-    "game.panel.level.font_narrow",
-    &game.panel.level.font_alt
+    "game.panel.level_number.font_narrow",
+    &game.panel.level_number.font_alt
   },
   {
     "game.panel.gems.x",
@@ -1404,6 +1888,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 +1912,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
@@ -1433,16 +1925,100 @@ struct TokenIntPtrInfo image_config_vars[] =
     &game.panel.inventory.font
   },
   {
-    "game.panel.keys.x",
-    &game.panel.keys.x
+    "game.panel.key_1.x",
+    &game.panel.key[0].x
+  },
+  {
+    "game.panel.key_1.y",
+    &game.panel.key[0].y
+  },
+  {
+    "game.panel.key_2.x",
+    &game.panel.key[1].x
+  },
+  {
+    "game.panel.key_2.y",
+    &game.panel.key[1].y
+  },
+  {
+    "game.panel.key_3.x",
+    &game.panel.key[2].x
+  },
+  {
+    "game.panel.key_3.y",
+    &game.panel.key[2].y
+  },
+  {
+    "game.panel.key_4.x",
+    &game.panel.key[3].x
+  },
+  {
+    "game.panel.key_4.y",
+    &game.panel.key[3].y
+  },
+  {
+    "game.panel.key_5.x",
+    &game.panel.key[4].x
+  },
+  {
+    "game.panel.key_5.y",
+    &game.panel.key[4].y
   },
   {
-    "game.panel.keys.y",
-    &game.panel.keys.y
+    "game.panel.key_6.x",
+    &game.panel.key[5].x
   },
   {
-    "game.panel.keys.align",
-    &game.panel.keys.align
+    "game.panel.key_6.y",
+    &game.panel.key[5].y
+  },
+  {
+    "game.panel.key_7.x",
+    &game.panel.key[6].x
+  },
+  {
+    "game.panel.key_7.y",
+    &game.panel.key[6].y
+  },
+  {
+    "game.panel.key_8.x",
+    &game.panel.key[7].x
+  },
+  {
+    "game.panel.key_8.y",
+    &game.panel.key[7].y
+  },
+  {
+    "game.panel.key_white.x",
+    &game.panel.key_white.x
+  },
+  {
+    "game.panel.key_white.y",
+    &game.panel.key_white.y
+  },
+  {
+    "game.panel.key_white_count.x",
+    &game.panel.key_white_count.x
+  },
+  {
+    "game.panel.key_white_count.y",
+    &game.panel.key_white_count.y
+  },
+  {
+    "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
+  },
+  {
+    "game.panel.key_white_count.font",
+    &game.panel.key_white_count.font
   },
   {
     "game.panel.score.x",
@@ -1456,6 +2032,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
@@ -1476,6 +2056,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
@@ -1500,6 +2084,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
@@ -1520,6 +2108,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
@@ -1540,6 +2132,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
@@ -1612,110 +2208,6 @@ struct TokenIntPtrInfo image_config_vars[] =
     "game.panel.drop_next_8.y",
     &game.panel.drop_next_8.y
   },
-  {
-    "game.panel.emc_keys.x",
-    &game.panel.emc_keys.x
-  },
-  {
-    "game.panel.emc_keys.y",
-    &game.panel.emc_keys.y
-  },
-  {
-    "game.panel.emc_keys.align",
-    &game.panel.emc_keys.align
-  },
-  {
-    "game.panel.key_1.x",
-    &game.panel.key_1.x
-  },
-  {
-    "game.panel.key_1.y",
-    &game.panel.key_1.y
-  },
-  {
-    "game.panel.key_2.x",
-    &game.panel.key_2.x
-  },
-  {
-    "game.panel.key_2.y",
-    &game.panel.key_2.y
-  },
-  {
-    "game.panel.key_3.x",
-    &game.panel.key_3.x
-  },
-  {
-    "game.panel.key_3.y",
-    &game.panel.key_3.y
-  },
-  {
-    "game.panel.key_4.x",
-    &game.panel.key_4.x
-  },
-  {
-    "game.panel.key_4.y",
-    &game.panel.key_4.y
-  },
-  {
-    "game.panel.key_5.x",
-    &game.panel.key_5.x
-  },
-  {
-    "game.panel.key_5.y",
-    &game.panel.key_5.y
-  },
-  {
-    "game.panel.key_6.x",
-    &game.panel.key_6.x
-  },
-  {
-    "game.panel.key_6.y",
-    &game.panel.key_6.y
-  },
-  {
-    "game.panel.key_7.x",
-    &game.panel.key_7.x
-  },
-  {
-    "game.panel.key_7.y",
-    &game.panel.key_7.y
-  },
-  {
-    "game.panel.key_8.x",
-    &game.panel.key_8.x
-  },
-  {
-    "game.panel.key_8.y",
-    &game.panel.key_8.y
-  },
-  {
-    "game.panel.key_white.x",
-    &game.panel.key_white.x
-  },
-  {
-    "game.panel.key_white.y",
-    &game.panel.key_white.y
-  },
-  {
-    "game.panel.white_keys.x",
-    &game.panel.white_keys.x
-  },
-  {
-    "game.panel.white_keys.y",
-    &game.panel.white_keys.y
-  },
-  {
-    "game.panel.white_keys.align",
-    &game.panel.white_keys.align
-  },
-  {
-    "game.panel.white_keys.chars",
-    &game.panel.white_keys.chars
-  },
-  {
-    "game.panel.white_keys.font",
-    &game.panel.white_keys.font
-  },
   {
     "game.panel.shield_normal.x",
     &game.panel.shield_normal.x
@@ -1736,6 +2228,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
@@ -1764,6 +2260,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
@@ -1821,24 +2321,12 @@ struct TokenIntPtrInfo image_config_vars[] =
     &game.panel.emc_magic_ball.y
   },
   {
-    "game.panel.emc_magic_ball_time.x",
-    &game.panel.emc_magic_ball_time.x
-  },
-  {
-    "game.panel.emc_magic_ball_time.y",
-    &game.panel.emc_magic_ball_time.y
-  },
-  {
-    "game.panel.emc_magic_ball_time.align",
-    &game.panel.emc_magic_ball_time.align
-  },
-  {
-    "game.panel.emc_magic_ball_time.chars",
-    &game.panel.emc_magic_ball_time.chars
+    "game.panel.emc_magic_ball_switch.x",
+    &game.panel.emc_magic_ball_switch.x
   },
   {
-    "game.panel.emc_magic_ball_time.font",
-    &game.panel.emc_magic_ball_time.font
+    "game.panel.emc_magic_ball_switch.y",
+    &game.panel.emc_magic_ball_switch.y
   },
   {
     "game.panel.light_switch.x",
@@ -1860,6 +2348,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
@@ -1888,6 +2380,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
@@ -1924,6 +2420,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
@@ -1952,6 +2452,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
@@ -1980,6 +2484,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
@@ -2000,6 +2508,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
@@ -2028,6 +2540,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
@@ -2048,6 +2564,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
@@ -2068,6 +2588,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
@@ -2092,30 +2616,6 @@ struct TokenIntPtrInfo image_config_vars[] =
     "game.panel.conveyor_belt_1.y",
     &game.panel.conveyor_belt_1.y
   },
-  {
-    "game.panel.conveyor_belt_2.x",
-    &game.panel.conveyor_belt_2.x
-  },
-  {
-    "game.panel.conveyor_belt_2.y",
-    &game.panel.conveyor_belt_2.y
-  },
-  {
-    "game.panel.conveyor_belt_3.x",
-    &game.panel.conveyor_belt_3.x
-  },
-  {
-    "game.panel.conveyor_belt_3.y",
-    &game.panel.conveyor_belt_3.y
-  },
-  {
-    "game.panel.conveyor_belt_4.x",
-    &game.panel.conveyor_belt_4.x
-  },
-  {
-    "game.panel.conveyor_belt_4.y",
-    &game.panel.conveyor_belt_4.y
-  },
   {
     "game.panel.conveyor_belt_1_switch.x",
     &game.panel.conveyor_belt_1_switch.x
@@ -2124,6 +2624,14 @@ struct TokenIntPtrInfo image_config_vars[] =
     "game.panel.conveyor_belt_1_switch.y",
     &game.panel.conveyor_belt_1_switch.y
   },
+  {
+    "game.panel.conveyor_belt_2.x",
+    &game.panel.conveyor_belt_2.x
+  },
+  {
+    "game.panel.conveyor_belt_2.y",
+    &game.panel.conveyor_belt_2.y
+  },
   {
     "game.panel.conveyor_belt_2_switch.x",
     &game.panel.conveyor_belt_2_switch.x
@@ -2132,6 +2640,14 @@ struct TokenIntPtrInfo image_config_vars[] =
     "game.panel.conveyor_belt_2_switch.y",
     &game.panel.conveyor_belt_2_switch.y
   },
+  {
+    "game.panel.conveyor_belt_3.x",
+    &game.panel.conveyor_belt_3.x
+  },
+  {
+    "game.panel.conveyor_belt_3.y",
+    &game.panel.conveyor_belt_3.y
+  },
   {
     "game.panel.conveyor_belt_3_switch.x",
     &game.panel.conveyor_belt_3_switch.x
@@ -2140,6 +2656,14 @@ struct TokenIntPtrInfo image_config_vars[] =
     "game.panel.conveyor_belt_3_switch.y",
     &game.panel.conveyor_belt_3_switch.y
   },
+  {
+    "game.panel.conveyor_belt_4.x",
+    &game.panel.conveyor_belt_4.x
+  },
+  {
+    "game.panel.conveyor_belt_4.y",
+    &game.panel.conveyor_belt_4.y
+  },
   {
     "game.panel.conveyor_belt_4_switch.x",
     &game.panel.conveyor_belt_4_switch.x
@@ -2168,6 +2692,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
@@ -2204,6 +2732,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
@@ -2224,6 +2756,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
@@ -2244,6 +2780,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
@@ -2253,52 +2793,56 @@ struct TokenIntPtrInfo image_config_vars[] =
     &game.panel.level_author.font
   },
   {
-    "game.panel.stop.x",
-    &game.panel.stop.x
+    "game.button.stop.x",
+    &game.button.stop.x
+  },
+  {
+    "game.button.stop.y",
+    &game.button.stop.y
   },
   {
-    "game.panel.stop.y",
-    &game.panel.stop.y
+    "game.button.pause.x",
+    &game.button.pause.x
   },
   {
-    "game.panel.pause.x",
-    &game.panel.pause.x
+    "game.button.pause.y",
+    &game.button.pause.y
   },
   {
-    "game.panel.pause.y",
-    &game.panel.pause.y
+    "game.button.play.x",
+    &game.button.play.x
   },
   {
-    "game.panel.play.x",
-    &game.panel.play.x
+    "game.button.play.y",
+    &game.button.play.y
   },
   {
-    "game.panel.play.y",
-    &game.panel.play.y
+    "game.button.sound_music.x",
+    &game.button.sound_music.x
   },
   {
-    "game.panel.sound_music.x",
-    &game.panel.sound_music.x
+    "game.button.sound_music.y",
+    &game.button.sound_music.y
   },
   {
-    "game.panel.sound_music.y",
-    &game.panel.sound_music.y
+    "game.button.sound_loops.x",
+    &game.button.sound_loops.x
   },
   {
-    "game.panel.sound_loops.x",
-    &game.panel.sound_loops.x
+    "game.button.sound_loops.y",
+    &game.button.sound_loops.y
   },
   {
-    "game.panel.sound_loops.y",
-    &game.panel.sound_loops.y
+    "game.button.sound_simple.x",
+    &game.button.sound_simple.x
   },
   {
-    "game.panel.sound_simple.x",
-    &game.panel.sound_simple.x
+    "game.button.sound_simple.y",
+    &game.button.sound_simple.y
   },
   {
-    "game.panel.sound_simple.y",
-    &game.panel.sound_simple.y
+    "game.forced_scroll_delay_value",
+    &game.forced_scroll_delay_value
   },
   {
     "[player].boring_delay_fixed",