rnd-20051209-1-src
[rocksndiamonds.git] / src / conf_gfx.c
index 39add9d04b41f36ec1b281d6d23e8bdd775f350f..44bccba5b511600f40fc9e5ab49f7233a796ddf2 100644 (file)
    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[] =
+struct ConfigTypeInfo image_config_suffix[] =
 {
-  { ".x",                              ARG_UNDEFINED,  TYPE_INTEGER },
-  { ".y",                              ARG_UNDEFINED,  TYPE_INTEGER },
-  { ".xpos",                           ARG_UNDEFINED,  TYPE_INTEGER },
-  { ".ypos",                           ARG_UNDEFINED,  TYPE_INTEGER },
-  { ".width",                          ARG_UNDEFINED,  TYPE_INTEGER },
-  { ".height",                         ARG_UNDEFINED,  TYPE_INTEGER },
-  { ".offset",                         ARG_UNDEFINED,  TYPE_INTEGER },
-  { ".vertical",                       "false",        TYPE_BOOLEAN },
-  { ".xoffset",                                ARG_UNDEFINED,  TYPE_INTEGER },
-  { ".yoffset",                                ARG_UNDEFINED,  TYPE_INTEGER },
-  { ".frames",                         ARG_UNDEFINED,  TYPE_INTEGER },
-  { ".frames_per_line",                        ARG_UNDEFINED,  TYPE_INTEGER },
-  { ".start_frame",                    ARG_UNDEFINED,  TYPE_INTEGER },
-  { ".delay",                          "1",            TYPE_INTEGER },
-  { ".anim_mode",                      ARG_UNDEFINED,  TYPE_STRING  },
-  { ".global_sync",                    "false",        TYPE_BOOLEAN },
-  { ".crumbled_like",                  ARG_UNDEFINED,  TYPE_TOKEN   },
-  { ".diggable_like",                  ARG_UNDEFINED,  TYPE_TOKEN   },
-  { ".border_size",                    ARG_UNDEFINED,  TYPE_INTEGER },
-  { ".step_offset",                    "4",            TYPE_INTEGER },
-  { ".step_delay",                     "1",            TYPE_INTEGER },
-  { ".direction",                      ARG_UNDEFINED,  TYPE_STRING  },
-  { ".position",                       ARG_UNDEFINED,  TYPE_STRING  },
-  { ".draw_xoffset",                   "0",            TYPE_INTEGER },
-  { ".draw_yoffset",                   "0",            TYPE_INTEGER },
-  { ".draw_masked",                    "false",        TYPE_BOOLEAN },
-  { ".name",                           ARG_UNDEFINED,  TYPE_STRING  },
-
-  { NULL,                              NULL,           0            }
+  { ".x",                              ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".y",                              ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".xpos",                           ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".ypos",                           ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".width",                          ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".height",                         ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".vertical",                       "false",        TYPE_BOOLEAN    },
+  { ".offset",                         ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".xoffset",                                ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".yoffset",                                ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".2nd_movement_tile",              "false",        TYPE_BOOLEAN    },
+  { ".2nd_vertical",                   ARG_UNDEFINED,  TYPE_BOOLEAN    },
+  { ".2nd_offset",                     ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".2nd_xoffset",                    ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".2nd_yoffset",                    ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".2nd_swap_tiles",                 ARG_UNDEFINED,  TYPE_BOOLEAN    },
+  { ".frames",                         ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".frames_per_line",                        ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".start_frame",                    ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".delay",                          "1",            TYPE_INTEGER    },
+  { ".anim_mode",                      ARG_UNDEFINED,  TYPE_STRING     },
+  { ".global_sync",                    "false",        TYPE_BOOLEAN    },
+  { ".crumbled_like",                  ARG_UNDEFINED,  TYPE_TOKEN      },
+  { ".diggable_like",                  ARG_UNDEFINED,  TYPE_TOKEN      },
+  { ".border_size",                    ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".step_offset",                    "4",            TYPE_INTEGER    },
+  { ".step_delay",                     "1",            TYPE_INTEGER    },
+  { ".direction",                      ARG_UNDEFINED,  TYPE_STRING     },
+  { ".position",                       ARG_UNDEFINED,  TYPE_STRING     },
+  { ".draw_xoffset",                   "0",            TYPE_INTEGER    },
+  { ".draw_yoffset",                   "0",            TYPE_INTEGER    },
+  { ".draw_masked",                    "false",        TYPE_BOOLEAN    },
+  { ".anim_delay_fixed",               ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".anim_delay_random",              ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".post_delay_fixed",               ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".post_delay_random",              ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".name",                           ARG_UNDEFINED,  TYPE_STRING     },
+  { ".scale_up_factor",                        ARG_UNDEFINED,  TYPE_INTEGER    },
+  { ".clone_from",                     ARG_UNDEFINED,  TYPE_TOKEN      },
+
+  { NULL,                              NULL,           0               }
 };
 
 struct ConfigInfo image_config[] =
@@ -166,46 +178,47 @@ struct ConfigInfo image_config[] =
   { "bd_butterfly.frames",                     "2"                     },
   { "bd_butterfly.anim_mode",                  "pingpong"              },
   { "bd_butterfly.delay",                      "4"                     },
+  { "bd_butterfly.global_sync",                        "true"                  },
   { "bd_butterfly.right",                      "RocksElements.pcx"     },
   { "bd_butterfly.right.xpos",                 "4"                     },
   { "bd_butterfly.right.ypos",                 "12"                    },
   { "bd_butterfly.right.frames",               "2"                     },
   { "bd_butterfly.right.anim_mode",            "pingpong"              },
   { "bd_butterfly.right.delay",                        "4"                     },
+  { "bd_butterfly.right.global_sync",          "true"                  },
   { "bd_butterfly.right.EDITOR",               "RocksElements.pcx"     },
   { "bd_butterfly.right.EDITOR.xpos",          "8"                     },
   { "bd_butterfly.right.EDITOR.ypos",          "12"                    },
-  { "bd_butterfly.right.EDITOR.frames",                "1"                     },
   { "bd_butterfly.up",                         "RocksElements.pcx"     },
   { "bd_butterfly.up.xpos",                    "4"                     },
   { "bd_butterfly.up.ypos",                    "12"                    },
   { "bd_butterfly.up.frames",                  "2"                     },
   { "bd_butterfly.up.anim_mode",               "pingpong"              },
   { "bd_butterfly.up.delay",                   "4"                     },
+  { "bd_butterfly.up.global_sync",             "true"                  },
   { "bd_butterfly.up.EDITOR",                  "RocksElements.pcx"     },
   { "bd_butterfly.up.EDITOR.xpos",             "9"                     },
   { "bd_butterfly.up.EDITOR.ypos",             "12"                    },
-  { "bd_butterfly.up.EDITOR.frames",           "1"                     },
   { "bd_butterfly.left",                       "RocksElements.pcx"     },
   { "bd_butterfly.left.xpos",                  "4"                     },
   { "bd_butterfly.left.ypos",                  "12"                    },
   { "bd_butterfly.left.frames",                        "2"                     },
   { "bd_butterfly.left.anim_mode",             "pingpong"              },
   { "bd_butterfly.left.delay",                 "4"                     },
+  { "bd_butterfly.left.global_sync",           "true"                  },
   { "bd_butterfly.left.EDITOR",                        "RocksElements.pcx"     },
   { "bd_butterfly.left.EDITOR.xpos",           "10"                    },
   { "bd_butterfly.left.EDITOR.ypos",           "12"                    },
-  { "bd_butterfly.left.EDITOR.frames",         "1"                     },
   { "bd_butterfly.down",                       "RocksElements.pcx"     },
   { "bd_butterfly.down.xpos",                  "4"                     },
   { "bd_butterfly.down.ypos",                  "12"                    },
   { "bd_butterfly.down.frames",                        "2"                     },
   { "bd_butterfly.down.anim_mode",             "pingpong"              },
   { "bd_butterfly.down.delay",                 "4"                     },
+  { "bd_butterfly.down.global_sync",           "true"                  },
   { "bd_butterfly.down.EDITOR",                        "RocksElements.pcx"     },
   { "bd_butterfly.down.EDITOR.xpos",           "11"                    },
   { "bd_butterfly.down.EDITOR.ypos",           "12"                    },
-  { "bd_butterfly.down.EDITOR.frames",         "1"                     },
 
   { "bd_firefly",                              "RocksElements.pcx"     },
   { "bd_firefly.xpos",                         "6"                     },
