changed "http" to "https" in URLs
[rocksndiamonds.git] / src / conf_gfx.c
index 6cc2ebabbd0290aede51adbb574aa76fe72b6f49..20f3f1cb265ea42ddfc4d14d0e6c5a15026f1134 100644 (file)
@@ -4,7 +4,7 @@
 // (c) 1995-2014 by Artsoft Entertainment
 //                         Holger Schemel
 //                 info@artsoft.org
-//                 http://www.artsoft.org/
+//                 https://www.artsoft.org/
 // ----------------------------------------------------------------------------
 // conf_gfx.c
 // ============================================================================
@@ -13,9 +13,9 @@
 #include "main.h"
 
 
-/* List values that are not defined in the configuration file are set to
-   reliable default values. If that value is GFX_ARG_UNDEFINED, it will
-   be dynamically determined, using some of the other list values. */
+// List values that are not defined in the configuration file are set to
+// reliable default values. If that value is GFX_ARG_UNDEFINED, it will
+// be dynamically determined, using some of the other list values.
 
 struct ConfigTypeInfo image_config_suffix[] =
 {
@@ -56,10 +56,13 @@ struct ConfigTypeInfo image_config_suffix[] =
   { ".draw_order",                     ARG_UNDEFINED,  TYPE_INTEGER    },
   { ".init_delay_fixed",               ARG_UNDEFINED,  TYPE_INTEGER    },
   { ".init_delay_random",              ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".init_delay_action",              ARG_UNDEFINED,  TYPE_STRING     },
   { ".anim_delay_fixed",               ARG_UNDEFINED,  TYPE_INTEGER    },
   { ".anim_delay_random",              ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".anim_delay_action",              ARG_UNDEFINED,  TYPE_STRING     },
   { ".post_delay_fixed",               ARG_UNDEFINED,  TYPE_INTEGER    },
   { ".post_delay_random",              ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".post_delay_action",              ARG_UNDEFINED,  TYPE_STRING     },
   { ".init_event",                     ARG_UNDEFINED,  TYPE_STRING     },
   { ".init_event_action",              ARG_UNDEFINED,  TYPE_STRING     },
   { ".anim_event",                     ARG_UNDEFINED,  TYPE_STRING     },
@@ -72,6 +75,7 @@ struct ConfigTypeInfo image_config_suffix[] =
   { ".fade_delay",                     ARG_UNDEFINED,  TYPE_INTEGER    },
   { ".post_delay",                     ARG_UNDEFINED,  TYPE_INTEGER    },
   { ".auto_delay",                     ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".auto_delay_unit",                        ARG_UNDEFINED,  TYPE_INTEGER    },
   { ".align",                          ARG_UNDEFINED,  TYPE_INTEGER    },
   { ".valign",                         ARG_UNDEFINED,  TYPE_INTEGER    },
   { ".sort_priority",                  ARG_UNDEFINED,  TYPE_INTEGER    },
@@ -91,7 +95,7 @@ struct ConfigInfo image_config[] =
   // image definitions for game elements (for in-game and editor graphics)
   // ==========================================================================
 
-  /* images for Boulder Dash style elements and actions */
+  // images for Boulder Dash style elements and actions
 
   { "bd_wall",                                 "RocksDC.png"           },
   { "bd_wall.xpos",                            "12"                    },
@@ -293,7 +297,7 @@ struct ConfigInfo image_config[] =
   { "bd_firefly.down.EDITOR.xpos",             "15"                    },
   { "bd_firefly.down.EDITOR.ypos",             "12"                    },
 
-  /* images for Supaplex style elements and actions */
+  // images for Supaplex style elements and actions
 
   { "[sp_default].exploding",                  "RocksSP.png"           },
   { "[sp_default].exploding.xpos",             "8"                     },
@@ -831,15 +835,12 @@ struct ConfigInfo image_config[] =
   { "sp_hardware_base_6.ypos",                 "4"                     },
   { "sp_hardware_base_6.frames",               "1"                     },
 
-  /* images for Sokoban style elements and actions */
+  // images for Sokoban style elements and actions
 
   { "sokoban_object",                          "RocksElements.png"     },
   { "sokoban_object.xpos",                     "9"                     },
   { "sokoban_object.ypos",                     "7"                     },
   { "sokoban_object.frames",                   "1"                     },
-  { "sokoban_object.EDITOR",                   "RocksElements.png"     },
-  { "sokoban_object.EDITOR.xpos",              "2"                     },
-  { "sokoban_object.EDITOR.ypos",              "14"                    },
 
   { "sokoban_field_empty",                     "RocksElements.png"     },
   { "sokoban_field_empty.xpos",                        "10"                    },
@@ -855,11 +856,8 @@ struct ConfigInfo image_config[] =
   { "sokoban_field_player.xpos",               "0"                     },
   { "sokoban_field_player.ypos",               "15"                    },
   { "sokoban_field_player.frames",             "1"                     },
-  { "sokoban_field_player.EDITOR",             "RocksHeroes.png"       },
-  { "sokoban_field_player.EDITOR.xpos",                "1"                     },
-  { "sokoban_field_player.EDITOR.ypos",                "15"                    },
 
-  /* images for Emerald Mine style elements and actions */
+  // images for Emerald Mine style elements and actions
 
   { "empty_space",                             "RocksSP.png"           },
   { "empty_space.xpos",                                "0"                     },
@@ -1029,18 +1027,12 @@ struct ConfigInfo image_config[] =
   { "dynamite.xpos",                           "0"                     },
   { "dynamite.ypos",                           "3"                     },
   { "dynamite.frames",                         "1"                     },
-  { "dynamite.EDITOR",                         "RocksElements.png"     },
-  { "dynamite.EDITOR.xpos",                    "0"                     },
-  { "dynamite.EDITOR.ypos",                    "14"                    },
   { "dynamite.active",                         "RocksElements.png"     },
   { "dynamite.active.xpos",                    "1"                     },
   { "dynamite.active.ypos",                    "3"                     },
   { "dynamite.active.frames",                  "7"                     },
   { "dynamite.active.delay",                   "12"                    },
   { "dynamite.active.anim_mode",               "linear"                },
-  { "dynamite.active.EDITOR",                  "RocksElements.png"     },
-  { "dynamite.active.EDITOR.xpos",             "1"                     },
-  { "dynamite.active.EDITOR.ypos",             "14"                    },
 
   { "em_dynamite",                             "RocksEMC.png"          },
   { "em_dynamite.xpos",                                "0"                     },
@@ -1724,7 +1716,7 @@ struct ConfigInfo image_config[] =
   { "em_steel_exit.closing.delay",             "6"                     },
   { "em_steel_exit.closing.anim_mode",         "linear"                },
 
-  /* images for Emerald Mine Club style elements and actions */
+  // images for Emerald Mine Club style elements and actions
 
   { "balloon",                                 "RocksDC.png"           },
   { "balloon.xpos",                            "12"                    },
@@ -1772,6 +1764,11 @@ struct ConfigInfo image_config[] =
   { "spring.ypos",                             "13"                    },
   { "spring.frames",                           "1"                     },
 
+  { "spring.left",                             UNDEFINED_FILENAME      },
+  { "spring.left.clone_from",                  "spring"                },
+  { "spring.right",                            UNDEFINED_FILENAME      },
+  { "spring.right.clone_from",                 "spring"                },
+
   { "emc_steelwall_1",                         "RocksDC.png"           },
   { "emc_steelwall_1.xpos",                    "14"                    },
   { "emc_steelwall_1.ypos",                    "0"                     },
@@ -1822,7 +1819,7 @@ struct ConfigInfo image_config[] =
   { "emc_wall_8.ypos",                         "7"                     },
   { "emc_wall_8.frames",                       "1"                     },
 
-  /* images for Diamond Caves style elements and actions */
+  // images for Diamond Caves style elements and actions
 
   { "invisible_steelwall",                     "RocksSP.png"           },
   { "invisible_steelwall.xpos",                        "3"                     },
@@ -2461,7 +2458,7 @@ struct ConfigInfo image_config[] =
   { "dc_steelwall_2_single.ypos",              "0"                     },
   { "dc_steelwall_2_single.frames",            "1"                     },
 
-  /* images for DX Boulderdash style elements and actions */
+  // images for DX Boulderdash style elements and actions
 
   { "tube_right_down",                         "RocksDC.png"           },
   { "tube_right_down.xpos",                    "9"                     },
@@ -2537,36 +2534,24 @@ struct ConfigInfo image_config[] =
   { "dx_supabomb.ypos",                                "9"                     },
   { "dx_supabomb.frames",                      "1"                     },
 
-  /* images for Rocks'n'Diamonds style elements and actions */
+  // images for Rocks'n'Diamonds style elements and actions
 
   { "key_1",                                   "RocksElements.png"     },
   { "key_1.xpos",                              "4"                     },
   { "key_1.ypos",                              "1"                     },
   { "key_1.frames",                            "1"                     },
-  { "key_1.EDITOR",                            "RocksElements.png"     },
-  { "key_1.EDITOR.xpos",                       "4"                     },
-  { "key_1.EDITOR.ypos",                       "14"                    },
   { "key_2",                                   "RocksElements.png"     },
   { "key_2.xpos",                              "5"                     },
   { "key_2.ypos",                              "1"                     },
   { "key_2.frames",                            "1"                     },
-  { "key_2.EDITOR",                            "RocksElements.png"     },
-  { "key_2.EDITOR.xpos",                       "5"                     },
-  { "key_2.EDITOR.ypos",                       "14"                    },
   { "key_3",                                   "RocksElements.png"     },
   { "key_3.xpos",                              "6"                     },
   { "key_3.ypos",                              "1"                     },
   { "key_3.frames",                            "1"                     },
-  { "key_3.EDITOR",                            "RocksElements.png"     },
-  { "key_3.EDITOR.xpos",                       "6"                     },
-  { "key_3.EDITOR.ypos",                       "14"                    },
   { "key_4",                                   "RocksElements.png"     },
   { "key_4.xpos",                              "7"                     },
   { "key_4.ypos",                              "1"                     },
   { "key_4.frames",                            "1"                     },
-  { "key_4.EDITOR",                            "RocksElements.png"     },
-  { "key_4.EDITOR.xpos",                       "7"                     },
-  { "key_4.EDITOR.ypos",                       "14"                    },
 
   { "gate_1",                                  "RocksElements.png"     },
   { "gate_1.xpos",                             "4"                     },
@@ -2688,9 +2673,6 @@ struct ConfigInfo image_config[] =
   { "lamp.xpos",                               "0"                     },
   { "lamp.ypos",                               "7"                     },
   { "lamp.frames",                             "1"                     },
-  { "lamp.EDITOR",                             "RocksElements.png"     },
-  { "lamp.EDITOR.xpos",                                "2"                     },
-  { "lamp.EDITOR.ypos",                                "14"                    },
   { "lamp.active",                             "RocksElements.png"     },
   { "lamp.active.xpos",                                "1"                     },
   { "lamp.active.ypos",                                "7"                     },
@@ -3133,9 +3115,6 @@ struct ConfigInfo image_config[] =
   { "penguin.xpos",                            "8"                     },
   { "penguin.ypos",                            "6"                     },
   { "penguin.frames",                          "1"                     },
-  { "penguin.EDITOR",                          "RocksElements.png"     },
-  { "penguin.EDITOR.xpos",                     "12"                    },
-  { "penguin.EDITOR.ypos",                     "14"                    },
   { "penguin.down",                            "RocksHeroes.png"       },
   { "penguin.down.xpos",                       "8"                     },
   { "penguin.down.ypos",                       "6"                     },
@@ -3249,15 +3228,12 @@ struct ConfigInfo image_config[] =
   { "stoneblock.ypos",                         "1"                     },
   { "stoneblock.frames",                       "1"                     },
 
-  /* images for other elements and actions */
+  // images for other elements and actions
 
   { "player_1",                                        "RocksHeroes.png"       },
   { "player_1.xpos",                           "0"                     },
   { "player_1.ypos",                           "0"                     },
   { "player_1.frames",                         "1"                     },
-  { "player_1.EDITOR",                         "RocksElements.png"     },
-  { "player_1.EDITOR.xpos",                    "4"                     },
-  { "player_1.EDITOR.ypos",                    "7"                     },
   { "player_1.down",                           "RocksHeroes.png"       },
   { "player_1.down.xpos",                      "0"                     },
   { "player_1.down.ypos",                      "0"                     },
@@ -3387,9 +3363,6 @@ struct ConfigInfo image_config[] =
   { "player_2.xpos",                           "0"                     },
   { "player_2.ypos",                           "3"                     },
   { "player_2.frames",                         "1"                     },
-  { "player_2.EDITOR",                         "RocksElements.png"     },
-  { "player_2.EDITOR.xpos",                    "5"                     },
-  { "player_2.EDITOR.ypos",                    "7"                     },
   { "player_2.down",                           "RocksHeroes.png"       },
   { "player_2.down.xpos",                      "0"                     },
   { "player_2.down.ypos",                      "3"                     },
@@ -3519,9 +3492,6 @@ struct ConfigInfo image_config[] =
   { "player_3.xpos",                           "0"                     },
   { "player_3.ypos",                           "6"                     },
   { "player_3.frames",                         "1"                     },
-  { "player_3.EDITOR",                         "RocksElements.png"     },
-  { "player_3.EDITOR.xpos",                    "6"                     },
-  { "player_3.EDITOR.ypos",                    "7"                     },
   { "player_3.down",                           "RocksHeroes.png"       },
   { "player_3.down.xpos",                      "0"                     },
   { "player_3.down.ypos",                      "6"                     },
@@ -3651,9 +3621,6 @@ struct ConfigInfo image_config[] =
   { "player_4.xpos",                           "0"                     },
   { "player_4.ypos",                           "9"                     },
   { "player_4.frames",                         "1"                     },
-  { "player_4.EDITOR",                         "RocksElements.png"     },
-  { "player_4.EDITOR.xpos",                    "7"                     },
-  { "player_4.EDITOR.ypos",                    "7"                     },
   { "player_4.down",                           "RocksHeroes.png"       },
   { "player_4.down.xpos",                      "0"                     },
   { "player_4.down.ypos",                      "9"                     },
@@ -5671,7 +5638,7 @@ struct ConfigInfo image_config[] =
   { "df_mine.ypos",                            "8"                     },
   { "df_mine.frames",                          "1"                     },
 
-  /* (these are only defined as elements to support ".PANEL" definitions) */
+  // (these are only defined as elements to support ".PANEL" definitions)
   { "graphic_1",                               UNDEFINED_FILENAME      },
   { "graphic_2",                               UNDEFINED_FILENAME      },
   { "graphic_3",                               UNDEFINED_FILENAME      },
@@ -5681,32 +5648,16 @@ struct ConfigInfo image_config[] =
   { "graphic_7",                               UNDEFINED_FILENAME      },
   { "graphic_8",                               UNDEFINED_FILENAME      },
 
-#include "conf_chr.c"  /* include auto-generated data structure definitions */
-#include "conf_cus.c"  /* include auto-generated data structure definitions */
-#include "conf_grp.c"  /* include auto-generated data structure definitions */
+#include "conf_chr.c"  // include auto-generated data structure definitions
+#include "conf_cus.c"  // include auto-generated data structure definitions
+#include "conf_grp.c"  // include auto-generated data structure definitions
 
 
   // ==========================================================================
   // image definitions not associated with game elements (menu screens etc.)
   // ==========================================================================
 
-  /* keyword to stop parser: "NO_MORE_ELEMENT_IMAGES" <-- do not change! */
-
-#if 1
-  /* !!! TEMPORARILY STORED HERE -- PROBABLY TO BE CHANGED !!! */
-
-  /* (for testing, change filename back to "emc_objects dot png") */
-  { "emc_object",                              "RocksEMC.png"          },
-#if 0
-  { "emc_object.scale_up_factor",              "2"                     },
-#endif
-
-  /* (for testing, change filename back to "emc_players dot png") */
-  { "emc_sprite",                              "RocksEMC.png"          },
-#if 0
-  { "emc_sprite.scale_up_factor",              "2"                     },
-#endif
-#endif
+  // keyword to stop parser: "NO_MORE_ELEMENT_IMAGES" <-- do not change!
 
   { "sp_frame_horizontal",                     "RocksSP.png"           },
   { "sp_frame_horizontal.xpos",                        "7"                     },
@@ -6093,6 +6044,34 @@ struct ConfigInfo image_config[] =
   { "menu.button_play_solution",               UNDEFINED_FILENAME      },
   { "menu.button_play_solution.active",                UNDEFINED_FILENAME      },
 
+  { "menu.button_switch_ecs_aga",              UNDEFINED_FILENAME      },
+  { "menu.button_switch_ecs_aga.active",       UNDEFINED_FILENAME      },
+
+  { "menu.button_touch_back",                  "RocksTouch.png"        },
+  { "menu.button_touch_back.x",                        "210"                   },
+  { "menu.button_touch_back.y",                        "180"                   },
+  { "menu.button_touch_back.width",            "60"                    },
+  { "menu.button_touch_back.height",           "60"                    },
+  { "menu.button_touch_back.pressed_xoffset",  "-200"                  },
+  { "menu.button_touch_next",                  "RocksTouch.png"        },
+  { "menu.button_touch_next.x",                        "330"                   },
+  { "menu.button_touch_next.y",                        "180"                   },
+  { "menu.button_touch_next.width",            "60"                    },
+  { "menu.button_touch_next.height",           "60"                    },
+  { "menu.button_touch_next.pressed_xoffset",  "-200"                  },
+  { "menu.button_touch_back2",                 "RocksTouch.png"        },
+  { "menu.button_touch_back2.x",               "210"                   },
+  { "menu.button_touch_back2.y",               "180"                   },
+  { "menu.button_touch_back2.width",           "60"                    },
+  { "menu.button_touch_back2.height",          "60"                    },
+  { "menu.button_touch_back2.pressed_xoffset", "-200"                  },
+  { "menu.button_touch_next2",                 "RocksTouch.png"        },
+  { "menu.button_touch_next2.x",               "330"                   },
+  { "menu.button_touch_next2.y",               "180"                   },
+  { "menu.button_touch_next2.width",           "60"                    },
+  { "menu.button_touch_next2.height",          "60"                    },
+  { "menu.button_touch_next2.pressed_xoffset", "-200"                  },
+
   { "menu.scrollbar",                          "RocksDC.png"           },
   { "menu.scrollbar.xpos",                     "8"                     },
   { "menu.scrollbar.ypos",                     "10"                    },
@@ -6210,6 +6189,20 @@ struct ConfigInfo image_config[] =
   { "gfx.game.button.panel_sound_loops",       UNDEFINED_FILENAME      },
   { "gfx.game.button.panel_sound_simple",      UNDEFINED_FILENAME      },
 
+  { "gfx.game.button.touch_stop",              "RocksTouch.png"        },
+  { "gfx.game.button.touch_stop.x",            "210"                   },
+  { "gfx.game.button.touch_stop.y",            "120"                   },
+  { "gfx.game.button.touch_stop.width",                "60"                    },
+  { "gfx.game.button.touch_stop.height",       "60"                    },
+  { "gfx.game.button.touch_stop.pressed_xoffset", "-200"               },
+  { "gfx.game.button.touch_pause",             "RocksTouch.png"        },
+  { "gfx.game.button.touch_pause.x",           "270"                   },
+  { "gfx.game.button.touch_pause.y",           "120"                   },
+  { "gfx.game.button.touch_pause.width",       "60"                    },
+  { "gfx.game.button.touch_pause.height",      "60"                    },
+  { "gfx.game.button.touch_pause.pressed_xoffset", "-200"              },
+  { "gfx.game.button.touch_pause.active_yoffset", "60"                 },
+
   { "gfx.tape.button.eject",                   "RocksDoor.png"         },
   { "gfx.tape.button.eject.x",                 "305"                   },
   { "gfx.tape.button.eject.y",                 "357"                   },
@@ -6374,6 +6367,25 @@ struct ConfigInfo image_config[] =
   { "gfx.request.button.player_4",             UNDEFINED_FILENAME      },
   { "gfx.request.button.player_4.clone_from",  "gfx.request.button.player_1" },
 
+  { "gfx.request.button.touch_yes",            "RocksTouch.png"        },
+  { "gfx.request.button.touch_yes.x",          "204"                   },
+  { "gfx.request.button.touch_yes.y",          "0"                     },
+  { "gfx.request.button.touch_yes.width",      "92"                    },
+  { "gfx.request.button.touch_yes.height",     "56"                    },
+  { "gfx.request.button.touch_yes.pressed_xoffset", "-200"             },
+  { "gfx.request.button.touch_no",             "RocksTouch.png"        },
+  { "gfx.request.button.touch_no.x",           "304"                   },
+  { "gfx.request.button.touch_no.y",           "0"                     },
+  { "gfx.request.button.touch_no.width",       "92"                    },
+  { "gfx.request.button.touch_no.height",      "56"                    },
+  { "gfx.request.button.touch_no.pressed_xoffset", "-200"              },
+  { "gfx.request.button.touch_confirm",                "RocksTouch.png"        },
+  { "gfx.request.button.touch_confirm.x",      "204"                   },
+  { "gfx.request.button.touch_confirm.y",      "60"                    },
+  { "gfx.request.button.touch_confirm.width",  "192"                   },
+  { "gfx.request.button.touch_confirm.height", "56"                    },
+  { "gfx.request.button.touch_confirm.pressed_xoffset", "-200"         },
+
   { "font.initial_1",                          "RocksFontSmall.png"    },
   { "font.initial_1.x",                                "0"                     },
   { "font.initial_1.y",                                "0"                     },
@@ -7132,6 +7144,14 @@ struct ConfigInfo image_config[] =
   { "gfx.editor.input.level_number.height",    "16"                    },
   { "gfx.editor.input.level_number.border_size","1"                    },
 
+  { "setup.input.text",                                "RocksSP.png"           },
+  { "setup.input.text.x",                      "0"                     },
+  { "setup.input.text.y",                      "0"                     },
+  { "setup.input.text.width",                  "32"                    },
+  { "setup.input.text.height",                 "32"                    },
+  { "setup.input.text.active_xoffset",         "0"                     },
+  { "setup.input.text.border_size",            "0"                     },
+
   { "global.border",                           "RocksScreen.png"       },
   { "global.border.MAIN",                      UNDEFINED_FILENAME      },
   { "global.border.SCORES",                    UNDEFINED_FILENAME      },
@@ -7346,8 +7366,8 @@ struct ConfigInfo image_config[] =
   { "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 */
+  // 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      },
 
 
@@ -7355,81 +7375,95 @@ struct ConfigInfo image_config[] =
   // non-image definitions
   // ==========================================================================
 
-  /* the following directives are not associated with an image, but
-     probably make sense to be defined in "graphicsinfo.conf", too */
+  // the following directives are not associated with an image, but
+  // probably make sense to be defined in "graphicsinfo.conf", too
 
-  /* keyword to start parser: "CONFIG_VARS_START" <-- do not change! */
+  // keyword to start parser: "CONFIG_VARS_START" <-- do not change!
 
   { "[title_initial].fade_mode",               "fade"                  },
   { "[title_initial].fade_delay",              "500"                   },
   { "[title_initial].post_delay",              "250"                   },
   { "[title_initial].auto_delay",              "-1"                    },
+  { "[title_initial].auto_delay_unit",         "ms"                    },
   { "[title].fade_mode",                       "fade"                  },
   { "[title].fade_delay",                      "500"                   },
   { "[title].post_delay",                      "250"                   },
   { "[title].auto_delay",                      "-1"                    },
+  { "[title].auto_delay_unit",                 "ms"                    },
 
   { "[titlescreen_initial].sort_priority",     "0"                     },
   { "[titlescreen_initial].fade_mode",         ARG_DEFAULT             },
   { "[titlescreen_initial].fade_delay",                ARG_DEFAULT             },
   { "[titlescreen_initial].post_delay",                ARG_DEFAULT             },
   { "[titlescreen_initial].auto_delay",                ARG_DEFAULT             },
+  { "[titlescreen_initial].auto_delay_unit",   ARG_DEFAULT             },
   { "[titlescreen].sort_priority",             "0"                     },
   { "[titlescreen].fade_mode",                 ARG_DEFAULT             },
   { "[titlescreen].fade_delay",                        ARG_DEFAULT             },
   { "[titlescreen].post_delay",                        ARG_DEFAULT             },
   { "[titlescreen].auto_delay",                        ARG_DEFAULT             },
+  { "[titlescreen].auto_delay_unit",           ARG_DEFAULT             },
 
   { "titlescreen_initial_1.sort_priority",     ARG_DEFAULT             },
   { "titlescreen_initial_1.fade_mode",         ARG_DEFAULT             },
   { "titlescreen_initial_1.fade_delay",                ARG_DEFAULT             },
   { "titlescreen_initial_1.post_delay",                ARG_DEFAULT             },
   { "titlescreen_initial_1.auto_delay",                ARG_DEFAULT             },
+  { "titlescreen_initial_1.auto_delay_unit",   ARG_DEFAULT             },
   { "titlescreen_initial_2.sort_priority",     ARG_DEFAULT             },
   { "titlescreen_initial_2.fade_mode",         ARG_DEFAULT             },
   { "titlescreen_initial_2.fade_delay",                ARG_DEFAULT             },
   { "titlescreen_initial_2.post_delay",                ARG_DEFAULT             },
   { "titlescreen_initial_2.auto_delay",                ARG_DEFAULT             },
+  { "titlescreen_initial_2.auto_delay_unit",   ARG_DEFAULT             },
   { "titlescreen_initial_3.sort_priority",     ARG_DEFAULT             },
   { "titlescreen_initial_3.fade_mode",         ARG_DEFAULT             },
   { "titlescreen_initial_3.fade_delay",                ARG_DEFAULT             },
   { "titlescreen_initial_3.post_delay",                ARG_DEFAULT             },
   { "titlescreen_initial_3.auto_delay",                ARG_DEFAULT             },
+  { "titlescreen_initial_3.auto_delay_unit",   ARG_DEFAULT             },
   { "titlescreen_initial_4.sort_priority",     ARG_DEFAULT             },
   { "titlescreen_initial_4.fade_mode",         ARG_DEFAULT             },
   { "titlescreen_initial_4.fade_delay",                ARG_DEFAULT             },
   { "titlescreen_initial_4.post_delay",                ARG_DEFAULT             },
   { "titlescreen_initial_4.auto_delay",                ARG_DEFAULT             },
+  { "titlescreen_initial_4.auto_delay_unit",   ARG_DEFAULT             },
   { "titlescreen_initial_5.sort_priority",     ARG_DEFAULT             },
   { "titlescreen_initial_5.fade_mode",         ARG_DEFAULT             },
   { "titlescreen_initial_5.fade_delay",                ARG_DEFAULT             },
   { "titlescreen_initial_5.post_delay",                ARG_DEFAULT             },
   { "titlescreen_initial_5.auto_delay",                ARG_DEFAULT             },
+  { "titlescreen_initial_5.auto_delay_unit",   ARG_DEFAULT             },
   { "titlescreen_1.sort_priority",             ARG_DEFAULT             },
   { "titlescreen_1.fade_mode",                 ARG_DEFAULT             },
   { "titlescreen_1.fade_delay",                        ARG_DEFAULT             },
   { "titlescreen_1.post_delay",                        ARG_DEFAULT             },
   { "titlescreen_1.auto_delay",                        ARG_DEFAULT             },
+  { "titlescreen_1.auto_delay_unit",           ARG_DEFAULT             },
   { "titlescreen_2.sort_priority",             ARG_DEFAULT             },
   { "titlescreen_2.fade_mode",                 ARG_DEFAULT             },
   { "titlescreen_2.fade_delay",                        ARG_DEFAULT             },
   { "titlescreen_2.post_delay",                        ARG_DEFAULT             },
   { "titlescreen_2.auto_delay",                        ARG_DEFAULT             },
+  { "titlescreen_2.auto_delay_unit",           ARG_DEFAULT             },
   { "titlescreen_3.sort_priority",             ARG_DEFAULT             },
   { "titlescreen_3.fade_mode",                 ARG_DEFAULT             },
   { "titlescreen_3.fade_delay",                        ARG_DEFAULT             },
   { "titlescreen_3.post_delay",                        ARG_DEFAULT             },
   { "titlescreen_3.auto_delay",                        ARG_DEFAULT             },
+  { "titlescreen_3.auto_delay_unit",           ARG_DEFAULT             },
   { "titlescreen_4.sort_priority",             ARG_DEFAULT             },
   { "titlescreen_4.fade_mode",                 ARG_DEFAULT             },
   { "titlescreen_4.fade_delay",                        ARG_DEFAULT             },
   { "titlescreen_4.post_delay",                        ARG_DEFAULT             },
   { "titlescreen_4.auto_delay",                        ARG_DEFAULT             },
+  { "titlescreen_4.auto_delay_unit",           ARG_DEFAULT             },
   { "titlescreen_5.sort_priority",             ARG_DEFAULT             },
   { "titlescreen_5.fade_mode",                 ARG_DEFAULT             },
   { "titlescreen_5.fade_delay",                        ARG_DEFAULT             },
   { "titlescreen_5.post_delay",                        ARG_DEFAULT             },
   { "titlescreen_5.auto_delay",                        ARG_DEFAULT             },
+  { "titlescreen_5.auto_delay_unit",           ARG_DEFAULT             },
 
   { "[titlemessage_initial].x",                        "-1"                    },
   { "[titlemessage_initial].y",                        "-1"                    },
@@ -7448,6 +7482,7 @@ struct ConfigInfo image_config[] =
   { "[titlemessage_initial].fade_delay",       ARG_DEFAULT             },
   { "[titlemessage_initial].post_delay",       ARG_DEFAULT             },
   { "[titlemessage_initial].auto_delay",       ARG_DEFAULT             },
+  { "[titlemessage_initial].auto_delay_unit",  ARG_DEFAULT             },
   { "[titlemessage].x",                                "-1"                    },
   { "[titlemessage].y",                                "-1"                    },
   { "[titlemessage].width",                    "-1"                    },
@@ -7465,6 +7500,7 @@ struct ConfigInfo image_config[] =
   { "[titlemessage].fade_delay",               ARG_DEFAULT             },
   { "[titlemessage].post_delay",               ARG_DEFAULT             },
   { "[titlemessage].auto_delay",               ARG_DEFAULT             },
+  { "[titlemessage].auto_delay_unit",          ARG_DEFAULT             },
 
   { "titlemessage_initial_1.x",                        ARG_DEFAULT             },
   { "titlemessage_initial_1.y",                        ARG_DEFAULT             },
@@ -7483,6 +7519,7 @@ struct ConfigInfo image_config[] =
   { "titlemessage_initial_1.fade_delay",       ARG_DEFAULT             },
   { "titlemessage_initial_1.post_delay",       ARG_DEFAULT             },
   { "titlemessage_initial_1.auto_delay",       ARG_DEFAULT             },
+  { "titlemessage_initial_1.auto_delay_unit",  ARG_DEFAULT             },
   { "titlemessage_initial_2.x",                        ARG_DEFAULT             },
   { "titlemessage_initial_2.y",                        ARG_DEFAULT             },
   { "titlemessage_initial_2.width",            ARG_DEFAULT             },
@@ -7500,6 +7537,7 @@ struct ConfigInfo image_config[] =
   { "titlemessage_initial_2.fade_delay",       ARG_DEFAULT             },
   { "titlemessage_initial_2.post_delay",       ARG_DEFAULT             },
   { "titlemessage_initial_2.auto_delay",       ARG_DEFAULT             },
+  { "titlemessage_initial_2.auto_delay_unit",  ARG_DEFAULT             },
   { "titlemessage_initial_3.x",                        ARG_DEFAULT             },
   { "titlemessage_initial_3.y",                        ARG_DEFAULT             },
   { "titlemessage_initial_3.width",            ARG_DEFAULT             },
@@ -7517,6 +7555,7 @@ struct ConfigInfo image_config[] =
   { "titlemessage_initial_3.fade_delay",       ARG_DEFAULT             },
   { "titlemessage_initial_3.post_delay",       ARG_DEFAULT             },
   { "titlemessage_initial_3.auto_delay",       ARG_DEFAULT             },
+  { "titlemessage_initial_3.auto_delay_unit",  ARG_DEFAULT             },
   { "titlemessage_initial_4.x",                        ARG_DEFAULT             },
   { "titlemessage_initial_4.y",                        ARG_DEFAULT             },
   { "titlemessage_initial_4.width",            ARG_DEFAULT             },
@@ -7534,6 +7573,7 @@ struct ConfigInfo image_config[] =
   { "titlemessage_initial_4.fade_delay",       ARG_DEFAULT             },
   { "titlemessage_initial_4.post_delay",       ARG_DEFAULT             },
   { "titlemessage_initial_4.auto_delay",       ARG_DEFAULT             },
+  { "titlemessage_initial_4.auto_delay_unit",  ARG_DEFAULT             },
   { "titlemessage_initial_5.x",                        ARG_DEFAULT             },
   { "titlemessage_initial_5.y",                        ARG_DEFAULT             },
   { "titlemessage_initial_5.width",            ARG_DEFAULT             },
@@ -7551,6 +7591,7 @@ struct ConfigInfo image_config[] =
   { "titlemessage_initial_5.fade_delay",       ARG_DEFAULT             },
   { "titlemessage_initial_5.post_delay",       ARG_DEFAULT             },
   { "titlemessage_initial_5.auto_delay",       ARG_DEFAULT             },
+  { "titlemessage_initial_5.auto_delay_unit",  ARG_DEFAULT             },
   { "titlemessage_1.x",                                ARG_DEFAULT             },
   { "titlemessage_1.y",                                ARG_DEFAULT             },
   { "titlemessage_1.width",                    ARG_DEFAULT             },
@@ -7568,6 +7609,7 @@ struct ConfigInfo image_config[] =
   { "titlemessage_1.fade_delay",               ARG_DEFAULT             },
   { "titlemessage_1.post_delay",               ARG_DEFAULT             },
   { "titlemessage_1.auto_delay",               ARG_DEFAULT             },
+  { "titlemessage_1.auto_delay_unit",          ARG_DEFAULT             },
   { "titlemessage_2.x",                                ARG_DEFAULT             },
   { "titlemessage_2.y",                                ARG_DEFAULT             },
   { "titlemessage_2.width",                    ARG_DEFAULT             },
@@ -7585,6 +7627,7 @@ struct ConfigInfo image_config[] =
   { "titlemessage_2.fade_delay",               ARG_DEFAULT             },
   { "titlemessage_2.post_delay",               ARG_DEFAULT             },
   { "titlemessage_2.auto_delay",               ARG_DEFAULT             },
+  { "titlemessage_2.auto_delay_unit",          ARG_DEFAULT             },
   { "titlemessage_3.x",                                ARG_DEFAULT             },
   { "titlemessage_3.y",                                ARG_DEFAULT             },
   { "titlemessage_3.width",                    ARG_DEFAULT             },
@@ -7602,6 +7645,7 @@ struct ConfigInfo image_config[] =
   { "titlemessage_3.fade_delay",               ARG_DEFAULT             },
   { "titlemessage_3.post_delay",               ARG_DEFAULT             },
   { "titlemessage_3.auto_delay",               ARG_DEFAULT             },
+  { "titlemessage_3.auto_delay_unit",          ARG_DEFAULT             },
   { "titlemessage_4.x",                                ARG_DEFAULT             },
   { "titlemessage_4.y",                                ARG_DEFAULT             },
   { "titlemessage_4.width",                    ARG_DEFAULT             },
@@ -7619,6 +7663,7 @@ struct ConfigInfo image_config[] =
   { "titlemessage_4.fade_delay",               ARG_DEFAULT             },
   { "titlemessage_4.post_delay",               ARG_DEFAULT             },
   { "titlemessage_4.auto_delay",               ARG_DEFAULT             },
+  { "titlemessage_4.auto_delay_unit",          ARG_DEFAULT             },
   { "titlemessage_5.x",                                ARG_DEFAULT             },
   { "titlemessage_5.y",                                ARG_DEFAULT             },
   { "titlemessage_5.width",                    ARG_DEFAULT             },
@@ -7636,6 +7681,7 @@ struct ConfigInfo image_config[] =
   { "titlemessage_5.fade_delay",               ARG_DEFAULT             },
   { "titlemessage_5.post_delay",               ARG_DEFAULT             },
   { "titlemessage_5.auto_delay",               ARG_DEFAULT             },
+  { "titlemessage_5.auto_delay_unit",          ARG_DEFAULT             },
 
   { "readme.x",                                        "-1"                    },
   { "readme.y",                                        "-1"                    },
@@ -7690,6 +7736,7 @@ struct ConfigInfo image_config[] =
   { "menu.enter_screen.TITLE.fade_delay",      "500"                   },
   { "menu.enter_screen.TITLE.post_delay",      "250"                   },
   { "menu.enter_screen.TITLE.auto_delay",      "-1"                    },
+  { "menu.enter_screen.TITLE.auto_delay_unit", "-1"                    },
   { "menu.enter_screen.SCORES.fade_mode",      ARG_DEFAULT             },
   { "menu.enter_screen.SCORES.fade_delay",     ARG_DEFAULT             },
   { "menu.enter_screen.SCORES.post_delay",     ARG_DEFAULT             },
@@ -7706,6 +7753,7 @@ struct ConfigInfo image_config[] =
   { "menu.leave_screen.TITLE.fade_delay",      "500"                   },
   { "menu.leave_screen.TITLE.post_delay",      "250"                   },
   { "menu.leave_screen.TITLE.auto_delay",      "-1"                    },
+  { "menu.leave_screen.TITLE.auto_delay_unit", "-1"                    },
   { "menu.leave_screen.SCORES.fade_mode",      ARG_DEFAULT             },
   { "menu.leave_screen.SCORES.fade_delay",     ARG_DEFAULT             },
   { "menu.leave_screen.SCORES.post_delay",     ARG_DEFAULT             },
@@ -7722,6 +7770,7 @@ struct ConfigInfo image_config[] =
   { "menu.next_screen.TITLE.fade_delay",       "500"                   },
   { "menu.next_screen.TITLE.post_delay",       "250"                   },
   { "menu.next_screen.TITLE.auto_delay",       "-1"                    },
+  { "menu.next_screen.TITLE.auto_delay_unit",  "-1"                    },
   { "menu.next_screen.INFO.fade_mode",         ARG_DEFAULT             },
   { "menu.next_screen.INFO.fade_delay",                ARG_DEFAULT             },
   { "menu.next_screen.INFO.post_delay",                ARG_DEFAULT             },
@@ -7758,6 +7807,8 @@ struct ConfigInfo image_config[] =
   { "menu.draw_yoffset.SETUP",                 "0"                     },
   { "menu.draw_xoffset.SETUP[GAME]",           "0"                     },
   { "menu.draw_yoffset.SETUP[GAME]",           "0"                     },
+  { "menu.draw_xoffset.SETUP[ENGINES]",                "0"                     },
+  { "menu.draw_yoffset.SETUP[ENGINES]",                "0"                     },
   { "menu.draw_xoffset.SETUP[EDITOR]",         "0"                     },
   { "menu.draw_yoffset.SETUP[EDITOR]",         "0"                     },
   { "menu.draw_xoffset.SETUP[GRAPHICS]",       "0"                     },
@@ -7789,6 +7840,9 @@ struct ConfigInfo image_config[] =
 
   { "menu.scrollbar_xoffset",                  "0"                     },
 
+  { "menu.list.SETUP[CHOOSE_OTHER].align",     "left"                  },
+  { "menu.list.SETUP[CHOOSE_OTHER].valign",    "top"                   },
+
   { "menu.list_size",                          "-1"                    },
   { "menu.list_size.LEVELS",                   "-1"                    },
   { "menu.list_size.LEVELNR",                  "-1"                    },
@@ -7843,7 +7897,7 @@ struct ConfigInfo image_config[] =
   { "menu.paragraph_spacing.INFO[MUSIC]",      "-3"                    },
   { "menu.paragraph_spacing.INFO[CREDITS]",    "-3"                    },
   { "menu.paragraph_spacing.INFO[PROGRAM]",    "-3"                    },
-  { "menu.paragraph_spacing.INFO[VERSION]",    "-3"                    },
+  { "menu.paragraph_spacing.INFO[VERSION]",    "-2"                    },
   { "menu.paragraph_spacing.INFO[LEVELSET]",   "-3"                    },
   { "menu.paragraph_spacing.SETUP[INPUT]",     "-1"                    },
 
@@ -7921,6 +7975,9 @@ struct ConfigInfo image_config[] =
   { "main.button.play_solution.x",             "-1"                    },
   { "main.button.play_solution.y",             "-1"                    },
 
+  { "main.button.switch_ecs_aga.x",            "-1"                    },
+  { "main.button.switch_ecs_aga.y",            "-1"                    },
+
   { "main.text.name.x",                                "-1"                    },
   { "main.text.name.y",                                "-1"                    },
   { "main.text.name.width",                    "-1"                    },
@@ -8073,6 +8130,31 @@ struct ConfigInfo image_config[] =
   { "main.network_players.valign",             "middle"                },
   { "main.network_players.font",               "font.main.network_players" },
   { "main.network_players.tile_size",          "16"                    },
+  { "main.network_players.border_size",                "2"                     },
+
+  { "main.preview_players.x",                  "474"                   },
+  { "main.preview_players.y",                  "448"                   },
+  { "main.preview_players.align",              "center"                },
+  { "main.preview_players.valign",             "middle"                },
+  { "main.preview_players.tile_size",          "32"                    },
+  { "main.preview_players.border_size",                "2"                     },
+  { "main.preview_players.vertical",           "false"                 },
+  { "main.preview_players.xoffset",            "-1"                    },
+  { "main.preview_players.yoffset",            "-1"                    },
+
+  { "setup.button.prev_player.x",              "320"                   },
+  { "setup.button.prev_player.y",              "64"                    },
+  { "setup.button.next_player.x",              "384"                   },
+  { "setup.button.next_player.y",              "64"                    },
+
+  { "setup.button.touch_back.x",               "0"                     },
+  { "setup.button.touch_back.y",               "0"                     },
+  { "setup.button.touch_next.x",               "-60"                   },
+  { "setup.button.touch_next.y",               "0"                     },
+  { "setup.button.touch_back2.x",              "0"                     },
+  { "setup.button.touch_back2.y",              "-60"                   },
+  { "setup.button.touch_next2.x",              "-60"                   },
+  { "setup.button.touch_next2.y",              "-60"                   },
 
   { "preview.x",                               "272"                   },
   { "preview.y",                               "380"                   },
@@ -9100,6 +9182,11 @@ struct ConfigInfo image_config[] =
   { "game.button.panel_sound_simple.x",                "-1"                    },
   { "game.button.panel_sound_simple.y",                "-1"                    },
 
+  { "game.button.touch_stop.x",                        "0"                     },
+  { "game.button.touch_stop.y",                        "0"                     },
+  { "game.button.touch_pause.x",               "-60"                   },
+  { "game.button.touch_pause.y",               "0"                     },
+
   { "tape.button.eject.x",                     "5"                     },
   { "tape.button.eject.y",                     "77"                    },
   { "tape.button.stop.x",                      "23"                    },
@@ -9396,6 +9483,13 @@ struct ConfigInfo image_config[] =
   { "request.button.player_4.draw_player",     "true"                  },
   { "request.button.player_4.tile_size",       "16"                    },
 
+  { "request.button.touch_yes.x",              "0"                     },
+  { "request.button.touch_yes.y",              "-56"                   },
+  { "request.button.touch_no.x",               "-92"                   },
+  { "request.button.touch_no.y",               "-56"                   },
+  { "request.button.touch_confirm.x",          "0"                     },
+  { "request.button.touch_confirm.y",          "-56"                   },
+
   { "request.x",                               "-1"                    },
   { "request.y",                               "-1"                    },
   { "request.width",                           "120"                   },
@@ -9427,6 +9521,10 @@ struct ConfigInfo image_config[] =
 
   { "viewport.window.width",                   "672"                   },
   { "viewport.window.height",                  "560"                   },
+  { "viewport.window.min_width",               "-1"                    },
+  { "viewport.window.min_height",              "-1"                    },
+  { "viewport.window.max_width",               "-1"                    },
+  { "viewport.window.max_height",              "-1"                    },
   { "viewport.window.TITLE.width",             ARG_DEFAULT             },
   { "viewport.window.TITLE.height",            ARG_DEFAULT             },
 
@@ -9434,79 +9532,174 @@ struct ConfigInfo image_config[] =
   { "viewport.playfield.y",                    "6"                     },
   { "viewport.playfield.width",                        "548"                   },
   { "viewport.playfield.height",               "548"                   },
+  { "viewport.playfield.min_width",            "-1"                    },
+  { "viewport.playfield.min_height",           "-1"                    },
+  { "viewport.playfield.max_width",            "-1"                    },
+  { "viewport.playfield.max_height",           "-1"                    },
+  { "viewport.playfield.margin_left",          "0"                     },
+  { "viewport.playfield.margin_right",         "0"                     },
+  { "viewport.playfield.margin_top",           "0"                     },
+  { "viewport.playfield.margin_bottom",                "0"                     },
+  { "viewport.playfield.border_left",          "-1"                    },
+  { "viewport.playfield.border_right",         "-1"                    },
+  { "viewport.playfield.border_top",           "-1"                    },
+  { "viewport.playfield.border_bottom",                "-1"                    },
   { "viewport.playfield.border_size",          "2"                     },
+  { "viewport.playfield.align_size",           "16"                    },
+  { "viewport.playfield.align",                        "left"                  },
+  { "viewport.playfield.valign",               "top"                   },
   { "viewport.playfield.MAIN.x",               ARG_DEFAULT             },
   { "viewport.playfield.MAIN.y",               ARG_DEFAULT             },
   { "viewport.playfield.MAIN.width",           ARG_DEFAULT             },
   { "viewport.playfield.MAIN.height",          ARG_DEFAULT             },
+  { "viewport.playfield.MAIN.min_width",       ARG_DEFAULT             },
+  { "viewport.playfield.MAIN.min_height",      ARG_DEFAULT             },
+  { "viewport.playfield.MAIN.max_width",       ARG_DEFAULT             },
+  { "viewport.playfield.MAIN.max_height",      ARG_DEFAULT             },
+  { "viewport.playfield.MAIN.margin_left",     ARG_DEFAULT             },
+  { "viewport.playfield.MAIN.margin_right",    ARG_DEFAULT             },
+  { "viewport.playfield.MAIN.margin_top",      ARG_DEFAULT             },
+  { "viewport.playfield.MAIN.margin_bottom",   ARG_DEFAULT             },
+  { "viewport.playfield.MAIN.border_left",     ARG_DEFAULT             },
+  { "viewport.playfield.MAIN.border_right",    ARG_DEFAULT             },
+  { "viewport.playfield.MAIN.border_top",      ARG_DEFAULT             },
+  { "viewport.playfield.MAIN.border_bottom",   ARG_DEFAULT             },
   { "viewport.playfield.MAIN.border_size",     ARG_DEFAULT             },
+  { "viewport.playfield.MAIN.align_size",      ARG_DEFAULT             },
+  { "viewport.playfield.MAIN.align",           ARG_DEFAULT             },
+  { "viewport.playfield.MAIN.valign",          ARG_DEFAULT             },
   { "viewport.playfield.SCORES.x",             ARG_DEFAULT             },
   { "viewport.playfield.SCORES.y",             ARG_DEFAULT             },
   { "viewport.playfield.SCORES.width",         ARG_DEFAULT             },
   { "viewport.playfield.SCORES.height",                ARG_DEFAULT             },
+  { "viewport.playfield.SCORES.min_width",     ARG_DEFAULT             },
+  { "viewport.playfield.SCORES.min_height",    ARG_DEFAULT             },
+  { "viewport.playfield.SCORES.max_width",     ARG_DEFAULT             },
+  { "viewport.playfield.SCORES.max_height",    ARG_DEFAULT             },
+  { "viewport.playfield.SCORES.margin_left",   ARG_DEFAULT             },
+  { "viewport.playfield.SCORES.margin_right",  ARG_DEFAULT             },
+  { "viewport.playfield.SCORES.margin_top",    ARG_DEFAULT             },
+  { "viewport.playfield.SCORES.margin_bottom", ARG_DEFAULT             },
+  { "viewport.playfield.SCORES.border_left",   ARG_DEFAULT             },
+  { "viewport.playfield.SCORES.border_right",  ARG_DEFAULT             },
+  { "viewport.playfield.SCORES.border_top",    ARG_DEFAULT             },
+  { "viewport.playfield.SCORES.border_bottom", ARG_DEFAULT             },
   { "viewport.playfield.SCORES.border_size",   ARG_DEFAULT             },
+  { "viewport.playfield.SCORES.align_size",    ARG_DEFAULT             },
+  { "viewport.playfield.SCORES.align",         ARG_DEFAULT             },
+  { "viewport.playfield.SCORES.valign",                ARG_DEFAULT             },
   { "viewport.playfield.EDITOR.x",             ARG_DEFAULT             },
   { "viewport.playfield.EDITOR.y",             ARG_DEFAULT             },
   { "viewport.playfield.EDITOR.width",         ARG_DEFAULT             },
   { "viewport.playfield.EDITOR.height",                ARG_DEFAULT             },
+  { "viewport.playfield.EDITOR.min_width",     ARG_DEFAULT             },
+  { "viewport.playfield.EDITOR.min_height",    ARG_DEFAULT             },
+  { "viewport.playfield.EDITOR.max_width",     ARG_DEFAULT             },
+  { "viewport.playfield.EDITOR.max_height",    ARG_DEFAULT             },
+  { "viewport.playfield.EDITOR.margin_left",   ARG_DEFAULT             },
+  { "viewport.playfield.EDITOR.margin_right",  ARG_DEFAULT             },
+  { "viewport.playfield.EDITOR.margin_top",    ARG_DEFAULT             },
+  { "viewport.playfield.EDITOR.margin_bottom", ARG_DEFAULT             },
+  { "viewport.playfield.EDITOR.border_left",   ARG_DEFAULT             },
+  { "viewport.playfield.EDITOR.border_right",  ARG_DEFAULT             },
+  { "viewport.playfield.EDITOR.border_top",    ARG_DEFAULT             },
+  { "viewport.playfield.EDITOR.border_bottom", ARG_DEFAULT             },
   { "viewport.playfield.EDITOR.border_size",   ARG_DEFAULT             },
+  { "viewport.playfield.EDITOR.align_size",    ARG_DEFAULT             },
+  { "viewport.playfield.EDITOR.align",         ARG_DEFAULT             },
+  { "viewport.playfield.EDITOR.valign",                ARG_DEFAULT             },
   { "viewport.playfield.PLAYING.x",            ARG_DEFAULT             },
   { "viewport.playfield.PLAYING.y",            ARG_DEFAULT             },
   { "viewport.playfield.PLAYING.width",                ARG_DEFAULT             },
   { "viewport.playfield.PLAYING.height",       ARG_DEFAULT             },
+  { "viewport.playfield.PLAYING.min_width",    ARG_DEFAULT             },
+  { "viewport.playfield.PLAYING.min_height",   ARG_DEFAULT             },
+  { "viewport.playfield.PLAYING.max_width",    ARG_DEFAULT             },
+  { "viewport.playfield.PLAYING.max_height",   ARG_DEFAULT             },
+  { "viewport.playfield.PLAYING.margin_left",  ARG_DEFAULT             },
+  { "viewport.playfield.PLAYING.margin_right", ARG_DEFAULT             },
+  { "viewport.playfield.PLAYING.margin_top",   ARG_DEFAULT             },
+  { "viewport.playfield.PLAYING.margin_bottom",        ARG_DEFAULT             },
+  { "viewport.playfield.PLAYING.border_left",  ARG_DEFAULT             },
+  { "viewport.playfield.PLAYING.border_right", ARG_DEFAULT             },
+  { "viewport.playfield.PLAYING.border_top",   ARG_DEFAULT             },
+  { "viewport.playfield.PLAYING.border_bottom",        ARG_DEFAULT             },
   { "viewport.playfield.PLAYING.border_size",  ARG_DEFAULT             },
+  { "viewport.playfield.PLAYING.align_size",   ARG_DEFAULT             },
+  { "viewport.playfield.PLAYING.align",                ARG_DEFAULT             },
+  { "viewport.playfield.PLAYING.valign",       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.align",                   "left"                  },
+  { "viewport.door_1.valign",                  "top"                   },
   { "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.MAIN.align",              ARG_DEFAULT             },
+  { "viewport.door_1.MAIN.valign",             ARG_DEFAULT             },
   { "viewport.door_1.SCORES.x",                        ARG_DEFAULT             },
   { "viewport.door_1.SCORES.y",                        ARG_DEFAULT             },
   { "viewport.door_1.SCORES.width",            ARG_DEFAULT             },
   { "viewport.door_1.SCORES.height",           ARG_DEFAULT             },
   { "viewport.door_1.SCORES.border_size",      ARG_DEFAULT             },
+  { "viewport.door_1.SCORES.align",            ARG_DEFAULT             },
+  { "viewport.door_1.SCORES.valign",           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_1.EDITOR.align",            ARG_DEFAULT             },
+  { "viewport.door_1.EDITOR.valign",           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.PLAYING.align",           ARG_DEFAULT             },
+  { "viewport.door_1.PLAYING.valign",          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.align",                   "left"                  },
+  { "viewport.door_2.valign",                  "top"                   },
   { "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.MAIN.align",              ARG_DEFAULT             },
+  { "viewport.door_2.MAIN.valign",             ARG_DEFAULT             },
   { "viewport.door_2.SCORES.x",                        ARG_DEFAULT             },
   { "viewport.door_2.SCORES.y",                        ARG_DEFAULT             },
   { "viewport.door_2.SCORES.width",            ARG_DEFAULT             },
   { "viewport.door_2.SCORES.height",           ARG_DEFAULT             },
   { "viewport.door_2.SCORES.border_size",      ARG_DEFAULT             },
+  { "viewport.door_2.SCORES.align",            ARG_DEFAULT             },
+  { "viewport.door_2.SCORES.valign",           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"                     },
+  { "viewport.door_2.EDITOR.align",            "left"                  },
+  { "viewport.door_2.EDITOR.valign",           "top"                   },
   { "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.PLAYING.align",           ARG_DEFAULT             },
+  { "viewport.door_2.PLAYING.valign",          ARG_DEFAULT             },
 
   { NULL,                                      NULL                    }
 };