rnd-20030119-1-src
[rocksndiamonds.git] / src / conf_gfx.c
index 5fedea5a08b5ea570facf924e3420598ac1e8bdb..dae096899130d329634c90881c96caec483c94c2 100644 (file)
 ***********************************************************/
 
 #include "libgame/libgame.h"
+#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. */
+
 struct ConfigInfo image_config_suffix[] =
 {
-  { ".xpos",                           "0"                     },
-  { ".ypos",                           "0"                     },
-  { ".offset",                         "32"                    },
-  { ".vertical",                       "0"                     },
-  { ".frames",                         "1"                     },
-  { ".start_frame",                    "-1"                    },
-  { ".delay",                          "1"                     },
-  { ".mode_loop",                      "0"                     },
-  { ".mode_linear",                    "0"                     },
-  { ".mode_pingpong",                  "0"                     },
-  { ".mode_pingpong2",                 "0"                     },
-  { ".mode_reverse",                   "0"                     },
-  { ".global_sync",                    "-1"                    },
-
-  { NULL,                              NULL                    }
+  { ".xpos",                           "0",            TYPE_INTEGER },
+  { ".ypos",                           "0",            TYPE_INTEGER },
+  { ".offset",                         "32",           TYPE_INTEGER },
+  { ".vertical",                       "false",        TYPE_BOOLEAN },
+  { ".xoffset",                                ARG_UNDEFINED,  TYPE_INTEGER },
+  { ".yoffset",                                ARG_UNDEFINED,  TYPE_INTEGER },
+  { ".frames",                         ARG_UNDEFINED,  TYPE_INTEGER },
+  { ".start_frame",                    ARG_UNDEFINED,  TYPE_INTEGER },
+  { ".delay",                          "1",            TYPE_INTEGER },
+  { ".mode_loop",                      "false",        TYPE_BOOLEAN },
+  { ".mode_linear",                    "false",        TYPE_BOOLEAN },
+  { ".mode_pingpong",                  "false",        TYPE_BOOLEAN },
+  { ".mode_pingpong2",                 "false",        TYPE_BOOLEAN },
+  { ".mode_random",                    "false",        TYPE_BOOLEAN },
+  { ".mode_reverse",                   "false",        TYPE_BOOLEAN },
+  { ".global_sync",                    "false",        TYPE_BOOLEAN },
+
+  { NULL,                              NULL,           0            }
 };
 
 struct ConfigInfo image_config[] =
 {
   /* images for Boulder Dash style elements and actions */
 
-  { "bd_wall",                                 "RocksMore.pcx"         },
-  { "bd_wall.xpos",                            "4"                     },
-  { "bd_wall.ypos",                            "1"                     },
+  { "bd_wall",                                 "RocksDC.pcx"           },
+  { "bd_wall.xpos",                            "12"                    },
+  { "bd_wall.ypos",                            "9"                     },
   { "bd_wall.frames",                          "1"                     },
 
-  { "bd_rock",                                 "RocksMore.pcx"         },
-  { "bd_rock.xpos",                            "4"                     },
-  { "bd_rock.ypos",                            "2"                     },
+  { "bd_rock",                                 "RocksDC.pcx"           },
+  { "bd_rock.xpos",                            "12"                    },
+  { "bd_rock.ypos",                            "10"                    },
   { "bd_rock.frames",                          "1"                     },
-  { "bd_rock.falling",                         "RocksMore.pcx"         },
-  { "bd_rock.falling.xpos",                    "4"                     },
-  { "bd_rock.falling.ypos",                    "2"                     },
+  { "bd_rock.falling",                         "RocksDC.pcx"           },
+  { "bd_rock.falling.xpos",                    "12"                    },
+  { "bd_rock.falling.ypos",                    "10"                    },
   { "bd_rock.falling.frames",                  "1"                     },
-  { "bd_rock.moving_left",                     "RocksMore.pcx"         },
-  { "bd_rock.moving_left.xpos",                        "4"                     },
-  { "bd_rock.moving_left.ypos",                        "2"                     },
+  { "bd_rock.moving_left",                     "RocksDC.pcx"           },
+  { "bd_rock.moving_left.xpos",                        "12"                    },
+  { "bd_rock.moving_left.ypos",                        "10"                    },
   { "bd_rock.moving_left.frames",              "4"                     },
   { "bd_rock.moving_left.delay",               "2"                     },
-  { "bd_rock.moving_left.mode_reverse",                "1"                     },
-  { "bd_rock.moving_right",                    "RocksMore.pcx"         },
-  { "bd_rock.moving_right.xpos",               "4"                     },
-  { "bd_rock.moving_right.ypos",               "2"                     },
+  { "bd_rock.moving_left.mode_reverse",                "true"                  },
+  { "bd_rock.moving_right",                    "RocksDC.pcx"           },
+  { "bd_rock.moving_right.xpos",               "12"                    },
+  { "bd_rock.moving_right.ypos",               "10"                    },
   { "bd_rock.moving_right.frames",             "4"                     },
   { "bd_rock.moving_right.start_frame",                "1"                     },
   { "bd_rock.moving_right.delay",              "2"                     },
@@ -68,7 +76,7 @@ struct ConfigInfo image_config[] =
   { "bd_diamond.ypos",                         "10"                    },
   { "bd_diamond.frames",                       "4"                     },
   { "bd_diamond.delay",                                "4"                     },
-  { "bd_diamond.mode_reverse",                 "1"                     },
+  { "bd_diamond.mode_reverse",                 "true"                  },
   { "bd_diamond.moving",                       "RocksElements.pcx"     },
   { "bd_diamond.moving.xpos",                  "3"                     },
   { "bd_diamond.moving.ypos",                  "10"                    },
@@ -88,25 +96,25 @@ struct ConfigInfo image_config[] =
   { "bd_magic_wall.active.xpos",               "12"                    },
   { "bd_magic_wall.active.ypos",               "10"                    },
   { "bd_magic_wall.active.frames",             "4"                     },
-  { "bd_magic_wall.active.mode_reverse",       "1"                     },
+  { "bd_magic_wall.active.mode_reverse",       "true"                  },
   { "bd_magic_wall.active.delay",              "4"                     },
   { "bd_magic_wall.filling",                   "RocksElements.pcx"     },
   { "bd_magic_wall.filling.xpos",              "12"                    },
   { "bd_magic_wall.filling.ypos",              "10"                    },
   { "bd_magic_wall.filling.frames",            "4"                     },
-  { "bd_magic_wall.filling.mode_reverse",      "1"                     },
+  { "bd_magic_wall.filling.mode_reverse",      "true"                  },
   { "bd_magic_wall.filling.delay",             "4"                     },
   { "bd_magic_wall.full",                      "RocksElements.pcx"     },
   { "bd_magic_wall.full.xpos",                 "12"                    },
   { "bd_magic_wall.full.ypos",                 "10"                    },
   { "bd_magic_wall.full.frames",               "4"                     },
-  { "bd_magic_wall.full.mode_reverse",         "1"                     },
+  { "bd_magic_wall.full.mode_reverse",         "true"                  },
   { "bd_magic_wall.full.delay",                        "4"                     },
   { "bd_magic_wall.emptying",                  "RocksElements.pcx"     },
   { "bd_magic_wall.emptying.xpos",             "12"                    },
   { "bd_magic_wall.emptying.ypos",             "10"                    },
   { "bd_magic_wall.emptying.frames",           "4"                     },
-  { "bd_magic_wall.emptying.mode_reverse",     "1"                     },
+  { "bd_magic_wall.emptying.mode_reverse",     "true"                  },
   { "bd_magic_wall.emptying.delay",            "4"                     },
   { "bd_magic_wall.dead",                      "RocksElements.pcx"     },
   { "bd_magic_wall.dead.xpos",                 "12"                    },
@@ -138,13 +146,13 @@ struct ConfigInfo image_config[] =
   { "bd_butterfly.xpos",                       "4"                     },
   { "bd_butterfly.ypos",                       "12"                    },
   { "bd_butterfly.frames",                     "2"                     },
-  { "bd_butterfly.mode_pingpong",              "1"                     },
+  { "bd_butterfly.mode_pingpong",              "true"                  },
   { "bd_butterfly.delay",                      "4"                     },
   { "bd_butterfly.moving",                     "RocksElements.pcx"     },
   { "bd_butterfly.moving.xpos",                        "4"                     },
   { "bd_butterfly.moving.ypos",                        "12"                    },
   { "bd_butterfly.moving.frames",              "2"                     },
-  { "bd_butterfly.moving.mode_pingpong",       "1"                     },
+  { "bd_butterfly.moving.mode_pingpong",       "true"                  },
   { "bd_butterfly.moving.delay",               "4"                     },
   { "bd_butterfly_right",                      "RocksElements.pcx"     },
   { "bd_butterfly_right.xpos",                 "8"                     },
@@ -167,13 +175,13 @@ struct ConfigInfo image_config[] =
   { "bd_firefly.xpos",                         "6"                     },
   { "bd_firefly.ypos",                         "12"                    },
   { "bd_firefly.frames",                       "2"                     },
-  { "bd_firefly.mode_pingpong",                        "1"                     },
+  { "bd_firefly.mode_pingpong",                        "true"                  },
   { "bd_firefly.delay",                                "4"                     },
   { "bd_firefly.moving",                       "RocksElements.pcx"     },
   { "bd_firefly.moving.xpos",                  "6"                     },
   { "bd_firefly.moving.ypos",                  "12"                    },
   { "bd_firefly.moving.frames",                        "2"                     },
-  { "bd_firefly.moving.mode_pingpong",         "1"                     },
+  { "bd_firefly.moving.mode_pingpong",         "true"                  },
   { "bd_firefly.moving.delay",                 "4"                     },
   { "bd_firefly_right",                                "RocksElements.pcx"     },
   { "bd_firefly_right.xpos",                   "12"                    },
@@ -212,7 +220,7 @@ struct ConfigInfo image_config[] =
   { "sp_zonk.moving_left.ypos",                        "6"                     },
   { "sp_zonk.moving_left.frames",              "4"                     },
   { "sp_zonk.moving_left.delay",               "2"                     },
-  { "sp_zonk.moving_left.mode_reverse",                "1"                     },
+  { "sp_zonk.moving_left.mode_reverse",                "true"                  },
   { "sp_zonk.moving_right",                    "RocksSP.pcx"           },
   { "sp_zonk.moving_right.xpos",               "0"                     },
   { "sp_zonk.moving_right.ypos",               "6"                     },
@@ -237,13 +245,13 @@ struct ConfigInfo image_config[] =
   { "sp_murphy_left.moving.xpos",              "8"                     },
   { "sp_murphy_left.moving.ypos",              "0"                     },
   { "sp_murphy_left.moving.frames",            "3"                     },
-  { "sp_murphy_left.moving.mode_pingpong",     "1"                     },
+  { "sp_murphy_left.moving.mode_pingpong",     "true"                  },
   { "sp_murphy_left.moving.delay",             "2"                     },
   { "sp_murphy_left.digging",                  "RocksSP.pcx"           },
   { "sp_murphy_left.digging.xpos",             "8"                     },
   { "sp_murphy_left.digging.ypos",             "0"                     },
   { "sp_murphy_left.digging.frames",           "3"                     },
-  { "sp_murphy_left.digging.mode_pingpong",    "1"                     },
+  { "sp_murphy_left.digging.mode_pingpong",    "true"                  },
   { "sp_murphy_left.digging.delay",            "2"                     },
   { "sp_murphy_left.pushing",                  "RocksSP.pcx"           },
   { "sp_murphy_left.pushing.xpos",             "11"                    },
@@ -262,13 +270,13 @@ struct ConfigInfo image_config[] =
   { "sp_murphy_right.moving.xpos",             "11"                    },
   { "sp_murphy_right.moving.ypos",             "0"                     },
   { "sp_murphy_right.moving.frames",           "3"                     },
-  { "sp_murphy_right.moving.mode_pingpong",    "1"                     },
+  { "sp_murphy_right.moving.mode_pingpong",    "true"                  },
   { "sp_murphy_right.moving.delay",            "2"                     },
   { "sp_murphy_right.digging",                 "RocksSP.pcx"           },
   { "sp_murphy_right.digging.xpos",            "11"                    },
   { "sp_murphy_right.digging.ypos",            "0"                     },
   { "sp_murphy_right.digging.frames",          "3"                     },
-  { "sp_murphy_right.digging.mode_pingpong",   "1"                     },
+  { "sp_murphy_right.digging.mode_pingpong",   "true"                  },
   { "sp_murphy_right.digging.delay",           "2"                     },
   { "sp_murphy_right.pushing",                 "RocksSP.pcx"           },
   { "sp_murphy_right.pushing.xpos",            "10"                    },
@@ -446,22 +454,22 @@ struct ConfigInfo image_config[] =
   { "sp_sniksnak_left.xpos",                   "8"                     },
   { "sp_sniksnak_left.ypos",                   "8"                     },
   { "sp_sniksnak_left.frames",                 "4"                     },
-  { "sp_sniksnak_left.mode_pingpong2",         "1"                     },
+  { "sp_sniksnak_left.mode_pingpong2",         "true"                  },
   { "sp_sniksnak_right",                       "RocksSP.pcx"           },
   { "sp_sniksnak_right.xpos",                  "12"                    },
   { "sp_sniksnak_right.ypos",                  "8"                     },
   { "sp_sniksnak_right.frames",                        "4"                     },
-  { "sp_sniksnak_right.mode_pingpong2",                "1"                     },
+  { "sp_sniksnak_right.mode_pingpong2",                "true"                  },
   { "sp_sniksnak_up",                          "RocksSP.pcx"           },
   { "sp_sniksnak_up.xpos",                     "8"                     },
   { "sp_sniksnak_up.ypos",                     "9"                     },
   { "sp_sniksnak_up.frames",                   "4"                     },
-  { "sp_sniksnak_up.mode_pingpong2",           "1"                     },
+  { "sp_sniksnak_up.mode_pingpong2",           "true"                  },
   { "sp_sniksnak_down",                                "RocksSP.pcx"           },
   { "sp_sniksnak_down.xpos",                   "12"                    },
   { "sp_sniksnak_down.ypos",                   "9"                     },
   { "sp_sniksnak_down.frames",                 "4"                     },
-  { "sp_sniksnak_down.mode_pingpong2",         "1"                     },
+  { "sp_sniksnak_down.mode_pingpong2",         "true"                  },
 
   { "sp_electron",                             "RocksSP.pcx"           },
   { "sp_electron.xpos",                                "8"                     },
@@ -470,13 +478,13 @@ struct ConfigInfo image_config[] =
   { "sp_electron.delay",                       "2"                     },
 
   { "sp_terminal",                             "RocksSP.pcx"           },
-  { "sp_terminal.xpos",                                "8"                     },
-  { "sp_terminal.ypos",                                "11"                    },
+  { "sp_terminal.xpos",                                "0"                     },
+  { "sp_terminal.ypos",                                "10"                    },
   { "sp_terminal.frames",                      "7"                     },
   { "sp_terminal.delay",                       "12"                    },
   { "sp_terminal.active",                      "RocksSP.pcx"           },
-  { "sp_terminal.active.xpos",                 "8"                     },
-  { "sp_terminal.active.ypos",                 "12"                    },
+  { "sp_terminal.active.xpos",                 "0"                     },
+  { "sp_terminal.active.ypos",                 "11"                    },
   { "sp_terminal.active.frames",               "7"                     },
   { "sp_terminal.active.delay",                        "4"                     },
 
@@ -484,10 +492,15 @@ struct ConfigInfo image_config[] =
   { "sp_buggy_base.xpos",                      "1"                     },
   { "sp_buggy_base.ypos",                      "3"                     },
   { "sp_buggy_base.frames",                    "1"                     },
+  { "sp_buggy_base.activating",                        "RocksSP.pcx"           },
+  { "sp_buggy_base.activating.xpos",           "15"                    },
+  { "sp_buggy_base.activating.ypos",           "2"                     },
+  { "sp_buggy_base.activating.frames",         "1"                     },
   { "sp_buggy_base.active",                    "RocksSP.pcx"           },
   { "sp_buggy_base.active.xpos",               "8"                     },
   { "sp_buggy_base.active.ypos",               "6"                     },
   { "sp_buggy_base.active.frames",             "4"                     },
+  { "sp_buggy_base.active.mode_random",                "true"                  },
 
   { "sp_hard_base1",                           "RocksSP.pcx"           },
   { "sp_hard_base1.xpos",                      "4"                     },
@@ -518,10 +531,14 @@ struct ConfigInfo image_config[] =
   { "sp_explosion.xpos",                       "8"                     },
   { "sp_explosion.ypos",                       "3"                     },
   { "sp_explosion.frames",                     "8"                     },
+  { "sp_explosion.delay",                      "3"                     },
+  { "sp_explosion.mode_linear",                        "true"                  },
   { "sp_explosion_infotron",                   "RocksSP.pcx"           },
   { "sp_explosion_infotron.xpos",              "8"                     },
   { "sp_explosion_infotron.ypos",              "4"                     },
   { "sp_explosion_infotron.frames",            "8"                     },
+  { "sp_explosion.delay",                      "3"                     },
+  { "sp_explosion.mode_linear",                        "true"                  },
 
   /* images for Sokoban style elements and actions */
 
@@ -542,9 +559,9 @@ struct ConfigInfo image_config[] =
 
   /* images for Emerald Mine style elements and actions */
 
-  { "empty_space",                             "RocksElements.pcx"     },
-  { "empty_space.xpos",                                "7"                     },
-  { "empty_space.ypos",                                "9"                     },
+  { "empty_space",                             "RocksSP.pcx"           },
+  { "empty_space.xpos",                                "0"                     },
+  { "empty_space.ypos",                                "0"                     },
   { "empty_space.frames",                      "1"                     },
 
   { "sand",                                    "RocksElements.pcx"     },
@@ -583,7 +600,7 @@ struct ConfigInfo image_config[] =
   { "rock.moving_left.ypos",                   "0"                     },
   { "rock.moving_left.frames",                 "4"                     },
   { "rock.moving_left.delay",                  "2"                     },
-  { "rock.moving_left.mode_reverse",           "1"                     },
+  { "rock.moving_left.mode_reverse",           "true"                  },
   { "rock.moving_right",                       "RocksElements.pcx"     },
   { "rock.moving_right.xpos",                  "12"                    },
   { "rock.moving_right.ypos",                  "0"                     },
@@ -630,12 +647,24 @@ struct ConfigInfo image_config[] =
   { "nut.xpos",                                        "12"                    },
   { "nut.ypos",                                        "1"                     },
   { "nut.frames",                              "1"                     },
+  { "nut.falling",                             "RocksElements.pcx"     },
+  { "nut.falling.xpos",                                "12"                    },
+  { "nut.falling.ypos",                                "1"                     },
+  { "nut.falling.frames",                      "1"                     },
+  { "nut.moving_left",                         "RocksElements.pcx"     },
+  { "nut.moving_left.xpos",                    "12"                    },
+  { "nut.moving_left.ypos",                    "1"                     },
+  { "nut.moving_left.frames",                  "1"                     },
+  { "nut.moving_right",                                "RocksElements.pcx"     },
+  { "nut.moving_right.xpos",                   "12"                    },
+  { "nut.moving_right.ypos",                   "1"                     },
+  { "nut.moving_right.frames",                 "1"                     },
   { "nut.cracking",                            "RocksElements.pcx"     },
   { "nut.cracking.xpos",                       "13"                    },
   { "nut.cracking.ypos",                       "1"                     },
   { "nut.cracking.frames",                     "3"                     },
   { "nut.cracking.delay",                      "2"                     },
-  { "nut.cracking.mode_linear",                        "1"                     },
+  { "nut.cracking.mode_linear",                        "true"                  },
 
   { "dynamite",                                        "RocksElements.pcx"     },
   { "dynamite.xpos",                           "0"                     },
@@ -646,8 +675,7 @@ struct ConfigInfo image_config[] =
   { "dynamite.active.ypos",                    "3"                     },
   { "dynamite.active.frames",                  "7"                     },
   { "dynamite.active.delay",                   "12"                    },
-  { "dynamite.active.mode_linear",             "1"                     },
-  { "dynamite.active.global_sync",             "0"                     },
+  { "dynamite.active.mode_linear",             "true"                  },
 
   { "wall_emerald",                            "RocksElements.pcx"     },
   { "wall_emerald.xpos",                       "4"                     },
@@ -664,48 +692,56 @@ struct ConfigInfo image_config[] =
   { "bug_right.ypos",                          "4"                     },
   { "bug_right.frames",                                "2"                     },
   { "bug_right.delay",                         "4"                     },
+  { "bug_right.offset",                                "128"                   },
   { "bug_up",                                  "RocksElements.pcx"     },
-  { "bug_up.xpos",                             "10"                    },
+  { "bug_up.xpos",                             "9"                     },
   { "bug_up.ypos",                             "4"                     },
   { "bug_up.frames",                           "2"                     },
   { "bug_up.delay",                            "4"                     },
+  { "bug_up.offset",                           "128"                   },
   { "bug_left",                                        "RocksElements.pcx"     },
-  { "bug_left.xpos",                           "12"                    },
+  { "bug_left.xpos",                           "10"                    },
   { "bug_left.ypos",                           "4"                     },
   { "bug_left.frames",                         "2"                     },
   { "bug_left.delay",                          "4"                     },
+  { "bug_left.offset",                         "128"                   },
   { "bug_down",                                        "RocksElements.pcx"     },
-  { "bug_down.xpos",                           "14"                    },
+  { "bug_down.xpos",                           "11"                    },
   { "bug_down.ypos",                           "4"                     },
   { "bug_down.frames",                         "2"                     },
   { "bug_down.delay",                          "4"                     },
+  { "bug_down.offset",                         "128"                   },
 
   { "spaceship_right",                         "RocksElements.pcx"     },
   { "spaceship_right.xpos",                    "8"                     },
   { "spaceship_right.ypos",                    "3"                     },
   { "spaceship_right.frames",                  "2"                     },
   { "spaceship_right.delay",                   "4"                     },
+  { "spaceship_right.offset",                  "128"                   },
   { "spaceship_up",                            "RocksElements.pcx"     },
-  { "spaceship_up.xpos",                       "10"                    },
+  { "spaceship_up.xpos",                       "9"                     },
   { "spaceship_up.ypos",                       "3"                     },
   { "spaceship_up.frames",                     "2"                     },
   { "spaceship_up.delay",                      "4"                     },
+  { "spaceship_up.offset",                     "128"                   },
   { "spaceship_left",                          "RocksElements.pcx"     },
-  { "spaceship_left.xpos",                     "12"                    },
+  { "spaceship_left.xpos",                     "10"                    },
   { "spaceship_left.ypos",                     "3"                     },
   { "spaceship_left.frames",                   "2"                     },
   { "spaceship_left.delay",                    "4"                     },
+  { "spaceship_left.offset",                   "128"                   },
   { "spaceship_down",                          "RocksElements.pcx"     },
-  { "spaceship_down.xpos",                     "14"                    },
+  { "spaceship_down.xpos",                     "11"                    },
   { "spaceship_down.ypos",                     "3"                     },
   { "spaceship_down.frames",                   "2"                     },
   { "spaceship_down.delay",                    "4"                     },
+  { "spaceship_down.offset",                   "128"                   },
 
   { "yamyam",                                  "RocksElements.pcx"     },
   { "yamyam.xpos",                             "0"                     },
   { "yamyam.ypos",                             "5"                     },
   { "yamyam.frames",                           "4"                     },
-  { "yamyam.mode_pingpong2",                   "1"                     },
+  { "yamyam.mode_pingpong2",                   "true"                  },
   { "yamyam.moving",                           "RocksElements.pcx"     },
   { "yamyam.moving.xpos",                      "0"                     },
   { "yamyam.moving.ypos",                      "5"                     },
@@ -715,7 +751,7 @@ struct ConfigInfo image_config[] =
   { "robot.xpos",                              "4"                     },
   { "robot.ypos",                              "5"                     },
   { "robot.frames",                            "4"                     },
-  { "robot.mode_pingpong2",                    "1"                     },
+  { "robot.mode_pingpong2",                    "true"                  },
   { "robot.moving",                            "RocksElements.pcx"     },
   { "robot.moving.xpos",                       "4"                     },
   { "robot.moving.ypos",                       "5"                     },
@@ -738,25 +774,25 @@ struct ConfigInfo image_config[] =
   { "magic_wall.active.xpos",                  "0"                     },
   { "magic_wall.active.ypos",                  "8"                     },
   { "magic_wall.active.frames",                        "4"                     },
-  { "magic_wall.active.mode_reverse",          "1"                     },
+  { "magic_wall.active.mode_reverse",          "true"                  },
   { "magic_wall.active.delay",                 "4"                     },
   { "magic_wall.filling",                      "RocksElements.pcx"     },
   { "magic_wall.filling.xpos",                 "0"                     },
   { "magic_wall.filling.ypos",                 "8"                     },
   { "magic_wall.filling.frames",               "4"                     },
-  { "magic_wall.filling.mode_reverse",         "1"                     },
+  { "magic_wall.filling.mode_reverse",         "true"                  },
   { "magic_wall.filling.delay",                        "4"                     },
   { "magic_wall.full",                         "RocksElements.pcx"     },
   { "magic_wall.full.xpos",                    "0"                     },
   { "magic_wall.full.ypos",                    "8"                     },
   { "magic_wall.full.frames",                  "4"                     },
-  { "magic_wall.full.mode_reverse",            "1"                     },
+  { "magic_wall.full.mode_reverse",            "true"                  },
   { "magic_wall.full.delay",                   "4"                     },
   { "magic_wall.emptying",                     "RocksElements.pcx"     },
   { "magic_wall.emptying.xpos",                        "0"                     },
   { "magic_wall.emptying.ypos",                        "8"                     },
   { "magic_wall.emptying.frames",              "4"                     },
-  { "magic_wall.emptying.mode_reverse",                "1"                     },
+  { "magic_wall.emptying.mode_reverse",                "true"                  },
   { "magic_wall.emptying.delay",               "4"                     },
   { "magic_wall.dead",                         "RocksElements.pcx"     },
   { "magic_wall.dead.xpos",                    "0"                     },
@@ -812,13 +848,13 @@ struct ConfigInfo image_config[] =
   { "acid_splash_left.ypos",                   "10"                    },
   { "acid_splash_left.frames",                 "4"                     },
   { "acid_splash_left.delay",                  "2"                     },
-  { "acid_splash_left.global_sync",            "0"                     },
+  { "acid_splash_left.mode_linear",            "true"                  },
   { "acid_splash_right",                       "RocksHeroes.pcx"       },
   { "acid_splash_right.xpos",                  "12"                    },
   { "acid_splash_right.ypos",                  "10"                    },
   { "acid_splash_right.frames",                        "4"                     },
   { "acid_splash_right.delay",                 "2"                     },
-  { "acid_splash_right.global_sync",           "0"                     },
+  { "acid_splash_right.mode_linear",           "true"                  },
 
   { "amoeba_drop",                             "RocksElements.pcx"     },
   { "amoeba_drop.xpos",                                "5"                     },
@@ -829,14 +865,14 @@ struct ConfigInfo image_config[] =
   { "amoeba.creating.ypos",                    "6"                     },
   { "amoeba.creating.frames",                  "3"                     },
   { "amoeba.creating.delay",                   "2"                     },
-  { "amoeba.creating.mode_linear",             "1"                     },
+  { "amoeba.creating.mode_linear",             "true"                  },
   { "amoeba.shrinking",                                "RocksElements.pcx"     },
   { "amoeba.shrinking.xpos",                   "5"                     },
   { "amoeba.shrinking.ypos",                   "6"                     },
   { "amoeba.shrinking.frames",                 "3"                     },
   { "amoeba.shrinking.delay",                  "2"                     },
-  { "amoeba.shrinking.mode_linear",            "1"                     },
-  { "amoeba.shrinking.mode_reverse",           "1"                     },
+  { "amoeba.shrinking.mode_linear",            "true"                  },
+  { "amoeba.shrinking.mode_reverse",           "true"                  },
   { "amoeba_wet",                              "RocksElements.pcx"     },
   { "amoeba_wet.xpos",                         "8"                     },
   { "amoeba_wet.ypos",                         "6"                     },
@@ -977,13 +1013,13 @@ struct ConfigInfo image_config[] =
   { "exit.opening.ypos",                       "11"                    },
   { "exit.opening.frames",                     "5"                     },
   { "exit.opening.delay",                      "6"                     },
-  { "exit.opening.mode_linear",                        "1"                     },
+  { "exit.opening.mode_linear",                        "true"                  },
   { "exit_open",                               "RocksElements.pcx"     },
   { "exit_open.xpos",                          "4"                     },
   { "exit_open.ypos",                          "11"                    },
   { "exit_open.frames",                                "4"                     },
   { "exit_open.delay",                         "4"                     },
-  { "exit_open.mode_pingpong",                 "1"                     },
+  { "exit_open.mode_pingpong",                 "true"                  },
 
   /* images for Emerald Mine Club style elements and actions */
 
@@ -995,7 +1031,7 @@ struct ConfigInfo image_config[] =
   { "balloon.moving.xpos",                     "12"                    },
   { "balloon.moving.ypos",                     "7"                     },
   { "balloon.moving.frames",                   "4"                     },
-  { "balloon.moving.mode_pingpong",            "1"                     },
+  { "balloon.moving.mode_pingpong",            "true"                  },
   { "balloon.moving.delay",                    "2"                     },
 
   { "balloon_send_left",                       "RocksDC.pcx"           },
@@ -1015,17 +1051,17 @@ struct ConfigInfo image_config[] =
   { "balloon_send_down.ypos",                  "7"                     },
   { "balloon_send_down.frames",                        "1"                     },
   { "balloon_send_any_direction",              "RocksDC.pcx"           },
-  { "balloon_send_any_direction.xpos",         "7"                     },
+  { "balloon_send_any_direction.xpos",         "15"                    },
   { "balloon_send_any_direction.ypos",         "0"                     },
   { "balloon_send_any_direction.frames",       "1"                     },
 
-  { "spring",                                  "RocksMore.pcx"         },
-  { "spring.xpos",                             "0"                     },
-  { "spring.ypos",                             "5"                     },
+  { "spring",                                  "RocksDC.pcx"           },
+  { "spring.xpos",                             "8"                     },
+  { "spring.ypos",                             "13"                    },
   { "spring.frames",                           "1"                     },
-  { "spring.moving",                           "RocksMore.pcx"         },
-  { "spring.moving.xpos",                      "0"                     },
-  { "spring.moving.ypos",                      "5"                     },
+  { "spring.moving",                           "RocksDC.pcx"           },
+  { "spring.moving.xpos",                      "8"                     },
+  { "spring.moving.ypos",                      "13"                    },
   { "spring.moving.frames",                    "1"                     },
 
   { "emc_steelwall1",                          "RocksDC.pcx"           },
@@ -1175,7 +1211,6 @@ struct ConfigInfo image_config[] =
   { "conveyor_belt2_right.active.ypos",                "5"                     },
   { "conveyor_belt2_right.active.frames",      "8"                     },
   { "conveyor_belt2_right.active.delay",       "2"                     },
-  { "conveyor_belt2_right.active.delay",       "2"                     },
   { "conveyor_belt2_switch_left",              "RocksDC.pcx"           },
   { "conveyor_belt2_switch_left.xpos",         "1"                     },
   { "conveyor_belt2_switch_left.ypos",         "12"                    },
@@ -1216,7 +1251,6 @@ struct ConfigInfo image_config[] =
   { "conveyor_belt3_right.active.ypos",                "8"                     },
   { "conveyor_belt3_right.active.frames",      "8"                     },
   { "conveyor_belt3_right.active.delay",       "2"                     },
-  { "conveyor_belt3_right.active.delay",       "2"                     },
   { "conveyor_belt3_switch_left",              "RocksDC.pcx"           },
   { "conveyor_belt3_switch_left.xpos",         "2"                     },
   { "conveyor_belt3_switch_left.ypos",         "12"                    },
@@ -1257,7 +1291,6 @@ struct ConfigInfo image_config[] =
   { "conveyor_belt4_right.active.ypos",                "11"                    },
   { "conveyor_belt4_right.active.frames",      "8"                     },
   { "conveyor_belt4_right.active.delay",       "2"                     },
-  { "conveyor_belt4_right.active.delay",       "2"                     },
   { "conveyor_belt4_switch_left",              "RocksDC.pcx"           },
   { "conveyor_belt4_switch_left.xpos",         "3"                     },
   { "conveyor_belt4_switch_left.ypos",         "12"                    },
@@ -1346,14 +1379,14 @@ struct ConfigInfo image_config[] =
   { "shield_normal.active.ypos",               "13"                    },
   { "shield_normal.active.frames",             "3"                     },
   { "shield_normal.active.delay",              "8"                     },
-  { "shield_normal.active.mode_pingpong",      "1"                     },
+  { "shield_normal.active.mode_pingpong",      "true"                  },
 
   { "shield_deadly.active",                    "RocksHeroes.pcx"       },
   { "shield_deadly.active.xpos",               "5"                     },
   { "shield_deadly.active.ypos",               "13"                    },
   { "shield_deadly.active.frames",             "3"                     },
   { "shield_deadly.active.delay",              "8"                     },
-  { "shield_deadly.active.mode_pingpong",      "1"                     },
+  { "shield_deadly.active.mode_pingpong",      "true"                  },
 
   { "switchgate_closed",                       "RocksDC.pcx"           },
   { "switchgate_closed.xpos",                  "8"                     },
@@ -1373,7 +1406,7 @@ struct ConfigInfo image_config[] =
   { "switchgate.closing.ypos",                 "5"                     },
   { "switchgate.closing.frames",               "5"                     },
   { "switchgate.closing.delay",                        "6"                     },
-  { "switchgate.closing.mode_reverse",         "1"                     },
+  { "switchgate.closing.mode_reverse",         "true"                  },
 
   { "timegate_closed",                         "RocksDC.pcx"           },
   { "timegate_closed.xpos",                    "8"                     },
@@ -1393,105 +1426,105 @@ struct ConfigInfo image_config[] =
   { "timegate.closing.ypos",                   "6"                     },
   { "timegate.closing.frames",                 "5"                     },
   { "timegate.closing.delay",                  "6"                     },
-  { "timegate.closing.mode_reverse",           "1"                     },
+  { "timegate.closing.mode_reverse",           "true"                  },
 
-  { "pearl",                                   "RocksMore.pcx"         },
-  { "pearl.xpos",                              "0"                     },
-  { "pearl.ypos",                              "3"                     },
+  { "pearl",                                   "RocksDC.pcx"           },
+  { "pearl.xpos",                              "8"                     },
+  { "pearl.ypos",                              "11"                    },
   { "pearl.frames",                            "1"                     },
-  { "pearl.breaking",                          "RocksMore.pcx"         },
-  { "pearl.breaking.xpos",                     "0"                     },
-  { "pearl.breaking.ypos",                     "4"                     },
+  { "pearl.breaking",                          "RocksDC.pcx"           },
+  { "pearl.breaking.xpos",                     "8"                     },
+  { "pearl.breaking.ypos",                     "12"                    },
   { "pearl.breaking.frames",                   "4"                     },
   { "pearl.breaking.delay",                    "2"                     },
   { "pearl.breaking.mode_linear",              "4"                     },
 
-  { "crystal",                                 "RocksMore.pcx"         },
-  { "crystal.xpos",                            "1"                     },
-  { "crystal.ypos",                            "3"                     },
+  { "crystal",                                 "RocksDC.pcx"           },
+  { "crystal.xpos",                            "9"                     },
+  { "crystal.ypos",                            "11"                    },
   { "crystal.frames",                          "1"                     },
 
-  { "wall_pearl",                              "RocksMore.pcx"         },
-  { "wall_pearl.xpos",                         "2"                     },
-  { "wall_pearl.ypos",                         "3"                     },
+  { "wall_pearl",                              "RocksDC.pcx"           },
+  { "wall_pearl.xpos",                         "10"                    },
+  { "wall_pearl.ypos",                         "11"                    },
   { "wall_pearl.frames",                       "1"                     },
 
-  { "wall_crystal",                            "RocksMore.pcx"         },
-  { "wall_crystal.xpos",                       "3"                     },
-  { "wall_crystal.ypos",                       "3"                     },
+  { "wall_crystal",                            "RocksDC.pcx"           },
+  { "wall_crystal.xpos",                       "11"                    },
+  { "wall_crystal.ypos",                       "11"                    },
   { "wall_crystal.frames",                     "1"                     },
 
   /* images for DX Boulderdash style elements and actions */
 
-  { "tube_right_down",                         "RocksMore.pcx"         },
-  { "tube_right_down.xpos",                    "1"                     },
-  { "tube_right_down.ypos",                    "5"                     },
+  { "tube_right_down",                         "RocksDC.pcx"           },
+  { "tube_right_down.xpos",                    "9"                     },
+  { "tube_right_down.ypos",                    "13"                    },
   { "tube_right_down.frames",                  "1"                     },
 
-  { "tube_horizontal_down",                    "RocksMore.pcx"         },
-  { "tube_horizontal_down.xpos",               "2"                     },
-  { "tube_horizontal_down.ypos",               "5"                     },
+  { "tube_horizontal_down",                    "RocksDC.pcx"           },
+  { "tube_horizontal_down.xpos",               "10"                    },
+  { "tube_horizontal_down.ypos",               "13"                    },
   { "tube_horizontal_down.frames",             "1"                     },
 
-  { "tube_left_down",                          "RocksMore.pcx"         },
-  { "tube_left_down.xpos",                     "3"                     },
-  { "tube_left_down.ypos",                     "5"                     },
+  { "tube_left_down",                          "RocksDC.pcx"           },
+  { "tube_left_down.xpos",                     "11"                    },
+  { "tube_left_down.ypos",                     "13"                    },
   { "tube_left_down.frames",                   "1"                     },
 
-  { "tube_horizontal",                         "RocksMore.pcx"         },
-  { "tube_horizontal.xpos",                    "0"                     },
-  { "tube_horizontal.ypos",                    "6"                     },
+  { "tube_horizontal",                         "RocksDC.pcx"           },
+  { "tube_horizontal.xpos",                    "8"                     },
+  { "tube_horizontal.ypos",                    "14"                    },
   { "tube_horizontal.frames",                  "1"                     },
 
-  { "tube_vertical_right",                     "RocksMore.pcx"         },
-  { "tube_vertical_right.xpos",                        "1"                     },
-  { "tube_vertical_right.ypos",                        "6"                     },
+  { "tube_vertical_right",                     "RocksDC.pcx"           },
+  { "tube_vertical_right.xpos",                        "9"                     },
+  { "tube_vertical_right.ypos",                        "14"                    },
   { "tube_vertical_right.frames",              "1"                     },
 
-  { "tube_all",                                        "RocksMore.pcx"         },
-  { "tube_all.xpos",                           "2"                     },
-  { "tube_all.ypos",                           "6"                     },
+  { "tube_all",                                        "RocksDC.pcx"           },
+  { "tube_all.xpos",                           "10"                    },
+  { "tube_all.ypos",                           "14"                    },
   { "tube_all.frames",                         "1"                     },
 
-  { "tube_vertical_left",                      "RocksMore.pcx"         },
-  { "tube_vertical_left.xpos",                 "3"                     },
-  { "tube_vertical_left.ypos",                 "6"                     },
+  { "tube_vertical_left",                      "RocksDC.pcx"           },
+  { "tube_vertical_left.xpos",                 "11"                    },
+  { "tube_vertical_left.ypos",                 "14"                    },
   { "tube_vertical_left.frames",               "1"                     },
 
-  { "tube_vertical",                           "RocksMore.pcx"         },
-  { "tube_vertical.xpos",                      "0"                     },
-  { "tube_vertical.ypos",                      "7"                     },
+  { "tube_vertical",                           "RocksDC.pcx"           },
+  { "tube_vertical.xpos",                      "8"                     },
+  { "tube_vertical.ypos",                      "15"                    },
   { "tube_vertical.frames",                    "1"                     },
 
-  { "tube_right_up",                           "RocksMore.pcx"         },
-  { "tube_right_up.xpos",                      "1"                     },
-  { "tube_right_up.ypos",                      "7"                     },
+  { "tube_right_up",                           "RocksDC.pcx"           },
+  { "tube_right_up.xpos",                      "9"                     },
+  { "tube_right_up.ypos",                      "15"                    },
   { "tube_right_up.frames",                    "1"                     },
 
-  { "tube_horizontal_up",                      "RocksMore.pcx"         },
-  { "tube_horizontal_up.xpos",                 "2"                     },
-  { "tube_horizontal_up.ypos",                 "7"                     },
+  { "tube_horizontal_up",                      "RocksDC.pcx"           },
+  { "tube_horizontal_up.xpos",                 "10"                    },
+  { "tube_horizontal_up.ypos",                 "15"                    },
   { "tube_horizontal_up.frames",               "1"                     },
 
-  { "tube_left_up",                            "RocksMore.pcx"         },
-  { "tube_left_up.xpos",                       "3"                     },
-  { "tube_left_up.ypos",                       "7"                     },
+  { "tube_left_up",                            "RocksDC.pcx"           },
+  { "tube_left_up.xpos",                       "11"                    },
+  { "tube_left_up.ypos",                       "15"                    },
   { "tube_left_up.frames",                     "1"                     },
 
-  { "trap",                                    "RocksMore.pcx"         },
-  { "trap.xpos",                               "4"                     },
-  { "trap.ypos",                               "0"                     },
+  { "trap",                                    "RocksDC.pcx"           },
+  { "trap.xpos",                               "12"                    },
+  { "trap.ypos",                               "8"                     },
   { "trap.frames",                             "1"                     },
-  { "trap.active",                             "RocksMore.pcx"         },
-  { "trap.active.xpos",                                "4"                     },
-  { "trap.active.ypos",                                "0"                     },
+  { "trap.active",                             "RocksDC.pcx"           },
+  { "trap.active.xpos",                                "12"                    },
+  { "trap.active.ypos",                                "8"                     },
   { "trap.active.frames",                      "4"                     },
   { "trap.active.delay",                       "4"                     },
-  { "trap.active.mode_pingpong2",              "1"                     },
+  { "trap.active.mode_pingpong2",              "true"                  },
 
-  { "dx_supabomb",                             "RocksMore.pcx"         },
-  { "dx_supabomb.xpos",                                "7"                     },
-  { "dx_supabomb.ypos",                                "1"                     },
+  { "dx_supabomb",                             "RocksDC.pcx"           },
+  { "dx_supabomb.xpos",                                "15"                    },
+  { "dx_supabomb.ypos",                                "9"                     },
   { "dx_supabomb.frames",                      "1"                     },
 
   /* images for Rocks'n'Diamonds style elements and actions */
@@ -1560,26 +1593,30 @@ struct ConfigInfo image_config[] =
   { "pacman_right.xpos",                       "8"                     },
   { "pacman_right.ypos",                       "5"                     },
   { "pacman_right.frames",                     "2"                     },
-  { "pacman_right.mode_reverse",               "1"                     },
+  { "pacman_right.mode_reverse",               "true"                  },
   { "pacman_right.delay",                      "4"                     },
+  { "pacman_right.offset",                     "128"                   },
   { "pacman_up",                               "RocksElements.pcx"     },
-  { "pacman_up.xpos",                          "10"                    },
+  { "pacman_up.xpos",                          "9"                     },
   { "pacman_up.ypos",                          "5"                     },
   { "pacman_up.frames",                                "2"                     },
-  { "pacman_up.mode_reverse",                  "1"                     },
+  { "pacman_up.mode_reverse",                  "true"                  },
   { "pacman_up.delay",                         "4"                     },
+  { "pacman_up.offset",                                "128"                   },
   { "pacman_left",                             "RocksElements.pcx"     },
-  { "pacman_left.xpos",                                "12"                    },
+  { "pacman_left.xpos",                                "10"                    },
   { "pacman_left.ypos",                                "5"                     },
   { "pacman_left.frames",                      "2"                     },
-  { "pacman_left.mode_reverse",                        "1"                     },
+  { "pacman_left.mode_reverse",                        "true"                  },
   { "pacman_left.delay",                       "4"                     },
+  { "pacman_left.offset",                      "128"                   },
   { "pacman_down",                             "RocksElements.pcx"     },
-  { "pacman_down.xpos",                                "14"                    },
+  { "pacman_down.xpos",                                "11"                    },
   { "pacman_down.ypos",                                "5"                     },
   { "pacman_down.frames",                      "2"                     },
-  { "pacman_down.mode_reverse",                        "1"                     },
+  { "pacman_down.mode_reverse",                        "true"                  },
   { "pacman_down.delay",                       "4"                     },
+  { "pacman_down.offset",                      "128"                   },
 
   { "lamp",                                    "RocksElements.pcx"     },
   { "lamp.xpos",                               "0"                     },
@@ -1603,26 +1640,44 @@ struct ConfigInfo image_config[] =
   { "emerald_yellow.xpos",                     "10"                    },
   { "emerald_yellow.ypos",                     "8"                     },
   { "emerald_yellow.frames",                   "1"                     },
+  { "emerald_yellow.moving",                   "RocksElements.pcx"     },
+  { "emerald_yellow.moving.xpos",              "10"                    },
+  { "emerald_yellow.moving.ypos",              "8"                     },
+  { "emerald_yellow.moving.frames",            "2"                     },
+  { "emerald_yellow.moving.delay",             "4"                     },
   { "emerald_yellow.falling",                  "RocksElements.pcx"     },
   { "emerald_yellow.falling.xpos",             "10"                    },
   { "emerald_yellow.falling.ypos",             "8"                     },
   { "emerald_yellow.falling.frames",           "2"                     },
+  { "emerald_yellow.falling.delay",            "4"                     },
   { "emerald_red",                             "RocksElements.pcx"     },
   { "emerald_red.xpos",                                "8"                     },
   { "emerald_red.ypos",                                "9"                     },
   { "emerald_red.frames",                      "1"                     },
+  { "emerald_red.moving",                      "RocksElements.pcx"     },
+  { "emerald_red.moving.xpos",                 "8"                     },
+  { "emerald_red.moving.ypos",                 "9"                     },
+  { "emerald_red.moving.frames",               "2"                     },
+  { "emerald_red.moving.delay",                        "4"                     },
   { "emerald_red.falling",                     "RocksElements.pcx"     },
   { "emerald_red.falling.xpos",                        "8"                     },
   { "emerald_red.falling.ypos",                        "9"                     },
   { "emerald_red.falling.frames",              "2"                     },
+  { "emerald_red.falling.delay",               "4"                     },
   { "emerald_purple",                          "RocksElements.pcx"     },
   { "emerald_purple.xpos",                     "10"                    },
   { "emerald_purple.ypos",                     "9"                     },
   { "emerald_purple.frames",                   "1"                     },
+  { "emerald_purple.moving",                   "RocksElements.pcx"     },
+  { "emerald_purple.moving.xpos",              "10"                    },
+  { "emerald_purple.moving.ypos",              "9"                     },
+  { "emerald_purple.moving.frames",            "2"                     },
+  { "emerald_purple.moving.delay",             "4"                     },
   { "emerald_purple.falling",                  "RocksElements.pcx"     },
   { "emerald_purple.falling.xpos",             "10"                    },
   { "emerald_purple.falling.ypos",             "9"                     },
   { "emerald_purple.falling.frames",           "2"                     },
+  { "emerald_purple.falling.delay",            "4"                     },
 
   { "wall_emerald_yellow",                     "RocksElements.pcx"     },
   { "wall_emerald_yellow.xpos",                        "8"                     },
@@ -1663,25 +1718,25 @@ struct ConfigInfo image_config[] =
   { "wall_growing_active_left.ypos",           "10"                    },
   { "wall_growing_active_left.frames",         "3"                     },
   { "wall_growing_active_left.delay",          "6"                     },
-  { "wall_growing_active_left.global_sync",    "0"                     },
+  { "wall_growing_active_left.mode_linear",    "true"                  },
   { "wall_growing_active_right",               "RocksElements.pcx"     },
   { "wall_growing_active_right.xpos",          "5"                     },
   { "wall_growing_active_right.ypos",          "10"                    },
   { "wall_growing_active_right.frames",                "3"                     },
   { "wall_growing_active_right.delay",         "6"                     },
-  { "wall_growing_active_right.global_sync",   "0"                     },
+  { "wall_growing_active_right.mode_linear",   "true"                  },
   { "wall_growing_active_up",                  "RocksHeroes.pcx"       },
   { "wall_growing_active_up.xpos",             "3"                     },
   { "wall_growing_active_up.ypos",             "12"                    },
   { "wall_growing_active_up.frames",           "3"                     },
   { "wall_growing_active_up.delay",            "6"                     },
-  { "wall_growing_active_up.global_sync",      "0"                     },
+  { "wall_growing_active_up.mode_linear",      "true"                  },
   { "wall_growing_active_down",                        "RocksHeroes.pcx"       },
   { "wall_growing_active_down.xpos",           "0"                     },
   { "wall_growing_active_down.ypos",           "12"                    },
   { "wall_growing_active_down.frames",         "3"                     },
   { "wall_growing_active_down.delay",          "6"                     },
-  { "wall_growing_active_down.global_sync",    "0"                     },
+  { "wall_growing_active_down.mode_linear",    "true"                  },
 
   { "black_orb",                               "RocksElements.pcx"     },
   { "black_orb.xpos",                          "13"                    },
@@ -1697,38 +1752,38 @@ struct ConfigInfo image_config[] =
   { "dark_yamyam.xpos",                                "8"                     },
   { "dark_yamyam.ypos",                                "11"                    },
   { "dark_yamyam.frames",                      "4"                     },
-  { "dark_yamyam.mode_pingpong2",              "1"                     },
+  { "dark_yamyam.mode_pingpong2",              "true"                  },
 
   { "dynabomb.active",                         "RocksElements.pcx"     },
   { "dynabomb.active.xpos",                    "12"                    },
   { "dynabomb.active.ypos",                    "11"                    },
   { "dynabomb.active.frames",                  "4"                     },
   { "dynabomb.active.delay",                   "6"                     },
-  { "dynabomb.active.mode_pingpong",           "1"                     },
+  { "dynabomb.active.mode_pingpong",           "true"                  },
   { "dynabomb_player1.active",                 "RocksElements.pcx"     },
   { "dynabomb_player1.active.xpos",            "12"                    },
   { "dynabomb_player1.active.ypos",            "11"                    },
   { "dynabomb_player1.active.frames",          "4"                     },
   { "dynabomb_player1.active.delay",           "6"                     },
-  { "dynabomb_player1.active.mode_pingpong",   "1"                     },
+  { "dynabomb_player1.active.mode_pingpong",   "true"                  },
   { "dynabomb_player2.active",                 "RocksElements.pcx"     },
   { "dynabomb_player2.active.xpos",            "12"                    },
   { "dynabomb_player2.active.ypos",            "11"                    },
   { "dynabomb_player2.active.frames",          "4"                     },
   { "dynabomb_player2.active.delay",           "6"                     },
-  { "dynabomb_player2.active.mode_pingpong",   "1"                     },
+  { "dynabomb_player2.active.mode_pingpong",   "true"                  },
   { "dynabomb_player3.active",                 "RocksElements.pcx"     },
   { "dynabomb_player3.active.xpos",            "12"                    },
   { "dynabomb_player3.active.ypos",            "11"                    },
   { "dynabomb_player3.active.frames",          "4"                     },
   { "dynabomb_player3.active.delay",           "6"                     },
-  { "dynabomb_player3.active.mode_pingpong",   "1"                     },
+  { "dynabomb_player3.active.mode_pingpong",   "true"                  },
   { "dynabomb_player4.active",                 "RocksElements.pcx"     },
   { "dynabomb_player4.active.xpos",            "12"                    },
   { "dynabomb_player4.active.ypos",            "11"                    },
   { "dynabomb_player4.active.frames",          "4"                     },
   { "dynabomb_player4.active.delay",           "6"                     },
-  { "dynabomb_player4.active.mode_pingpong",   "1"                     },
+  { "dynabomb_player4.active.mode_pingpong",   "true"                  },
   { "dynabomb_nr",                             "RocksElements.pcx"     },
   { "dynabomb_nr.xpos",                                "12"                    },
   { "dynabomb_nr.ypos",                                "11"                    },
@@ -1972,6 +2027,7 @@ struct ConfigInfo image_config[] =
   { "satellite.moving.ypos",                   "9"                     },
   { "satellite.moving.frames",                 "8"                     },
   { "satellite.moving.delay",                  "2"                     },
+  { "satellite.moving.global_sync",            "true"                  },
 
   { "flames_left1",                            "RocksHeroes.pcx"       },
   { "flames_left1.xpos",                       "8"                     },
@@ -2042,7 +2098,7 @@ struct ConfigInfo image_config[] =
   { "stoneblock.ypos",                         "1"                     },
   { "stoneblock.frames",                       "1"                     },
 
-  /* images for generic elements and actions */
+  /* images for other elements and actions */
 
   { "player1",                                 "RocksHeroes.pcx"       },
   { "player1.xpos",                            "0"                     },
@@ -2401,22 +2457,22 @@ struct ConfigInfo image_config[] =
   { "explosion.ypos",                          "4"                     },
   { "explosion.frames",                                "8"                     },
   { "explosion.delay",                         "2"                     },
-  { "explosion.global_sync",                   "0"                     },
+  { "explosion.mode_linear",                   "true"                  },
 
   { "twinkle_blue",                            "RocksHeroes.pcx"       },
   { "twinkle_blue.xpos",                       "9"                     },
   { "twinkle_blue.ypos",                       "11"                    },
   { "twinkle_blue.frames",                     "3"                     },
   { "twinkle_blue.delay",                      "2"                     },
-  { "twinkle_blue.mode_pingpong",              "1"                     },
-  { "twinkle_blue.global_sync",                        "0"                     },
+  { "twinkle_blue.mode_pingpong",              "true"                  },
+  { "twinkle_blue.global_sync",                        "false"                 },
   { "twinkle_white",                           "RocksHeroes.pcx"       },
   { "twinkle_white.xpos",                      "13"                    },
   { "twinkle_white.ypos",                      "11"                    },
   { "twinkle_white.frames",                    "3"                     },
   { "twinkle_white.delay",                     "2"                     },
-  { "twinkle_white.mode_pingpong",             "1"                     },
-  { "twinkle_white.global_sync",               "0"                     },
+  { "twinkle_white.mode_pingpong",             "true"                  },
+  { "twinkle_white.global_sync",               "false"                 },
 
   { "steelwall_topleft",                       "RocksElements.pcx"     },
   { "steelwall_topleft.xpos",                  "0"                     },
@@ -2468,38 +2524,38 @@ struct ConfigInfo image_config[] =
   { "invisible_steelwall_vertical.ypos",       "13"                    },
   { "invisible_steelwall_vertical.frames",     "1"                     },
 
-  { "arrow_blue_left",                         "RocksMore.pcx" },
-  { "arrow_blue_left.xpos",                    "0"                     },
-  { "arrow_blue_left.ypos",                    "0"                     },
+  { "arrow_blue_left",                         "RocksDC.pcx"           },
+  { "arrow_blue_left.xpos",                    "8"                     },
+  { "arrow_blue_left.ypos",                    "8"                     },
   { "arrow_blue_left.frames",                  "1"                     },
-  { "arrow_blue_right",                                "RocksMore.pcx" },
-  { "arrow_blue_right.xpos",                   "1"                     },
-  { "arrow_blue_right.ypos",                   "0"                     },
+  { "arrow_blue_right",                                "RocksDC.pcx"           },
+  { "arrow_blue_right.xpos",                   "9"                     },
+  { "arrow_blue_right.ypos",                   "8"                     },
   { "arrow_blue_right.frames",                 "1"                     },
-  { "arrow_blue_up",                           "RocksMore.pcx" },
-  { "arrow_blue_up.xpos",                      "2"                     },
-  { "arrow_blue_up.ypos",                      "0"                     },
+  { "arrow_blue_up",                           "RocksDC.pcx"           },
+  { "arrow_blue_up.xpos",                      "10"                    },
+  { "arrow_blue_up.ypos",                      "8"                     },
   { "arrow_blue_up.frames",                    "1"                     },
-  { "arrow_blue_down",                         "RocksMore.pcx" },
-  { "arrow_blue_down.xpos",                    "3"                     },
-  { "arrow_blue_down.ypos",                    "0"                     },
+  { "arrow_blue_down",                         "RocksDC.pcx"           },
+  { "arrow_blue_down.xpos",                    "11"                    },
+  { "arrow_blue_down.ypos",                    "8"                     },
   { "arrow_blue_down.frames",                  "1"                     },
 
-  { "arrow_red_left",                          "RocksMore.pcx" },
-  { "arrow_red_left.xpos",                     "0"                     },
-  { "arrow_red_left.ypos",                     "1"                     },
+  { "arrow_red_left",                          "RocksDC.pcx"           },
+  { "arrow_red_left.xpos",                     "8"                     },
+  { "arrow_red_left.ypos",                     "9"                     },
   { "arrow_red_left.frames",                   "1"                     },
-  { "arrow_red_right",                         "RocksMore.pcx" },
-  { "arrow_red_right.xpos",                    "1"                     },
-  { "arrow_red_right.ypos",                    "1"                     },
+  { "arrow_red_right",                         "RocksDC.pcx"           },
+  { "arrow_red_right.xpos",                    "9"                     },
+  { "arrow_red_right.ypos",                    "9"                     },
   { "arrow_red_right.frames",                  "1"                     },
-  { "arrow_red_up",                            "RocksMore.pcx" },
-  { "arrow_red_up.xpos",                       "2"                     },
-  { "arrow_red_up.ypos",                       "1"                     },
+  { "arrow_red_up",                            "RocksDC.pcx"           },
+  { "arrow_red_up.xpos",                       "10"                    },
+  { "arrow_red_up.ypos",                       "9"                     },
   { "arrow_red_up.frames",                     "1"                     },
-  { "arrow_red_down",                          "RocksMore.pcx" },
-  { "arrow_red_down.xpos",                     "3"                     },
-  { "arrow_red_down.ypos",                     "1"                     },
+  { "arrow_red_down",                          "RocksDC.pcx"           },
+  { "arrow_red_down.xpos",                     "11"                    },
+  { "arrow_red_down.ypos",                     "9"                     },
   { "arrow_red_down.frames",                   "1"                     },
 
   { "ball_red",                                        "RocksElements.pcx"     },
@@ -2519,43 +2575,73 @@ struct ConfigInfo image_config[] =
   { "ball_gray.ypos",                          "8"                     },
   { "ball_gray.frames",                                "1"                     },
 
-  { "scrollbar_blue",                          "RocksMore.pcx"         },
-  { "scrollbar_blue.xpos",                     "0"                     },
-  { "scrollbar_blue.ypos",                     "2"                     },
+  { "scrollbar_blue",                          "RocksDC.pcx"           },
+  { "scrollbar_blue.xpos",                     "8"                     },
+  { "scrollbar_blue.ypos",                     "10"                    },
   { "scrollbar_blue.frames",                   "1"                     },
-  { "scrollbar_red",                           "RocksMore.pcx"         },
-  { "scrollbar_red.xpos",                      "1"                     },
-  { "scrollbar_red.ypos",                      "2"                     },
+  { "scrollbar_red",                           "RocksDC.pcx"           },
+  { "scrollbar_red.xpos",                      "9"                     },
+  { "scrollbar_red.ypos",                      "10"                    },
   { "scrollbar_red.frames",                    "1"                     },
-  { "scrollbar_green",                         "RocksMore.pcx"         },
-  { "scrollbar_green.xpos",                    "2"                     },
-  { "scrollbar_green.ypos",                    "2"                     },
+  { "scrollbar_green",                         "RocksDC.pcx"           },
+  { "scrollbar_green.xpos",                    "10"                    },
+  { "scrollbar_green.ypos",                    "10"                    },
   { "scrollbar_green.frames",                  "1"                     },
-  { "scrollbar_yellow",                                "RocksMore.pcx"         },
-  { "scrollbar_yellow.xpos",                   "3"                     },
-  { "scrollbar_yellow.ypos",                   "2"                     },
+  { "scrollbar_yellow",                                "RocksDC.pcx"           },
+  { "scrollbar_yellow.xpos",                   "11"                    },
+  { "scrollbar_yellow.ypos",                   "10"                    },
   { "scrollbar_yellow.frames",                 "1"                     },
 
 #include "conf_chr.c"  /* include auto-generated data structure definitions */
-#include "conf_gen.c"  /* include auto-generated data structure definitions */
+#include "conf_cus.c"  /* include auto-generated data structure definitions */
 
   /* images not associated to game elements (used for menu screens etc.) */
   /* keyword to stop parser: "NO_MORE_ELEMENT_IMAGES" <-- do not change! */
 
-  { "menu.back",                               "RocksScreen.pcx"       },
-  { "menu.door",                               "RocksDoor.pcx"         },
-  { "menu.toons",                              "RocksToons.pcx"        },
-  { "menu.font_big",                           "RocksFontBig.pcx"      },
-  { "menu.font_small",                         "RocksFontSmall.pcx"    },
-  { "menu.font_medium",                                "RocksFontMedium.pcx"   },
-  { "menu.font_em",                            "RocksFontEM.pcx"       },
-
-  { "old.pix_elements",                                "RocksElements.pcx"     },
-  { "old.pix_heroes",                          "RocksHeroes.pcx"       },
-  { "old.pix_sp",                              "RocksSP.pcx"           },
-  { "old.pix_dc",                              "RocksDC.pcx"           },
-  { "old.pix_more",                            "RocksMore.pcx"         },
-  { "old.pix_font_em",                         "RocksFontEM.pcx"       },
+  { "global.border",                           "RocksScreen.pcx"       },
+  { "global.door",                             "RocksDoor.pcx"         },
+  { "global.toons",                            "RocksToons.pcx"        },
+
+  { "font.big",                                        "RocksFontBig.pcx"      },
+  { "font.medium",                             "RocksFontMedium.pcx"   },
+  { "font.small",                              "RocksFontSmall.pcx"    },
+  { "font.em",                                 "RocksFontEM.pcx"       },
+
+  { "background.default",                      UNDEFINED_FILENAME      },
+  { "background.door",                         UNDEFINED_FILENAME      },
+  { "background.main",                         UNDEFINED_FILENAME      },
+  { "background.level_series",                 UNDEFINED_FILENAME      },
+  { "background.hall_of_fame",                 UNDEFINED_FILENAME      },
+  { "background.editor_settings_level",                UNDEFINED_FILENAME      },
+  { "background.editor_settings_element",      UNDEFINED_FILENAME      },
+  { "background.info",                         UNDEFINED_FILENAME      },
+  { "background.setup",                                UNDEFINED_FILENAME      },
+
+  { "info.font_em_1",                          "RocksFontEM.pcx"       },
+  { "info.font_em_1.xpos",                     "0"                     },
+  { "info.font_em_1.ypos",                     "0"                     },
+  { "info.font_em_1.frames",                   "16"                    },
+  { "info.font_em_1.delay",                    "10"                    },
+  { "info.font_em_2",                          "RocksFontEM.pcx"       },
+  { "info.font_em_2.xpos",                     "0"                     },
+  { "info.font_em_2.ypos",                     "1"                     },
+  { "info.font_em_2.frames",                   "16"                    },
+  { "info.font_em_2.delay",                    "10"                    },
+  { "info.font_em_3",                          "RocksFontEM.pcx"       },
+  { "info.font_em_3.xpos",                     "0"                     },
+  { "info.font_em_3.ypos",                     "2"                     },
+  { "info.font_em_3.frames",                   "16"                    },
+  { "info.font_em_3.delay",                    "10"                    },
+  { "info.font_em_4",                          "RocksFontEM.pcx"       },
+  { "info.font_em_4.xpos",                     "0"                     },
+  { "info.font_em_4.ypos",                     "3"                     },
+  { "info.font_em_4.frames",                   "16"                    },
+  { "info.font_em_4.delay",                    "10"                    },
+  { "info.font_em_5",                          "RocksFontEM.pcx"       },
+  { "info.font_em_5.xpos",                     "0"                     },
+  { "info.font_em_5.ypos",                     "4"                     },
+  { "info.font_em_5.frames",                   "4"                     },
+  { "info.font_em_5.delay",                    "10"                    },
 
   { NULL,                                      NULL                    }
 };