rnd-20060819-3-src
[rocksndiamonds.git] / src / conf_hlp.c
1 /***********************************************************
2 * Rocks'n'Diamonds -- McDuffin Strikes Back!               *
3 *----------------------------------------------------------*
4 * (c) 1995-2006 Artsoft Entertainment                      *
5 *               Holger Schemel                             *
6 *               Detmolder Strasse 189                      *
7 *               33604 Bielefeld                            *
8 *               Germany                                    *
9 *               e-mail: info@artsoft.org                   *
10 *----------------------------------------------------------*
11 * conf_hlp.c                                               *
12 ***********************************************************/
13
14 #include "libgame/libgame.h"
15 #include "main.h"
16
17
18 /* List values that are not defined in the configuration file are set to
19    reliable default values. If that value is GFX_ARG_UNDEFINED, it will
20    be dynamically determined, using some of the other list values. */
21
22 struct ConfigInfo helpanim_config[] =
23 {
24   { "player_1.moving.down",                     "16"                    },
25   { "player_1.moving.up",                       "16"                    },
26   { "player_1.moving.left",                     "16"                    },
27   { "player_1.moving.right",                    "16"                    },
28   { "player_1.pushing.left",                    "16"                    },
29   { "player_1.pushing.right",                   "16"                    },
30   { "end",                                      ""                      },
31
32   { "sand",                                     "50"                    },
33   { "sand.digging.left",                        "8"                     },
34   { "empty_space",                              "10"                    },
35   { "sand",                                     "50"                    },
36   { "sand.digging.right",                       "8"                     },
37   { "empty_space",                              "10"                    },
38   { "sand",                                     "50"                    },
39   { "sand.digging.up",                          "8"                     },
40   { "empty_space",                              "10"                    },
41   { "sand",                                     "50"                    },
42   { "sand.digging.down",                        "8"                     },
43   { "empty_space",                              "10"                    },
44   { "end",                                      ""                      },
45
46   { "empty_space",                              "-1"                    },
47   { "end",                                      ""                      },
48
49   { "quicksand_empty",                          "-1"                    },
50   { "end",                                      ""                      },
51
52   { "steelwall",                                "-1"                    },
53   { "end",                                      ""                      },
54
55   { "wall",                                     "-1"                    },
56   { "end",                                      ""                      },
57
58   { "expandable_wall.growing.left",             "20"                    },
59   { "wall",                                     "50"                    },
60   { "expandable_wall.growing.right",            "20"                    },
61   { "wall",                                     "50"                    },
62   { "expandable_wall.growing.up",               "20"                    },
63   { "wall",                                     "50"                    },
64   { "expandable_wall.growing.down",             "20"                    },
65   { "wall",                                     "50"                    },
66   { "empty_space",                              "20"                    },
67   { "end",                                      ""                      },
68
69   { "invisible_wall",                           "-1"                    },
70   { "end",                                      ""                      },
71
72   { "wall_slippery",                            "-1"                    },
73   { "end",                                      ""                      },
74
75   { "char_space",                               "10"                    },
76   { "char_exclam",                              "10"                    },
77   { "char_quotedbl",                            "10"                    },
78   { "char_numbersign",                          "10"                    },
79   { "char_dollar",                              "10"                    },
80   { "char_percent",                             "10"                    },
81   { "char_ampersand",                           "10"                    },
82   { "char_apostrophe",                          "10"                    },
83   { "char_parenleft",                           "10"                    },
84   { "char_parenright",                          "10"                    },
85   { "char_asterisk",                            "10"                    },
86   { "char_plus",                                "10"                    },
87   { "char_comma",                               "10"                    },
88   { "char_minus",                               "10"                    },
89   { "char_period",                              "10"                    },
90   { "char_slash",                               "10"                    },
91   { "char_0",                                   "10"                    },
92   { "char_1",                                   "10"                    },
93   { "char_2",                                   "10"                    },
94   { "char_3",                                   "10"                    },
95   { "char_4",                                   "10"                    },
96   { "char_5",                                   "10"                    },
97   { "char_6",                                   "10"                    },
98   { "char_7",                                   "10"                    },
99   { "char_8",                                   "10"                    },
100   { "char_9",                                   "10"                    },
101   { "char_colon",                               "10"                    },
102   { "char_semicolon",                           "10"                    },
103   { "char_less",                                "10"                    },
104   { "char_equal",                               "10"                    },
105   { "char_greater",                             "10"                    },
106   { "char_question",                            "10"                    },
107   { "char_at",                                  "10"                    },
108   { "char_a",                                   "10"                    },
109   { "char_b",                                   "10"                    },
110   { "char_c",                                   "10"                    },
111   { "char_d",                                   "10"                    },
112   { "char_e",                                   "10"                    },
113   { "char_f",                                   "10"                    },
114   { "char_g",                                   "10"                    },
115   { "char_h",                                   "10"                    },
116   { "char_i",                                   "10"                    },
117   { "char_j",                                   "10"                    },
118   { "char_k",                                   "10"                    },
119   { "char_l",                                   "10"                    },
120   { "char_m",                                   "10"                    },
121   { "char_n",                                   "10"                    },
122   { "char_o",                                   "10"                    },
123   { "char_p",                                   "10"                    },
124   { "char_q",                                   "10"                    },
125   { "char_r",                                   "10"                    },
126   { "char_s",                                   "10"                    },
127   { "char_t",                                   "10"                    },
128   { "char_u",                                   "10"                    },
129   { "char_v",                                   "10"                    },
130   { "char_w",                                   "10"                    },
131   { "char_x",                                   "10"                    },
132   { "char_y",                                   "10"                    },
133   { "char_z",                                   "10"                    },
134   { "char_bracketleft",                         "10"                    },
135   { "char_backslash",                           "10"                    },
136   { "char_bracketright",                        "10"                    },
137   { "char_asciicircum",                         "10"                    },
138   { "char_underscore",                          "10"                    },
139   { "char_copyright",                           "10"                    },
140   { "char_aumlaut",                             "10"                    },
141   { "char_oumlaut",                             "10"                    },
142   { "char_uumlaut",                             "10"                    },
143   { "char_degree",                              "10"                    },
144   { "char_trademark",                           "10"                    },
145   { "char_cursor",                              "10"                    },
146   { "end",                                      ""                      },
147
148   { "emerald",                                  "50"                    },
149   { "emerald.collecting",                       "8"                     },
150   { "empty_space",                              "10"                    },
151   { "end",                                      ""                      },
152
153   { "diamond",                                  "50"                    },
154   { "diamond.collecting",                       "8"                     },
155   { "empty_space",                              "10"                    },
156   { "end",                                      ""                      },
157
158   { "bd_diamond",                               "50"                    },
159   { "bd_diamond.collecting",                    "8"                     },
160   { "empty_space",                              "10"                    },
161   { "end",                                      ""                      },
162
163   { "emerald_yellow",                           "50"                    },
164   { "emerald_yellow.collecting",                "8"                     },
165   { "empty_space",                              "10"                    },
166   { "emerald_red",                              "50"                    },
167   { "emerald_red.collecting",                   "8"                     },
168   { "empty_space",                              "10"                    },
169   { "emerald_purple",                           "50"                    },
170   { "emerald_purple.collecting",                "8"                     },
171   { "empty_space",                              "10"                    },
172   { "end",                                      ""                      },
173
174   { "bd_rock",                                  "-1"                    },
175   { "end",                                      ""                      },
176
177   { "bomb",                                     "100"                   },
178   { "bomb.exploding",                           "16"                    },
179   { "empty_space",                              "10"                    },
180   { "end",                                      ""                      },
181
182   { "nut",                                      "100"                   },
183   { "nut.breaking",                             "6"                     },
184   { "emerald",                                  "20"                    },
185   { "end",                                      ""                      },
186
187   { "wall_emerald",                             "100"                   },
188   { "wall_emerald.exploding",                   "16"                    },
189   { "emerald",                                  "20"                    },
190   { "end",                                      ""                      },
191
192   { "wall_diamond",                             "100"                   },
193   { "wall_diamond.exploding",                   "16"                    },
194   { "diamond",                                  "20"                    },
195   { "end",                                      ""                      },
196
197   { "wall_bd_diamond",                          "100"                   },
198   { "wall_bd_diamond.exploding",                "16"                    },
199   { "bd_diamond",                               "20"                    },
200   { "end",                                      ""                      },
201
202   { "wall_emerald_yellow",                      "100"                   },
203   { "wall_emerald_yellow.exploding",            "16"                    },
204   { "emerald_yellow",                           "20"                    },
205   { "wall_emerald_red",                         "100"                   },
206   { "wall_emerald_red.exploding",               "16"                    },
207   { "emerald_red",                              "20"                    },
208   { "wall_emerald_purple",                      "100"                   },
209   { "wall_emerald_purple.exploding",            "16"                    },
210   { "emerald_purple",                           "20"                    },
211   { "end",                                      ""                      },
212
213   { "acid",                                     "-1"                    },
214   { "end",                                      ""                      },
215
216   { "key_1",                                    "50"                    },
217   { "key_2",                                    "50"                    },
218   { "key_3",                                    "50"                    },
219   { "key_4",                                    "50"                    },
220   { "end",                                      ""                      },
221
222   { "gate_1",                                   "50"                    },
223   { "gate_2",                                   "50"                    },
224   { "gate_3",                                   "50"                    },
225   { "gate_4",                                   "50"                    },
226   { "end",                                      ""                      },
227
228   { "gate_1_gray",                              "50"                    },
229   { "gate_2_gray",                              "50"                    },
230   { "gate_3_gray",                              "50"                    },
231   { "gate_4_gray",                              "50"                    },
232   { "end",                                      ""                      },
233
234   { "dynamite",                                 "-1"                    },
235   { "end",                                      ""                      },
236
237   { "dynamite.active",                          "96"                    },
238   { "dynamite.exploding",                       "16"                    },
239   { "empty_space",                              "20"                    },
240   { "end",                                      ""                      },
241
242   { "dynabomb.active",                          "100"                   },
243   { "dynabomb.exploding",                       "16"                    },
244   { "empty_space",                              "20"                    },
245   { "end",                                      ""                      },
246
247   { "dynabomb_increase_number",                 "-1"                    },
248   { "end",                                      ""                      },
249
250   { "dynabomb_increase_size",                   "-1"                    },
251   { "end",                                      ""                      },
252
253   { "dynabomb_increase_power",                  "-1"                    },
254   { "end",                                      ""                      },
255
256   { "spaceship.turning_from_right.up",          "8"                     },
257   { "spaceship.turning_from_up.left",           "8"                     },
258   { "spaceship.turning_from_left.down",         "8"                     },
259   { "spaceship.turning_from_down.right",        "8"                     },
260   { "end",                                      ""                      },
261
262   { "bug.turning_from_right.up",                "8"                     },
263   { "bug.turning_from_up.left",                 "8"                     },
264   { "bug.turning_from_left.down",               "8"                     },
265   { "bug.turning_from_down.right",              "8"                     },
266   { "end",                                      ""                      },
267
268   { "bd_butterfly",                             "-1"                    },
269   { "end",                                      ""                      },
270
271   { "bd_firefly",                               "-1"                    },
272   { "end",                                      ""                      },
273
274   { "pacman.right",                             "16"                    },
275   { "pacman.up",                                "16"                    },
276   { "pacman.left",                              "16"                    },
277   { "pacman.down",                              "16"                    },
278   { "end",                                      ""                      },
279
280   { "yamyam",                                   "-1"                    },
281   { "end",                                      ""                      },
282
283   { "dark_yamyam",                              "-1"                    },
284   { "end",                                      ""                      },
285
286   { "robot",                                    "-1"                    },
287   { "end",                                      ""                      },
288
289   { "mole.moving.right",                        "16"                    },
290   { "mole.moving.up",                           "16"                    },
291   { "mole.moving.left",                         "16"                    },
292   { "mole.moving.down",                         "16"                    },
293   { "end",                                      ""                      },
294
295   { "penguin.moving.right",                     "16"                    },
296   { "penguin.moving.up",                        "16"                    },
297   { "penguin.moving.left",                      "16"                    },
298   { "penguin.moving.down",                      "16"                    },
299   { "end",                                      ""                      },
300
301   { "pig.moving.right",                         "16"                    },
302   { "pig.moving.up",                            "16"                    },
303   { "pig.moving.left",                          "16"                    },
304   { "pig.moving.down",                          "16"                    },
305   { "end",                                      ""                      },
306
307   { "dragon.moving.right",                      "16"                    },
308   { "dragon.moving.up",                         "16"                    },
309   { "dragon.moving.left",                       "16"                    },
310   { "dragon.moving.down",                       "16"                    },
311   { "end",                                      ""                      },
312
313   { "satellite",                                "-1"                    },
314   { "end",                                      ""                      },
315
316   { "robot_wheel",                              "50"                    },
317   { "robot_wheel.active",                       "100"                   },
318   { "end",                                      ""                      },
319
320   { "lamp",                                     "50"                    },
321   { "lamp.active",                              "50"                    },
322   { "end",                                      ""                      },
323
324   { "time_orb_full",                            "50"                    },
325   { "time_orb_empty",                           "50"                    },
326   { "end",                                      ""                      },
327
328   { "amoeba_drop",                              "50"                    },
329   { "amoeba.growing",                           "6"                     },
330   { "amoeba_wet",                               "20"                    },
331   { "end",                                      ""                      },
332
333   { "amoeba_dead",                              "-1"                    },
334   { "end",                                      ""                      },
335
336   { "amoeba_wet",                               "-1"                    },
337   { "end",                                      ""                      },
338
339   { "amoeba_wet",                               "100"                   },
340   { "amoeba.growing",                           "6"                     },
341   { "end",                                      ""                      },
342
343   { "amoeba_full",                              "50"                    },
344   { "amoeba_dead",                              "50"                    },
345   { "amoeba.exploding",                         "16"                    },
346   { "diamond",                                  "20"                    },
347   { "end",                                      ""                      },
348
349   { "game_of_life",                             "-1"                    },
350   { "end",                                      ""                      },
351
352   { "biomaze",                                  "-1"                    },
353   { "end",                                      ""                      },
354
355   { "magic_wall.active",                        "-1"                    },
356   { "end",                                      ""                      },
357
358   { "bd_magic_wall.active",                     "-1"                    },
359   { "end",                                      ""                      },
360
361   { "exit_closed",                              "200"                   },
362   { "exit.opening",                             "30"                    },
363   { "exit_open",                                "100"                   },
364   { "exit.closing",                             "30"                    },
365   { "end",                                      ""                      },
366
367   { "exit_open",                                "-1"                    },
368   { "end",                                      ""                      },
369
370   { "sokoban_object",                           "-1"                    },
371   { "end",                                      ""                      },
372
373   { "sokoban_field_empty",                      "-1"                    },
374   { "end",                                      ""                      },
375
376   { "sokoban_field_full",                       "-1"                    },
377   { "end",                                      ""                      },
378
379   { "speed_pill",                               "-1"                    },
380   { "end",                                      ""                      },
381
382   { NULL,                                       NULL                    }
383 };
384
385 struct ConfigInfo helptext_config[] =
386 {
387   {
388     "player_1",
389     "THE HERO: (Is _this_ guy good old Rockford?)"
390   },
391   {
392     "sand",
393     "Normal sand: You can dig through it"
394   },
395   {
396     "empty_space",
397     "Empty field: You can walk through it"
398   },
399   {
400     "quicksand_empty",
401     "Quicksand: You cannot pass it, but rocks can fall through it"
402   },
403   {
404     "steelwall",
405     "Massive Wall: Nothing can go through it"
406   },
407   {
408     "wall",
409     "Normal Wall: You can't go through it, but you can bomb it away"
410   },
411   {
412     "expandable_wall",
413     "Growing Wall: Grows in several directions if there is an empty field"
414   },
415   {
416     "invisible_wall",
417     "Invisible Wall: Behaves like normal wall, but is invisible"
418   },
419   {
420     "wall_slippery",
421     "Old Wall: Like normal wall, but some things can fall down from it"
422   },
423   {
424     "char_space",
425     "Letter Wall: Looks like a letter, behaves like a normal wall"
426   },
427   {
428     "emerald",
429     "Emerald: You must collect enough of them to finish a level"
430   },
431   {
432     "diamond",
433     "Diamond: Counts as 3 emeralds, but can be destroyed by rocks"
434   },
435   {
436     "bd_diamond",
437     "Diamond (BD style): Counts like one emerald and behaves a bit different"
438   },
439   {
440     "emerald_yellow",
441     "Colorful Gems: Seem to behave like Emeralds"
442   },
443   {
444     "bd_rock",
445     "Rock: Smashes several things; Can be moved by the player"
446   },
447   {
448     "bomb",
449     "Bomb: You can move it, but be careful when dropping it"
450   },
451   {
452     "nut",
453     "Nut: Throw a rock on it to open it; Each nut contains an emerald"
454   },
455   {
456     "wall_emerald",
457     "Wall with an emerald inside: Bomb the wall away to get it"
458   },
459   {
460     "wall_diamond",
461     "Wall with a diamond inside: Bomb the wall away to get it"
462   },
463   {
464     "wall_bd_diamond",
465     "Wall with BD style diamond inside: Bomb the wall away to get it"
466   },
467   {
468     "wall_emerald_yellow",
469     "Wall with colorful gem inside: Bomb the wall away to get it"
470   },
471   {
472     "acid",
473     "Acid: Things that fall in are gone forever (including our hero)"
474   },
475   {
476     "key_1",
477     "Key: Opens the door that has the same color (red/yellow/green/blue)"
478   },
479   {
480     "gate_1",
481     "Door: Can be opened by the key with the same color"
482   },
483   {
484     "gate_1_gray",
485     "Door: You have to find out the right color of the key for it"
486   },
487   {
488     "dynamite",
489     "Dynamite: Collect it and use it to destroy walls or kill enemies"
490   },
491   {
492     "dynamite.active",
493     "Dynamite: This one explodes after a few seconds"
494   },
495   {
496     "dynabomb",
497     "Dyna Bomb: Explodes in 4 directions with variable explosion size"
498   },
499   {
500     "dynabomb_increase_number",
501     "Dyna Bomb: Increases the number of dyna bombs available at a time"
502   },
503   {
504     "dynabomb_increase_size",
505     "Dyna Bomb: Increases the size of explosion of dyna bombs"
506   },
507   {
508     "dynabomb_increase_power",
509     "Dyna Bomb: Increases the power of explosion of dyna bombs"
510   },
511   {
512     "spaceship",
513     "Spaceship: Moves at the left side of walls; don't touch it!"
514   },
515   {
516     "bug",
517     "Bug: Moves at the right side of walls; don't touch it!"
518   },
519   {
520     "bd_butterfly",
521     "Butterfly: Moves at the right side of walls; don't touch it!"
522   },
523   {
524     "bd_firefly",
525     "Firefly: Moves at the left side of walls; don't touch it!"
526   },
527   {
528     "pacman",
529     "Pacman: Eats the amoeba and you, if you're not careful"
530   },
531   {
532     "yamyam",
533     "Yam Yam: Eats diamonds and you, if you're not careful"
534   },
535   {
536     "dark_yamyam",
537     "Dark Yam Yam: Eats almost everything"
538   },
539   {
540     "robot",
541     "Robot: Tries to kill the player"
542   },
543   {
544     "mole",
545     "The mole: Eats the amoeba and turns empty space into normal sand"
546   },
547   {
548     "penguin",
549     "The penguin: Guide him to the exit, but keep him away from monsters!"
550   },
551   {
552     "pig",
553     "The Pig: Harmless, but eats all gems it can get"
554   },
555   {
556     "dragon",
557     "The Dragon: Breathes fire, especially to some monsters"
558   },
559   {
560     "satellite",
561     "Sonde: Follows you everywhere; harmless, but may block your way"
562   },
563   {
564     "robot_wheel",
565     "Magic Wheel: Touch it to get rid of the robots for some seconds"
566   },
567   {
568     "lamp",
569     "Light Bulb: All of them must be switched on to finish a level"
570   },
571   {
572     "time_orb_full",
573     "Extra Time Orb: Adds some seconds to the time available for the level"
574   },
575   {
576     "amoeba_drop",
577     "Amoeba Drop: Grows to an amoeba on the ground - don't touch it"
578   },
579   {
580     "amoeba_dead",
581     "Dead Amoeba: Does not grow, but can still kill bugs and spaceships"
582   },
583   {
584     "amoeba_wet",
585     "Normal Amoeba: Grows through empty fields, sand and quicksand"
586   },
587   {
588     "amoeba_wet",
589     "Dropping Amoeba: This one makes drops that grow to a new amoeba"
590   },
591   {
592     "amoeba_full",
593     "Living Amoeba (BD style): Contains other element, when surrounded"
594   },
595   {
596     "game_of_life",
597     "Game Of Life: Behaves like the well known 'Game Of Life' (2333 style)"
598   },
599   {
600     "biomaze",
601     "Biomaze: A bit like the 'Game Of Life', but builds crazy mazes"
602   },
603   {
604     "magic_wall",
605     "Magic Wall: Changes rocks, emeralds and diamonds when they pass it"
606   },
607   {
608     "bd_magic_wall",
609     "Magic Wall (BD style): Changes rocks and BD style diamonds"
610   },
611   {
612     "exit_closed",
613     "Exit door: Opens if you have enough emeralds to finish the level"
614   },
615   {
616     "exit_open",
617     "Open exit door: Enter here to leave the level and exit the actual game"
618   },
619   {
620     "sokoban_object",
621     "Sokoban element: Object which must be pushed to an empty field"
622   },
623   {
624     "sokoban_field_empty",
625     "Sokoban element: Empty field where a Sokoban object can be placed on"
626   },
627   {
628     "sokoban_field_full",
629     "Sokoban element: Field with object which can be pushed away"
630   },
631   {
632     "speed_pill",
633     "Speed pill: Lets the player run twice as fast as normally"
634   },
635
636   {
637     NULL,
638     NULL
639   }
640 };