@@ -213,46 +226,47 @@ struct ConfigInfo image_config[] =
   { "bd_firefly.frames",                       "2"                     },
   { "bd_firefly.anim_mode",                    "pingpong"              },
   { "bd_firefly.delay",                                "4"                     },
+  { "bd_firefly.global_sync",                  "true"                  },
   { "bd_firefly.right",                                "RocksElements.pcx"     },
   { "bd_firefly.right.xpos",                   "6"                     },
   { "bd_firefly.right.ypos",                   "12"                    },
   { "bd_firefly.right.frames",                 "2"                     },
   { "bd_firefly.right.anim_mode",              "pingpong"              },
   { "bd_firefly.right.delay",                  "4"                     },
+  { "bd_firefly.right.global_sync",            "true"                  },
   { "bd_firefly.right.EDITOR",                 "RocksElements.pcx"     },
   { "bd_firefly.right.EDITOR.xpos",            "12"                    },
   { "bd_firefly.right.EDITOR.ypos",            "12"                    },
-  { "bd_firefly.right.EDITOR.frames",          "1"                     },
   { "bd_firefly.up",                           "RocksElements.pcx"     },
   { "bd_firefly.up.xpos",                      "6"                     },
   { "bd_firefly.up.ypos",                      "12"                    },
   { "bd_firefly.up.frames",                    "2"                     },
   { "bd_firefly.up.anim_mode",                 "pingpong"              },
   { "bd_firefly.up.delay",                     "4"                     },
+  { "bd_firefly.up.global_sync",               "true"                  },
   { "bd_firefly.up.EDITOR",                    "RocksElements.pcx"     },
   { "bd_firefly.up.EDITOR.xpos",               "13"                    },
   { "bd_firefly.up.EDITOR.ypos",               "12"                    },
-  { "bd_firefly.up.EDITOR.frames",             "1"                     },
   { "bd_firefly.left",                         "RocksElements.pcx"     },
   { "bd_firefly.left.xpos",                    "6"                     },
   { "bd_firefly.left.ypos",                    "12"                    },
   { "bd_firefly.left.frames",                  "2"                     },
   { "bd_firefly.left.anim_mode",               "pingpong"              },
   { "bd_firefly.left.delay",                   "4"                     },
+  { "bd_firefly.left.global_sync",             "true"                  },
   { "bd_firefly.left.EDITOR",                  "RocksElements.pcx"     },
   { "bd_firefly.left.EDITOR.xpos",             "14"                    },
   { "bd_firefly.left.EDITOR.ypos",             "12"                    },
-  { "bd_firefly.left.EDITOR.frames",           "1"                     },
   { "bd_firefly.down",                         "RocksElements.pcx"     },
   { "bd_firefly.down.xpos",                    "6"                     },
   { "bd_firefly.down.ypos",                    "12"                    },
   { "bd_firefly.down.frames",                  "2"                     },
   { "bd_firefly.down.anim_mode",               "pingpong"              },
   { "bd_firefly.down.delay",                   "4"                     },
+  { "bd_firefly.down.global_sync",             "true"                  },
   { "bd_firefly.down.EDITOR",                  "RocksElements.pcx"     },
   { "bd_firefly.down.EDITOR.xpos",             "15"                    },
   { "bd_firefly.down.EDITOR.ypos",             "12"                    },
-  { "bd_firefly.down.EDITOR.frames",           "1"                     },
 
   /* images for Supaplex style elements and actions */
 
@@ -486,21 +500,89 @@ struct ConfigInfo image_config[] =
   { "sp_port_any.ypos",                                "2"                     },
   { "sp_port_any.frames",                      "1"                     },
   { "sp_gravity_port_right",                   "RocksSP.pcx"           },
-  { "sp_gravity_port_right.xpos",              "5"                     },
+  { "sp_gravity_port_right.xpos",              "1"                     },
   { "sp_gravity_port_right.ypos",              "1"                     },
   { "sp_gravity_port_right.frames",            "1"                     },
+  { "sp_gravity_port_right.EDITOR",            "RocksSP.pcx"           },
+  { "sp_gravity_port_right.EDITOR.xpos",       "5"                     },
+  { "sp_gravity_port_right.EDITOR.ypos",       "1"                     },
   { "sp_gravity_port_down",                    "RocksSP.pcx"           },
-  { "sp_gravity_port_down.xpos",               "6"                     },
+  { "sp_gravity_port_down.xpos",               "2"                     },
   { "sp_gravity_port_down.ypos",               "1"                     },
   { "sp_gravity_port_down.frames",             "1"                     },
+  { "sp_gravity_port_down.EDITOR",             "RocksSP.pcx"           },
+  { "sp_gravity_port_down.EDITOR.xpos",                "6"                     },
+  { "sp_gravity_port_down.EDITOR.ypos",                "1"                     },
   { "sp_gravity_port_left",                    "RocksSP.pcx"           },
-  { "sp_gravity_port_left.xpos",               "7"                     },
+  { "sp_gravity_port_left.xpos",               "3"                     },
   { "sp_gravity_port_left.ypos",               "1"                     },
   { "sp_gravity_port_left.frames",             "1"                     },
+  { "sp_gravity_port_left.EDITOR",             "RocksSP.pcx"           },
+  { "sp_gravity_port_left.EDITOR.xpos",                "7"                     },
+  { "sp_gravity_port_left.EDITOR.ypos",                "1"                     },
   { "sp_gravity_port_up",                      "RocksSP.pcx"           },
-  { "sp_gravity_port_up.xpos",                 "0"                     },
-  { "sp_gravity_port_up.ypos",                 "2"                     },
+  { "sp_gravity_port_up.xpos",                 "4"                     },
+  { "sp_gravity_port_up.ypos",                 "1"                     },
   { "sp_gravity_port_up.frames",               "1"                     },
+  { "sp_gravity_port_up.EDITOR",               "RocksSP.pcx"           },
+  { "sp_gravity_port_up.EDITOR.xpos",          "0"                     },
+  { "sp_gravity_port_up.EDITOR.ypos",          "2"                     },
+  { "sp_gravity_on_port_right",                        "RocksSP.pcx"           },
+  { "sp_gravity_on_port_right.xpos",           "1"                     },
+  { "sp_gravity_on_port_right.ypos",           "1"                     },
+  { "sp_gravity_on_port_right.frames",         "1"                     },
+  { "sp_gravity_on_port_right.EDITOR",         "RocksSP.pcx"           },
+  { "sp_gravity_on_port_right.EDITOR.xpos",    "5"                     },
+  { "sp_gravity_on_port_right.EDITOR.ypos",    "1"                     },
+  { "sp_gravity_on_port_down",                 "RocksSP.pcx"           },
+  { "sp_gravity_on_port_down.xpos",            "2"                     },
+  { "sp_gravity_on_port_down.ypos",            "1"                     },
+  { "sp_gravity_on_port_down.frames",          "1"                     },
+  { "sp_gravity_on_port_down.EDITOR",          "RocksSP.pcx"           },
+  { "sp_gravity_on_port_down.EDITOR.xpos",     "6"                     },
+  { "sp_gravity_on_port_down.EDITOR.ypos",     "1"                     },
+  { "sp_gravity_on_port_left",                 "RocksSP.pcx"           },
+  { "sp_gravity_on_port_left.xpos",            "3"                     },
+  { "sp_gravity_on_port_left.ypos",            "1"                     },
+  { "sp_gravity_on_port_left.frames",          "1"                     },
+  { "sp_gravity_on_port_left.EDITOR",          "RocksSP.pcx"           },
+  { "sp_gravity_on_port_left.EDITOR.xpos",     "7"                     },
+  { "sp_gravity_on_port_left.EDITOR.ypos",     "1"                     },
+  { "sp_gravity_on_port_up",                   "RocksSP.pcx"           },
+  { "sp_gravity_on_port_up.xpos",              "4"                     },
+  { "sp_gravity_on_port_up.ypos",              "1"                     },
+  { "sp_gravity_on_port_up.frames",            "1"                     },
+  { "sp_gravity_on_port_up.EDITOR",            "RocksSP.pcx"           },
+  { "sp_gravity_on_port_up.EDITOR.xpos",       "0"                     },
+  { "sp_gravity_on_port_up.EDITOR.ypos",       "2"                     },
+  { "sp_gravity_off_port_right",               "RocksSP.pcx"           },
+  { "sp_gravity_off_port_right.xpos",          "1"                     },
+  { "sp_gravity_off_port_right.ypos",          "1"                     },
+  { "sp_gravity_off_port_right.frames",                "1"                     },
+  { "sp_gravity_off_port_right.EDITOR",                "RocksSP.pcx"           },
+  { "sp_gravity_off_port_right.EDITOR.xpos",   "5"                     },
+  { "sp_gravity_off_port_right.EDITOR.ypos",   "1"                     },
+  { "sp_gravity_off_port_down",                        "RocksSP.pcx"           },
+  { "sp_gravity_off_port_down.xpos",           "2"                     },
+  { "sp_gravity_off_port_down.ypos",           "1"                     },
+  { "sp_gravity_off_port_down.frames",         "1"                     },
+  { "sp_gravity_off_port_down.EDITOR",         "RocksSP.pcx"           },
+  { "sp_gravity_off_port_down.EDITOR.xpos",    "6"                     },
+  { "sp_gravity_off_port_down.EDITOR.ypos",    "1"                     },
+  { "sp_gravity_off_port_left",                        "RocksSP.pcx"           },
+  { "sp_gravity_off_port_left.xpos",           "3"                     },
+  { "sp_gravity_off_port_left.ypos",           "1"                     },
+  { "sp_gravity_off_port_left.frames",         "1"                     },
+  { "sp_gravity_off_port_left.EDITOR",         "RocksSP.pcx"           },
+  { "sp_gravity_off_port_left.EDITOR.xpos",    "7"                     },
+  { "sp_gravity_off_port_left.EDITOR.ypos",    "1"                     },
+  { "sp_gravity_off_port_up",                  "RocksSP.pcx"           },
+  { "sp_gravity_off_port_up.xpos",             "4"                     },
+  { "sp_gravity_off_port_up.ypos",             "1"                     },
+  { "sp_gravity_off_port_up.frames",           "1"                     },
+  { "sp_gravity_off_port_up.EDITOR",           "RocksSP.pcx"           },
+  { "sp_gravity_off_port_up.EDITOR.xpos",      "0"                     },
+  { "sp_gravity_off_port_up.EDITOR.ypos",      "2"                     },
 
   { "sp_sniksnak",                             "RocksSP.pcx"           },
   { "sp_sniksnak.xpos",                                "1"                     },
