rnd-20020914-1-src
[rocksndiamonds.git] / src / main.c
index dac98c0f266f06eb8807be35f0c8189a80e617e7..1a9cf362f44b760e83ccfa838c6031e20b7e31fe 100644 (file)
@@ -1,72 +1,37 @@
 /***********************************************************
-*  Rocks'n'Diamonds -- McDuffin Strikes Back!              *
+* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
 *----------------------------------------------------------*
-*  (c) 1995-98 Artsoft Entertainment                       *
-*              Holger Schemel                              *
-*              Oststrasse 11a                              *
-*              33604 Bielefeld                             *
-*              phone: ++49 +521 290471                     *
-*              email: aeglos@valinor.owl.de                *
+* (c) 1995-2002 Artsoft Entertainment                      *
+*               Holger Schemel                             *
+*               Detmolder Strasse 189                      *
+*               33604 Bielefeld                            *
+*               Germany                                    *
+*               e-mail: info@artsoft.org                   *
 *----------------------------------------------------------*
-*  main.c                                                  *
+* main.c                                                   *
 ***********************************************************/
 
+#include "libgame/libgame.h"
+
 #include "main.h"
 #include "init.h"
 #include "game.h"
 #include "events.h"
-#include "sound.h"
-#include "joystick.h"
-#include "misc.h"
-
-#ifdef MSDOS
-#include <fcntl.h>
-#endif
-
-Display        *display;
-Visual        *visual;
-int            screen;
-Window         window;
-GC             gc, clip_gc[NUM_PIXMAPS], tile_clip_gc;
-Pixmap         pix[NUM_PIXMAPS];
-Pixmap         clipmask[NUM_PIXMAPS], tile_clipmask[NUM_TILES];
-
-#ifdef USE_XPM_LIBRARY
-XpmAttributes  xpm_att[NUM_PICTURES];
-#endif
 
-Drawable        drawto, drawto_field, backbuffer, fieldbuffer;
-Colormap       cmap;
-
-int            sound_pipe[2];
-int            sound_device;
-char          *sound_device_name = SOUND_DEVICE;
-int            joystick_device = 0;
-char          *joystick_device_name[MAX_PLAYERS] =
-{
-  DEV_JOYSTICK_0,
-  DEV_JOYSTICK_1,
-  DEV_JOYSTICK_2,
-  DEV_JOYSTICK_3
-};
-
-char          *program_name = NULL;
+GC             tile_clip_gc;
+Bitmap        *pix[NUM_BITMAPS];
+Pixmap         tile_clipmask[NUM_TILES];
+DrawBuffer     *fieldbuffer;
+DrawBuffer     *drawto_field;
 
 int            game_status = MAINMENU;
 boolean                level_editor_test_game = FALSE;
 boolean                network_playing = FALSE;
-int            button_status = MB_NOT_PRESSED;
-boolean                motion_status = FALSE;
+
 int            key_joystick_mapping = 0;
-int            global_joystick_status = JOYSTICK_STATUS;
-int            joystick_status = JOYSTICK_STATUS;
-int            sound_status = SOUND_STATUS;
-boolean                sound_loops_allowed = FALSE;
 
 boolean                redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE];
 int            redraw_x1 = 0, redraw_y1 = 0;
-int            redraw_mask;
-int            redraw_tiles;
 
 short          Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short          Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
