rnd-20070315-2-src
authorHolger Schemel <info@artsoft.org>
Thu, 15 Mar 2007 02:46:30 +0000 (03:46 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:54:55 +0000 (10:54 +0200)
12 files changed:
src/conf_gfx.c
src/conf_var.c
src/conftime.h
src/game.c
src/init.c
src/libgame/misc.c
src/libgame/system.h
src/libgame/text.c
src/libgame/text.h
src/main.h
src/screens.c
src/tools.c

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