@@ -529,41 +611,66 @@ struct ConfigInfo image_config[] =
   { "sp_sniksnak.turning_from_left.up",                "RocksSP.pcx"           },
   { "sp_sniksnak.turning_from_left.up.xpos",   "12"                    },
   { "sp_sniksnak.turning_from_left.up.ypos",   "6"                     },
-  { "sp_sniksnak.turning_from_left.up.frames", "1"                     },
+  { "sp_sniksnak.turning_from_left.up.frames", "2"                     },
+  { "sp_sniksnak.turning_from_left.up.delay",  "4"                     },
+  { "sp_sniksnak.turning_from_left.up.offset", "1408"                  },
+  { "sp_sniksnak.turning_from_left.up.anim_mode","linear"              },
   { "sp_sniksnak.turning_from_left.down",      "RocksSP.pcx"           },
   { "sp_sniksnak.turning_from_left.down.xpos", "13"                    },
   { "sp_sniksnak.turning_from_left.down.ypos", "6"                     },
-  { "sp_sniksnak.turning_from_left.down.frames","1"                    },
+  { "sp_sniksnak.turning_from_left.down.frames","2"                    },
+  { "sp_sniksnak.turning_from_left.down.delay",        "4"                     },
+  { "sp_sniksnak.turning_from_left.down.offset","1504"                 },
+  { "sp_sniksnak.turning_from_left.down.anim_mode","linear"            },
   { "sp_sniksnak.turning_from_right.up",       "RocksSP.pcx"           },
   { "sp_sniksnak.turning_from_right.up.xpos",  "15"                    },
   { "sp_sniksnak.turning_from_right.up.ypos",  "6"                     },
-  { "sp_sniksnak.turning_from_right.up.frames",        "1"                     },
+  { "sp_sniksnak.turning_from_right.up.frames",        "2"                     },
+  { "sp_sniksnak.turning_from_right.up.delay", "4"                     },
+  { "sp_sniksnak.turning_from_right.up.offset",        "1312"                  },
+  { "sp_sniksnak.turning_from_right.up.anim_mode","linear"             },
   { "sp_sniksnak.turning_from_right.down",     "RocksSP.pcx"           },
   { "sp_sniksnak.turning_from_right.down.xpos",        "14"                    },
   { "sp_sniksnak.turning_from_right.down.ypos",        "6"                     },
-  { "sp_sniksnak.turning_from_right.down.frames","1"                   },
+  { "sp_sniksnak.turning_from_right.down.frames","2"                   },
+  { "sp_sniksnak.turning_from_right.down.delay","4"                    },
+  { "sp_sniksnak.turning_from_right.down.offset","1472"                        },
+  { "sp_sniksnak.turning_from_right.down.anim_mode","linear"           },
   { "sp_sniksnak.turning_from_up.left",                "RocksSP.pcx"           },
   { "sp_sniksnak.turning_from_up.left.xpos",   "12"                    },
   { "sp_sniksnak.turning_from_up.left.ypos",   "6"                     },
-  { "sp_sniksnak.turning_from_up.left.frames", "1"                     },
+  { "sp_sniksnak.turning_from_up.left.frames", "2"                     },
+  { "sp_sniksnak.turning_from_up.left.delay",  "4"                     },
+  { "sp_sniksnak.turning_from_up.left.offset", "896"                   },
+  { "sp_sniksnak.turning_from_up.left.anim_mode","linear"              },
   { "sp_sniksnak.turning_from_up.right",       "RocksSP.pcx"           },
   { "sp_sniksnak.turning_from_up.right.xpos",  "15"                    },
   { "sp_sniksnak.turning_from_up.right.ypos",  "6"                     },
-  { "sp_sniksnak.turning_from_up.right.frames",        "1"                     },
+  { "sp_sniksnak.turning_from_up.right.frames",        "2"                     },
+  { "sp_sniksnak.turning_from_up.right.delay", "4"                     },
+  { "sp_sniksnak.turning_from_up.right.offset",        "928"                   },
+  { "sp_sniksnak.turning_from_up.right.anim_mode","linear"             },
   { "sp_sniksnak.turning_from_down.left",      "RocksSP.pcx"           },
   { "sp_sniksnak.turning_from_down.left.xpos", "13"                    },
   { "sp_sniksnak.turning_from_down.left.ypos", "6"                     },
-  { "sp_sniksnak.turning_from_down.left.frames","1"                    },
+  { "sp_sniksnak.turning_from_down.left.frames","2"                    },
+  { "sp_sniksnak.turning_from_down.left.delay",        "4"                     },
+  { "sp_sniksnak.turning_from_down.left.offset","864"                  },
+  { "sp_sniksnak.turning_from_down.left.anim_mode","linear"            },
   { "sp_sniksnak.turning_from_down.right",     "RocksSP.pcx"           },
   { "sp_sniksnak.turning_from_down.right.xpos",        "14"                    },
   { "sp_sniksnak.turning_from_down.right.ypos",        "6"                     },
-  { "sp_sniksnak.turning_from_down.right.frames","1"                   },
+  { "sp_sniksnak.turning_from_down.right.frames","2"                   },
+  { "sp_sniksnak.turning_from_down.right.delay","4"                    },
+  { "sp_sniksnak.turning_from_down.right.offset","960"                 },
+  { "sp_sniksnak.turning_from_down.right.anim_mode","linear"           },
 
   { "sp_electron",                             "RocksSP.pcx"           },
   { "sp_electron.xpos",                                "8"                     },
   { "sp_electron.ypos",                                "10"                    },
   { "sp_electron.frames",                      "8"                     },
-  { "sp_electron.delay",                       "2"                     },
+  { "sp_electron.delay",                       "4"                     },
+  { "sp_electron.global_sync",                 "true"                  },
   { "sp_electron.EDITOR",                      "RocksSP.pcx"           },
   { "sp_electron.EDITOR.xpos",                 "10"                    },
   { "sp_electron.EDITOR.ypos",                 "11"                    },
@@ -650,6 +757,14 @@ struct ConfigInfo image_config[] =
   { "sokoban_field_full.ypos",                 "7"                     },
   { "sokoban_field_full.frames",               "1"                     },
 
+  { "sokoban_field_player",                    "RocksHeroes.pcx"       },
+  { "sokoban_field_player.xpos",               "0"                     },
+  { "sokoban_field_player.ypos",               "15"                    },
+  { "sokoban_field_player.frames",             "1"                     },
+  { "sokoban_field_player.EDITOR",             "RocksHeroes.pcx"       },
+  { "sokoban_field_player.EDITOR.xpos",                "1"                     },
+  { "sokoban_field_player.EDITOR.ypos",                "15"                    },
+
   /* images for Emerald Mine style elements and actions */
 
   { "empty_space",                             "RocksSP.pcx"           },