@@ -81,10 +46,10 @@ boolean             Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short          JustStopped[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short          AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short          AmoebaCnt[MAX_NUM_AMOEBA], AmoebaCnt2[MAX_NUM_AMOEBA];
+short          ExplodeField[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 unsigned long  Elementeigenschaften1[MAX_ELEMENTS];
 unsigned long  Elementeigenschaften2[MAX_ELEMENTS];
 
-int            level_nr, leveldir_nr, num_leveldirs;
 int            lev_fieldx,lev_fieldy, scroll_x,scroll_y;
 
 int            FX = SX, FY = SY, ScrollStepSize;
@@ -98,452 +63,2719 @@ int              SBX_Left, SBX_Right;
 int            SBY_Upper, SBY_Lower;
 int            ZX,ZY, ExitX,ExitY;
 int            AllPlayersGone;
-int            FrameCounter, TimeFrames, TimePlayed, TimeLeft;
+
+int            TimeFrames, TimePlayed, TimeLeft;
 
 boolean                network_player_action_received = FALSE;
 
-struct LevelDirInfo    leveldir[MAX_LEVDIR_ENTRIES];
 struct LevelInfo       level;
 struct PlayerInfo      stored_player[MAX_PLAYERS], *local_player = NULL;
 struct HiScore         highscore[MAX_SCORE_ENTRIES];
-struct SoundInfo       Sound[NUM_SOUNDS];
 struct TapeInfo                tape;
-struct OptionInfo      options;
 struct SetupInfo       setup;
-struct SetupFileList   *setup_list = NULL;
-struct SetupFileList   *level_setup_list = NULL;
 struct GameInfo                game;
 struct GlobalInfo      global;
 
-/* data needed for playing sounds */
+/* filenames of sound effects */
 char *sound_name[NUM_SOUNDS] =
 {
-  "alchemy",
-  "amoebe",
-  "antigrav",
-  "autsch",
-  "blurb",
-  "bong",
-  "buing",
-  "chase",
-  "czardasz",
-  "deng",
-  "fuel",
-  "gong",
-  "halloffame",
-  "holz",
-  "hui",
-  "kabumm",
-  "kink",
-  "klapper",
-  "kling",
-  "klopf",
-  "klumpf",
-  "knack",
-  "knurk",
-  "krach",
-  "lachen",
-  "laser",
-  "miep",
-  "network",
-  "njam",
-  "oeffnen",
-  "pling",
-  "pong",
-  "pusch",
-  "quiek",
-  "quirk",
-  "rhythmloop",
-  "roaaar",
-  "roehr",
-  "rumms",
-  "schlopp",
-  "schlurf",
-  "schrff",
-  "schwirr",
-  "sirr",
-  "slurp",
-  "sproing",
-  "twilight",
-  "tyger",
-  "voyager",
-  "warnton",
-  "whoosh",
-  "zisch",
-  "base",
-  "infotron",
-  "zonkdown",
-  "zonkpush",
-  "bug",
-  "boom",
-  "booom",
-  "exit",
-  "empty",
-  "gate"
+  "amoebe.wav",
+  "antigrav.wav",
+  "autsch.wav",
+  "blurb.wav",
+  "bong.wav",
+  "buing.wav",
+  "deng.wav",
+  "fuel.wav",
+  "gong.wav",
+  "halloffame.wav",
+  "holz.wav",
+  "hui.wav",
+  "kabumm.wav",
+  "kink.wav",
+  "klapper.wav",
+  "kling.wav",
+  "klopf.wav",
+  "klumpf.wav",
+  "knack.wav",
+  "knurk.wav",
+  "krach.wav",
+  "lachen.wav",
+  "laser.wav",
+  "miep.wav",
+  "njam.wav",
+  "oeffnen.wav",
+  "pling.wav",
+  "pong.wav",
+  "pusch.wav",
+  "quiek.wav",
+  "quirk.wav",
+  "rhythmloop.wav",
+  "roaaar.wav",
+  "roehr.wav",
+  "rumms.wav",
+  "schlopp.wav",
+  "schlurf.wav",
+  "schrff.wav",
+  "schwirr.wav",
+  "sirr.wav",
+  "slurp.wav",
+  "sproing.wav",
+  "warnton.wav",
+  "whoosh.wav",
+  "zisch.wav",
+  "base.wav",
+  "infotron.wav",
+  "zonkdown.wav",
+  "zonkpush.wav",
+  "bug.wav",
+  "boom.wav",
+  "booom.wav",
+  "exit.wav",
+  "empty.wav",
+  "gate.wav"
 };
 
-/* background music */
-int background_loop[] =
+struct ConfigInfo image_config_suffix[] =
 {
-  SND_ALCHEMY,
-  SND_CHASE,
-  SND_NETWORK,
-  SND_CZARDASZ,
-  SND_TYGER,
-  SND_VOYAGER,
-  SND_TWILIGHT
+  { ".xpos",                           "0"                     },
+  { ".ypos",                           "0"                     },
+  { ".frames",                         "1"                     },
+  { ".delay",                          "1"                     },
+  { ".pingpong",                       "0"                     },
+  { ".pingpong2",                      "0"                     },
+  { ".reverse",                                "0"                     },
+  { ".vertical",                       "0"                     },
+
+  { NULL,                              NULL                    }
+};
+
+struct ConfigInfo sound_config_suffix[] =
+{
+  { NULL,                              NULL                    }
 };
-int num_bg_loops = sizeof(background_loop)/sizeof(int);
 
-char *element_info[] =
+struct ConfigInfo image_config[] =
 {
-  "empty space",                               /* 0 */
-  "sand",
-  "normal wall",
-  "round wall",
-  "rock",
-  "key",
-  "emerald",
-  "closed exit",
-  "player",
-  "bug",
-  "spaceship",                                 /* 10 */
-  "yam yam",
-  "robot",
-  "steel wall",
-  "diamond",
-  "dead amoeba",
-  "empty quicksand",
-  "quicksand with rock",
-  "amoeba drop",
-  "bomb",
-  "magic wall",                                        /* 20 */
-  "speed ball",
-  "acid pool",
-  "dropping amoeba",
-  "normal amoeba",
-  "nut with emerald",
-  "life wall",
-  "biomaze",
-  "burning dynamite",
-  "unknown",
-  "magic wheel",                               /* 30 */
-  "running wire",
-  "red key",
-  "yellow key",
-  "green key",
-  "blue key",
-  "red door",
-  "yellow door",
-  "green door",
-  "blue door",
-  "gray door (opened by red key)",             /* 40 */
-  "gray door (opened by yellow key)",
-  "gray door (opened by green key)",
-  "gray door (opened by blue key)",
-  "dynamite",
-  "pac man",
-  "invisible normal wall",
-  "light bulb (dark)",
-  "ligh bulb (glowing)",
-  "wall with emerald",
-  "wall with diamond",                         /* 50 */
-  "amoeba with content",
-  "amoeba (BD style)",
-  "time orb (full)",
-  "time orb (empty)",
-  "growing wall",
-  "diamond (BD style)",
-  "yellow emerald",
-  "wall with BD style diamond",
-  "wall with yellow emerald",
-  "dark yam yam",                              /* 60 */
-  "magic wall (BD style)",
-  "invisible steel wall",
-  "dynabomb",
-  "increases number of bombs",
-  "increases explosion size",
-  "increases power of explosion",
-  "sokoban object",
-  "sokoban empty field",
-  "sokoban field with object",
-  "butterfly (starts moving right)",           /* 70 */
-  "butterfly (starts moving up)",
-  "butterfly (starts moving left)",
-  "butterfly (starts moving down)",
-  "firefly (starts moving right)",
-  "firefly (starts moving up)",
-  "firefly (starts moving left)",
-  "firefly (starts moving down)",
-  "butterfly",
-  "firefly",
-  "yellow player",                             /* 80 */
-  "red player",
-  "green player",
-  "blue player",
-  "bug (starts moving right)",
-  "bug (starts moving up)",
-  "bug (starts moving left)",
-  "bug (starts moving down)",
-  "spaceship (starts moving right)",
-  "spaceship (starts moving up)",
-  "spaceship (starts moving left)",            /* 90 */
-  "spaceship (starts moving down)",
-  "pac man (starts moving right)",
-  "pac man (starts moving up)",
-  "pac man (starts moving left)",
-  "pac man (starts moving down)",
-  "red emerald",
-  "violet emerald",
-  "wall with red emerald",
-  "wall with violet emerald",
-  "unknown",                                   /* 100 */
-  "unknown",
-  "unknown",
-  "unknown",
-  "unknown",
-  "unknown",
-  "unknown",
-  "open exit",
-  "unknown",
-  "amoeba",
-  "mole",                                      /* 110 */
-  "penguin",
-  "satellite",
-  "arrow left",
-  "arrow right",
-  "arrow up",
-  "arrow down",
-  "pig",
-  "fire breathing dragon",
-  "unknown",
-  "letter ' '",                                        /* 120 */
-  "letter '!'",
-  "letter '\"'",
-  "letter '#'",
-  "letter '$'",
-  "letter '%'",
-  "letter '&'",
-  "letter '''",
-  "letter '('",
-  "letter ')'",
-  "letter '*'",                                        /* 130 */
-  "letter '+'",
-  "letter ','",
-  "letter '-'",
-  "letter '.'",
-  "letter '/'",
-  "letter '0'",
-  "letter '1'",
-  "letter '2'",
-  "letter '3'",
-  "letter '4'",                                        /* 140 */
-  "letter '5'",
-  "letter '6'",
-  "letter '7'",
-  "letter '8'",
-  "letter '9'",
-  "letter ':'",
-  "letter ';'",
-  "letter '<'",
-  "letter '='",
-  "letter '>'",                                        /* 150 */
-  "letter '?'",
-  "letter '@'",
-  "letter 'A'",
-  "letter 'B'",
-  "letter 'C'",
-  "letter 'D'",
-  "letter 'E'",
-  "letter 'F'",
-  "letter 'G'",
-  "letter 'H'",                                        /* 160 */
-  "letter 'I'",
-  "letter 'J'",
-  "letter 'K'",
-  "letter 'L'",
-  "letter 'M'",
-  "letter 'N'",
-  "letter 'O'",
-  "letter 'P'",
-  "letter 'Q'",
-  "letter 'R'",                                        /* 170 */
-  "letter 'S'",
-  "letter 'T'",
-  "letter 'U'",
-  "letter 'V'",
-  "letter 'W'",
-  "letter 'X'",
-  "letter 'Y'",
-  "letter 'Z'",
-  "letter 'Ä'",
-  "letter 'Ö'",                                        /* 180 */
-  "letter 'Ü'",
-  "letter '^'",
-  "letter ''",
-  "letter ''",
-  "letter ''",
-  "letter ''",
-  "letter ''",
-  "letter ''",
-  "letter ''",
-  "letter ''",                                 /* 190 */
-  "letter ''",
-  "letter ''",
-  "letter ''",
-  "letter ''",
-  "letter ''",
-  "letter ''",
-  "letter ''",
-  "letter ''",
-  "letter ''",
-  "growing wall (horizontally)",               /* 200 */
-  "growing wall (vertically)",
-  "growing wall (all directions)",
-  "unused",
-  "unused",
-  "unused",
-  "unused",
-  "unused",
-  "unused",
-  "unused",
-  "empty space",                               /* 210 */
-  "zonk",
-  "base",
-  "murphy",
-  "infotron",
-  "chip (single)",
-  "hardware",
-  "exit",
-  "orange disk",
-  "port (leading right)",
-  "port (leading down)",                       /* 220 */
-  "port (leading left)",
-  "port (leading up)",
-  "port (leading right)",
-  "port (leading down)",
-  "port (leading left)",
-  "port (leading up)",
-  "snik snak",
-  "yellow disk",
-  "terminal",
-  "red disk",                                  /* 230 */
-  "port (vertically)",
-  "port (horizontally)",
-  "port (all directions)",
-  "electron",
-  "buggy base",
-  "chip (left half)",
-  "chip (right half)",
-  "hardware",
-  "hardware",
-  "hardware",                                  /* 240 */
-  "hardware",
-  "hardware",
-  "hardware",
-  "hardware",
-  "hardware",
-  "hardware",
-  "hardware",
-  "chip (upper half)",
-  "chip (lower half)",
-  "unknown",                                   /* 250 */
-  "unknown",
-  "unknown",
-  "unknown",
-  "unknown",
-  "unknown",
+  /* images for Emerald Mine style elements and actions */
+  { "empty_space",                             "RocksElements.pcx"     },
+  { "empty_space.xpos",                                "7"                     },
+  { "empty_space.ypos",                                "10"                    },
+  { "empty_space.frames",                      "1"                     },
+
+  { "sand",                                    "RocksElements.pcx"     },
+  { "sand.xpos",                               "0"                     },
+  { "sand.ypos",                               "0"                     },
+  { "sand.frames",                             "1"                     },
+  { "sand_crumbled",                           "RocksElements.pcx"     },
+  { "sand_crumbled.xpos",                      "1"                     },
+  { "sand_crumbled.ypos",                      "0"                     },
+  { "sand_crumbled.frames",                    "1"                     },
+
+  { "quicksand_empty",                         "RocksElements.pcx"     },
+  { "quicksand_empty.xpos",                    "2"                     },
+  { "quicksand_empty.ypos",                    "0"                     },
+  { "quicksand_empty.frames",                  "1"                     },
+  { "quicksand_full",                          "RocksElements.pcx"     },
+  { "quicksand_full.xpos",                     "3"                     },
+  { "quicksand_full.ypos",                     "0"                     },
+  { "quicksand_full.frames",                   "1"                     },
+
+  { "steelwall",                               "RocksElements.pcx"     },
+  { "steelwall.xpos",                          "4"                     },
+  { "steelwall.ypos",                          "0"                     },
+  { "steelwall.frames",                                "1"                     },
+
+  { "wall",                                    "RocksElements.pcx"     },
+  { "wall.xpos",                               "5"                     },
+  { "wall.ypos",                               "0"                     },
+  { "wall.frames",                             "1"                     },
+  { "wall_crumbled",                           "RocksElements.pcx"     },
+  { "wall_crumbled.xpos",                      "6"                     },
+  { "wall_crumbled.ypos",                      "0"                     },
+  { "wall_crumbled.frames",                    "1"                     },
+
+  { "emerald",                                 "RocksElements.pcx"     },
+  { "emerald.xpos",                            "8"                     },
+  { "emerald.ypos",                            "0"                     },
+  { "emerald.frames",                          "1"                     },
+  { "emerald.falling",                         "RocksElements.pcx"     },
+  { "emerald.falling.xpos",                    "8"                     },
+  { "emerald.falling.ypos",                    "0"                     },
+  { "emerald.falling.frames",                  "2"                     },
+
+  { "diamond",                                 "RocksElements.pcx"     },
+  { "diamond.xpos",                            "10"                    },
+  { "diamond.ypos",                            "0"                     },
+  { "diamond.frames",                          "1"                     },
+  { "diamond.falling",                         "RocksElements.pcx"     },
+  { "diamond.falling.xpos",                    "10"                    },
+  { "diamond.falling.ypos",                    "0"                     },
+  { "diamond.falling.frames",                  "2"                     },
+
+  { "rock",                                    "RocksElements.pcx"     },
+  { "rock.xpos",                               "12"                    },
+  { "rock.ypos",                               "0"                     },
+  { "rock.frames",                             "1"                     },
+  { "rock.falling",                            "RocksElements.pcx"     },
+  { "rock.falling.xpos",                       "12"                    },
+  { "rock.falling.ypos",                       "0"                     },
+  { "rock.falling.frames",                     "1"                     },
+  { "rock.pushing",                            "RocksElements.pcx"     },
+  { "rock.pushing.xpos",                       "12"                    },
+  { "rock.pushing.ypos",                       "0"                     },
+  { "rock.pushing.frames",                     "4"                     },
+
+  { "acidpool_topleft",                                "RocksElements.pcx"     },
+  { "acidpool_topleft.xpos",                   "0"                     },
+  { "acidpool_topleft.ypos",                   "1"                     },
+  { "acidpool_topleft.frames",                 "1"                     },
+  { "acidpool_topright",                       "RocksElements.pcx"     },
+  { "acidpool_topright.xpos",                  "2"                     },
+  { "acidpool_topright.ypos",                  "1"                     },
+  { "acidpool_topright.frames",                        "1"                     },
+  { "acidpool_bottomleft",                     "RocksElements.pcx"     },
+  { "acidpool_bottomleft.xpos",                        "0"                     },
+  { "acidpool_bottomleft.ypos",                        "2"                     },
+  { "acidpool_bottomleft.frames",              "1"                     },
+  { "acidpool_bottom",                         "RocksElements.pcx"     },
+  { "acidpool_bottom.xpos",                    "1"                     },
+  { "acidpool_bottom.ypos",                    "2"                     },
+  { "acidpool_bottom.frames",                  "1"                     },
+  { "acidpool_bottomright",                    "RocksElements.pcx"     },
+  { "acidpool_bottomright.xpos",               "2"                     },
+  { "acidpool_bottomright.ypos",               "2"                     },
+  { "acidpool_bottomright.frames",             "1"                     },
+
+  { "acid",                                    "RocksElements.pcx"     },
+  { "acid.xpos",                               "12"                    },
+  { "acid.ypos",                               "7"                     },
+  { "acid.frames",                             "4"                     },
+
+  { "key1",                                    "RocksElements.pcx"     },
+  { "key1.xpos",                               "4"                     },
+  { "key1.ypos",                               "1"                     },
+  { "key1.frames",                             "1"                     },
+  { "key2",                                    "RocksElements.pcx"     },
+  { "key2.xpos",                               "5"                     },
+  { "key2.ypos",                               "1"                     },
+  { "key2.frames",                             "1"                     },
+  { "key3",                                    "RocksElements.pcx"     },
+  { "key3.xpos",                               "6"                     },
+  { "key3.ypos",                               "1"                     },
+  { "key3.frames",                             "1"                     },
+  { "key4",                                    "RocksElements.pcx"     },
+  { "key4.xpos",                               "7"                     },
+  { "key4.ypos",                               "1"                     },
+  { "key4.frames",                             "1"                     },
+
+  { "gameoflife",                              "RocksElements.pcx"     },
+  { "gameoflife.xpos",                         "8"                     },
+  { "gameoflife.ypos",                         "1"                     },
+  { "gameoflife.frames",                       "1"                     },
+
+  { "biomaze",                                 "RocksElements.pcx"     },
+  { "biomaze.xpos",                            "9"                     },
+  { "biomaze.ypos",                            "1"                     },
+  { "biomaze.frames",                          "1"                     },
+
+  { "bomb",                                    "RocksElements.pcx"     },
+  { "bomb.xpos",                               "11"                    },
+  { "bomb.ypos",                               "1"                     },
+  { "bomb.frames",                             "1"                     },
+
+  { "nut",                                     "RocksElements.pcx"     },
+  { "nut.xpos",                                        "12"                    },
+  { "nut.ypos",                                        "1"                     },
+  { "nut.frames",                              "1"                     },
+  { "nut.cracking",                            "RocksElements.pcx"     },
+  { "nut.cracking.xpos",                       "13"                    },
+  { "nut.cracking.ypos",                       "1"                     },
+  { "nut.cracking.frames",                     "3"                     },
+
+  { "gate1",                                   "RocksElements.pcx"     },
+  { "gate1.xpos",                              "4"                     },
+  { "gate1.ypos",                              "2"                     },
+  { "gate1.frames",                            "1"                     },
+  { "gate2",                                   "RocksElements.pcx"     },
+  { "gate2.xpos",                              "5"                     },
+  { "gate2.ypos",                              "2"                     },
+  { "gate2.frames",                            "1"                     },
+  { "gate3",                                   "RocksElements.pcx"     },
+  { "gate3.xpos",                              "6"                     },
+  { "gate3.ypos",                              "2"                     },
+  { "gate3.frames",                            "1"                     },
+  { "gate4",                                   "RocksElements.pcx"     },
+  { "gate4.xpos",                              "7"                     },
+  { "gate4.ypos",                              "2"                     },
+  { "gate4.frames",                            "1"                     },
+  { "gate1_gray",                              "RocksElements.pcx"     },
+  { "gate1_gray.xpos",                         "8"                     },
+  { "gate1_gray.ypos",                         "2"                     },
+  { "gate1_gray.frames",                       "1"                     },
+  { "gate2_gray",                              "RocksElements.pcx"     },
+  { "gate2_gray.xpos",                         "9"                     },
+  { "gate2_gray.ypos",                         "2"                     },
+  { "gate2_gray.frames",                       "1"                     },
+  { "gate3_gray",                              "RocksElements.pcx"     },
+  { "gate3_gray.xpos",                         "10"                    },
+  { "gate3_gray.ypos",                         "2"                     },
+  { "gate3_gray.frames",                       "1"                     },
+  { "gate4_gray",                              "RocksElements.pcx"     },
+  { "gate4_gray.xpos",                         "11"                    },
+  { "gate4_gray.ypos",                         "2"                     },
+  { "gate4_gray.frames",                       "1"                     },
+
+  { "dynamite",                                        "RocksElements.pcx"     },
+  { "dynamite.xpos",                           "0"                     },
+  { "dynamite.ypos",                           "3"                     },
+  { "dynamite.frames",                         "1"                     },
+  { "dynamite.burning",                                "RocksElements.pcx"     },
+  { "dynamite.burning.xpos",                   "1"                     },
+  { "dynamite.burning.ypos",                   "3"                     },
+  { "dynamite.burning.frames",                 "7"                     },
+
+  { "spaceship_right",                         "RocksElements.pcx"     },
+  { "spaceship_right.xpos",                    "8"                     },
+  { "spaceship_right.ypos",                    "3"                     },
+  { "spaceship_right.frames",                  "2"                     },
+  { "spaceship_up",                            "RocksElements.pcx"     },
+  { "spaceship_up.xpos",                       "10"                    },
+  { "spaceship_up.ypos",                       "3"                     },
+  { "spaceship_up.frames",                     "2"                     },
+  { "spaceship_left",                          "RocksElements.pcx"     },
+  { "spaceship_left.xpos",                     "12"                    },
+  { "spaceship_left.ypos",                     "3"                     },
+  { "spaceship_left.frames",                   "2"                     },
+  { "spaceship_down",                          "RocksElements.pcx"     },
+  { "spaceship_down.xpos",                     "14"                    },
+  { "spaceship_down.ypos",                     "3"                     },
+  { "spaceship_down.frames",                   "2"                     },
+
+  { "bug_right",                               "RocksElements.pcx"     },
+  { "bug_right.xpos",                          "8"                     },
+  { "bug_right.ypos",                          "4"                     },
+  { "bug_right.frames",                                "2"                     },
+  { "bug_up",                                  "RocksElements.pcx"     },
+  { "bug_up.xpos",                             "10"                    },
+  { "bug_up.ypos",                             "4"                     },
+  { "bug_up.frames",                           "2"                     },
+  { "bug_left",                                        "RocksElements.pcx"     },
+  { "bug_left.xpos",                           "12"                    },
+  { "bug_left.ypos",                           "4"                     },
+  { "bug_left.frames",                         "2"                     },
+  { "bug_down",                                        "RocksElements.pcx"     },
+  { "bug_down.xpos",                           "14"                    },
+  { "bug_down.ypos",                           "4"                     },
+  { "bug_down.frames",                         "2"                     },
+
+  { "pacman_right",                            "RocksElements.pcx"     },
+  { "pacman_right.xpos",                       "8"                     },
+  { "pacman_right.ypos",                       "5"                     },
+  { "pacman_right.frames",                     "2"                     },
+  { "pacman_up",                               "RocksElements.pcx"     },
+  { "pacman_up.xpos",                          "10"                    },
+  { "pacman_up.ypos",                          "5"                     },
+  { "pacman_up.frames",                                "2"                     },
+  { "pacman_left",                             "RocksElements.pcx"     },
+  { "pacman_left.xpos",                                "12"                    },
+  { "pacman_left.ypos",                                "5"                     },
+  { "pacman_left.frames",                      "2"                     },
+  { "pacman_down",                             "RocksElements.pcx"     },
+  { "pacman_down.xpos",                                "14"                    },
+  { "pacman_down.ypos",                                "5"                     },
+  { "pacman_down.frames",                      "2"                     },
+
+  { "explosion",                               "RocksElements.pcx"     },
+  { "explosion.xpos",                          "0"                     },
+  { "explosion.ypos",                          "4"                     },
+  { "explosion.frames",                                "8"                     },
+
+  { "yamyam",                                  "RocksElements.pcx"     },
+  { "yamyam.xpos",                             "0"                     },
+  { "yamyam.ypos",                             "5"                     },
+  { "yamyam.frames",                           "4"                     },
+  { "yamyam.pingpong",                         "1"                     },
+
+  { "robot",                                   "RocksElements.pcx"     },
+  { "robot.xpos",                              "4"                     },
+  { "robot.ypos",                              "5"                     },
+  { "robot.frames",                            "4"                     },
+  { "robot.pingpong",                          "1"                     },
+  { "robot_wheel",                             "RocksElements.pcx"     },
+  { "robot_wheel.xpos",                                "0"                     },
+  { "robot_wheel.ypos",                                "6"                     },
+  { "robot_wheel.frames",                      "4"                     },
+
+  { "amoeba_drop",                             "RocksElements.pcx"     },
+  { "amoeba_drop.xpos",                                "5"                     },
+  { "amoeba_drop.ypos",                                "6"                     },
+  { "amoeba_drop.frames",                      "1"                     },
+  { "amoeba.growing",                          "RocksElements.pcx"     },
+  { "amoeba.growing.xpos",                     "5"                     },
+  { "amoeba.growing.ypos",                     "6"                     },
+  { "amoeba.growing.frames",                   "3"                     },
+  { "amoeba",                                  "RocksElements.pcx"     },
+  { "amoeba.xpos",                             "8"                     },
+  { "amoeba.ypos",                             "6"                     },
+  { "amoeba.frames",                           "4"                     },
+  { "amoeba_dead",                             "RocksElements.pcx"     },
+  { "amoeba_dead.xpos",                                "12"                    },
+  { "amoeba_dead.ypos",                                "6"                     },
+  { "amoeba_dead.frames",                      "4"                     },
+
+  { "lamp_off",                                        "RocksElements.pcx"     },
+  { "lamp_off.xpos",                           "0"                     },
+  { "lamp_off.ypos",                           "7"                     },
+  { "lamp_off.frames",                         "1"                     },
+  { "lamp_on",                                 "RocksElements.pcx"     },
+  { "lamp_on.xpos",                            "1"                     },
+  { "lamp_on.ypos",                            "7"                     },
+  { "lamp_on.frames",                          "1"                     },
+
+  { "time_orb_full",                           "RocksElements.pcx"     },
+  { "time_orb_full.xpos",                      "2"                     },
+  { "time_orb_full.ypos",                      "7"                     },
+  { "time_orb_full.frames",                    "1"                     },
+  { "time_orb_empty",                          "RocksElements.pcx"     },
+  { "time_orb_empty.xpos",                     "3"                     },
+  { "time_orb_empty.ypos",                     "7"                     },
+  { "time_orb_empty.frames",                   "1"                     },
+
+  { "bd_amoeba",                               "RocksElements.pcx"     },
+  { "bd_amoeba.xpos",                          "8"                     },
+  { "bd_amoeba.ypos",                          "7"                     },
+  { "bd_amoeba.frames",                                "1"                     },
+
+  { "sokoban_object",                          "RocksElements.pcx"     },
+  { "sokoban_object.xpos",                     "9"                     },
+  { "sokoban_object.ypos",                     "7"                     },
+  { "sokoban_object.frames",                   "1"                     },
+  { "sokoban_field_empty",                     "RocksElements.pcx"     },
+  { "sokoban_field_empty.xpos",                        "10"                    },
+  { "sokoban_field_empty.ypos",                        "7"                     },
+  { "sokoban_field_empty.frames",              "1"                     },
+  { "sokoban_field_full",                      "RocksElements.pcx"     },
+  { "sokoban_field_full.xpos",                 "11"                    },
+  { "sokoban_field_full.ypos",                 "7"                     },
+  { "sokoban_field_full.frames",               "1"                     },
+
+  { "magic_wall",                              "RocksElements.pcx"     },
+  { "magic_wall.xpos",                         "0"                     },
+  { "magic_wall.ypos",                         "8"                     },
+  { "magic_wall.frames",                       "1"                     },
+  { "magic_wall.running",                      "RocksElements.pcx"     },
+  { "magic_wall.running.xpos",                 "0"                     },
+  { "magic_wall.running.ypos",                 "8"                     },
+  { "magic_wall.running.frames",               "4"                     },
+
+  { "bd_magic_wall",                           "RocksElements.pcx"     },
+  { "bd_magic_wall.xpos",                      "12"                    },
+  { "bd_magic_wall.ypos",                      "10"                    },
+  { "bd_magic_wall.frames",                    "1"                     },
+  { "bd_magic_wall.running",                   "RocksElements.pcx"     },
+  { "bd_magic_wall.running.xpos",              "12"                    },
+  { "bd_magic_wall.running.ypos",              "10"                    },
+  { "bd_magic_wall.running.frames",            "4"                     },
+
+  { "wall_emerald",                            "RocksElements.pcx"     },
+  { "wall_emerald.xpos",                       "4"                     },
+  { "wall_emerald.ypos",                       "8"                     },
+  { "wall_emerald.frames",                     "1"                     },
+  { "wall_diamond",                            "RocksElements.pcx"     },
+  { "wall_diamond.xpos",                       "5"                     },
+  { "wall_diamond.ypos",                       "8"                     },
+  { "wall_diamond.frames",                     "1"                     },
+  { "wall_emerald_red",                                "RocksElements.pcx"     },
+  { "wall_emerald_red.xpos",                   "6"                     },
+  { "wall_emerald_red.ypos",                   "8"                     },
+  { "wall_emerald_red.frames",                 "1"                     },
+  { "wall_emerald_purple",                     "RocksElements.pcx"     },
+  { "wall_emerald_purple.xpos",                        "7"                     },
+  { "wall_emerald_purple.ypos",                        "8"                     },
+  { "wall_emerald_purple.frames",              "1"                     },
+  { "wall_emerald_yellow",                     "RocksElements.pcx"     },
+  { "wall_emerald_yellow.xpos",                        "8"                     },
+  { "wall_emerald_yellow.ypos",                        "8"                     },
+  { "wall_emerald_yellow.frames",              "1"                     },
+  { "wall_bd_diamond",                         "RocksElements.pcx"     },
+  { "wall_bd_diamond.xpos",                    "9"                     },
+  { "wall_bd_diamond.ypos",                    "8"                     },
+  { "wall_bd_diamond.frames",                  "1"                     },
+
+  { "emerald_red",                             "RocksElements.pcx"     },
+  { "emerald_red.xpos",                                "8"                     },
+  { "emerald_red.ypos",                                "9"                     },
+  { "emerald_red.frames",                      "1"                     },
+  { "emerald_red.falling",                     "RocksElements.pcx"     },
+  { "emerald_red.falling.xpos",                        "8"                     },
+  { "emerald_red.falling.ypos",                        "9"                     },
+  { "emerald_red.falling.frames",              "2"                     },
+  { "emerald_purple",                          "RocksElements.pcx"     },
+  { "emerald_purple.xpos",                     "10"                    },
+  { "emerald_purple.ypos",                     "9"                     },
+  { "emerald_purple.frames",                   "1"                     },
+  { "emerald_purple.falling",                  "RocksElements.pcx"     },
+  { "emerald_purple.falling.xpos",             "10"                    },
+  { "emerald_purple.falling.ypos",             "9"                     },
+  { "emerald_purple.falling.frames",           "2"                     },
+  { "emerald_yellow",                          "RocksElements.pcx"     },
+  { "emerald_yellow.xpos",                     "10"                    },
+  { "emerald_yellow.ypos",                     "8"                     },
+  { "emerald_yellow.frames",                   "1"                     },
+  { "emerald_yellow.falling",                  "RocksElements.pcx"     },
+  { "emerald_yellow.falling.xpos",             "10"                    },
+  { "emerald_yellow.falling.ypos",             "8"                     },
+  { "emerald_yellow.falling.frames",           "2"                     },
+
+  { "wall_growing_xy",                         "RocksElements.pcx"     },
+  { "wall_growing_xy.xpos",                    "4"                     },
+  { "wall_growing_xy.ypos",                    "9"                     },
+  { "wall_growing_xy.frames",                  "1"                     },
+  { "wall_growing_x",                          "RocksElements.pcx"     },
+  { "wall_growing_x.xpos",                     "5"                     },
+  { "wall_growing_x.ypos",                     "9"                     },
+  { "wall_growing_x.frames",                   "1"                     },
+  { "wall_growing_y",                          "RocksElements.pcx"     },
+  { "wall_growing_y.xpos",                     "6"                     },
+  { "wall_growing_y.ypos",                     "9"                     },
+  { "wall_growing_y.frames",                   "1"                     },
+
+  { "dynabomb_xl",                             "RocksElements.pcx"     },
+  { "dynabomb_xl.xpos",                                "12"                    },
+  { "dynabomb_xl.ypos",                                "9"                     },
+  { "dynabomb_xl.frames",                      "1"                     },
+
+  { "black_orb",                               "RocksElements.pcx"     },
+  { "black_orb.xpos",                          "13"                    },
+  { "black_orb.ypos",                          "9"                     },
+  { "black_orb.frames",                                "1"                     },
+
+  { "speed_pill",                              "RocksElements.pcx"     },
+  { "speed_pill.xpos",                         "14"                    },
+  { "speed_pill.ypos",                         "9"                     },
+  { "speed_pill.frames",                       "1"                     },
+
+  { "bd_diamond",                              "RocksElements.pcx"     },
+  { "bd_diamond.xpos",                         "0"                     },
+  { "bd_diamond.ypos",                         "10"                    },
+  { "bd_diamond.frames",                       "4"                     },
+  { "bd_diamond.falling",                      "RocksElements.pcx"     },
+  { "bd_diamond.falling.xpos",                 "3"                     },
+  { "bd_diamond.falling.ypos",                 "10"                    },
+  { "bd_diamond.falling.frames",               "2"                     },
+
+  { "wall.growing_right",                      "RocksElements.pcx"     },
+  { "wall.growing_right.xpos",                 "5"                     },
+  { "wall.growing_right.ypos",                 "10"                    },
+  { "wall.growing_right.frames",               "3"                     },
+  { "wall.growing_left",                       "RocksElements.pcx"     },
+  { "wall.growing_left.xpos",                  "8"                     },
+  { "wall.growing_left.ypos",                  "10"                    },
+  { "wall.growing_left.frames",                        "3"                     },
+
+  { "exit_closed",                             "RocksElements.pcx"     },
+  { "exit_closed.xpos",                                "0"                     },
+  { "exit_closed.ypos",                                "11"                    },
+  { "exit_closed.frames",                      "1"                     },
+  { "exit.opening",                            "RocksElements.pcx"     },
+  { "exit.opening.xpos",                       "1"                     },
+  { "exit.opening.ypos",                       "11"                    },
+  { "exit.opening.frames",                     "4"                     },
+  { "exit_open",                               "RocksElements.pcx"     },
+  { "exit_open.xpos",                          "4"                     },
+  { "exit_open.ypos",                          "11"                    },
+  { "exit_open.frames",                                "4"                     },
+  { "exit_open.pingpong",                      "1"                     },
+
+  { "dark_yamyam",                             "RocksElements.pcx"     },
+  { "dark_yamyam.xpos",                                "8"                     },
+  { "dark_yamyam.ypos",                                "11"                    },
+  { "dark_yamyam.frames",                      "4"                     },
+  { "dark_yamyam.pingpong",                    "1"                     },
+
+  { "dynabomb.burning",                                "RocksElements.pcx"     },
+  { "dynabomb.burning.xpos",                   "12"                    },
+  { "dynabomb.burning.ypos",                   "11"                    },
+  { "dynabomb.burning.frames",                 "4"                     },
+  { "dynabomb.burning.pingpong",               "1"                     },
+  { "dynabomb_nr",                             "RocksElements.pcx"     },
+  { "dynabomb_nr.xpos",                                "12"                    },
+  { "dynabomb_nr.ypos",                                "11"                    },
+  { "dynabomb_nr.frames",                      "1"                     },
+  { "dynabomb_sz",                             "RocksElements.pcx"     },
+  { "dynabomb_sz.xpos",                                "15"                    },
+  { "dynabomb_sz.ypos",                                "11"                    },
+  { "dynabomb_sz.frames",                      "1"                     },
+
+  { "arrow_left",                              "RocksElements.pcx"     },
+  { "arrow_left.xpos",                         "0"                     },
+  { "arrow_left.ypos",                         "12"                    },
+  { "arrow_left.frames",                       "1"                     },
+  { "arrow_right",                             "RocksElements.pcx"     },
+  { "arrow_right.xpos",                                "1"                     },
+  { "arrow_right.ypos",                                "12"                    },
+  { "arrow_right.frames",                      "1"                     },
+  { "arrow_up",                                        "RocksElements.pcx"     },
+  { "arrow_up.xpos",                           "2"                     },
+  { "arrow_up.ypos",                           "12"                    },
+  { "arrow_up.frames",                         "1"                     },
+  { "arrow_down",                              "RocksElements.pcx"     },
+  { "arrow_down.xpos",                         "3"                     },
+  { "arrow_down.ypos",                         "12"                    },
+  { "arrow_down.frames",                       "1"                     },
+
+  { "bd_butterfly_right",                      "RocksElements.pcx"     },
+  { "bd_butterfly_right.xpos",                 "8"                     },
+  { "bd_butterfly_right.ypos",                 "12"                    },
+  { "bd_butterfly_right.frames",               "1"                     },
+  { "bd_butterfly_up",                         "RocksElements.pcx"     },
+  { "bd_butterfly_up.xpos",                    "9"                     },
+  { "bd_butterfly_up.ypos",                    "12"                    },
+  { "bd_butterfly_up.frames",                  "1"                     },
+  { "bd_butterfly_left",                       "RocksElements.pcx"     },
+  { "bd_butterfly_left.xpos",                  "10"                    },
+  { "bd_butterfly_left.ypos",                  "12"                    },
+  { "bd_butterfly_left.frames",                        "1"                     },
+  { "bd_butterfly_down",                       "RocksElements.pcx"     },
+  { "bd_butterfly_down.xpos",                  "11"                    },
+  { "bd_butterfly_down.ypos",                  "12"                    },
+  { "bd_butterfly_down.frames",                        "1"                     },
+  { "bd_butterfly.moving",                     "RocksElements.pcx"     },
+  { "bd_butterfly.moving.xpos",                        "4"                     },
+  { "bd_butterfly.moving.ypos",                        "12"                    },
+  { "bd_butterfly.moving.frames",              "2"                     },
+  { "bd_butterfly.moving.pingpong",            "1"                     },
+
+  { "bd_firefly_right",                                "RocksElements.pcx"     },
+  { "bd_firefly_right.xpos",                   "12"                    },
+  { "bd_firefly_right.ypos",                   "12"                    },
+  { "bd_firefly_right.frames",                 "1"                     },
+  { "bd_firefly_up",                           "RocksElements.pcx"     },
+  { "bd_firefly_up.xpos",                      "13"                    },
+  { "bd_firefly_up.ypos",                      "12"                    },
+  { "bd_firefly_up.frames",                    "1"                     },
+  { "bd_firefly_left",                         "RocksElements.pcx"     },
+  { "bd_firefly_left.xpos",                    "14"                    },
+  { "bd_firefly_left.ypos",                    "12"                    },
+  { "bd_firefly_left.frames",                  "1"                     },
+  { "bd_firefly_down",                         "RocksElements.pcx"     },
+  { "bd_firefly_down.xpos",                    "15"                    },
+  { "bd_firefly_down.ypos",                    "12"                    },
+  { "bd_firefly_down.frames",                  "1"                     },
+  { "bd_firefly.moving",                       "RocksElements.pcx"     },
+  { "bd_firefly.moving.xpos",                  "6"                     },
+  { "bd_firefly.moving.ypos",                  "12"                    },
+  { "bd_firefly.moving.frames",                        "2"                     },
+  { "bd_firefly.moving.pingpong",              "1"                     },
+
+  { "steelwall_topleft",                       "RocksElements.pcx"     },
+  { "steelwall_topleft.xpos",                  "0"                     },
+  { "steelwall_topleft.ypos",                  "13"                    },
+  { "steelwall_topleft.frames",                        "1"                     },
+  { "steelwall_topright",                      "RocksElements.pcx"     },
+  { "steelwall_topright.xpos",                 "1"                     },
+  { "steelwall_topright.ypos",                 "13"                    },
+  { "steelwall_topright.frames",               "1"                     },
+  { "steelwall_bottomleft",                    "RocksElements.pcx"     },
+  { "steelwall_bottomleft.xpos",               "1"                     },
+  { "steelwall_bottomleft.ypos",               "13"                    },
+  { "steelwall_bottomleft.frames",             "1"                     },
+  { "steelwall_bottomright",                   "RocksElements.pcx"     },
+  { "steelwall_bottomright.xpos",              "1"                     },
+  { "steelwall_bottomright.ypos",              "13"                    },
+  { "steelwall_bottomright.frames",            "1"                     },
+  { "steelwall_horizontal",                    "RocksElements.pcx"     },
+  { "steelwall_horizontal.xpos",               "1"                     },
+  { "steelwall_horizontal.ypos",               "13"                    },
+  { "steelwall_horizontal.frames",             "1"                     },
+
+  { "invisible_steelwall_topleft",             "RocksElements.pcx"     },
+  { "invisible_steelwall_topleft.xpos",                "0"                     },
+  { "invisible_steelwall_topleft.ypos",                "13"                    },
+  { "invisible_steelwall_topleft.frames",      "1"                     },
+  { "invisible_steelwall_topright",            "RocksElements.pcx"     },
+  { "invisible_steelwall_topright.xpos",       "1"                     },
+  { "invisible_steelwall_topright.ypos",       "13"                    },
+  { "invisible_steelwall_topright.frames",     "1"                     },
+  { "invisible_steelwall_bottomleft",          "RocksElements.pcx"     },
+  { "invisible_steelwall_bottomleft.xpos",     "1"                     },
+  { "invisible_steelwall_bottomleft.ypos",     "13"                    },
+  { "invisible_steelwall_bottomleft.frames",   "1"                     },
+  { "invisible_steelwall_bottomright",         "RocksElements.pcx"     },
+  { "invisible_steelwall_bottomright.xpos",    "1"                     },
+  { "invisible_steelwall_bottomright.ypos",    "13"                    },
+  { "invisible_steelwall_bottomright.frames",  "1"                     },
+  { "invisible_steelwall_horizontal",          "RocksElements.pcx"     },
+  { "invisible_steelwall_horizontal.xpos",     "1"                     },
+  { "invisible_steelwall_horizontal.ypos",     "13"                    },
+  { "invisible_steelwall_horizontal.frames",   "1"                     },
+
+  { "player1_down",                            "RocksHeroes.pcx"       },
+  { "player1_down.xpos",                       "0"                     },
+  { "player1_down.ypos",                       "0"                     },
+  { "player1_down.frames",                     "1"                     },
+  { "player1_down.moving",                     "RocksHeroes.pcx"       },
+  { "player1_down.moving.xpos",                        "0"                     },
+  { "player1_down.moving.ypos",                        "0"                     },
+  { "player1_down.moving.frames",              "4"                     },
+  { "player1_down.digging",                    "RocksHeroes.pcx"       },
+  { "player1_down.digging.xpos",               "0"                     },
+  { "player1_down.digging.ypos",               "0"                     },
+  { "player1_down.digging.frames",             "4"                     },
+  { "player1_up",                              "RocksHeroes.pcx"       },
+  { "player1_up.xpos",                         "4"                     },
+  { "player1_up.ypos",                         "0"                     },
+  { "player1_up.frames",                       "1"                     },
+  { "player1_up.moving",                       "RocksHeroes.pcx"       },
+  { "player1_up.moving.xpos",                  "4"                     },
+  { "player1_up.moving.ypos",                  "0"                     },
+  { "player1_up.moving.frames",                        "4"                     },
+  { "player1_up.digging",                      "RocksHeroes.pcx"       },
+  { "player1_up.digging.xpos",                 "4"                     },
+  { "player1_up.digging.ypos",                 "0"                     },
+  { "player1_up.digging.frames",               "4"                     },
+  { "player1_left",                            "RocksHeroes.pcx"       },
+  { "player1_left.xpos",                       "0"                     },
+  { "player1_left.ypos",                       "1"                     },
+  { "player1_left.frames",                     "1"                     },
+  { "player1_left.moving",                     "RocksHeroes.pcx"       },
+  { "player1_left.moving.xpos",                        "0"                     },
+  { "player1_left.moving.ypos",                        "1"                     },
+  { "player1_left.moving.frames",              "4"                     },
+  { "player1_left.digging",                    "RocksHeroes.pcx"       },
+  { "player1_left.digging.xpos",               "0"                     },
+  { "player1_left.digging.ypos",               "1"                     },
+  { "player1_left.digging.frames",             "4"                     },
+  { "player1_left.pushing",                    "RocksHeroes.pcx"       },
+  { "player1_left.pushing.xpos",               "4"                     },
+  { "player1_left.pushing.ypos",               "2"                     },
+  { "player1_left.pushing.frames",             "4"                     },
+  { "player1_right",                           "RocksHeroes.pcx"       },
+  { "player1_right.xpos",                      "4"                     },
+  { "player1_right.ypos",                      "1"                     },
+  { "player1_right.frames",                    "1"                     },
+  { "player1_right.moving",                    "RocksHeroes.pcx"       },
+  { "player1_right.moving.xpos",               "4"                     },
+  { "player1_right.moving.ypos",               "1"                     },
+  { "player1_right.moving.frames",             "4"                     },
+  { "player1_right.digging",                   "RocksHeroes.pcx"       },
+  { "player1_right.digging.xpos",              "4"                     },
+  { "player1_right.digging.ypos",              "1"                     },
+  { "player1_right.digging.frames",            "4"                     },
+  { "player1_right.pushing",                   "RocksHeroes.pcx"       },
+  { "player1_right.pushing.xpos",              "0"                     },
+  { "player1_right.pushing.ypos",              "2"                     },
+  { "player1_right.pushing.frames",            "4"                     },
+
+  { "player2_down",                            "RocksHeroes.pcx"       },
+  { "player2_down.xpos",                       "0"                     },
+  { "player2_down.ypos",                       "3"                     },
+  { "player2_down.frames",                     "1"                     },
+  { "player2_down.moving",                     "RocksHeroes.pcx"       },
+  { "player2_down.moving.xpos",                        "0"                     },
+  { "player2_down.moving.ypos",                        "3"                     },
+  { "player2_down.moving.frames",              "4"                     },
+  { "player2_down.digging",                    "RocksHeroes.pcx"       },
+  { "player2_down.digging.xpos",               "0"                     },
+  { "player2_down.digging.ypos",               "3"                     },
+  { "player2_down.digging.frames",             "4"                     },
+  { "player2_up",                              "RocksHeroes.pcx"       },
+  { "player2_up.xpos",                         "4"                     },
+  { "player2_up.ypos",                         "3"                     },
+  { "player2_up.frames",                       "1"                     },
+  { "player2_up.moving",                       "RocksHeroes.pcx"       },
+  { "player2_up.moving.xpos",                  "4"                     },
+  { "player2_up.moving.ypos",                  "3"                     },
+  { "player2_up.moving.frames",                        "4"                     },
+  { "player2_up.digging",                      "RocksHeroes.pcx"       },
+  { "player2_up.digging.xpos",                 "4"                     },
+  { "player2_up.digging.ypos",                 "3"                     },
+  { "player2_up.digging.frames",               "4"                     },
+  { "player2_left",                            "RocksHeroes.pcx"       },
+  { "player2_left.xpos",                       "0"                     },
+  { "player2_left.ypos",                       "4"                     },
+  { "player2_left.frames",                     "1"                     },
+  { "player2_left.moving",                     "RocksHeroes.pcx"       },
+  { "player2_left.moving.xpos",                        "0"                     },
+  { "player2_left.moving.ypos",                        "4"                     },
+  { "player2_left.moving.frames",              "4"                     },
+  { "player2_left.digging",                    "RocksHeroes.pcx"       },
+  { "player2_left.digging.xpos",               "0"                     },
+  { "player2_left.digging.ypos",               "4"                     },
+  { "player2_left.digging.frames",             "4"                     },
+  { "player2_left.pushing",                    "RocksHeroes.pcx"       },
+  { "player2_left.pushing.xpos",               "4"                     },
+  { "player2_left.pushing.ypos",               "5"                     },
+  { "player2_left.pushing.frames",             "4"                     },
+  { "player2_right",                           "RocksHeroes.pcx"       },
+  { "player2_right.xpos",                      "4"                     },
+  { "player2_right.ypos",                      "4"                     },
+  { "player2_right.frames",                    "1"                     },
+  { "player2_right.moving",                    "RocksHeroes.pcx"       },
+  { "player2_right.moving.xpos",               "4"                     },
+  { "player2_right.moving.ypos",               "4"                     },
+  { "player2_right.moving.frames",             "4"                     },
+  { "player2_right.digging",                   "RocksHeroes.pcx"       },
+  { "player2_right.digging.xpos",              "4"                     },
+  { "player2_right.digging.ypos",              "4"                     },
+  { "player2_right.digging.frames",            "4"                     },
+  { "player2_right.pushing",                   "RocksHeroes.pcx"       },
+  { "player2_right.pushing.xpos",              "0"                     },
+  { "player2_right.pushing.ypos",              "5"                     },
+  { "player2_right.pushing.frames",            "4"                     },
+
+  { "player3_down",                            "RocksHeroes.pcx"       },
+  { "player3_down.xpos",                       "0"                     },
+  { "player3_down.ypos",                       "6"                     },
+  { "player3_down.frames",                     "1"                     },
+  { "player3_down.moving",                     "RocksHeroes.pcx"       },
+  { "player3_down.moving.xpos",                        "0"                     },
+  { "player3_down.moving.ypos",                        "6"                     },
+  { "player3_down.moving.frames",              "4"                     },
+  { "player3_down.digging",                    "RocksHeroes.pcx"       },
+  { "player3_down.digging.xpos",               "0"                     },
+  { "player3_down.digging.ypos",               "6"                     },
+  { "player3_down.digging.frames",             "4"                     },
+  { "player3_up",                              "RocksHeroes.pcx"       },
+  { "player3_up.xpos",                         "4"                     },
+  { "player3_up.ypos",                         "6"                     },
+  { "player3_up.frames",                       "1"                     },
+  { "player3_up.moving",                       "RocksHeroes.pcx"       },
+  { "player3_up.moving.xpos",                  "4"                     },
+  { "player3_up.moving.ypos",                  "6"                     },
+  { "player3_up.moving.frames",                        "4"                     },
+  { "player3_up.digging",                      "RocksHeroes.pcx"       },
+  { "player3_up.digging.xpos",                 "4"                     },
+  { "player3_up.digging.ypos",                 "6"                     },
+  { "player3_up.digging.frames",               "4"                     },
+  { "player3_left",                            "RocksHeroes.pcx"       },
+  { "player3_left.xpos",                       "0"                     },
+  { "player3_left.ypos",                       "7"                     },
+  { "player3_left.frames",                     "1"                     },
+  { "player3_left.moving",                     "RocksHeroes.pcx"       },
+  { "player3_left.moving.xpos",                        "0"                     },
+  { "player3_left.moving.ypos",                        "7"                     },
+  { "player3_left.moving.frames",              "4"                     },
+  { "player3_left.digging",                    "RocksHeroes.pcx"       },
+  { "player3_left.digging.xpos",               "0"                     },
+  { "player3_left.digging.ypos",               "7"                     },
+  { "player3_left.digging.frames",             "4"                     },
+  { "player3_left.pushing",                    "RocksHeroes.pcx"       },
+  { "player3_left.pushing.xpos",               "4"                     },
+  { "player3_left.pushing.ypos",               "8"                     },
+  { "player3_left.pushing.frames",             "4"                     },
+  { "player3_right",                           "RocksHeroes.pcx"       },
+  { "player3_right.xpos",                      "4"                     },
+  { "player3_right.ypos",                      "7"                     },
+  { "player3_right.frames",                    "1"                     },
+  { "player3_right.moving",                    "RocksHeroes.pcx"       },
+  { "player3_right.moving.xpos",               "4"                     },
+  { "player3_right.moving.ypos",               "7"                     },
+  { "player3_right.moving.frames",             "4"                     },
+  { "player3_right.digging",                   "RocksHeroes.pcx"       },
+  { "player3_right.digging.xpos",              "4"                     },
+  { "player3_right.digging.ypos",              "7"                     },
+  { "player3_right.digging.frames",            "4"                     },
+  { "player3_right.pushing",                   "RocksHeroes.pcx"       },
+  { "player3_right.pushing.xpos",              "0"                     },
+  { "player3_right.pushing.ypos",              "8"                     },
+  { "player3_right.pushing.frames",            "4"                     },
+
+  { "player4_down",                            "RocksHeroes.pcx"       },
+  { "player4_down.xpos",                       "0"                     },
+  { "player4_down.ypos",                       "9"                     },
+  { "player4_down.frames",                     "1"                     },
+  { "player4_down.moving",                     "RocksHeroes.pcx"       },
+  { "player4_down.moving.xpos",                        "0"                     },
+  { "player4_down.moving.ypos",                        "9"                     },
+  { "player4_down.moving.frames",              "4"                     },
+  { "player4_down.digging",                    "RocksHeroes.pcx"       },
+  { "player4_down.digging.xpos",               "0"                     },
+  { "player4_down.digging.ypos",               "9"                     },
+  { "player4_down.digging.frames",             "4"                     },
+  { "player4_up",                              "RocksHeroes.pcx"       },
+  { "player4_up.xpos",                         "4"                     },
+  { "player4_up.ypos",                         "9"                     },
+  { "player4_up.frames",                       "1"                     },
+  { "player4_up.moving",                       "RocksHeroes.pcx"       },
+  { "player4_up.moving.xpos",                  "4"                     },
+  { "player4_up.moving.ypos",                  "9"                     },
+  { "player4_up.moving.frames",                        "4"                     },
+  { "player4_up.digging",                      "RocksHeroes.pcx"       },
+  { "player4_up.digging.xpos",                 "4"                     },
+  { "player4_up.digging.ypos",                 "9"                     },
+  { "player4_up.digging.frames",               "4"                     },
+  { "player4_left",                            "RocksHeroes.pcx"       },
+  { "player4_left.xpos",                       "0"                     },
+  { "player4_left.ypos",                       "10"                    },
+  { "player4_left.frames",                     "1"                     },
+  { "player4_left.moving",                     "RocksHeroes.pcx"       },
+  { "player4_left.moving.xpos",                        "0"                     },
+  { "player4_left.moving.ypos",                        "9"                     },
+  { "player4_left.moving.frames",              "4"                     },
+  { "player4_left.digging",                    "RocksHeroes.pcx"       },
+  { "player4_left.digging.xpos",               "0"                     },
+  { "player4_left.digging.ypos",               "9"                     },
+  { "player4_left.digging.frames",             "4"                     },
+  { "player4_left.pushing",                    "RocksHeroes.pcx"       },
+  { "player4_left.pushing.xpos",               "4"                     },
+  { "player4_left.pushing.ypos",               "11"                    },
+  { "player4_left.pushing.frames",             "4"                     },
+  { "player4_right",                           "RocksHeroes.pcx"       },
+  { "player4_right.xpos",                      "4"                     },
+  { "player4_right.ypos",                      "10"                    },
+  { "player4_right.frames",                    "1"                     },
+  { "player4_right.moving",                    "RocksHeroes.pcx"       },
+  { "player4_right.moving.xpos",               "4"                     },
+  { "player4_right.moving.ypos",               "10"                    },
+  { "player4_right.moving.frames",             "4"                     },
+  { "player4_right.digging",                   "RocksHeroes.pcx"       },
+  { "player4_right.digging.xpos",              "4"                     },
+  { "player4_right.digging.ypos",              "10"                    },
+  { "player4_right.digging.frames",            "4"                     },
+  { "player4_right.pushing",                   "RocksHeroes.pcx"       },
+  { "player4_right.pushing.xpos",              "0"                     },
+  { "player4_right.pushing.ypos",              "11"                    },
+  { "player4_right.pushing.frames",            "4"                     },
+
+  { "wall.growing_down",                       "RocksHeroes.pcx"       },
+  { "wall.growing_down.xpos",                  "0"                     },
+  { "wall.growing_down.ypos",                  "12"                    },
+  { "wall.growing_down.frames",                        "3"                     },
+  { "wall.growing_up",                         "RocksHeroes.pcx"       },
+  { "wall.growing_up.xpos",                    "3"                     },
+  { "wall.growing_up.ypos",                    "12"                    },
+  { "wall.growing_up.frames",                  "3"                     },
+
+  { "shield_passive.activated",                        "RocksHeroes.pcx"       },
+  { "shield_passive.activated.xpos",           "1"                     },
+  { "shield_passive.activated.ypos",           "13"                    },
+  { "shield_passive.activated.frames",         "3"                     },
+  { "shield_passive.activated.pingpong",       "1"                     },
+  { "shield_active.activated",                 "RocksHeroes.pcx"       },
+  { "shield_active.activated.xpos",            "5"                     },
+  { "shield_active.activated.ypos",            "13"                    },
+  { "shield_active.activated.frames",          "3"                     },
+  { "shield_active.activated.pingpong",                "1"                     },
+
+  { "pig_down",                                        "RocksHeroes.pcx"       },
+  { "pig_down.xpos",                           "8"                     },
+  { "pig_down.ypos",                           "0"                     },
+  { "pig_down.frames",                         "1"                     },
+  { "pig_down.moving",                         "RocksHeroes.pcx"       },
+  { "pig_down.moving.xpos",                    "8"                     },
+  { "pig_down.moving.ypos",                    "0"                     },
+  { "pig_down.moving.frames",                  "4"                     },
+  { "pig_down.eating",                         "RocksHeroes.pcx"       },
+  { "pig_down.eating.xpos",                    "8"                     },
+  { "pig_down.eating.ypos",                    "0"                     },
+  { "pig_down.eating.frames",                  "4"                     },
+  { "pig_up",                                  "RocksHeroes.pcx"       },
+  { "pig_up.xpos",                             "12"                    },
+  { "pig_up.ypos",                             "0"                     },
+  { "pig_up.frames",                           "1"                     },
+  { "pig_up.moving",                           "RocksHeroes.pcx"       },
+  { "pig_up.moving.xpos",                      "12"                    },
+  { "pig_up.moving.ypos",                      "0"                     },
+  { "pig_up.moving.frames",                    "4"                     },
+  { "pig_up.eating",                           "RocksHeroes.pcx"       },
+  { "pig_up.eating.xpos",                      "12"                    },
+  { "pig_up.eating.ypos",                      "0"                     },
+  { "pig_up.eating.frames",                    "4"                     },
+  { "pig_left",                                        "RocksHeroes.pcx"       },
+  { "pig_left.xpos",                           "8"                     },
+  { "pig_left.ypos",                           "1"                     },
+  { "pig_left.frames",                         "1"                     },
+  { "pig_left.moving",                         "RocksHeroes.pcx"       },
+  { "pig_left.moving.xpos",                    "8"                     },
+  { "pig_left.moving.ypos",                    "1"                     },
+  { "pig_left.moving.frames",                  "4"                     },
+  { "pig_left.eating",                         "RocksHeroes.pcx"       },
+  { "pig_left.eating.xpos",                    "8"                     },
+  { "pig_left.eating.ypos",                    "1"                     },
+  { "pig_left.eating.frames",                  "4"                     },
+  { "pig_right",                               "RocksHeroes.pcx"       },
+  { "pig_right.xpos",                          "12"                    },
+  { "pig_right.ypos",                          "1"                     },
+  { "pig_right.frames",                                "1"                     },
+  { "pig_right.moving",                                "RocksHeroes.pcx"       },
+  { "pig_right.moving.xpos",                   "12"                    },
+  { "pig_right.moving.ypos",                   "1"                     },
+  { "pig_right.moving.frames",                 "4"                     },
+  { "pig_right.eating",                                "RocksHeroes.pcx"       },
+  { "pig_right.eating.xpos",                   "12"                    },
+  { "pig_right.eating.ypos",                   "1"                     },
+  { "pig_right.eating.frames",                 "4"                     },
+
+  { "dragon_down",                             "RocksHeroes.pcx"       },
+  { "dragon_down.xpos",                                "8"                     },
+  { "dragon_down.ypos",                                "2"                     },
+  { "dragon_down.frames",                      "1"                     },
+  { "dragon_down.moving",                      "RocksHeroes.pcx"       },
+  { "dragon_down.moving.xpos",                 "8"                     },
+  { "dragon_down.moving.ypos",                 "2"                     },
+  { "dragon_down.moving.frames",               "4"                     },
+  { "dragon_down.attacking",                   "RocksHeroes.pcx"       },
+  { "dragon_down.attacking.xpos",              "8"                     },
+  { "dragon_down.attacking.ypos",              "2"                     },
+  { "dragon_down.attacking.frames",            "4"                     },
+  { "dragon_up",                               "RocksHeroes.pcx"       },
+  { "dragon_up.xpos",                          "12"                    },
+  { "dragon_up.ypos",                          "2"                     },
+  { "dragon_up.frames",                                "1"                     },
+  { "dragon_up.moving",                                "RocksHeroes.pcx"       },
+  { "dragon_up.moving.xpos",                   "12"                    },
+  { "dragon_up.moving.ypos",                   "2"                     },
+  { "dragon_up.moving.frames",                 "4"                     },
+  { "dragon_up.attacking",                     "RocksHeroes.pcx"       },
+  { "dragon_up.attacking.xpos",                        "12"                    },
+  { "dragon_up.attacking.ypos",                        "2"                     },
+  { "dragon_up.attacking.frames",              "4"                     },
+  { "dragon_left",                             "RocksHeroes.pcx"       },
+  { "dragon_left.xpos",                                "8"                     },
+  { "dragon_left.ypos",                                "3"                     },
+  { "dragon_left.frames",                      "1"                     },
+  { "dragon_left.moving",                      "RocksHeroes.pcx"       },
+  { "dragon_left.moving.xpos",                 "8"                     },
+  { "dragon_left.moving.ypos",                 "3"                     },
+  { "dragon_left.moving.frames",               "4"                     },
+  { "dragon_left.attacking",                   "RocksHeroes.pcx"       },
+  { "dragon_left.attacking.xpos",              "8"                     },
+  { "dragon_left.attacking.ypos",              "3"                     },
+  { "dragon_left.attacking.frames",            "4"                     },
+  { "dragon_right",                            "RocksHeroes.pcx"       },
+  { "dragon_right.xpos",                       "12"                    },
+  { "dragon_right.ypos",                       "3"                     },
+  { "dragon_right.frames",                     "1"                     },
+  { "dragon_right.moving",                     "RocksHeroes.pcx"       },
+  { "dragon_right.moving.xpos",                        "12"                    },
+  { "dragon_right.moving.ypos",                        "3"                     },
+  { "dragon_right.moving.frames",              "4"                     },
+  { "dragon_right.attacking",                  "RocksHeroes.pcx"       },
+  { "dragon_right.attacking.xpos",             "12"                    },
+  { "dragon_right.attacking.ypos",             "3"                     },
+  { "dragon_right.attacking.frames",           "4"                     },
+
+  { "mole_down",                               "RocksHeroes.pcx"       },
+  { "mole_down.xpos",                          "8"                     },
+  { "mole_down.ypos",                          "4"                     },
+  { "mole_down.frames",                                "1"                     },
+  { "mole_down.moving",                                "RocksHeroes.pcx"       },
+  { "mole_down.moving.xpos",                   "8"                     },
+  { "mole_down.moving.ypos",                   "4"                     },
+  { "mole_down.moving.frames",                 "4"                     },
+  { "mole_down.digging",                       "RocksHeroes.pcx"       },
+  { "mole_down.digging.xpos",                  "8"                     },
+  { "mole_down.digging.ypos",                  "4"                     },
+  { "mole_down.digging.frames",                        "4"                     },
+  { "mole_up",                                 "RocksHeroes.pcx"       },
+  { "mole_up.xpos",                            "12"                    },
+  { "mole_up.ypos",                            "4"                     },
+  { "mole_up.frames",                          "1"                     },
+  { "mole_up.moving",                          "RocksHeroes.pcx"       },
+  { "mole_up.moving.xpos",                     "12"                    },
+  { "mole_up.moving.ypos",                     "4"                     },
+  { "mole_up.moving.frames",                   "4"                     },
+  { "mole_up.digging",                         "RocksHeroes.pcx"       },
+  { "mole_up.digging.xpos",                    "12"                    },
+  { "mole_up.digging.ypos",                    "4"                     },
+  { "mole_up.digging.frames",                  "4"                     },
+  { "mole_left",                               "RocksHeroes.pcx"       },
+  { "mole_left.xpos",                          "8"                     },
+  { "mole_left.ypos",                          "5"                     },
+  { "mole_left.frames",                                "1"                     },
+  { "mole_left.moving",                                "RocksHeroes.pcx"       },
+  { "mole_left.moving.xpos",                   "8"                     },
+  { "mole_left.moving.ypos",                   "5"                     },
+  { "mole_left.moving.frames",                 "4"                     },
+  { "mole_left.digging",                       "RocksHeroes.pcx"       },
+  { "mole_left.digging.xpos",                  "8"                     },
+  { "mole_left.digging.ypos",                  "5"                     },
+  { "mole_left.digging.frames",                        "4"                     },
+  { "mole_right",                              "RocksHeroes.pcx"       },
+  { "mole_right.xpos",                         "12"                    },
+  { "mole_right.ypos",                         "5"                     },
+  { "mole_right.frames",                       "1"                     },
+  { "mole_right.moving",                       "RocksHeroes.pcx"       },
+  { "mole_right.moving.xpos",                  "12"                    },
+  { "mole_right.moving.ypos",                  "5"                     },
+  { "mole_right.moving.frames",                        "4"                     },
+  { "mole_right.digging",                      "RocksHeroes.pcx"       },
+  { "mole_right.digging.xpos",                 "12"                    },
+  { "mole_right.digging.ypos",                 "5"                     },
+  { "mole_right.digging.frames",               "4"                     },
+
+  { "penguin_down",                            "RocksHeroes.pcx"       },
+  { "penguin_down.xpos",                       "8"                     },
+  { "penguin_down.ypos",                       "6"                     },
+  { "penguin_down.frames",                     "1"                     },
+  { "penguin_down.moving",                     "RocksHeroes.pcx"       },
+  { "penguin_down.moving.xpos",                        "8"                     },
+  { "penguin_down.moving.ypos",                        "6"                     },
+  { "penguin_down.moving.frames",              "4"                     },
+  { "penguin_up",                              "RocksHeroes.pcx"       },
+  { "penguin_up.xpos",                         "12"                    },
+  { "penguin_up.ypos",                         "6"                     },
+  { "penguin_up.frames",                       "1"                     },
+  { "penguin_up.moving",                       "RocksHeroes.pcx"       },
+  { "penguin_up.moving.xpos",                  "12"                    },
+  { "penguin_up.moving.ypos",                  "6"                     },
+  { "penguin_up.moving.frames",                        "4"                     },
+  { "penguin_left",                            "RocksHeroes.pcx"       },
+  { "penguin_left.xpos",                       "8"                     },
+  { "penguin_left.ypos",                       "7"                     },
+  { "penguin_left.frames",                     "1"                     },
+  { "penguin_left.moving",                     "RocksHeroes.pcx"       },
+  { "penguin_left.moving.xpos",                        "8"                     },
+  { "penguin_left.moving.ypos",                        "7"                     },
+  { "penguin_left.moving.frames",              "4"                     },
+  { "penguin_right",                           "RocksHeroes.pcx"       },
+  { "penguin_right.xpos",                      "12"                    },
+  { "penguin_right.ypos",                      "7"                     },
+  { "penguin_right.frames",                    "1"                     },
+  { "penguin_right.moving",                    "RocksHeroes.pcx"       },
+  { "penguin_right.moving.xpos",               "12"                    },
+  { "penguin_right.moving.ypos",               "7"                     },
+  { "penguin_right.moving.frames",             "4"                     },
+
+  { "satellite",                               "RocksHeroes.pcx"       },
+  { "satellite.xpos",                          "8"                     },
+  { "satellite.ypos",                          "9"                     },
+  { "satellite.frames",                                "1"                     },
+  { "satellite.moving",                                "RocksHeroes.pcx"       },
+  { "satellite.moving.xpos",                   "8"                     },
+  { "satellite.moving.ypos",                   "9"                     },
+  { "satellite.moving.frames",                 "8"                     },
+  { "satellite.moving.delay",                  "2"                     },
+
+  { "acid.splashing_left",                     "RocksHeroes.pcx"       },
+  { "acid.splashing_left.xpos",                        "8"                     },
+  { "acid.splashing_left.ypos",                        "10"                    },
+  { "acid.splashing_left.frames",              "4"                     },
+  { "acid.splashing_right",                    "RocksHeroes.pcx"       },
+  { "acid.splashing_right.xpos",               "12"                    },
+  { "acid.splashing_right.ypos",               "10"                    },
+  { "acid.splashing_right.frames",             "4"                     },
+
+  { "sparkling_blue",                          "RocksHeroes.pcx"       },
+  { "sparkling_blue.xpos",                     "8"                     },
+  { "sparkling_blue.ypos",                     "11"                    },
+  { "sparkling_blue.frames",                   "3"                     },
+  { "sparkling_blue.pingpong",                 "1"                     },
+  { "sparkling_white",                         "RocksHeroes.pcx"       },
+  { "sparkling_white.xpos",                    "8"                     },
+  { "sparkling_white.ypos",                    "11"                    },
+  { "sparkling_white.frames",                  "3"                     },
+  { "sparkling_white.pingpong",                        "1"                     },
+
+  { "flames_left1",                            "RocksHeroes.pcx"       },
+  { "flames_left1.xpos",                       "8"                     },
+  { "flames_left1.ypos",                       "12"                    },
+  { "flames_left1.frames",                     "2"                     },
+  { "flames_left2",                            "RocksHeroes.pcx"       },
+  { "flames_left2.xpos",                       "9"                     },
+  { "flames_left2.ypos",                       "12"                    },
+  { "flames_left2.frames",                     "2"                     },
+  { "flames_left3",                            "RocksHeroes.pcx"       },
+  { "flames_left3.xpos",                       "10"                    },
+  { "flames_left3.ypos",                       "12"                    },
+  { "flames_left3.frames",                     "2"                     },
+
+  { "flames_right1",                           "RocksHeroes.pcx"       },
+  { "flames_right1.xpos",                      "8"                     },
+  { "flames_right1.ypos",                      "13"                    },
+  { "flames_right1.frames",                    "2"                     },
+  { "flames_right2",                           "RocksHeroes.pcx"       },
+  { "flames_right2.xpos",                      "9"                     },
+  { "flames_right2.ypos",                      "13"                    },
+  { "flames_right2.frames",                    "2"                     },
+  { "flames_right3",                           "RocksHeroes.pcx"       },
+  { "flames_right3.xpos",                      "10"                    },
+  { "flames_right3.ypos",                      "13"                    },
+  { "flames_right3.frames",                    "2"                     },
+
+  { "flames_up1",                              "RocksHeroes.pcx"       },
+  { "flames_up1.xpos",                         "8"                     },
+  { "flames_up1.ypos",                         "14"                    },
+  { "flames_up1.frames",                       "2"                     },
+  { "flames_up2",                              "RocksHeroes.pcx"       },
+  { "flames_up2.xpos",                         "9"                     },
+  { "flames_up2.ypos",                         "14"                    },
+  { "flames_up2.frames",                       "2"                     },
+  { "flames_up3",                              "RocksHeroes.pcx"       },
+  { "flames_up3.xpos",                         "10"                    },
+  { "flames_up3.ypos",                         "14"                    },
+  { "flames_up3.frames",                       "2"                     },
+
+  { "flames_down1",                            "RocksHeroes.pcx"       },
+  { "flames_down1.xpos",                       "8"                     },
+  { "flames_down1.ypos",                       "15"                    },
+  { "flames_down1.frames",                     "2"                     },
+  { "flames_down2",                            "RocksHeroes.pcx"       },
+  { "flames_down2.xpos",                       "9"                     },
+  { "flames_down2.ypos",                       "15"                    },
+  { "flames_down2.frames",                     "2"                     },
+  { "flames_down3",                            "RocksHeroes.pcx"       },
+  { "flames_down3.xpos",                       "10"                    },
+  { "flames_down3.ypos",                       "15"                    },
+  { "flames_down3.frames",                     "2"                     },
+
+  { "sp_empty_space",                          "RocksSP.pcx"           },
+  { "sp_empty_space.xpos",                     "0"                     },
+  { "sp_empty_space.ypos",                     "0"                     },
+  { "sp_empty_space.frames",                   "1"                     },
+
+  { "sp_zonk",                                 "RocksSP.pcx"           },
+  { "sp_zonk.xpos",                            "1"                     },
+  { "sp_zonk.ypos",                            "0"                     },
+  { "sp_zonk.frames",                          "1"                     },
+  { "sp_zonk.falling",                         "RocksSP.pcx"           },
+  { "sp_zonk.falling.xpos",                    "1"                     },
+  { "sp_zonk.falling.ypos",                    "0"                     },
+  { "sp_zonk.falling.frames",                  "1"                     },
+  { "sp_zonk.pushing",                         "RocksSP.pcx"           },
+  { "sp_zonk.pushing.xpos",                    "0"                     },
+  { "sp_zonk.pushing.ypos",                    "6"                     },
+  { "sp_zonk.pushing.frames",                  "4"                     },
+
+  { "sp_base",                                 "RocksSP.pcx"           },
+  { "sp_base.xpos",                            "2"                     },
+  { "sp_base.ypos",                            "0"                     },
+  { "sp_base.frames",                          "1"                     },
+
+  { "sp_murphy",                               "RocksSP.pcx"           },
+  { "sp_murphy.xpos",                          "3"                     },
+  { "sp_murphy.ypos",                          "0"                     },
+  { "sp_murphy.frames",                                "1"                     },
+
+  { "sp_murphy_left",                          "RocksSP.pcx"           },
+  { "sp_murphy_left.xpos",                     "8"                     },
+  { "sp_murphy_left.ypos",                     "0"                     },
+  { "sp_murphy_left.frames",                   "1"                     },
+  { "sp_murphy_left.moving",                   "RocksSP.pcx"           },
+  { "sp_murphy_left.moving.xpos",              "8"                     },
+  { "sp_murphy_left.moving.ypos",              "0"                     },
+  { "sp_murphy_left.moving.frames",            "3"                     },
+  { "sp_murphy_left.moving.pingpong",          "1"                     },
+  { "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.pingpong",         "1"                     },
+  { "sp_murphy_left.pushing",                  "RocksSP.pcx"           },
+  { "sp_murphy_left.pushing.xpos",             "11"                    },
+  { "sp_murphy_left.pushing.ypos",             "1"                     },
+  { "sp_murphy_left.pushing.frames",           "1"                     },
+  { "sp_murphy_left.snapping",                 "RocksSP.pcx"           },
+  { "sp_murphy_left.snapping.xpos",            "9"                     },
+  { "sp_murphy_left.snapping.ypos",            "1"                     },
+  { "sp_murphy_left.snapping.frames",          "1"                     },
+
+  { "sp_murphy_right",                         "RocksSP.pcx"           },
+  { "sp_murphy_right.xpos",                    "11"                    },
+  { "sp_murphy_right.ypos",                    "0"                     },
+  { "sp_murphy_right.frames",                  "1"                     },
+  { "sp_murphy_right.moving",                  "RocksSP.pcx"           },
+  { "sp_murphy_right.moving.xpos",             "11"                    },
+  { "sp_murphy_right.moving.ypos",             "0"                     },
+  { "sp_murphy_right.moving.frames",           "3"                     },
+  { "sp_murphy_right.moving.pingpong",         "1"                     },
+  { "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.pingpong",                "1"                     },
+  { "sp_murphy_right.pushing",                 "RocksSP.pcx"           },
+  { "sp_murphy_right.pushing.xpos",            "10"                    },
+  { "sp_murphy_right.pushing.ypos",            "1"                     },
+  { "sp_murphy_right.pushing.frames",          "1"                     },
+  { "sp_murphy_right.snapping",                        "RocksSP.pcx"           },
+  { "sp_murphy_right.snapping.xpos",           "8"                     },
+  { "sp_murphy_right.snapping.ypos",           "1"                     },
+  { "sp_murphy_right.snapping.frames",         "1"                     },
+
+  { "sp_murphy_up",                            "RocksSP.pcx"           },
+  { "sp_murphy_up.xpos",                       "14"                    },
+  { "sp_murphy_up.ypos",                       "0"                     },
+  { "sp_murphy_up.frames",                     "1"                     },
+  { "sp_murphy_up.snapping",                   "RocksSP.pcx"           },
+  { "sp_murphy_up.snapping.xpos",              "14"                    },
+  { "sp_murphy_up.snapping.ypos",              "0"                     },
+  { "sp_murphy_up.snapping.frames",            "1"                     },
+
+  { "sp_murphy_down",                          "RocksSP.pcx"           },
+  { "sp_murphy_down.xpos",                     "15"                    },
+  { "sp_murphy_down.ypos",                     "0"                     },
+  { "sp_murphy_down.frames",                   "1"                     },
+  { "sp_murphy_down.snapping",                 "RocksSP.pcx"           },
+  { "sp_murphy_down.snapping.xpos",            "15"                    },
+  { "sp_murphy_down.snapping.ypos",            "0"                     },
+  { "sp_murphy_down.snapping.frames",          "1"                     },
+
+  { "sp_murphy_clone",                         "RocksSP.pcx"           },
+  { "sp_murphy_clone.xpos",                    "3"                     },
+  { "sp_murphy_clone.ypos",                    "0"                     },
+  { "sp_murphy_clone.frames",                  "1"                     },
+
+  { "sp_infotron",                             "RocksSP.pcx"           },
+  { "sp_infotron.xpos",                                "4"                     },
+  { "sp_infotron.ypos",                                "0"                     },
+  { "sp_infotron.frames",                      "1"                     },
+  { "sp_infotron.falling",                     "RocksSP.pcx"           },
+  { "sp_infotron.falling.xpos",                        "4"                     },
+  { "sp_infotron.falling.ypos",                        "0"                     },
+  { "sp_infotron.falling.frames",              "1"                     },
+
+  { "sp_chip_single",                          "RocksSP.pcx"           },
+  { "sp_chip_single.xpos",                     "5"                     },
+  { "sp_chip_single.ypos",                     "0"                     },
+  { "sp_chip_single.frames",                   "1"                     },
+  { "sp_chip_left",                            "RocksSP.pcx"           },
+  { "sp_chip_left.xpos",                       "2"                     },
+  { "sp_chip_left.ypos",                       "3"                     },
+  { "sp_chip_left.frames",                     "1"                     },
+  { "sp_chip_right",                           "RocksSP.pcx"           },
+  { "sp_chip_right.xpos",                      "3"                     },
+  { "sp_chip_right.ypos",                      "3"                     },
+  { "sp_chip_right.frames",                    "1"                     },
+  { "sp_chip_upper",                           "RocksSP.pcx"           },
+  { "sp_chip_upper.xpos",                      "6"                     },
+  { "sp_chip_upper.ypos",                      "4"                     },
+  { "sp_chip_upper.frames",                    "1"                     },
+  { "sp_chip_lower",                           "RocksSP.pcx"           },
+  { "sp_chip_lower.xpos",                      "7"                     },
+  { "sp_chip_lower.ypos",                      "4"                     },
+  { "sp_chip_lower.frames",                    "1"                     },
+
+  { "sp_hard_gray",                            "RocksSP.pcx"           },
+  { "sp_hard_gray.xpos",                       "6"                     },
+  { "sp_hard_gray.ypos",                       "0"                     },
+  { "sp_hard_gray.frames",                     "1"                     },
+  { "sp_hard_green",                           "RocksSP.pcx"           },
+  { "sp_hard_green.xpos",                      "5"                     },
+  { "sp_hard_green.ypos",                      "3"                     },
+  { "sp_hard_green.frames",                    "1"                     },
+  { "sp_hard_blue",                            "RocksSP.pcx"           },
+  { "sp_hard_blue.xpos",                       "6"                     },
+  { "sp_hard_blue.ypos",                       "3"                     },
+  { "sp_hard_blue.frames",                     "1"                     },
+  { "sp_hard_red",                             "RocksSP.pcx"           },
+  { "sp_hard_red.xpos",                                "7"                     },
+  { "sp_hard_red.ypos",                                "3"                     },
+  { "sp_hard_red.frames",                      "1"                     },
+  { "sp_hard_yellow",                          "RocksSP.pcx"           },
+  { "sp_hard_yellow.xpos",                     "0"                     },
+  { "sp_hard_yellow.ypos",                     "4"                     },
+  { "sp_hard_yellow.frames",                   "1"                     },
+
+  { "sp_exit_closed",                          "RocksSP.pcx"           },
+  { "sp_exit_closed.xpos",                     "7"                     },
+  { "sp_exit_closed.ypos",                     "0"                     },
+  { "sp_exit_closed.frames",                   "1"                     },
+  { "sp_exit_open",                            "RocksSP.pcx"           },
+  { "sp_exit_open.xpos",                       "7"                     },
+  { "sp_exit_open.ypos",                       "0"                     },
+  { "sp_exit_open.frames",                     "1"                     },
+
+  { "sp_disk_orange",                          "RocksSP.pcx"           },
+  { "sp_disk_orange.xpos",                     "0"                     },
+  { "sp_disk_orange.ypos",                     "1"                     },
+  { "sp_disk_orange.frames",                   "1"                     },
+  { "sp_disk_orange.falling",                  "RocksSP.pcx"           },
+  { "sp_disk_orange.falling.xpos",             "0"                     },
+  { "sp_disk_orange.falling.ypos",             "1"                     },
+  { "sp_disk_orange.falling.frames",           "1"                     },
+  { "sp_disk_orange.pushing",                  "RocksSP.pcx"           },
+  { "sp_disk_orange.pushing.xpos",             "0"                     },
+  { "sp_disk_orange.pushing.ypos",             "1"                     },
+  { "sp_disk_orange.pushing.frames",           "1"                     },
+
+  { "sp_disk_yellow",                          "RocksSP.pcx"           },
+  { "sp_disk_yellow.xpos",                     "2"                     },
+  { "sp_disk_yellow.ypos",                     "2"                     },
+  { "sp_disk_yellow.frames",                   "1"                     },
+  { "sp_disk_yellow.pushing",                  "RocksSP.pcx"           },
+  { "sp_disk_yellow.pushing.xpos",             "2"                     },
+  { "sp_disk_yellow.pushing.ypos",             "2"                     },
+  { "sp_disk_yellow.pushing.frames",           "1"                     },
+
+  { "sp_disk_red",                             "RocksSP.pcx"           },
+  { "sp_disk_red.xpos",                                "4"                     },
+  { "sp_disk_red.ypos",                                "2"                     },
+  { "sp_disk_red.frames",                      "1"                     },
+  { "sp_disk_red.collecting",                  "RocksSP.pcx"           },
+  { "sp_disk_red.collecting.xpos",             "8"                     },
+  { "sp_disk_red.collecting.ypos",             "5"                     },
+  { "sp_disk_red.collecting.frames",           "8"                     },
+
+  { "sp_port1_right",                          "RocksSP.pcx"           },
+  { "sp_port1_right.xpos",                     "1"                     },
+  { "sp_port1_right.ypos",                     "1"                     },
+  { "sp_port1_right.frames",                   "1"                     },
+  { "sp_port1_down",                           "RocksSP.pcx"           },
+  { "sp_port1_down.xpos",                      "2"                     },
+  { "sp_port1_down.ypos",                      "1"                     },
+  { "sp_port1_down.frames",                    "1"                     },
+  { "sp_port1_left",                           "RocksSP.pcx"           },
+  { "sp_port1_left.xpos",                      "3"                     },
+  { "sp_port1_left.ypos",                      "1"                     },
+  { "sp_port1_left.frames",                    "1"                     },
+  { "sp_port1_up",                             "RocksSP.pcx"           },
+  { "sp_port1_up.xpos",                                "4"                     },
+  { "sp_port1_up.ypos",                                "1"                     },
+  { "sp_port1_up.frames",                      "1"                     },
+  { "sp_port2_right",                          "RocksSP.pcx"           },
+  { "sp_port2_right.xpos",                     "5"                     },
+  { "sp_port2_right.ypos",                     "1"                     },
+  { "sp_port2_right.frames",                   "1"                     },
+  { "sp_port2_down",                           "RocksSP.pcx"           },
+  { "sp_port2_down.xpos",                      "6"                     },
+  { "sp_port2_down.ypos",                      "1"                     },
+  { "sp_port2_down.frames",                    "1"                     },
+  { "sp_port2_left",                           "RocksSP.pcx"           },
+  { "sp_port2_left.xpos",                      "7"                     },
+  { "sp_port2_left.ypos",                      "1"                     },
+  { "sp_port2_left.frames",                    "1"                     },
+  { "sp_port2_up",                             "RocksSP.pcx"           },
+  { "sp_port2_up.xpos",                                "0"                     },
+  { "sp_port2_up.ypos",                                "2"                     },
+  { "sp_port2_up.frames",                      "1"                     },
+  { "sp_port_x",                               "RocksSP.pcx"           },
+  { "sp_port_x.xpos",                          "6"                     },
+  { "sp_port_x.ypos",                          "2"                     },
+  { "sp_port_x.frames",                                "1"                     },
+  { "sp_port_y",                               "RocksSP.pcx"           },
+  { "sp_port_y.xpos",                          "5"                     },
+  { "sp_port_y.ypos",                          "2"                     },
+  { "sp_port_y.frames",                                "1"                     },
+  { "sp_port_xy",                              "RocksSP.pcx"           },
+  { "sp_port_xy.xpos",                         "7"                     },
+  { "sp_port_xy.ypos",                         "2"                     },
+  { "sp_port_xy.frames",                       "1"                     },
+
+  { "sp_sniksnak",                             "RocksSP.pcx"           },
+  { "sp_sniksnak.xpos",                                "1"                     },
+  { "sp_sniksnak.ypos",                                "2"                     },
+  { "sp_sniksnak.frames",                      "1"                     },
+  { "sp_sniksnak_left",                                "RocksSP.pcx"           },
+  { "sp_sniksnak_left.xpos",                   "8"                     },
+  { "sp_sniksnak_left.ypos",                   "8"                     },
+  { "sp_sniksnak_left.frames",                 "1"                     },
+  { "sp_sniksnak_left.moving",                 "RocksSP.pcx"           },
+  { "sp_sniksnak_left.moving.xpos",            "8"                     },
+  { "sp_sniksnak_left.moving.ypos",            "8"                     },
+  { "sp_sniksnak_left.moving.frames",          "4"                     },
+  { "sp_sniksnak_left.moving.pingpong",                "1"                     },
+  { "sp_sniksnak_right",                       "RocksSP.pcx"           },
+  { "sp_sniksnak_right.xpos",                  "12"                    },
+  { "sp_sniksnak_right.ypos",                  "8"                     },
+  { "sp_sniksnak_right.frames",                        "1"                     },
+  { "sp_sniksnak_right.moving",                        "RocksSP.pcx"           },
+  { "sp_sniksnak_right.moving.xpos",           "12"                    },
+  { "sp_sniksnak_right.moving.ypos",           "8"                     },
+  { "sp_sniksnak_right.moving.frames",         "4"                     },
+  { "sp_sniksnak_right.moving.pingpong",       "1"                     },
+  { "sp_sniksnak_up",                          "RocksSP.pcx"           },
+  { "sp_sniksnak_up.xpos",                     "8"                     },
+  { "sp_sniksnak_up.ypos",                     "9"                     },
+  { "sp_sniksnak_up.frames",                   "1"                     },
+  { "sp_sniksnak_up.moving",                   "RocksSP.pcx"           },
+  { "sp_sniksnak_up.moving.xpos",              "8"                     },
+  { "sp_sniksnak_up.moving.ypos",              "9"                     },
+  { "sp_sniksnak_up.moving.frames",            "4"                     },
+  { "sp_sniksnak_up.moving.pingpong",          "1"                     },
+  { "sp_sniksnak_down",                                "RocksSP.pcx"           },
+  { "sp_sniksnak_down.xpos",                   "12"                    },
+  { "sp_sniksnak_down.ypos",                   "9"                     },
+  { "sp_sniksnak_down.frames",                 "1"                     },
+  { "sp_sniksnak_down.moving",                 "RocksSP.pcx"           },
+  { "sp_sniksnak_down.moving.xpos",            "12"                    },
+  { "sp_sniksnak_down.moving.ypos",            "9"                     },
+  { "sp_sniksnak_down.moving.frames",          "4"                     },
+  { "sp_sniksnak_down.moving.pingpong",                "1"                     },
+
+  { "sp_electron",                             "RocksSP.pcx"           },
+  { "sp_electron.xpos",                                "0"                     },
+  { "sp_electron.ypos",                                "3"                     },
+  { "sp_electron.frames",                      "1"                     },
+  { "sp_electron.moving",                      "RocksSP.pcx"           },
+  { "sp_electron.moving.xpos",                 "8"                     },
+  { "sp_electron.moving.ypos",                 "10"                    },
+  { "sp_electron.moving.frames",               "8"                     },
+
+  { "sp_terminal",                             "RocksSP.pcx"           },
+  { "sp_terminal.xpos",                                "3"                     },
+  { "sp_terminal.ypos",                                "2"                     },
+  { "sp_terminal.frames",                      "1"                     },
+  { "sp_terminal.running",                     "RocksSP.pcx"           },
+  { "sp_terminal.running.xpos",                        "8"                     },
+  { "sp_terminal.running.ypos",                        "11"                    },
+  { "sp_terminal.running.frames",              "7"                     },
+  { "sp_terminal_active",                      "RocksSP.pcx"           },
+  { "sp_terminal_active.xpos",                 "8"                     },
+  { "sp_terminal_active.ypos",                 "12"                    },
+  { "sp_terminal_active.frames",               "1"                     },
+  { "sp_terminal_active.running",              "RocksSP.pcx"           },
+  { "sp_terminal_active.running.xpos",         "8"                     },
+  { "sp_terminal_active.running.ypos",         "12"                    },
+  { "sp_terminal_active.running.frames",       "7"                     },
+
+  { "sp_buggy_base",                           "RocksSP.pcx"           },
+  { "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",           "8"                     },
+  { "sp_buggy_base.activating.ypos",           "6"                     },
+  { "sp_buggy_base.activating.frames",         "4"                     },
+
+  { "sp_hard_base1",                           "RocksSP.pcx"           },
+  { "sp_hard_base1.xpos",                      "4"                     },
+  { "sp_hard_base1.ypos",                      "3"                     },
+  { "sp_hard_base1.frames",                    "1"                     },
+  { "sp_hard_base2",                           "RocksSP.pcx"           },
+  { "sp_hard_base2.xpos",                      "1"                     },
+  { "sp_hard_base2.ypos",                      "4"                     },
+  { "sp_hard_base2.frames",                    "1"                     },
+  { "sp_hard_base3",                           "RocksSP.pcx"           },
+  { "sp_hard_base3.xpos",                      "2"                     },
+  { "sp_hard_base3.ypos",                      "4"                     },
+  { "sp_hard_base3.frames",                    "1"                     },
+  { "sp_hard_base4",                           "RocksSP.pcx"           },
+  { "sp_hard_base4.xpos",                      "3"                     },
+  { "sp_hard_base4.ypos",                      "4"                     },
+  { "sp_hard_base4.frames",                    "1"                     },
+  { "sp_hard_base5",                           "RocksSP.pcx"           },
+  { "sp_hard_base5.xpos",                      "4"                     },
+  { "sp_hard_base5.ypos",                      "4"                     },
+  { "sp_hard_base5.frames",                    "1"                     },
+  { "sp_hard_base6",                           "RocksSP.pcx"           },
+  { "sp_hard_base6.xpos",                      "5"                     },
+  { "sp_hard_base6.ypos",                      "4"                     },
+  { "sp_hard_base6.frames",                    "1"                     },
+
+  { "invisible_steelwall",                     "RocksSP.pcx"           },
+  { "invisible_steelwall.xpos",                        "3"                     },
+  { "invisible_steelwall.ypos",                        "5"                     },
+  { "invisible_steelwall.frames",              "1"                     },
+  { "invisible_steelwall_on",                  "RocksSP.pcx"           },
+  { "invisible_steelwall_on.xpos",             "1"                     },
+  { "invisible_steelwall_on.ypos",             "5"                     },
+  { "invisible_steelwall_on.frames",           "1"                     },
+
+  { "invisible_sand",                          "RocksSP.pcx"           },
+  { "invisible_sand.xpos",                     "6"                     },
+  { "invisible_sand.ypos",                     "5"                     },
+  { "invisible_sand.frames",                   "1"                     },
+  { "invisible_sand_on",                       "RocksSP.pcx"           },
+  { "invisible_sand_on.xpos",                  "2"                     },
+  { "invisible_sand_on.ypos",                  "5"                     },
+  { "invisible_sand_on.frames",                        "1"                     },
+
+  { "invisible_wall",                          "RocksSP.pcx"           },
+  { "invisible_wall.xpos",                     "7"                     },
+  { "invisible_wall.ypos",                     "5"                     },
+  { "invisible_wall.frames",                   "1"                     },
+  { "invisible_wall_on",                       "RocksSP.pcx"           },
+  { "invisible_wall_on.xpos",                  "5"                     },
+  { "invisible_wall_on.ypos",                  "5"                     },
+  { "invisible_wall_on.frames",                        "1"                     },
+
+  { "em_key1",                                 "RocksSP.pcx"           },
+  { "em_key1.xpos",                            "4"                     },
+  { "em_key1.ypos",                            "6"                     },
+  { "em_key1.frames",                          "1"                     },
+  { "em_key2",                                 "RocksSP.pcx"           },
+  { "em_key2.xpos",                            "5"                     },
+  { "em_key2.ypos",                            "6"                     },
+  { "em_key2.frames",                          "1"                     },
+  { "em_key3",                                 "RocksSP.pcx"           },
+  { "em_key3.xpos",                            "6"                     },
+  { "em_key3.ypos",                            "6"                     },
+  { "em_key3.frames",                          "1"                     },
+  { "em_key4",                                 "RocksSP.pcx"           },
+  { "em_key4.xpos",                            "7"                     },
+  { "em_key4.ypos",                            "6"                     },
+  { "em_key4.frames",                          "1"                     },
+
+  { "em_gate1",                                        "RocksSP.pcx"           },
+  { "em_gate1.xpos",                           "0"                     },
+  { "em_gate1.ypos",                           "7"                     },
+  { "em_gate1.frames",                         "1"                     },
+  { "em_gate2",                                        "RocksSP.pcx"           },
+  { "em_gate2.xpos",                           "1"                     },
+  { "em_gate2.ypos",                           "7"                     },
+  { "em_gate2.frames",                         "1"                     },
+  { "em_gate3",                                        "RocksSP.pcx"           },
+  { "em_gate3.xpos",                           "2"                     },
+  { "em_gate3.ypos",                           "7"                     },
+  { "em_gate3.frames",                         "1"                     },
+  { "em_gate4",                                        "RocksSP.pcx"           },
+  { "em_gate4.xpos",                           "3"                     },
+  { "em_gate4.ypos",                           "7"                     },
+  { "em_gate4.frames",                         "1"                     },
+  { "em_gate1_gray",                           "RocksSP.pcx"           },
+  { "em_gate1_gray.xpos",                      "4"                     },
+  { "em_gate1_gray.ypos",                      "7"                     },
+  { "em_gate1_gray.frames",                    "1"                     },
+  { "em_gate2_gray",                           "RocksSP.pcx"           },
+  { "em_gate2_gray.xpos",                      "5"                     },
+  { "em_gate2_gray.ypos",                      "7"                     },
+  { "em_gate2_gray.frames",                    "1"                     },
+  { "em_gate3_gray",                           "RocksSP.pcx"           },
+  { "em_gate3_gray.xpos",                      "6"                     },
+  { "em_gate3_gray.ypos",                      "7"                     },
+  { "em_gate3_gray.frames",                    "1"                     },
+  { "em_gate4_gray",                           "RocksSP.pcx"           },
+  { "em_gate4_gray.xpos",                      "7"                     },
+  { "em_gate4_gray.ypos",                      "7"                     },
+  { "em_gate4_gray.frames",                    "1"                     },
+
+  { "sp_explosion",                            "RocksSP.pcx"           },
+  { "sp_explosion.xpos",                       "8"                     },
+  { "sp_explosion.ypos",                       "3"                     },
+  { "sp_explosion.frames",                     "8"                     },
+  { "sp_explosion_infotron",                   "RocksSP.pcx"           },
+  { "sp_explosion_infotron.xpos",              "8"                     },
+  { "sp_explosion_infotron.ypos",              "4"                     },
+  { "sp_explosion_infotron.frames",            "8"                     },
+
+  { "conveyor_belt1_middle",                   "RocksDC.pcx"           },
+  { "conveyor_belt1_middle.xpos",              "0"                     },
+  { "conveyor_belt1_middle.ypos",              "0"                     },
+  { "conveyor_belt1_middle.frames",            "1"                     },
+  { "conveyor_belt1_middle.running",           "RocksDC.pcx"           },
+  { "conveyor_belt1_middle.running.xpos",      "0"                     },
+  { "conveyor_belt1_middle.running.ypos",      "0"                     },
+  { "conveyor_belt1_middle.running.frames",    "8"                     },
+  { "conveyor_belt1_left",                     "RocksDC.pcx"           },
+  { "conveyor_belt1_left.xpos",                        "0"                     },
+  { "conveyor_belt1_left.ypos",                        "1"                     },
+  { "conveyor_belt1_left.frames",              "1"                     },
+  { "conveyor_belt1_left.running",             "RocksDC.pcx"           },
+  { "conveyor_belt1_left.running.xpos",                "0"                     },
+  { "conveyor_belt1_left.running.ypos",                "1"                     },
+  { "conveyor_belt1_left.running.frames",      "8"                     },
+  { "conveyor_belt1_right",                    "RocksDC.pcx"           },
+  { "conveyor_belt1_right.xpos",               "0"                     },
+  { "conveyor_belt1_right.ypos",               "2"                     },
+  { "conveyor_belt1_right.frames",             "1"                     },
+  { "conveyor_belt1_right.running",            "RocksDC.pcx"           },
+  { "conveyor_belt1_right.running.xpos",       "0"                     },
+  { "conveyor_belt1_right.running.ypos",       "2"                     },
+  { "conveyor_belt1_right.running.frames",     "8"                     },
+  { "conveyor_belt1_switch_left",              "RocksDC.pcx"           },
+  { "conveyor_belt1_switch_left.xpos",         "0"                     },
+  { "conveyor_belt1_switch_left.ypos",         "12"                    },
+  { "conveyor_belt1_switch_left.frames",       "1"                     },
+  { "conveyor_belt1_switch_middle",            "RocksDC.pcx"           },
+  { "conveyor_belt1_switch_middle.xpos",       "0"                     },
+  { "conveyor_belt1_switch_middle.ypos",       "13"                    },
+  { "conveyor_belt1_switch_middle.frames",     "1"                     },
+  { "conveyor_belt1_switch_right",             "RocksDC.pcx"           },
+  { "conveyor_belt1_switch_right.xpos",                "0"                     },
+  { "conveyor_belt1_switch_right.ypos",                "14"                    },
+  { "conveyor_belt1_switch_right.frames",      "1"                     },
+
+  { "conveyor_belt2_middle",                   "RocksDC.pcx"           },
+  { "conveyor_belt2_middle.xpos",              "0"                     },
+  { "conveyor_belt2_middle.ypos",              "3"                     },
+  { "conveyor_belt2_middle.frames",            "1"                     },
+  { "conveyor_belt2_middle.running",           "RocksDC.pcx"           },
+  { "conveyor_belt2_middle.running.xpos",      "0"                     },
+  { "conveyor_belt2_middle.running.ypos",      "3"                     },
+  { "conveyor_belt2_middle.running.frames",    "8"                     },
+  { "conveyor_belt2_left",                     "RocksDC.pcx"           },
+  { "conveyor_belt2_left.xpos",                        "0"                     },
+  { "conveyor_belt2_left.ypos",                        "4"                     },
+  { "conveyor_belt2_left.frames",              "1"                     },
+  { "conveyor_belt2_left.running",             "RocksDC.pcx"           },
+  { "conveyor_belt2_left.running.xpos",                "0"                     },
+  { "conveyor_belt2_left.running.ypos",                "4"                     },
+  { "conveyor_belt2_left.running.frames",      "8"                     },
+  { "conveyor_belt2_right",                    "RocksDC.pcx"           },
+  { "conveyor_belt2_right.xpos",               "0"                     },
+  { "conveyor_belt2_right.ypos",               "5"                     },
+  { "conveyor_belt2_right.frames",             "1"                     },
+  { "conveyor_belt2_right.running",            "RocksDC.pcx"           },
+  { "conveyor_belt2_right.running.xpos",       "0"                     },
+  { "conveyor_belt2_right.running.ypos",       "5"                     },
+  { "conveyor_belt2_right.running.frames",     "8"                     },
+  { "conveyor_belt2_switch_left",              "RocksDC.pcx"           },
+  { "conveyor_belt2_switch_left.xpos",         "1"                     },
+  { "conveyor_belt2_switch_left.ypos",         "12"                    },
+  { "conveyor_belt2_switch_left.frames",       "1"                     },
+  { "conveyor_belt2_switch_middle",            "RocksDC.pcx"           },
+  { "conveyor_belt2_switch_middle.xpos",       "1"                     },
+  { "conveyor_belt2_switch_middle.ypos",       "13"                    },
+  { "conveyor_belt2_switch_middle.frames",     "1"                     },
+  { "conveyor_belt2_switch_right",             "RocksDC.pcx"           },
+  { "conveyor_belt2_switch_right.xpos",                "1"                     },
+  { "conveyor_belt2_switch_right.ypos",                "14"                    },
+  { "conveyor_belt2_switch_right.frames",      "1"                     },
+
+  { "conveyor_belt3_middle",                   "RocksDC.pcx"           },
+  { "conveyor_belt3_middle.xpos",              "0"                     },
+  { "conveyor_belt3_middle.ypos",              "6"                     },
+  { "conveyor_belt3_middle.frames",            "1"                     },
+  { "conveyor_belt3_middle.running",           "RocksDC.pcx"           },
+  { "conveyor_belt3_middle.running.xpos",      "0"                     },
+  { "conveyor_belt3_middle.running.ypos",      "6"                     },
+  { "conveyor_belt3_middle.running.frames",    "8"                     },
+  { "conveyor_belt3_left",                     "RocksDC.pcx"           },
+  { "conveyor_belt3_left.xpos",                        "0"                     },
+  { "conveyor_belt3_left.ypos",                        "7"                     },
+  { "conveyor_belt3_left.frames",              "1"                     },
+  { "conveyor_belt3_left.running",             "RocksDC.pcx"           },
+  { "conveyor_belt3_left.running.xpos",                "0"                     },
+  { "conveyor_belt3_left.running.ypos",                "7"                     },
+  { "conveyor_belt3_left.running.frames",      "8"                     },
+  { "conveyor_belt3_right",                    "RocksDC.pcx"           },
+  { "conveyor_belt3_right.xpos",               "0"                     },
+  { "conveyor_belt3_right.ypos",               "8"                     },
+  { "conveyor_belt3_right.frames",             "1"                     },
+  { "conveyor_belt3_right.running",            "RocksDC.pcx"           },
+  { "conveyor_belt3_right.running.xpos",       "0"                     },
+  { "conveyor_belt3_right.running.ypos",       "8"                     },
+  { "conveyor_belt3_right.running.frames",     "8"                     },
+  { "conveyor_belt3_switch_left",              "RocksDC.pcx"           },
+  { "conveyor_belt3_switch_left.xpos",         "2"                     },
+  { "conveyor_belt3_switch_left.ypos",         "12"                    },
+  { "conveyor_belt3_switch_left.frames",       "1"                     },
+  { "conveyor_belt3_switch_middle",            "RocksDC.pcx"           },
+  { "conveyor_belt3_switch_middle.xpos",       "2"                     },
+  { "conveyor_belt3_switch_middle.ypos",       "13"                    },
+  { "conveyor_belt3_switch_middle.frames",     "1"                     },
+  { "conveyor_belt3_switch_right",             "RocksDC.pcx"           },
+  { "conveyor_belt3_switch_right.xpos",                "2"                     },
+  { "conveyor_belt3_switch_right.ypos",                "14"                    },
+  { "conveyor_belt3_switch_right.frames",      "1"                     },
+
+  { "conveyor_belt4_middle",                   "RocksDC.pcx"           },
+  { "conveyor_belt4_middle.xpos",              "0"                     },
+  { "conveyor_belt4_middle.ypos",              "9"                     },
+  { "conveyor_belt4_middle.frames",            "1"                     },
+  { "conveyor_belt4_middle.running",           "RocksDC.pcx"           },
+  { "conveyor_belt4_middle.running.xpos",      "0"                     },
+  { "conveyor_belt4_middle.running.ypos",      "9"                     },
+  { "conveyor_belt4_middle.running.frames",    "8"                     },
+  { "conveyor_belt4_left",                     "RocksDC.pcx"           },
+  { "conveyor_belt4_left.xpos",                        "0"                     },
+  { "conveyor_belt4_left.ypos",                        "10"                    },
+  { "conveyor_belt4_left.frames",              "1"                     },
+  { "conveyor_belt4_left.running",             "RocksDC.pcx"           },
+  { "conveyor_belt4_left.running.xpos",                "0"                     },
+  { "conveyor_belt4_left.running.ypos",                "10"                    },
+  { "conveyor_belt4_left.running.frames",      "8"                     },
+  { "conveyor_belt4_right",                    "RocksDC.pcx"           },
+  { "conveyor_belt4_right.xpos",               "0"                     },
+  { "conveyor_belt4_right.ypos",               "11"                    },
+  { "conveyor_belt4_right.frames",             "1"                     },
+  { "conveyor_belt4_right.running",            "RocksDC.pcx"           },
+  { "conveyor_belt4_right.running.xpos",       "0"                     },
+  { "conveyor_belt4_right.running.ypos",       "11"                    },
+  { "conveyor_belt4_right.running.frames",     "8"                     },
+  { "conveyor_belt4_switch_left",              "RocksDC.pcx"           },
+  { "conveyor_belt4_switch_left.xpos",         "3"                     },
+  { "conveyor_belt4_switch_left.ypos",         "12"                    },
+  { "conveyor_belt4_switch_left.frames",       "1"                     },
+  { "conveyor_belt4_switch_middle",            "RocksDC.pcx"           },
+  { "conveyor_belt4_switch_middle.xpos",       "3"                     },
+  { "conveyor_belt4_switch_middle.ypos",       "13"                    },
+  { "conveyor_belt4_switch_middle.frames",     "1"                     },
+  { "conveyor_belt4_switch_right",             "RocksDC.pcx"           },
+  { "conveyor_belt4_switch_right.xpos",                "3"                     },
+  { "conveyor_belt4_switch_right.ypos",                "14"                    },
+  { "conveyor_belt4_switch_right.frames",      "1"                     },
+
+  { "switchgate_switch_up",                    "RocksDC.pcx"           },
+  { "switchgate_switch_up.xpos",               "4"                     },
+  { "switchgate_switch_up.ypos",               "12"                    },
+  { "switchgate_switch_up.frames",             "1"                     },
+  { "switchgate_switch_down",                  "RocksDC.pcx"           },
+  { "switchgate_switch_down.xpos",             "5"                     },
+  { "switchgate_switch_down.ypos",             "12"                    },
+  { "switchgate_switch_down.frames",           "1"                     },
+
+  { "light_switch_off",                                "RocksDC.pcx"           },
+  { "light_switch_off.xpos",                   "6"                     },
+  { "light_switch_off.ypos",                   "12"                    },
+  { "light_switch_off.frames",                 "1"                     },
+  { "light_switch_on",                         "RocksDC.pcx"           },
+  { "light_switch_on.xpos",                    "7"                     },
+  { "light_switch_on.ypos",                    "12"                    },
+  { "light_switch_on.frames",                  "1"                     },
+
+  { "timegate_wheel",                          "RocksDC.pcx"           },
+  { "timegate_wheel.xpos",                     "0"                     },
+  { "timegate_wheel.ypos",                     "15"                    },
+  { "timegate_wheel.frames",                   "1"                     },
+  { "timegate_wheel.running",                  "RocksDC.pcx"           },
+  { "timegate_wheel.running.xpos",             "0"                     },
+  { "timegate_wheel.running.ypos",             "15"                    },
+  { "timegate_wheel.running.frames",           "4"                     },
+
+  { "envelope",                                        "RocksDC.pcx"           },
+  { "envelope.xpos",                           "4"                     },
+  { "envelope.ypos",                           "14"                    },
+  { "envelope.frames",                         "1"                     },
+
+  { "sign_exclamation",                                "RocksDC.pcx"           },
+  { "sign_exclamation.xpos",                   "5"                     },
+  { "sign_exclamation.ypos",                   "14"                    },
+  { "sign_exclamation.frames",                 "1"                     },
+
+  { "sign_stop",                               "RocksDC.pcx"           },
+  { "sign_stop.xpos",                          "6"                     },
+  { "sign_stop.ypos",                          "14"                    },
+  { "sign_stop.frames",                                "1"                     },
+
+  { "landmine",                                        "RocksDC.pcx"           },
+  { "landmine.xpos",                           "7"                     },
+  { "landmine.ypos",                           "14"                    },
+  { "landmine.frames",                         "1"                     },
+
+  { "steelwall_slanted",                       "RocksDC.pcx"           },
+  { "steelwall_slanted.xpos",                  "5"                     },
+  { "steelwall_slanted.ypos",                  "15"                    },
+  { "steelwall_slanted.frames",                        "1"                     },
+
+  { "extra_time",                              "RocksDC.pcx"           },
+  { "extra_time.xpos",                         "8"                     },
+  { "extra_time.ypos",                         "0"                     },
+  { "extra_time.frames",                       "6"                     },
+
+  { "shield_active",                           "RocksDC.pcx"           },
+  { "shield_active.xpos",                      "8"                     },
+  { "shield_active.ypos",                      "1"                     },
+  { "shield_active.frames",                    "6"                     },
+
+  { "shield_passive",                          "RocksDC.pcx"           },
+  { "shield_passive.xpos",                     "8"                     },
+  { "shield_passive.ypos",                     "2"                     },
+  { "shield_passive.frames",                   "6"                     },
+
+  { "switchgate_closed",                       "RocksDC.pcx"           },
+  { "switchgate_closed.xpos",                  "8"                     },
+  { "switchgate_closed.ypos",                  "5"                     },
+  { "switchgate_closed.frames",                        "1"                     },
+  { "switchgate.opening",                      "RocksDC.pcx"           },
+  { "switchgate.opening.xpos",                 "8"                     },
+  { "switchgate.opening.ypos",                 "5"                     },
+  { "switchgate.opening.frames",               "5"                     },
+  { "switchgate_open",                         "RocksDC.pcx"           },
+  { "switchgate_open.xpos",                    "12"                    },
+  { "switchgate_open.ypos",                    "5"                     },
+  { "switchgate_open.frames",                  "1"                     },
+  { "switchgate.closing",                      "RocksDC.pcx"           },
+  { "switchgate.closing.xpos",                 "8"                     },
+  { "switchgate.closing.ypos",                 "5"                     },
+  { "switchgate.closing.frames",               "5"                     },
+  { "switchgate.closing.reverse",              "1"                     },
+
+  { "timegate_closed",                         "RocksDC.pcx"           },
+  { "timegate_closed.xpos",                    "8"                     },
+  { "timegate_closed.ypos",                    "6"                     },
+  { "timegate_closed.frames",                  "1"                     },
+  { "timegate.opening",                                "RocksDC.pcx"           },
+  { "timegate.opening.xpos",                   "8"                     },
+  { "timegate.opening.ypos",                   "6"                     },
+  { "timegate.opening.frames",                 "5"                     },
+  { "timegate_open",                           "RocksDC.pcx"           },
+  { "timegate_open.xpos",                      "12"                    },
+  { "timegate_open.ypos",                      "6"                     },
+  { "timegate_open.frames",                    "1"                     },
+  { "timegate.closing",                                "RocksDC.pcx"           },
+  { "timegate.closing.xpos",                   "8"                     },
+  { "timegate.closing.ypos",                   "6"                     },
+  { "timegate.closing.frames",                 "5"                     },
+  { "timegate.closing.reverse",                        "1"                     },
+
+  { "balloon",                                 "RocksDC.pcx"           },
+  { "balloon.xpos",                            "12"                    },
+  { "balloon.ypos",                            "7"                     },
+  { "balloon.frames",                          "1"                     },
+  { "balloon.moving",                          "RocksDC.pcx"           },
+  { "balloon.moving.xpos",                     "12"                    },
+  { "balloon.moving.ypos",                     "7"                     },
+  { "balloon.moving.frames",                   "4"                     },
+  { "balloon.moving.pingpong",                 "1"                     },
+
+  { "balloon_windrose_left",                   "RocksDC.pcx"           },
+  { "balloon_windrose_left.xpos",              "8"                     },
+  { "balloon_windrose_left.ypos",              "7"                     },
+  { "balloon_windrose_left.frames",            "1"                     },
+  { "balloon_windrose_right",                  "RocksDC.pcx"           },
+  { "balloon_windrose_right.xpos",             "9"                     },
+  { "balloon_windrose_right.ypos",             "7"                     },
+  { "balloon_windrose_right.frames",           "1"                     },
+  { "balloon_windrose_up",                     "RocksDC.pcx"           },
+  { "balloon_windrose_up.xpos",                        "10"                    },
+  { "balloon_windrose_up.ypos",                        "7"                     },
+  { "balloon_windrose_up.frames",              "1"                     },
+  { "balloon_windrose_down",                   "RocksDC.pcx"           },
+  { "balloon_windrose_down.xpos",              "11"                    },
+  { "balloon_windrose_down.ypos",              "7"                     },
+  { "balloon_windrose_down.frames",            "1"                     },
+  { "balloon_windrose_all",                    "RocksDC.pcx"           },
+  { "balloon_windrose_all.xpos",               "7"                     },
+  { "balloon_windrose_all.ypos",               "0"                     },
+  { "balloon_windrose_all.frames",             "1"                     },
+
+  { "emc_steelwall1",                          "RocksDC.pcx"           },
+  { "emc_steelwall1.xpos",                     "14"                    },
+  { "emc_steelwall1.ypos",                     "0"                     },
+  { "emc_steelwall1.frames",                   "1"                     },
+  { "emc_steelwall2",                          "RocksDC.pcx"           },
+  { "emc_steelwall2.xpos",                     "14"                    },
+  { "emc_steelwall2.ypos",                     "0"                     },
+  { "emc_steelwall2.frames",                   "1"                     },
+  { "emc_steelwall3",                          "RocksDC.pcx"           },
+  { "emc_steelwall3.xpos",                     "14"                    },
+  { "emc_steelwall3.ypos",                     "0"                     },
+  { "emc_steelwall3.frames",                   "1"                     },
+  { "emc_steelwall4",                          "RocksDC.pcx"           },
+  { "emc_steelwall4.xpos",                     "14"                    },
+  { "emc_steelwall4.ypos",                     "0"                     },
+  { "emc_steelwall4.frames",                   "1"                     },
+
+  { "emc_wall_pillar_upper",                   "RocksDC.pcx"           },
+  { "emc_wall_pillar_upper.xpos",              "13"                    },
+  { "emc_wall_pillar_upper.ypos",              "6"                     },
+  { "emc_wall_pillar_upper.frames",            "1"                     },
+  { "emc_wall_pillar_middle",                  "RocksDC.pcx"           },
+  { "emc_wall_pillar_middle.xpos",             "14"                    },
+  { "emc_wall_pillar_middle.ypos",             "6"                     },
+  { "emc_wall_pillar_middle.frames",           "1"                     },
+  { "emc_wall_pillar_lower",                   "RocksDC.pcx"           },
+  { "emc_wall_pillar_lower.xpos",              "15"                    },
+  { "emc_wall_pillar_lower.ypos",              "6"                     },
+  { "emc_wall_pillar_lower.frames",            "1"                     },
+
+  { "emc_wall4",                               "RocksDC.pcx"           },
+  { "emc_wall4.xpos",                          "14"                    },
+  { "emc_wall4.ypos",                          "1"                     },
+  { "emc_wall4.frames",                                "1"                     },
+  { "emc_wall5",                               "RocksDC.pcx"           },
+  { "emc_wall5.xpos",                          "15"                    },
+  { "emc_wall5.ypos",                          "1"                     },
+  { "emc_wall5.frames",                                "1"                     },
+  { "emc_wall6",                               "RocksDC.pcx"           },
+  { "emc_wall6.xpos",                          "14"                    },
+  { "emc_wall6.ypos",                          "2"                     },
+  { "emc_wall6.frames",                                "1"                     },
+  { "emc_wall7",                               "RocksDC.pcx"           },
+  { "emc_wall7.xpos",                          "15"                    },
+  { "emc_wall7.ypos",                          "2"                     },
+  { "emc_wall7.frames",                                "1"                     },
+  { "emc_wall8",                               "RocksDC.pcx"           },
+  { "emc_wall8.xpos",                          "14"                    },
+  { "emc_wall8.ypos",                          "1"                     },
+  { "emc_wall8.frames",                                "1"                     },
+
+  { "arrow_blue_left",                         "RocksMore.pcx" },
+  { "arrow_blue_left.xpos",                    "0"                     },
+  { "arrow_blue_left.ypos",                    "0"                     },
+  { "arrow_blue_left.frames",                  "1"                     },
+  { "arrow_blue_right",                                "RocksMore.pcx" },
+  { "arrow_blue_right.xpos",                   "1"                     },
+  { "arrow_blue_right.ypos",                   "0"                     },
+  { "arrow_blue_right.frames",                 "1"                     },
+  { "arrow_blue_up",                           "RocksMore.pcx" },
+  { "arrow_blue_up.xpos",                      "2"                     },
+  { "arrow_blue_up.ypos",                      "0"                     },
+  { "arrow_blue_up.frames",                    "1"                     },
+  { "arrow_blue_down",                         "RocksMore.pcx" },
+  { "arrow_blue_down.xpos",                    "3"                     },
+  { "arrow_blue_down.ypos",                    "0"                     },
+  { "arrow_blue_down.frames",                  "1"                     },
+
+  { "arrow_red_left",                          "RocksMore.pcx" },
+  { "arrow_red_left.xpos",                     "0"                     },
+  { "arrow_red_left.ypos",                     "1"                     },
+  { "arrow_red_left.frames",                   "1"                     },
+  { "arrow_red_right",                         "RocksMore.pcx" },
+  { "arrow_red_right.xpos",                    "1"                     },
+  { "arrow_red_right.ypos",                    "1"                     },
+  { "arrow_red_right.frames",                  "1"                     },
+  { "arrow_red_up",                            "RocksMore.pcx" },
+  { "arrow_red_up.xpos",                       "2"                     },
+  { "arrow_red_up.ypos",                       "1"                     },
+  { "arrow_red_up.frames",                     "1"                     },
+  { "arrow_red_down",                          "RocksMore.pcx" },
+  { "arrow_red_down.xpos",                     "3"                     },
+  { "arrow_red_down.ypos",                     "1"                     },
+  { "arrow_red_down.frames",                   "1"                     },
+
+  { "scrollbar_blue",                          "RocksMore.pcx"         },
+  { "scrollbar_blue.xpos",                     "0"                     },
+  { "scrollbar_blue.ypos",                     "2"                     },
+  { "scrollbar_blue.frames",                   "1"                     },
+  { "scrollbar_red",                           "RocksMore.pcx"         },
+  { "scrollbar_red.xpos",                      "1"                     },
+  { "scrollbar_red.ypos",                      "2"                     },
+  { "scrollbar_red.frames",                    "1"                     },
+  { "scrollbar_green",                         "RocksMore.pcx"         },
+  { "scrollbar_green.xpos",                    "2"                     },
+  { "scrollbar_green.ypos",                    "2"                     },
+  { "scrollbar_green.frames",                  "1"                     },
+  { "scrollbar_yellow",                                "RocksMore.pcx"         },
+  { "scrollbar_yellow.xpos",                   "3"                     },
+  { "scrollbar_yellow.ypos",                   "2"                     },
+  { "scrollbar_yellow.frames",                 "1"                     },
+
+  { "pearl",                                   "RocksMore.pcx"         },
+  { "pearl.xpos",                              "0"                     },
+  { "pearl.ypos",                              "3"                     },
+  { "pearl.frames",                            "1"                     },
+  { "pearl.breaking",                          "RocksMore.pcx"         },
+  { "pearl.breaking.xpos",                     "0"                     },
+  { "pearl.breaking.ypos",                     "4"                     },
+  { "pearl.breaking.frames",                   "4"                     },
+
+  { "crystal",                                 "RocksMore.pcx"         },
+  { "crystal.xpos",                            "1"                     },
+  { "crystal.ypos",                            "3"                     },
+  { "crystal.frames",                          "1"                     },
+
+  { "wall_pearl",                              "RocksMore.pcx"         },
+  { "wall_pearl.xpos",                         "2"                     },
+  { "wall_pearl.ypos",                         "3"                     },
+  { "wall_pearl.frames",                       "1"                     },
+
+  { "wall_crystal",                            "RocksMore.pcx"         },
+  { "wall_crystal.xpos",                       "3"                     },
+  { "wall_crystal.ypos",                       "3"                     },
+  { "wall_crystal.frames",                     "1"                     },
+
+  { "spring",                                  "RocksMore.pcx"         },
+  { "spring.xpos",                             "0"                     },
+  { "spring.ypos",                             "5"                     },
+  { "spring.frames",                           "1"                     },
+
+  { "tube_right_down",                         "RocksMore.pcx"         },
+  { "tube_right_down.xpos",                    "1"                     },
+  { "tube_right_down.ypos",                    "5"                     },
+  { "tube_right_down.frames",                  "1"                     },
+
+  { "tube_horizontal_down",                    "RocksMore.pcx"         },
+  { "tube_horizontal_down.xpos",               "2"                     },
+  { "tube_horizontal_down.ypos",               "5"                     },
+  { "tube_horizontal_down.frames",             "1"                     },
+
+  { "tube_left_down",                          "RocksMore.pcx"         },
+  { "tube_left_down.xpos",                     "3"                     },
+  { "tube_left_down.ypos",                     "5"                     },
+  { "tube_left_down.frames",                   "1"                     },
+
+  { "tube_horizontal",                         "RocksMore.pcx"         },
+  { "tube_horizontal.xpos",                    "0"                     },
+  { "tube_horizontal.ypos",                    "6"                     },
+  { "tube_horizontal.frames",                  "1"                     },
+
+  { "tube_vertical_right",                     "RocksMore.pcx"         },
+  { "tube_vertical_right.xpos",                        "1"                     },
+  { "tube_vertical_right.ypos",                        "6"                     },
+  { "tube_vertical_right.frames",              "1"                     },
+
+  { "tube_all",                                        "RocksMore.pcx"         },
+  { "tube_all.xpos",                           "2"                     },
+  { "tube_all.ypos",                           "6"                     },
+  { "tube_all.frames",                         "1"                     },
+
+  { "tube_vertical_left",                      "RocksMore.pcx"         },
+  { "tube_vertical_left.xpos",                 "3"                     },
+  { "tube_vertical_left.ypos",                 "6"                     },
+  { "tube_vertical_left.frames",               "1"                     },
+
+  { "tube_vertical",                           "RocksMore.pcx"         },
+  { "tube_vertical.xpos",                      "0"                     },
+  { "tube_vertical.ypos",                      "7"                     },
+  { "tube_vertical.frames",                    "1"                     },
+
+  { "tube_right_up",                           "RocksMore.pcx"         },
+  { "tube_right_up.xpos",                      "1"                     },
+  { "tube_right_up.ypos",                      "7"                     },
+  { "tube_right_up.frames",                    "1"                     },
+
+  { "tube_horizontal_up",                      "RocksMore.pcx"         },
+  { "tube_horizontal_up.xpos",                 "2"                     },
+  { "tube_horizontal_up.ypos",                 "7"                     },
+  { "tube_horizontal_up.frames",               "1"                     },
+
+  { "tube_left_up",                            "RocksMore.pcx"         },
+  { "tube_left_up.xpos",                       "3"                     },
+  { "tube_left_up.ypos",                       "7"                     },
+  { "tube_left_up.frames",                     "1"                     },
+
+  { "trap_inactive",                           "RocksMore.pcx"         },
+  { "trap_inactive.xpos",                      "4"                     },
+  { "trap_inactive.ypos",                      "0"                     },
+  { "trap_inactive.frames",                    "1"                     },
+  { "trap_active",                             "RocksMore.pcx"         },
+  { "trap_active.xpos",                                "7"                     },
+  { "trap_active.ypos",                                "0"                     },
+  { "trap_active.frames",                      "1"                     },
+  { "trap.activating",                         "RocksMore.pcx"         },
+  { "trap.activating.xpos",                    "4"                     },
+  { "trap.activating.ypos",                    "0"                     },
+  { "trap.activating.frames",                  "4"                     },
+
+  { "bd_wall",                                 "RocksMore.pcx"         },
+  { "bd_wall.xpos",                            "4"                     },
+  { "bd_wall.ypos",                            "1"                     },
+  { "bd_wall.frames",                          "1"                     },
+
+  { "bd_rock",                                 "RocksMore.pcx"         },
+  { "bd_rock.xpos",                            "4"                     },
+  { "bd_rock.ypos",                            "2"                     },
+  { "bd_rock.frames",                          "1"                     },
+  { "bd_rock.falling",                         "RocksMore.pcx"         },
+  { "bd_rock.falling.xpos",                    "4"                     },
+  { "bd_rock.falling.ypos",                    "2"                     },
+  { "bd_rock.falling.frames",                  "1"                     },
+  { "bd_rock.pushing",                         "RocksMore.pcx"         },
+  { "bd_rock.pushing.xpos",                    "4"                     },
+  { "bd_rock.pushing.ypos",                    "2"                     },
+  { "bd_rock.pushing.frames",                  "4"                     },
+
+  { "dx_bomb",                                 "RocksMore.pcx"         },
+  { "dx_bomb.xpos",                            "7"                     },
+  { "dx_bomb.ypos",                            "1"                     },
+  { "dx_bomb.frames",                          "1"                     },
+
+#if 0
+  { "",                                "RocksMore.pcx"         },
+  { ".xpos",                   ""                      },
+  { ".ypos",                   ""                      },
+  { ".frames",                 ""                      },
+#endif
+
+#if 0
+  /* images for Boulder Dash style elements and actions */
+  { "bd_diamond",                      "bd_diamond.pcx"        },
+  { "bd_diamond.frame_xpos",           "0"                     },
+  { "bd_diamond.num_frames",           "1"                     },
+  { "robot_wheel",                     "bd_diamond.pcx"        },
+  { "robot_wheel.frame_xpos",          "0"                     },
+  { "robot_wheel.num_frames",          "4"                     },
+#endif
+
+  { NULL,                              NULL                    }
+};
+
+struct ConfigInfo sound_config[] =
+{
+  /* sounds for Boulder Dash style elements and actions */
+  { "bd_empty_space.digging",          "empty.wav"             },
+  { "bd_sand.digging",                 "schlurf.wav"           },
+  { "bd_diamond.collecting",           "pong.wav"              },
+  { "bd_diamond.impact",               "pling.wav"             },
+  { "bd_rock.pushing",                 "pusch.wav"             },
+  { "bd_rock.impact",                  "klopf.wav"             },
+  { "bd_magic_wall.activating",                "quirk.wav"             },
+  { "bd_magic_wall.changing",          "quirk.wav"             },
+  { "bd_magic_wall.running",           "miep.wav"              },
+  { "bd_amoeba.waiting",               SND_FILE_UNDEFINED      },
+  { "bd_amoeba.creating",              "amoebe.wav"            },
+  { "bd_amoeba.turning_to_gem",                "pling.wav"             },
+  { "bd_amoeba.turning_to_rock",       "klopf.wav"             },
+  { "bd_butterfly.moving",             "klapper.wav"           },
+  { "bd_butterfly.waiting",            "klapper.wav"           },
+  { "bd_firefly.moving",               "roehr.wav"             },
+  { "bd_firefly.waiting",              "roehr.wav"             },
+  { "bd_exit.entering",                        "buing.wav"             },
+
+  /* sounds for Supaplex style elements and actions */
+  { "sp_empty_space.digging",          "empty.wav"             },
+  { "sp_base.digging",                 "base.wav"              },
+  { "sp_buggy_base.digging",           "base.wav"              },
+  { "sp_buggy_base.activating",                "bug.wav"               },
+  { "sp_infotron.collecting",          "infotron.wav"          },
+  { "sp_infotron.impact",              "pling.wav"             },
+  { "sp_zonk.pushing",                 "zonkpush.wav"          },
+  { "sp_zonk.impact",                  "zonkdown.wav"          },
+  { "sp_disk_red.collecting",          "infotron.wav"          },
+  { "sp_disk_orange.pushing",          "zonkpush.wav"          },
+  { "sp_disk_yellow.pushing",          "pusch.wav"             },
+  { "sp_port.passing",                 "gate.wav"              },
+  { "sp_exit.entering",                        "exit.wav"              },
+  { "sp_element.exploding",            "booom.wav"             },
+  { "sp_sniksnak.moving",              SND_FILE_UNDEFINED      },
+  { "sp_sniksnak.waiting",             SND_FILE_UNDEFINED      },
+  { "sp_electron.moving",              SND_FILE_UNDEFINED      },
+  { "sp_electron.waiting",             SND_FILE_UNDEFINED      },
+  { "sp_terminal.activating",          SND_FILE_UNDEFINED      },
+
+  /* sounds for Sokoban style elements and actions */
+  { "sokoban_object.pushing",          "pusch.wav"             },
+  { "sokoban_field.filling",           "deng.wav"              },
+  { "sokoban_field.clearing",          SND_FILE_UNDEFINED      },
+  { "sokoban_game.solving",            "buing.wav"             },
+
+  /* sounds for Emerald Mine style elements and actions */
+  { "empty_space.digging",             "empty.wav"             },
+  { "sand.digging",                    "schlurf.wav"           },
+  { "emerald.collecting",              "pong.wav"              },
+  { "emerald.impact",                  "pling.wav"             },
+  { "diamond.collecting",              "pong.wav"              },
+  { "diamond.impact",                  "pling.wav"             },
+  { "diamond.breaking",                        "quirk.wav"             },
+  { "rock.pushing",                    "pusch.wav"             },
+  { "rock.impact",                     "klopf.wav"             },
+  { "bomb.pushing",                    "pusch.wav"             },
+  { "nut.pushing",                     "knurk.wav"             },
+  { "nut.cracking",                    "knack.wav"             },
+  { "nut.impact",                      "klumpf.wav"            },
+  { "dynamite.collecting",             "pong.wav"              },
+  { "dynamite.placing",                        "deng.wav"              },
+  { "dynamite.burning",                        "zisch.wav"             },
+  { "key.collecting",                  "pong.wav"              },
+  { "gate.passing",                    "gate.wav"              },
+  { "bug.moving",                      "klapper.wav"           },
+  { "bug.waiting",                     "klapper.wav"           },
+  { "spaceship.moving",                        "roehr.wav"             },
+  { "spaceship.waiting",               "roehr.wav"             },
+  { "yamyam.moving",                   SND_FILE_UNDEFINED      },
+  { "yamyam.waiting",                  "njam.wav"              },
+  { "yamyam.eating_diamond",           SND_FILE_UNDEFINED      },
+  { "robot.stepping",                  "schlurf.wav"           },
+  { "robot.waiting",                   SND_FILE_UNDEFINED      },
+  { "robot_wheel.activating",          "deng.wav"              },
+  { "robot_wheel.running",             "miep.wav"              },
+  { "magic_wall.activating",           "quirk.wav"             },
+  { "magic_wall.changing",             "quirk.wav"             },
+  { "magic_wall.running",              "miep.wav"              },
+  { "amoeba.waiting",                  SND_FILE_UNDEFINED      },
+  { "amoeba.creating",                 "amoebe.wav"            },
+  { "amoeba.dropping",                 SND_FILE_UNDEFINED      },
+  { "acid.splashing",                  "blurb.wav"             },
+  { "quicksand.filling",               SND_FILE_UNDEFINED      },
+  { "quicksand.slipping_through",      SND_FILE_UNDEFINED      },
+  { "quicksand.emptying",              SND_FILE_UNDEFINED      },
+  { "exit.opening",                    "oeffnen.wav"           },
+  { "exit.entering",                   "buing.wav"             },
+
+  /* sounds for Emerald Mine Club style elements and actions */
+  { "balloon.moving",                  SND_FILE_UNDEFINED      },
+  { "balloon.waiting",                 SND_FILE_UNDEFINED      },
+  { "balloon.pushing",                 "schlurf.wav"           },
+  { "balloon_switch.activating",       SND_FILE_UNDEFINED      },
+  { "spring.moving",                   SND_FILE_UNDEFINED      },
+  { "spring.pushing",                  "pusch.wav"             },
+  { "spring.impact",                   "klopf.wav"             },
+  { "wall.growing",                    SND_FILE_UNDEFINED      },
+
+  /* sounds for Diamond Caves style elements and actions */
+  { "pearl.collecting",                        "pong.wav"              },
+  { "pearl.breaking",                  "knack.wav"             },
+  { "pearl.impact",                    "pling.wav"             },
+  { "crystal.collecting",              "pong.wav"              },
+  { "crystal.impact",                  "pling.wav"             },
+  { "envelope.collecting",             "pong.wav"              },
+  { "sand_invisible.digging",          "schlurf.wav"           },
+  { "shield_passive.collecting",       "pong.wav"              },
+  { "shield_passive.activated",                SND_FILE_UNDEFINED      },
+  { "shield_active.collecting",                "pong.wav"              },
+  { "shield_active.activated",         SND_FILE_UNDEFINED      },
+  { "extra_time.collecting",           "gong.wav"              },
+  { "mole.moving",                     SND_FILE_UNDEFINED      },
+  { "mole.waiting",                    SND_FILE_UNDEFINED      },
+  { "mole.eating_amoeba",              "blurb.wav"             },
+  { "switchgate_switch.activating",    SND_FILE_UNDEFINED      },
+  { "switchgate.opening",              "oeffnen.wav"           },
+  { "switchgate.closing",              "oeffnen.wav"           },
+  { "switchgate.passing",              "gate.wav"              },
+  { "timegate_wheel.activating",       "deng.wav"              },
+  { "timegate_wheel.running",          "miep.wav"              },
+  { "timegate.opening",                        "oeffnen.wav"           },
+  { "timegate.closing",                        "oeffnen.wav"           },
+  { "timegate.passing",                        "gate.wav"              },
+  { "conveyor_belt_switch.activating", SND_FILE_UNDEFINED      },
+  { "conveyor_belt.running",           SND_FILE_UNDEFINED      },
+  { "light_switch.activating",         SND_FILE_UNDEFINED      },
+  { "light_switch.deactivating",       SND_FILE_UNDEFINED      },
+
+  /* sounds for DX Boulderdash style elements and actions */
+  { "dx_bomb.pushing",                 "pusch.wav"             },
+  { "trap_inactive.digging",           "schlurf.wav"           },
+  { "trap.activating",                 SND_FILE_UNDEFINED      },
+  { "tube.passing",                    SND_FILE_UNDEFINED      },
+
+  /* sounds for Rocks'n'Diamonds style elements and actions */
+  { "amoeba.turning_to_gem",           "pling.wav"             },
+  { "amoeba.turning_to_rock",          "klopf.wav"             },
+  { "speed_pill.collecting",           "pong.wav"              },
+  { "dynabomb_nr.collecting",          "pong.wav"              },
+  { "dynabomb_sz.collecting",          "pong.wav"              },
+  { "dynabomb_xl.collecting",          "pong.wav"              },
+  { "dynabomb.placing",                        "deng.wav"              },
+  { "dynabomb.burning",                        "zisch.wav"             },
+  { "satellite.moving",                        SND_FILE_UNDEFINED      },
+  { "satellite.waiting",               SND_FILE_UNDEFINED      },
+  { "satellite.pushing",               "pusch.wav"             },
+  { "lamp.activating",                 "deng.wav"              },
+  { "lamp.deactivating",               "deng.wav"              },
+  { "time_orb_full.collecting",                "gong.wav"              },
+  { "time_orb_full.impact",            "deng.wav"              },
+  { "time_orb_empty.pushing",          "pusch.wav"             },
+  { "time_orb_empty.impact",           "deng.wav"              },
+  { "gameoflife.waiting",              SND_FILE_UNDEFINED      },
+  { "gameoflife.creating",             "amoebe.wav"            },
+  { "biomaze.waiting",                 SND_FILE_UNDEFINED      },
+  { "biomaze.creating",                        "amoebe.wav"            },
+  { "pacman.moving",                   SND_FILE_UNDEFINED      },
+  { "pacman.waiting",                  SND_FILE_UNDEFINED      },
+  { "pacman.eating_amoeba",            SND_FILE_UNDEFINED      },
+  { "dark_yamyam.moving",              SND_FILE_UNDEFINED      },
+  { "dark_yamyam.waiting",             "njam.wav"              },
+  { "dark_yamyam.eating_any",          SND_FILE_UNDEFINED      },
+  { "penguin.moving",                  SND_FILE_UNDEFINED      },
+  { "penguin.waiting",                 SND_FILE_UNDEFINED      },
+  { "penguin.entering_exit",           "buing.wav"             },
+  { "pig.moving",                      SND_FILE_UNDEFINED      },
+  { "pig.waiting",                     SND_FILE_UNDEFINED      },
+  { "pig.eating_gem",                  SND_FILE_UNDEFINED      },
+  { "dragon.moving",                   SND_FILE_UNDEFINED      },
+  { "dragon.waiting",                  SND_FILE_UNDEFINED      },
+  { "dragon.attacking",                        SND_FILE_UNDEFINED      },
+
+  /* sounds for generic elements and actions */
+  { "player.dying",                    "autsch.wav"            },
+  { "element.exploding",               "roaaar.wav"            },
+
+  /* sounds for other game actions */
+  { "game.starting",                   SND_FILE_UNDEFINED      },
+  { "game.running_out_of_time",                "gong.wav"              },
+  { "game.leveltime_bonus",            "sirr.wav"              },
+  { "game.losing",                     "lachen.wav"            },
+  { "game.winning",                    SND_FILE_UNDEFINED      },
+
+  /* sounds for other non-game actions */
+  { "menu.door_opening",               "oeffnen.wav"           },
+  { "menu.door_closing",               "oeffnen.wav"           },
+  { "menu.hall_of_fame",               "halloffame.wav"        },
+  { "menu.info_screen",                        "rhythmloop.wav"        },
+
+#if 0
+  { "[not used]",                      "antigrav.wav"          },
+  { "[not used]",                      "bong.wav"              },
+  { "[not used]",                      "fuel.wav"              },
+  { "[not used]",                      "holz.wav"              },
+  { "[not used]",                      "hui.wav"               },
+  { "[not used]",                      "kabumm.wav"            },
+  { "[not used]",                      "kink.wav"              },
+  { "[not used]",                      "kling.wav"             },
+  { "[not used]",                      "krach.wav"             },
+  { "[not used]",                      "laser.wav"             },
+  { "[not used]",                      "quiek.wav"             },
+  { "[not used]",                      "rumms.wav"             },
+  { "[not used]",                      "schlopp.wav"           },
+  { "[not used]",                      "schrff.wav"            },
+  { "[not used]",                      "schwirr.wav"           },
+  { "[not used]",                      "slurp.wav"             },
+  { "[not used]",                      "sproing.wav"           },
+  { "[not used]",                      "warnton.wav"           },
+  { "[not used]",                      "whoosh.wav"            },
+  { "[not used]",                      "boom.wav"              },
+#endif
+
+  { NULL,                              NULL                    }
+};
+
+struct FileInfo *image_files;
+struct FileInfo *sound_files;
+
+struct ElementInfo element_info[MAX_ELEMENTS] =
+{
+  { "empty_space",             "empty space"                   },      /* 0 */
+  { "sand",                    "sand"                          },
+  { "wall",                    "normal wall"                   },
+  { "wall",                    "round wall"                    },
+  { "rock",                    "rock"                          },
+  { "key",                     "key"                           },
+  { "emerald",                 "emerald"                       },
+  { "exit",                    "closed exit"                   },
+  { "player",                  "player"                        },
+  { "bug",                     "bug"                           },
+  { "spaceship",               "spaceship"                     },     /* 10 */
+  { "yamyam",                  "yam yam"                       },
+  { "robot",                   "robot"                         },
+  { "wall",                    "steel wall"                    },
+  { "diamond",                 "diamond"                       },
+  { "amoeba",                  "dead amoeba"                   },
+  { "quicksand",               "empty quicksand"               },
+  { "quicksand",               "quicksand with rock"           },
+  { "amoeba",                  "amoeba drop"                   },
+  { "bomb",                    "bomb"                          },
+  { "magic_wall",              "magic wall"                    },     /* 20 */
+  { "speed_pill",              "speed pill"                    },
+  { "acid",                    "acid pool"                     },
+  { "amoeba",                  "dropping amoeba"               },
+  { "amoeba",                  "normal amoeba"                 },
+  { "nut",                     "nut with emerald"              },
+  { "gameoflife",              "Conway's wall of life"         },
+  { "biomaze",                 "biomaze"                       },
+  { "dynamite",                        "burning dynamite"              },
+  { NULL,                      "unknown"                       },
+  { "robot_wheel",             "magic wheel"                   },     /* 30 */
+  { "robot_wheel",             "magic wheel (running)"         },
+  { "key",                     "red key"                       },
+  { "key",                     "yellow key"                    },
+  { "key",                     "green key"                     },
+  { "key",                     "blue key"                      },
+  { "gate",                    "red door"                      },
+  { "gate",                    "yellow door"                   },
+  { "gate",                    "green door"                    },
+  { "gate",                    "blue door"                     },
+  { "gate",                    "gray door (opened by red key)" },     /* 40 */
+  { "gate",                    "gray door (opened by yellow key)"},
+  { "gate",                    "gray door (opened by green key)"},
+  { "gate",                    "gray door (opened by blue key)"},
+  { "dynamite",                        "dynamite"                      },
+  { "pacman",                  "pac man"                       },
+  { "wall",                    "invisible normal wall"         },
+  { "lamp",                    "lamp (off)"                    },
+  { "lamp",                    "lamp (on)"                     },
+  { "wall",                    "wall with emerald"             },
+  { "wall",                    "wall with diamond"             },     /* 50 */
+  { "amoeba",                  "amoeba with content"           },
+  { "bd_amoeba",               "amoeba (BD style)"             },
+  { "time_orb_full",           "time orb (full)"               },
+  { "time_orb_empty",          "time orb (empty)"              },
+  { "wall",                    "growing wall"                  },
+  { "bd_diamond",              "diamond (BD style)"            },
+  { "emerald",                 "yellow emerald"                },
+  { "wall",                    "wall with BD style diamond"    },
+  { "wall",                    "wall with yellow emerald"      },
+  { "dark_yamyam",             "dark yam yam"                  },     /* 60 */
+  { "bd_magic_wall",           "magic wall (BD style)"         },
+  { "wall",                    "invisible steel wall"          },
+  { NULL,                      "-"                             },
+  { "dynabomb_nr",             "increases number of bombs"     },
+  { "dynabomb_sz",             "increases explosion size"      },
+  { "dynabomb_xl",             "increases power of explosion"  },
+  { "sokoban_object",          "sokoban object"                },
+  { "sokoban_field",           "sokoban empty field"           },
+  { "sokoban_field",           "sokoban field with object"     },
+  { "bd_butterfly",            "butterfly (starts moving right)"},    /* 70 */
+  { "bd_butterfly",            "butterfly (starts moving up)"  },
+  { "bd_butterfly",            "butterfly (starts moving left)"},
+  { "bd_butterfly",            "butterfly (starts moving down)"},
+  { "bd_firefly",              "firefly (starts moving right)" },
+  { "bd_firefly",              "firefly (starts moving up)"    },
+  { "bd_firefly",              "firefly (starts moving left)"  },
+  { "bd_firefly",              "firefly (starts moving down)"  },
+  { "bd_butterfly",            "butterfly"                     },
+  { "bd_firefly",              "firefly"                       },
+  { "player",                  "yellow player"                 },     /* 80 */
+  { "player",                  "red player"                    },
+  { "player",                  "green player"                  },
+  { "player",                  "blue player"                   },
+  { "bug",                     "bug (starts moving right)"     },
+  { "bug",                     "bug (starts moving up)"        },
+  { "bug",                     "bug (starts moving left)"      },
+  { "bug",                     "bug (starts moving down)"      },
+  { "spaceship",               "spaceship (starts moving right)"},
+  { "spaceship",               "spaceship (starts moving up)"  },
+  { "spaceship",               "spaceship (starts moving left)"},     /* 90 */
+  { "spaceship",               "spaceship (starts moving down)"},
+  { "pacman",                  "pac man (starts moving right)" },
+  { "pacman",                  "pac man (starts moving up)"    },
+  { "pacman",                  "pac man (starts moving left)"  },
+  { "pacman",                  "pac man (starts moving down)"  },
+  { "emerald",                 "red emerald"                   },
+  { "emerald",                 "purple emerald"                },
+  { "wall",                    "wall with red emerald"         },
+  { "wall",                    "wall with purple emerald"      },
+  { NULL,                      "unknown"                       },    /* 100 */
+  { NULL,                      "unknown"                       },
+  { NULL,                      "unknown"                       },
+  { NULL,                      "unknown"                       },
+  { NULL,                      "unknown"                       },
+  { NULL,                      "normal wall (BD style)"        },
+  { "bd_rock",                 "rock (BD style)"               },
+  { "exit",                    "open exit"                     },
+  { NULL,                      "black orb bomb"                },
+  { "amoeba",                  "amoeba"                        },
+  { "mole",                    "mole"                          },    /* 110 */
+  { "penguin",                 "penguin"                       },
+  { "satellite",               "satellite"                     },
+  { NULL,                      "arrow left"                    },
+  { NULL,                      "arrow right"                   },
+  { NULL,                      "arrow up"                      },
+  { NULL,                      "arrow down"                    },
+  { "pig",                     "pig"                           },
+  { "dragon",                  "fire breathing dragon"         },
+  { "key",                     "red key (EM style)"            },
+  { NULL,                      "letter ' '"                    },    /* 120 */
+  { NULL,                      "letter '!'"                    },
+  { NULL,                      "letter '\"'"                   },
+  { NULL,                      "letter '#'"                    },
+  { NULL,                      "letter '$'"                    },
+  { NULL,                      "letter '%'"                    },
+  { NULL,                      "letter '&'"                    },
+  { NULL,                      "letter '''"                    },
+  { NULL,                      "letter '('"                    },
+  { NULL,                      "letter ')'"                    },
+  { NULL,                      "letter '*'"                    },    /* 130 */
+  { NULL,                      "letter '+'"                    },
+  { NULL,                      "letter ','"                    },
+  { NULL,                      "letter '-'"                    },
+  { NULL,                      "letter '.'"                    },
+  { NULL,                      "letter '/'"                    },
+  { NULL,                      "letter '0'"                    },
+  { NULL,                      "letter '1'"                    },
+  { NULL,                      "letter '2'"                    },
+  { NULL,                      "letter '3'"                    },
+  { NULL,                      "letter '4'"                    },    /* 140 */
+  { NULL,                      "letter '5'"                    },
+  { NULL,                      "letter '6'"                    },
+  { NULL,                      "letter '7'"                    },
+  { NULL,                      "letter '8'"                    },
+  { NULL,                      "letter '9'"                    },
+  { NULL,                      "letter ':'"                    },
+  { NULL,                      "letter ';'"                    },
+  { NULL,                      "letter '<'"                    },
+  { NULL,                      "letter '='"                    },
+  { NULL,                      "letter '>'"                    },    /* 150 */
+  { NULL,                      "letter '?'"                    },
+  { NULL,                      "letter '@'"                    },
+  { NULL,                      "letter 'A'"                    },
+  { NULL,                      "letter 'B'"                    },
+  { NULL,                      "letter 'C'"                    },
+  { NULL,                      "letter 'D'"                    },
+  { NULL,                      "letter 'E'"                    },
+  { NULL,                      "letter 'F'"                    },
+  { NULL,                      "letter 'G'"                    },
+  { NULL,                      "letter 'H'"                    },    /* 160 */
+  { NULL,                      "letter 'I'"                    },
+  { NULL,                      "letter 'J'"                    },
+  { NULL,                      "letter 'K'"                    },
+  { NULL,                      "letter 'L'"                    },
+  { NULL,                      "letter 'M'"                    },
+  { NULL,                      "letter 'N'"                    },
+  { NULL,                      "letter 'O'"                    },
+  { NULL,                      "letter 'P'"                    },
+  { NULL,                      "letter 'Q'"                    },
+  { NULL,                      "letter 'R'"                    },    /* 170 */
+  { NULL,                      "letter 'S'"                    },
+  { NULL,                      "letter 'T'"                    },
+  { NULL,                      "letter 'U'"                    },
+  { NULL,                      "letter 'V'"                    },
+  { NULL,                      "letter 'W'"                    },
+  { NULL,                      "letter 'X'"                    },
+  { NULL,                      "letter 'Y'"                    },
+  { NULL,                      "letter 'Z'"                    },
+  { NULL,                      "letter 'Ä'"                    },
+  { NULL,                      "letter 'Ö'"                    },    /* 180 */
+  { NULL,                      "letter 'Ü'"                    },
+  { NULL,                      "letter '^'"                    },
+  { NULL,                      "letter ''"                     },
+  { NULL,                      "letter ''"                     },
+  { NULL,                      "letter ''"                     },
+  { NULL,                      "letter ''"                     },
+  { NULL,                      "letter ''"                     },
+  { NULL,                      "letter ''"                     },
+  { NULL,                      "letter ''"                     },
+  { NULL,                      "letter ''"                     },    /* 190 */
+  { NULL,                      "letter ''"                     },
+  { NULL,                      "letter ''"                     },
+  { NULL,                      "letter ''"                     },
+  { NULL,                      "letter ''"                     },
+  { NULL,                      "letter ''"                     },
+  { NULL,                      "letter ''"                     },
+  { NULL,                      "letter ''"                     },
+  { NULL,                      "letter ''"                     },
+  { NULL,                      "letter ''"                     },
+  { "wall",                    "growing wall (horizontal)"     },    /* 200 */
+  { "wall",                    "growing wall (vertical)"       },
+  { "wall",                    "growing wall (all directions)" },
+  { "gate",                    "red door (EM style)"           },
+  { "gate",                    "yellow door (EM style)"        },
+  { "gate",                    "green door (EM style)"         },
+  { "gate",                    "blue door (EM style)"          },
+  { "key",                     "yellow key (EM style)"         },
+  { "key",                     "green key (EM style)"          },
+  { "key",                     "blue key (EM style)"           },
+  { "empty_space",             "empty space"                   },    /* 210 */
+  { "sp_zonk",                 "zonk"                          },
+  { "sp_base",                 "base"                          },
+  { "player",                  "murphy"                        },
+  { "sp_infotron",             "infotron"                      },
+  { "wall",                    "chip (single)"                 },
+  { "wall",                    "hardware"                      },
+  { "sp_exit",                 "exit"                          },
+  { "sp_disk_orange",          "orange disk"                   },
+  { "sp_port",                 "port (leading right)"          },
+  { "sp_port",                 "port (leading down)"           },    /* 220 */
+  { "sp_port",                 "port (leading left)"           },
+  { "sp_port",                 "port (leading up)"             },
+  { "sp_port",                 "port (leading right)"          },
+  { "sp_port",                 "port (leading down)"           },
+  { "sp_port",                 "port (leading left)"           },
+  { "sp_port",                 "port (leading up)"             },
+  { "sp_sniksnak",             "snik snak"                     },
+  { "sp_disk_yellow",          "yellow disk"                   },
+  { "sp_terminal",             "terminal"                      },
+  { "sp_disk_red",             "red disk"                      },    /* 230 */
+  { "sp_port",                 "port (vertical)"               },
+  { "sp_port",                 "port (horizontal)"             },
+  { "sp_port",                 "port (all directions)"         },
+  { "sp_electron",             "electron"                      },
+  { "sp_buggy_base",           "buggy base"                    },
+  { "wall",                    "chip (left half)"              },
+  { "wall",                    "chip (right half)"             },
+  { "wall",                    "hardware"                      },
+  { "wall",                    "hardware"                      },
+  { "wall",                    "hardware"                      },    /* 240 */
+  { "wall",                    "hardware"                      },
+  { "wall",                    "hardware"                      },
+  { "wall",                    "hardware"                      },
+  { "wall",                    "hardware"                      },
+  { "wall",                    "hardware"                      },
+  { "wall",                    "hardware"                      },
+  { "wall",                    "hardware"                      },
+  { "wall",                    "chip (upper half)"             },
+  { "wall",                    "chip (lower half)"             },
+  { "gate",                    "gray door (EM style, red key)" },    /* 250 */
+  { "gate",                    "gray door (EM style, yellow key)"},
+  { "gate",                    "gray door (EM style, green key)"},
+  { "gate",                    "gray door (EM style, blue key)"},
+  { NULL,                      "unknown"                       },
+  { NULL,                      "unknown"                       },
 
   /* 256 */
 
-  "pearl",                                     /* (256) */
-  "crystal",
-  "wall with pearl",
-  "wall with crystal",
-  "white door",                                        /* 260 */
-  "gray door (opened by white key)",
-  "white key",
-  "force field",
-  "extra time",
-  "switch gate (open)",
-  "switch gate (closed)",
-  "switch for switch gate",
-  "switch for switch gate",
-  "time gate",
-  "time gate with magic wheel",                        /* 270 */
-  "red conveyor belt (left)",
-  "red conveyor belt (middle)",
-  "red conveyor belt (right)",
-  "switch for red conveyor belt (left)",
-  "switch for red conveyor belt (middle)",
-  "switch for red conveyor belt (right)",
-  "yellow conveyor belt (left)",
-  "yellow conveyor belt (middle)",
-  "yellow conveyor belt (right)",
-  "switch for yellow conveyor belt (left)",    /* 280 */
-  "switch for yellow conveyor belt (middle)",
-  "switch for yellow conveyor belt (right)",
-  "green conveyor belt (left)",
-  "green conveyor belt (middle)",
-  "green conveyor belt (right)",
-  "switch for green conveyor belt (left)",
-  "switch for green conveyor belt (middle)",
-  "switch for green conveyor belt (right)",
-  "blue conveyor belt (left)",
-  "blue conveyor belt (middle)",               /* 290 */
-  "blue conveyor belt (right)",
-  "switch for blue conveyor belt (left)",
-  "switch for blue conveyor belt (middle)",
-  "switch for blue conveyor belt (right)",
-  "land mine",
-  "mail envelope",
-  "light switch (off)",
-  "light switch (on)",
-  "sign (exclamation)",
-  "sign (radio activity)",                     /* 300 */
-  "sign (stop)",
-  "sign (wheel chair)",
-  "sign (parking)",
-  "sign (one way)",
-  "sign (heart)",
-  "sign (triangle)",
-  "sign (round)",
-  "sign (exit)",
-  "sign (yin yang)",
-  "sign (other)",                              /* 310 */
-  "mole (starts moving left)",
-  "mole (starts moving right)",
-  "mole (starts moving up)",
-  "mole (starts moving down)",
-  "steel wall (slanted)",
-  "invisible sand",
-  "-",
-  "-",
-  "-",
-  "-",                                         /* 320 */
-  "-",
-  "-",
-  "-",
-  "-",
-  "-",
-  "-"
+  { "pearl",                   "pearl"                         },  /* (256) */
+  { "crystal",                 "crystal"                       },
+  { "wall",                    "wall with pearl"               },
+  { "wall",                    "wall with crystal"             },
+  { "gate",                    "white door"                    },    /* 260 */
+  { "gate",                    "gray door (opened by white key)"},
+  { "key",                     "white key"                     },
+  { "shield_passive",          "shield (passive)"              },
+  { "extra_time",              "extra time"                    },
+  { "switchgate",              "switch gate (open)"            },
+  { "switchgate",              "switch gate (closed)"          },
+  { "switchgate_switch",       "switch for switch gate"        },
+  { "switchgate_switch",       "switch for switch gate"        },
+  { NULL,                      "-"                             },
+  { NULL,                      "-"                             },    /* 270 */
+  { "conveyor_belt",           "red conveyor belt (left)"      },
+  { "conveyor_belt",           "red conveyor belt (middle)"    },
+  { "conveyor_belt",           "red conveyor belt (right)"     },
+  { "conveyor_belt_switch",    "switch for red conveyor belt (left)"},
+  { "conveyor_belt_switch",    "switch for red conveyor belt (middle)"},
+  { "conveyor_belt_switch",    "switch for red conveyor belt (right)"},
+  { "conveyor_belt",           "yellow conveyor belt (left)"   },
+  { "conveyor_belt",           "yellow conveyor belt (middle)" },
+  { "conveyor_belt",           "yellow conveyor belt (right)"  },
+  { "conveyor_belt_switch",    "switch for yellow conveyor belt (left)"},
+  { "conveyor_belt_switch",    "switch for yellow conveyor belt (middle)"},
+  { "conveyor_belt_switch",    "switch for yellow conveyor belt (right)"},
+  { "conveyor_belt",           "green conveyor belt (left)"    },
+  { "conveyor_belt",           "green conveyor belt (middle)"  },
+  { "conveyor_belt",           "green conveyor belt (right)"   },
+  { "conveyor_belt_switch",    "switch for green conveyor belt (left)"},
+  { "conveyor_belt_switch",    "switch for green conveyor belt (middle)"},
+  { "conveyor_belt_switch",    "switch for green conveyor belt (right)"},
+  { "conveyor_belt",           "blue conveyor belt (left)"     },
+  { "conveyor_belt",           "blue conveyor belt (middle)"   },
+  { "conveyor_belt",           "blue conveyor belt (right)"    },
+  { "conveyor_belt_switch",    "switch for blue conveyor belt (left)"},
+  { "conveyor_belt_switch",    "switch for blue conveyor belt (middle)"},
+  { "conveyor_belt_switch",    "switch for blue conveyor belt (right)"},
+  { "sand",                    "land mine"                     },
+  { "envelope",                        "mail envelope"                 },
+  { "light_switch",            "light switch (off)"            },
+  { "light_switch",            "light switch (on)"             },
+  { "wall",                    "sign (exclamation)"            },
+  { "wall",                    "sign (radio activity)"         },    /* 300 */
+  { "wall",                    "sign (stop)"                   },
+  { "wall",                    "sign (wheel chair)"            },
+  { "wall",                    "sign (parking)"                },
+  { "wall",                    "sign (one way)"                },
+  { "wall",                    "sign (heart)"                  },
+  { "wall",                    "sign (triangle)"               },
+  { "wall",                    "sign (round)"                  },
+  { "wall",                    "sign (exit)"                   },
+  { "wall",                    "sign (yin yang)"               },
+  { "wall",                    "sign (other)"                  },    /* 310 */
+  { "mole",                    "mole (starts moving left)"     },
+  { "mole",                    "mole (starts moving right)"    },
+  { "mole",                    "mole (starts moving up)"       },
+  { "mole",                    "mole (starts moving down)"     },
+  { "wall",                    "steel wall (slanted)"          },
+  { "sand",                    "invisible sand"                },
+  { NULL,                      "dx unknown 15"                 },
+  { NULL,                      "dx unknown 42"                 },
+  { NULL,                      "-"                             },
+  { NULL,                      "-"                             },    /* 320 */
+  { "shield_active",           "shield (active, kills enemies)"},
+  { "timegate",                        "time gate (open)"              },
+  { "timegate",                        "time gate (closed)"            },
+  { "timegate_wheel",          "switch for time gate"          },
+  { "timegate_wheel",          "switch for time gate"          },
+  { "balloon",                 "balloon"                       },
+  { "wall",                    "send balloon to the left"      },
+  { "wall",                    "send balloon to the right"     },
+  { "balloon_switch",          "send balloon up"               },
+  { "balloon_switch",          "send balloon down"             },    /* 330 */
+  { "balloon_switch",          "send balloon in any direction" },
+  { "wall",                    "steel wall"                    },
+  { "wall",                    "steel wall"                    },
+  { "wall",                    "steel wall"                    },
+  { "wall",                    "steel wall"                    },
+  { "wall",                    "normal wall"                   },
+  { "wall",                    "normal wall"                   },
+  { "wall",                    "normal wall"                   },
+  { "wall",                    "normal wall"                   },
+  { "wall",                    "normal wall"                   },    /* 340 */
+  { "wall",                    "normal wall"                   },
+  { "wall",                    "normal wall"                   },
+  { "wall",                    "normal wall"                   },
+  { "tube",                    "tube (all directions)"         },
+  { "tube",                    "tube (vertical)"               },
+  { "tube",                    "tube (horizontal)"             },
+  { "tube",                    "tube (vertical & left)"        },
+  { "tube",                    "tube (vertical & right)"       },
+  { "tube",                    "tube (horizontal & up)"        },
+  { "tube",                    "tube (horizontal & down)"      },    /* 350 */
+  { "tube",                    "tube (left & up)"              },
+  { "tube",                    "tube (left & down)"            },
+  { "tube",                    "tube (right & up)"             },
+  { "tube",                    "tube (right & down)"           },
+  { "spring",                  "spring"                        },
+  { "trap",                    "trap"                          },
+  { "dx_bomb",                 "stable bomb (DX style)"        },
+  { NULL,                      "-"                             }
 
   /*
   "-------------------------------",
   */
 };
 
+struct GraphicInfo graphic_info[MAX_GRAPHICS];
+struct NewGraphicInfo new_graphic_info[NUM_IMAGE_FILES];
+
+
+/* ========================================================================= */
+/* main()                                                                    */
+/* ========================================================================= */
+
 int main(int argc, char *argv[])
 {
-  program_name = (strrchr(argv[0],'/') ? strrchr(argv[0],'/') + 1 : argv[0]);
-
-#ifdef MSDOS
-  _fmode = O_BINARY;
-#endif
+  InitCommandName(argv[0]);
+  InitExitFunction(CloseAllAndExit);
+  InitPlatformDependantStuff();
 
   GetOptions(argv);
-  OpenAll(argc,argv);
+  OpenAll();
+
   EventLoop();
   CloseAllAndExit(0);
-  exit(0);     /* to keep compilers happy */
+
+  return 0;    /* to keep compilers happy */
 }