improved configurability of tape date and time display positions
[rocksndiamonds.git] / src / conf_gfx.c
index f5006d9f51ec4b227ad278fe498abed1acd0868f..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    },
@@ -4744,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"                   },
@@ -5226,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      },
@@ -5254,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      },
@@ -5329,89 +5432,79 @@ struct ConfigInfo image_config[] =
   { "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_1.wing_left",                                "RocksDoor.png"         },
-  { "door_1.wing_left.x",                      "0"                     },
-  { "door_1.wing_left.y",                      "0"                     },
-  { "door_1.wing_left.width",                  "100"                   },
-  { "door_1.wing_left.height",                 "280"                   },
-  { "door_1.wing_right",                       "RocksDoor.png"         },
-  { "door_1.wing_right.x",                     "100"                   },
-  { "door_1.wing_right.y",                     "0"                     },
-  { "door_1.wing_right.width",                 "100"                   },
-  { "door_1.wing_right.height",                        "280"                   },
-
-  { "door_2.wing_left",                                "RocksDoor.png"         },
-  { "door_2.wing_left.x",                      "0"                     },
-  { "door_2.wing_left.y",                      "280"                   },
-  { "door_2.wing_left.width",                  "100"                   },
-  { "door_2.wing_left.height",                 "100"                   },
-  { "door_2.wing_right",                       "RocksDoor.png"         },
-  { "door_2.wing_right.x",                     "100"                   },
-  { "door_2.wing_right.y",                     "280"                   },
-  { "door_2.wing_right.width",                 "100"                   },
-  { "door_2.wing_right.height",                        "100"                   },
-
   { "door_2.top_border_correction",            "RocksDoor.png"         },
   { "door_2.top_border_correction.x",          "600"                   },
   { "door_2.top_border_correction.y",          "0"                     },
@@ -5647,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"                },
@@ -5761,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"                     },
@@ -5972,56 +6067,80 @@ struct ConfigInfo image_config[] =
   { "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",                        "20"                    },
+  { "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",                        "20"                    },
+  { "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",                        "20"                    },
+  { "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",                        "20"                    },
+  { "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",                        "20"                    },
+  { "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",                        "20"                    },
+  { "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",                        "20"                    },
+  { "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",                        "20"                    },
+  { "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"                     },
 
@@ -6029,28 +6148,40 @@ struct ConfigInfo image_config[] =
   { "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",                        "20"                    },
+  { "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",                        "20"                    },
+  { "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",                        "20"                    },
+  { "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",                        "20"                    },
+  { "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"                    },
@@ -6058,6 +6189,9 @@ struct ConfigInfo image_config[] =
   { "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"                    },
@@ -6065,6 +6199,9 @@ struct ConfigInfo image_config[] =
   { "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"                    },
@@ -6072,6 +6209,9 @@ struct ConfigInfo image_config[] =
   { "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"                    },
@@ -6079,9 +6219,34 @@ struct ConfigInfo image_config[] =
   { "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"                     },
@@ -6864,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"                    },
@@ -6928,14 +7097,104 @@ struct ConfigInfo image_config[] =
   { "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"                   },