@@ -888,6 +1003,54 @@ struct ConfigInfo image_config[] =
   { "bug.moving.down.frames",                  "2"                     },
   { "bug.moving.down.delay",                   "4"                     },
   { "bug.moving.down.offset",                  "128"                   },
+  { "bug.turning_from_right.up",               "RocksMore.pcx"         },
+  { "bug.turning_from_right.up.xpos",          "0"                     },
+  { "bug.turning_from_right.up.ypos",          "6"                     },
+  { "bug.turning_from_right.up.frames",                "4"                     },
+  { "bug.turning_from_right.up.delay",         "2"                     },
+  { "bug.turning_from_right.up.anim_mode",     "linear,reverse"        },
+  { "bug.turning_from_up.left",                        "RocksMore.pcx"         },
+  { "bug.turning_from_up.left.xpos",           "12"                    },
+  { "bug.turning_from_up.left.ypos",           "6"                     },
+  { "bug.turning_from_up.left.frames",         "4"                     },
+  { "bug.turning_from_up.left.delay",          "2"                     },
+  { "bug.turning_from_up.left.anim_mode",      "linear,reverse"        },
+  { "bug.turning_from_left.down",              "RocksMore.pcx"         },
+  { "bug.turning_from_left.down.xpos",         "8"                     },
+  { "bug.turning_from_left.down.ypos",         "6"                     },
+  { "bug.turning_from_left.down.frames",       "4"                     },
+  { "bug.turning_from_left.down.delay",                "2"                     },
+  { "bug.turning_from_left.down.anim_mode",    "linear,reverse"        },
+  { "bug.turning_from_down.right",             "RocksMore.pcx"         },
+  { "bug.turning_from_down.right.xpos",                "4"                     },
+  { "bug.turning_from_down.right.ypos",                "6"                     },
+  { "bug.turning_from_down.right.frames",      "4"                     },
+  { "bug.turning_from_down.right.delay",       "2"                     },
+  { "bug.turning_from_down.right.anim_mode",   "linear,reverse"        },
+  { "bug.turning_from_right.down",             "RocksMore.pcx"         },
+  { "bug.turning_from_right.down.xpos",                "5"                     },
+  { "bug.turning_from_right.down.ypos",                "6"                     },
+  { "bug.turning_from_right.down.frames",      "4"                     },
+  { "bug.turning_from_right.down.delay",       "2"                     },
+  { "bug.turning_from_right.down.anim_mode",   "linear"                },
+  { "bug.turning_from_up.right",               "RocksMore.pcx"         },
+  { "bug.turning_from_up.right.xpos",          "1"                     },
+  { "bug.turning_from_up.right.ypos",          "6"                     },
+  { "bug.turning_from_up.right.frames",                "4"                     },
+  { "bug.turning_from_up.right.delay",         "2"                     },
+  { "bug.turning_from_up.right.anim_mode",     "linear"                },
+  { "bug.turning_from_left.up",                        "RocksMore.pcx"         },
+  { "bug.turning_from_left.up.xpos",           "13"                    },
+  { "bug.turning_from_left.up.ypos",           "6"                     },
+  { "bug.turning_from_left.up.frames",         "4"                     },
+  { "bug.turning_from_left.up.delay",          "2"                     },
+  { "bug.turning_from_left.up.anim_mode",      "linear"                },
+  { "bug.turning_from_down.left",              "RocksMore.pcx"         },
+  { "bug.turning_from_down.left.xpos",         "9"                     },
+  { "bug.turning_from_down.left.ypos",         "6"                     },
+  { "bug.turning_from_down.left.frames",       "4"                     },
+  { "bug.turning_from_down.left.delay",                "2"                     },
+  { "bug.turning_from_down.left.anim_mode",    "linear"                },
 
   { "spaceship",                               "RocksElements.pcx"     },
   { "spaceship.xpos",                          "8"                     },
@@ -935,25 +1098,25 @@ struct ConfigInfo image_config[] =
   { "spaceship.moving.down.delay",             "4"                     },
   { "spaceship.moving.down.offset",            "128"                   },
   { "spaceship.turning_from_right.up",         "RocksMore.pcx"         },
-  { "spaceship.turning_from_right.up.xpos",    "1"                     },
+  { "spaceship.turning_from_right.up.xpos",    "0"                     },
   { "spaceship.turning_from_right.up.ypos",    "5"                     },
   { "spaceship.turning_from_right.up.frames",  "4"                     },
   { "spaceship.turning_from_right.up.delay",   "2"                     },
   { "spaceship.turning_from_right.up.anim_mode","linear,reverse"       },
   { "spaceship.turning_from_up.left",          "RocksMore.pcx"         },
-  { "spaceship.turning_from_up.left.xpos",     "5"                     },
-  { "spaceship.turning_from_up.left.ypos",     "6"                     },
+  { "spaceship.turning_from_up.left.xpos",     "12"                    },
+  { "spaceship.turning_from_up.left.ypos",     "5"                     },
   { "spaceship.turning_from_up.left.frames",   "4"                     },
   { "spaceship.turning_from_up.left.delay",    "2"                     },
   { "spaceship.turning_from_up.left.anim_mode",        "linear,reverse"        },
   { "spaceship.turning_from_left.down",                "RocksMore.pcx"         },
-  { "spaceship.turning_from_left.down.xpos",   "1"                     },
-  { "spaceship.turning_from_left.down.ypos",   "6"                     },
+  { "spaceship.turning_from_left.down.xpos",   "8"                     },
+  { "spaceship.turning_from_left.down.ypos",   "5"                     },
   { "spaceship.turning_from_left.down.frames", "4"                     },
   { "spaceship.turning_from_left.down.delay",  "2"                     },
   { "spaceship.turning_from_left.down.anim_mode","linear,reverse"      },
   { "spaceship.turning_from_down.right",       "RocksMore.pcx"         },
-  { "spaceship.turning_from_down.right.xpos",  "5"                     },
+  { "spaceship.turning_from_down.right.xpos",  "4"                     },
   { "spaceship.turning_from_down.right.ypos",  "5"                     },
   { "spaceship.turning_from_down.right.frames",        "4"                     },
   { "spaceship.turning_from_down.right.delay", "2"                     },
@@ -971,14 +1134,14 @@ struct ConfigInfo image_config[] =
   { "spaceship.turning_from_up.right.delay",   "2"                     },
   { "spaceship.turning_from_up.right.anim_mode","linear"               },
   { "spaceship.turning_from_left.up",          "RocksMore.pcx"         },
-  { "spaceship.turning_from_left.up.xpos",     "5"                     },
-  { "spaceship.turning_from_left.up.ypos",     "6"                     },
+  { "spaceship.turning_from_left.up.xpos",     "13"                    },
+  { "spaceship.turning_from_left.up.ypos",     "5"                     },
   { "spaceship.turning_from_left.up.frames",   "4"                     },
   { "spaceship.turning_from_left.up.delay",    "2"                     },
   { "spaceship.turning_from_left.up.anim_mode",        "linear"                },
   { "spaceship.turning_from_down.left",                "RocksMore.pcx"         },
-  { "spaceship.turning_from_down.left.xpos",   "1"                     },
-  { "spaceship.turning_from_down.left.ypos",   "6"                     },
+  { "spaceship.turning_from_down.left.xpos",   "9"                     },
+  { "spaceship.turning_from_down.left.ypos",   "5"                     },
   { "spaceship.turning_from_down.left.frames", "4"                     },
   { "spaceship.turning_from_down.left.delay",  "2"                     },
   { "spaceship.turning_from_down.left.anim_mode","linear"              },
@@ -1289,6 +1452,10 @@ struct ConfigInfo image_config[] =
   { "balloon_switch_any.xpos",                 "15"                    },
   { "balloon_switch_any.ypos",                 "0"                     },
   { "balloon_switch_any.frames",               "1"                     },
+  { "balloon_switch_none",                     "RocksDC.pcx"           },
+  { "balloon_switch_none.xpos",                        "13"                    },
+  { "balloon_switch_none.ypos",                        "5"                     },
+  { "balloon_switch_none.frames",              "1"                     },
 
   { "spring",                                  "RocksDC.pcx"           },
   { "spring.xpos",                             "8"                     },
