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