improved configurability of tape date and time display positions
[rocksndiamonds.git] / src / conf_gfx.c
index c9fe38cd22a7d03356bf8e355905d250b0eb8a29..96ff7825da2219bf8aedc4ddb73c64822cb1cf16 100644 (file)
@@ -1,15 +1,13 @@
-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
-*----------------------------------------------------------*
-* (c) 1995-2006 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* conf_gfx.c                                               *
-***********************************************************/
+// ============================================================================
+// Rocks'n'Diamonds - McDuffin Strikes Back!
+// ----------------------------------------------------------------------------
+// (c) 1995-2014 by Artsoft Entertainment
+//                         Holger Schemel
+//                 info@artsoft.org
+//                 http://www.artsoft.org/
+// ----------------------------------------------------------------------------
+// conf_gfx.c
+// ============================================================================
 
 #include "libgame/libgame.h"
 #include "main.h"
@@ -59,6 +57,7 @@ struct ConfigTypeInfo image_config_suffix[] =
   { ".post_delay_random",              ARG_UNDEFINED,  TYPE_INTEGER    },
   { ".name",                           ARG_UNDEFINED,  TYPE_STRING     },
   { ".scale_up_factor",                        ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".tile_size",                      ARG_UNDEFINED,  TYPE_INTEGER    },
   { ".clone_from",                     ARG_UNDEFINED,  TYPE_GRAPHIC    },
   { ".fade_mode",                      ARG_UNDEFINED,  TYPE_INTEGER    },
   { ".fade_delay",                     ARG_UNDEFINED,  TYPE_INTEGER    },
