added global animation actions executed after init/anim/post delay
[rocksndiamonds.git] / src / conf_gfx.c
index d24150738af9202d140e95b417e273212dbec91b..bc6e1e5e378d22d2d7125599ee25778794fb0cfe 100644 (file)
@@ -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     },
@@ -91,7 +94,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 +296,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 +834,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 +855,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 +1026,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 +1715,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"                    },
@@ -1822,7 +1813,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 +2452,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 +2528,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 +2667,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 +3109,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 +3222,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 +3357,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 +3486,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 +3615,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 +5632,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,27 +5642,27 @@ 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! */
+  // keyword to stop parser: "NO_MORE_ELEMENT_IMAGES" <-- do not change!
 
 #if 1
-  /* !!! TEMPORARILY STORED HERE -- PROBABLY TO BE CHANGED !!! */
+  // !!! TEMPORARILY STORED HERE -- PROBABLY TO BE CHANGED !!!
 
-  /* (for testing, change filename back to "emc_objects dot png") */
+  // (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") */
+  // (for testing, change filename back to "emc_players dot png")
   { "emc_sprite",                              "RocksEMC.png"          },
 #if 0
   { "emc_sprite.scale_up_factor",              "2"                     },
@@ -6674,6 +6635,9 @@ struct ConfigInfo image_config[] =
   { "font.info.levelset",                      UNDEFINED_FILENAME      },
   { "font.info.levelset.clone_from",           "font.level_number"     },
 
+  { "font.main.network_players",               UNDEFINED_FILENAME      },
+  { "font.main.network_players.clone_from",    "font.level_number"     },
+
   { "editor.element_border",                   "RocksMore.png"         },
   { "editor.element_border.xpos",              "0"                     },
   { "editor.element_border.ypos",              "2"                     },
@@ -7129,6 +7093,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      },
@@ -7343,8 +7315,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      },
 
 
@@ -7352,10 +7324,10 @@ 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"                   },
@@ -7786,6 +7758,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"                    },
@@ -8064,6 +8039,24 @@ struct ConfigInfo image_config[] =
   { "main.input.name.valign",                  "top"                   },
   { "main.input.name.font",                    "font.input_1"          },
 
+  { "main.network_players.x",                  "68"                    },
+  { "main.network_players.y",                  "448"                   },
+  { "main.network_players.align",              "center"                },
+  { "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"                    },
+
   { "preview.x",                               "272"                   },
   { "preview.y",                               "380"                   },
   { "preview.align",                           "center"                },
@@ -9417,6 +9410,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             },
 
@@ -9424,79 +9421,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                    }
 };