@@ -1299,17 +1466,17 @@ struct ConfigInfo image_config[] =
   { "emc_steelwall_1.xpos",                    "14"                    },
   { "emc_steelwall_1.ypos",                    "0"                     },
   { "emc_steelwall_1.frames",                  "1"                     },
-  { "emc_steelwall_2",                         "RocksDC.pcx"           },
-  { "emc_steelwall_2.xpos",                    "14"                    },
-  { "emc_steelwall_2.ypos",                    "0"                     },
+  { "emc_steelwall_2",                         "RocksEMC.pcx"          },
+  { "emc_steelwall_2.xpos",                    "9"                     },
+  { "emc_steelwall_2.ypos",                    "8"                     },
   { "emc_steelwall_2.frames",                  "1"                     },
-  { "emc_steelwall_3",                         "RocksDC.pcx"           },
-  { "emc_steelwall_3.xpos",                    "14"                    },
-  { "emc_steelwall_3.ypos",                    "0"                     },
+  { "emc_steelwall_3",                         "RocksEMC.pcx"          },
+  { "emc_steelwall_3.xpos",                    "9"                     },
+  { "emc_steelwall_3.ypos",                    "9"                     },
   { "emc_steelwall_3.frames",                  "1"                     },
-  { "emc_steelwall_4",                         "RocksDC.pcx"           },
-  { "emc_steelwall_4.xpos",                    "14"                    },
-  { "emc_steelwall_4.ypos",                    "0"                     },
+  { "emc_steelwall_4",                         "RocksEMC.pcx"          },
+  { "emc_steelwall_4.xpos",                    "9"                     },
+  { "emc_steelwall_4.ypos",                    "10"                    },
   { "emc_steelwall_4.frames",                  "1"                     },
 
   { "emc_wall_1",                              "RocksDC.pcx"           },
@@ -1340,9 +1507,9 @@ struct ConfigInfo image_config[] =
   { "emc_wall_7.xpos",                         "15"                    },
   { "emc_wall_7.ypos",                         "2"                     },
   { "emc_wall_7.frames",                       "1"                     },
-  { "emc_wall_8",                              "RocksDC.pcx"           },
-  { "emc_wall_8.xpos",                         "14"                    },
-  { "emc_wall_8.ypos",                         "1"                     },
+  { "emc_wall_8",                              "RocksEMC.pcx"          },
+  { "emc_wall_8.xpos",                         "8"                     },
+  { "emc_wall_8.ypos",                         "7"                     },
   { "emc_wall_8.frames",                       "1"                     },
 
   /* images for Diamond Caves style elements and actions */
@@ -1372,16 +1539,68 @@ struct ConfigInfo image_config[] =
   { "invisible_wall.active.frames",            "1"                     },
 
   { "invisible_sand",                          "RocksSP.pcx"           },
-  { "invisible_sand.xpos",                     "6"                     },
-  { "invisible_sand.ypos",                     "5"                     },
+  { "invisible_sand.xpos",                     "0"                     },
+  { "invisible_sand.ypos",                     "0"                     },
   { "invisible_sand.frames",                   "1"                     },
-  { "invisible_sand.EDITOR",                   "RocksSP.pcx"           },
+  { "invisible_sand.EDITOR",                   "RocksEMC.pcx"          },
   { "invisible_sand.EDITOR.xpos",              "2"                     },
-  { "invisible_sand.EDITOR.ypos",              "5"                     },
-  { "invisible_sand.active",                   "RocksSP.pcx"           },
+  { "invisible_sand.EDITOR.ypos",              "4"                     },
+  { "invisible_sand.active",                   "RocksEMC.pcx"          },
   { "invisible_sand.active.xpos",              "2"                     },
-  { "invisible_sand.active.ypos",              "5"                     },
+  { "invisible_sand.active.ypos",              "4"                     },
   { "invisible_sand.active.frames",            "1"                     },
+  { "invisible_sand.active.CRUMBLED",          "RocksEMC.pcx"          },
+  { "invisible_sand.active.CRUMBLED.xpos",     "3"                     },
+  { "invisible_sand.active.CRUMBLED.ypos",     "4"                     },
+  { "invisible_sand.active.CRUMBLED.frames",   "1"                     },
+  { "invisible_sand.active.digging.left",      "RocksEMC.pcx"          },
+  { "invisible_sand.active.digging.left.xpos", "6"                     },
+  { "invisible_sand.active.digging.left.ypos", "2"                     },
+  { "invisible_sand.active.digging.left.frames","3"                    },
+  { "invisible_sand.active.digging.left.delay",        "2"                     },
+  { "invisible_sand.active.digging.left.anim_mode","linear"            },
+  { "invisible_sand.active.digging.right",     "RocksEMC.pcx"          },
+  { "invisible_sand.active.digging.right.xpos",        "9"                     },
+  { "invisible_sand.active.digging.right.ypos",        "2"                     },
+  { "invisible_sand.active.digging.right.frames","3"                   },
+  { "invisible_sand.active.digging.right.delay","2"                    },
+  { "invisible_sand.active.digging.right.anim_mode","linear"           },
+  { "invisible_sand.active.digging.up",                "RocksEMC.pcx"          },
+  { "invisible_sand.active.digging.up.xpos",   "0"                     },
+  { "invisible_sand.active.digging.up.ypos",   "2"                     },
+  { "invisible_sand.active.digging.up.frames", "3"                     },
+  { "invisible_sand.active.digging.up.delay",  "2"                     },
+  { "invisible_sand.active.digging.up.anim_mode","linear"              },
+  { "invisible_sand.active.digging.down",      "RocksEMC.pcx"          },
+  { "invisible_sand.active.digging.down.xpos", "3"                     },
+  { "invisible_sand.active.digging.down.ypos", "2"                     },
+  { "invisible_sand.active.digging.down.frames","3"                    },
+  { "invisible_sand.active.digging.down.delay",        "2"                     },
+  { "invisible_sand.active.digging.down.anim_mode","linear"            },
+  { "invisible_sand.active.digging.left.CRUMBLED",     "RocksEMC.pcx"  },
+  { "invisible_sand.active.digging.left.CRUMBLED.xpos",        "6"             },
+  { "invisible_sand.active.digging.left.CRUMBLED.ypos",        "3"             },
+  { "invisible_sand.active.digging.left.CRUMBLED.frames","3"           },
+  { "invisible_sand.active.digging.left.CRUMBLED.delay","2"            },
+  { "invisible_sand.active.digging.left.CRUMBLED.anim_mode","linear"   },
+  { "invisible_sand.active.digging.right.CRUMBLED",    "RocksEMC.pcx"  },
+  { "invisible_sand.active.digging.right.CRUMBLED.xpos","9"            },
+  { "invisible_sand.active.digging.right.CRUMBLED.ypos","3"            },
+  { "invisible_sand.active.digging.right.CRUMBLED.frames","3"          },
+  { "invisible_sand.active.digging.right.CRUMBLED.delay","2"           },
+  { "invisible_sand.active.digging.right.CRUMBLED.anim_mode","linear"  },
+  { "invisible_sand.active.digging.up.CRUMBLED",       "RocksEMC.pcx"  },
+  { "invisible_sand.active.digging.up.CRUMBLED.xpos",  "0"             },
+  { "invisible_sand.active.digging.up.CRUMBLED.ypos",  "3"             },
+  { "invisible_sand.active.digging.up.CRUMBLED.frames",        "3"             },
+  { "invisible_sand.active.digging.up.CRUMBLED.delay", "2"             },
+  { "invisible_sand.active.digging.up.CRUMBLED.anim_mode","linear"     },
+  { "invisible_sand.active.digging.down.CRUMBLED",     "RocksEMC.pcx"  },
+  { "invisible_sand.active.digging.down.CRUMBLED.xpos",        "3"             },
+  { "invisible_sand.active.digging.down.CRUMBLED.ypos",        "3"             },
+  { "invisible_sand.active.digging.down.CRUMBLED.frames","3"           },
+  { "invisible_sand.active.digging.down.CRUMBLED.delay","2"            },
+  { "invisible_sand.active.digging.down.CRUMBLED.anim_mode","linear"   },
 
   { "conveyor_belt_1_middle",                  "RocksDC.pcx"           },
   { "conveyor_belt_1_middle.xpos",             "0"                     },
@@ -3102,12 +3321,305 @@ struct ConfigInfo image_config[] =
   { "arrow_down.ypos",                         "8"                     },
   { "arrow_down.frames",                       "1"                     },
 