@@ -79,6 +78,10 @@ struct ConfigTypeInfo image_config_suffix[] =
 
 struct ConfigInfo image_config[] =
 {
+  // ==========================================================================
+  // image definitions for game elements (for in-game and editor graphics)
+  // ==========================================================================
+
   /* images for Boulder Dash style elements and actions */
 
   { "bd_wall",                                 "RocksDC.png"           },
@@ -4366,7 +4369,11 @@ struct ConfigInfo image_config[] =
 #include "conf_cus.c"  /* include auto-generated data structure definitions */
 #include "conf_grp.c"  /* include auto-generated data structure definitions */
 
-  /* images not associated to game elements (used for menu screens etc.) */
+
+  // ==========================================================================
+  // image definitions not associated with game elements (menu screens etc.)
+  // ==========================================================================
+
   /* keyword to stop parser: "NO_MORE_ELEMENT_IMAGES" <-- do not change! */
 
 #if 1
@@ -4736,6 +4743,9 @@ struct ConfigInfo image_config[] =
   { "game.button.gfx.sound_simple.pressed_xoffset", "-100"             },
   { "game.button.gfx.sound_simple.active_yoffset", "-30"               },
 
+  { "game.button.gfx.save",                    UNDEFINED_FILENAME      },
+  { "game.button.gfx.load",                    UNDEFINED_FILENAME      },
+
   { "tape.button.gfx.eject",                   "RocksDoor.png"         },
   { "tape.button.gfx.eject.x",                 "305"                   },
   { "tape.button.gfx.eject.y",                 "357"                   },
@@ -4859,8 +4869,43 @@ struct ConfigInfo image_config[] =
   { "tape.label.gfx.date.x",                   "305"                   },
   { "tape.label.gfx.date.y",                   "285"                   },
   { "tape.label.gfx.date.width",               "90"                    },
-  { "tape.label.gfx.date.height",              "13"                    },
-  { "tape.label.gfx.time",                     UNDEFINED_FILENAME      },
+  { "tape.label.gfx.date.height",              "31"                    },
+  { "tape.label.gfx.time",                     "RocksDoor.png"         },
+  { "tape.label.gfx.time.x",                   "345"                   },
+  { "tape.label.gfx.time.y",                   "335"                   },
+  { "tape.label.gfx.time.width",               "45"                    },
+  { "tape.label.gfx.time.height",              "13"                    },
+
+  { "request.button.gfx.yes",                  "RocksDoor.png"         },
+  { "request.button.gfx.yes.x",                        "302"                   },
+  { "request.button.gfx.yes.y",                        "0"                     },
+  { "request.button.gfx.yes.width",            "46"                    },
+  { "request.button.gfx.yes.height",           "28"                    },
+  { "request.button.gfx.yes.pressed_xoffset",  "-100"                  },
+  { "request.button.gfx.no",                   "RocksDoor.png"         },
+  { "request.button.gfx.no.x",                 "352"                   },
+  { "request.button.gfx.no.y",                 "0"                     },
+  { "request.button.gfx.no.width",             "46"                    },
+  { "request.button.gfx.no.height",            "28"                    },
+  { "request.button.gfx.no.pressed_xoffset",   "-100"                  },
+  { "request.button.gfx.confirm",              "RocksDoor.png"         },
+  { "request.button.gfx.confirm.x",            "302"                   },
+  { "request.button.gfx.confirm.y",            "30"                    },
+  { "request.button.gfx.confirm.width",                "96"                    },
+  { "request.button.gfx.confirm.height",       "28"                    },
+  { "request.button.gfx.confirm.pressed_xoffset", "-100"               },
+  { "request.button.gfx.player_1",             "RocksDoor.png"         },
+  { "request.button.gfx.player_1.x",           "305"                   },
+  { "request.button.gfx.player_1.y",           "185"                   },
+  { "request.button.gfx.player_1.width",       "30"                    },
+  { "request.button.gfx.player_1.height",      "30"                    },
+  { "request.button.gfx.player_1.pressed_xoffset", "-100"              },
+  { "request.button.gfx.player_2",             UNDEFINED_FILENAME      },
+  { "request.button.gfx.player_2.clone_from",  "request.button.gfx.player_1" },
+  { "request.button.gfx.player_3",             UNDEFINED_FILENAME      },
+  { "request.button.gfx.player_3.clone_from",  "request.button.gfx.player_1" },
+  { "request.button.gfx.player_4",             UNDEFINED_FILENAME      },
+  { "request.button.gfx.player_4.clone_from",  "request.button.gfx.player_1" },
 
   { "font.initial_1",                          "RocksFontSmall.png"    },
   { "font.initial_1.x",                                "0"                     },
@@ -5060,6 +5105,12 @@ struct ConfigInfo image_config[] =
   { "font.envelope_4.width",                   "16"                    },
   { "font.envelope_4.height",                  "16"                    },
 
+  { "font.request",                            "RocksFontSmall.png"    },
+  { "font.request.x",                          "0"                     },
+  { "font.request.y",                          "210"                   },
+  { "font.request.width",                      "14"                    },
+  { "font.request.height",                     "14"                    },
+
   { "font.input_1",                            "RocksFontSmall.png"    },
   { "font.input_1.x",                          "0"                     },
   { "font.input_1.y",                          "210"                   },
@@ -5177,6 +5228,97 @@ struct ConfigInfo image_config[] =
   { "editor.cascade_list.active.ypos",         "8"                     },
   { "editor.cascade_list.active.frames",       "1"                     },
 
+  { "editor.palette.button",                   "RocksDoor.png"         },
+  { "editor.palette.button.x",                 "525"                   },
+  { "editor.palette.button.y",                 "30"                    },
+  { "editor.palette.button.width",             "20"                    },
+  { "editor.palette.button.height",            "20"                    },
+  { "editor.palette.button.pressed_xoffset",   "-20"                   },
+
+  { "editor.palette.scroll_up",                        "RocksDoor.png"         },
+  { "editor.palette.scroll_up.x",              "750"                   },
+  { "editor.palette.scroll_up.y",              "0"                     },
+  { "editor.palette.scroll_up.width",          "10"                    },
+  { "editor.palette.scroll_up.height",         "10"                    },
+  { "editor.palette.scroll_up.pressed_xoffset",        "-10"                   },
+
+  { "editor.palette.scroll_down",              "RocksDoor.png"         },
+  { "editor.palette.scroll_down.x",            "750"                   },
+  { "editor.palette.scroll_down.y",            "10"                    },
+  { "editor.palette.scroll_down.width",                "10"                    },
+  { "editor.palette.scroll_down.height",       "10"                    },
+  { "editor.palette.scroll_down.pressed_xoffset", "-10"                        },
+
+  { "editor.palette.scrollbar",                        "RocksDoor.png"         },
+  { "editor.palette.scrollbar.x",              "750"                   },
+  { "editor.palette.scrollbar.y",              "20"                    },
+  { "editor.palette.scrollbar.width",          "10"                    },
+  { "editor.palette.scrollbar.height",         "10"                    },
+  { "editor.palette.scrollbar.pressed_xoffset",        "-10"                   },
+
+  { "editor.playfield.scroll_up",              "RocksDoor.png"         },
+  { "editor.playfield.scroll_up.x",            "724"                   },
+  { "editor.playfield.scroll_up.y",            "0"                     },
+  { "editor.playfield.scroll_up.width",                "16"                    },
+  { "editor.playfield.scroll_up.height",       "16"                    },
+  { "editor.playfield.scroll_up.pressed_xoffset", "-16"                        },
+
+  { "editor.playfield.scroll_down",            "RocksDoor.png"         },
+  { "editor.playfield.scroll_down.x",          "724"                   },
+  { "editor.playfield.scroll_down.y",          "16"                    },
+  { "editor.playfield.scroll_down.width",      "16"                    },
+  { "editor.playfield.scroll_down.height",     "16"                    },
+  { "editor.playfield.scroll_down.pressed_xoffset", "-16"              },
+
+  { "editor.playfield.scroll_left",            "RocksDoor.png"         },
+  { "editor.playfield.scroll_left.x",          "724"                   },
+  { "editor.playfield.scroll_left.y",          "32"                    },
+  { "editor.playfield.scroll_left.width",      "16"                    },
+  { "editor.playfield.scroll_left.height",     "16"                    },
+  { "editor.playfield.scroll_left.pressed_xoffset", "-16"              },
+
+  { "editor.playfield.scroll_right",           "RocksDoor.png"         },
+  { "editor.playfield.scroll_right.x",         "724"                   },
+  { "editor.playfield.scroll_right.y",         "48"                    },
+  { "editor.playfield.scroll_right.width",     "16"                    },
+  { "editor.playfield.scroll_right.height",    "16"                    },
+  { "editor.playfield.scroll_right.pressed_xoffset", "-16"             },
+
+  { "editor.playfield.scrollbar",              "RocksDoor.png"         },
+  { "editor.playfield.scrollbar.x",            "724"                   },
+  { "editor.playfield.scrollbar.y",            "64"                    },
+  { "editor.playfield.scrollbar.width",                "16"                    },
+  { "editor.playfield.scrollbar.height",       "16"                    },
+  { "editor.playfield.scrollbar.pressed_xoffset", "-16"                        },
+
+  { "editor.button.gfx.prev_level",            "RocksDoor.png"         },
+  { "editor.button.gfx.prev_level.x",          "724"                   },
+  { "editor.button.gfx.prev_level.y",          "32"                    },
+  { "editor.button.gfx.prev_level.width",      "16"                    },
+  { "editor.button.gfx.prev_level.height",     "16"                    },
+  { "editor.button.gfx.prev_level.pressed_xoffset", "-16"              },
+
+  { "editor.button.gfx.next_level",            "RocksDoor.png"         },
+  { "editor.button.gfx.next_level.x",          "724"                   },
+  { "editor.button.gfx.next_level.y",          "48"                    },
+  { "editor.button.gfx.next_level.width",      "16"                    },
+  { "editor.button.gfx.next_level.height",     "16"                    },
+  { "editor.button.gfx.next_level.pressed_xoffset", "-16"              },
+
+  { "editor.button.gfx.properties",            "RocksDoor.png"         },
+  { "editor.button.gfx.properties.x",          "505"                   },
+  { "editor.button.gfx.properties.y",          "110"                   },
+  { "editor.button.gfx.properties.width",      "90"                    },
+  { "editor.button.gfx.properties.height",     "20"                    },
+  { "editor.button.gfx.properties.pressed_yoffset", "-20"              },
+
+  { "editor.input.gfx.level_number",           "RocksDoor.png"         },
+  { "editor.input.gfx.level_number.x",         "529"                   },
+  { "editor.input.gfx.level_number.y",         "5"                     },
+  { "editor.input.gfx.level_number.width",     "42"                    },
+  { "editor.input.gfx.level_number.height",    "16"                    },
+  { "editor.input.gfx.level_number.border_size","1"                    },
+
   { "background",                              UNDEFINED_FILENAME      },
   { "background.TITLE_INITIAL",                        UNDEFINED_FILENAME      },
   { "background.TITLE",                                UNDEFINED_FILENAME      },
@@ -5205,6 +5347,16 @@ struct ConfigInfo image_config[] =
   { "background.PANEL.y",                      "0"                     },
   { "background.PANEL.width",                  "100"                   },
   { "background.PANEL.height",                 "280"                   },
+  { "background.PALETTE",                      "RocksDoor.png"         },
+  { "background.PALETTE.x",                    "500"                   },
+  { "background.PALETTE.y",                    "0"                     },
+  { "background.PALETTE.width",                        "100"                   },
+  { "background.PALETTE.height",               "280"                   },
+  { "background.TOOLBOX",                      "RocksDoor.png"         },
+  { "background.TOOLBOX.x",                    "700"                   },
+  { "background.TOOLBOX.y",                    "236"                   },
+  { "background.TOOLBOX.width",                        "100"                   },
+  { "background.TOOLBOX.height",               "144"                   },
 
   { "background.titlescreen_initial_1",                UNDEFINED_FILENAME      },
   { "background.titlescreen_initial_2",                UNDEFINED_FILENAME      },
@@ -5256,6 +5408,14 @@ struct ConfigInfo image_config[] =
   { "background.envelope_4.anim_mode",         "default"               },
   { "background.envelope_4.draw_masked",       "false"                 },
 
+  { "background.request",                      "RocksScreen.png"       },
+  { "background.request.x",                    "562"                   },
+  { "background.request.y",                    "56"                    },
+  { "background.request.width",                        "108"                   },
+  { "background.request.height",               "288"                   },
+  { "background.request.anim_mode",            "default"               },
+  { "background.request.draw_masked",          "false"                 },
+
   { "titlescreen_initial_1",                   UNDEFINED_FILENAME      },
   { "titlescreen_initial_2",                   UNDEFINED_FILENAME      },
   { "titlescreen_initial_3",                   UNDEFINED_FILENAME      },
@@ -5267,6 +5427,99 @@ struct ConfigInfo image_config[] =
   { "titlescreen_4",                           UNDEFINED_FILENAME      },
   { "titlescreen_5",                           UNDEFINED_FILENAME      },
 
+  { "door_1.gfx.part_1",                       "RocksDoor.png"         },
+  { "door_1.gfx.part_1.x",                     "0"                     },
+  { "door_1.gfx.part_1.y",                     "0"                     },
+  { "door_1.gfx.part_1.width",                 "100"                   },
+  { "door_1.gfx.part_1.height",                        "77"                    },
+  { "door_1.gfx.part_1.frames",                        "1"                     },
+  { "door_1.gfx.part_2",                       "RocksDoor.png"         },
+  { "door_1.gfx.part_2.x",                     "0"                     },
+  { "door_1.gfx.part_2.y",                     "77"                    },
+  { "door_1.gfx.part_2.width",                 "100"                   },
+  { "door_1.gfx.part_2.height",                        "63"                    },
+  { "door_1.gfx.part_2.frames",                        "1"                     },
+  { "door_1.gfx.part_3",                       "RocksDoor.png"         },
+  { "door_1.gfx.part_3.x",                     "0"                     },
+  { "door_1.gfx.part_3.y",                     "140"                   },
+  { "door_1.gfx.part_3.width",                 "100"                   },
+  { "door_1.gfx.part_3.height",                        "63"                    },
+  { "door_1.gfx.part_3.frames",                        "1"                     },
+  { "door_1.gfx.part_4",                       "RocksDoor.png"         },
+  { "door_1.gfx.part_4.x",                     "0"                     },
+  { "door_1.gfx.part_4.y",                     "203"                   },
+  { "door_1.gfx.part_4.width",                 "100"                   },
+  { "door_1.gfx.part_4.height",                        "77"                    },
+  { "door_1.gfx.part_4.frames",                        "1"                     },
+  { "door_1.gfx.part_5",                       "RocksDoor.png"         },
+  { "door_1.gfx.part_5.x",                     "100"                   },
+  { "door_1.gfx.part_5.y",                     "0"                     },
+  { "door_1.gfx.part_5.width",                 "100"                   },
+  { "door_1.gfx.part_5.height",                        "77"                    },
+  { "door_1.gfx.part_5.frames",                        "1"                     },
+  { "door_1.gfx.part_6",                       "RocksDoor.png"         },
+  { "door_1.gfx.part_6.x",                     "100"                   },
+  { "door_1.gfx.part_6.y",                     "77"                    },
+  { "door_1.gfx.part_6.width",                 "100"                   },
+  { "door_1.gfx.part_6.height",                        "63"                    },
+  { "door_1.gfx.part_6.frames",                        "1"                     },
+  { "door_1.gfx.part_7",                       "RocksDoor.png"         },
+  { "door_1.gfx.part_7.x",                     "100"                   },
+  { "door_1.gfx.part_7.y",                     "140"                   },
+  { "door_1.gfx.part_7.width",                 "100"                   },
+  { "door_1.gfx.part_7.height",                        "63"                    },
+  { "door_1.gfx.part_7.frames",                        "1"                     },
+  { "door_1.gfx.part_8",                       "RocksDoor.png"         },
+  { "door_1.gfx.part_8.x",                     "100"                   },
+  { "door_1.gfx.part_8.y",                     "203"                   },
+  { "door_1.gfx.part_8.width",                 "100"                   },
+  { "door_1.gfx.part_8.height",                        "77"                    },
+  { "door_1.gfx.part_8.frames",                        "1"                     },
+
+  { "door_2.gfx.part_1",                       "RocksDoor.png"         },
+  { "door_2.gfx.part_1.x",                     "0"                     },
+  { "door_2.gfx.part_1.y",                     "280"                   },
+  { "door_2.gfx.part_1.width",                 "100"                   },
+  { "door_2.gfx.part_1.height",                        "50"                    },
+  { "door_1.gfx.part_1.frames",                        "1"                     },
+  { "door_2.gfx.part_2",                       "RocksDoor.png"         },
+  { "door_2.gfx.part_2.x",                     "0"                     },
+  { "door_2.gfx.part_2.y",                     "330"                   },
+  { "door_2.gfx.part_2.width",                 "100"                   },
+  { "door_2.gfx.part_2.height",                        "50"                    },
+  { "door_1.gfx.part_2.frames",                        "1"                     },
+  { "door_2.gfx.part_3",                       "RocksDoor.png"         },
+  { "door_2.gfx.part_3.x",                     "100"                   },
+  { "door_2.gfx.part_3.y",                     "280"                   },
+  { "door_2.gfx.part_3.width",                 "100"                   },
+  { "door_2.gfx.part_3.height",                        "50"                    },
+  { "door_1.gfx.part_3.frames",                        "1"                     },
+  { "door_2.gfx.part_4",                       "RocksDoor.png"         },
+  { "door_2.gfx.part_4.x",                     "100"                   },
+  { "door_2.gfx.part_4.y",                     "330"                   },
+  { "door_2.gfx.part_4.width",                 "100"                   },
+  { "door_2.gfx.part_4.height",                        "50"                    },
+  { "door_1.gfx.part_4.frames",                        "1"                     },
+  { "door_2.gfx.part_5",                       UNDEFINED_FILENAME      },
+  { "door_2.gfx.part_6",                       UNDEFINED_FILENAME      },
+  { "door_2.gfx.part_7",                       UNDEFINED_FILENAME      },
+  { "door_2.gfx.part_8",                       UNDEFINED_FILENAME      },
+
+  { "door_2.top_border_correction",            "RocksDoor.png"         },
+  { "door_2.top_border_correction.x",          "600"                   },
+  { "door_2.top_border_correction.y",          "0"                     },
+  { "door_2.top_border_correction.width",      "108"                   },
+  { "door_2.top_border_correction.height",     "8"                     },
+
+  /* the last image entry apparently gets overwritten by very last entry
+     of "image_config[]"; so far this bug could not be found and fixed */
+  { "last_image_entry_bug",                    UNDEFINED_FILENAME      },
+
+
+  // ==========================================================================
+  // non-image definitions
+  // ==========================================================================
+
   /* the following directives are not associated with an image, but
      probably make sense to be defined in "graphicsinfo.conf", too */
 
@@ -5487,10 +5740,10 @@ struct ConfigInfo image_config[] =
   { "titlemessage_5.post_delay",               ARG_DEFAULT             },
   { "titlemessage_5.auto_delay",               ARG_DEFAULT             },
 
-  { "readme.x",                                        "272"                   },
-  { "readme.y",                                        "150"                   },
-  { "readme.width",                            "480"                   },
-  { "readme.height",                           "364"                   },
+  { "readme.x",                                        "-1"                    },
+  { "readme.y",                                        "-1"                    },
+  { "readme.width",                            "-1"                    },
+  { "readme.height",                           "-1"                    },
   { "readme.chars",                            "-1"                    },
   { "readme.lines",                            "-1"                    },
   { "readme.align",                            "center"                },
@@ -5601,6 +5854,8 @@ struct ConfigInfo image_config[] =
   { "menu.draw_yoffset.SETUP[ARTWORK]",                "0"                     },
   { "menu.draw_xoffset.SETUP[INPUT]",          "0"                     },
   { "menu.draw_yoffset.SETUP[INPUT]",          "0"                     },
+  { "menu.draw_xoffset.SETUP[TOUCH]",          "0"                     },
+  { "menu.draw_yoffset.SETUP[TOUCH]",          "0"                     },
   { "menu.draw_xoffset.SETUP[SHORTCUTS]",      "0"                     },
   { "menu.draw_yoffset.SETUP[SHORTCUTS]",      "0"                     },
   { "menu.draw_xoffset.SETUP[SHORTCUTS_1]",    "0"                     },
@@ -5611,6 +5866,8 @@ struct ConfigInfo image_config[] =
   { "menu.draw_yoffset.SETUP[SHORTCUTS_3]",    "0"                     },
   { "menu.draw_xoffset.SETUP[SHORTCUTS_4]",    "0"                     },
   { "menu.draw_yoffset.SETUP[SHORTCUTS_4]",    "0"                     },
+  { "menu.draw_xoffset.SETUP[SHORTCUTS_5]",    "0"                     },
+  { "menu.draw_yoffset.SETUP[SHORTCUTS_5]",    "0"                     },
   { "menu.draw_xoffset.SETUP[CHOOSE_ARTWORK]", "0"                     },
   { "menu.draw_yoffset.SETUP[CHOOSE_ARTWORK]", "0"                     },
   { "menu.draw_xoffset.SETUP[CHOOSE_OTHER]",   "0"                     },
@@ -5806,6 +6063,190 @@ struct ConfigInfo image_config[] =
   { "preview.step_delay",                      "50"                    },
   { "preview.anim_mode",                       "default"               },
 
+  { "door_1.part_1.x",                         "0"                     },
+  { "door_1.part_1.y",                         "0"                     },
+  { "door_1.part_1.step_xoffset",              "3"                     },
+  { "door_1.part_1.step_yoffset",              "1"                     },
+  { "door_1.part_1.step_delay",                        "10"                    },
+  { "door_1.part_1.start_step",                        "0"                     },
+  { "door_1.part_1.start_step_opening",                "0"                     },
+  { "door_1.part_1.start_step_closing",                "0"                     },
+  { "door_1.part_1.draw_masked",               "true"                  },
+  { "door_1.part_1.draw_order",                        "3"                     },
+  { "door_1.part_2.x",                         "0"                     },
+  { "door_1.part_2.y",                         "77"                    },
+  { "door_1.part_2.step_xoffset",              "3"                     },
+  { "door_1.part_2.step_yoffset",              "1"                     },
+  { "door_1.part_2.step_delay",                        "10"                    },
+  { "door_1.part_2.start_step",                        "0"                     },
+  { "door_1.part_2.start_step_opening",                "0"                     },
+  { "door_1.part_2.start_step_closing",                "0"                     },
+  { "door_1.part_2.draw_masked",               "true"                  },
+  { "door_1.part_2.draw_order",                        "5"                     },
+  { "door_1.part_3.x",                         "0"                     },
+  { "door_1.part_3.y",                         "140"                   },
+  { "door_1.part_3.step_xoffset",              "3"                     },
+  { "door_1.part_3.step_yoffset",              "1"                     },
+  { "door_1.part_3.step_delay",                        "10"                    },
+  { "door_1.part_3.start_step",                        "0"                     },
+  { "door_1.part_3.start_step_opening",                "0"                     },
+  { "door_1.part_3.start_step_closing",                "0"                     },
+  { "door_1.part_3.draw_masked",               "true"                  },
+  { "door_1.part_3.draw_order",                        "4"                     },
+  { "door_1.part_4.x",                         "0"                     },
+  { "door_1.part_4.y",                         "203"                   },
+  { "door_1.part_4.step_xoffset",              "3"                     },
+  { "door_1.part_4.step_yoffset",              "1"                     },
+  { "door_1.part_4.step_delay",                        "10"                    },
+  { "door_1.part_4.start_step",                        "0"                     },
+  { "door_1.part_4.start_step_opening",                "0"                     },
+  { "door_1.part_4.start_step_closing",                "0"                     },
+  { "door_1.part_4.draw_masked",               "true"                  },
+  { "door_1.part_4.draw_order",                        "6"                     },
+  { "door_1.part_5.x",                         "0"                     },
+  { "door_1.part_5.y",                         "0"                     },
+  { "door_1.part_5.step_xoffset",              "-3"                    },
+  { "door_1.part_5.step_yoffset",              "-1"                    },
+  { "door_1.part_5.step_delay",                        "10"                    },
+  { "door_1.part_5.start_step",                        "0"                     },
+  { "door_1.part_5.start_step_opening",                "0"                     },
+  { "door_1.part_5.start_step_closing",                "0"                     },
+  { "door_1.part_5.draw_masked",               "true"                  },
+  { "door_1.part_5.draw_order",                        "1"                     },
+  { "door_1.part_6.x",                         "0"                     },
+  { "door_1.part_6.y",                         "77"                    },
+  { "door_1.part_6.step_xoffset",              "-3"                    },
+  { "door_1.part_6.step_yoffset",              "-1"                    },
+  { "door_1.part_6.step_delay",                        "10"                    },
+  { "door_1.part_6.start_step",                        "0"                     },
+  { "door_1.part_6.start_step_opening",                "0"                     },
+  { "door_1.part_6.start_step_closing",                "0"                     },
+  { "door_1.part_6.draw_masked",               "true"                  },
+  { "door_1.part_6.draw_order",                        "7"                     },
+  { "door_1.part_7.x",                         "0"                     },
+  { "door_1.part_7.y",                         "140"                   },
+  { "door_1.part_7.step_xoffset",              "-3"                    },
+  { "door_1.part_7.step_yoffset",              "-1"                    },
+  { "door_1.part_7.step_delay",                        "10"                    },
+  { "door_1.part_7.start_step",                        "0"                     },
+  { "door_1.part_7.start_step_opening",                "0"                     },
+  { "door_1.part_7.start_step_closing",                "0"                     },
+  { "door_1.part_7.draw_masked",               "true"                  },
+  { "door_1.part_7.draw_order",                        "2"                     },
+  { "door_1.part_8.x",                         "0"                     },
+  { "door_1.part_8.y",                         "203"                   },
+  { "door_1.part_8.step_xoffset",              "-3"                    },
+  { "door_1.part_8.step_yoffset",              "-1"                    },
+  { "door_1.part_8.step_delay",                        "10"                    },
+  { "door_1.part_8.start_step",                        "0"                     },
+  { "door_1.part_8.start_step_opening",                "0"                     },
+  { "door_1.part_8.start_step_closing",                "0"                     },
+  { "door_1.part_8.draw_masked",               "true"                  },
+  { "door_1.part_8.draw_order",                        "8"                     },
+
+  { "door_2.part_1.x",                         "0"                     },
+  { "door_2.part_1.y",                         "0"                     },
+  { "door_2.part_1.step_xoffset",              "3"                     },
+  { "door_2.part_1.step_yoffset",              "1"                     },
+  { "door_2.part_1.step_delay",                        "10"                    },
+  { "door_2.part_1.start_step",                        "0"                     },
+  { "door_2.part_1.start_step_opening",                "0"                     },
+  { "door_2.part_1.start_step_closing",                "0"                     },
+  { "door_2.part_1.draw_masked",               "true"                  },
+  { "door_2.part_1.draw_order",                        "2"                     },
+  { "door_2.part_2.x",                         "0"                     },
+  { "door_2.part_2.y",                         "50"                    },
+  { "door_2.part_2.step_xoffset",              "3"                     },
+  { "door_2.part_2.step_yoffset",              "1"                     },
+  { "door_2.part_2.step_delay",                        "10"                    },
+  { "door_2.part_2.start_step",                        "0"                     },
+  { "door_2.part_2.start_step_opening",                "0"                     },
+  { "door_2.part_2.start_step_closing",                "0"                     },
+  { "door_2.part_2.draw_masked",               "true"                  },
+  { "door_2.part_2.draw_order",                        "3"                     },
+  { "door_2.part_3.x",                         "0"                     },
+  { "door_2.part_3.y",                         "0"                     },
+  { "door_2.part_3.step_xoffset",              "-3"                    },
+  { "door_2.part_3.step_yoffset",              "-1"                    },
+  { "door_2.part_3.step_delay",                        "10"                    },
+  { "door_2.part_3.start_step",                        "0"                     },
+  { "door_2.part_3.start_step_opening",                "0"                     },
+  { "door_2.part_3.start_step_closing",                "0"                     },
+  { "door_2.part_3.draw_masked",               "true"                  },
+  { "door_2.part_3.draw_order",                        "1"                     },
+  { "door_2.part_4.x",                         "0"                     },
+  { "door_2.part_4.y",                         "50"                    },
+  { "door_2.part_4.step_xoffset",              "-3"                    },
+  { "door_2.part_4.step_yoffset",              "-1"                    },
+  { "door_2.part_4.step_delay",                        "10"                    },
+  { "door_2.part_4.start_step",                        "0"                     },
+  { "door_2.part_4.start_step_opening",                "0"                     },
+  { "door_2.part_4.start_step_closing",                "0"                     },
+  { "door_2.part_4.draw_masked",               "true"                  },
+  { "door_2.part_4.draw_order",                        "4"                     },
+  { "door_2.part_5.x",                         "-1"                    },
+  { "door_2.part_5.y",                         "-1"                    },
+  { "door_2.part_5.step_xoffset",              "0"                     },
+  { "door_2.part_5.step_yoffset",              "0"                     },
+  { "door_2.part_5.step_delay",                        "0"                     },
+  { "door_2.part_5.start_step",                        "0"                     },
+  { "door_2.part_5.start_step_opening",                "0"                     },
+  { "door_2.part_5.start_step_closing",                "0"                     },
+  { "door_2.part_5.draw_masked",               "true"                  },
+  { "door_2.part_5.draw_order",                        "0"                     },
+  { "door_2.part_6.x",                         "-1"                    },
+  { "door_2.part_6.y",                         "-1"                    },
+  { "door_2.part_6.step_xoffset",              "0"                     },
+  { "door_2.part_6.step_yoffset",              "0"                     },
+  { "door_2.part_6.step_delay",                        "0"                     },
+  { "door_2.part_6.start_step",                        "0"                     },
+  { "door_2.part_6.start_step_opening",                "0"                     },
+  { "door_2.part_6.start_step_closing",                "0"                     },
+  { "door_2.part_6.draw_masked",               "true"                  },
+  { "door_2.part_6.draw_order",                        "0"                     },
+  { "door_2.part_7.x",                         "-1"                    },
+  { "door_2.part_7.y",                         "-1"                    },
+  { "door_2.part_7.step_xoffset",              "0"                     },
+  { "door_2.part_7.step_yoffset",              "0"                     },
+  { "door_2.part_7.step_delay",                        "0"                     },
+  { "door_2.part_7.start_step",                        "0"                     },
+  { "door_2.part_7.start_step_opening",                "0"                     },
+  { "door_2.part_7.start_step_closing",                "0"                     },
+  { "door_2.part_7.draw_masked",               "true"                  },
+  { "door_2.part_7.draw_order",                        "0"                     },
+  { "door_2.part_8.x",                         "-1"                    },
+  { "door_2.part_8.y",                         "-1"                    },
+  { "door_2.part_8.step_xoffset",              "0"                     },
+  { "door_2.part_8.step_yoffset",              "0"                     },
+  { "door_2.part_8.step_delay",                        "0"                     },
+  { "door_2.part_8.start_step",                        "0"                     },
+  { "door_2.part_8.start_step_opening",                "0"                     },
+  { "door_2.part_8.start_step_closing",                "0"                     },
+  { "door_2.part_8.draw_masked",               "true"                  },
+  { "door_2.part_8.draw_order",                        "0"                     },
+
+  { "door_1.panel.x",                          "0"                     },
+  { "door_1.panel.y",                          "0"                     },
+  { "door_1.panel.step_xoffset",               "0"                     },
+  { "door_1.panel.step_yoffset",               "1"                     },
+  { "door_1.panel.step_delay",                 "10"                    },
+  { "door_1.panel.start_step",                 "246"                   },
+  { "door_1.panel.start_step_opening",         "0"                     },
+  { "door_1.panel.start_step_closing",         "0"                     },
+  { "door_1.panel.draw_masked",                        "false"                 },
+  { "door_1.panel.draw_order",                 "0"                     },
+
+  { "door_2.panel.x",                          "0"                     },
+  { "door_2.panel.y",                          "0"                     },
+  { "door_2.panel.step_xoffset",               "0"                     },
+  { "door_2.panel.step_yoffset",               "1"                     },
+  { "door_2.panel.step_delay",                 "10"                    },
+  { "door_2.panel.start_step",                 "66"                    },
+  { "door_2.panel.start_step_opening",         "0"                     },
+  { "door_2.panel.start_step_closing",         "0"                     },
+  { "door_2.panel.draw_masked",                        "false"                 },
+  { "door_2.panel.draw_order",                 "0"                     },
+
   { "door_1.width",                            "-1"                    },
   { "door_1.height",                           "-1"                    },
   { "door_1.step_offset",                      "2"                     },
@@ -6588,6 +7029,10 @@ struct ConfigInfo image_config[] =
   { "game.button.sound_loops.y",               "245"                   },
   { "game.button.sound_simple.x",              "65"                    },
   { "game.button.sound_simple.y",              "245"                   },
+  { "game.button.save.x",                      "-1"                    },
+  { "game.button.save.y",                      "-1"                    },
+  { "game.button.load.x",                      "-1"                    },
+  { "game.button.load.y",                      "-1"                    },
 
   { "tape.button.eject.x",                     "5"                     },
   { "tape.button.eject.y",                     "77"                    },
@@ -6644,22 +7089,150 @@ struct ConfigInfo image_config[] =
 
   { "tape.label.date.x",                       "5"                     },
   { "tape.label.date.y",                       "5"                     },
-  { "tape.label.time.x",                       "-1"                    },
-  { "tape.label.time.y",                       "-1"                    },
+  { "tape.label.time.x",                       "45"                    },
+  { "tape.label.time.y",                       "55"                    },
 
   { "tape.text.date.x",                                "7"                     },
   { "tape.text.date.y",                                "19"                    },
   { "tape.text.date.align",                    "left"                  },
   { "tape.text.date.valign",                   "top"                   },
   { "tape.text.date.digits",                   "-1"                    },
+  { "tape.text.date.xoffset",                  "27"                    },
+  { "tape.text.date.2nd_xoffset",              "64"                    },
   { "tape.text.date.font",                     "font.tape_recorder"    },
+  { "tape.text.date.draw_masked",              "false"                 },
+
+  { "tape.text.date_yyyy.x",                   "-1"                    },
+  { "tape.text.date_yyyy.y",                   "-1"                    },
+  { "tape.text.date_yyyy.align",               "left"                  },
+  { "tape.text.date_yyyy.valign",              "top"                   },
+  { "tape.text.date_yyyy.digits",              "2"                     },
+  { "tape.text.date_yyyy.font",                        "font.tape_recorder"    },
+  { "tape.text.date_yyyy.draw_masked",         "true"                  },
+  { "tape.text.date_yy.x",                     "-1"                    },
+  { "tape.text.date_yy.y",                     "-1"                    },
+  { "tape.text.date_yy.align",                 "left"                  },
+  { "tape.text.date_yy.valign",                        "top"                   },
+  { "tape.text.date_yy.digits",                        "2"                     },
+  { "tape.text.date_yy.font",                  "font.tape_recorder"    },
+  { "tape.text.date_yy.draw_masked",           "true"                  },
+  { "tape.text.date_mmm.x",                    "-1"                    },
+  { "tape.text.date_mmm.y",                    "-1"                    },
+  { "tape.text.date_mmm.align",                        "left"                  },
+  { "tape.text.date_mmm.valign",               "top"                   },
+  { "tape.text.date_mmm.digits",               "2"                     },
+  { "tape.text.date_mmm.font",                 "font.tape_recorder"    },
+  { "tape.text.date_mmm.draw_masked",          "true"                  },
+  { "tape.text.date_mm.x",                     "-1"                    },
+  { "tape.text.date_mm.y",                     "-1"                    },
+  { "tape.text.date_mm.align",                 "left"                  },
+  { "tape.text.date_mm.valign",                        "top"                   },
+  { "tape.text.date_mm.digits",                        "2"                     },
+  { "tape.text.date_mm.font",                  "font.tape_recorder"    },
+  { "tape.text.date_mm.draw_masked",           "true"                  },
+  { "tape.text.date_dd.x",                     "-1"                    },
+  { "tape.text.date_dd.y",                     "-1"                    },
+  { "tape.text.date_dd.align",                 "left"                  },
+  { "tape.text.date_dd.valign",                        "top"                   },
+  { "tape.text.date_dd.digits",                        "2"                     },
+  { "tape.text.date_dd.font",                  "font.tape_recorder"    },
+  { "tape.text.date_dd.draw_masked",           "true"                  },
 
   { "tape.text.time.x",                                "44"                    },
   { "tape.text.time.y",                                "55"                    },
   { "tape.text.time.align",                    "left"                  },
   { "tape.text.time.valign",                   "top"                   },
   { "tape.text.time.digits",                   "-1"                    },
+  { "tape.text.time.xoffset",                  "27"                    },
   { "tape.text.time.font",                     "font.tape_recorder"    },
+  { "tape.text.time.draw_masked",              "false"                 },
+
+  { "tape.text.time_hh.x",                     "-1"                    },
+  { "tape.text.time_hh.y",                     "-1"                    },
+  { "tape.text.time_hh.align",                 "left"                  },
+  { "tape.text.time_hh.valign",                        "top"                   },
+  { "tape.text.time_hh.digits",                        "2"                     },
+  { "tape.text.time_hh.font",                  "font.tape_recorder"    },
+  { "tape.text.time_hh.draw_masked",           "true"                  },
+  { "tape.text.time_mm.x",                     "-1"                    },
+  { "tape.text.time_mm.y",                     "-1"                    },
+  { "tape.text.time_mm.align",                 "left"                  },
+  { "tape.text.time_mm.valign",                        "top"                   },
+  { "tape.text.time_mm.digits",                        "2"                     },
+  { "tape.text.time_mm.font",                  "font.tape_recorder"    },
+  { "tape.text.time_mm.draw_masked",           "true"                  },
+  { "tape.text.time_ss.x",                     "-1"                    },
+  { "tape.text.time_ss.y",                     "-1"                    },
+  { "tape.text.time_ss.align",                 "left"                  },
+  { "tape.text.time_ss.valign",                        "top"                   },
+  { "tape.text.time_ss.digits",                        "2"                     },
+  { "tape.text.time_ss.font",                  "font.tape_recorder"    },
+  { "tape.text.time_ss.draw_masked",           "true"                  },
+
+  { "tape.show_game_buttons",                  "false"                 },
+
+  { "editor.button.prev_level.x",              "5"                     },
+  { "editor.button.prev_level.y",              "5"                     },
+  { "editor.button.next_level.x",              "79"                    },
+  { "editor.button.next_level.y",              "5"                     },
+  { "editor.button.properties.x",              "5"                     },
+  { "editor.button.properties.y",              "230"                   },
+  { "editor.input.level_number.x",             "29"                    },
+  { "editor.input.level_number.y",             "5"                     },
+
+  { "editor.palette.x",                                "5"                     },
+  { "editor.palette.y",                                "30"                    },
+  { "editor.palette.cols",                     "4"                     },
+  { "editor.palette.rows",                     "10"                    },
+  { "editor.palette.tile_size",                        "16"                    },
+
+  { "editor.palette.element_left.x",           "6"                     },
+  { "editor.palette.element_left.y",           "258"                   },
+  { "editor.palette.element_left.tile_size",   "16"                    },
+  { "editor.palette.element_middle.x",         "42"                    },
+  { "editor.palette.element_middle.y",         "258"                   },
+  { "editor.palette.element_middle.tile_size", "16"                    },
+  { "editor.palette.element_right.x",          "78"                    },
+  { "editor.palette.element_right.y",          "258"                   },
+  { "editor.palette.element_right.tile_size",  "16"                    },
+
+  { "request.button.yes.x",                    "2"                     },
+  { "request.button.yes.y",                    "250"                   },
+  { "request.button.no.x",                     "52"                    },
+  { "request.button.no.y",                     "250"                   },
+  { "request.button.confirm.x",                        "2"                     },
+  { "request.button.confirm.y",                        "250"                   },
+  { "request.button.player_1.x",               "20"                    },
+  { "request.button.player_1.y",               "200"                   },
+  { "request.button.player_1.draw_player",     "true"                  },
+  { "request.button.player_1.tile_size",       "16"                    },
+  { "request.button.player_2.x",               "50"                    },
+  { "request.button.player_2.y",               "200"                   },
+  { "request.button.player_2.draw_player",     "true"                  },
+  { "request.button.player_2.tile_size",       "16"                    },
+  { "request.button.player_3.x",               "20"                    },
+  { "request.button.player_3.y",               "230"                   },
+  { "request.button.player_3.draw_player",     "true"                  },
+  { "request.button.player_3.tile_size",       "16"                    },
+  { "request.button.player_4.x",               "50"                    },
+  { "request.button.player_4.y",               "230"                   },
+  { "request.button.player_4.draw_player",     "true"                  },
+  { "request.button.player_4.tile_size",       "16"                    },
+
+  { "request.x",                               "-1"                    },
+  { "request.y",                               "-1"                    },
+  { "request.width",                           "120"                   },
+  { "request.height",                          "300"                   },
+  { "request.border_size",                     "10"                    },
+  { "request.line_spacing",                    "2"                     },
+  { "request.step_offset",                     "10"                    },
+  { "request.step_delay",                      "20"                    },
+  { "request.anim_mode",                       "default"               },
+  { "request.autowrap",                                "false"                 },
+  { "request.centered",                                "true"                  },
+  { "request.wrap_single_words",               "true"                  },
+
+  { "global.use_envelope_request",             "false"                 },
 
   { "game.forced_scroll_delay_value",          "-1"                    },
   { "game.use_native_emc_graphics_engine",     "false"                 },
@@ -6696,20 +7269,44 @@ struct ConfigInfo image_config[] =
   { "viewport.playfield.EDITOR.border_size",   ARG_DEFAULT             },
   { "viewport.door_1.x",                       "566"                   },
   { "viewport.door_1.y",                       "60"                    },
+  { "viewport.door_1.width",                   "100"                   },
+  { "viewport.door_1.height",                  "280"                   },
+  { "viewport.door_1.border_size",             "4"                     },
   { "viewport.door_1.MAIN.x",                  ARG_DEFAULT             },
   { "viewport.door_1.MAIN.y",                  ARG_DEFAULT             },
+  { "viewport.door_1.MAIN.width",              ARG_DEFAULT             },
+  { "viewport.door_1.MAIN.height",             ARG_DEFAULT             },
+  { "viewport.door_1.MAIN.border_size",                ARG_DEFAULT             },
   { "viewport.door_1.PLAYING.x",               ARG_DEFAULT             },
   { "viewport.door_1.PLAYING.y",               ARG_DEFAULT             },
+  { "viewport.door_1.PLAYING.width",           ARG_DEFAULT             },
+  { "viewport.door_1.PLAYING.height",          ARG_DEFAULT             },
+  { "viewport.door_1.PLAYING.border_size",     ARG_DEFAULT             },
   { "viewport.door_1.EDITOR.x",                        ARG_DEFAULT             },
   { "viewport.door_1.EDITOR.y",                        ARG_DEFAULT             },
+  { "viewport.door_1.EDITOR.width",            ARG_DEFAULT             },
+  { "viewport.door_1.EDITOR.height",           ARG_DEFAULT             },
+  { "viewport.door_1.EDITOR.border_size",      ARG_DEFAULT             },
   { "viewport.door_2.x",                       "566"                   },
   { "viewport.door_2.y",                       "400"                   },
+  { "viewport.door_2.width",                   "100"                   },
+  { "viewport.door_2.height",                  "100"                   },
+  { "viewport.door_2.border_size",             "4"                     },
   { "viewport.door_2.MAIN.x",                  ARG_DEFAULT             },
   { "viewport.door_2.MAIN.y",                  ARG_DEFAULT             },
+  { "viewport.door_2.MAIN.width",              ARG_DEFAULT             },
+  { "viewport.door_2.MAIN.height",             ARG_DEFAULT             },
+  { "viewport.door_2.MAIN.border_size",                ARG_DEFAULT             },
   { "viewport.door_2.PLAYING.x",               ARG_DEFAULT             },
   { "viewport.door_2.PLAYING.y",               ARG_DEFAULT             },
+  { "viewport.door_2.PLAYING.width",           ARG_DEFAULT             },
+  { "viewport.door_2.PLAYING.height",          ARG_DEFAULT             },
+  { "viewport.door_2.PLAYING.border_size",     ARG_DEFAULT             },
   { "viewport.door_2.EDITOR.x",                        "566"                   },
   { "viewport.door_2.EDITOR.y",                        "356"                   },
+  { "viewport.door_2.EDITOR.width",            "100"                   },
+  { "viewport.door_2.EDITOR.height",           "144"                   },
+  { "viewport.door_2.EDITOR.border_size",      "4"                     },
 
   { NULL,                                      NULL                    }
 };