rnd-20070215-1-src
[rocksndiamonds.git] / src / main.c
index 5abc0ae1ffada1674d3440dc82f7da26289b5178..bfa11abd651c4b346c8f4977443f9a56c7c93fbc 100644 (file)
@@ -107,6 +107,9 @@ struct GameInfo             game;
 struct GlobalInfo      global;
 struct BorderInfo      border;
 struct TitleInfo       title;
+struct TitleMessageInfo        titlemessage_initial[MAX_NUM_TITLE_MESSAGES];
+struct TitleMessageInfo        titlemessage[MAX_NUM_TITLE_MESSAGES];
+struct TitleMessageInfo        readme;
 struct MenuInfo                menu;
 struct DoorInfo                door_1, door_2;
 struct PreviewInfo     preview;
@@ -5380,130 +5383,749 @@ struct SpecialSuffixInfo special_suffix_info[NUM_SPECIAL_GFX_ARGS + 1 + 1] =
 
 struct TokenIntPtrInfo image_config_vars[] =
 {
-  { "global.num_toons",                &global.num_toons                             },
+  {
+    "titlemessage_initial_1.x",
+    &titlemessage_initial[0].x
+  },
+  {
+    "titlemessage_initial_1.y",
+    &titlemessage_initial[0].y
+  },
+  {
+    "titlemessage_initial_1.width",
+    &titlemessage_initial[0].width
+  },
+  {
+    "titlemessage_initial_1.height",
+    &titlemessage_initial[0].height
+  },
+  {
+    "titlemessage_initial_1.chars",
+    &titlemessage_initial[0].chars
+  },
+  {
+    "titlemessage_initial_1.lines",
+    &titlemessage_initial[0].lines
+  },
+  {
+    "titlemessage_initial_1.align",
+    &titlemessage_initial[0].align
+  },
+  {
+    "titlemessage_initial_1.autowrap",
+    &titlemessage_initial[0].autowrap
+  },
+  {
+    "titlemessage_initial_1.centered",
+    &titlemessage_initial[0].centered
+  },
+  {
+    "titlemessage_initial_1.skip_comments",
+    &titlemessage_initial[0].skip_comments
+  },
+  {
+    "titlemessage_initial_1.sort_priority",
+    &titlemessage_initial[0].sort_priority
+  },
+  {
+    "titlemessage_initial_2.x",
+    &titlemessage_initial[1].x
+  },
+  {
+    "titlemessage_initial_2.y",
+    &titlemessage_initial[1].y
+  },
+  {
+    "titlemessage_initial_2.width",
+    &titlemessage_initial[1].width
+  },
+  {
+    "titlemessage_initial_2.height",
+    &titlemessage_initial[1].height
+  },
+  {
+    "titlemessage_initial_2.chars",
+    &titlemessage_initial[1].chars
+  },
+  {
+    "titlemessage_initial_2.lines",
+    &titlemessage_initial[1].lines
+  },
+  {
+    "titlemessage_initial_2.align",
+    &titlemessage_initial[1].align
+  },
+  {
+    "titlemessage_initial_2.autowrap",
+    &titlemessage_initial[1].autowrap
+  },
+  {
+    "titlemessage_initial_2.centered",
+    &titlemessage_initial[1].centered
+  },
+  {
+    "titlemessage_initial_2.skip_comments",
+    &titlemessage_initial[1].skip_comments
+  },
+  {
+    "titlemessage_initial_2.sort_priority",
+    &titlemessage_initial[1].sort_priority
+  },
+  {
+    "titlemessage_initial_3.x",
+    &titlemessage_initial[2].x
+  },
+  {
+    "titlemessage_initial_3.y",
+    &titlemessage_initial[2].y
+  },
+  {
+    "titlemessage_initial_3.width",
+    &titlemessage_initial[2].width
+  },
+  {
+    "titlemessage_initial_3.height",
+    &titlemessage_initial[2].height
+  },
+  {
+    "titlemessage_initial_3.chars",
+    &titlemessage_initial[2].chars
+  },
+  {
+    "titlemessage_initial_3.lines",
+    &titlemessage_initial[2].lines
+  },
+  {
+    "titlemessage_initial_3.align",
+    &titlemessage_initial[2].align
+  },
+  {
+    "titlemessage_initial_3.autowrap",
+    &titlemessage_initial[2].autowrap
+  },
+  {
+    "titlemessage_initial_3.centered",
+    &titlemessage_initial[2].centered
+  },
+  {
+    "titlemessage_initial_3.skip_comments",
+    &titlemessage_initial[2].skip_comments
+  },
+  {
+    "titlemessage_initial_3.sort_priority",
+    &titlemessage_initial[2].sort_priority
+  },
+  {
+    "titlemessage_initial_4.x",
+    &titlemessage_initial[3].x
+  },
+  {
+    "titlemessage_initial_4.y",
+    &titlemessage_initial[3].y
+  },
+  {
+    "titlemessage_initial_4.width",
+    &titlemessage_initial[3].width
+  },
+  {
+    "titlemessage_initial_4.height",
+    &titlemessage_initial[3].height
+  },
+  {
+    "titlemessage_initial_4.chars",
+    &titlemessage_initial[3].chars
+  },
+  {
+    "titlemessage_initial_4.lines",
+    &titlemessage_initial[3].lines
+  },
+  {
+    "titlemessage_initial_4.align",
+    &titlemessage_initial[3].align
+  },
+  {
+    "titlemessage_initial_4.autowrap",
+    &titlemessage_initial[3].autowrap
+  },
+  {
+    "titlemessage_initial_4.centered",
+    &titlemessage_initial[3].centered
+  },
+  {
+    "titlemessage_initial_4.skip_comments",
+    &titlemessage_initial[3].skip_comments
+  },
+  {
+    "titlemessage_initial_4.sort_priority",
+    &titlemessage_initial[3].sort_priority
+  },
+  {
+    "titlemessage_initial_5.x",
+    &titlemessage_initial[4].x
+  },
+  {
+    "titlemessage_initial_5.y",
+    &titlemessage_initial[4].y
+  },
+  {
+    "titlemessage_initial_5.width",
+    &titlemessage_initial[4].width
+  },
+  {
+    "titlemessage_initial_5.height",
+    &titlemessage_initial[4].height
+  },
+  {
+    "titlemessage_initial_5.chars",
+    &titlemessage_initial[4].chars
+  },
+  {
+    "titlemessage_initial_5.lines",
+    &titlemessage_initial[4].lines
+  },
+  {
+    "titlemessage_initial_5.align",
+    &titlemessage_initial[4].align
+  },
+  {
+    "titlemessage_initial_5.autowrap",
+    &titlemessage_initial[4].autowrap
+  },
+  {
+    "titlemessage_initial_5.centered",
+    &titlemessage_initial[4].centered
+  },
+  {
+    "titlemessage_initial_5.skip_comments",
+    &titlemessage_initial[4].skip_comments
+  },
+  {
+    "titlemessage_initial_5.sort_priority",
+    &titlemessage_initial[4].sort_priority
+  },
+  {
+    "titlemessage_1.x",
+    &titlemessage[0].x
+  },
+  {
+    "titlemessage_1.y",
+    &titlemessage[0].y
+  },
+  {
+    "titlemessage_1.width",
+    &titlemessage[0].width
+  },
+  {
+    "titlemessage_1.height",
+    &titlemessage[0].height
+  },
+  {
+    "titlemessage_1.chars",
+    &titlemessage[0].chars
+  },
+  {
+    "titlemessage_1.lines",
+    &titlemessage[0].lines
+  },
+  {
+    "titlemessage_1.align",
+    &titlemessage[0].align
+  },
+  {
+    "titlemessage_1.autowrap",
+    &titlemessage[0].autowrap
+  },
+  {
+    "titlemessage_1.centered",
+    &titlemessage[0].centered
+  },
+  {
+    "titlemessage_1.skip_comments",
+    &titlemessage[0].skip_comments
+  },
+  {
+    "titlemessage_1.sort_priority",
+    &titlemessage[0].sort_priority
+  },
+  {
+    "titlemessage_2.x",
+    &titlemessage[1].x
+  },
+  {
+    "titlemessage_2.y",
+    &titlemessage[1].y
+  },
+  {
+    "titlemessage_2.width",
+    &titlemessage[1].width
+  },
+  {
+    "titlemessage_2.height",
+    &titlemessage[1].height
+  },
+  {
+    "titlemessage_2.chars",
+    &titlemessage[1].chars
+  },
+  {
+    "titlemessage_2.lines",
+    &titlemessage[1].lines
+  },
+  {
+    "titlemessage_2.align",
+    &titlemessage[1].align
+  },
+  {
+    "titlemessage_2.autowrap",
+    &titlemessage[1].autowrap
+  },
+  {
+    "titlemessage_2.centered",
+    &titlemessage[1].centered
+  },
+  {
+    "titlemessage_2.skip_comments",
+    &titlemessage[1].skip_comments
+  },
+  {
+    "titlemessage_2.sort_priority",
+    &titlemessage[1].sort_priority
+  },
+  {
+    "titlemessage_3.x",
+    &titlemessage[2].x
+  },
+  {
+    "titlemessage_3.y",
+    &titlemessage[2].y
+  },
+  {
+    "titlemessage_3.width",
+    &titlemessage[2].width
+  },
+  {
+    "titlemessage_3.height",
+    &titlemessage[2].height
+  },
+  {
+    "titlemessage_3.chars",
+    &titlemessage[2].chars
+  },
+  {
+    "titlemessage_3.lines",
+    &titlemessage[2].lines
+  },
+  {
+    "titlemessage_3.align",
+    &titlemessage[2].align
+  },
+  {
+    "titlemessage_3.autowrap",
+    &titlemessage[2].autowrap
+  },
+  {
+    "titlemessage_3.centered",
+    &titlemessage[2].centered
+  },
+  {
+    "titlemessage_3.skip_comments",
+    &titlemessage[2].skip_comments
+  },
+  {
+    "titlemessage_3.sort_priority",
+    &titlemessage[2].sort_priority
+  },
+  {
+    "titlemessage_4.x",
+    &titlemessage[3].x
+  },
+  {
+    "titlemessage_4.y",
+    &titlemessage[3].y
+  },
+  {
+    "titlemessage_4.width",
+    &titlemessage[3].width
+  },
+  {
+    "titlemessage_4.height",
+    &titlemessage[3].height
+  },
+  {
+    "titlemessage_4.chars",
+    &titlemessage[3].chars
+  },
+  {
+    "titlemessage_4.lines",
+    &titlemessage[3].lines
+  },
+  {
+    "titlemessage_4.align",
+    &titlemessage[3].align
+  },
+  {
+    "titlemessage_4.autowrap",
+    &titlemessage[3].autowrap
+  },
+  {
+    "titlemessage_4.centered",
+    &titlemessage[3].centered
+  },
+  {
+    "titlemessage_4.skip_comments",
+    &titlemessage[3].skip_comments
+  },
+  {
+    "titlemessage_4.sort_priority",
+    &titlemessage[3].sort_priority
+  },
+  {
+    "titlemessage_5.x",
+    &titlemessage[4].x
+  },
+  {
+    "titlemessage_5.y",
+    &titlemessage[4].y
+  },
+  {
+    "titlemessage_5.width",
+    &titlemessage[4].width
+  },
+  {
+    "titlemessage_5.height",
+    &titlemessage[4].height
+  },
+  {
+    "titlemessage_5.chars",
+    &titlemessage[4].chars
+  },
+  {
+    "titlemessage_5.lines",
+    &titlemessage[4].lines
+  },
+  {
+    "titlemessage_5.align",
+    &titlemessage[4].align
+  },
+  {
+    "titlemessage_5.autowrap",
+    &titlemessage[4].autowrap
+  },
+  {
+    "titlemessage_5.centered",
+    &titlemessage[4].centered
+  },
+  {
+    "titlemessage_5.skip_comments",
+    &titlemessage[4].skip_comments
+  },
+  {
+    "titlemessage_5.sort_priority",
+    &titlemessage[4].sort_priority
+  },
 
-  { "border.draw_masked.TITLE",         &border.draw_masked[GFX_SPECIAL_ARG_TITLE]   },
-  { "border.draw_masked.MAIN",  &border.draw_masked[GFX_SPECIAL_ARG_MAIN]    },
-  { "border.draw_masked.LEVELS", &border.draw_masked[GFX_SPECIAL_ARG_LEVELS]  },
-  { "border.draw_masked.SCORES", &border.draw_masked[GFX_SPECIAL_ARG_SCORES]  },
-  { "border.draw_masked.EDITOR", &border.draw_masked[GFX_SPECIAL_ARG_EDITOR]  },
-  { "border.draw_masked.INFO",  &border.draw_masked[GFX_SPECIAL_ARG_INFO]    },
-  { "border.draw_masked.SETUP",         &border.draw_masked[GFX_SPECIAL_ARG_SETUP]   },
-  { "border.draw_masked.PLAYING",&border.draw_masked[GFX_SPECIAL_ARG_PLAYING] },
-  { "border.draw_masked.DOOR",  &border.draw_masked[GFX_SPECIAL_ARG_DOOR]    },
+  {
+    "readme.x",
+    &readme.x
+  },
+  {
+    "readme.y",
+    &readme.y
+  },
+  {
+    "readme.width",
+    &readme.width
+  },
+  {
+    "readme.height",
+    &readme.height
+  },
+  {
+    "readme.chars",
+    &readme.chars
+  },
+  {
+    "readme.lines",
+    &readme.lines
+  },
+  {
+    "readme.align",
+    &readme.align
+  },
+  {
+    "readme.autowrap",
+    &readme.autowrap
+  },
+  {
+    "readme.centered",
+    &readme.centered
+  },
+  {
+    "readme.skip_comments",
+    &readme.skip_comments
+  },
+  {
+    "readme.sort_priority",
+    &readme.sort_priority
+  },
 
-  { "title.fade_delay",                &title.fade_delay                             },
-  { "title.post_delay",                &title.post_delay                             },
-  { "title.auto_delay",                &title.auto_delay                             },
+  {
+    "global.num_toons",
+    &global.num_toons
+  },
 
-  { "menu.fade_delay",         &menu.fade_delay                              },
-  { "menu.post_delay",         &menu.post_delay                              },
-  { "menu.auto_delay",         &menu.auto_delay                              },
+  {
+    "border.draw_masked.TITLE",
+    &border.draw_masked[GFX_SPECIAL_ARG_TITLE]
+  },
+  {
+    "border.draw_masked.MAIN",
+    &border.draw_masked[GFX_SPECIAL_ARG_MAIN]
+  },
+  {
+    "border.draw_masked.LEVELS",
+    &border.draw_masked[GFX_SPECIAL_ARG_LEVELS]
+  },
+  {
+    "border.draw_masked.SCORES",
+    &border.draw_masked[GFX_SPECIAL_ARG_SCORES]
+  },
+  {
+    "border.draw_masked.EDITOR",
+    &border.draw_masked[GFX_SPECIAL_ARG_EDITOR]
+  },
+  {
+    "border.draw_masked.INFO",
+    &border.draw_masked[GFX_SPECIAL_ARG_INFO]
+  },
+  {
+    "border.draw_masked.SETUP",
+    &border.draw_masked[GFX_SPECIAL_ARG_SETUP]
+  },
+  {
+    "border.draw_masked.PLAYING",
+    &border.draw_masked[GFX_SPECIAL_ARG_PLAYING]
+  },
+  {
+    "border.draw_masked.DOOR",
+    &border.draw_masked[GFX_SPECIAL_ARG_DOOR]
+  },
+
+  {
+    "title.fade_delay",
+    &title.fade_delay
+  },
+  {
+    "title.post_delay",
+    &title.post_delay
+  },
+  {
+    "title.auto_delay",
+    &title.auto_delay
+  },
+
+  {
+    "menu.fade_delay",
+    &menu.fade_delay
+  },
+  {
+    "menu.post_delay",
+    &menu.post_delay
+  },
+  {
+    "menu.auto_delay",
+    &menu.auto_delay
+  },
 
-  { "menu.draw_xoffset",       &menu.draw_xoffset[GFX_SPECIAL_ARG_DEFAULT]   },
-  { "menu.draw_yoffset",       &menu.draw_yoffset[GFX_SPECIAL_ARG_DEFAULT]   },
-  { "menu.draw_xoffset.MAIN",  &menu.draw_xoffset[GFX_SPECIAL_ARG_MAIN]      },
-  { "menu.draw_yoffset.MAIN",  &menu.draw_yoffset[GFX_SPECIAL_ARG_MAIN]      },
-  { "menu.draw_xoffset.LEVELS",        &menu.draw_xoffset[GFX_SPECIAL_ARG_LEVELS]    },
-  { "menu.draw_yoffset.LEVELS",        &menu.draw_yoffset[GFX_SPECIAL_ARG_LEVELS]    },
-  { "menu.draw_xoffset.SCORES",        &menu.draw_xoffset[GFX_SPECIAL_ARG_SCORES]    },
-  { "menu.draw_yoffset.SCORES",        &menu.draw_yoffset[GFX_SPECIAL_ARG_SCORES]    },
-  { "menu.draw_xoffset.EDITOR",        &menu.draw_xoffset[GFX_SPECIAL_ARG_EDITOR]    },
-  { "menu.draw_yoffset.EDITOR",        &menu.draw_yoffset[GFX_SPECIAL_ARG_EDITOR]    },
-  { "menu.draw_xoffset.INFO",  &menu.draw_xoffset[GFX_SPECIAL_ARG_INFO]      },
-  { "menu.draw_yoffset.INFO",  &menu.draw_yoffset[GFX_SPECIAL_ARG_INFO]      },
-  { "menu.draw_xoffset.INFO[ELEMENTS]",
-    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_ELEMENTS]                   },
-  { "menu.draw_yoffset.INFO[ELEMENTS]",
-    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_ELEMENTS]                   },
-  { "menu.draw_xoffset.INFO[MUSIC]",
-    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_MUSIC]                              },
-  { "menu.draw_yoffset.INFO[MUSIC]",
-    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_MUSIC]                              },
-  { "menu.draw_xoffset.INFO[CREDITS]",
-    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_CREDITS]                    },
-  { "menu.draw_yoffset.INFO[CREDITS]",
-    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_CREDITS]                    },
-  { "menu.draw_xoffset.INFO[PROGRAM]",
-    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_PROGRAM]                    },
-  { "menu.draw_yoffset.INFO[PROGRAM]",
-    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_PROGRAM]                    },
-  { "menu.draw_xoffset.INFO[LEVELSET]",
-    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_LEVELSET]                   },
-  { "menu.draw_yoffset.INFO[LEVELSET]",
-    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_LEVELSET]                   },
-  { "menu.draw_xoffset.SETUP", &menu.draw_xoffset[GFX_SPECIAL_ARG_SETUP]     },
-  { "menu.draw_yoffset.SETUP", &menu.draw_yoffset[GFX_SPECIAL_ARG_SETUP]     },
+  {
+    "menu.draw_xoffset",
+    &menu.draw_xoffset[GFX_SPECIAL_ARG_DEFAULT]
+  },
+  {
+    "menu.draw_yoffset",
+    &menu.draw_yoffset[GFX_SPECIAL_ARG_DEFAULT]
+  },
+  {
+    "menu.draw_xoffset.MAIN",
+    &menu.draw_xoffset[GFX_SPECIAL_ARG_MAIN]
+  },
+  {
+    "menu.draw_yoffset.MAIN",
+    &menu.draw_yoffset[GFX_SPECIAL_ARG_MAIN]
+  },
+  {
+    "menu.draw_xoffset.LEVELS",
+    &menu.draw_xoffset[GFX_SPECIAL_ARG_LEVELS]
+  },
+  {
+    "menu.draw_yoffset.LEVELS",
+    &menu.draw_yoffset[GFX_SPECIAL_ARG_LEVELS]
+  },
+  {
+    "menu.draw_xoffset.SCORES",
+    &menu.draw_xoffset[GFX_SPECIAL_ARG_SCORES]
+  },
+  {
+    "menu.draw_yoffset.SCORES",
+    &menu.draw_yoffset[GFX_SPECIAL_ARG_SCORES]
+  },
+  {
+    "menu.draw_xoffset.EDITOR",
+    &menu.draw_xoffset[GFX_SPECIAL_ARG_EDITOR]
+  },
+  {
+    "menu.draw_yoffset.EDITOR",
+    &menu.draw_yoffset[GFX_SPECIAL_ARG_EDITOR]
+  },
+  {
+    "menu.draw_xoffset.INFO",
+    &menu.draw_xoffset[GFX_SPECIAL_ARG_INFO]
+  },
+  {
+    "menu.draw_yoffset.INFO",
+    &menu.draw_yoffset[GFX_SPECIAL_ARG_INFO]
+  },
+  {
+    "menu.draw_xoffset.INFO[ELEMENTS]",
+    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_ELEMENTS]
+  },
+  {
+    "menu.draw_yoffset.INFO[ELEMENTS]",
+    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_ELEMENTS]
+  },
+  {
+    "menu.draw_xoffset.INFO[MUSIC]",
+    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_MUSIC]
+  },
+  {
+    "menu.draw_yoffset.INFO[MUSIC]",
+    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_MUSIC]
+  },
+  {
+    "menu.draw_xoffset.INFO[CREDITS]",
+    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_CREDITS]
+  },
+  {
+    "menu.draw_yoffset.INFO[CREDITS]",
+    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_CREDITS]
+  },
+  {
+    "menu.draw_xoffset.INFO[PROGRAM]",
+    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_PROGRAM]
+  },
+  {
+    "menu.draw_yoffset.INFO[PROGRAM]",
+    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_PROGRAM]
+  },
+  {
+    "menu.draw_xoffset.INFO[VERSION]",
+    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_VERSION]
+  },
+  {
+    "menu.draw_yoffset.INFO[VERSION]",
+    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_VERSION]
+  },
+  {
+    "menu.draw_xoffset.INFO[LEVELSET]",
+    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_LEVELSET]
+  },
+  {
+    "menu.draw_yoffset.INFO[LEVELSET]",
+    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_LEVELSET]
+  },
+  {
+    "menu.draw_xoffset.SETUP",
+    &menu.draw_xoffset[GFX_SPECIAL_ARG_SETUP]
+  },
+  {
+    "menu.draw_yoffset.SETUP",
+    &menu.draw_yoffset[GFX_SPECIAL_ARG_SETUP]
+  },
 