+  { "unknown",                                 "RocksFontEM.pcx"       },
+  { "unknown.xpos",                            "15"                    },
+  { "unknown.ypos",                            "1"                     },
+  { "unknown.frames",                          "1"                     },
+
+  { "trigger_element",                         "RocksDC.pcx"           },
+  { "trigger_element.xpos",                    "15"                    },
+  { "trigger_element.ypos",                    "14"                    },
+  { "trigger_element.frames",                  "1"                     },
+
+  { "trigger_player",                          "RocksDC.pcx"           },
+  { "trigger_player.xpos",                     "15"                    },
+  { "trigger_player.ypos",                     "13"                    },
+  { "trigger_player.frames",                   "1"                     },
+
+  { "emc_key_5",                               "RocksEMC.pcx"          },
+  { "emc_key_5.xpos",                          "0"                     },
+  { "emc_key_5.ypos",                          "5"                     },
+  { "emc_key_5.frames",                                "1"                     },
+  { "emc_key_6",                               "RocksEMC.pcx"          },
+  { "emc_key_6.xpos",                          "1"                     },
+  { "emc_key_6.ypos",                          "5"                     },
+  { "emc_key_6.frames",                                "1"                     },
+  { "emc_key_7",                               "RocksEMC.pcx"          },
+  { "emc_key_7.xpos",                          "2"                     },
+  { "emc_key_7.ypos",                          "5"                     },
+  { "emc_key_7.frames",                                "1"                     },
+  { "emc_key_8",                               "RocksEMC.pcx"          },
+  { "emc_key_8.xpos",                          "3"                     },
+  { "emc_key_8.ypos",                          "5"                     },
+  { "emc_key_8.frames",                                "1"                     },
+
+  { "emc_gate_5",                              "RocksEMC.pcx"          },
+  { "emc_gate_5.xpos",                         "0"                     },
+  { "emc_gate_5.ypos",                         "6"                     },
+  { "emc_gate_5.frames",                       "1"                     },
+  { "emc_gate_5_gray",                         "RocksEMC.pcx"          },
+  { "emc_gate_5_gray.xpos",                    "4"                     },
+  { "emc_gate_5_gray.ypos",                    "7"                     },
+  { "emc_gate_5_gray.frames",                  "1"                     },
+  { "emc_gate_5_gray.EDITOR",                  "RocksEMC.pcx"          },
+  { "emc_gate_5_gray.EDITOR.xpos",             "0"                     },
+  { "emc_gate_5_gray.EDITOR.ypos",             "7"                     },
+  { "emc_gate_6",                              "RocksEMC.pcx"          },
+  { "emc_gate_6.xpos",                         "1"                     },
+  { "emc_gate_6.ypos",                         "6"                     },
+  { "emc_gate_6.frames",                       "1"                     },
+  { "emc_gate_6_gray",                         "RocksEMC.pcx"          },
+  { "emc_gate_6_gray.xpos",                    "4"                     },
+  { "emc_gate_6_gray.ypos",                    "7"                     },
+  { "emc_gate_6_gray.frames",                  "1"                     },
+  { "emc_gate_6_gray.EDITOR",                  "RocksEMC.pcx"          },
+  { "emc_gate_6_gray.EDITOR.xpos",             "1"                     },
+  { "emc_gate_6_gray.EDITOR.ypos",             "7"                     },
+  { "emc_gate_7",                              "RocksEMC.pcx"          },
+  { "emc_gate_7.xpos",                         "2"                     },
+  { "emc_gate_7.ypos",                         "6"                     },
+  { "emc_gate_7.frames",                       "1"                     },
+  { "emc_gate_7_gray",                         "RocksEMC.pcx"          },
+  { "emc_gate_7_gray.xpos",                    "4"                     },
+  { "emc_gate_7_gray.ypos",                    "7"                     },
+  { "emc_gate_7_gray.frames",                  "1"                     },
+  { "emc_gate_7_gray.EDITOR",                  "RocksEMC.pcx"          },
+  { "emc_gate_7_gray.EDITOR.xpos",             "2"                     },
+  { "emc_gate_7_gray.EDITOR.ypos",             "7"                     },
+  { "emc_gate_8",                              "RocksEMC.pcx"          },
+  { "emc_gate_8.xpos",                         "3"                     },
+  { "emc_gate_8.ypos",                         "6"                     },
+  { "emc_gate_8.frames",                       "1"                     },
+  { "emc_gate_8_gray",                         "RocksEMC.pcx"          },
+  { "emc_gate_8_gray.xpos",                    "4"                     },
+  { "emc_gate_8_gray.ypos",                    "7"                     },
+  { "emc_gate_8_gray.frames",                  "1"                     },
+  { "emc_gate_8_gray.EDITOR",                  "RocksEMC.pcx"          },
+  { "emc_gate_8_gray.EDITOR.xpos",             "3"                     },
+  { "emc_gate_8_gray.EDITOR.ypos",             "7"                     },
+
+  { "emc_android",                             "RocksEMC.pcx"          },
+  { "emc_android.xpos",                                "0"                     },
+  { "emc_android.ypos",                                "8"                     },
+  { "emc_android.frames",                      "8"                     },
+
+  { "emc_grass",                               "RocksEMC.pcx"          },
+  { "emc_grass.xpos",                          "0"                     },
+  { "emc_grass.ypos",                          "4"                     },
+  { "emc_grass.frames",                                "1"                     },
+  { "emc_grass.CRUMBLED",                      "RocksEMC.pcx"          },
+  { "emc_grass.CRUMBLED.xpos",                 "1"                     },
+  { "emc_grass.CRUMBLED.ypos",                 "4"                     },
+  { "emc_grass.CRUMBLED.frames",               "1"                     },
+  { "emc_grass.digging.left",                  "RocksEMC.pcx"          },
+  { "emc_grass.digging.left.xpos",             "6"                     },
+  { "emc_grass.digging.left.ypos",             "0"                     },
+  { "emc_grass.digging.left.frames",           "3"                     },
+  { "emc_grass.digging.left.delay",            "2"                     },
+  { "emc_grass.digging.left.anim_mode",                "linear"                },
+  { "emc_grass.digging.right",                 "RocksEMC.pcx"          },
+  { "emc_grass.digging.right.xpos",            "9"                     },
+  { "emc_grass.digging.right.ypos",            "0"                     },
+  { "emc_grass.digging.right.frames",          "3"                     },
+  { "emc_grass.digging.right.delay",           "2"                     },
+  { "emc_grass.digging.right.anim_mode",       "linear"                },
+  { "emc_grass.digging.up",                    "RocksEMC.pcx"          },
+  { "emc_grass.digging.up.xpos",               "0"                     },
+  { "emc_grass.digging.up.ypos",               "0"                     },
+  { "emc_grass.digging.up.frames",             "3"                     },
+  { "emc_grass.digging.up.delay",              "2"                     },
+  { "emc_grass.digging.up.anim_mode",          "linear"                },
+  { "emc_grass.digging.down",                  "RocksEMC.pcx"          },
+  { "emc_grass.digging.down.xpos",             "3"                     },
+  { "emc_grass.digging.down.ypos",             "0"                     },
+  { "emc_grass.digging.down.frames",           "3"                     },
+  { "emc_grass.digging.down.delay",            "2"                     },
+  { "emc_grass.digging.down.anim_mode",                "linear"                },
+  { "emc_grass.digging.left.CRUMBLED",         "RocksEMC.pcx"          },
+  { "emc_grass.digging.left.CRUMBLED.xpos",    "6"                     },
+  { "emc_grass.digging.left.CRUMBLED.ypos",    "1"                     },
+  { "emc_grass.digging.left.CRUMBLED.frames",  "3"                     },
+  { "emc_grass.digging.left.CRUMBLED.delay",   "2"                     },
+  { "emc_grass.digging.left.CRUMBLED.anim_mode","linear"               },
+  { "emc_grass.digging.right.CRUMBLED",                "RocksEMC.pcx"          },
+  { "emc_grass.digging.right.CRUMBLED.xpos",   "9"                     },
+  { "emc_grass.digging.right.CRUMBLED.ypos",   "1"                     },
+  { "emc_grass.digging.right.CRUMBLED.frames", "3"                     },
+  { "emc_grass.digging.right.CRUMBLED.delay",  "2"                     },
+  { "emc_grass.digging.right.CRUMBLED.anim_mode","linear"              },
+  { "emc_grass.digging.up.CRUMBLED",           "RocksEMC.pcx"          },
+  { "emc_grass.digging.up.CRUMBLED.xpos",      "0"                     },
+  { "emc_grass.digging.up.CRUMBLED.ypos",      "1"                     },
+  { "emc_grass.digging.up.CRUMBLED.frames",    "3"                     },
+  { "emc_grass.digging.up.CRUMBLED.delay",     "2"                     },
+  { "emc_grass.digging.up.CRUMBLED.anim_mode", "linear"                },
+  { "emc_grass.digging.down.CRUMBLED",         "RocksEMC.pcx"          },
+  { "emc_grass.digging.down.CRUMBLED.xpos",    "3"                     },
+  { "emc_grass.digging.down.CRUMBLED.ypos",    "1"                     },
+  { "emc_grass.digging.down.CRUMBLED.frames",  "3"                     },
+  { "emc_grass.digging.down.CRUMBLED.delay",   "2"                     },
+  { "emc_grass.digging.down.CRUMBLED.anim_mode","linear"               },
+
+  { "emc_magic_ball",                          "RocksEMC.pcx"          },
+  { "emc_magic_ball.xpos",                     "0"                     },
+  { "emc_magic_ball.ypos",                     "9"                     },
+  { "emc_magic_ball.frames",                   "1"                     },
+
+  { "emc_magic_ball.active",                   "RocksEMC.pcx"          },
+  { "emc_magic_ball.active.xpos",              "0"                     },
+  { "emc_magic_ball.active.ypos",              "9"                     },
+  { "emc_magic_ball.active.frames",            "16"                    },
+  { "emc_magic_ball.active.frames_per_line",   "8"                     },
+
+  { "emc_magic_ball_switch",                   "RocksEMC.pcx"          },
+  { "emc_magic_ball_switch.xpos",              "8"                     },
+  { "emc_magic_ball_switch.ypos",              "10"                    },
+  { "emc_magic_ball_switch.frames",            "1"                     },
+
+  { "emc_magic_ball_switch.active",            "RocksEMC.pcx"          },
+  { "emc_magic_ball_switch.active.xpos",       "8"                     },
+  { "emc_magic_ball_switch.active.ypos",       "9"                     },
+  { "emc_magic_ball_switch.active.frames",     "1"                     },
+
+  { "emc_spring_bumper",                       "RocksEMC.pcx"          },
+  { "emc_spring_bumper.xpos",                  "8"                     },
+  { "emc_spring_bumper.ypos",                  "4"                     },
+  { "emc_spring_bumper.frames",                        "1"                     },
+
+  { "emc_spring_bumper.active",                        "RocksEMC.pcx"          },
+  { "emc_spring_bumper.active.xpos",           "8"                     },
+  { "emc_spring_bumper.active.ypos",           "4"                     },
+  { "emc_spring_bumper.active.frames",         "4"                     },
+  { "emc_spring_bumper.active.anim_mode",      "pingpong2"             },
+
+  { "emc_plant",                               "RocksEMC.pcx"          },
+  { "emc_plant.xpos",                          "4"                     },
+  { "emc_plant.ypos",                          "4"                     },
+  { "emc_plant.frames",                                "1"                     },
+  { "emc_plant.CRUMBLED",                      "RocksEMC.pcx"          },
+  { "emc_plant.CRUMBLED.xpos",                 "5"                     },
+  { "emc_plant.CRUMBLED.ypos",                 "4"                     },
+  { "emc_plant.CRUMBLED.frames",               "1"                     },
+
+  { "emc_lenses",                              "RocksEMC.pcx"          },
+  { "emc_lenses.xpos",                         "6"                     },
+  { "emc_lenses.ypos",                         "4"                     },
+  { "emc_lenses.frames",                       "1"                     },
+
+  { "emc_magnifier",                           "RocksEMC.pcx"          },
+  { "emc_magnifier.xpos",                      "7"                     },
+  { "emc_magnifier.ypos",                      "4"                     },
+  { "emc_magnifier.frames",                    "1"                     },
+
+  { "emc_wall_9",                              "RocksEMC.pcx"          },
+  { "emc_wall_9.xpos",                         "10"                    },
+  { "emc_wall_9.ypos",                         "5"                     },
+  { "emc_wall_9.frames",                       "1"                     },
+  { "emc_wall_10",                             "RocksEMC.pcx"          },
+  { "emc_wall_10.xpos",                                "10"                    },
+  { "emc_wall_10.ypos",                                "6"                     },
+  { "emc_wall_10.frames",                      "1"                     },
+  { "emc_wall_11",                             "RocksEMC.pcx"          },
+  { "emc_wall_11.xpos",                                "11"                    },
+  { "emc_wall_11.ypos",                                "5"                     },
+  { "emc_wall_11.frames",                      "1"                     },
+  { "emc_wall_12",                             "RocksEMC.pcx"          },
+  { "emc_wall_12.xpos",                                "11"                    },
+  { "emc_wall_12.ypos",                                "6"                     },
+  { "emc_wall_12.frames",                      "1"                     },
+  { "emc_wall_13",                             "RocksEMC.pcx"          },
+  { "emc_wall_13.xpos",                                "10"                    },
+  { "emc_wall_13.ypos",                                "7"                     },
+  { "emc_wall_13.frames",                      "1"                     },
+  { "emc_wall_14",                             "RocksEMC.pcx"          },
+  { "emc_wall_14.xpos",                                "10"                    },
+  { "emc_wall_14.ypos",                                "8"                     },
+  { "emc_wall_14.frames",                      "1"                     },
+  { "emc_wall_15",                             "RocksEMC.pcx"          },
+  { "emc_wall_15.xpos",                                "10"                    },
+  { "emc_wall_15.ypos",                                "9"                     },
+  { "emc_wall_15.frames",                      "1"                     },
+  { "emc_wall_16",                             "RocksEMC.pcx"          },
+  { "emc_wall_16.xpos",                                "10"                    },
+  { "emc_wall_16.ypos",                                "10"                    },
+  { "emc_wall_16.frames",                      "1"                     },
+
+  { "emc_wall_slippery_1",                     "RocksEMC.pcx"          },
+  { "emc_wall_slippery_1.xpos",                        "11"                    },
+  { "emc_wall_slippery_1.ypos",                        "7"                     },
+  { "emc_wall_slippery_1.frames",              "1"                     },
+  { "emc_wall_slippery_2",                     "RocksEMC.pcx"          },
+  { "emc_wall_slippery_2.xpos",                        "11"                    },
+  { "emc_wall_slippery_2.ypos",                        "8"                     },
+  { "emc_wall_slippery_2.frames",              "1"                     },
+  { "emc_wall_slippery_3",                     "RocksEMC.pcx"          },
+  { "emc_wall_slippery_3.xpos",                        "11"                    },
+  { "emc_wall_slippery_3.ypos",                        "9"                     },
+  { "emc_wall_slippery_3.frames",              "1"                     },
+  { "emc_wall_slippery_4",                     "RocksEMC.pcx"          },
+  { "emc_wall_slippery_4.xpos",                        "11"                    },
+  { "emc_wall_slippery_4.ypos",                        "10"                    },
+  { "emc_wall_slippery_4.frames",              "1"                     },
+
+  { "emc_fake_grass",                          "RocksEMC.pcx"          },
+  { "emc_fake_grass.xpos",                     "0"                     },
+  { "emc_fake_grass.ypos",                     "4"                     },
+  { "emc_fake_grass.frames",                   "1"                     },
+  { "emc_fake_grass.CRUMBLED",                 "RocksEMC.pcx"          },
+  { "emc_fake_grass.CRUMBLED.xpos",            "1"                     },
+  { "emc_fake_grass.CRUMBLED.ypos",            "4"                     },
+  { "emc_fake_grass.CRUMBLED.frames",          "1"                     },
+  { "emc_fake_grass.active",                   "RocksEMC.pcx"          },
+  { "emc_fake_grass.active.xpos",              "2"                     },
+  { "emc_fake_grass.active.ypos",              "4"                     },
+  { "emc_fake_grass.active.frames",            "1"                     },
+  { "emc_fake_grass.active.CRUMBLED",          "RocksEMC.pcx"          },
+  { "emc_fake_grass.active.CRUMBLED.xpos",     "3"                     },
+  { "emc_fake_grass.active.CRUMBLED.ypos",     "4"                     },
+  { "emc_fake_grass.active.CRUMBLED.frames",   "1"                     },
+
+  { "emc_fake_acid",                           "RocksElements.pcx"     },
+  { "emc_fake_acid.xpos",                      "12"                    },
+  { "emc_fake_acid.ypos",                      "7"                     },
+  { "emc_fake_acid.frames",                    "4"                     },
+  { "emc_fake_acid.delay",                     "10"                    },
+  { "emc_fake_acid.global_sync",               "true"                  },
+
+  { "emc_dripper",                             "RocksSP.pcx"           },
+  { "emc_dripper.xpos",                                "0"                     },
+  { "emc_dripper.ypos",                                "0"                     },
+  { "emc_dripper.frames",                      "1"                     },
+  { "emc_dripper.EDITOR",                      "RocksEMC.pcx"          },
+  { "emc_dripper.EDITOR.xpos",                 "8"                     },
+  { "emc_dripper.EDITOR.ypos",                 "8"                     },
+  { "emc_dripper.active",                      "RocksEMC.pcx"          },
+  { "emc_dripper.active.xpos",                 "8"                     },
+  { "emc_dripper.active.ypos",                 "8"                     },
+  { "emc_dripper.active.frames",               "1"                     },
+
 #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 */
 
   /* images not associated to game elements (used for menu screens etc.) */
   /* keyword to stop parser: "NO_MORE_ELEMENT_IMAGES" <-- do not change! */
 
