rnd-20020921-3-src
[rocksndiamonds.git] / src / main.c
1 /***********************************************************
2 * Rocks'n'Diamonds -- McDuffin Strikes Back!               *
3 *----------------------------------------------------------*
4 * (c) 1995-2002 Artsoft Entertainment                      *
5 *               Holger Schemel                             *
6 *               Detmolder Strasse 189                      *
7 *               33604 Bielefeld                            *
8 *               Germany                                    *
9 *               e-mail: info@artsoft.org                   *
10 *----------------------------------------------------------*
11 * main.c                                                   *
12 ***********************************************************/
13
14 #include "libgame/libgame.h"
15
16 #include "main.h"
17 #include "init.h"
18 #include "game.h"
19 #include "events.h"
20
21 GC              tile_clip_gc;
22 Bitmap         *pix[NUM_BITMAPS];
23 Pixmap          tile_clipmask[NUM_TILES];
24 DrawBuffer     *fieldbuffer;
25 DrawBuffer     *drawto_field;
26
27 int             game_status = MAINMENU;
28 boolean         level_editor_test_game = FALSE;
29 boolean         network_playing = FALSE;
30
31 int             key_joystick_mapping = 0;
32
33 boolean         redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE];
34 int             redraw_x1 = 0, redraw_y1 = 0;
35
36 short           Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
37 short           Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
38 short           MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
39 short           MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
40 short           MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
41 short           Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
42 short           Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
43 short           StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
44 short           Frame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
45 boolean         Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
46 short           JustStopped[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
47 short           AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
48 short           AmoebaCnt[MAX_NUM_AMOEBA], AmoebaCnt2[MAX_NUM_AMOEBA];
49 short           ExplodeField[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
50 unsigned long   Elementeigenschaften1[MAX_ELEMENTS];
51 unsigned long   Elementeigenschaften2[MAX_ELEMENTS];
52
53 int             lev_fieldx,lev_fieldy, scroll_x,scroll_y;
54
55 int             FX = SX, FY = SY, ScrollStepSize;
56 int             ScreenMovDir = MV_NO_MOVING, ScreenMovPos = 0;
57 int             ScreenGfxPos = 0;
58 int             BorderElement = EL_STEELWALL;
59 int             GameFrameDelay = GAME_FRAME_DELAY;
60 int             FfwdFrameDelay = FFWD_FRAME_DELAY;
61 int             BX1 = 0, BY1 = 0, BX2 = SCR_FIELDX-1, BY2 = SCR_FIELDY-1;
62 int             SBX_Left, SBX_Right;
63 int             SBY_Upper, SBY_Lower;
64 int             ZX,ZY, ExitX,ExitY;
65 int             AllPlayersGone;
66
67 int             TimeFrames, TimePlayed, TimeLeft;
68
69 boolean         network_player_action_received = FALSE;
70
71 struct LevelInfo        level;
72 struct PlayerInfo       stored_player[MAX_PLAYERS], *local_player = NULL;
73 struct HiScore          highscore[MAX_SCORE_ENTRIES];
74 struct TapeInfo         tape;
75 struct SetupInfo        setup;
76 struct GameInfo         game;
77 struct GlobalInfo       global;
78
79 /* filenames of sound effects */
80 char *sound_name[NUM_SOUNDS] =
81 {
82   "amoebe.wav",
83   "antigrav.wav",
84   "autsch.wav",
85   "blurb.wav",
86   "bong.wav",
87   "buing.wav",
88   "deng.wav",
89   "fuel.wav",
90   "gong.wav",
91   "halloffame.wav",
92   "holz.wav",
93   "hui.wav",
94   "kabumm.wav",
95   "kink.wav",
96   "klapper.wav",
97   "kling.wav",
98   "klopf.wav",
99   "klumpf.wav",
100   "knack.wav",
101   "knurk.wav",
102   "krach.wav",
103   "lachen.wav",
104   "laser.wav",
105   "miep.wav",
106   "njam.wav",
107   "oeffnen.wav",
108   "pling.wav",
109   "pong.wav",
110   "pusch.wav",
111   "quiek.wav",
112   "quirk.wav",
113   "rhythmloop.wav",
114   "roaaar.wav",
115   "roehr.wav",
116   "rumms.wav",
117   "schlopp.wav",
118   "schlurf.wav",
119   "schrff.wav",
120   "schwirr.wav",
121   "sirr.wav",
122   "slurp.wav",
123   "sproing.wav",
124   "warnton.wav",
125   "whoosh.wav",
126   "zisch.wav",
127   "base.wav",
128   "infotron.wav",
129   "zonkdown.wav",
130   "zonkpush.wav",
131   "bug.wav",
132   "boom.wav",
133   "booom.wav",
134   "exit.wav",
135   "empty.wav",
136   "gate.wav"
137 };
138
139 /* this is used to reduce memory usage of the different animation types */
140 int anim_action_mapping[] =
141 {
142   0,            /* GFX_ACTION_UNKNOWN           (0)  */
143   0,            /* GFX_ACTION_DEFAULT           (1)  */
144   0,            /* GFX_ACTION_WAITING           (2)  */
145
146   1,            /* GFX_ACTION_FALLING           (3)  */
147   2,            /* GFX_ACTION_MOVING            (4)  */
148   3,            /* GFX_ACTION_DIGGING           (5)  */
149   4,            /* GFX_ACTION_COLLECTING        (6)  */
150   5,            /* GFX_ACTION_PUSHING           (7)  */
151
152   6,            /* GFX_ACTION_PASSING           (8)  */
153   6,            /* GFX_ACTION_IMPACT            (9)  */
154   6,            /* GFX_ACTION_CRACKING          (10)  */
155   6,            /* GFX_ACTION_ACTIVATING        (11)  */
156   6,            /* GFX_ACTION_EATING            (12)  */
157   6             /* GFX_ACTION_OTHER             (13) */
158 };
159
160 struct ConfigInfo image_config_suffix[] =
161 {
162   { ".xpos",                            "0"                     },
163   { ".ypos",                            "0"                     },
164   { ".frames",                          "1"                     },
165 #if 0
166   { ".start_frame",                     "-1"                    },
167 #endif
168   { ".delay",                           "1"                     },
169   { ".pingpong",                        "0"                     },
170   { ".pingpong2",                       "0"                     },
171   { ".reverse",                         "0"                     },
172   { ".global_sync",                     "0"                     },
173   { ".vertical",                        "0"                     },
174
175   { NULL,                               NULL                    }
176 };
177
178 struct ConfigInfo sound_config_suffix[] =
179 {
180   { NULL,                               NULL                    }
181 };
182
183 struct ConfigInfo image_config[] =
184 {
185   /* images for Emerald Mine style elements and actions */
186   { "empty_space",                              "RocksElements.pcx"     },
187   { "empty_space.xpos",                         "7"                     },
188   { "empty_space.ypos",                         "9"                     },
189   { "empty_space.frames",                       "1"                     },
190
191   { "sand",                                     "RocksElements.pcx"     },
192   { "sand.xpos",                                "0"                     },
193   { "sand.ypos",                                "0"                     },
194   { "sand.frames",                              "1"                     },
195   { "sand_crumbled",                            "RocksElements.pcx"     },
196   { "sand_crumbled.xpos",                       "1"                     },
197   { "sand_crumbled.ypos",                       "0"                     },
198   { "sand_crumbled.frames",                     "1"                     },
199
200   { "quicksand_empty",                          "RocksElements.pcx"     },
201   { "quicksand_empty.xpos",                     "2"                     },
202   { "quicksand_empty.ypos",                     "0"                     },
203   { "quicksand_empty.frames",                   "1"                     },
204   { "quicksand.filling",                        "RocksElements.pcx"     },
205   { "quicksand.filling.xpos",                   "3"                     },
206   { "quicksand.filling.ypos",                   "0"                     },
207   { "quicksand.filling.frames",                 "1"                     },
208   { "quicksand_full",                           "RocksElements.pcx"     },
209   { "quicksand_full.xpos",                      "3"                     },
210   { "quicksand_full.ypos",                      "0"                     },
211   { "quicksand_full.frames",                    "1"                     },
212   { "quicksand.emptying",                       "RocksElements.pcx"     },
213   { "quicksand.emptying.xpos",                  "3"                     },
214   { "quicksand.emptying.ypos",                  "0"                     },
215   { "quicksand.emptying.frames",                "1"                     },
216
217   { "steelwall",                                "RocksElements.pcx"     },
218   { "steelwall.xpos",                           "4"                     },
219   { "steelwall.ypos",                           "0"                     },
220   { "steelwall.frames",                         "1"                     },
221
222   { "wall",                                     "RocksElements.pcx"     },
223   { "wall.xpos",                                "5"                     },
224   { "wall.ypos",                                "0"                     },
225   { "wall.frames",                              "1"                     },
226   { "wall_crumbled",                            "RocksElements.pcx"     },
227   { "wall_crumbled.xpos",                       "6"                     },
228   { "wall_crumbled.ypos",                       "0"                     },
229   { "wall_crumbled.frames",                     "1"                     },
230
231   { "emerald",                                  "RocksElements.pcx"     },
232   { "emerald.xpos",                             "8"                     },
233   { "emerald.ypos",                             "0"                     },
234   { "emerald.frames",                           "1"                     },
235   { "emerald.falling",                          "RocksElements.pcx"     },
236   { "emerald.falling.xpos",                     "8"                     },
237   { "emerald.falling.ypos",                     "0"                     },
238   { "emerald.falling.frames",                   "2"                     },
239
240   { "diamond",                                  "RocksElements.pcx"     },
241   { "diamond.xpos",                             "10"                    },
242   { "diamond.ypos",                             "0"                     },
243   { "diamond.frames",                           "1"                     },
244   { "diamond.falling",                          "RocksElements.pcx"     },
245   { "diamond.falling.xpos",                     "10"                    },
246   { "diamond.falling.ypos",                     "0"                     },
247   { "diamond.falling.frames",                   "2"                     },
248
249   { "rock",                                     "RocksElements.pcx"     },
250   { "rock.xpos",                                "12"                    },
251   { "rock.ypos",                                "0"                     },
252   { "rock.frames",                              "1"                     },
253   { "rock.falling",                             "RocksElements.pcx"     },
254   { "rock.falling.xpos",                        "12"                    },
255   { "rock.falling.ypos",                        "0"                     },
256   { "rock.falling.frames",                      "1"                     },
257   { "rock.pushing",                             "RocksElements.pcx"     },
258   { "rock.pushing.xpos",                        "12"                    },
259   { "rock.pushing.ypos",                        "0"                     },
260   { "rock.pushing.frames",                      "4"                     },
261
262   { "acidpool_topleft",                         "RocksElements.pcx"     },
263   { "acidpool_topleft.xpos",                    "0"                     },
264   { "acidpool_topleft.ypos",                    "1"                     },
265   { "acidpool_topleft.frames",                  "1"                     },
266   { "acidpool_topright",                        "RocksElements.pcx"     },
267   { "acidpool_topright.xpos",                   "2"                     },
268   { "acidpool_topright.ypos",                   "1"                     },
269   { "acidpool_topright.frames",                 "1"                     },
270   { "acidpool_bottomleft",                      "RocksElements.pcx"     },
271   { "acidpool_bottomleft.xpos",                 "0"                     },
272   { "acidpool_bottomleft.ypos",                 "2"                     },
273   { "acidpool_bottomleft.frames",               "1"                     },
274   { "acidpool_bottom",                          "RocksElements.pcx"     },
275   { "acidpool_bottom.xpos",                     "1"                     },
276   { "acidpool_bottom.ypos",                     "2"                     },
277   { "acidpool_bottom.frames",                   "1"                     },
278   { "acidpool_bottomright",                     "RocksElements.pcx"     },
279   { "acidpool_bottomright.xpos",                "2"                     },
280   { "acidpool_bottomright.ypos",                "2"                     },
281   { "acidpool_bottomright.frames",              "1"                     },
282
283   { "acid",                                     "RocksElements.pcx"     },
284   { "acid.xpos",                                "12"                    },
285   { "acid.ypos",                                "7"                     },
286   { "acid.frames",                              "4"                     },
287
288   { "key1",                                     "RocksElements.pcx"     },
289   { "key1.xpos",                                "4"                     },
290   { "key1.ypos",                                "1"                     },
291   { "key1.frames",                              "1"                     },
292   { "key2",                                     "RocksElements.pcx"     },
293   { "key2.xpos",                                "5"                     },
294   { "key2.ypos",                                "1"                     },
295   { "key2.frames",                              "1"                     },
296   { "key3",                                     "RocksElements.pcx"     },
297   { "key3.xpos",                                "6"                     },
298   { "key3.ypos",                                "1"                     },
299   { "key3.frames",                              "1"                     },
300   { "key4",                                     "RocksElements.pcx"     },
301   { "key4.xpos",                                "7"                     },
302   { "key4.ypos",                                "1"                     },
303   { "key4.frames",                              "1"                     },
304
305   { "gameoflife",                               "RocksElements.pcx"     },
306   { "gameoflife.xpos",                          "8"                     },
307   { "gameoflife.ypos",                          "1"                     },
308   { "gameoflife.frames",                        "1"                     },
309
310   { "biomaze",                                  "RocksElements.pcx"     },
311   { "biomaze.xpos",                             "9"                     },
312   { "biomaze.ypos",                             "1"                     },
313   { "biomaze.frames",                           "1"                     },
314
315   { "bomb",                                     "RocksElements.pcx"     },
316   { "bomb.xpos",                                "11"                    },
317   { "bomb.ypos",                                "1"                     },
318   { "bomb.frames",                              "1"                     },
319
320   { "nut",                                      "RocksElements.pcx"     },
321   { "nut.xpos",                                 "12"                    },
322   { "nut.ypos",                                 "1"                     },
323   { "nut.frames",                               "1"                     },
324   { "nut.cracking",                             "RocksElements.pcx"     },
325   { "nut.cracking.xpos",                        "13"                    },
326   { "nut.cracking.ypos",                        "1"                     },
327   { "nut.cracking.frames",                      "3"                     },
328
329   { "gate1",                                    "RocksElements.pcx"     },
330   { "gate1.xpos",                               "4"                     },
331   { "gate1.ypos",                               "2"                     },
332   { "gate1.frames",                             "1"                     },
333   { "gate2",                                    "RocksElements.pcx"     },
334   { "gate2.xpos",                               "5"                     },
335   { "gate2.ypos",                               "2"                     },
336   { "gate2.frames",                             "1"                     },
337   { "gate3",                                    "RocksElements.pcx"     },
338   { "gate3.xpos",                               "6"                     },
339   { "gate3.ypos",                               "2"                     },
340   { "gate3.frames",                             "1"                     },
341   { "gate4",                                    "RocksElements.pcx"     },
342   { "gate4.xpos",                               "7"                     },
343   { "gate4.ypos",                               "2"                     },
344   { "gate4.frames",                             "1"                     },
345   { "gate1_gray",                               "RocksElements.pcx"     },
346   { "gate1_gray.xpos",                          "8"                     },
347   { "gate1_gray.ypos",                          "2"                     },
348   { "gate1_gray.frames",                        "1"                     },
349   { "gate2_gray",                               "RocksElements.pcx"     },
350   { "gate2_gray.xpos",                          "9"                     },
351   { "gate2_gray.ypos",                          "2"                     },
352   { "gate2_gray.frames",                        "1"                     },
353   { "gate3_gray",                               "RocksElements.pcx"     },
354   { "gate3_gray.xpos",                          "10"                    },
355   { "gate3_gray.ypos",                          "2"                     },
356   { "gate3_gray.frames",                        "1"                     },
357   { "gate4_gray",                               "RocksElements.pcx"     },
358   { "gate4_gray.xpos",                          "11"                    },
359   { "gate4_gray.ypos",                          "2"                     },
360   { "gate4_gray.frames",                        "1"                     },
361
362   { "dynamite",                                 "RocksElements.pcx"     },
363   { "dynamite.xpos",                            "0"                     },
364   { "dynamite.ypos",                            "3"                     },
365   { "dynamite.frames",                          "1"                     },
366   { "dynamite.active",                          "RocksElements.pcx"     },
367   { "dynamite.active.xpos",                     "1"                     },
368   { "dynamite.active.ypos",                     "3"                     },
369   { "dynamite.active.frames",                   "7"                     },
370
371   { "spaceship_right",                          "RocksElements.pcx"     },
372   { "spaceship_right.xpos",                     "8"                     },
373   { "spaceship_right.ypos",                     "3"                     },
374   { "spaceship_right.frames",                   "2"                     },
375   { "spaceship_right.delay",                    "4"                     },
376   { "spaceship_up",                             "RocksElements.pcx"     },
377   { "spaceship_up.xpos",                        "10"                    },
378   { "spaceship_up.ypos",                        "3"                     },
379   { "spaceship_up.frames",                      "2"                     },
380   { "spaceship_up.delay",                       "4"                     },
381   { "spaceship_left",                           "RocksElements.pcx"     },
382   { "spaceship_left.xpos",                      "12"                    },
383   { "spaceship_left.ypos",                      "3"                     },
384   { "spaceship_left.frames",                    "2"                     },
385   { "spaceship_left.delay",                     "4"                     },
386   { "spaceship_down",                           "RocksElements.pcx"     },
387   { "spaceship_down.xpos",                      "14"                    },
388   { "spaceship_down.ypos",                      "3"                     },
389   { "spaceship_down.frames",                    "2"                     },
390   { "spaceship_down.delay",                     "4"                     },
391
392   { "bug_right",                                "RocksElements.pcx"     },
393   { "bug_right.xpos",                           "8"                     },
394   { "bug_right.ypos",                           "4"                     },
395   { "bug_right.frames",                         "2"                     },
396   { "bug_right.delay",                          "4"                     },
397   { "bug_up",                                   "RocksElements.pcx"     },
398   { "bug_up.xpos",                              "10"                    },
399   { "bug_up.ypos",                              "4"                     },
400   { "bug_up.frames",                            "2"                     },
401   { "bug_up.delay",                             "4"                     },
402   { "bug_left",                                 "RocksElements.pcx"     },
403   { "bug_left.xpos",                            "12"                    },
404   { "bug_left.ypos",                            "4"                     },
405   { "bug_left.frames",                          "2"                     },
406   { "bug_left.delay",                           "4"                     },
407   { "bug_down",                                 "RocksElements.pcx"     },
408   { "bug_down.xpos",                            "14"                    },
409   { "bug_down.ypos",                            "4"                     },
410   { "bug_down.frames",                          "2"                     },
411   { "bug_down.delay",                           "4"                     },
412
413   { "pacman_right",                             "RocksElements.pcx"     },
414   { "pacman_right.xpos",                        "8"                     },
415   { "pacman_right.ypos",                        "5"                     },
416   { "pacman_right.frames",                      "2"                     },
417   { "pacman_right.reverse",                     "1"                     },
418   { "pacman_right.delay",                       "4"                     },
419   { "pacman_up",                                "RocksElements.pcx"     },
420   { "pacman_up.xpos",                           "10"                    },
421   { "pacman_up.ypos",                           "5"                     },
422   { "pacman_up.frames",                         "2"                     },
423   { "pacman_up.reverse",                        "1"                     },
424   { "pacman_up.delay",                          "4"                     },
425   { "pacman_left",                              "RocksElements.pcx"     },
426   { "pacman_left.xpos",                         "12"                    },
427   { "pacman_left.ypos",                         "5"                     },
428   { "pacman_left.frames",                       "2"                     },
429   { "pacman_left.reverse",                      "1"                     },
430   { "pacman_left.delay",                        "4"                     },
431   { "pacman_down",                              "RocksElements.pcx"     },
432   { "pacman_down.xpos",                         "14"                    },
433   { "pacman_down.ypos",                         "5"                     },
434   { "pacman_down.frames",                       "2"                     },
435   { "pacman_down.reverse",                      "1"                     },
436   { "pacman_down.delay",                        "4"                     },
437
438   { "explosion",                                "RocksElements.pcx"     },
439   { "explosion.xpos",                           "0"                     },
440   { "explosion.ypos",                           "4"                     },
441   { "explosion.frames",                         "8"                     },
442
443   { "yamyam",                                   "RocksElements.pcx"     },
444   { "yamyam.xpos",                              "0"                     },
445   { "yamyam.ypos",                              "5"                     },
446   { "yamyam.frames",                            "4"                     },
447   { "yamyam.pingpong",                          "1"                     },
448   { "yamyam.moving",                            "RocksElements.pcx"     },
449   { "yamyam.moving.xpos",                       "0"                     },
450   { "yamyam.moving.ypos",                       "5"                     },
451   { "yamyam.moving.frames",                     "1"                     },
452
453   { "robot",                                    "RocksElements.pcx"     },
454   { "robot.xpos",                               "4"                     },
455   { "robot.ypos",                               "5"                     },
456   { "robot.frames",                             "4"                     },
457   { "robot.pingpong",                           "1"                     },
458   { "robot_wheel",                              "RocksElements.pcx"     },
459   { "robot_wheel.xpos",                         "0"                     },
460   { "robot_wheel.ypos",                         "6"                     },
461   { "robot_wheel.frames",                       "1"                     },
462   { "robot_wheel.active",                       "RocksElements.pcx"     },
463   { "robot_wheel.active.xpos",                  "0"                     },
464   { "robot_wheel.active.ypos",                  "6"                     },
465   { "robot_wheel.active.frames",                "4"                     },
466
467   { "amoeba_drop",                              "RocksElements.pcx"     },
468   { "amoeba_drop.xpos",                         "5"                     },
469   { "amoeba_drop.ypos",                         "6"                     },
470   { "amoeba_drop.frames",                       "1"                     },
471   { "amoeba.creating",                          "RocksElements.pcx"     },
472   { "amoeba.creating.xpos",                     "5"                     },
473   { "amoeba.creating.ypos",                     "6"                     },
474   { "amoeba.creating.frames",                   "3"                     },
475   { "amoeba.part1",                             "RocksElements.pcx"     },
476   { "amoeba.part1.xpos",                        "8"                     },
477   { "amoeba.part1.ypos",                        "6"                     },
478   { "amoeba.part1.frames",                      "1"                     },
479   { "amoeba.part2",                             "RocksElements.pcx"     },
480   { "amoeba.part2.xpos",                        "9"                     },
481   { "amoeba.part2.ypos",                        "6"                     },
482   { "amoeba.part2.frames",                      "1"                     },
483   { "amoeba.part3",                             "RocksElements.pcx"     },
484   { "amoeba.part3.xpos",                        "10"                    },
485   { "amoeba.part3.ypos",                        "6"                     },
486   { "amoeba.part3.frames",                      "1"                     },
487   { "amoeba.part4",                             "RocksElements.pcx"     },
488   { "amoeba.part4.xpos",                        "11"                    },
489   { "amoeba.part4.ypos",                        "6"                     },
490   { "amoeba.part4.frames",                      "1"                     },
491   { "amoeba_dead.part1",                        "RocksElements.pcx"     },
492   { "amoeba_dead.part1.xpos",                   "12"                    },
493   { "amoeba_dead.part1.ypos",                   "6"                     },
494   { "amoeba_dead.part1.frames",                 "1"                     },
495   { "amoeba_dead.part2",                        "RocksElements.pcx"     },
496   { "amoeba_dead.part2.xpos",                   "13"                    },
497   { "amoeba_dead.part2.ypos",                   "6"                     },
498   { "amoeba_dead.part2.frames",                 "1"                     },
499   { "amoeba_dead.part3",                        "RocksElements.pcx"     },
500   { "amoeba_dead.part3.xpos",                   "14"                    },
501   { "amoeba_dead.part3.ypos",                   "6"                     },
502   { "amoeba_dead.part3.frames",                 "1"                     },
503   { "amoeba_dead.part4",                        "RocksElements.pcx"     },
504   { "amoeba_dead.part4.xpos",                   "15"                    },
505   { "amoeba_dead.part4.ypos",                   "6"                     },
506   { "amoeba_dead.part4.frames",                 "1"                     },
507
508   { "lamp",                                     "RocksElements.pcx"     },
509   { "lamp.xpos",                                "0"                     },
510   { "lamp.ypos",                                "7"                     },
511   { "lamp.frames",                              "1"                     },
512   { "lamp.active",                              "RocksElements.pcx"     },
513   { "lamp.active.xpos",                         "1"                     },
514   { "lamp.active.ypos",                         "7"                     },
515   { "lamp.active.frames",                       "1"                     },
516
517   { "time_orb_full",                            "RocksElements.pcx"     },
518   { "time_orb_full.xpos",                       "2"                     },
519   { "time_orb_full.ypos",                       "7"                     },
520   { "time_orb_full.frames",                     "1"                     },
521   { "time_orb_empty",                           "RocksElements.pcx"     },
522   { "time_orb_empty.xpos",                      "3"                     },
523   { "time_orb_empty.ypos",                      "7"                     },
524   { "time_orb_empty.frames",                    "1"                     },
525
526   { "bd_amoeba",                                "RocksElements.pcx"     },
527   { "bd_amoeba.xpos",                           "8"                     },
528   { "bd_amoeba.ypos",                           "7"                     },
529   { "bd_amoeba.frames",                         "1"                     },
530   { "bd_amoeba.part1",                          "RocksElements.pcx"     },
531   { "bd_amoeba.part1.xpos",                     "8"                     },
532   { "bd_amoeba.part1.ypos",                     "6"                     },
533   { "bd_amoeba.part1.frames",                   "1"                     },
534   { "bd_amoeba.part2",                          "RocksElements.pcx"     },
535   { "bd_amoeba.part2.xpos",                     "9"                     },
536   { "bd_amoeba.part2.ypos",                     "6"                     },
537   { "bd_amoeba.part2.frames",                   "1"                     },
538   { "bd_amoeba.part3",                          "RocksElements.pcx"     },
539   { "bd_amoeba.part3.xpos",                     "10"                    },
540   { "bd_amoeba.part3.ypos",                     "6"                     },
541   { "bd_amoeba.part3.frames",                   "1"                     },
542   { "bd_amoeba.part4",                          "RocksElements.pcx"     },
543   { "bd_amoeba.part4.xpos",                     "11"                    },
544   { "bd_amoeba.part4.ypos",                     "6"                     },
545   { "bd_amoeba.part4.frames",                   "1"                     },
546
547   { "sokoban_object",                           "RocksElements.pcx"     },
548   { "sokoban_object.xpos",                      "9"                     },
549   { "sokoban_object.ypos",                      "7"                     },
550   { "sokoban_object.frames",                    "1"                     },
551   { "sokoban_field_empty",                      "RocksElements.pcx"     },
552   { "sokoban_field_empty.xpos",                 "10"                    },
553   { "sokoban_field_empty.ypos",                 "7"                     },
554   { "sokoban_field_empty.frames",               "1"                     },
555   { "sokoban_field_full",                       "RocksElements.pcx"     },
556   { "sokoban_field_full.xpos",                  "11"                    },
557   { "sokoban_field_full.ypos",                  "7"                     },
558   { "sokoban_field_full.frames",                "1"                     },
559
560   { "magic_wall",                               "RocksElements.pcx"     },
561   { "magic_wall.xpos",                          "0"                     },
562   { "magic_wall.ypos",                          "8"                     },
563   { "magic_wall.frames",                        "1"                     },
564   { "magic_wall.active",                        "RocksElements.pcx"     },
565   { "magic_wall.active.xpos",                   "0"                     },
566   { "magic_wall.active.ypos",                   "8"                     },
567   { "magic_wall.active.frames",                 "4"                     },
568   { "magic_wall.filling",                       "RocksElements.pcx"     },
569   { "magic_wall.filling.xpos",                  "0"                     },
570   { "magic_wall.filling.ypos",                  "8"                     },
571   { "magic_wall.filling.frames",                "4"                     },
572   { "magic_wall.emptying",                      "RocksElements.pcx"     },
573   { "magic_wall.emptying.xpos",                 "0"                     },
574   { "magic_wall.emptying.ypos",                 "8"                     },
575   { "magic_wall.emptying.frames",               "4"                     },
576
577   { "bd_magic_wall",                            "RocksElements.pcx"     },
578   { "bd_magic_wall.xpos",                       "12"                    },
579   { "bd_magic_wall.ypos",                       "10"                    },
580   { "bd_magic_wall.frames",                     "1"                     },
581   { "bd_magic_wall.active",                     "RocksElements.pcx"     },
582   { "bd_magic_wall.active.xpos",                "12"                    },
583   { "bd_magic_wall.active.ypos",                "10"                    },
584   { "bd_magic_wall.active.frames",              "4"                     },
585   { "bd_magic_wall.filling",                    "RocksElements.pcx"     },
586   { "bd_magic_wall.filling.xpos",               "12"                    },
587   { "bd_magic_wall.filling.ypos",               "10"                    },
588   { "bd_magic_wall.filling.frames",             "4"                     },
589   { "bd_magic_wall.emptying",                   "RocksElements.pcx"     },
590   { "bd_magic_wall.emptying.xpos",              "12"                    },
591   { "bd_magic_wall.emptying.ypos",              "10"                    },
592   { "bd_magic_wall.emptying.frames",            "4"                     },
593
594   { "wall_emerald",                             "RocksElements.pcx"     },
595   { "wall_emerald.xpos",                        "4"                     },
596   { "wall_emerald.ypos",                        "8"                     },
597   { "wall_emerald.frames",                      "1"                     },
598   { "wall_diamond",                             "RocksElements.pcx"     },
599   { "wall_diamond.xpos",                        "5"                     },
600   { "wall_diamond.ypos",                        "8"                     },
601   { "wall_diamond.frames",                      "1"                     },
602   { "wall_emerald_red",                         "RocksElements.pcx"     },
603   { "wall_emerald_red.xpos",                    "6"                     },
604   { "wall_emerald_red.ypos",                    "8"                     },
605   { "wall_emerald_red.frames",                  "1"                     },
606   { "wall_emerald_purple",                      "RocksElements.pcx"     },
607   { "wall_emerald_purple.xpos",                 "7"                     },
608   { "wall_emerald_purple.ypos",                 "8"                     },
609   { "wall_emerald_purple.frames",               "1"                     },
610   { "wall_emerald_yellow",                      "RocksElements.pcx"     },
611   { "wall_emerald_yellow.xpos",                 "8"                     },
612   { "wall_emerald_yellow.ypos",                 "8"                     },
613   { "wall_emerald_yellow.frames",               "1"                     },
614   { "wall_bd_diamond",                          "RocksElements.pcx"     },
615   { "wall_bd_diamond.xpos",                     "9"                     },
616   { "wall_bd_diamond.ypos",                     "8"                     },
617   { "wall_bd_diamond.frames",                   "1"                     },
618
619   { "emerald_red",                              "RocksElements.pcx"     },
620   { "emerald_red.xpos",                         "8"                     },
621   { "emerald_red.ypos",                         "9"                     },
622   { "emerald_red.frames",                       "1"                     },
623   { "emerald_red.falling",                      "RocksElements.pcx"     },
624   { "emerald_red.falling.xpos",                 "8"                     },
625   { "emerald_red.falling.ypos",                 "9"                     },
626   { "emerald_red.falling.frames",               "2"                     },
627   { "emerald_purple",                           "RocksElements.pcx"     },
628   { "emerald_purple.xpos",                      "10"                    },
629   { "emerald_purple.ypos",                      "9"                     },
630   { "emerald_purple.frames",                    "1"                     },
631   { "emerald_purple.falling",                   "RocksElements.pcx"     },
632   { "emerald_purple.falling.xpos",              "10"                    },
633   { "emerald_purple.falling.ypos",              "9"                     },
634   { "emerald_purple.falling.frames",            "2"                     },
635   { "emerald_yellow",                           "RocksElements.pcx"     },
636   { "emerald_yellow.xpos",                      "10"                    },
637   { "emerald_yellow.ypos",                      "8"                     },
638   { "emerald_yellow.frames",                    "1"                     },
639   { "emerald_yellow.falling",                   "RocksElements.pcx"     },
640   { "emerald_yellow.falling.xpos",              "10"                    },
641   { "emerald_yellow.falling.ypos",              "8"                     },
642   { "emerald_yellow.falling.frames",            "2"                     },
643
644   { "wall_growing_xy",                          "RocksElements.pcx"     },
645   { "wall_growing_xy.xpos",                     "4"                     },
646   { "wall_growing_xy.ypos",                     "9"                     },
647   { "wall_growing_xy.frames",                   "1"                     },
648   { "wall_growing_x",                           "RocksElements.pcx"     },
649   { "wall_growing_x.xpos",                      "5"                     },
650   { "wall_growing_x.ypos",                      "9"                     },
651   { "wall_growing_x.frames",                    "1"                     },
652   { "wall_growing_y",                           "RocksElements.pcx"     },
653   { "wall_growing_y.xpos",                      "6"                     },
654   { "wall_growing_y.ypos",                      "9"                     },
655   { "wall_growing_y.frames",                    "1"                     },
656
657   { "dynabomb_xl",                              "RocksElements.pcx"     },
658   { "dynabomb_xl.xpos",                         "12"                    },
659   { "dynabomb_xl.ypos",                         "9"                     },
660   { "dynabomb_xl.frames",                       "1"                     },
661
662   { "black_orb",                                "RocksElements.pcx"     },
663   { "black_orb.xpos",                           "13"                    },
664   { "black_orb.ypos",                           "9"                     },
665   { "black_orb.frames",                         "1"                     },
666
667   { "speed_pill",                               "RocksElements.pcx"     },
668   { "speed_pill.xpos",                          "14"                    },
669   { "speed_pill.ypos",                          "9"                     },
670   { "speed_pill.frames",                        "1"                     },
671
672   { "bd_diamond",                               "RocksElements.pcx"     },
673   { "bd_diamond.xpos",                          "0"                     },
674   { "bd_diamond.ypos",                          "10"                    },
675   { "bd_diamond.frames",                        "4"                     },
676   { "bd_diamond.falling",                       "RocksElements.pcx"     },
677   { "bd_diamond.falling.xpos",                  "3"                     },
678   { "bd_diamond.falling.ypos",                  "10"                    },
679   { "bd_diamond.falling.frames",                "2"                     },
680
681   { "wall.growing_right",                       "RocksElements.pcx"     },
682   { "wall.growing_right.xpos",                  "5"                     },
683   { "wall.growing_right.ypos",                  "10"                    },
684   { "wall.growing_right.frames",                "3"                     },
685   { "wall.growing_left",                        "RocksElements.pcx"     },
686   { "wall.growing_left.xpos",                   "8"                     },
687   { "wall.growing_left.ypos",                   "10"                    },
688   { "wall.growing_left.frames",                 "3"                     },
689
690   { "exit_closed",                              "RocksElements.pcx"     },
691   { "exit_closed.xpos",                         "0"                     },
692   { "exit_closed.ypos",                         "11"                    },
693   { "exit_closed.frames",                       "1"                     },
694   { "exit.opening",                             "RocksElements.pcx"     },
695   { "exit.opening.xpos",                        "1"                     },
696   { "exit.opening.ypos",                        "11"                    },
697   { "exit.opening.frames",                      "4"                     },
698   { "exit_open",                                "RocksElements.pcx"     },
699   { "exit_open.xpos",                           "4"                     },
700   { "exit_open.ypos",                           "11"                    },
701   { "exit_open.frames",                         "4"                     },
702   { "exit_open.pingpong",                       "1"                     },
703
704   { "dark_yamyam",                              "RocksElements.pcx"     },
705   { "dark_yamyam.xpos",                         "8"                     },
706   { "dark_yamyam.ypos",                         "11"                    },
707   { "dark_yamyam.frames",                       "4"                     },
708   { "dark_yamyam.pingpong",                     "1"                     },
709
710   { "dynabomb.active",                          "RocksElements.pcx"     },
711   { "dynabomb.active.xpos",                     "12"                    },
712   { "dynabomb.active.ypos",                     "11"                    },
713   { "dynabomb.active.frames",                   "4"                     },
714   { "dynabomb.active.pingpong",         "1"                     },
715   { "dynabomb_nr",                              "RocksElements.pcx"     },
716   { "dynabomb_nr.xpos",                         "12"                    },
717   { "dynabomb_nr.ypos",                         "11"                    },
718   { "dynabomb_nr.frames",                       "1"                     },
719   { "dynabomb_sz",                              "RocksElements.pcx"     },
720   { "dynabomb_sz.xpos",                         "15"                    },
721   { "dynabomb_sz.ypos",                         "11"                    },
722   { "dynabomb_sz.frames",                       "1"                     },
723
724   { "bd_butterfly",                             "RocksElements.pcx"     },
725   { "bd_butterfly.xpos",                        "4"                     },
726   { "bd_butterfly.ypos",                        "12"                    },
727   { "bd_butterfly.frames",                      "2"                     },
728   { "bd_butterfly.pingpong",                    "1"                     },
729   { "bd_butterfly.delay",                       "4"                     },
730   { "bd_butterfly.moving",                      "RocksElements.pcx"     },
731   { "bd_butterfly.moving.xpos",                 "4"                     },
732   { "bd_butterfly.moving.ypos",                 "12"                    },
733   { "bd_butterfly.moving.frames",               "2"                     },
734   { "bd_butterfly.moving.pingpong",             "1"                     },
735   { "bd_butterfly.moving.delay",                "4"                     },
736   { "bd_butterfly_right",                       "RocksElements.pcx"     },
737   { "bd_butterfly_right.xpos",                  "8"                     },
738   { "bd_butterfly_right.ypos",                  "12"                    },
739   { "bd_butterfly_right.frames",                "1"                     },
740   { "bd_butterfly_up",                          "RocksElements.pcx"     },
741   { "bd_butterfly_up.xpos",                     "9"                     },
742   { "bd_butterfly_up.ypos",                     "12"                    },
743   { "bd_butterfly_up.frames",                   "1"                     },
744   { "bd_butterfly_left",                        "RocksElements.pcx"     },
745   { "bd_butterfly_left.xpos",                   "10"                    },
746   { "bd_butterfly_left.ypos",                   "12"                    },
747   { "bd_butterfly_left.frames",                 "1"                     },
748   { "bd_butterfly_down",                        "RocksElements.pcx"     },
749   { "bd_butterfly_down.xpos",                   "11"                    },
750   { "bd_butterfly_down.ypos",                   "12"                    },
751   { "bd_butterfly_down.frames",                 "1"                     },
752
753   { "bd_firefly",                               "RocksElements.pcx"     },
754   { "bd_firefly.xpos",                          "6"                     },
755   { "bd_firefly.ypos",                          "12"                    },
756   { "bd_firefly.frames",                        "2"                     },
757   { "bd_firefly.pingpong",                      "1"                     },
758   { "bd_firefly.delay",                         "4"                     },
759   { "bd_firefly.moving",                        "RocksElements.pcx"     },
760   { "bd_firefly.moving.xpos",                   "6"                     },
761   { "bd_firefly.moving.ypos",                   "12"                    },
762   { "bd_firefly.moving.frames",                 "2"                     },
763   { "bd_firefly.moving.pingpong",               "1"                     },
764   { "bd_firefly.moving.delay",                  "4"                     },
765   { "bd_firefly_right",                         "RocksElements.pcx"     },
766   { "bd_firefly_right.xpos",                    "12"                    },
767   { "bd_firefly_right.ypos",                    "12"                    },
768   { "bd_firefly_right.frames",                  "1"                     },
769   { "bd_firefly_up",                            "RocksElements.pcx"     },
770   { "bd_firefly_up.xpos",                       "13"                    },
771   { "bd_firefly_up.ypos",                       "12"                    },
772   { "bd_firefly_up.frames",                     "1"                     },
773   { "bd_firefly_left",                          "RocksElements.pcx"     },
774   { "bd_firefly_left.xpos",                     "14"                    },
775   { "bd_firefly_left.ypos",                     "12"                    },
776   { "bd_firefly_left.frames",                   "1"                     },
777   { "bd_firefly_down",                          "RocksElements.pcx"     },
778   { "bd_firefly_down.xpos",                     "15"                    },
779   { "bd_firefly_down.ypos",                     "12"                    },
780   { "bd_firefly_down.frames",                   "1"                     },
781
782   { "steelwall_topleft",                        "RocksElements.pcx"     },
783   { "steelwall_topleft.xpos",                   "0"                     },
784   { "steelwall_topleft.ypos",                   "13"                    },
785   { "steelwall_topleft.frames",                 "1"                     },
786   { "steelwall_topright",                       "RocksElements.pcx"     },
787   { "steelwall_topright.xpos",                  "1"                     },
788   { "steelwall_topright.ypos",                  "13"                    },
789   { "steelwall_topright.frames",                "1"                     },
790   { "steelwall_bottomleft",                     "RocksElements.pcx"     },
791   { "steelwall_bottomleft.xpos",                "2"                     },
792   { "steelwall_bottomleft.ypos",                "13"                    },
793   { "steelwall_bottomleft.frames",              "1"                     },
794   { "steelwall_bottomright",                    "RocksElements.pcx"     },
795   { "steelwall_bottomright.xpos",               "3"                     },
796   { "steelwall_bottomright.ypos",               "13"                    },
797   { "steelwall_bottomright.frames",             "1"                     },
798   { "steelwall_horizontal",                     "RocksElements.pcx"     },
799   { "steelwall_horizontal.xpos",                "4"                     },
800   { "steelwall_horizontal.ypos",                "13"                    },
801   { "steelwall_horizontal.frames",              "1"                     },
802   { "steelwall_vertical",                       "RocksElements.pcx"     },
803   { "steelwall_vertical.xpos",                  "5"                     },
804   { "steelwall_vertical.ypos",                  "13"                    },
805   { "steelwall_vertical.frames",                "1"                     },
806
807   { "invisible_steelwall_topleft",              "RocksElements.pcx"     },
808   { "invisible_steelwall_topleft.xpos",         "6"                     },
809   { "invisible_steelwall_topleft.ypos",         "13"                    },
810   { "invisible_steelwall_topleft.frames",       "1"                     },
811   { "invisible_steelwall_topright",             "RocksElements.pcx"     },
812   { "invisible_steelwall_topright.xpos",        "7"                     },
813   { "invisible_steelwall_topright.ypos",        "13"                    },
814   { "invisible_steelwall_topright.frames",      "1"                     },
815   { "invisible_steelwall_bottomleft",           "RocksElements.pcx"     },
816   { "invisible_steelwall_bottomleft.xpos",      "8"                     },
817   { "invisible_steelwall_bottomleft.ypos",      "13"                    },
818   { "invisible_steelwall_bottomleft.frames",    "1"                     },
819   { "invisible_steelwall_bottomright",          "RocksElements.pcx"     },
820   { "invisible_steelwall_bottomright.xpos",     "9"                     },
821   { "invisible_steelwall_bottomright.ypos",     "13"                    },
822   { "invisible_steelwall_bottomright.frames",   "1"                     },
823   { "invisible_steelwall_horizontal",           "RocksElements.pcx"     },
824   { "invisible_steelwall_horizontal.xpos",      "10"                    },
825   { "invisible_steelwall_horizontal.ypos",      "13"                    },
826   { "invisible_steelwall_horizontal.frames",    "1"                     },
827   { "invisible_steelwall_vertical",             "RocksElements.pcx"     },
828   { "invisible_steelwall_vertical.xpos",        "11"                    },
829   { "invisible_steelwall_vertical.ypos",        "13"                    },
830   { "invisible_steelwall_vertical.frames",      "1"                     },
831
832   { "player1",                                  "RocksHeroes.pcx"       },
833   { "player1.xpos",                             "0"                     },
834   { "player1.ypos",                             "0"                     },
835   { "player1.frames",                           "1"                     },
836   { "player1_down",                             "RocksHeroes.pcx"       },
837   { "player1_down.xpos",                        "0"                     },
838   { "player1_down.ypos",                        "0"                     },
839   { "player1_down.frames",                      "1"                     },
840   { "player1_down.moving",                      "RocksHeroes.pcx"       },
841   { "player1_down.moving.xpos",                 "0"                     },
842   { "player1_down.moving.ypos",                 "0"                     },
843   { "player1_down.moving.frames",               "4"                     },
844   { "player1_down.digging",                     "RocksHeroes.pcx"       },
845   { "player1_down.digging.xpos",                "0"                     },
846   { "player1_down.digging.ypos",                "0"                     },
847   { "player1_down.digging.frames",              "4"                     },
848   { "player1_up",                               "RocksHeroes.pcx"       },
849   { "player1_up.xpos",                          "4"                     },
850   { "player1_up.ypos",                          "0"                     },
851   { "player1_up.frames",                        "1"                     },
852   { "player1_up.moving",                        "RocksHeroes.pcx"       },
853   { "player1_up.moving.xpos",                   "4"                     },
854   { "player1_up.moving.ypos",                   "0"                     },
855   { "player1_up.moving.frames",                 "4"                     },
856   { "player1_up.digging",                       "RocksHeroes.pcx"       },
857   { "player1_up.digging.xpos",                  "4"                     },
858   { "player1_up.digging.ypos",                  "0"                     },
859   { "player1_up.digging.frames",                "4"                     },
860   { "player1_left",                             "RocksHeroes.pcx"       },
861   { "player1_left.xpos",                        "0"                     },
862   { "player1_left.ypos",                        "1"                     },
863   { "player1_left.frames",                      "1"                     },
864   { "player1_left.moving",                      "RocksHeroes.pcx"       },
865   { "player1_left.moving.xpos",                 "0"                     },
866   { "player1_left.moving.ypos",                 "1"                     },
867   { "player1_left.moving.frames",               "4"                     },
868   { "player1_left.digging",                     "RocksHeroes.pcx"       },
869   { "player1_left.digging.xpos",                "0"                     },
870   { "player1_left.digging.ypos",                "1"                     },
871   { "player1_left.digging.frames",              "4"                     },
872   { "player1_left.pushing",                     "RocksHeroes.pcx"       },
873   { "player1_left.pushing.xpos",                "4"                     },
874   { "player1_left.pushing.ypos",                "2"                     },
875   { "player1_left.pushing.frames",              "4"                     },
876   { "player1_right",                            "RocksHeroes.pcx"       },
877   { "player1_right.xpos",                       "4"                     },
878   { "player1_right.ypos",                       "1"                     },
879   { "player1_right.frames",                     "1"                     },
880   { "player1_right.moving",                     "RocksHeroes.pcx"       },
881   { "player1_right.moving.xpos",                "4"                     },
882   { "player1_right.moving.ypos",                "1"                     },
883   { "player1_right.moving.frames",              "4"                     },
884   { "player1_right.digging",                    "RocksHeroes.pcx"       },
885   { "player1_right.digging.xpos",               "4"                     },
886   { "player1_right.digging.ypos",               "1"                     },
887   { "player1_right.digging.frames",             "4"                     },
888   { "player1_right.pushing",                    "RocksHeroes.pcx"       },
889   { "player1_right.pushing.xpos",               "0"                     },
890   { "player1_right.pushing.ypos",               "2"                     },
891   { "player1_right.pushing.frames",             "4"                     },
892
893   { "player2",                                  "RocksHeroes.pcx"       },
894   { "player2.xpos",                             "0"                     },
895   { "player2.ypos",                             "3"                     },
896   { "player2.frames",                           "1"                     },
897   { "player2_down",                             "RocksHeroes.pcx"       },
898   { "player2_down.xpos",                        "0"                     },
899   { "player2_down.ypos",                        "3"                     },
900   { "player2_down.frames",                      "1"                     },
901   { "player2_down.moving",                      "RocksHeroes.pcx"       },
902   { "player2_down.moving.xpos",                 "0"                     },
903   { "player2_down.moving.ypos",                 "3"                     },
904   { "player2_down.moving.frames",               "4"                     },
905   { "player2_down.digging",                     "RocksHeroes.pcx"       },
906   { "player2_down.digging.xpos",                "0"                     },
907   { "player2_down.digging.ypos",                "3"                     },
908   { "player2_down.digging.frames",              "4"                     },
909   { "player2_up",                               "RocksHeroes.pcx"       },
910   { "player2_up.xpos",                          "4"                     },
911   { "player2_up.ypos",                          "3"                     },
912   { "player2_up.frames",                        "1"                     },
913   { "player2_up.moving",                        "RocksHeroes.pcx"       },
914   { "player2_up.moving.xpos",                   "4"                     },
915   { "player2_up.moving.ypos",                   "3"                     },
916   { "player2_up.moving.frames",                 "4"                     },
917   { "player2_up.digging",                       "RocksHeroes.pcx"       },
918   { "player2_up.digging.xpos",                  "4"                     },
919   { "player2_up.digging.ypos",                  "3"                     },
920   { "player2_up.digging.frames",                "4"                     },
921   { "player2_left",                             "RocksHeroes.pcx"       },
922   { "player2_left.xpos",                        "0"                     },
923   { "player2_left.ypos",                        "4"                     },
924   { "player2_left.frames",                      "1"                     },
925   { "player2_left.moving",                      "RocksHeroes.pcx"       },
926   { "player2_left.moving.xpos",                 "0"                     },
927   { "player2_left.moving.ypos",                 "4"                     },
928   { "player2_left.moving.frames",               "4"                     },
929   { "player2_left.digging",                     "RocksHeroes.pcx"       },
930   { "player2_left.digging.xpos",                "0"                     },
931   { "player2_left.digging.ypos",                "4"                     },
932   { "player2_left.digging.frames",              "4"                     },
933   { "player2_left.pushing",                     "RocksHeroes.pcx"       },
934   { "player2_left.pushing.xpos",                "4"                     },
935   { "player2_left.pushing.ypos",                "5"                     },
936   { "player2_left.pushing.frames",              "4"                     },
937   { "player2_right",                            "RocksHeroes.pcx"       },
938   { "player2_right.xpos",                       "4"                     },
939   { "player2_right.ypos",                       "4"                     },
940   { "player2_right.frames",                     "1"                     },
941   { "player2_right.moving",                     "RocksHeroes.pcx"       },
942   { "player2_right.moving.xpos",                "4"                     },
943   { "player2_right.moving.ypos",                "4"                     },
944   { "player2_right.moving.frames",              "4"                     },
945   { "player2_right.digging",                    "RocksHeroes.pcx"       },
946   { "player2_right.digging.xpos",               "4"                     },
947   { "player2_right.digging.ypos",               "4"                     },
948   { "player2_right.digging.frames",             "4"                     },
949   { "player2_right.pushing",                    "RocksHeroes.pcx"       },
950   { "player2_right.pushing.xpos",               "0"                     },
951   { "player2_right.pushing.ypos",               "5"                     },
952   { "player2_right.pushing.frames",             "4"                     },
953
954   { "player3",                                  "RocksHeroes.pcx"       },
955   { "player3.xpos",                             "0"                     },
956   { "player3.ypos",                             "6"                     },
957   { "player3.frames",                           "1"                     },
958   { "player3_down",                             "RocksHeroes.pcx"       },
959   { "player3_down.xpos",                        "0"                     },
960   { "player3_down.ypos",                        "6"                     },
961   { "player3_down.frames",                      "1"                     },
962   { "player3_down.moving",                      "RocksHeroes.pcx"       },
963   { "player3_down.moving.xpos",                 "0"                     },
964   { "player3_down.moving.ypos",                 "6"                     },
965   { "player3_down.moving.frames",               "4"                     },
966   { "player3_down.digging",                     "RocksHeroes.pcx"       },
967   { "player3_down.digging.xpos",                "0"                     },
968   { "player3_down.digging.ypos",                "6"                     },
969   { "player3_down.digging.frames",              "4"                     },
970   { "player3_up",                               "RocksHeroes.pcx"       },
971   { "player3_up.xpos",                          "4"                     },
972   { "player3_up.ypos",                          "6"                     },
973   { "player3_up.frames",                        "1"                     },
974   { "player3_up.moving",                        "RocksHeroes.pcx"       },
975   { "player3_up.moving.xpos",                   "4"                     },
976   { "player3_up.moving.ypos",                   "6"                     },
977   { "player3_up.moving.frames",                 "4"                     },
978   { "player3_up.digging",                       "RocksHeroes.pcx"       },
979   { "player3_up.digging.xpos",                  "4"                     },
980   { "player3_up.digging.ypos",                  "6"                     },
981   { "player3_up.digging.frames",                "4"                     },
982   { "player3_left",                             "RocksHeroes.pcx"       },
983   { "player3_left.xpos",                        "0"                     },
984   { "player3_left.ypos",                        "7"                     },
985   { "player3_left.frames",                      "1"                     },
986   { "player3_left.moving",                      "RocksHeroes.pcx"       },
987   { "player3_left.moving.xpos",                 "0"                     },
988   { "player3_left.moving.ypos",                 "7"                     },
989   { "player3_left.moving.frames",               "4"                     },
990   { "player3_left.digging",                     "RocksHeroes.pcx"       },
991   { "player3_left.digging.xpos",                "0"                     },
992   { "player3_left.digging.ypos",                "7"                     },
993   { "player3_left.digging.frames",              "4"                     },
994   { "player3_left.pushing",                     "RocksHeroes.pcx"       },
995   { "player3_left.pushing.xpos",                "4"                     },
996   { "player3_left.pushing.ypos",                "8"                     },
997   { "player3_left.pushing.frames",              "4"                     },
998   { "player3_right",                            "RocksHeroes.pcx"       },
999   { "player3_right.xpos",                       "4"                     },
1000   { "player3_right.ypos",                       "7"                     },
1001   { "player3_right.frames",                     "1"                     },
1002   { "player3_right.moving",                     "RocksHeroes.pcx"       },
1003   { "player3_right.moving.xpos",                "4"                     },
1004   { "player3_right.moving.ypos",                "7"                     },
1005   { "player3_right.moving.frames",              "4"                     },
1006   { "player3_right.digging",                    "RocksHeroes.pcx"       },
1007   { "player3_right.digging.xpos",               "4"                     },
1008   { "player3_right.digging.ypos",               "7"                     },
1009   { "player3_right.digging.frames",             "4"                     },
1010   { "player3_right.pushing",                    "RocksHeroes.pcx"       },
1011   { "player3_right.pushing.xpos",               "0"                     },
1012   { "player3_right.pushing.ypos",               "8"                     },
1013   { "player3_right.pushing.frames",             "4"                     },
1014
1015   { "player4",                                  "RocksHeroes.pcx"       },
1016   { "player4.xpos",                             "0"                     },
1017   { "player4.ypos",                             "9"                     },
1018   { "player4.frames",                           "1"                     },
1019   { "player4_down",                             "RocksHeroes.pcx"       },
1020   { "player4_down.xpos",                        "0"                     },
1021   { "player4_down.ypos",                        "9"                     },
1022   { "player4_down.frames",                      "1"                     },
1023   { "player4_down.moving",                      "RocksHeroes.pcx"       },
1024   { "player4_down.moving.xpos",                 "0"                     },
1025   { "player4_down.moving.ypos",                 "9"                     },
1026   { "player4_down.moving.frames",               "4"                     },
1027   { "player4_down.digging",                     "RocksHeroes.pcx"       },
1028   { "player4_down.digging.xpos",                "0"                     },
1029   { "player4_down.digging.ypos",                "9"                     },
1030   { "player4_down.digging.frames",              "4"                     },
1031   { "player4_up",                               "RocksHeroes.pcx"       },
1032   { "player4_up.xpos",                          "4"                     },
1033   { "player4_up.ypos",                          "9"                     },
1034   { "player4_up.frames",                        "1"                     },
1035   { "player4_up.moving",                        "RocksHeroes.pcx"       },
1036   { "player4_up.moving.xpos",                   "4"                     },
1037   { "player4_up.moving.ypos",                   "9"                     },
1038   { "player4_up.moving.frames",                 "4"                     },
1039   { "player4_up.digging",                       "RocksHeroes.pcx"       },
1040   { "player4_up.digging.xpos",                  "4"                     },
1041   { "player4_up.digging.ypos",                  "9"                     },
1042   { "player4_up.digging.frames",                "4"                     },
1043   { "player4_left",                             "RocksHeroes.pcx"       },
1044   { "player4_left.xpos",                        "0"                     },
1045   { "player4_left.ypos",                        "10"                    },
1046   { "player4_left.frames",                      "1"                     },
1047   { "player4_left.moving",                      "RocksHeroes.pcx"       },
1048   { "player4_left.moving.xpos",                 "0"                     },
1049   { "player4_left.moving.ypos",                 "9"                     },
1050   { "player4_left.moving.frames",               "4"                     },
1051   { "player4_left.digging",                     "RocksHeroes.pcx"       },
1052   { "player4_left.digging.xpos",                "0"                     },
1053   { "player4_left.digging.ypos",                "9"                     },
1054   { "player4_left.digging.frames",              "4"                     },
1055   { "player4_left.pushing",                     "RocksHeroes.pcx"       },
1056   { "player4_left.pushing.xpos",                "4"                     },
1057   { "player4_left.pushing.ypos",                "11"                    },
1058   { "player4_left.pushing.frames",              "4"                     },
1059   { "player4_right",                            "RocksHeroes.pcx"       },
1060   { "player4_right.xpos",                       "4"                     },
1061   { "player4_right.ypos",                       "10"                    },
1062   { "player4_right.frames",                     "1"                     },
1063   { "player4_right.moving",                     "RocksHeroes.pcx"       },
1064   { "player4_right.moving.xpos",                "4"                     },
1065   { "player4_right.moving.ypos",                "10"                    },
1066   { "player4_right.moving.frames",              "4"                     },
1067   { "player4_right.digging",                    "RocksHeroes.pcx"       },
1068   { "player4_right.digging.xpos",               "4"                     },
1069   { "player4_right.digging.ypos",               "10"                    },
1070   { "player4_right.digging.frames",             "4"                     },
1071   { "player4_right.pushing",                    "RocksHeroes.pcx"       },
1072   { "player4_right.pushing.xpos",               "0"                     },
1073   { "player4_right.pushing.ypos",               "11"                    },
1074   { "player4_right.pushing.frames",             "4"                     },
1075
1076   { "wall.growing_down",                        "RocksHeroes.pcx"       },
1077   { "wall.growing_down.xpos",                   "0"                     },
1078   { "wall.growing_down.ypos",                   "12"                    },
1079   { "wall.growing_down.frames",                 "3"                     },
1080   { "wall.growing_up",                          "RocksHeroes.pcx"       },
1081   { "wall.growing_up.xpos",                     "3"                     },
1082   { "wall.growing_up.ypos",                     "12"                    },
1083   { "wall.growing_up.frames",                   "3"                     },
1084
1085   { "shield_normal.active",                     "RocksHeroes.pcx"       },
1086   { "shield_normal.active.xpos",                "1"                     },
1087   { "shield_normal.active.ypos",                "13"                    },
1088   { "shield_normal.active.frames",              "3"                     },
1089   { "shield_normal.active.pingpong",            "1"                     },
1090   { "shield_deadly.active",                     "RocksHeroes.pcx"       },
1091   { "shield_deadly.active.xpos",                "5"                     },
1092   { "shield_deadly.active.ypos",                "13"                    },
1093   { "shield_deadly.active.frames",              "3"                     },
1094   { "shield_deadly.active.pingpong",            "1"                     },
1095
1096   { "pig_down",                                 "RocksHeroes.pcx"       },
1097   { "pig_down.xpos",                            "8"                     },
1098   { "pig_down.ypos",                            "0"                     },
1099   { "pig_down.frames",                          "1"                     },
1100   { "pig_down.moving",                          "RocksHeroes.pcx"       },
1101   { "pig_down.moving.xpos",                     "8"                     },
1102   { "pig_down.moving.ypos",                     "0"                     },
1103   { "pig_down.moving.frames",                   "4"                     },
1104   { "pig_down.eating",                          "RocksHeroes.pcx"       },
1105   { "pig_down.eating.xpos",                     "8"                     },
1106   { "pig_down.eating.ypos",                     "0"                     },
1107   { "pig_down.eating.frames",                   "4"                     },
1108   { "pig_up",                                   "RocksHeroes.pcx"       },
1109   { "pig_up.xpos",                              "12"                    },
1110   { "pig_up.ypos",                              "0"                     },
1111   { "pig_up.frames",                            "1"                     },
1112   { "pig_up.moving",                            "RocksHeroes.pcx"       },
1113   { "pig_up.moving.xpos",                       "12"                    },
1114   { "pig_up.moving.ypos",                       "0"                     },
1115   { "pig_up.moving.frames",                     "4"                     },
1116   { "pig_up.eating",                            "RocksHeroes.pcx"       },
1117   { "pig_up.eating.xpos",                       "12"                    },
1118   { "pig_up.eating.ypos",                       "0"                     },
1119   { "pig_up.eating.frames",                     "4"                     },
1120   { "pig_left",                                 "RocksHeroes.pcx"       },
1121   { "pig_left.xpos",                            "8"                     },
1122   { "pig_left.ypos",                            "1"                     },
1123   { "pig_left.frames",                          "1"                     },
1124   { "pig_left.moving",                          "RocksHeroes.pcx"       },
1125   { "pig_left.moving.xpos",                     "8"                     },
1126   { "pig_left.moving.ypos",                     "1"                     },
1127   { "pig_left.moving.frames",                   "4"                     },
1128   { "pig_left.eating",                          "RocksHeroes.pcx"       },
1129   { "pig_left.eating.xpos",                     "8"                     },
1130   { "pig_left.eating.ypos",                     "1"                     },
1131   { "pig_left.eating.frames",                   "4"                     },
1132   { "pig_right",                                "RocksHeroes.pcx"       },
1133   { "pig_right.xpos",                           "12"                    },
1134   { "pig_right.ypos",                           "1"                     },
1135   { "pig_right.frames",                         "1"                     },
1136   { "pig_right.moving",                         "RocksHeroes.pcx"       },
1137   { "pig_right.moving.xpos",                    "12"                    },
1138   { "pig_right.moving.ypos",                    "1"                     },
1139   { "pig_right.moving.frames",                  "4"                     },
1140   { "pig_right.eating",                         "RocksHeroes.pcx"       },
1141   { "pig_right.eating.xpos",                    "12"                    },
1142   { "pig_right.eating.ypos",                    "1"                     },
1143   { "pig_right.eating.frames",                  "4"                     },
1144
1145   { "dragon_down",                              "RocksHeroes.pcx"       },
1146   { "dragon_down.xpos",                         "8"                     },
1147   { "dragon_down.ypos",                         "2"                     },
1148   { "dragon_down.frames",                       "1"                     },
1149   { "dragon_down.moving",                       "RocksHeroes.pcx"       },
1150   { "dragon_down.moving.xpos",                  "8"                     },
1151   { "dragon_down.moving.ypos",                  "2"                     },
1152   { "dragon_down.moving.frames",                "4"                     },
1153   { "dragon_down.attacking",                    "RocksHeroes.pcx"       },
1154   { "dragon_down.attacking.xpos",               "8"                     },
1155   { "dragon_down.attacking.ypos",               "2"                     },
1156   { "dragon_down.attacking.frames",             "4"                     },
1157   { "dragon_up",                                "RocksHeroes.pcx"       },
1158   { "dragon_up.xpos",                           "12"                    },
1159   { "dragon_up.ypos",                           "2"                     },
1160   { "dragon_up.frames",                         "1"                     },
1161   { "dragon_up.moving",                         "RocksHeroes.pcx"       },
1162   { "dragon_up.moving.xpos",                    "12"                    },
1163   { "dragon_up.moving.ypos",                    "2"                     },
1164   { "dragon_up.moving.frames",                  "4"                     },
1165   { "dragon_up.attacking",                      "RocksHeroes.pcx"       },
1166   { "dragon_up.attacking.xpos",                 "12"                    },
1167   { "dragon_up.attacking.ypos",                 "2"                     },
1168   { "dragon_up.attacking.frames",               "4"                     },
1169   { "dragon_left",                              "RocksHeroes.pcx"       },
1170   { "dragon_left.xpos",                         "8"                     },
1171   { "dragon_left.ypos",                         "3"                     },
1172   { "dragon_left.frames",                       "1"                     },
1173   { "dragon_left.moving",                       "RocksHeroes.pcx"       },
1174   { "dragon_left.moving.xpos",                  "8"                     },
1175   { "dragon_left.moving.ypos",                  "3"                     },
1176   { "dragon_left.moving.frames",                "4"                     },
1177   { "dragon_left.attacking",                    "RocksHeroes.pcx"       },
1178   { "dragon_left.attacking.xpos",               "8"                     },
1179   { "dragon_left.attacking.ypos",               "3"                     },
1180   { "dragon_left.attacking.frames",             "4"                     },
1181   { "dragon_right",                             "RocksHeroes.pcx"       },
1182   { "dragon_right.xpos",                        "12"                    },
1183   { "dragon_right.ypos",                        "3"                     },
1184   { "dragon_right.frames",                      "1"                     },
1185   { "dragon_right.moving",                      "RocksHeroes.pcx"       },
1186   { "dragon_right.moving.xpos",                 "12"                    },
1187   { "dragon_right.moving.ypos",                 "3"                     },
1188   { "dragon_right.moving.frames",               "4"                     },
1189   { "dragon_right.attacking",                   "RocksHeroes.pcx"       },
1190   { "dragon_right.attacking.xpos",              "12"                    },
1191   { "dragon_right.attacking.ypos",              "3"                     },
1192   { "dragon_right.attacking.frames",            "4"                     },
1193
1194   { "mole_down",                                "RocksHeroes.pcx"       },
1195   { "mole_down.xpos",                           "8"                     },
1196   { "mole_down.ypos",                           "4"                     },
1197   { "mole_down.frames",                         "1"                     },
1198   { "mole_down.moving",                         "RocksHeroes.pcx"       },
1199   { "mole_down.moving.xpos",                    "8"                     },
1200   { "mole_down.moving.ypos",                    "4"                     },
1201   { "mole_down.moving.frames",                  "4"                     },
1202   { "mole_down.digging",                        "RocksHeroes.pcx"       },
1203   { "mole_down.digging.xpos",                   "8"                     },
1204   { "mole_down.digging.ypos",                   "4"                     },
1205   { "mole_down.digging.frames",                 "4"                     },
1206   { "mole_up",                                  "RocksHeroes.pcx"       },
1207   { "mole_up.xpos",                             "12"                    },
1208   { "mole_up.ypos",                             "4"                     },
1209   { "mole_up.frames",                           "1"                     },
1210   { "mole_up.moving",                           "RocksHeroes.pcx"       },
1211   { "mole_up.moving.xpos",                      "12"                    },
1212   { "mole_up.moving.ypos",                      "4"                     },
1213   { "mole_up.moving.frames",                    "4"                     },
1214   { "mole_up.digging",                          "RocksHeroes.pcx"       },
1215   { "mole_up.digging.xpos",                     "12"                    },
1216   { "mole_up.digging.ypos",                     "4"                     },
1217   { "mole_up.digging.frames",                   "4"                     },
1218   { "mole_left",                                "RocksHeroes.pcx"       },
1219   { "mole_left.xpos",                           "8"                     },
1220   { "mole_left.ypos",                           "5"                     },
1221   { "mole_left.frames",                         "1"                     },
1222   { "mole_left.moving",                         "RocksHeroes.pcx"       },
1223   { "mole_left.moving.xpos",                    "8"                     },
1224   { "mole_left.moving.ypos",                    "5"                     },
1225   { "mole_left.moving.frames",                  "4"                     },
1226   { "mole_left.digging",                        "RocksHeroes.pcx"       },
1227   { "mole_left.digging.xpos",                   "8"                     },
1228   { "mole_left.digging.ypos",                   "5"                     },
1229   { "mole_left.digging.frames",                 "4"                     },
1230   { "mole_right",                               "RocksHeroes.pcx"       },
1231   { "mole_right.xpos",                          "12"                    },
1232   { "mole_right.ypos",                          "5"                     },
1233   { "mole_right.frames",                        "1"                     },
1234   { "mole_right.moving",                        "RocksHeroes.pcx"       },
1235   { "mole_right.moving.xpos",                   "12"                    },
1236   { "mole_right.moving.ypos",                   "5"                     },
1237   { "mole_right.moving.frames",                 "4"                     },
1238   { "mole_right.digging",                       "RocksHeroes.pcx"       },
1239   { "mole_right.digging.xpos",                  "12"                    },
1240   { "mole_right.digging.ypos",                  "5"                     },
1241   { "mole_right.digging.frames",                "4"                     },
1242
1243   { "penguin_down",                             "RocksHeroes.pcx"       },
1244   { "penguin_down.xpos",                        "8"                     },
1245   { "penguin_down.ypos",                        "6"                     },
1246   { "penguin_down.frames",                      "1"                     },
1247   { "penguin_down.moving",                      "RocksHeroes.pcx"       },
1248   { "penguin_down.moving.xpos",                 "8"                     },
1249   { "penguin_down.moving.ypos",                 "6"                     },
1250   { "penguin_down.moving.frames",               "4"                     },
1251   { "penguin_up",                               "RocksHeroes.pcx"       },
1252   { "penguin_up.xpos",                          "12"                    },
1253   { "penguin_up.ypos",                          "6"                     },
1254   { "penguin_up.frames",                        "1"                     },
1255   { "penguin_up.moving",                        "RocksHeroes.pcx"       },
1256   { "penguin_up.moving.xpos",                   "12"                    },
1257   { "penguin_up.moving.ypos",                   "6"                     },
1258   { "penguin_up.moving.frames",                 "4"                     },
1259   { "penguin_left",                             "RocksHeroes.pcx"       },
1260   { "penguin_left.xpos",                        "8"                     },
1261   { "penguin_left.ypos",                        "7"                     },
1262   { "penguin_left.frames",                      "1"                     },
1263   { "penguin_left.moving",                      "RocksHeroes.pcx"       },
1264   { "penguin_left.moving.xpos",                 "8"                     },
1265   { "penguin_left.moving.ypos",                 "7"                     },
1266   { "penguin_left.moving.frames",               "4"                     },
1267   { "penguin_right",                            "RocksHeroes.pcx"       },
1268   { "penguin_right.xpos",                       "12"                    },
1269   { "penguin_right.ypos",                       "7"                     },
1270   { "penguin_right.frames",                     "1"                     },
1271   { "penguin_right.moving",                     "RocksHeroes.pcx"       },
1272   { "penguin_right.moving.xpos",                "12"                    },
1273   { "penguin_right.moving.ypos",                "7"                     },
1274   { "penguin_right.moving.frames",              "4"                     },
1275
1276   { "satellite",                                "RocksHeroes.pcx"       },
1277   { "satellite.xpos",                           "8"                     },
1278   { "satellite.ypos",                           "9"                     },
1279   { "satellite.frames",                         "8"                     },
1280   { "satellite.moving.delay",                   "2"                     },
1281   { "satellite.moving",                         "RocksHeroes.pcx"       },
1282   { "satellite.moving.xpos",                    "8"                     },
1283   { "satellite.moving.ypos",                    "9"                     },
1284   { "satellite.moving.frames",                  "8"                     },
1285   { "satellite.moving.delay",                   "2"                     },
1286
1287   { "acid.splashing_left",                      "RocksHeroes.pcx"       },
1288   { "acid.splashing_left.xpos",                 "8"                     },
1289   { "acid.splashing_left.ypos",                 "10"                    },
1290   { "acid.splashing_left.frames",               "4"                     },
1291   { "acid.splashing_right",                     "RocksHeroes.pcx"       },
1292   { "acid.splashing_right.xpos",                "12"                    },
1293   { "acid.splashing_right.ypos",                "10"                    },
1294   { "acid.splashing_right.frames",              "4"                     },
1295
1296   { "twinkle_blue",                             "RocksHeroes.pcx"       },
1297   { "twinkle_blue.xpos",                        "8"                     },
1298   { "twinkle_blue.ypos",                        "11"                    },
1299   { "twinkle_blue.frames",                      "3"                     },
1300   { "twinkle_blue.pingpong",                    "1"                     },
1301   { "twinkle_white",                            "RocksHeroes.pcx"       },
1302   { "twinkle_white.xpos",                       "8"                     },
1303   { "twinkle_white.ypos",                       "11"                    },
1304   { "twinkle_white.frames",                     "3"                     },
1305   { "twinkle_white.pingpong",                   "1"                     },
1306
1307   { "dragon_fire_left1",                        "RocksHeroes.pcx"       },
1308   { "dragon_fire_left1.xpos",                   "8"                     },
1309   { "dragon_fire_left1.ypos",                   "12"                    },
1310   { "dragon_fire_left1.frames",                 "2"                     },
1311   { "dragon_fire_left2",                        "RocksHeroes.pcx"       },
1312   { "dragon_fire_left2.xpos",                   "9"                     },
1313   { "dragon_fire_left2.ypos",                   "12"                    },
1314   { "dragon_fire_left2.frames",                 "2"                     },
1315   { "dragon_fire_left3",                        "RocksHeroes.pcx"       },
1316   { "dragon_fire_left3.xpos",                   "10"                    },
1317   { "dragon_fire_left3.ypos",                   "12"                    },
1318   { "dragon_fire_left3.frames",                 "2"                     },
1319
1320   { "dragon_fire_right1",                       "RocksHeroes.pcx"       },
1321   { "dragon_fire_right1.xpos",                  "8"                     },
1322   { "dragon_fire_right1.ypos",                  "13"                    },
1323   { "dragon_fire_right1.frames",                "2"                     },
1324   { "dragon_fire_right2",                       "RocksHeroes.pcx"       },
1325   { "dragon_fire_right2.xpos",                  "9"                     },
1326   { "dragon_fire_right2.ypos",                  "13"                    },
1327   { "dragon_fire_right2.frames",                "2"                     },
1328   { "dragon_fire_right3",                       "RocksHeroes.pcx"       },
1329   { "dragon_fire_right3.xpos",                  "10"                    },
1330   { "dragon_fire_right3.ypos",                  "13"                    },
1331   { "dragon_fire_right3.frames",                "2"                     },
1332
1333   { "dragon_fire_up1",                          "RocksHeroes.pcx"       },
1334   { "dragon_fire_up1.xpos",                     "8"                     },
1335   { "dragon_fire_up1.ypos",                     "14"                    },
1336   { "dragon_fire_up1.frames",                   "2"                     },
1337   { "dragon_fire_up2",                          "RocksHeroes.pcx"       },
1338   { "dragon_fire_up2.xpos",                     "9"                     },
1339   { "dragon_fire_up2.ypos",                     "14"                    },
1340   { "dragon_fire_up2.frames",                   "2"                     },
1341   { "dragon_fire_up3",                          "RocksHeroes.pcx"       },
1342   { "dragon_fire_up3.xpos",                     "10"                    },
1343   { "dragon_fire_up3.ypos",                     "14"                    },
1344   { "dragon_fire_up3.frames",                   "2"                     },
1345
1346   { "dragon_fire_down1",                        "RocksHeroes.pcx"       },
1347   { "dragon_fire_down1.xpos",                   "8"                     },
1348   { "dragon_fire_down1.ypos",                   "15"                    },
1349   { "dragon_fire_down1.frames",                 "2"                     },
1350   { "dragon_fire_down2",                        "RocksHeroes.pcx"       },
1351   { "dragon_fire_down2.xpos",                   "9"                     },
1352   { "dragon_fire_down2.ypos",                   "15"                    },
1353   { "dragon_fire_down2.frames",                 "2"                     },
1354   { "dragon_fire_down3",                        "RocksHeroes.pcx"       },
1355   { "dragon_fire_down3.xpos",                   "10"                    },
1356   { "dragon_fire_down3.ypos",                   "15"                    },
1357   { "dragon_fire_down3.frames",                 "2"                     },
1358
1359   { "sp_empty_space",                           "RocksSP.pcx"           },
1360   { "sp_empty_space.xpos",                      "0"                     },
1361   { "sp_empty_space.ypos",                      "0"                     },
1362   { "sp_empty_space.frames",                    "1"                     },
1363
1364   { "sp_zonk",                                  "RocksSP.pcx"           },
1365   { "sp_zonk.xpos",                             "1"                     },
1366   { "sp_zonk.ypos",                             "0"                     },
1367   { "sp_zonk.frames",                           "1"                     },
1368   { "sp_zonk.falling",                          "RocksSP.pcx"           },
1369   { "sp_zonk.falling.xpos",                     "1"                     },
1370   { "sp_zonk.falling.ypos",                     "0"                     },
1371   { "sp_zonk.falling.frames",                   "1"                     },
1372   { "sp_zonk.pushing",                          "RocksSP.pcx"           },
1373   { "sp_zonk.pushing.xpos",                     "0"                     },
1374   { "sp_zonk.pushing.ypos",                     "6"                     },
1375   { "sp_zonk.pushing.frames",                   "4"                     },
1376
1377   { "sp_base",                                  "RocksSP.pcx"           },
1378   { "sp_base.xpos",                             "2"                     },
1379   { "sp_base.ypos",                             "0"                     },
1380   { "sp_base.frames",                           "1"                     },
1381
1382   { "sp_murphy",                                "RocksSP.pcx"           },
1383   { "sp_murphy.xpos",                           "3"                     },
1384   { "sp_murphy.ypos",                           "0"                     },
1385   { "sp_murphy.frames",                         "1"                     },
1386
1387   { "sp_murphy_left",                           "RocksSP.pcx"           },
1388   { "sp_murphy_left.xpos",                      "8"                     },
1389   { "sp_murphy_left.ypos",                      "0"                     },
1390   { "sp_murphy_left.frames",                    "1"                     },
1391   { "sp_murphy_left.moving",                    "RocksSP.pcx"           },
1392   { "sp_murphy_left.moving.xpos",               "8"                     },
1393   { "sp_murphy_left.moving.ypos",               "0"                     },
1394   { "sp_murphy_left.moving.frames",             "3"                     },
1395   { "sp_murphy_left.moving.pingpong",           "1"                     },
1396   { "sp_murphy_left.digging",                   "RocksSP.pcx"           },
1397   { "sp_murphy_left.digging.xpos",              "8"                     },
1398   { "sp_murphy_left.digging.ypos",              "0"                     },
1399   { "sp_murphy_left.digging.frames",            "3"                     },
1400   { "sp_murphy_left.digging.pingpong",          "1"                     },
1401   { "sp_murphy_left.pushing",                   "RocksSP.pcx"           },
1402   { "sp_murphy_left.pushing.xpos",              "11"                    },
1403   { "sp_murphy_left.pushing.ypos",              "1"                     },
1404   { "sp_murphy_left.pushing.frames",            "1"                     },
1405   { "sp_murphy_left.snapping",                  "RocksSP.pcx"           },
1406   { "sp_murphy_left.snapping.xpos",             "9"                     },
1407   { "sp_murphy_left.snapping.ypos",             "1"                     },
1408   { "sp_murphy_left.snapping.frames",           "1"                     },
1409
1410   { "sp_murphy_right",                          "RocksSP.pcx"           },
1411   { "sp_murphy_right.xpos",                     "11"                    },
1412   { "sp_murphy_right.ypos",                     "0"                     },
1413   { "sp_murphy_right.frames",                   "1"                     },
1414   { "sp_murphy_right.moving",                   "RocksSP.pcx"           },
1415   { "sp_murphy_right.moving.xpos",              "11"                    },
1416   { "sp_murphy_right.moving.ypos",              "0"                     },
1417   { "sp_murphy_right.moving.frames",            "3"                     },
1418   { "sp_murphy_right.moving.pingpong",          "1"                     },
1419   { "sp_murphy_right.digging",                  "RocksSP.pcx"           },
1420   { "sp_murphy_right.digging.xpos",             "11"                    },
1421   { "sp_murphy_right.digging.ypos",             "0"                     },
1422   { "sp_murphy_right.digging.frames",           "3"                     },
1423   { "sp_murphy_right.digging.pingpong",         "1"                     },
1424   { "sp_murphy_right.pushing",                  "RocksSP.pcx"           },
1425   { "sp_murphy_right.pushing.xpos",             "10"                    },
1426   { "sp_murphy_right.pushing.ypos",             "1"                     },
1427   { "sp_murphy_right.pushing.frames",           "1"                     },
1428   { "sp_murphy_right.snapping",                 "RocksSP.pcx"           },
1429   { "sp_murphy_right.snapping.xpos",            "8"                     },
1430   { "sp_murphy_right.snapping.ypos",            "1"                     },
1431   { "sp_murphy_right.snapping.frames",          "1"                     },
1432
1433   { "sp_murphy_up",                             "RocksSP.pcx"           },
1434   { "sp_murphy_up.xpos",                        "14"                    },
1435   { "sp_murphy_up.ypos",                        "0"                     },
1436   { "sp_murphy_up.frames",                      "1"                     },
1437   { "sp_murphy_up.snapping",                    "RocksSP.pcx"           },
1438   { "sp_murphy_up.snapping.xpos",               "14"                    },
1439   { "sp_murphy_up.snapping.ypos",               "0"                     },
1440   { "sp_murphy_up.snapping.frames",             "1"                     },
1441
1442   { "sp_murphy_down",                           "RocksSP.pcx"           },
1443   { "sp_murphy_down.xpos",                      "15"                    },
1444   { "sp_murphy_down.ypos",                      "0"                     },
1445   { "sp_murphy_down.frames",                    "1"                     },
1446   { "sp_murphy_down.snapping",                  "RocksSP.pcx"           },
1447   { "sp_murphy_down.snapping.xpos",             "15"                    },
1448   { "sp_murphy_down.snapping.ypos",             "0"                     },
1449   { "sp_murphy_down.snapping.frames",           "1"                     },
1450
1451   { "sp_murphy_clone",                          "RocksSP.pcx"           },
1452   { "sp_murphy_clone.xpos",                     "3"                     },
1453   { "sp_murphy_clone.ypos",                     "0"                     },
1454   { "sp_murphy_clone.frames",                   "1"                     },
1455
1456   { "sp_infotron",                              "RocksSP.pcx"           },
1457   { "sp_infotron.xpos",                         "4"                     },
1458   { "sp_infotron.ypos",                         "0"                     },
1459   { "sp_infotron.frames",                       "1"                     },
1460   { "sp_infotron.falling",                      "RocksSP.pcx"           },
1461   { "sp_infotron.falling.xpos",                 "4"                     },
1462   { "sp_infotron.falling.ypos",                 "0"                     },
1463   { "sp_infotron.falling.frames",               "1"                     },
1464
1465   { "sp_chip_single",                           "RocksSP.pcx"           },
1466   { "sp_chip_single.xpos",                      "5"                     },
1467   { "sp_chip_single.ypos",                      "0"                     },
1468   { "sp_chip_single.frames",                    "1"                     },
1469   { "sp_chip_left",                             "RocksSP.pcx"           },
1470   { "sp_chip_left.xpos",                        "2"                     },
1471   { "sp_chip_left.ypos",                        "3"                     },
1472   { "sp_chip_left.frames",                      "1"                     },
1473   { "sp_chip_right",                            "RocksSP.pcx"           },
1474   { "sp_chip_right.xpos",                       "3"                     },
1475   { "sp_chip_right.ypos",                       "3"                     },
1476   { "sp_chip_right.frames",                     "1"                     },
1477   { "sp_chip_upper",                            "RocksSP.pcx"           },
1478   { "sp_chip_upper.xpos",                       "6"                     },
1479   { "sp_chip_upper.ypos",                       "4"                     },
1480   { "sp_chip_upper.frames",                     "1"                     },
1481   { "sp_chip_lower",                            "RocksSP.pcx"           },
1482   { "sp_chip_lower.xpos",                       "7"                     },
1483   { "sp_chip_lower.ypos",                       "4"                     },
1484   { "sp_chip_lower.frames",                     "1"                     },
1485
1486   { "sp_hard_gray",                             "RocksSP.pcx"           },
1487   { "sp_hard_gray.xpos",                        "6"                     },
1488   { "sp_hard_gray.ypos",                        "0"                     },
1489   { "sp_hard_gray.frames",                      "1"                     },
1490   { "sp_hard_green",                            "RocksSP.pcx"           },
1491   { "sp_hard_green.xpos",                       "5"                     },
1492   { "sp_hard_green.ypos",                       "3"                     },
1493   { "sp_hard_green.frames",                     "1"                     },
1494   { "sp_hard_blue",                             "RocksSP.pcx"           },
1495   { "sp_hard_blue.xpos",                        "6"                     },
1496   { "sp_hard_blue.ypos",                        "3"                     },
1497   { "sp_hard_blue.frames",                      "1"                     },
1498   { "sp_hard_red",                              "RocksSP.pcx"           },
1499   { "sp_hard_red.xpos",                         "7"                     },
1500   { "sp_hard_red.ypos",                         "3"                     },
1501   { "sp_hard_red.frames",                       "1"                     },
1502   { "sp_hard_yellow",                           "RocksSP.pcx"           },
1503   { "sp_hard_yellow.xpos",                      "0"                     },
1504   { "sp_hard_yellow.ypos",                      "4"                     },
1505   { "sp_hard_yellow.frames",                    "1"                     },
1506
1507   { "sp_exit_closed",                           "RocksSP.pcx"           },
1508   { "sp_exit_closed.xpos",                      "7"                     },
1509   { "sp_exit_closed.ypos",                      "0"                     },
1510   { "sp_exit_closed.frames",                    "1"                     },
1511   { "sp_exit_open",                             "RocksSP.pcx"           },
1512   { "sp_exit_open.xpos",                        "7"                     },
1513   { "sp_exit_open.ypos",                        "0"                     },
1514   { "sp_exit_open.frames",                      "1"                     },
1515
1516   { "sp_disk_orange",                           "RocksSP.pcx"           },
1517   { "sp_disk_orange.xpos",                      "0"                     },
1518   { "sp_disk_orange.ypos",                      "1"                     },
1519   { "sp_disk_orange.frames",                    "1"                     },
1520   { "sp_disk_orange.falling",                   "RocksSP.pcx"           },
1521   { "sp_disk_orange.falling.xpos",              "0"                     },
1522   { "sp_disk_orange.falling.ypos",              "1"                     },
1523   { "sp_disk_orange.falling.frames",            "1"                     },
1524   { "sp_disk_orange.pushing",                   "RocksSP.pcx"           },
1525   { "sp_disk_orange.pushing.xpos",              "0"                     },
1526   { "sp_disk_orange.pushing.ypos",              "1"                     },
1527   { "sp_disk_orange.pushing.frames",            "1"                     },
1528
1529   { "sp_disk_yellow",                           "RocksSP.pcx"           },
1530   { "sp_disk_yellow.xpos",                      "2"                     },
1531   { "sp_disk_yellow.ypos",                      "2"                     },
1532   { "sp_disk_yellow.frames",                    "1"                     },
1533   { "sp_disk_yellow.pushing",                   "RocksSP.pcx"           },
1534   { "sp_disk_yellow.pushing.xpos",              "2"                     },
1535   { "sp_disk_yellow.pushing.ypos",              "2"                     },
1536   { "sp_disk_yellow.pushing.frames",            "1"                     },
1537
1538   { "sp_disk_red",                              "RocksSP.pcx"           },
1539   { "sp_disk_red.xpos",                         "4"                     },
1540   { "sp_disk_red.ypos",                         "2"                     },
1541   { "sp_disk_red.frames",                       "1"                     },
1542   { "sp_disk_red.collecting",                   "RocksSP.pcx"           },
1543   { "sp_disk_red.collecting.xpos",              "8"                     },
1544   { "sp_disk_red.collecting.ypos",              "5"                     },
1545   { "sp_disk_red.collecting.frames",            "8"                     },
1546
1547   { "sp_port1_right",                           "RocksSP.pcx"           },
1548   { "sp_port1_right.xpos",                      "1"                     },
1549   { "sp_port1_right.ypos",                      "1"                     },
1550   { "sp_port1_right.frames",                    "1"                     },
1551   { "sp_port1_down",                            "RocksSP.pcx"           },
1552   { "sp_port1_down.xpos",                       "2"                     },
1553   { "sp_port1_down.ypos",                       "1"                     },
1554   { "sp_port1_down.frames",                     "1"                     },
1555   { "sp_port1_left",                            "RocksSP.pcx"           },
1556   { "sp_port1_left.xpos",                       "3"                     },
1557   { "sp_port1_left.ypos",                       "1"                     },
1558   { "sp_port1_left.frames",                     "1"                     },
1559   { "sp_port1_up",                              "RocksSP.pcx"           },
1560   { "sp_port1_up.xpos",                         "4"                     },
1561   { "sp_port1_up.ypos",                         "1"                     },
1562   { "sp_port1_up.frames",                       "1"                     },
1563   { "sp_port2_right",                           "RocksSP.pcx"           },
1564   { "sp_port2_right.xpos",                      "5"                     },
1565   { "sp_port2_right.ypos",                      "1"                     },
1566   { "sp_port2_right.frames",                    "1"                     },
1567   { "sp_port2_down",                            "RocksSP.pcx"           },
1568   { "sp_port2_down.xpos",                       "6"                     },
1569   { "sp_port2_down.ypos",                       "1"                     },
1570   { "sp_port2_down.frames",                     "1"                     },
1571   { "sp_port2_left",                            "RocksSP.pcx"           },
1572   { "sp_port2_left.xpos",                       "7"                     },
1573   { "sp_port2_left.ypos",                       "1"                     },
1574   { "sp_port2_left.frames",                     "1"                     },
1575   { "sp_port2_up",                              "RocksSP.pcx"           },
1576   { "sp_port2_up.xpos",                         "0"                     },
1577   { "sp_port2_up.ypos",                         "2"                     },
1578   { "sp_port2_up.frames",                       "1"                     },
1579   { "sp_port_x",                                "RocksSP.pcx"           },
1580   { "sp_port_x.xpos",                           "6"                     },
1581   { "sp_port_x.ypos",                           "2"                     },
1582   { "sp_port_x.frames",                         "1"                     },
1583   { "sp_port_y",                                "RocksSP.pcx"           },
1584   { "sp_port_y.xpos",                           "5"                     },
1585   { "sp_port_y.ypos",                           "2"                     },
1586   { "sp_port_y.frames",                         "1"                     },
1587   { "sp_port_xy",                               "RocksSP.pcx"           },
1588   { "sp_port_xy.xpos",                          "7"                     },
1589   { "sp_port_xy.ypos",                          "2"                     },
1590   { "sp_port_xy.frames",                        "1"                     },
1591
1592   { "sp_sniksnak",                              "RocksSP.pcx"           },
1593   { "sp_sniksnak.xpos",                         "1"                     },
1594   { "sp_sniksnak.ypos",                         "2"                     },
1595   { "sp_sniksnak.frames",                       "1"                     },
1596   { "sp_sniksnak_left",                         "RocksSP.pcx"           },
1597   { "sp_sniksnak_left.xpos",                    "8"                     },
1598   { "sp_sniksnak_left.ypos",                    "8"                     },
1599   { "sp_sniksnak_left.frames",                  "4"                     },
1600   { "sp_sniksnak_left.pingpong2",               "1"                     },
1601   { "sp_sniksnak_right",                        "RocksSP.pcx"           },
1602   { "sp_sniksnak_right.xpos",                   "12"                    },
1603   { "sp_sniksnak_right.ypos",                   "8"                     },
1604   { "sp_sniksnak_right.frames",                 "4"                     },
1605   { "sp_sniksnak_right.pingpong2",              "1"                     },
1606   { "sp_sniksnak_up",                           "RocksSP.pcx"           },
1607   { "sp_sniksnak_up.xpos",                      "8"                     },
1608   { "sp_sniksnak_up.ypos",                      "9"                     },
1609   { "sp_sniksnak_up.frames",                    "4"                     },
1610   { "sp_sniksnak_up.pingpong2",                 "1"                     },
1611   { "sp_sniksnak_down",                         "RocksSP.pcx"           },
1612   { "sp_sniksnak_down.xpos",                    "12"                    },
1613   { "sp_sniksnak_down.ypos",                    "9"                     },
1614   { "sp_sniksnak_down.frames",                  "4"                     },
1615   { "sp_sniksnak_down.pingpong2",               "1"                     },
1616
1617   { "sp_electron",                              "RocksSP.pcx"           },
1618   { "sp_electron.xpos",                         "8"                     },
1619   { "sp_electron.ypos",                         "10"                    },
1620   { "sp_electron.frames",                       "8"                     },
1621   { "sp_electron.delay",                        "2"                     },
1622   { "sp_electron.global_sync",                  "1"                     },
1623
1624   { "sp_terminal",                              "RocksSP.pcx"           },
1625   { "sp_terminal.xpos",                         "8"                     },
1626   { "sp_terminal.ypos",                         "11"                    },
1627   { "sp_terminal.frames",                       "7"                     },
1628   { "sp_terminal.active",                       "RocksSP.pcx"           },
1629   { "sp_terminal.active.xpos",                  "8"                     },
1630   { "sp_terminal.active.ypos",                  "12"                    },
1631   { "sp_terminal.active.frames",                "7"                     },
1632
1633   { "sp_buggy_base",                            "RocksSP.pcx"           },
1634   { "sp_buggy_base.xpos",                       "1"                     },
1635   { "sp_buggy_base.ypos",                       "3"                     },
1636   { "sp_buggy_base.frames",                     "1"                     },
1637   { "sp_buggy_base.active",                     "RocksSP.pcx"           },
1638   { "sp_buggy_base.active.xpos",                "8"                     },
1639   { "sp_buggy_base.active.ypos",                "6"                     },
1640   { "sp_buggy_base.active.frames",              "4"                     },
1641
1642   { "sp_hard_base1",                            "RocksSP.pcx"           },
1643   { "sp_hard_base1.xpos",                       "4"                     },
1644   { "sp_hard_base1.ypos",                       "3"                     },
1645   { "sp_hard_base1.frames",                     "1"                     },
1646   { "sp_hard_base2",                            "RocksSP.pcx"           },
1647   { "sp_hard_base2.xpos",                       "1"                     },
1648   { "sp_hard_base2.ypos",                       "4"                     },
1649   { "sp_hard_base2.frames",                     "1"                     },
1650   { "sp_hard_base3",                            "RocksSP.pcx"           },
1651   { "sp_hard_base3.xpos",                       "2"                     },
1652   { "sp_hard_base3.ypos",                       "4"                     },
1653   { "sp_hard_base3.frames",                     "1"                     },
1654   { "sp_hard_base4",                            "RocksSP.pcx"           },
1655   { "sp_hard_base4.xpos",                       "3"                     },
1656   { "sp_hard_base4.ypos",                       "4"                     },
1657   { "sp_hard_base4.frames",                     "1"                     },
1658   { "sp_hard_base5",                            "RocksSP.pcx"           },
1659   { "sp_hard_base5.xpos",                       "4"                     },
1660   { "sp_hard_base5.ypos",                       "4"                     },
1661   { "sp_hard_base5.frames",                     "1"                     },
1662   { "sp_hard_base6",                            "RocksSP.pcx"           },
1663   { "sp_hard_base6.xpos",                       "5"                     },
1664   { "sp_hard_base6.ypos",                       "4"                     },
1665   { "sp_hard_base6.frames",                     "1"                     },
1666
1667   { "invisible_steelwall",                      "RocksSP.pcx"           },
1668   { "invisible_steelwall.xpos",                 "3"                     },
1669   { "invisible_steelwall.ypos",                 "5"                     },
1670   { "invisible_steelwall.frames",               "1"                     },
1671   { "invisible_steelwall.active",               "RocksSP.pcx"           },
1672   { "invisible_steelwall.active.xpos",          "1"                     },
1673   { "invisible_steelwall.active.ypos",          "5"                     },
1674   { "invisible_steelwall.active.frames",        "1"                     },
1675
1676   { "invisible_sand",                           "RocksSP.pcx"           },
1677   { "invisible_sand.xpos",                      "6"                     },
1678   { "invisible_sand.ypos",                      "5"                     },
1679   { "invisible_sand.frames",                    "1"                     },
1680   { "invisible_sand.active",                    "RocksSP.pcx"           },
1681   { "invisible_sand.active.xpos",               "2"                     },
1682   { "invisible_sand.active.ypos",               "5"                     },
1683   { "invisible_sand.active.frames",             "1"                     },
1684
1685   { "invisible_wall",                           "RocksSP.pcx"           },
1686   { "invisible_wall.xpos",                      "7"                     },
1687   { "invisible_wall.ypos",                      "5"                     },
1688   { "invisible_wall.frames",                    "1"                     },
1689   { "invisible_wall.active",                    "RocksSP.pcx"           },
1690   { "invisible_wall.active.xpos",               "5"                     },
1691   { "invisible_wall.active.ypos",               "5"                     },
1692   { "invisible_wall.active.frames",             "1"                     },
1693
1694   { "em_key1",                                  "RocksSP.pcx"           },
1695   { "em_key1.xpos",                             "4"                     },
1696   { "em_key1.ypos",                             "6"                     },
1697   { "em_key1.frames",                           "1"                     },
1698   { "em_key2",                                  "RocksSP.pcx"           },
1699   { "em_key2.xpos",                             "5"                     },
1700   { "em_key2.ypos",                             "6"                     },
1701   { "em_key2.frames",                           "1"                     },
1702   { "em_key3",                                  "RocksSP.pcx"           },
1703   { "em_key3.xpos",                             "6"                     },
1704   { "em_key3.ypos",                             "6"                     },
1705   { "em_key3.frames",                           "1"                     },
1706   { "em_key4",                                  "RocksSP.pcx"           },
1707   { "em_key4.xpos",                             "7"                     },
1708   { "em_key4.ypos",                             "6"                     },
1709   { "em_key4.frames",                           "1"                     },
1710
1711   { "em_gate1",                                 "RocksSP.pcx"           },
1712   { "em_gate1.xpos",                            "0"                     },
1713   { "em_gate1.ypos",                            "7"                     },
1714   { "em_gate1.frames",                          "1"                     },
1715   { "em_gate2",                                 "RocksSP.pcx"           },
1716   { "em_gate2.xpos",                            "1"                     },
1717   { "em_gate2.ypos",                            "7"                     },
1718   { "em_gate2.frames",                          "1"                     },
1719   { "em_gate3",                                 "RocksSP.pcx"           },
1720   { "em_gate3.xpos",                            "2"                     },
1721   { "em_gate3.ypos",                            "7"                     },
1722   { "em_gate3.frames",                          "1"                     },
1723   { "em_gate4",                                 "RocksSP.pcx"           },
1724   { "em_gate4.xpos",                            "3"                     },
1725   { "em_gate4.ypos",                            "7"                     },
1726   { "em_gate4.frames",                          "1"                     },
1727   { "em_gate1_gray",                            "RocksSP.pcx"           },
1728   { "em_gate1_gray.xpos",                       "4"                     },
1729   { "em_gate1_gray.ypos",                       "7"                     },
1730   { "em_gate1_gray.frames",                     "1"                     },
1731   { "em_gate2_gray",                            "RocksSP.pcx"           },
1732   { "em_gate2_gray.xpos",                       "5"                     },
1733   { "em_gate2_gray.ypos",                       "7"                     },
1734   { "em_gate2_gray.frames",                     "1"                     },
1735   { "em_gate3_gray",                            "RocksSP.pcx"           },
1736   { "em_gate3_gray.xpos",                       "6"                     },
1737   { "em_gate3_gray.ypos",                       "7"                     },
1738   { "em_gate3_gray.frames",                     "1"                     },
1739   { "em_gate4_gray",                            "RocksSP.pcx"           },
1740   { "em_gate4_gray.xpos",                       "7"                     },
1741   { "em_gate4_gray.ypos",                       "7"                     },
1742   { "em_gate4_gray.frames",                     "1"                     },
1743
1744   { "sp_explosion",                             "RocksSP.pcx"           },
1745   { "sp_explosion.xpos",                        "8"                     },
1746   { "sp_explosion.ypos",                        "3"                     },
1747   { "sp_explosion.frames",                      "8"                     },
1748   { "sp_explosion_infotron",                    "RocksSP.pcx"           },
1749   { "sp_explosion_infotron.xpos",               "8"                     },
1750   { "sp_explosion_infotron.ypos",               "4"                     },
1751   { "sp_explosion_infotron.frames",             "8"                     },
1752
1753   { "conveyor_belt1_middle",                    "RocksDC.pcx"           },
1754   { "conveyor_belt1_middle.xpos",               "0"                     },
1755   { "conveyor_belt1_middle.ypos",               "0"                     },
1756   { "conveyor_belt1_middle.frames",             "1"                     },
1757   { "conveyor_belt1_middle.active",             "RocksDC.pcx"           },
1758   { "conveyor_belt1_middle.active.xpos",        "0"                     },
1759   { "conveyor_belt1_middle.active.ypos",        "0"                     },
1760   { "conveyor_belt1_middle.active.frames",      "8"                     },
1761   { "conveyor_belt1_left",                      "RocksDC.pcx"           },
1762   { "conveyor_belt1_left.xpos",                 "0"                     },
1763   { "conveyor_belt1_left.ypos",                 "1"                     },
1764   { "conveyor_belt1_left.frames",               "1"                     },
1765   { "conveyor_belt1_left.active",               "RocksDC.pcx"           },
1766   { "conveyor_belt1_left.active.xpos",          "0"                     },
1767   { "conveyor_belt1_left.active.ypos",          "1"                     },
1768   { "conveyor_belt1_left.active.frames",        "8"                     },
1769   { "conveyor_belt1_right",                     "RocksDC.pcx"           },
1770   { "conveyor_belt1_right.xpos",                "0"                     },
1771   { "conveyor_belt1_right.ypos",                "2"                     },
1772   { "conveyor_belt1_right.frames",              "1"                     },
1773   { "conveyor_belt1_right.active",              "RocksDC.pcx"           },
1774   { "conveyor_belt1_right.active.xpos",         "0"                     },
1775   { "conveyor_belt1_right.active.ypos",         "2"                     },
1776   { "conveyor_belt1_right.active.frames",       "8"                     },
1777   { "conveyor_belt1_switch_left",               "RocksDC.pcx"           },
1778   { "conveyor_belt1_switch_left.xpos",          "0"                     },
1779   { "conveyor_belt1_switch_left.ypos",          "12"                    },
1780   { "conveyor_belt1_switch_left.frames",        "1"                     },
1781   { "conveyor_belt1_switch_middle",             "RocksDC.pcx"           },
1782   { "conveyor_belt1_switch_middle.xpos",        "0"                     },
1783   { "conveyor_belt1_switch_middle.ypos",        "13"                    },
1784   { "conveyor_belt1_switch_middle.frames",      "1"                     },
1785   { "conveyor_belt1_switch_right",              "RocksDC.pcx"           },
1786   { "conveyor_belt1_switch_right.xpos",         "0"                     },
1787   { "conveyor_belt1_switch_right.ypos",         "14"                    },
1788   { "conveyor_belt1_switch_right.frames",       "1"                     },
1789
1790   { "conveyor_belt2_middle",                    "RocksDC.pcx"           },
1791   { "conveyor_belt2_middle.xpos",               "0"                     },
1792   { "conveyor_belt2_middle.ypos",               "3"                     },
1793   { "conveyor_belt2_middle.frames",             "1"                     },
1794   { "conveyor_belt2_middle.active",             "RocksDC.pcx"           },
1795   { "conveyor_belt2_middle.active.xpos",        "0"                     },
1796   { "conveyor_belt2_middle.active.ypos",        "3"                     },
1797   { "conveyor_belt2_middle.active.frames",      "8"                     },
1798   { "conveyor_belt2_left",                      "RocksDC.pcx"           },
1799   { "conveyor_belt2_left.xpos",                 "0"                     },
1800   { "conveyor_belt2_left.ypos",                 "4"                     },
1801   { "conveyor_belt2_left.frames",               "1"                     },
1802   { "conveyor_belt2_left.active",               "RocksDC.pcx"           },
1803   { "conveyor_belt2_left.active.xpos",          "0"                     },
1804   { "conveyor_belt2_left.active.ypos",          "4"                     },
1805   { "conveyor_belt2_left.active.frames",        "8"                     },
1806   { "conveyor_belt2_right",                     "RocksDC.pcx"           },
1807   { "conveyor_belt2_right.xpos",                "0"                     },
1808   { "conveyor_belt2_right.ypos",                "5"                     },
1809   { "conveyor_belt2_right.frames",              "1"                     },
1810   { "conveyor_belt2_right.active",              "RocksDC.pcx"           },
1811   { "conveyor_belt2_right.active.xpos",         "0"                     },
1812   { "conveyor_belt2_right.active.ypos",         "5"                     },
1813   { "conveyor_belt2_right.active.frames",       "8"                     },
1814   { "conveyor_belt2_switch_left",               "RocksDC.pcx"           },
1815   { "conveyor_belt2_switch_left.xpos",          "1"                     },
1816   { "conveyor_belt2_switch_left.ypos",          "12"                    },
1817   { "conveyor_belt2_switch_left.frames",        "1"                     },
1818   { "conveyor_belt2_switch_middle",             "RocksDC.pcx"           },
1819   { "conveyor_belt2_switch_middle.xpos",        "1"                     },
1820   { "conveyor_belt2_switch_middle.ypos",        "13"                    },
1821   { "conveyor_belt2_switch_middle.frames",      "1"                     },
1822   { "conveyor_belt2_switch_right",              "RocksDC.pcx"           },
1823   { "conveyor_belt2_switch_right.xpos",         "1"                     },
1824   { "conveyor_belt2_switch_right.ypos",         "14"                    },
1825   { "conveyor_belt2_switch_right.frames",       "1"                     },
1826
1827   { "conveyor_belt3_middle",                    "RocksDC.pcx"           },
1828   { "conveyor_belt3_middle.xpos",               "0"                     },
1829   { "conveyor_belt3_middle.ypos",               "6"                     },
1830   { "conveyor_belt3_middle.frames",             "1"                     },
1831   { "conveyor_belt3_middle.active",             "RocksDC.pcx"           },
1832   { "conveyor_belt3_middle.active.xpos",        "0"                     },
1833   { "conveyor_belt3_middle.active.ypos",        "6"                     },
1834   { "conveyor_belt3_middle.active.frames",      "8"                     },
1835   { "conveyor_belt3_left",                      "RocksDC.pcx"           },
1836   { "conveyor_belt3_left.xpos",                 "0"                     },
1837   { "conveyor_belt3_left.ypos",                 "7"                     },
1838   { "conveyor_belt3_left.frames",               "1"                     },
1839   { "conveyor_belt3_left.active",               "RocksDC.pcx"           },
1840   { "conveyor_belt3_left.active.xpos",          "0"                     },
1841   { "conveyor_belt3_left.active.ypos",          "7"                     },
1842   { "conveyor_belt3_left.active.frames",        "8"                     },
1843   { "conveyor_belt3_right",                     "RocksDC.pcx"           },
1844   { "conveyor_belt3_right.xpos",                "0"                     },
1845   { "conveyor_belt3_right.ypos",                "8"                     },
1846   { "conveyor_belt3_right.frames",              "1"                     },
1847   { "conveyor_belt3_right.active",              "RocksDC.pcx"           },
1848   { "conveyor_belt3_right.active.xpos",         "0"                     },
1849   { "conveyor_belt3_right.active.ypos",         "8"                     },
1850   { "conveyor_belt3_right.active.frames",       "8"                     },
1851   { "conveyor_belt3_switch_left",               "RocksDC.pcx"           },
1852   { "conveyor_belt3_switch_left.xpos",          "2"                     },
1853   { "conveyor_belt3_switch_left.ypos",          "12"                    },
1854   { "conveyor_belt3_switch_left.frames",        "1"                     },
1855   { "conveyor_belt3_switch_middle",             "RocksDC.pcx"           },
1856   { "conveyor_belt3_switch_middle.xpos",        "2"                     },
1857   { "conveyor_belt3_switch_middle.ypos",        "13"                    },
1858   { "conveyor_belt3_switch_middle.frames",      "1"                     },
1859   { "conveyor_belt3_switch_right",              "RocksDC.pcx"           },
1860   { "conveyor_belt3_switch_right.xpos",         "2"                     },
1861   { "conveyor_belt3_switch_right.ypos",         "14"                    },
1862   { "conveyor_belt3_switch_right.frames",       "1"                     },
1863
1864   { "conveyor_belt4_middle",                    "RocksDC.pcx"           },
1865   { "conveyor_belt4_middle.xpos",               "0"                     },
1866   { "conveyor_belt4_middle.ypos",               "9"                     },
1867   { "conveyor_belt4_middle.frames",             "1"                     },
1868   { "conveyor_belt4_middle.active",             "RocksDC.pcx"           },
1869   { "conveyor_belt4_middle.active.xpos",        "0"                     },
1870   { "conveyor_belt4_middle.active.ypos",        "9"                     },
1871   { "conveyor_belt4_middle.active.frames",      "8"                     },
1872   { "conveyor_belt4_left",                      "RocksDC.pcx"           },
1873   { "conveyor_belt4_left.xpos",                 "0"                     },
1874   { "conveyor_belt4_left.ypos",                 "10"                    },
1875   { "conveyor_belt4_left.frames",               "1"                     },
1876   { "conveyor_belt4_left.active",               "RocksDC.pcx"           },
1877   { "conveyor_belt4_left.active.xpos",          "0"                     },
1878   { "conveyor_belt4_left.active.ypos",          "10"                    },
1879   { "conveyor_belt4_left.active.frames",        "8"                     },
1880   { "conveyor_belt4_right",                     "RocksDC.pcx"           },
1881   { "conveyor_belt4_right.xpos",                "0"                     },
1882   { "conveyor_belt4_right.ypos",                "11"                    },
1883   { "conveyor_belt4_right.frames",              "1"                     },
1884   { "conveyor_belt4_right.active",              "RocksDC.pcx"           },
1885   { "conveyor_belt4_right.active.xpos",         "0"                     },
1886   { "conveyor_belt4_right.active.ypos",         "11"                    },
1887   { "conveyor_belt4_right.active.frames",       "8"                     },
1888   { "conveyor_belt4_switch_left",               "RocksDC.pcx"           },
1889   { "conveyor_belt4_switch_left.xpos",          "3"                     },
1890   { "conveyor_belt4_switch_left.ypos",          "12"                    },
1891   { "conveyor_belt4_switch_left.frames",        "1"                     },
1892   { "conveyor_belt4_switch_middle",             "RocksDC.pcx"           },
1893   { "conveyor_belt4_switch_middle.xpos",        "3"                     },
1894   { "conveyor_belt4_switch_middle.ypos",        "13"                    },
1895   { "conveyor_belt4_switch_middle.frames",      "1"                     },
1896   { "conveyor_belt4_switch_right",              "RocksDC.pcx"           },
1897   { "conveyor_belt4_switch_right.xpos",         "3"                     },
1898   { "conveyor_belt4_switch_right.ypos",         "14"                    },
1899   { "conveyor_belt4_switch_right.frames",       "1"                     },
1900
1901   { "switchgate_switch_up",                     "RocksDC.pcx"           },
1902   { "switchgate_switch_up.xpos",                "4"                     },
1903   { "switchgate_switch_up.ypos",                "12"                    },
1904   { "switchgate_switch_up.frames",              "1"                     },
1905   { "switchgate_switch_down",                   "RocksDC.pcx"           },
1906   { "switchgate_switch_down.xpos",              "5"                     },
1907   { "switchgate_switch_down.ypos",              "12"                    },
1908   { "switchgate_switch_down.frames",            "1"                     },
1909
1910   { "light_switch",                             "RocksDC.pcx"           },
1911   { "light_switch.xpos",                        "6"                     },
1912   { "light_switch.ypos",                        "12"                    },
1913   { "light_switch.frames",                      "1"                     },
1914   { "light_switch.active",                      "RocksDC.pcx"           },
1915   { "light_switch.active.xpos",                 "7"                     },
1916   { "light_switch.active.ypos",                 "12"                    },
1917   { "light_switch.active.frames",               "1"                     },
1918
1919   { "timegate_switch",                          "RocksDC.pcx"           },
1920   { "timegate_switch.xpos",                     "0"                     },
1921   { "timegate_switch.ypos",                     "15"                    },
1922   { "timegate_switch.frames",                   "1"                     },
1923   { "timegate_switch.active",                   "RocksDC.pcx"           },
1924   { "timegate_switch.active.xpos",              "0"                     },
1925   { "timegate_switch.active.ypos",              "15"                    },
1926   { "timegate_switch.active.frames",            "4"                     },
1927
1928   { "envelope",                                 "RocksDC.pcx"           },
1929   { "envelope.xpos",                            "4"                     },
1930   { "envelope.ypos",                            "14"                    },
1931   { "envelope.frames",                          "1"                     },
1932
1933   { "sign_exclamation",                         "RocksDC.pcx"           },
1934   { "sign_exclamation.xpos",                    "5"                     },
1935   { "sign_exclamation.ypos",                    "14"                    },
1936   { "sign_exclamation.frames",                  "1"                     },
1937
1938   { "sign_stop",                                "RocksDC.pcx"           },
1939   { "sign_stop.xpos",                           "6"                     },
1940   { "sign_stop.ypos",                           "14"                    },
1941   { "sign_stop.frames",                         "1"                     },
1942
1943   { "landmine",                                 "RocksDC.pcx"           },
1944   { "landmine.xpos",                            "7"                     },
1945   { "landmine.ypos",                            "14"                    },
1946   { "landmine.frames",                          "1"                     },
1947
1948   { "steelwall_slanted",                        "RocksDC.pcx"           },
1949   { "steelwall_slanted.xpos",                   "5"                     },
1950   { "steelwall_slanted.ypos",                   "15"                    },
1951   { "steelwall_slanted.frames",                 "1"                     },
1952
1953   { "extra_time",                               "RocksDC.pcx"           },
1954   { "extra_time.xpos",                          "8"                     },
1955   { "extra_time.ypos",                          "0"                     },
1956   { "extra_time.frames",                        "6"                     },
1957
1958   { "shield_deadly",                            "RocksDC.pcx"           },
1959   { "shield_deadly.xpos",                       "8"                     },
1960   { "shield_deadly.ypos",                       "1"                     },
1961   { "shield_deadly.frames",                     "6"                     },
1962
1963   { "shield_normal",                            "RocksDC.pcx"           },
1964   { "shield_normal.xpos",                       "8"                     },
1965   { "shield_normal.ypos",                       "2"                     },
1966   { "shield_normal.frames",                     "6"                     },
1967
1968   { "switchgate_closed",                        "RocksDC.pcx"           },
1969   { "switchgate_closed.xpos",                   "8"                     },
1970   { "switchgate_closed.ypos",                   "5"                     },
1971   { "switchgate_closed.frames",                 "1"                     },
1972   { "switchgate.opening",                       "RocksDC.pcx"           },
1973   { "switchgate.opening.xpos",                  "8"                     },
1974   { "switchgate.opening.ypos",                  "5"                     },
1975   { "switchgate.opening.frames",                "5"                     },
1976   { "switchgate_open",                          "RocksDC.pcx"           },
1977   { "switchgate_open.xpos",                     "12"                    },
1978   { "switchgate_open.ypos",                     "5"                     },
1979   { "switchgate_open.frames",                   "1"                     },
1980   { "switchgate.closing",                       "RocksDC.pcx"           },
1981   { "switchgate.closing.xpos",                  "8"                     },
1982   { "switchgate.closing.ypos",                  "5"                     },
1983   { "switchgate.closing.frames",                "5"                     },
1984   { "switchgate.closing.reverse",               "1"                     },
1985
1986   { "timegate_closed",                          "RocksDC.pcx"           },
1987   { "timegate_closed.xpos",                     "8"                     },
1988   { "timegate_closed.ypos",                     "6"                     },
1989   { "timegate_closed.frames",                   "1"                     },
1990   { "timegate.opening",                         "RocksDC.pcx"           },
1991   { "timegate.opening.xpos",                    "8"                     },
1992   { "timegate.opening.ypos",                    "6"                     },
1993   { "timegate.opening.frames",                  "5"                     },
1994   { "timegate_open",                            "RocksDC.pcx"           },
1995   { "timegate_open.xpos",                       "12"                    },
1996   { "timegate_open.ypos",                       "6"                     },
1997   { "timegate_open.frames",                     "1"                     },
1998   { "timegate.closing",                         "RocksDC.pcx"           },
1999   { "timegate.closing.xpos",                    "8"                     },
2000   { "timegate.closing.ypos",                    "6"                     },
2001   { "timegate.closing.frames",                  "5"                     },
2002   { "timegate.closing.reverse",                 "1"                     },
2003
2004   { "balloon",                                  "RocksDC.pcx"           },
2005   { "balloon.xpos",                             "12"                    },
2006   { "balloon.ypos",                             "7"                     },
2007   { "balloon.frames",                           "1"                     },
2008   { "balloon.moving",                           "RocksDC.pcx"           },
2009   { "balloon.moving.xpos",                      "12"                    },
2010   { "balloon.moving.ypos",                      "7"                     },
2011   { "balloon.moving.frames",                    "4"                     },
2012   { "balloon.moving.pingpong",                  "1"                     },
2013
2014   { "balloon_send_left",                        "RocksDC.pcx"           },
2015   { "balloon_send_left.xpos",                   "8"                     },
2016   { "balloon_send_left.ypos",                   "7"                     },
2017   { "balloon_send_left.frames",                 "1"                     },
2018   { "balloon_send_right",                       "RocksDC.pcx"           },
2019   { "balloon_send_right.xpos",                  "9"                     },
2020   { "balloon_send_right.ypos",                  "7"                     },
2021   { "balloon_send_right.frames",                "1"                     },
2022   { "balloon_send_up",                          "RocksDC.pcx"           },
2023   { "balloon_send_up.xpos",                     "10"                    },
2024   { "balloon_send_up.ypos",                     "7"                     },
2025   { "balloon_send_up.frames",                   "1"                     },
2026   { "balloon_send_down",                        "RocksDC.pcx"           },
2027   { "balloon_send_down.xpos",                   "11"                    },
2028   { "balloon_send_down.ypos",                   "7"                     },
2029   { "balloon_send_down.frames",                 "1"                     },
2030   { "balloon_send_any_direction",               "RocksDC.pcx"           },
2031   { "balloon_send_any_direction.xpos",          "7"                     },
2032   { "balloon_send_any_direction.ypos",          "0"                     },
2033   { "balloon_send_any_direction.frames",        "1"                     },
2034
2035   { "emc_steelwall1",                           "RocksDC.pcx"           },
2036   { "emc_steelwall1.xpos",                      "14"                    },
2037   { "emc_steelwall1.ypos",                      "0"                     },
2038   { "emc_steelwall1.frames",                    "1"                     },
2039   { "emc_steelwall2",                           "RocksDC.pcx"           },
2040   { "emc_steelwall2.xpos",                      "14"                    },
2041   { "emc_steelwall2.ypos",                      "0"                     },
2042   { "emc_steelwall2.frames",                    "1"                     },
2043   { "emc_steelwall3",                           "RocksDC.pcx"           },
2044   { "emc_steelwall3.xpos",                      "14"                    },
2045   { "emc_steelwall3.ypos",                      "0"                     },
2046   { "emc_steelwall3.frames",                    "1"                     },
2047   { "emc_steelwall4",                           "RocksDC.pcx"           },
2048   { "emc_steelwall4.xpos",                      "14"                    },
2049   { "emc_steelwall4.ypos",                      "0"                     },
2050   { "emc_steelwall4.frames",                    "1"                     },
2051
2052   { "emc_wall_pillar_upper",                    "RocksDC.pcx"           },
2053   { "emc_wall_pillar_upper.xpos",               "13"                    },
2054   { "emc_wall_pillar_upper.ypos",               "6"                     },
2055   { "emc_wall_pillar_upper.frames",             "1"                     },
2056   { "emc_wall_pillar_middle",                   "RocksDC.pcx"           },
2057   { "emc_wall_pillar_middle.xpos",              "14"                    },
2058   { "emc_wall_pillar_middle.ypos",              "6"                     },
2059   { "emc_wall_pillar_middle.frames",            "1"                     },
2060   { "emc_wall_pillar_lower",                    "RocksDC.pcx"           },
2061   { "emc_wall_pillar_lower.xpos",               "15"                    },
2062   { "emc_wall_pillar_lower.ypos",               "6"                     },
2063   { "emc_wall_pillar_lower.frames",             "1"                     },
2064
2065   { "emc_wall4",                                "RocksDC.pcx"           },
2066   { "emc_wall4.xpos",                           "14"                    },
2067   { "emc_wall4.ypos",                           "1"                     },
2068   { "emc_wall4.frames",                         "1"                     },
2069   { "emc_wall5",                                "RocksDC.pcx"           },
2070   { "emc_wall5.xpos",                           "15"                    },
2071   { "emc_wall5.ypos",                           "1"                     },
2072   { "emc_wall5.frames",                         "1"                     },
2073   { "emc_wall6",                                "RocksDC.pcx"           },
2074   { "emc_wall6.xpos",                           "14"                    },
2075   { "emc_wall6.ypos",                           "2"                     },
2076   { "emc_wall6.frames",                         "1"                     },
2077   { "emc_wall7",                                "RocksDC.pcx"           },
2078   { "emc_wall7.xpos",                           "15"                    },
2079   { "emc_wall7.ypos",                           "2"                     },
2080   { "emc_wall7.frames",                         "1"                     },
2081   { "emc_wall8",                                "RocksDC.pcx"           },
2082   { "emc_wall8.xpos",                           "14"                    },
2083   { "emc_wall8.ypos",                           "1"                     },
2084   { "emc_wall8.frames",                         "1"                     },
2085
2086   { "arrow_blue_left",                          "RocksMore.pcx" },
2087   { "arrow_blue_left.xpos",                     "0"                     },
2088   { "arrow_blue_left.ypos",                     "0"                     },
2089   { "arrow_blue_left.frames",                   "1"                     },
2090   { "arrow_blue_right",                         "RocksMore.pcx" },
2091   { "arrow_blue_right.xpos",                    "1"                     },
2092   { "arrow_blue_right.ypos",                    "0"                     },
2093   { "arrow_blue_right.frames",                  "1"                     },
2094   { "arrow_blue_up",                            "RocksMore.pcx" },
2095   { "arrow_blue_up.xpos",                       "2"                     },
2096   { "arrow_blue_up.ypos",                       "0"                     },
2097   { "arrow_blue_up.frames",                     "1"                     },
2098   { "arrow_blue_down",                          "RocksMore.pcx" },
2099   { "arrow_blue_down.xpos",                     "3"                     },
2100   { "arrow_blue_down.ypos",                     "0"                     },
2101   { "arrow_blue_down.frames",                   "1"                     },
2102
2103   { "arrow_red_left",                           "RocksMore.pcx" },
2104   { "arrow_red_left.xpos",                      "0"                     },
2105   { "arrow_red_left.ypos",                      "1"                     },
2106   { "arrow_red_left.frames",                    "1"                     },
2107   { "arrow_red_right",                          "RocksMore.pcx" },
2108   { "arrow_red_right.xpos",                     "1"                     },
2109   { "arrow_red_right.ypos",                     "1"                     },
2110   { "arrow_red_right.frames",                   "1"                     },
2111   { "arrow_red_up",                             "RocksMore.pcx" },
2112   { "arrow_red_up.xpos",                        "2"                     },
2113   { "arrow_red_up.ypos",                        "1"                     },
2114   { "arrow_red_up.frames",                      "1"                     },
2115   { "arrow_red_down",                           "RocksMore.pcx" },
2116   { "arrow_red_down.xpos",                      "3"                     },
2117   { "arrow_red_down.ypos",                      "1"                     },
2118   { "arrow_red_down.frames",                    "1"                     },
2119
2120   { "scrollbar_blue",                           "RocksMore.pcx"         },
2121   { "scrollbar_blue.xpos",                      "0"                     },
2122   { "scrollbar_blue.ypos",                      "2"                     },
2123   { "scrollbar_blue.frames",                    "1"                     },
2124   { "scrollbar_red",                            "RocksMore.pcx"         },
2125   { "scrollbar_red.xpos",                       "1"                     },
2126   { "scrollbar_red.ypos",                       "2"                     },
2127   { "scrollbar_red.frames",                     "1"                     },
2128   { "scrollbar_green",                          "RocksMore.pcx"         },
2129   { "scrollbar_green.xpos",                     "2"                     },
2130   { "scrollbar_green.ypos",                     "2"                     },
2131   { "scrollbar_green.frames",                   "1"                     },
2132   { "scrollbar_yellow",                         "RocksMore.pcx"         },
2133   { "scrollbar_yellow.xpos",                    "3"                     },
2134   { "scrollbar_yellow.ypos",                    "2"                     },
2135   { "scrollbar_yellow.frames",                  "1"                     },
2136
2137   { "pearl",                                    "RocksMore.pcx"         },
2138   { "pearl.xpos",                               "0"                     },
2139   { "pearl.ypos",                               "3"                     },
2140   { "pearl.frames",                             "1"                     },
2141   { "pearl.breaking",                           "RocksMore.pcx"         },
2142   { "pearl.breaking.xpos",                      "0"                     },
2143   { "pearl.breaking.ypos",                      "4"                     },
2144   { "pearl.breaking.frames",                    "4"                     },
2145
2146   { "crystal",                                  "RocksMore.pcx"         },
2147   { "crystal.xpos",                             "1"                     },
2148   { "crystal.ypos",                             "3"                     },
2149   { "crystal.frames",                           "1"                     },
2150
2151   { "wall_pearl",                               "RocksMore.pcx"         },
2152   { "wall_pearl.xpos",                          "2"                     },
2153   { "wall_pearl.ypos",                          "3"                     },
2154   { "wall_pearl.frames",                        "1"                     },
2155
2156   { "wall_crystal",                             "RocksMore.pcx"         },
2157   { "wall_crystal.xpos",                        "3"                     },
2158   { "wall_crystal.ypos",                        "3"                     },
2159   { "wall_crystal.frames",                      "1"                     },
2160
2161   { "spring",                                   "RocksMore.pcx"         },
2162   { "spring.xpos",                              "0"                     },
2163   { "spring.ypos",                              "5"                     },
2164   { "spring.frames",                            "1"                     },
2165
2166   { "tube_right_down",                          "RocksMore.pcx"         },
2167   { "tube_right_down.xpos",                     "1"                     },
2168   { "tube_right_down.ypos",                     "5"                     },
2169   { "tube_right_down.frames",                   "1"                     },
2170
2171   { "tube_horizontal_down",                     "RocksMore.pcx"         },
2172   { "tube_horizontal_down.xpos",                "2"                     },
2173   { "tube_horizontal_down.ypos",                "5"                     },
2174   { "tube_horizontal_down.frames",              "1"                     },
2175
2176   { "tube_left_down",                           "RocksMore.pcx"         },
2177   { "tube_left_down.xpos",                      "3"                     },
2178   { "tube_left_down.ypos",                      "5"                     },
2179   { "tube_left_down.frames",                    "1"                     },
2180
2181   { "tube_horizontal",                          "RocksMore.pcx"         },
2182   { "tube_horizontal.xpos",                     "0"                     },
2183   { "tube_horizontal.ypos",                     "6"                     },
2184   { "tube_horizontal.frames",                   "1"                     },
2185
2186   { "tube_vertical_right",                      "RocksMore.pcx"         },
2187   { "tube_vertical_right.xpos",                 "1"                     },
2188   { "tube_vertical_right.ypos",                 "6"                     },
2189   { "tube_vertical_right.frames",               "1"                     },
2190
2191   { "tube_all",                                 "RocksMore.pcx"         },
2192   { "tube_all.xpos",                            "2"                     },
2193   { "tube_all.ypos",                            "6"                     },
2194   { "tube_all.frames",                          "1"                     },
2195
2196   { "tube_vertical_left",                       "RocksMore.pcx"         },
2197   { "tube_vertical_left.xpos",                  "3"                     },
2198   { "tube_vertical_left.ypos",                  "6"                     },
2199   { "tube_vertical_left.frames",                "1"                     },
2200
2201   { "tube_vertical",                            "RocksMore.pcx"         },
2202   { "tube_vertical.xpos",                       "0"                     },
2203   { "tube_vertical.ypos",                       "7"                     },
2204   { "tube_vertical.frames",                     "1"                     },
2205
2206   { "tube_right_up",                            "RocksMore.pcx"         },
2207   { "tube_right_up.xpos",                       "1"                     },
2208   { "tube_right_up.ypos",                       "7"                     },
2209   { "tube_right_up.frames",                     "1"                     },
2210
2211   { "tube_horizontal_up",                       "RocksMore.pcx"         },
2212   { "tube_horizontal_up.xpos",                  "2"                     },
2213   { "tube_horizontal_up.ypos",                  "7"                     },
2214   { "tube_horizontal_up.frames",                "1"                     },
2215
2216   { "tube_left_up",                             "RocksMore.pcx"         },
2217   { "tube_left_up.xpos",                        "3"                     },
2218   { "tube_left_up.ypos",                        "7"                     },
2219   { "tube_left_up.frames",                      "1"                     },
2220
2221   { "trap",                                     "RocksMore.pcx"         },
2222   { "trap.xpos",                                "4"                     },
2223   { "trap.ypos",                                "0"                     },
2224   { "trap.frames",                              "1"                     },
2225   { "trap.active",                              "RocksMore.pcx"         },
2226   { "trap.active.xpos",                         "4"                     },
2227   { "trap.active.ypos",                         "0"                     },
2228   { "trap.active.frames",                       "4"                     },
2229
2230   { "bd_wall",                                  "RocksMore.pcx"         },
2231   { "bd_wall.xpos",                             "4"                     },
2232   { "bd_wall.ypos",                             "1"                     },
2233   { "bd_wall.frames",                           "1"                     },
2234
2235   { "bd_rock",                                  "RocksMore.pcx"         },
2236   { "bd_rock.xpos",                             "4"                     },
2237   { "bd_rock.ypos",                             "2"                     },
2238   { "bd_rock.frames",                           "1"                     },
2239   { "bd_rock.falling",                          "RocksMore.pcx"         },
2240   { "bd_rock.falling.xpos",                     "4"                     },
2241   { "bd_rock.falling.ypos",                     "2"                     },
2242   { "bd_rock.falling.frames",                   "1"                     },
2243   { "bd_rock.pushing",                          "RocksMore.pcx"         },
2244   { "bd_rock.pushing.xpos",                     "4"                     },
2245   { "bd_rock.pushing.ypos",                     "2"                     },
2246   { "bd_rock.pushing.frames",                   "4"                     },
2247
2248   { "dx_supabomb",                              "RocksMore.pcx"         },
2249   { "dx_supabomb.xpos",                         "7"                     },
2250   { "dx_supabomb.ypos",                         "1"                     },
2251   { "dx_supabomb.frames",                       "1"                     },
2252
2253   { NULL,                                       NULL                    }
2254 };
2255
2256 struct ConfigInfo sound_config[] =
2257 {
2258   /* sounds for Boulder Dash style elements and actions */
2259   { "bd_empty_space.digging",           "empty.wav"             },
2260   { "bd_sand.digging",                  "schlurf.wav"           },
2261   { "bd_diamond.collecting",            "pong.wav"              },
2262   { "bd_diamond.impact",                "pling.wav"             },
2263   { "bd_rock.pushing",                  "pusch.wav"             },
2264   { "bd_rock.impact",                   "klopf.wav"             },
2265   { "bd_magic_wall.activating",         "quirk.wav"             },
2266   { "bd_magic_wall.active",             "miep.wav"              },
2267   { "bd_magic_wall.changing",           "quirk.wav"             },
2268   { "bd_amoeba.waiting",                SND_FILE_UNDEFINED      },
2269   { "bd_amoeba.creating",               "amoebe.wav"            },
2270   { "bd_amoeba.turning_to_gem",         "pling.wav"             },
2271   { "bd_amoeba.turning_to_rock",        "klopf.wav"             },
2272   { "bd_butterfly.moving",              "klapper.wav"           },
2273   { "bd_butterfly.waiting",             "klapper.wav"           },
2274   { "bd_firefly.moving",                "roehr.wav"             },
2275   { "bd_firefly.waiting",               "roehr.wav"             },
2276   { "bd_exit.passing",                  "buing.wav"             },
2277
2278   /* sounds for Supaplex style elements and actions */
2279   { "sp_empty_space.digging",           "empty.wav"             },
2280   { "sp_base.digging",                  "base.wav"              },
2281   { "sp_buggy_base.digging",            "base.wav"              },
2282   { "sp_buggy_base.active",             "bug.wav"               },
2283   { "sp_infotron.collecting",           "infotron.wav"          },
2284   { "sp_infotron.impact",               "pling.wav"             },
2285   { "sp_zonk.pushing",                  "zonkpush.wav"          },
2286   { "sp_zonk.impact",                   "zonkdown.wav"          },
2287   { "sp_disk_red.collecting",           "infotron.wav"          },
2288   { "sp_disk_orange.pushing",           "zonkpush.wav"          },
2289   { "sp_disk_yellow.pushing",           "pusch.wav"             },
2290   { "sp_port.passing",                  "gate.wav"              },
2291   { "sp_exit.passing",                  "exit.wav"              },
2292   { "sp_exit.opening",                  SND_FILE_UNDEFINED      },
2293   { "sp_element.exploding",             "booom.wav"             },
2294   { "sp_sniksnak.moving",               SND_FILE_UNDEFINED      },
2295   { "sp_sniksnak.waiting",              SND_FILE_UNDEFINED      },
2296   { "sp_electron.moving",               SND_FILE_UNDEFINED      },
2297   { "sp_electron.waiting",              SND_FILE_UNDEFINED      },
2298   { "sp_terminal.activating",           SND_FILE_UNDEFINED      },
2299   { "sp_terminal.active",               SND_FILE_UNDEFINED      },
2300
2301   /* sounds for Sokoban style elements and actions */
2302   { "sokoban_object.pushing",           "pusch.wav"             },
2303   { "sokoban_field.filling",            "deng.wav"              },
2304   { "sokoban_field.emptying",           SND_FILE_UNDEFINED      },
2305   { "sokoban_game.solving",             "buing.wav"             },
2306
2307   /* sounds for Emerald Mine style elements and actions */
2308   { "empty_space.digging",              "empty.wav"             },
2309   { "sand.digging",                     "schlurf.wav"           },
2310   { "emerald.collecting",               "pong.wav"              },
2311   { "emerald.impact",                   "pling.wav"             },
2312   { "diamond.collecting",               "pong.wav"              },
2313   { "diamond.impact",                   "pling.wav"             },
2314   { "diamond.breaking",                 "quirk.wav"             },
2315   { "rock.pushing",                     "pusch.wav"             },
2316   { "rock.impact",                      "klopf.wav"             },
2317   { "bomb.pushing",                     "pusch.wav"             },
2318   { "nut.pushing",                      "knurk.wav"             },
2319   { "nut.cracking",                     "knack.wav"             },
2320   { "nut.impact",                       "klumpf.wav"            },
2321   { "dynamite.collecting",              "pong.wav"              },
2322   { "dynamite.dropping",                "deng.wav"              },
2323   { "dynamite.active",                  "zisch.wav"             },
2324   { "key.collecting",                   "pong.wav"              },
2325   { "gate.passing",                     "gate.wav"              },
2326   { "bug.moving",                       "klapper.wav"           },
2327   { "bug.waiting",                      "klapper.wav"           },
2328   { "spaceship.moving",                 "roehr.wav"             },
2329   { "spaceship.waiting",                "roehr.wav"             },
2330   { "yamyam.moving",                    SND_FILE_UNDEFINED      },
2331   { "yamyam.waiting",                   "njam.wav"              },
2332   { "yamyam.eating",                    SND_FILE_UNDEFINED      },
2333   { "robot.stepping",                   "schlurf.wav"           },
2334   { "robot.waiting",                    SND_FILE_UNDEFINED      },
2335   { "robot_wheel.activating",           "deng.wav"              },
2336   { "robot_wheel.active",               "miep.wav"              },
2337   { "magic_wall.activating",            "quirk.wav"             },
2338   { "magic_wall.active",                "miep.wav"              },
2339   { "magic_wall.changing",              "quirk.wav"             },
2340   { "amoeba.waiting",                   SND_FILE_UNDEFINED      },
2341   { "amoeba.creating",                  "amoebe.wav"            },
2342   { "amoeba_drop.creating",             SND_FILE_UNDEFINED      },
2343   { "acid.splashing",                   "blurb.wav"             },
2344   { "quicksand.filling",                SND_FILE_UNDEFINED      },
2345   { "quicksand.slipping",               SND_FILE_UNDEFINED      },
2346   { "quicksand.emptying",               SND_FILE_UNDEFINED      },
2347   { "exit.opening",                     "oeffnen.wav"           },
2348   { "exit.passing",                     "buing.wav"             },
2349
2350   /* sounds for Emerald Mine Club style elements and actions */
2351   { "balloon.moving",                   SND_FILE_UNDEFINED      },
2352   { "balloon.waiting",                  SND_FILE_UNDEFINED      },
2353   { "balloon.pushing",                  "schlurf.wav"           },
2354   { "balloon_switch.activating",        SND_FILE_UNDEFINED      },
2355   { "spring.moving",                    SND_FILE_UNDEFINED      },
2356   { "spring.pushing",                   "pusch.wav"             },
2357   { "spring.impact",                    "klopf.wav"             },
2358   { "wall.growing",                     SND_FILE_UNDEFINED      },
2359
2360   /* sounds for Diamond Caves style elements and actions */
2361   { "pearl.collecting",                 "pong.wav"              },
2362   { "pearl.breaking",                   "knack.wav"             },
2363   { "pearl.impact",                     "pling.wav"             },
2364   { "crystal.collecting",               "pong.wav"              },
2365   { "crystal.impact",                   "pling.wav"             },
2366   { "envelope.collecting",              "pong.wav"              },
2367   { "sand_invisible.digging",           "schlurf.wav"           },
2368   { "shield_normal.collecting",         "pong.wav"              },
2369   { "shield_normal.active",             SND_FILE_UNDEFINED      },
2370   { "shield_deadly.collecting",         "pong.wav"              },
2371   { "shield_deadly.active",             SND_FILE_UNDEFINED      },
2372   { "extra_time.collecting",            "gong.wav"              },
2373   { "mole.moving",                      SND_FILE_UNDEFINED      },
2374   { "mole.waiting",                     SND_FILE_UNDEFINED      },
2375   { "mole.eating",                      "blurb.wav"             },
2376   { "switchgate_switch.activating",     SND_FILE_UNDEFINED      },
2377   { "switchgate.opening",               "oeffnen.wav"           },
2378   { "switchgate.closing",               "oeffnen.wav"           },
2379   { "switchgate.passing",               "gate.wav"              },
2380   { "timegate_switch.activating",       "deng.wav"              },
2381   { "timegate_switch.active",           "miep.wav"              },
2382   { "timegate.opening",                 "oeffnen.wav"           },
2383   { "timegate.closing",                 "oeffnen.wav"           },
2384   { "timegate.passing",                 "gate.wav"              },
2385   { "conveyor_belt_switch.activating",  SND_FILE_UNDEFINED      },
2386   { "conveyor_belt_switch.deactivating",SND_FILE_UNDEFINED      },
2387   { "conveyor_belt.active",             SND_FILE_UNDEFINED      },
2388   { "light_switch.activating",          SND_FILE_UNDEFINED      },
2389   { "light_switch.deactivating",        SND_FILE_UNDEFINED      },
2390
2391   /* sounds for DX Boulderdash style elements and actions */
2392   { "dx_bomb.pushing",                  "pusch.wav"             },
2393   { "trap_inactive.digging",            "schlurf.wav"           },
2394   { "trap.activating",                  SND_FILE_UNDEFINED      },
2395   { "tube.passing",                     SND_FILE_UNDEFINED      },
2396
2397   /* sounds for Rocks'n'Diamonds style elements and actions */
2398   { "amoeba.turning_to_gem",            "pling.wav"             },
2399   { "amoeba.turning_to_rock",           "klopf.wav"             },
2400   { "speed_pill.collecting",            "pong.wav"              },
2401   { "dynabomb_nr.collecting",           "pong.wav"              },
2402   { "dynabomb_sz.collecting",           "pong.wav"              },
2403   { "dynabomb_xl.collecting",           "pong.wav"              },
2404   { "dynabomb.dropping",                "deng.wav"              },
2405   { "dynabomb.active",                  "zisch.wav"             },
2406   { "satellite.moving",                 SND_FILE_UNDEFINED      },
2407   { "satellite.waiting",                SND_FILE_UNDEFINED      },
2408   { "satellite.pushing",                "pusch.wav"             },
2409   { "lamp.activating",                  "deng.wav"              },
2410   { "lamp.deactivating",                "deng.wav"              },
2411   { "time_orb_full.collecting",         "gong.wav"              },
2412   { "time_orb_full.impact",             "deng.wav"              },
2413   { "time_orb_empty.pushing",           "pusch.wav"             },
2414   { "time_orb_empty.impact",            "deng.wav"              },
2415   { "gameoflife.waiting",               SND_FILE_UNDEFINED      },
2416   { "gameoflife.creating",              "amoebe.wav"            },
2417   { "biomaze.waiting",                  SND_FILE_UNDEFINED      },
2418   { "biomaze.creating",                 "amoebe.wav"            },
2419   { "pacman.moving",                    SND_FILE_UNDEFINED      },
2420   { "pacman.waiting",                   SND_FILE_UNDEFINED      },
2421   { "pacman.eating",                    SND_FILE_UNDEFINED      },
2422   { "dark_yamyam.moving",               SND_FILE_UNDEFINED      },
2423   { "dark_yamyam.waiting",              "njam.wav"              },
2424   { "dark_yamyam.eating",               SND_FILE_UNDEFINED      },
2425   { "penguin.moving",                   SND_FILE_UNDEFINED      },
2426   { "penguin.waiting",                  SND_FILE_UNDEFINED      },
2427   { "penguin.passing_exit",             "buing.wav"             },
2428   { "pig.moving",                       SND_FILE_UNDEFINED      },
2429   { "pig.waiting",                      SND_FILE_UNDEFINED      },
2430   { "pig.eating",                       SND_FILE_UNDEFINED      },
2431   { "dragon.moving",                    SND_FILE_UNDEFINED      },
2432   { "dragon.waiting",                   SND_FILE_UNDEFINED      },
2433   { "dragon.attacking",                 SND_FILE_UNDEFINED      },
2434
2435   /* sounds for generic elements and actions */
2436   { "player.dying",                     "autsch.wav"            },
2437   { "element.exploding",                "roaaar.wav"            },
2438
2439   /* sounds for other game actions */
2440   { "game.starting",                    SND_FILE_UNDEFINED      },
2441   { "game.running_out_of_time",         "gong.wav"              },
2442   { "game.leveltime_bonus",             "sirr.wav"              },
2443   { "game.losing",                      "lachen.wav"            },
2444   { "game.winning",                     SND_FILE_UNDEFINED      },
2445
2446   /* sounds for other non-game actions */
2447   { "menu.door_opening",                "oeffnen.wav"           },
2448   { "menu.door_closing",                "oeffnen.wav"           },
2449   { "menu.hall_of_fame",                "halloffame.wav"        },
2450   { "menu.info_screen",                 "rhythmloop.wav"        },
2451
2452 #if 0
2453   { "[not used]",                       "antigrav.wav"          },
2454   { "[not used]",                       "bong.wav"              },
2455   { "[not used]",                       "fuel.wav"              },
2456   { "[not used]",                       "holz.wav"              },
2457   { "[not used]",                       "hui.wav"               },
2458   { "[not used]",                       "kabumm.wav"            },
2459   { "[not used]",                       "kink.wav"              },
2460   { "[not used]",                       "kling.wav"             },
2461   { "[not used]",                       "krach.wav"             },
2462   { "[not used]",                       "laser.wav"             },
2463   { "[not used]",                       "quiek.wav"             },
2464   { "[not used]",                       "rumms.wav"             },
2465   { "[not used]",                       "schlopp.wav"           },
2466   { "[not used]",                       "schrff.wav"            },
2467   { "[not used]",                       "schwirr.wav"           },
2468   { "[not used]",                       "slurp.wav"             },
2469   { "[not used]",                       "sproing.wav"           },
2470   { "[not used]",                       "warnton.wav"           },
2471   { "[not used]",                       "whoosh.wav"            },
2472   { "[not used]",                       "boom.wav"              },
2473 #endif
2474
2475   { NULL,                               NULL                    }
2476 };
2477
2478 struct FileInfo *image_files;
2479 struct FileInfo *sound_files;
2480
2481 struct ElementInfo element_info[MAX_ELEMENTS] =
2482 {
2483   { "empty_space",              "empty space"                   },      /* 0 */
2484   { "sand",                     "sand"                          },
2485   { "wall",                     "normal wall"                   },
2486   { "wall",                     "round wall"                    },
2487   { "rock",                     "rock"                          },
2488   { "key",                      "key"                           },
2489   { "emerald",                  "emerald"                       },
2490   { "exit",                     "closed exit"                   },
2491   { "player",                   "player"                        },
2492   { "bug",                      "bug"                           },
2493   { "spaceship",                "spaceship"                     },     /* 10 */
2494   { "yamyam",                   "yam yam"                       },
2495   { "robot",                    "robot"                         },
2496   { "wall",                     "steel wall"                    },
2497   { "diamond",                  "diamond"                       },
2498   { "amoeba",                   "dead amoeba"                   },
2499   { "quicksand",                "empty quicksand"               },
2500   { "quicksand",                "quicksand with rock"           },
2501   { "amoeba",                   "amoeba drop"                   },
2502   { "bomb",                     "bomb"                          },
2503   { "magic_wall",               "magic wall"                    },     /* 20 */
2504   { "speed_pill",               "speed pill"                    },
2505   { "acid",                     "acid pool"                     },
2506   { "amoeba",                   "dropping amoeba"               },
2507   { "amoeba",                   "normal amoeba"                 },
2508   { "nut",                      "nut with emerald"              },
2509   { "gameoflife",               "Conway's wall of life"         },
2510   { "biomaze",                  "biomaze"                       },
2511   { "dynamite",                 "burning dynamite"              },
2512   { NULL,                       "unknown"                       },
2513   { "robot_wheel",              "magic wheel"                   },     /* 30 */
2514   { "robot_wheel",              "magic wheel (running)"         },
2515   { "key",                      "red key"                       },
2516   { "key",                      "yellow key"                    },
2517   { "key",                      "green key"                     },
2518   { "key",                      "blue key"                      },
2519   { "gate",                     "red door"                      },
2520   { "gate",                     "yellow door"                   },
2521   { "gate",                     "green door"                    },
2522   { "gate",                     "blue door"                     },
2523   { "gate",                     "gray door (opened by red key)" },     /* 40 */
2524   { "gate",                     "gray door (opened by yellow key)"},
2525   { "gate",                     "gray door (opened by green key)"},
2526   { "gate",                     "gray door (opened by blue key)"},
2527   { "dynamite",                 "dynamite"                      },
2528   { "pacman",                   "pac man"                       },
2529   { "wall",                     "invisible normal wall"         },
2530   { "lamp",                     "lamp (off)"                    },
2531   { "lamp",                     "lamp (on)"                     },
2532   { "wall",                     "wall with emerald"             },
2533   { "wall",                     "wall with diamond"             },     /* 50 */
2534   { "amoeba",                   "amoeba with content"           },
2535   { "bd_amoeba",                "amoeba (BD style)"             },
2536   { "time_orb_full",            "time orb (full)"               },
2537   { "time_orb_empty",           "time orb (empty)"              },
2538   { "wall",                     "growing wall"                  },
2539   { "bd_diamond",               "diamond (BD style)"            },
2540   { "emerald",                  "yellow emerald"                },
2541   { "wall",                     "wall with BD style diamond"    },
2542   { "wall",                     "wall with yellow emerald"      },
2543   { "dark_yamyam",              "dark yam yam"                  },     /* 60 */
2544   { "bd_magic_wall",            "magic wall (BD style)"         },
2545   { "wall",                     "invisible steel wall"          },
2546   { NULL,                       "-"                             },
2547   { "dynabomb_nr",              "increases number of bombs"     },
2548   { "dynabomb_sz",              "increases explosion size"      },
2549   { "dynabomb_xl",              "increases power of explosion"  },
2550   { "sokoban_object",           "sokoban object"                },
2551   { "sokoban_field",            "sokoban empty field"           },
2552   { "sokoban_field",            "sokoban field with object"     },
2553   { "bd_butterfly",             "butterfly (starts moving right)"},    /* 70 */
2554   { "bd_butterfly",             "butterfly (starts moving up)"  },
2555   { "bd_butterfly",             "butterfly (starts moving left)"},
2556   { "bd_butterfly",             "butterfly (starts moving down)"},
2557   { "bd_firefly",               "firefly (starts moving right)" },
2558   { "bd_firefly",               "firefly (starts moving up)"    },
2559   { "bd_firefly",               "firefly (starts moving left)"  },
2560   { "bd_firefly",               "firefly (starts moving down)"  },
2561   { "bd_butterfly",             "butterfly"                     },
2562   { "bd_firefly",               "firefly"                       },
2563   { "player",                   "yellow player"                 },     /* 80 */
2564   { "player",                   "red player"                    },
2565   { "player",                   "green player"                  },
2566   { "player",                   "blue player"                   },
2567   { "bug",                      "bug (starts moving right)"     },
2568   { "bug",                      "bug (starts moving up)"        },
2569   { "bug",                      "bug (starts moving left)"      },
2570   { "bug",                      "bug (starts moving down)"      },
2571   { "spaceship",                "spaceship (starts moving right)"},
2572   { "spaceship",                "spaceship (starts moving up)"  },
2573   { "spaceship",                "spaceship (starts moving left)"},     /* 90 */
2574   { "spaceship",                "spaceship (starts moving down)"},
2575   { "pacman",                   "pac man (starts moving right)" },
2576   { "pacman",                   "pac man (starts moving up)"    },
2577   { "pacman",                   "pac man (starts moving left)"  },
2578   { "pacman",                   "pac man (starts moving down)"  },
2579   { "emerald",                  "red emerald"                   },
2580   { "emerald",                  "purple emerald"                },
2581   { "wall",                     "wall with red emerald"         },
2582   { "wall",                     "wall with purple emerald"      },
2583   { NULL,                       "unknown"                       },    /* 100 */
2584   { NULL,                       "unknown"                       },
2585   { NULL,                       "unknown"                       },
2586   { NULL,                       "unknown"                       },
2587   { NULL,                       "unknown"                       },
2588   { NULL,                       "normal wall (BD style)"        },
2589   { "bd_rock",                  "rock (BD style)"               },
2590   { "exit",                     "open exit"                     },
2591   { NULL,                       "black orb bomb"                },
2592   { "amoeba",                   "amoeba"                        },
2593   { "mole",                     "mole"                          },    /* 110 */
2594   { "penguin",                  "penguin"                       },
2595   { "satellite",                "satellite"                     },
2596   { NULL,                       "arrow left"                    },
2597   { NULL,                       "arrow right"                   },
2598   { NULL,                       "arrow up"                      },
2599   { NULL,                       "arrow down"                    },
2600   { "pig",                      "pig"                           },
2601   { "dragon",                   "fire breathing dragon"         },
2602   { "key",                      "red key (EM style)"            },
2603   { NULL,                       "letter ' '"                    },    /* 120 */
2604   { NULL,                       "letter '!'"                    },
2605   { NULL,                       "letter '\"'"                   },
2606   { NULL,                       "letter '#'"                    },
2607   { NULL,                       "letter '$'"                    },
2608   { NULL,                       "letter '%'"                    },
2609   { NULL,                       "letter '&'"                    },
2610   { NULL,                       "letter '''"                    },
2611   { NULL,                       "letter '('"                    },
2612   { NULL,                       "letter ')'"                    },
2613   { NULL,                       "letter '*'"                    },    /* 130 */
2614   { NULL,                       "letter '+'"                    },
2615   { NULL,                       "letter ','"                    },
2616   { NULL,                       "letter '-'"                    },
2617   { NULL,                       "letter '.'"                    },
2618   { NULL,                       "letter '/'"                    },
2619   { NULL,                       "letter '0'"                    },
2620   { NULL,                       "letter '1'"                    },
2621   { NULL,                       "letter '2'"                    },
2622   { NULL,                       "letter '3'"                    },
2623   { NULL,                       "letter '4'"                    },    /* 140 */
2624   { NULL,                       "letter '5'"                    },
2625   { NULL,                       "letter '6'"                    },
2626   { NULL,                       "letter '7'"                    },
2627   { NULL,                       "letter '8'"                    },
2628   { NULL,                       "letter '9'"                    },
2629   { NULL,                       "letter ':'"                    },
2630   { NULL,                       "letter ';'"                    },
2631   { NULL,                       "letter '<'"                    },
2632   { NULL,                       "letter '='"                    },
2633   { NULL,                       "letter '>'"                    },    /* 150 */
2634   { NULL,                       "letter '?'"                    },
2635   { NULL,                       "letter '@'"                    },
2636   { NULL,                       "letter 'A'"                    },
2637   { NULL,                       "letter 'B'"                    },
2638   { NULL,                       "letter 'C'"                    },
2639   { NULL,                       "letter 'D'"                    },
2640   { NULL,                       "letter 'E'"                    },
2641   { NULL,                       "letter 'F'"                    },
2642   { NULL,                       "letter 'G'"                    },
2643   { NULL,                       "letter 'H'"                    },    /* 160 */
2644   { NULL,                       "letter 'I'"                    },
2645   { NULL,                       "letter 'J'"                    },
2646   { NULL,                       "letter 'K'"                    },
2647   { NULL,                       "letter 'L'"                    },
2648   { NULL,                       "letter 'M'"                    },
2649   { NULL,                       "letter 'N'"                    },
2650   { NULL,                       "letter 'O'"                    },
2651   { NULL,                       "letter 'P'"                    },
2652   { NULL,                       "letter 'Q'"                    },
2653   { NULL,                       "letter 'R'"                    },    /* 170 */
2654   { NULL,                       "letter 'S'"                    },
2655   { NULL,                       "letter 'T'"                    },
2656   { NULL,                       "letter 'U'"                    },
2657   { NULL,                       "letter 'V'"                    },
2658   { NULL,                       "letter 'W'"                    },
2659   { NULL,                       "letter 'X'"                    },
2660   { NULL,                       "letter 'Y'"                    },
2661   { NULL,                       "letter 'Z'"                    },
2662   { NULL,                       "letter 'Ä'"                    },
2663   { NULL,                       "letter 'Ö'"                    },    /* 180 */
2664   { NULL,                       "letter 'Ãœ'"                    },
2665   { NULL,                       "letter '^'"                    },
2666   { NULL,                       "letter ''"                     },
2667   { NULL,                       "letter ''"                     },
2668   { NULL,                       "letter ''"                     },
2669   { NULL,                       "letter ''"                     },
2670   { NULL,                       "letter ''"                     },
2671   { NULL,                       "letter ''"                     },
2672   { NULL,                       "letter ''"                     },
2673   { NULL,                       "letter ''"                     },    /* 190 */
2674   { NULL,                       "letter ''"                     },
2675   { NULL,                       "letter ''"                     },
2676   { NULL,                       "letter ''"                     },
2677   { NULL,                       "letter ''"                     },
2678   { NULL,                       "letter ''"                     },
2679   { NULL,                       "letter ''"                     },
2680   { NULL,                       "letter ''"                     },
2681   { NULL,                       "letter ''"                     },
2682   { NULL,                       "letter ''"                     },
2683   { "wall",                     "growing wall (horizontal)"     },    /* 200 */
2684   { "wall",                     "growing wall (vertical)"       },
2685   { "wall",                     "growing wall (all directions)" },
2686   { "gate",                     "red door (EM style)"           },
2687   { "gate",                     "yellow door (EM style)"        },
2688   { "gate",                     "green door (EM style)"         },
2689   { "gate",                     "blue door (EM style)"          },
2690   { "key",                      "yellow key (EM style)"         },
2691   { "key",                      "green key (EM style)"          },
2692   { "key",                      "blue key (EM style)"           },
2693   { "empty_space",              "empty space"                   },    /* 210 */
2694   { "sp_zonk",                  "zonk"                          },
2695   { "sp_base",                  "base"                          },
2696   { "player",                   "murphy"                        },
2697   { "sp_infotron",              "infotron"                      },
2698   { "wall",                     "chip (single)"                 },
2699   { "wall",                     "hardware"                      },
2700   { "sp_exit",                  "exit"                          },
2701   { "sp_disk_orange",           "orange disk"                   },
2702   { "sp_port",                  "port (leading right)"          },
2703   { "sp_port",                  "port (leading down)"           },    /* 220 */
2704   { "sp_port",                  "port (leading left)"           },
2705   { "sp_port",                  "port (leading up)"             },
2706   { "sp_port",                  "port (leading right)"          },
2707   { "sp_port",                  "port (leading down)"           },
2708   { "sp_port",                  "port (leading left)"           },
2709   { "sp_port",                  "port (leading up)"             },
2710   { "sp_sniksnak",              "snik snak"                     },
2711   { "sp_disk_yellow",           "yellow disk"                   },
2712   { "sp_terminal",              "terminal"                      },
2713   { "sp_disk_red",              "red disk"                      },    /* 230 */
2714   { "sp_port",                  "port (vertical)"               },
2715   { "sp_port",                  "port (horizontal)"             },
2716   { "sp_port",                  "port (all directions)"         },
2717   { "sp_electron",              "electron"                      },
2718   { "sp_buggy_base",            "buggy base"                    },
2719   { "wall",                     "chip (left half)"              },
2720   { "wall",                     "chip (right half)"             },
2721   { "wall",                     "hardware"                      },
2722   { "wall",                     "hardware"                      },
2723   { "wall",                     "hardware"                      },    /* 240 */
2724   { "wall",                     "hardware"                      },
2725   { "wall",                     "hardware"                      },
2726   { "wall",                     "hardware"                      },
2727   { "wall",                     "hardware"                      },
2728   { "wall",                     "hardware"                      },
2729   { "wall",                     "hardware"                      },
2730   { "wall",                     "hardware"                      },
2731   { "wall",                     "chip (upper half)"             },
2732   { "wall",                     "chip (lower half)"             },
2733   { "gate",                     "gray door (EM style, red key)" },    /* 250 */
2734   { "gate",                     "gray door (EM style, yellow key)"},
2735   { "gate",                     "gray door (EM style, green key)"},
2736   { "gate",                     "gray door (EM style, blue key)"},
2737   { NULL,                       "unknown"                       },
2738   { NULL,                       "unknown"                       },
2739
2740   /* 256 */
2741
2742   { "pearl",                    "pearl"                         },  /* (256) */
2743   { "crystal",                  "crystal"                       },
2744   { "wall",                     "wall with pearl"               },
2745   { "wall",                     "wall with crystal"             },
2746   { "gate",                     "white door"                    },    /* 260 */
2747   { "gate",                     "gray door (opened by white key)"},
2748   { "key",                      "white key"                     },
2749   { "shield_normal",            "shield (normal)"               },
2750   { "extra_time",               "extra time"                    },
2751   { "switchgate",               "switch gate (open)"            },
2752   { "switchgate",               "switch gate (closed)"          },
2753   { "switchgate_switch",        "switch for switch gate"        },
2754   { "switchgate_switch",        "switch for switch gate"        },
2755   { NULL,                       "-"                             },
2756   { NULL,                       "-"                             },    /* 270 */
2757   { "conveyor_belt",            "red conveyor belt (left)"      },
2758   { "conveyor_belt",            "red conveyor belt (middle)"    },
2759   { "conveyor_belt",            "red conveyor belt (right)"     },
2760   { "conveyor_belt_switch",     "switch for red conveyor belt (left)"},
2761   { "conveyor_belt_switch",     "switch for red conveyor belt (middle)"},
2762   { "conveyor_belt_switch",     "switch for red conveyor belt (right)"},
2763   { "conveyor_belt",            "yellow conveyor belt (left)"   },
2764   { "conveyor_belt",            "yellow conveyor belt (middle)" },
2765   { "conveyor_belt",            "yellow conveyor belt (right)"  },
2766   { "conveyor_belt_switch",     "switch for yellow conveyor belt (left)"},
2767   { "conveyor_belt_switch",     "switch for yellow conveyor belt (middle)"},
2768   { "conveyor_belt_switch",     "switch for yellow conveyor belt (right)"},
2769   { "conveyor_belt",            "green conveyor belt (left)"    },
2770   { "conveyor_belt",            "green conveyor belt (middle)"  },
2771   { "conveyor_belt",            "green conveyor belt (right)"   },
2772   { "conveyor_belt_switch",     "switch for green conveyor belt (left)"},
2773   { "conveyor_belt_switch",     "switch for green conveyor belt (middle)"},
2774   { "conveyor_belt_switch",     "switch for green conveyor belt (right)"},
2775   { "conveyor_belt",            "blue conveyor belt (left)"     },
2776   { "conveyor_belt",            "blue conveyor belt (middle)"   },
2777   { "conveyor_belt",            "blue conveyor belt (right)"    },
2778   { "conveyor_belt_switch",     "switch for blue conveyor belt (left)"},
2779   { "conveyor_belt_switch",     "switch for blue conveyor belt (middle)"},
2780   { "conveyor_belt_switch",     "switch for blue conveyor belt (right)"},
2781   { "sand",                     "land mine"                     },
2782   { "envelope",                 "mail envelope"                 },
2783   { "light_switch",             "light switch (off)"            },
2784   { "light_switch",             "light switch (on)"             },
2785   { "wall",                     "sign (exclamation)"            },
2786   { "wall",                     "sign (radio activity)"         },    /* 300 */
2787   { "wall",                     "sign (stop)"                   },
2788   { "wall",                     "sign (wheel chair)"            },
2789   { "wall",                     "sign (parking)"                },
2790   { "wall",                     "sign (one way)"                },
2791   { "wall",                     "sign (heart)"                  },
2792   { "wall",                     "sign (triangle)"               },
2793   { "wall",                     "sign (round)"                  },
2794   { "wall",                     "sign (exit)"                   },
2795   { "wall",                     "sign (yin yang)"               },
2796   { "wall",                     "sign (other)"                  },    /* 310 */
2797   { "mole",                     "mole (starts moving left)"     },
2798   { "mole",                     "mole (starts moving right)"    },
2799   { "mole",                     "mole (starts moving up)"       },
2800   { "mole",                     "mole (starts moving down)"     },
2801   { "wall",                     "steel wall (slanted)"          },
2802   { "sand",                     "invisible sand"                },
2803   { NULL,                       "dx unknown 15"                 },
2804   { NULL,                       "dx unknown 42"                 },
2805   { NULL,                       "-"                             },
2806   { NULL,                       "-"                             },    /* 320 */
2807   { "shield_deadly",            "shield (deadly, kills enemies)"},
2808   { "timegate",                 "time gate (open)"              },
2809   { "timegate",                 "time gate (closed)"            },
2810   { "timegate_switch",          "switch for time gate"          },
2811   { "timegate_switch",          "switch for time gate"          },
2812   { "balloon",                  "balloon"                       },
2813   { "balloon_switch",           "send balloon to the left"      },
2814   { "balloon_switch",           "send balloon to the right"     },
2815   { "balloon_switch",           "send balloon up"               },
2816   { "balloon_switch",           "send balloon down"             },    /* 330 */
2817   { "balloon_switch",           "send balloon in any direction" },
2818   { "wall",                     "steel wall"                    },
2819   { "wall",                     "steel wall"                    },
2820   { "wall",                     "steel wall"                    },
2821   { "wall",                     "steel wall"                    },
2822   { "wall",                     "normal wall"                   },
2823   { "wall",                     "normal wall"                   },
2824   { "wall",                     "normal wall"                   },
2825   { "wall",                     "normal wall"                   },
2826   { "wall",                     "normal wall"                   },    /* 340 */
2827   { "wall",                     "normal wall"                   },
2828   { "wall",                     "normal wall"                   },
2829   { "wall",                     "normal wall"                   },
2830   { "tube",                     "tube (all directions)"         },
2831   { "tube",                     "tube (vertical)"               },
2832   { "tube",                     "tube (horizontal)"             },
2833   { "tube",                     "tube (vertical & left)"        },
2834   { "tube",                     "tube (vertical & right)"       },
2835   { "tube",                     "tube (horizontal & up)"        },
2836   { "tube",                     "tube (horizontal & down)"      },    /* 350 */
2837   { "tube",                     "tube (left & up)"              },
2838   { "tube",                     "tube (left & down)"            },
2839   { "tube",                     "tube (right & up)"             },
2840   { "tube",                     "tube (right & down)"           },
2841   { "spring",                   "spring"                        },
2842   { "trap",                     "trap"                          },
2843   { "dx_bomb",                  "stable bomb (DX style)"        },
2844   { NULL,                       "-"                             }
2845
2846   /*
2847   "-------------------------------",
2848   */
2849 };
2850
2851 struct GraphicInfo graphic_info[MAX_GRAPHICS];
2852 struct NewGraphicInfo new_graphic_info[NUM_IMAGE_FILES];
2853
2854
2855 /* ========================================================================= */
2856 /* main()                                                                    */
2857 /* ========================================================================= */
2858
2859 int main(int argc, char *argv[])
2860 {
2861   InitCommandName(argv[0]);
2862   InitExitFunction(CloseAllAndExit);
2863   InitPlatformDependantStuff();
2864
2865   GetOptions(argv);
2866   OpenAll();
2867
2868   EventLoop();
2869   CloseAllAndExit(0);
2870
2871   return 0;     /* to keep compilers happy */
2872 }