-  { "menu.scrollbar_xoffset",  &menu.scrollbar_xoffset                       },
+  {
+    "menu.scrollbar_xoffset",
+    &menu.scrollbar_xoffset
+  },
 
-  { "menu.list_size",          &menu.list_size[GFX_SPECIAL_ARG_DEFAULT]      },
-  { "menu.list_size.LEVELS",   &menu.list_size[GFX_SPECIAL_ARG_LEVELS]       },
-  { "menu.list_size.SCORES",   &menu.list_size[GFX_SPECIAL_ARG_SCORES]       },
-  { "menu.list_size.INFO",     &menu.list_size[GFX_SPECIAL_ARG_INFO]         },
+  {
+    "menu.list_size",
+    &menu.list_size[GFX_SPECIAL_ARG_DEFAULT]
+  },
+  {
+    "menu.list_size.LEVELS",
+    &menu.list_size[GFX_SPECIAL_ARG_LEVELS]
+  },
+  {
+    "menu.list_size.SCORES",
+    &menu.list_size[GFX_SPECIAL_ARG_SCORES]
+  },
+  {
+    "menu.list_size.INFO",
+    &menu.list_size[GFX_SPECIAL_ARG_INFO]
+  },
 
-  { "main.button.name.x",      &menu.main.button.name.x                      },
-  { "main.button.name.y",      &menu.main.button.name.y                      },
-  { "main.button.levels.x",    &menu.main.button.levels.x                    },
-  { "main.button.levels.y",    &menu.main.button.levels.y                    },
-  { "main.button.scores.x",    &menu.main.button.scores.x                    },
-  { "main.button.scores.y",    &menu.main.button.scores.y                    },
-  { "main.button.editor.x",    &menu.main.button.editor.x                    },
-  { "main.button.editor.y",    &menu.main.button.editor.y                    },
-  { "main.button.info.x",      &menu.main.button.info.x                      },
-  { "main.button.info.y",      &menu.main.button.info.y                      },
-  { "main.button.game.x",      &menu.main.button.game.x                      },
-  { "main.button.game.y",      &menu.main.button.game.y                      },
-  { "main.button.setup.x",     &menu.main.button.setup.x                     },
-  { "main.button.setup.y",     &menu.main.button.setup.y                     },
-  { "main.button.quit.x",      &menu.main.button.quit.x                      },
-  { "main.button.quit.y",      &menu.main.button.quit.y                      },
+  { "main.button.name.x",              &menu.main.button.name.x              },
+  { "main.button.name.y",              &menu.main.button.name.y              },
+  { "main.button.levels.x",            &menu.main.button.levels.x            },
+  { "main.button.levels.y",            &menu.main.button.levels.y            },
+  { "main.button.scores.x",            &menu.main.button.scores.x            },
+  { "main.button.scores.y",            &menu.main.button.scores.y            },
+  { "main.button.editor.x",            &menu.main.button.editor.x            },
+  { "main.button.editor.y",            &menu.main.button.editor.y            },
+  { "main.button.info.x",              &menu.main.button.info.x              },
+  { "main.button.info.y",              &menu.main.button.info.y              },
+  { "main.button.game.x",              &menu.main.button.game.x              },
+  { "main.button.game.y",              &menu.main.button.game.y              },
+  { "main.button.setup.x",             &menu.main.button.setup.x             },
+  { "main.button.setup.y",             &menu.main.button.setup.y             },
+  { "main.button.quit.x",              &menu.main.button.quit.x              },
+  { "main.button.quit.y",              &menu.main.button.quit.y              },
 