+#if 1
+  /* !!! TEMPORARILY STORED HERE -- PROBABLY TO BE CHANGED !!! */
+
+  /* (for testing, change filename back to "emc_object dot pcx") */
+  { "emc_object",                              "RocksEMC.pcx"          },
+#if 0
+  { "emc_object.scale_up_factor",              "2"                     },
+#endif
+
+  /* (for testing, change filename back to "emc_sprite dot pcx") */
+  { "emc_sprite",                              "RocksEMC.pcx"          },
+#if 0
+  { "emc_sprite.scale_up_factor",              "2"                     },
+#endif
+#endif
+
   { "toon_1",                                  "RocksToons.pcx"        },
   { "toon_1.x",                                        "2"                     },
   { "toon_1.y",                                        "72"                    },
@@ -3182,13 +3694,13 @@ struct ConfigInfo image_config[] =
   { "toon_6.direction",                                "left"                  },
   { "toon_6.position",                         "upper"                 },
 
-  { "toon_7",                                  "RocksHeroes.pcx"       },
+  { "toon_7",                                  "RocksMore.pcx"         },
   { "toon_7.xpos",                             "0"                     },
-  { "toon_7.ypos",                             "1"                     },
-  { "toon_7.frames",                           "4"                     },
-  { "toon_7.delay",                            "4"                     },
-  { "toon_7.direction",                                "left"                  },
-  { "toon_7.position",                         "bottom"                },
+  { "toon_7.ypos",                             "6"                     },
+  { "toon_7.frames",                           "16"                    },
+  { "toon_7.delay",                            "2"                     },
+  { "toon_7.direction",                                "down"                  },
+  { "toon_7.position",                         "any"                   },
 
   { "toon_8",                                  "RocksHeroes.pcx"       },
   { "toon_8.xpos",                             "4"                     },