-  { "main.button.prev_level.x",        &menu.main.button.prev_level.x                },
-  { "main.button.prev_level.y",        &menu.main.button.prev_level.y                },
-  { "main.button.next_level.x",        &menu.main.button.next_level.x                },
-  { "main.button.next_level.y",        &menu.main.button.next_level.y                },
+  { "main.button.prev_level.x",                &menu.main.button.prev_level.x        },
+  { "main.button.prev_level.y",                &menu.main.button.prev_level.y        },
+  { "main.button.next_level.x",                &menu.main.button.next_level.x        },
+  { "main.button.next_level.y",                &menu.main.button.next_level.y        },
 
-  { "main.text.name.x",                &menu.main.text.name.x                        },
-  { "main.text.name.y",                &menu.main.text.name.y                        },
-  { "main.text.name.width",    &menu.main.text.name.width                    },
-  { "main.text.name.height",   &menu.main.text.name.height                   },
-  { "main.text.name.align",    &menu.main.text.name.align                    },
-  { "main.text.levels.x",      &menu.main.text.levels.x                      },
-  { "main.text.levels.y",      &menu.main.text.levels.y                      },
-  { "main.text.levels.width",  &menu.main.text.levels.width                  },
-  { "main.text.levels.height", &menu.main.text.levels.height                 },
-  { "main.text.levels.align",  &menu.main.text.levels.align                  },
-  { "main.text.scores.x",      &menu.main.text.scores.x                      },
-  { "main.text.scores.y",      &menu.main.text.scores.y                      },
-  { "main.text.scores.width",  &menu.main.text.scores.width                  },
-  { "main.text.scores.height", &menu.main.text.scores.height                 },
-  { "main.text.scores.align",  &menu.main.text.scores.align                  },
-  { "main.text.editor.x",      &menu.main.text.editor.x                      },
-  { "main.text.editor.y",      &menu.main.text.editor.y                      },
-  { "main.text.editor.width",  &menu.main.text.editor.width                  },
-  { "main.text.editor.height", &menu.main.text.editor.height                 },
-  { "main.text.editor.align",  &menu.main.text.editor.align                  },
-  { "main.text.info.x",                &menu.main.text.info.x                        },
-  { "main.text.info.y",                &menu.main.text.info.y                        },
-  { "main.text.info.width",    &menu.main.text.info.width                    },
-  { "main.text.info.height",   &menu.main.text.info.height                   },
-  { "main.text.info.align",    &menu.main.text.info.align                    },
-  { "main.text.game.x",                &menu.main.text.game.x                        },
-  { "main.text.game.y",                &menu.main.text.game.y                        },
-  { "main.text.game.width",    &menu.main.text.game.width                    },
-  { "main.text.game.height",   &menu.main.text.game.height                   },
-  { "main.text.game.align",    &menu.main.text.game.align                    },
-  { "main.text.setup.x",       &menu.main.text.setup.x                       },
-  { "main.text.setup.y",       &menu.main.text.setup.y                       },
-  { "main.text.setup.width",   &menu.main.text.setup.width                   },
-  { "main.text.setup.height",  &menu.main.text.setup.height                  },
-  { "main.text.setup.align",   &menu.main.text.setup.align                   },
-  { "main.text.quit.x",                &menu.main.text.quit.x                        },
-  { "main.text.quit.y",                &menu.main.text.quit.y                        },
-  { "main.text.quit.width",    &menu.main.text.quit.width                    },
-  { "main.text.quit.height",   &menu.main.text.quit.height                   },
-  { "main.text.quit.align",    &menu.main.text.quit.align                    },
+  { "main.text.name.x",                        &menu.main.text.name.x                },
+  { "main.text.name.y",                        &menu.main.text.name.y                },
+  { "main.text.name.width",            &menu.main.text.name.width            },
+  { "main.text.name.height",           &menu.main.text.name.height           },
+  { "main.text.name.align",            &menu.main.text.name.align            },
+  { "main.text.levels.x",              &menu.main.text.levels.x              },
+  { "main.text.levels.y",              &menu.main.text.levels.y              },
+  { "main.text.levels.width",          &menu.main.text.levels.width          },
+  { "main.text.levels.height",         &menu.main.text.levels.height         },
+  { "main.text.levels.align",          &menu.main.text.levels.align          },
+  { "main.text.scores.x",              &menu.main.text.scores.x              },
+  { "main.text.scores.y",              &menu.main.text.scores.y              },
+  { "main.text.scores.width",          &menu.main.text.scores.width          },
+  { "main.text.scores.height",         &menu.main.text.scores.height         },
+  { "main.text.scores.align",          &menu.main.text.scores.align          },
+  { "main.text.editor.x",              &menu.main.text.editor.x              },
+  { "main.text.editor.y",              &menu.main.text.editor.y              },
+  { "main.text.editor.width",          &menu.main.text.editor.width          },
+  { "main.text.editor.height",         &menu.main.text.editor.height         },
+  { "main.text.editor.align",          &menu.main.text.editor.align          },
+  { "main.text.info.x",                        &menu.main.text.info.x                },
+  { "main.text.info.y",                        &menu.main.text.info.y                },
+  { "main.text.info.width",            &menu.main.text.info.width            },
+  { "main.text.info.height",           &menu.main.text.info.height           },
+  { "main.text.info.align",            &menu.main.text.info.align            },
+  { "main.text.game.x",                        &menu.main.text.game.x                },
+  { "main.text.game.y",                        &menu.main.text.game.y                },
+  { "main.text.game.width",            &menu.main.text.game.width            },
+  { "main.text.game.height",           &menu.main.text.game.height           },
+  { "main.text.game.align",            &menu.main.text.game.align            },
+  { "main.text.setup.x",               &menu.main.text.setup.x               },
+  { "main.text.setup.y",               &menu.main.text.setup.y               },
+  { "main.text.setup.width",           &menu.main.text.setup.width           },
+  { "main.text.setup.height",          &menu.main.text.setup.height          },
+  { "main.text.setup.align",           &menu.main.text.setup.align           },
+  { "main.text.quit.x",                        &menu.main.text.quit.x                },
+  { "main.text.quit.y",                        &menu.main.text.quit.y                },
+  { "main.text.quit.width",            &menu.main.text.quit.width            },
+  { "main.text.quit.height",           &menu.main.text.quit.height           },
+  { "main.text.quit.align",            &menu.main.text.quit.align            },
 
   { "main.text.current_level.x",       &menu.main.text.current_level.x       },
   { "main.text.current_level.y",       &menu.main.text.current_level.y       },
@@ -5517,9 +6139,11 @@ struct TokenIntPtrInfo image_config_vars[] =
   { "main.text.level_info_1.x",                &menu.main.text.level_info_1.x        },
   { "main.text.level_info_1.y",                &menu.main.text.level_info_1.y        },
   { "main.text.level_info_1.align",    &menu.main.text.level_info_1.align    },
+  { "main.text.level_info_1.chars",    &menu.main.text.level_info_1.chars    },
   { "main.text.level_info_2.x",                &menu.main.text.level_info_2.x        },
   { "main.text.level_info_2.y",                &menu.main.text.level_info_2.y        },
   { "main.text.level_info_2.align",    &menu.main.text.level_info_2.align    },
+  { "main.text.level_info_2.chars",    &menu.main.text.level_info_2.chars    },
   { "main.text.title_1.x",             &menu.main.text.title_1.x             },
   { "main.text.title_1.y",             &menu.main.text.title_1.y             },
   { "main.text.title_1.align",         &menu.main.text.title_1.align         },
@@ -5530,52 +6154,63 @@ struct TokenIntPtrInfo image_config_vars[] =
   { "main.text.title_3.y",             &menu.main.text.title_3.y             },
   { "main.text.title_3.align",         &menu.main.text.title_3.align         },
 