@@ -3320,35 +3832,57 @@ struct ConfigInfo image_config[] =
   { "menu.button_left.xpos",                   "8"                     },
   { "menu.button_left.ypos",                   "8"                     },
   { "menu.button_left.frames",                 "1"                     },
-  { "menu.button_right",                       "RocksDC.pcx"           },
-  { "menu.button_right.xpos",                  "9"                     },
-  { "menu.button_right.ypos",                  "8"                     },
-  { "menu.button_right.frames",                        "1"                     },
-  { "menu.button_up",                          "RocksDC.pcx"           },
-  { "menu.button_up.xpos",                     "10"                    },
-  { "menu.button_up.ypos",                     "8"                     },
-  { "menu.button_up.frames",                   "1"                     },
-  { "menu.button_down",                                "RocksDC.pcx"           },
-  { "menu.button_down.xpos",                   "11"                    },
-  { "menu.button_down.ypos",                   "8"                     },
-  { "menu.button_down.frames",                 "1"                     },
   { "menu.button_left.active",                 "RocksDC.pcx"           },
   { "menu.button_left.active.xpos",            "8"                     },
   { "menu.button_left.active.ypos",            "9"                     },
   { "menu.button_left.active.frames",          "1"                     },
+  { "menu.button_right",                       "RocksDC.pcx"           },
+  { "menu.button_right.xpos",                  "9"                     },
+  { "menu.button_right.ypos",                  "8"                     },
+  { "menu.button_right.frames",                        "1"                     },
   { "menu.button_right.active",                        "RocksDC.pcx"           },
   { "menu.button_right.active.xpos",           "9"                     },
   { "menu.button_right.active.ypos",           "9"                     },
   { "menu.button_right.active.frames",         "1"                     },
+  { "menu.button_up",                          "RocksDC.pcx"           },
+  { "menu.button_up.xpos",                     "10"                    },
+  { "menu.button_up.ypos",                     "8"                     },
+  { "menu.button_up.frames",                   "1"                     },
   { "menu.button_up.active",                   "RocksDC.pcx"           },
   { "menu.button_up.active.xpos",              "10"                    },
   { "menu.button_up.active.ypos",              "9"                     },
   { "menu.button_up.active.frames",            "1"                     },
+  { "menu.button_down",                                "RocksDC.pcx"           },
+  { "menu.button_down.xpos",                   "11"                    },
+  { "menu.button_down.ypos",                   "8"                     },
+  { "menu.button_down.frames",                 "1"                     },
   { "menu.button_down.active",                 "RocksDC.pcx"           },
   { "menu.button_down.active.xpos",            "11"                    },
   { "menu.button_down.active.ypos",            "9"                     },
   { "menu.button_down.active.frames",          "1"                     },
 
+  { "menu.button_enter_menu2",                 "RocksDC.pcx"           },
+  { "menu.button_enter_menu2.xpos",            "9"                     },
+  { "menu.button_enter_menu2.ypos",            "8"                     },
+  { "menu.button_enter_menu2.frames",          "1"                     },
+  { "menu.button_enter_menu2.active",          "RocksDC.pcx"           },
+  { "menu.button_enter_menu2.active.xpos",     "9"                     },
+  { "menu.button_enter_menu2.active.ypos",     "9"                     },
+  { "menu.button_enter_menu2.active.frames",   "1"                     },
+  { "menu.button_leave_menu",                  "RocksDC.pcx"           },
+  { "menu.button_leave_menu.xpos",             "8"                     },
+  { "menu.button_leave_menu.ypos",             "8"                     },
+  { "menu.button_leave_menu.frames",           "1"                     },
+  { "menu.button_leave_menu.active",           "RocksDC.pcx"           },
+  { "menu.button_leave_menu.active.xpos",      "8"                     },
+  { "menu.button_leave_menu.active.ypos",      "9"                     },
+  { "menu.button_leave_menu.active.frames",    "1"                     },
+
+  { "menu.button_enter_menu",                  UNDEFINED_FILENAME      },
+  { "menu.button_enter_menu.clone_from",       "menu.button_right"     },
+  { "menu.button_enter_menu.active",           UNDEFINED_FILENAME      },
+  { "menu.button_enter_menu.active.clone_from",        "menu.button_right.active"},
+
   { "menu.scrollbar",                          "RocksDC.pcx"           },
   { "menu.scrollbar.xpos",                     "8"                     },
   { "menu.scrollbar.ypos",                     "10"                    },
@@ -3649,6 +4183,11 @@ struct ConfigInfo image_config[] =
   { "background.SCORES",                       UNDEFINED_FILENAME      },
   { "background.EDITOR",                       UNDEFINED_FILENAME      },
   { "background.INFO",                         UNDEFINED_FILENAME      },
+  { "background.INFO[ELEMENTS]",               UNDEFINED_FILENAME      },
+  { "background.INFO[MUSIC]",                  UNDEFINED_FILENAME      },
+  { "background.INFO[CREDITS]",                        UNDEFINED_FILENAME      },
+  { "background.INFO[PROGRAM]",                        UNDEFINED_FILENAME      },
+  { "background.INFO[LEVELSET]",               UNDEFINED_FILENAME      },
   { "background.SETUP",                                UNDEFINED_FILENAME      },
   { "background.DOOR",                         UNDEFINED_FILENAME      },
 
@@ -3686,5 +4225,10 @@ struct ConfigInfo image_config[] =
   { "door_2.step_delay",                       "10"                    },
   { "door_2.anim_mode",                                "default"               },
 
+  { "[player].boring_delay_fixed",             "-1"                    },
+  { "[player].boring_delay_random",            "-1"                    },
+  { "[player].sleeping_delay_fixed",           "-1"                    },
+  { "[player].sleeping_delay_random",          "-1"                    },
+
   { NULL,                                      NULL                    }
 };