-  { "main.input.name.x",       &menu.main.input.name.x                       },
-  { "main.input.name.y",       &menu.main.input.name.y                       },
-  { "main.input.name.align",   &menu.main.input.name.align                   },
+  { "main.input.name.x",               &menu.main.input.name.x               },
+  { "main.input.name.y",               &menu.main.input.name.y               },
+  { "main.input.name.align",           &menu.main.input.name.align           },
 
-  { "preview.x",               &preview.x                                    },
-  { "preview.y",               &preview.y                                    },
-  { "preview.align",           &preview.align                                },
-  { "preview.xsize",           &preview.xsize                                },
-  { "preview.ysize",           &preview.ysize                                },
-  { "preview.xoffset",         &preview.xoffset                              },
-  { "preview.yoffset",         &preview.yoffset                              },
-  { "preview.tile_size",       &preview.tile_size                            },
-  { "preview.step_offset",     &preview.step_offset                          },
-  { "preview.step_delay",      &preview.step_delay                           },
-  { "preview.anim_mode",       &preview.anim_mode                            },
+  { "preview.x",                       &preview.x                            },
+  { "preview.y",                       &preview.y                            },
+  { "preview.align",                   &preview.align                        },
+  { "preview.xsize",                   &preview.xsize                        },
+  { "preview.ysize",                   &preview.ysize                        },
+  { "preview.xoffset",                 &preview.xoffset                      },
+  { "preview.yoffset",                 &preview.yoffset                      },
+  { "preview.tile_size",               &preview.tile_size                    },
+  { "preview.step_offset",             &preview.step_offset                  },
+  { "preview.step_delay",              &preview.step_delay                   },
+  { "preview.anim_mode",               &preview.anim_mode                    },
 
-  { "door_1.width",            &door_1.width                                 },
-  { "door_1.height",           &door_1.height                                },
-  { "door_1.step_offset",      &door_1.step_offset                           },
-  { "door_1.step_delay",       &door_1.step_delay                            },
-  { "door_1.anim_mode",                &door_1.anim_mode                             },
-  { "door_2.width",            &door_2.width                                 },
-  { "door_2.height",           &door_2.height                                },
-  { "door_2.step_offset",      &door_2.step_offset                           },
-  { "door_2.step_delay",       &door_2.step_delay                            },
-  { "door_2.anim_mode",                &door_2.anim_mode                             },
+  { "door_1.width",                    &door_1.width                         },
+  { "door_1.height",                   &door_1.height                        },
+  { "door_1.step_offset",              &door_1.step_offset                   },
+  { "door_1.step_delay",               &door_1.step_delay                    },
+  { "door_1.anim_mode",                        &door_1.anim_mode                     },
+  { "door_2.width",                    &door_2.width                         },
+  { "door_2.height",                   &door_2.height                        },
+  { "door_2.step_offset",              &door_2.step_offset                   },
+  { "door_2.step_delay",               &door_2.step_delay                    },
+  { "door_2.anim_mode",                        &door_2.anim_mode                     },
 
-  { "game.panel.level.x",      &game.panel.level.x                           },
-  { "game.panel.level.y",      &game.panel.level.y                           },
-  { "game.panel.gems.x",       &game.panel.gems.x                            },
-  { "game.panel.gems.y",       &game.panel.gems.y                            },
-  { "game.panel.inventory.x",  &game.panel.inventory.x                       },
-  { "game.panel.inventory.y",  &game.panel.inventory.y                       },
-  { "game.panel.keys.x",       &game.panel.keys.x                            },
-  { "game.panel.keys.y",       &game.panel.keys.y                            },
-  { "game.panel.score.x",      &game.panel.score.x                           },
-  { "game.panel.score.y",      &game.panel.score.y                           },
-  { "game.panel.time.x",       &game.panel.time.x                            },
-  { "game.panel.time.y",       &game.panel.time.y                            },
+  { "game.panel.level.x",              &game.panel.level.x                   },
+  { "game.panel.level.y",              &game.panel.level.y                   },
+  { "game.panel.level.align",          &game.panel.level.align               },
+  { "game.panel.level.digits",         &game.panel.level.chars               },
+  { "game.panel.gems.x",               &game.panel.gems.x                    },
+  { "game.panel.gems.y",               &game.panel.gems.y                    },
+  { "game.panel.gems.align",           &game.panel.gems.align                },
+  { "game.panel.gems.digits",          &game.panel.gems.chars                },
+  { "game.panel.inventory.x",          &game.panel.inventory.x               },
+  { "game.panel.inventory.y",          &game.panel.inventory.y               },
+  { "game.panel.inventory.align",      &game.panel.inventory.align           },
+  { "game.panel.inventory.digits",     &game.panel.inventory.chars           },
+  { "game.panel.keys.x",               &game.panel.keys.x                    },
+  { "game.panel.keys.y",               &game.panel.keys.y                    },
+  { "game.panel.keys.align",           &game.panel.keys.align                },
+  { "game.panel.score.x",              &game.panel.score.x                   },
+  { "game.panel.score.y",              &game.panel.score.y                   },
+  { "game.panel.score.align",          &game.panel.score.align               },
+  { "game.panel.score.digits",         &game.panel.score.chars               },
+  { "game.panel.time.x",               &game.panel.time.x                    },
+  { "game.panel.time.y",               &game.panel.time.y                    },
+  { "game.panel.time.align",           &game.panel.time.align                },
+  { "game.panel.time.digits",          &game.panel.time.chars                },
 
   { "[player].boring_delay_fixed",     &game.player_boring_delay_fixed       },
   { "[player].boring_delay_random",    &game.player_boring_delay_random      },
   { "[player].sleeping_delay_fixed",   &game.player_sleeping_delay_fixed     },
   { "[player].sleeping_delay_random",  &game.player_sleeping_delay_random    },
 
-  { NULL,                      NULL,                                         }
+  { NULL,                              NULL,                                 }
 };
 
 
@@ -5624,6 +6259,8 @@ struct FontInfo font_info[NUM_FONTS + 1] =
   { "font.level_number"                },
   { "font.tape_recorder"       },
   { "font.game_info"           },
+  { "font.info.elements"       },
+  { "font.info.levelset"       },
 };