rnd-20021006-1-src
authorHolger Schemel <info@artsoft.org>
Sun, 6 Oct 2002 02:09:11 +0000 (04:09 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:38:49 +0000 (10:38 +0200)
Makefile
src/conf_chr.c [new file with mode: 0644]
src/conf_e2g.c
src/conf_gfx.h
src/conf_snd.h
src/conftime.h
src/game.c
src/init.c
src/main.c
src/main.h
src/tools.c

index a75133cc7f3adbd436a7163d50c883ab40a6b76a..6fb23c4a98d4898409fcf963ba7768edac7e2f4d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -90,6 +90,7 @@ clean:
 auto-conf:
        ./Scripts/create_element_defs.pl --graphics > src/conf_gfx.h
        ./Scripts/create_element_defs.pl --sounds   > src/conf_snd.h
+       ./Scripts/create_element_defs.pl --chars    > src/conf_chr.c
        ./Scripts/create_element_defs.pl --el2gfx   > src/conf_e2g.c
 
 run:
diff --git a/src/conf_chr.c b/src/conf_chr.c
new file mode 100644 (file)
index 0000000..127a270
--- /dev/null
@@ -0,0 +1,362 @@
+/***********************************************************
+* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
+*----------------------------------------------------------*
+* (c) 1995-2002 Artsoft Entertainment                      *
+*               Holger Schemel                             *
+*               Detmolder Strasse 189                      *
+*               33604 Bielefeld                            *
+*               Germany                                    *
+*               e-mail: info@artsoft.org                   *
+*----------------------------------------------------------*
+* conf_chr.c                                               *
+***********************************************************/
+
+/* ----- this file was automatically generated -- do not edit by hand ----- */
+
+#ifndef CONF_CHR_C
+#define CONF_CHR_C
+
+/* values for character graphics configuration */
+
+  { "char_space",                              "RocksFontEM.pcx"       },
+  { "char_space.xpos",                         "0"                     },
+  { "char_space.ypos",                         "0"                     },
+  { "char_space.frames",                       "1"                     },
+
+  { "char_exclam",                             "RocksFontEM.pcx"       },
+  { "char_exclam.xpos",                                "1"                     },
+  { "char_exclam.ypos",                                "0"                     },
+  { "char_exclam.frames",                      "1"                     },
+
+  { "char_quotedbl",                           "RocksFontEM.pcx"       },
+  { "char_quotedbl.xpos",                      "2"                     },
+  { "char_quotedbl.ypos",                      "0"                     },
+  { "char_quotedbl.frames",                    "1"                     },
+
+  { "char_numbersign",                         "RocksFontEM.pcx"       },
+  { "char_numbersign.xpos",                    "3"                     },
+  { "char_numbersign.ypos",                    "0"                     },
+  { "char_numbersign.frames",                  "1"                     },
+
+  { "char_dollar",                             "RocksFontEM.pcx"       },
+  { "char_dollar.xpos",                                "4"                     },
+  { "char_dollar.ypos",                                "0"                     },
+  { "char_dollar.frames",                      "1"                     },
+
+  { "char_procent",                            "RocksFontEM.pcx"       },
+  { "char_procent.xpos",                       "5"                     },
+  { "char_procent.ypos",                       "0"                     },
+  { "char_procent.frames",                     "1"                     },
+
+  { "char_ampersand",                          "RocksFontEM.pcx"       },
+  { "char_ampersand.xpos",                     "6"                     },
+  { "char_ampersand.ypos",                     "0"                     },
+  { "char_ampersand.frames",                   "1"                     },
+
+  { "char_apostrophe",                         "RocksFontEM.pcx"       },
+  { "char_apostrophe.xpos",                    "7"                     },
+  { "char_apostrophe.ypos",                    "0"                     },
+  { "char_apostrophe.frames",                  "1"                     },
+
+  { "char_parenleft",                          "RocksFontEM.pcx"       },
+  { "char_parenleft.xpos",                     "8"                     },
+  { "char_parenleft.ypos",                     "0"                     },
+  { "char_parenleft.frames",                   "1"                     },
+
+  { "char_parenright",                         "RocksFontEM.pcx"       },
+  { "char_parenright.xpos",                    "9"                     },
+  { "char_parenright.ypos",                    "0"                     },
+  { "char_parenright.frames",                  "1"                     },
+
+  { "char_asterisk",                           "RocksFontEM.pcx"       },
+  { "char_asterisk.xpos",                      "10"                    },
+  { "char_asterisk.ypos",                      "0"                     },
+  { "char_asterisk.frames",                    "1"                     },
+
+  { "char_plus",                               "RocksFontEM.pcx"       },
+  { "char_plus.xpos",                          "11"                    },
+  { "char_plus.ypos",                          "0"                     },
+  { "char_plus.frames",                                "1"                     },
+
+  { "char_comma",                              "RocksFontEM.pcx"       },
+  { "char_comma.xpos",                         "12"                    },
+  { "char_comma.ypos",                         "0"                     },
+  { "char_comma.frames",                       "1"                     },
+
+  { "char_minus",                              "RocksFontEM.pcx"       },
+  { "char_minus.xpos",                         "13"                    },
+  { "char_minus.ypos",                         "0"                     },
+  { "char_minus.frames",                       "1"                     },
+
+  { "char_period",                             "RocksFontEM.pcx"       },
+  { "char_period.xpos",                                "14"                    },
+  { "char_period.ypos",                                "0"                     },
+  { "char_period.frames",                      "1"                     },
+
+  { "char_slash",                              "RocksFontEM.pcx"       },
+  { "char_slash.xpos",                         "15"                    },
+  { "char_slash.ypos",                         "0"                     },
+  { "char_slash.frames",                       "1"                     },
+
+  { "char_0",                                  "RocksFontEM.pcx"       },
+  { "char_0.xpos",                             "0"                     },
+  { "char_0.ypos",                             "1"                     },
+  { "char_0.frames",                           "1"                     },
+
+  { "char_1",                                  "RocksFontEM.pcx"       },
+  { "char_1.xpos",                             "1"                     },
+  { "char_1.ypos",                             "1"                     },
+  { "char_1.frames",                           "1"                     },
+
+  { "char_2",                                  "RocksFontEM.pcx"       },
+  { "char_2.xpos",                             "2"                     },
+  { "char_2.ypos",                             "1"                     },
+  { "char_2.frames",                           "1"                     },
+
+  { "char_3",                                  "RocksFontEM.pcx"       },
+  { "char_3.xpos",                             "3"                     },
+  { "char_3.ypos",                             "1"                     },
+  { "char_3.frames",                           "1"                     },
+
+  { "char_4",                                  "RocksFontEM.pcx"       },
+  { "char_4.xpos",                             "4"                     },
+  { "char_4.ypos",                             "1"                     },
+  { "char_4.frames",                           "1"                     },
+
+  { "char_5",                                  "RocksFontEM.pcx"       },
+  { "char_5.xpos",                             "5"                     },
+  { "char_5.ypos",                             "1"                     },
+  { "char_5.frames",                           "1"                     },
+
+  { "char_6",                                  "RocksFontEM.pcx"       },
+  { "char_6.xpos",                             "6"                     },
+  { "char_6.ypos",                             "1"                     },
+  { "char_6.frames",                           "1"                     },
+
+  { "char_7",                                  "RocksFontEM.pcx"       },
+  { "char_7.xpos",                             "7"                     },
+  { "char_7.ypos",                             "1"                     },
+  { "char_7.frames",                           "1"                     },
+
+  { "char_8",                                  "RocksFontEM.pcx"       },
+  { "char_8.xpos",                             "8"                     },
+  { "char_8.ypos",                             "1"                     },
+  { "char_8.frames",                           "1"                     },
+
+  { "char_9",                                  "RocksFontEM.pcx"       },
+  { "char_9.xpos",                             "9"                     },
+  { "char_9.ypos",                             "1"                     },
+  { "char_9.frames",                           "1"                     },
+
+  { "char_colon",                              "RocksFontEM.pcx"       },
+  { "char_colon.xpos",                         "10"                    },
+  { "char_colon.ypos",                         "1"                     },
+  { "char_colon.frames",                       "1"                     },
+
+  { "char_semicolon",                          "RocksFontEM.pcx"       },
+  { "char_semicolon.xpos",                     "11"                    },
+  { "char_semicolon.ypos",                     "1"                     },
+  { "char_semicolon.frames",                   "1"                     },
+
+  { "char_less",                               "RocksFontEM.pcx"       },
+  { "char_less.xpos",                          "12"                    },
+  { "char_less.ypos",                          "1"                     },
+  { "char_less.frames",                                "1"                     },
+
+  { "char_equal",                              "RocksFontEM.pcx"       },
+  { "char_equal.xpos",                         "13"                    },
+  { "char_equal.ypos",                         "1"                     },
+  { "char_equal.frames",                       "1"                     },
+
+  { "char_greater",                            "RocksFontEM.pcx"       },
+  { "char_greater.xpos",                       "14"                    },
+  { "char_greater.ypos",                       "1"                     },
+  { "char_greater.frames",                     "1"                     },
+
+  { "char_question",                           "RocksFontEM.pcx"       },
+  { "char_question.xpos",                      "15"                    },
+  { "char_question.ypos",                      "1"                     },
+  { "char_question.frames",                    "1"                     },
+
+  { "char_at",                                 "RocksFontEM.pcx"       },
+  { "char_at.xpos",                            "0"                     },
+  { "char_at.ypos",                            "2"                     },
+  { "char_at.frames",                          "1"                     },
+
+  { "char_a",                                  "RocksFontEM.pcx"       },
+  { "char_a.xpos",                             "1"                     },
+  { "char_a.ypos",                             "2"                     },
+  { "char_a.frames",                           "1"                     },
+
+  { "char_b",                                  "RocksFontEM.pcx"       },
+  { "char_b.xpos",                             "2"                     },
+  { "char_b.ypos",                             "2"                     },
+  { "char_b.frames",                           "1"                     },
+
+  { "char_c",                                  "RocksFontEM.pcx"       },
+  { "char_c.xpos",                             "3"                     },
+  { "char_c.ypos",                             "2"                     },
+  { "char_c.frames",                           "1"                     },
+
+  { "char_d",                                  "RocksFontEM.pcx"       },
+  { "char_d.xpos",                             "4"                     },
+  { "char_d.ypos",                             "2"                     },
+  { "char_d.frames",                           "1"                     },
+
+  { "char_e",                                  "RocksFontEM.pcx"       },
+  { "char_e.xpos",                             "5"                     },
+  { "char_e.ypos",                             "2"                     },
+  { "char_e.frames",                           "1"                     },
+
+  { "char_f",                                  "RocksFontEM.pcx"       },
+  { "char_f.xpos",                             "6"                     },
+  { "char_f.ypos",                             "2"                     },
+  { "char_f.frames",                           "1"                     },
+
+  { "char_g",                                  "RocksFontEM.pcx"       },
+  { "char_g.xpos",                             "7"                     },
+  { "char_g.ypos",                             "2"                     },
+  { "char_g.frames",                           "1"                     },
+
+  { "char_h",                                  "RocksFontEM.pcx"       },
+  { "char_h.xpos",                             "8"                     },
+  { "char_h.ypos",                             "2"                     },
+  { "char_h.frames",                           "1"                     },
+
+  { "char_i",                                  "RocksFontEM.pcx"       },
+  { "char_i.xpos",                             "9"                     },
+  { "char_i.ypos",                             "2"                     },
+  { "char_i.frames",                           "1"                     },
+
+  { "char_j",                                  "RocksFontEM.pcx"       },
+  { "char_j.xpos",                             "10"                    },
+  { "char_j.ypos",                             "2"                     },
+  { "char_j.frames",                           "1"                     },
+
+  { "char_k",                                  "RocksFontEM.pcx"       },
+  { "char_k.xpos",                             "11"                    },
+  { "char_k.ypos",                             "2"                     },
+  { "char_k.frames",                           "1"                     },
+
+  { "char_l",                                  "RocksFontEM.pcx"       },
+  { "char_l.xpos",                             "12"                    },
+  { "char_l.ypos",                             "2"                     },
+  { "char_l.frames",                           "1"                     },
+
+  { "char_m",                                  "RocksFontEM.pcx"       },
+  { "char_m.xpos",                             "13"                    },
+  { "char_m.ypos",                             "2"                     },
+  { "char_m.frames",                           "1"                     },
+
+  { "char_n",                                  "RocksFontEM.pcx"       },
+  { "char_n.xpos",                             "14"                    },
+  { "char_n.ypos",                             "2"                     },
+  { "char_n.frames",                           "1"                     },
+
+  { "char_o",                                  "RocksFontEM.pcx"       },
+  { "char_o.xpos",                             "15"                    },
+  { "char_o.ypos",                             "2"                     },
+  { "char_o.frames",                           "1"                     },
+
+  { "char_p",                                  "RocksFontEM.pcx"       },
+  { "char_p.xpos",                             "0"                     },
+  { "char_p.ypos",                             "3"                     },
+  { "char_p.frames",                           "1"                     },
+
+  { "char_q",                                  "RocksFontEM.pcx"       },
+  { "char_q.xpos",                             "1"                     },
+  { "char_q.ypos",                             "3"                     },
+  { "char_q.frames",                           "1"                     },
+
+  { "char_r",                                  "RocksFontEM.pcx"       },
+  { "char_r.xpos",                             "2"                     },
+  { "char_r.ypos",                             "3"                     },
+  { "char_r.frames",                           "1"                     },
+
+  { "char_s",                                  "RocksFontEM.pcx"       },
+  { "char_s.xpos",                             "3"                     },
+  { "char_s.ypos",                             "3"                     },
+  { "char_s.frames",                           "1"                     },
+
+  { "char_t",                                  "RocksFontEM.pcx"       },
+  { "char_t.xpos",                             "4"                     },
+  { "char_t.ypos",                             "3"                     },
+  { "char_t.frames",                           "1"                     },
+
+  { "char_u",                                  "RocksFontEM.pcx"       },
+  { "char_u.xpos",                             "5"                     },
+  { "char_u.ypos",                             "3"                     },
+  { "char_u.frames",                           "1"                     },
+
+  { "char_v",                                  "RocksFontEM.pcx"       },
+  { "char_v.xpos",                             "6"                     },
+  { "char_v.ypos",                             "3"                     },
+  { "char_v.frames",                           "1"                     },
+
+  { "char_w",                                  "RocksFontEM.pcx"       },
+  { "char_w.xpos",                             "7"                     },
+  { "char_w.ypos",                             "3"                     },
+  { "char_w.frames",                           "1"                     },
+
+  { "char_x",                                  "RocksFontEM.pcx"       },
+  { "char_x.xpos",                             "8"                     },
+  { "char_x.ypos",                             "3"                     },
+  { "char_x.frames",                           "1"                     },
+
+  { "char_y",                                  "RocksFontEM.pcx"       },
+  { "char_y.xpos",                             "9"                     },
+  { "char_y.ypos",                             "3"                     },
+  { "char_y.frames",                           "1"                     },
+
+  { "char_z",                                  "RocksFontEM.pcx"       },
+  { "char_z.xpos",                             "10"                    },
+  { "char_z.ypos",                             "3"                     },
+  { "char_z.frames",                           "1"                     },
+
+  { "char_ae",                                 "RocksFontEM.pcx"       },
+  { "char_ae.xpos",                            "11"                    },
+  { "char_ae.ypos",                            "3"                     },
+  { "char_ae.frames",                          "1"                     },
+
+  { "char_oe",                                 "RocksFontEM.pcx"       },
+  { "char_oe.xpos",                            "12"                    },
+  { "char_oe.ypos",                            "3"                     },
+  { "char_oe.frames",                          "1"                     },
+
+  { "char_ue",                                 "RocksFontEM.pcx"       },
+  { "char_ue.xpos",                            "13"                    },
+  { "char_ue.ypos",                            "3"                     },
+  { "char_ue.frames",                          "1"                     },
+
+  { "char_copyright",                          "RocksFontEM.pcx"       },
+  { "char_copyright.xpos",                     "14"                    },
+  { "char_copyright.ypos",                     "3"                     },
+  { "char_copyright.frames",                   "1"                     },
+
+  { "char_underscore",                         "RocksFontEM.pcx"       },
+  { "char_underscore.xpos",                    "15"                    },
+  { "char_underscore.ypos",                    "3"                     },
+  { "char_underscore.frames",                  "1"                     },
+
+  { "char_empty",                              "RocksFontEM.pcx"       },
+  { "char_empty.xpos",                         "16"                    },
+  { "char_empty.ypos",                         "0"                     },
+  { "char_empty.frames",                       "1"                     },
+
+  { "char_degree",                             "RocksFontEM.pcx"       },
+  { "char_degree.xpos",                                "16"                    },
+  { "char_degree.ypos",                                "1"                     },
+  { "char_degree.frames",                      "1"                     },
+
+  { "char_tm",                                 "RocksFontEM.pcx"       },
+  { "char_tm.xpos",                            "16"                    },
+  { "char_tm.ypos",                            "2"                     },
+  { "char_tm.frames",                          "1"                     },
+
+  { "char_cursor",                             "RocksFontEM.pcx"       },
+  { "char_cursor.xpos",                                "16"                    },
+  { "char_cursor.ypos",                                "3"                     },
+  { "char_cursor.frames",                      "1"                     },
+
+
+#endif /* CONF_CHR_C */
index de7c8a11bb34b0a1172bfae4a3c02f471f17045a..f6b4874bf1ef93944ccb9978af23f3e3f24d77ef 100644 (file)
@@ -1420,6 +1420,10 @@ element_to_graphic[] =
     EL_WALL_BD_DIAMOND,                                -1, -1,
     IMG_WALL_BD_DIAMOND
   },
+  {
+    EL_WALL_GROWING,                           -1, -1,
+    IMG_WALL_GROWING
+  },
   {
     EL_WALL_GROWING_XY,                                -1, -1,
     IMG_WALL_GROWING_XY
@@ -1492,6 +1496,10 @@ element_to_graphic[] =
     EL_DYNABOMB_XL,                            -1, -1,
     IMG_DYNABOMB_XL
   },
+  {
+    EL_PIG,                                    -1, -1,
+    IMG_PIG
+  },
   {
     EL_PIG,                                    MV_DOWN, -1,
     IMG_PIG_DOWN
@@ -1540,6 +1548,10 @@ element_to_graphic[] =
     EL_PIG,                                    MV_RIGHT, GFX_ACTION_EATING,
     IMG_PIG_RIGHT_EATING
   },
+  {
+    EL_DRAGON,                                 -1, -1,
+    IMG_DRAGON
+  },
   {
     EL_DRAGON,                                 MV_DOWN, -1,
     IMG_DRAGON_DOWN
@@ -1588,6 +1600,10 @@ element_to_graphic[] =
     EL_DRAGON,                                 MV_RIGHT, GFX_ACTION_ATTACKING,
     IMG_DRAGON_RIGHT_ATTACKING
   },
+  {
+    EL_MOLE,                                   -1, -1,
+    IMG_MOLE
+  },
   {
     EL_MOLE_DOWN,                              -1, -1,
     IMG_MOLE_DOWN
@@ -1684,6 +1700,10 @@ element_to_graphic[] =
     EL_MOLE,                                   MV_RIGHT, GFX_ACTION_DIGGING,
     IMG_MOLE_RIGHT_DIGGING
   },
+  {
+    EL_PENGUIN,                                        -1, -1,
+    IMG_PENGUIN
+  },
   {
     EL_PENGUIN,                                        MV_DOWN, -1,
     IMG_PENGUIN_DOWN
@@ -2148,10 +2168,6 @@ element_to_graphic[] =
     EL_ARROW_RED_DOWN,                         -1, -1,
     IMG_ARROW_RED_DOWN
   },
-  {
-    EL_CHAR_QUESTION,                          -1, -1,
-    IMG_CHAR_QUESTION
-  },
   {
     EL_DOOR_WHITE,                             -1, -1,
     IMG_CHAR_QUESTION
@@ -2234,4 +2250,4 @@ element_to_graphic[] =
   },
 };
 
-#endif /* GFX_LIST_H */
+#endif /* CONF_E2G_C */
index 82a4878ac1f7bc1a8c7f227fbfae0cded041ccde..ed022516e42b9096fccfbaab3f72c8cea3510696 100644 (file)
 #define IMG_WALL_EMERALD_RED                   327
 #define IMG_WALL_EMERALD_PURPLE                        328
 #define IMG_WALL_BD_DIAMOND                    329
-#define IMG_WALL_GROWING_XY                    330
-#define IMG_WALL_GROWING_X                     331
-#define IMG_WALL_GROWING_Y                     332
-#define IMG_WALL_GROWING_ACTIVE_LEFT           333
-#define IMG_WALL_GROWING_ACTIVE_RIGHT          334
-#define IMG_WALL_GROWING_ACTIVE_UP             335
-#define IMG_WALL_GROWING_ACTIVE_DOWN           336
-#define IMG_BLACK_ORB                          337
-#define IMG_SPEED_PILL                         338
-#define IMG_DARK_YAMYAM                                339
-#define IMG_DYNABOMB_ACTIVE                    340
-#define IMG_DYNABOMB_PLAYER1_ACTIVE            341
-#define IMG_DYNABOMB_PLAYER2_ACTIVE            342
-#define IMG_DYNABOMB_PLAYER3_ACTIVE            343
-#define IMG_DYNABOMB_PLAYER4_ACTIVE            344
-#define IMG_DYNABOMB_NR                                345
-#define IMG_DYNABOMB_SZ                                346
-#define IMG_DYNABOMB_XL                                347
-#define IMG_PIG_DOWN                           348
-#define IMG_PIG_DOWN_MOVING                    349
-#define IMG_PIG_DOWN_EATING                    350
-#define IMG_PIG_UP                             351
-#define IMG_PIG_UP_MOVING                      352
-#define IMG_PIG_UP_EATING                      353
-#define IMG_PIG_LEFT                           354
-#define IMG_PIG_LEFT_MOVING                    355
-#define IMG_PIG_LEFT_EATING                    356
-#define IMG_PIG_RIGHT                          357
-#define IMG_PIG_RIGHT_MOVING                   358
-#define IMG_PIG_RIGHT_EATING                   359
-#define IMG_DRAGON_DOWN                                360
-#define IMG_DRAGON_DOWN_MOVING                 361
-#define IMG_DRAGON_DOWN_ATTACKING              362
-#define IMG_DRAGON_UP                          363
-#define IMG_DRAGON_UP_MOVING                   364
-#define IMG_DRAGON_UP_ATTACKING                        365
-#define IMG_DRAGON_LEFT                                366
-#define IMG_DRAGON_LEFT_MOVING                 367
-#define IMG_DRAGON_LEFT_ATTACKING              368
-#define IMG_DRAGON_RIGHT                       369
-#define IMG_DRAGON_RIGHT_MOVING                        370
-#define IMG_DRAGON_RIGHT_ATTACKING             371
-#define IMG_MOLE_DOWN                          372
-#define IMG_MOLE_DOWN_MOVING                   373
-#define IMG_MOLE_DOWN_DIGGING                  374
-#define IMG_MOLE_UP                            375
-#define IMG_MOLE_UP_MOVING                     376
-#define IMG_MOLE_UP_DIGGING                    377
-#define IMG_MOLE_LEFT                          378
-#define IMG_MOLE_LEFT_MOVING                   379
-#define IMG_MOLE_LEFT_DIGGING                  380
-#define IMG_MOLE_RIGHT                         381
-#define IMG_MOLE_RIGHT_MOVING                  382
-#define IMG_MOLE_RIGHT_DIGGING                 383
-#define IMG_PENGUIN_DOWN                       384
-#define IMG_PENGUIN_DOWN_MOVING                        385
-#define IMG_PENGUIN_UP                         386
-#define IMG_PENGUIN_UP_MOVING                  387
-#define IMG_PENGUIN_LEFT                       388
-#define IMG_PENGUIN_LEFT_MOVING                        389
-#define IMG_PENGUIN_RIGHT                      390
-#define IMG_PENGUIN_RIGHT_MOVING               391
-#define IMG_SATELLITE                          392
-#define IMG_SATELLITE_MOVING                   393
-#define IMG_FLAMES_LEFT1                       394
-#define IMG_FLAMES_LEFT2                       395
-#define IMG_FLAMES_LEFT3                       396
-#define IMG_FLAMES_RIGHT1                      397
-#define IMG_FLAMES_RIGHT2                      398
-#define IMG_FLAMES_RIGHT3                      399
-#define IMG_FLAMES_UP1                         400
-#define IMG_FLAMES_UP2                         401
-#define IMG_FLAMES_UP3                         402
-#define IMG_FLAMES_DOWN1                       403
-#define IMG_FLAMES_DOWN2                       404
-#define IMG_FLAMES_DOWN3                       405
-#define IMG_STONEBLOCK                         406
-#define IMG_PLAYER1                            407
-#define IMG_PLAYER1_DOWN                       408
-#define IMG_PLAYER1_DOWN_MOVING                        409
-#define IMG_PLAYER1_DOWN_DIGGING               410
-#define IMG_PLAYER1_DOWN_PUSHING               411
-#define IMG_PLAYER1_DOWN_SNAPPING              412
-#define IMG_PLAYER1_UP                         413
-#define IMG_PLAYER1_UP_MOVING                  414
-#define IMG_PLAYER1_UP_DIGGING                 415
-#define IMG_PLAYER1_UP_PUSHING                 416
-#define IMG_PLAYER1_UP_SNAPPING                        417
-#define IMG_PLAYER1_LEFT                       418
-#define IMG_PLAYER1_LEFT_MOVING                        419
-#define IMG_PLAYER1_LEFT_DIGGING               420
-#define IMG_PLAYER1_LEFT_PUSHING               421
-#define IMG_PLAYER1_LEFT_SNAPPING              422
-#define IMG_PLAYER1_RIGHT                      423
-#define IMG_PLAYER1_RIGHT_MOVING               424
-#define IMG_PLAYER1_RIGHT_DIGGING              425
-#define IMG_PLAYER1_RIGHT_PUSHING              426
-#define IMG_PLAYER1_RIGHT_SNAPPING             427
-#define IMG_PLAYER2                            428
-#define IMG_PLAYER2_DOWN                       429
-#define IMG_PLAYER2_DOWN_MOVING                        430
-#define IMG_PLAYER2_DOWN_DIGGING               431
-#define IMG_PLAYER2_DOWN_PUSHING               432
-#define IMG_PLAYER2_DOWN_SNAPPING              433
-#define IMG_PLAYER2_UP                         434
-#define IMG_PLAYER2_UP_MOVING                  435
-#define IMG_PLAYER2_UP_DIGGING                 436
-#define IMG_PLAYER2_UP_PUSHING                 437
-#define IMG_PLAYER2_UP_SNAPPING                        438
-#define IMG_PLAYER2_LEFT                       439
-#define IMG_PLAYER2_LEFT_MOVING                        440
-#define IMG_PLAYER2_LEFT_DIGGING               441
-#define IMG_PLAYER2_LEFT_PUSHING               442
-#define IMG_PLAYER2_LEFT_SNAPPING              443
-#define IMG_PLAYER2_RIGHT                      444
-#define IMG_PLAYER2_RIGHT_MOVING               445
-#define IMG_PLAYER2_RIGHT_DIGGING              446
-#define IMG_PLAYER2_RIGHT_PUSHING              447
-#define IMG_PLAYER2_RIGHT_SNAPPING             448
-#define IMG_PLAYER3                            449
-#define IMG_PLAYER3_DOWN                       450
-#define IMG_PLAYER3_DOWN_MOVING                        451
-#define IMG_PLAYER3_DOWN_DIGGING               452
-#define IMG_PLAYER3_DOWN_PUSHING               453
-#define IMG_PLAYER3_DOWN_SNAPPING              454
-#define IMG_PLAYER3_UP                         455
-#define IMG_PLAYER3_UP_MOVING                  456
-#define IMG_PLAYER3_UP_DIGGING                 457
-#define IMG_PLAYER3_UP_PUSHING                 458
-#define IMG_PLAYER3_UP_SNAPPING                        459
-#define IMG_PLAYER3_LEFT                       460
-#define IMG_PLAYER3_LEFT_MOVING                        461
-#define IMG_PLAYER3_LEFT_DIGGING               462
-#define IMG_PLAYER3_LEFT_PUSHING               463
-#define IMG_PLAYER3_LEFT_SNAPPING              464
-#define IMG_PLAYER3_RIGHT                      465
-#define IMG_PLAYER3_RIGHT_MOVING               466
-#define IMG_PLAYER3_RIGHT_DIGGING              467
-#define IMG_PLAYER3_RIGHT_PUSHING              468
-#define IMG_PLAYER3_RIGHT_SNAPPING             469
-#define IMG_PLAYER4                            470
-#define IMG_PLAYER4_DOWN                       471
-#define IMG_PLAYER4_DOWN_MOVING                        472
-#define IMG_PLAYER4_DOWN_DIGGING               473
-#define IMG_PLAYER4_DOWN_PUSHING               474
-#define IMG_PLAYER4_DOWN_SNAPPING              475
-#define IMG_PLAYER4_UP                         476
-#define IMG_PLAYER4_UP_MOVING                  477
-#define IMG_PLAYER4_UP_DIGGING                 478
-#define IMG_PLAYER4_UP_PUSHING                 479
-#define IMG_PLAYER4_UP_SNAPPING                        480
-#define IMG_PLAYER4_LEFT                       481
-#define IMG_PLAYER4_LEFT_MOVING                        482
-#define IMG_PLAYER4_LEFT_DIGGING               483
-#define IMG_PLAYER4_LEFT_PUSHING               484
-#define IMG_PLAYER4_LEFT_SNAPPING              485
-#define IMG_PLAYER4_RIGHT                      486
-#define IMG_PLAYER4_RIGHT_MOVING               487
-#define IMG_PLAYER4_RIGHT_DIGGING              488
-#define IMG_PLAYER4_RIGHT_PUSHING              489
-#define IMG_PLAYER4_RIGHT_SNAPPING             490
-#define IMG_EXPLOSION                          491
-#define IMG_TWINKLE_BLUE                       492
-#define IMG_TWINKLE_WHITE                      493
-#define IMG_STEELWALL_TOPLEFT                  494
-#define IMG_STEELWALL_TOPRIGHT                 495
-#define IMG_STEELWALL_BOTTOMLEFT               496
-#define IMG_STEELWALL_BOTTOMRIGHT              497
-#define IMG_STEELWALL_HORIZONTAL               498
-#define IMG_STEELWALL_VERTICAL                 499
-#define IMG_INVISIBLE_STEELWALL_TOPLEFT                500
-#define IMG_INVISIBLE_STEELWALL_TOPRIGHT       501
-#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT     502
-#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT    503
-#define IMG_INVISIBLE_STEELWALL_HORIZONTAL     504
-#define IMG_INVISIBLE_STEELWALL_VERTICAL       505
-#define IMG_ARROW_BLUE_LEFT                    506
-#define IMG_ARROW_BLUE_RIGHT                   507
-#define IMG_ARROW_BLUE_UP                      508
-#define IMG_ARROW_BLUE_DOWN                    509
-#define IMG_ARROW_RED_LEFT                     510
-#define IMG_ARROW_RED_RIGHT                    511
-#define IMG_ARROW_RED_UP                       512
-#define IMG_ARROW_RED_DOWN                     513
-#define IMG_SCROLLBAR_BLUE                     514
-#define IMG_SCROLLBAR_RED                      515
-#define IMG_SCROLLBAR_GREEN                    516
-#define IMG_SCROLLBAR_YELLOW                   517
-#define IMG_CHAR_QUESTION                      518
+#define IMG_WALL_GROWING                       330
+#define IMG_WALL_GROWING_XY                    331
+#define IMG_WALL_GROWING_X                     332
+#define IMG_WALL_GROWING_Y                     333
+#define IMG_WALL_GROWING_ACTIVE_LEFT           334
+#define IMG_WALL_GROWING_ACTIVE_RIGHT          335
+#define IMG_WALL_GROWING_ACTIVE_UP             336
+#define IMG_WALL_GROWING_ACTIVE_DOWN           337
+#define IMG_BLACK_ORB                          338
+#define IMG_SPEED_PILL                         339
+#define IMG_DARK_YAMYAM                                340
+#define IMG_DYNABOMB_ACTIVE                    341
+#define IMG_DYNABOMB_PLAYER1_ACTIVE            342
+#define IMG_DYNABOMB_PLAYER2_ACTIVE            343
+#define IMG_DYNABOMB_PLAYER3_ACTIVE            344
+#define IMG_DYNABOMB_PLAYER4_ACTIVE            345
+#define IMG_DYNABOMB_NR                                346
+#define IMG_DYNABOMB_SZ                                347
+#define IMG_DYNABOMB_XL                                348
+#define IMG_PIG                                        349
+#define IMG_PIG_DOWN                           350
+#define IMG_PIG_DOWN_MOVING                    351
+#define IMG_PIG_DOWN_EATING                    352
+#define IMG_PIG_UP                             353
+#define IMG_PIG_UP_MOVING                      354
+#define IMG_PIG_UP_EATING                      355
+#define IMG_PIG_LEFT                           356
+#define IMG_PIG_LEFT_MOVING                    357
+#define IMG_PIG_LEFT_EATING                    358
+#define IMG_PIG_RIGHT                          359
+#define IMG_PIG_RIGHT_MOVING                   360
+#define IMG_PIG_RIGHT_EATING                   361
+#define IMG_DRAGON                             362
+#define IMG_DRAGON_DOWN                                363
+#define IMG_DRAGON_DOWN_MOVING                 364
+#define IMG_DRAGON_DOWN_ATTACKING              365
+#define IMG_DRAGON_UP                          366
+#define IMG_DRAGON_UP_MOVING                   367
+#define IMG_DRAGON_UP_ATTACKING                        368
+#define IMG_DRAGON_LEFT                                369
+#define IMG_DRAGON_LEFT_MOVING                 370
+#define IMG_DRAGON_LEFT_ATTACKING              371
+#define IMG_DRAGON_RIGHT                       372
+#define IMG_DRAGON_RIGHT_MOVING                        373
+#define IMG_DRAGON_RIGHT_ATTACKING             374
+#define IMG_MOLE                               375
+#define IMG_MOLE_DOWN                          376
+#define IMG_MOLE_DOWN_MOVING                   377
+#define IMG_MOLE_DOWN_DIGGING                  378
+#define IMG_MOLE_UP                            379
+#define IMG_MOLE_UP_MOVING                     380
+#define IMG_MOLE_UP_DIGGING                    381
+#define IMG_MOLE_LEFT                          382
+#define IMG_MOLE_LEFT_MOVING                   383
+#define IMG_MOLE_LEFT_DIGGING                  384
+#define IMG_MOLE_RIGHT                         385
+#define IMG_MOLE_RIGHT_MOVING                  386
+#define IMG_MOLE_RIGHT_DIGGING                 387
+#define IMG_PENGUIN                            388
+#define IMG_PENGUIN_DOWN                       389
+#define IMG_PENGUIN_DOWN_MOVING                        390
+#define IMG_PENGUIN_UP                         391
+#define IMG_PENGUIN_UP_MOVING                  392
+#define IMG_PENGUIN_LEFT                       393
+#define IMG_PENGUIN_LEFT_MOVING                        394
+#define IMG_PENGUIN_RIGHT                      395
+#define IMG_PENGUIN_RIGHT_MOVING               396
+#define IMG_SATELLITE                          397
+#define IMG_SATELLITE_MOVING                   398
+#define IMG_FLAMES_LEFT1                       399
+#define IMG_FLAMES_LEFT2                       400
+#define IMG_FLAMES_LEFT3                       401
+#define IMG_FLAMES_RIGHT1                      402
+#define IMG_FLAMES_RIGHT2                      403
+#define IMG_FLAMES_RIGHT3                      404
+#define IMG_FLAMES_UP1                         405
+#define IMG_FLAMES_UP2                         406
+#define IMG_FLAMES_UP3                         407
+#define IMG_FLAMES_DOWN1                       408
+#define IMG_FLAMES_DOWN2                       409
+#define IMG_FLAMES_DOWN3                       410
+#define IMG_STONEBLOCK                         411
+#define IMG_PLAYER1                            412
+#define IMG_PLAYER1_DOWN                       413
+#define IMG_PLAYER1_DOWN_MOVING                        414
+#define IMG_PLAYER1_DOWN_DIGGING               415
+#define IMG_PLAYER1_DOWN_PUSHING               416
+#define IMG_PLAYER1_DOWN_SNAPPING              417
+#define IMG_PLAYER1_UP                         418
+#define IMG_PLAYER1_UP_MOVING                  419
+#define IMG_PLAYER1_UP_DIGGING                 420
+#define IMG_PLAYER1_UP_PUSHING                 421
+#define IMG_PLAYER1_UP_SNAPPING                        422
+#define IMG_PLAYER1_LEFT                       423
+#define IMG_PLAYER1_LEFT_MOVING                        424
+#define IMG_PLAYER1_LEFT_DIGGING               425
+#define IMG_PLAYER1_LEFT_PUSHING               426
+#define IMG_PLAYER1_LEFT_SNAPPING              427
+#define IMG_PLAYER1_RIGHT                      428
+#define IMG_PLAYER1_RIGHT_MOVING               429
+#define IMG_PLAYER1_RIGHT_DIGGING              430
+#define IMG_PLAYER1_RIGHT_PUSHING              431
+#define IMG_PLAYER1_RIGHT_SNAPPING             432
+#define IMG_PLAYER2                            433
+#define IMG_PLAYER2_DOWN                       434
+#define IMG_PLAYER2_DOWN_MOVING                        435
+#define IMG_PLAYER2_DOWN_DIGGING               436
+#define IMG_PLAYER2_DOWN_PUSHING               437
+#define IMG_PLAYER2_DOWN_SNAPPING              438
+#define IMG_PLAYER2_UP                         439
+#define IMG_PLAYER2_UP_MOVING                  440
+#define IMG_PLAYER2_UP_DIGGING                 441
+#define IMG_PLAYER2_UP_PUSHING                 442
+#define IMG_PLAYER2_UP_SNAPPING                        443
+#define IMG_PLAYER2_LEFT                       444
+#define IMG_PLAYER2_LEFT_MOVING                        445
+#define IMG_PLAYER2_LEFT_DIGGING               446
+#define IMG_PLAYER2_LEFT_PUSHING               447
+#define IMG_PLAYER2_LEFT_SNAPPING              448
+#define IMG_PLAYER2_RIGHT                      449
+#define IMG_PLAYER2_RIGHT_MOVING               450
+#define IMG_PLAYER2_RIGHT_DIGGING              451
+#define IMG_PLAYER2_RIGHT_PUSHING              452
+#define IMG_PLAYER2_RIGHT_SNAPPING             453
+#define IMG_PLAYER3                            454
+#define IMG_PLAYER3_DOWN                       455
+#define IMG_PLAYER3_DOWN_MOVING                        456
+#define IMG_PLAYER3_DOWN_DIGGING               457
+#define IMG_PLAYER3_DOWN_PUSHING               458
+#define IMG_PLAYER3_DOWN_SNAPPING              459
+#define IMG_PLAYER3_UP                         460
+#define IMG_PLAYER3_UP_MOVING                  461
+#define IMG_PLAYER3_UP_DIGGING                 462
+#define IMG_PLAYER3_UP_PUSHING                 463
+#define IMG_PLAYER3_UP_SNAPPING                        464
+#define IMG_PLAYER3_LEFT                       465
+#define IMG_PLAYER3_LEFT_MOVING                        466
+#define IMG_PLAYER3_LEFT_DIGGING               467
+#define IMG_PLAYER3_LEFT_PUSHING               468
+#define IMG_PLAYER3_LEFT_SNAPPING              469
+#define IMG_PLAYER3_RIGHT                      470
+#define IMG_PLAYER3_RIGHT_MOVING               471
+#define IMG_PLAYER3_RIGHT_DIGGING              472
+#define IMG_PLAYER3_RIGHT_PUSHING              473
+#define IMG_PLAYER3_RIGHT_SNAPPING             474
+#define IMG_PLAYER4                            475
+#define IMG_PLAYER4_DOWN                       476
+#define IMG_PLAYER4_DOWN_MOVING                        477
+#define IMG_PLAYER4_DOWN_DIGGING               478
+#define IMG_PLAYER4_DOWN_PUSHING               479
+#define IMG_PLAYER4_DOWN_SNAPPING              480
+#define IMG_PLAYER4_UP                         481
+#define IMG_PLAYER4_UP_MOVING                  482
+#define IMG_PLAYER4_UP_DIGGING                 483
+#define IMG_PLAYER4_UP_PUSHING                 484
+#define IMG_PLAYER4_UP_SNAPPING                        485
+#define IMG_PLAYER4_LEFT                       486
+#define IMG_PLAYER4_LEFT_MOVING                        487
+#define IMG_PLAYER4_LEFT_DIGGING               488
+#define IMG_PLAYER4_LEFT_PUSHING               489
+#define IMG_PLAYER4_LEFT_SNAPPING              490
+#define IMG_PLAYER4_RIGHT                      491
+#define IMG_PLAYER4_RIGHT_MOVING               492
+#define IMG_PLAYER4_RIGHT_DIGGING              493
+#define IMG_PLAYER4_RIGHT_PUSHING              494
+#define IMG_PLAYER4_RIGHT_SNAPPING             495
+#define IMG_EXPLOSION                          496
+#define IMG_TWINKLE_BLUE                       497
+#define IMG_TWINKLE_WHITE                      498
+#define IMG_STEELWALL_TOPLEFT                  499
+#define IMG_STEELWALL_TOPRIGHT                 500
+#define IMG_STEELWALL_BOTTOMLEFT               501
+#define IMG_STEELWALL_BOTTOMRIGHT              502
+#define IMG_STEELWALL_HORIZONTAL               503
+#define IMG_STEELWALL_VERTICAL                 504
+#define IMG_INVISIBLE_STEELWALL_TOPLEFT                505
+#define IMG_INVISIBLE_STEELWALL_TOPRIGHT       506
+#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT     507
+#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT    508
+#define IMG_INVISIBLE_STEELWALL_HORIZONTAL     509
+#define IMG_INVISIBLE_STEELWALL_VERTICAL       510
+#define IMG_ARROW_BLUE_LEFT                    511
+#define IMG_ARROW_BLUE_RIGHT                   512
+#define IMG_ARROW_BLUE_UP                      513
+#define IMG_ARROW_BLUE_DOWN                    514
+#define IMG_ARROW_RED_LEFT                     515
+#define IMG_ARROW_RED_RIGHT                    516
+#define IMG_ARROW_RED_UP                       517
+#define IMG_ARROW_RED_DOWN                     518
+#define IMG_SCROLLBAR_BLUE                     519
+#define IMG_SCROLLBAR_RED                      520
+#define IMG_SCROLLBAR_GREEN                    521
+#define IMG_SCROLLBAR_YELLOW                   522
+#define IMG_CHAR_SPACE                         523
+#define IMG_CHAR_EXCLAM                                524
+#define IMG_CHAR_QUOTEDBL                      525
+#define IMG_CHAR_NUMBERSIGN                    526
+#define IMG_CHAR_DOLLAR                                527
+#define IMG_CHAR_PROCENT                       528
+#define IMG_CHAR_AMPERSAND                     529
+#define IMG_CHAR_APOSTROPHE                    530
+#define IMG_CHAR_PARENLEFT                     531
+#define IMG_CHAR_PARENRIGHT                    532
+#define IMG_CHAR_ASTERISK                      533
+#define IMG_CHAR_PLUS                          534
+#define IMG_CHAR_COMMA                         535
+#define IMG_CHAR_MINUS                         536
+#define IMG_CHAR_PERIOD                                537
+#define IMG_CHAR_SLASH                         538
+#define IMG_CHAR_0                             539
+#define IMG_CHAR_1                             540
+#define IMG_CHAR_2                             541
+#define IMG_CHAR_3                             542
+#define IMG_CHAR_4                             543
+#define IMG_CHAR_5                             544
+#define IMG_CHAR_6                             545
+#define IMG_CHAR_7                             546
+#define IMG_CHAR_8                             547
+#define IMG_CHAR_9                             548
+#define IMG_CHAR_COLON                         549
+#define IMG_CHAR_SEMICOLON                     550
+#define IMG_CHAR_LESS                          551
+#define IMG_CHAR_EQUAL                         552
+#define IMG_CHAR_GREATER                       553
+#define IMG_CHAR_QUESTION                      554
+#define IMG_CHAR_AT                            555
+#define IMG_CHAR_A                             556
+#define IMG_CHAR_B                             557
+#define IMG_CHAR_C                             558
+#define IMG_CHAR_D                             559
+#define IMG_CHAR_E                             560
+#define IMG_CHAR_F                             561
+#define IMG_CHAR_G                             562
+#define IMG_CHAR_H                             563
+#define IMG_CHAR_I                             564
+#define IMG_CHAR_J                             565
+#define IMG_CHAR_K                             566
+#define IMG_CHAR_L                             567
+#define IMG_CHAR_M                             568
+#define IMG_CHAR_N                             569
+#define IMG_CHAR_O                             570
+#define IMG_CHAR_P                             571
+#define IMG_CHAR_Q                             572
+#define IMG_CHAR_R                             573
+#define IMG_CHAR_S                             574
+#define IMG_CHAR_T                             575
+#define IMG_CHAR_U                             576
+#define IMG_CHAR_V                             577
+#define IMG_CHAR_W                             578
+#define IMG_CHAR_X                             579
+#define IMG_CHAR_Y                             580
+#define IMG_CHAR_Z                             581
+#define IMG_CHAR_AE                            582
+#define IMG_CHAR_OE                            583
+#define IMG_CHAR_UE                            584
+#define IMG_CHAR_COPYRIGHT                     585
+#define IMG_CHAR_UNDERSCORE                    586
+#define IMG_CHAR_EMPTY                         587
+#define IMG_CHAR_DEGREE                                588
+#define IMG_CHAR_TM                            589
+#define IMG_CHAR_CURSOR                                590
 
-#define NUM_IMAGE_FILES                                519
+#define NUM_IMAGE_FILES                                591
 
-#endif /* GFX_DEFS_H */
+#endif /* CONF_GFX_H */
index f2c73dceb2bc910d7c1a5b9d6d41d59538d0ccc9..acd95218c950cfadf540be4b6fca0c5f81b30839 100644 (file)
 
 #define NUM_SOUND_FILES                                172
 
-#endif /* SND_DEFS_H */
+#endif /* CONF_SND_H */
index 641100c5daf209bb0e019c862573471073387b36..12893605bd1791becd62b044a746f53ed7f584cc 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2002-10-05 03:01]"
+#define COMPILE_DATE_STRING "[2002-10-06 04:07]"
index 203149bc4791bfff2bcd5e248d083e032d38d422..b82ede439a61eea86f45182870abb95d7f777524 100644 (file)
@@ -1968,7 +1968,7 @@ static void ToggleBeltSwitch(int x, int y)
   int belt_nr = getBeltNrFromBeltSwitchElement(element);
   int belt_dir_nr = (game.belt_dir_nr[belt_nr] + 1) % 4;
   int belt_dir = belt_move_dir[belt_dir_nr];
-  int xx, yy;
+  int xx, yy, i;
 
   if (!IS_BELT_SWITCH(element))
     return;
@@ -1979,6 +1979,18 @@ static void ToggleBeltSwitch(int x, int y)
   if (belt_dir_nr == 3)
     belt_dir_nr = 1;
 
+  /* set frame order for belt animation graphic according to belt direction */
+  for (i=0; i<3; i++)
+  {
+    int element = belt_base_active_element[belt_nr] + i;
+    int graphic = el2img(element);
+
+    if (belt_dir == MV_LEFT)
+      new_graphic_info[graphic].anim_mode &= ~ANIM_REVERSE;
+    else
+      new_graphic_info[graphic].anim_mode |=  ANIM_REVERSE;
+  }
+
   for (yy=0; yy<lev_fieldy; yy++)
   {
     for (xx=0; xx<lev_fieldx; xx++)
@@ -4409,48 +4421,58 @@ void MauerWaechst(int x, int y)
   int delay = 6;
 
   if (!MovDelay[x][y])         /* next animation frame */
-    MovDelay[x][y] = 3*delay;
+    MovDelay[x][y] = 3 * delay;
 
   if (MovDelay[x][y])          /* wait some time before next frame */
   {
     int phase;
 
     MovDelay[x][y]--;
-    phase = 2-MovDelay[x][y]/delay;
+    phase = 2 - MovDelay[x][y] / delay;
+#if 0
     if (!(MovDelay[x][y]%delay) && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
       DrawGraphic(SCREENX(x), SCREENY(y),
                  (MovDir[x][y] == MV_LEFT  ? GFX_MAUER_LEFT  :
                   MovDir[x][y] == MV_RIGHT ? GFX_MAUER_RIGHT :
                   MovDir[x][y] == MV_UP    ? GFX_MAUER_UP    :
                                              GFX_MAUER_DOWN  ) + phase);
+#else
+    if (IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+    {
+      int graphic = el_dir2img(Feld[x][y], MovDir[x][y]);
+      int frame = getNewGraphicAnimationFrame(graphic, 17 - MovDelay[x][y]);
+
+      DrawNewGraphic(SCREENX(x), SCREENY(y), graphic, frame);
+    }
+#endif
 
     if (!MovDelay[x][y])
     {
       if (MovDir[x][y] == MV_LEFT)
       {
-       if (IN_LEV_FIELD(x-1, y) && IS_MAUER(Feld[x-1][y]))
-         DrawLevelField(x-1, y);
+       if (IN_LEV_FIELD(x - 1, y) && IS_MAUER(Feld[x - 1][y]))
+         DrawNewLevelField(x - 1, y);
       }
       else if (MovDir[x][y] == MV_RIGHT)
       {
-       if (IN_LEV_FIELD(x+1, y) && IS_MAUER(Feld[x+1][y]))
-         DrawLevelField(x+1, y);
+       if (IN_LEV_FIELD(x + 1, y) && IS_MAUER(Feld[x + 1][y]))
+         DrawNewLevelField(x + 1, y);
       }
       else if (MovDir[x][y] == MV_UP)
       {
-       if (IN_LEV_FIELD(x, y-1) && IS_MAUER(Feld[x][y-1]))
-         DrawLevelField(x, y-1);
+       if (IN_LEV_FIELD(x, y - 1) && IS_MAUER(Feld[x][y - 1]))
+         DrawNewLevelField(x, y - 1);
       }
       else
       {
-       if (IN_LEV_FIELD(x, y+1) && IS_MAUER(Feld[x][y+1]))
-         DrawLevelField(x, y+1);
+       if (IN_LEV_FIELD(x, y + 1) && IS_MAUER(Feld[x][y + 1]))
+         DrawNewLevelField(x, y + 1);
       }
 
       Feld[x][y] = Store[x][y];
       Store[x][y] = 0;
       MovDir[x][y] = MV_NO_MOVING;
-      DrawLevelField(x, y);
+      DrawNewLevelField(x, y);
     }
   }
 }
@@ -4491,7 +4513,12 @@ void MauerAbleger(int ax, int ay)
       Store[ax][ay-1] = element;
       MovDir[ax][ay-1] = MV_UP;
       if (IN_SCR_FIELD(SCREENX(ax), SCREENY(ay-1)))
+#if 0
        DrawGraphic(SCREENX(ax), SCREENY(ay-1), GFX_MAUER_UP);
+#else
+       DrawNewGraphic(SCREENX(ax), SCREENY(ay - 1),
+                      IMG_WALL_GROWING_ACTIVE_UP, 0);
+#endif
       new_wall = TRUE;
     }
     if (unten_frei)
@@ -4500,7 +4527,12 @@ void MauerAbleger(int ax, int ay)
       Store[ax][ay+1] = element;
       MovDir[ax][ay+1] = MV_DOWN;
       if (IN_SCR_FIELD(SCREENX(ax), SCREENY(ay+1)))
+#if 0
        DrawGraphic(SCREENX(ax), SCREENY(ay+1), GFX_MAUER_DOWN);
+#else
+       DrawNewGraphic(SCREENX(ax), SCREENY(ay + 1),
+                      IMG_WALL_GROWING_ACTIVE_DOWN, 0);
+#endif
       new_wall = TRUE;
     }
   }
@@ -4514,7 +4546,12 @@ void MauerAbleger(int ax, int ay)
       Store[ax-1][ay] = element;
       MovDir[ax-1][ay] = MV_LEFT;
       if (IN_SCR_FIELD(SCREENX(ax-1), SCREENY(ay)))
+#if 0
        DrawGraphic(SCREENX(ax-1), SCREENY(ay), GFX_MAUER_LEFT);
+#else
+       DrawNewGraphic(SCREENX(ax - 1), SCREENY(ay),
+                      IMG_WALL_GROWING_ACTIVE_LEFT, 0);
+#endif
       new_wall = TRUE;
     }
 
@@ -4524,13 +4561,18 @@ void MauerAbleger(int ax, int ay)
       Store[ax+1][ay] = element;
       MovDir[ax+1][ay] = MV_RIGHT;
       if (IN_SCR_FIELD(SCREENX(ax+1), SCREENY(ay)))
+#if 0
        DrawGraphic(SCREENX(ax+1), SCREENY(ay), GFX_MAUER_RIGHT);
+#else
+       DrawNewGraphic(SCREENX(ax + 1), SCREENY(ay),
+                      IMG_WALL_GROWING_ACTIVE_RIGHT, 0);
+#endif
       new_wall = TRUE;
     }
   }
 
   if (element == EL_WALL_GROWING && (links_frei || rechts_frei))
-    DrawLevelField(ax, ay);
+    DrawNewLevelField(ax, ay);
 
   if (!IN_LEV_FIELD(ax, ay-1) || IS_MAUER(Feld[ax][ay-1]))
     oben_massiv = TRUE;
@@ -4591,7 +4633,7 @@ void CheckForDragon(int x, int y)
        if (IN_LEV_FIELD(xx, yy) && Feld[xx][yy] == EL_FLAMES)
        {
          Feld[xx][yy] = EL_EMPTY;
-         DrawLevelField(xx, yy);
+         DrawNewLevelField(xx, yy);
        }
        else
          break;
@@ -4613,7 +4655,11 @@ static void CheckBuggyBase(int x, int y)
     {
       MovDelay[x][y]--;
       if (MovDelay[x][y] < 5 && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+#if 0
        DrawGraphic(SCREENX(x), SCREENY(y), GFX_SP_BUG_WARNING);
+#else
+        DrawNewGraphic(SCREENX(x), SCREENY(y), IMG_SP_BUGGY_BASE, 0);
+#endif
       if (MovDelay[x][y])
        return;
 
@@ -4640,7 +4686,16 @@ static void CheckBuggyBase(int x, int y)
        };
 
        if (IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+#if 0
          DrawGraphic(SCREENX(x),SCREENY(y), GFX_SP_BUG_ACTIVE + SimpleRND(4));
+#else
+       {
+         int graphic = IMG_SP_BUGGY_BASE_ACTIVE;
+         int frame = getNewGraphicAnimationFrame(graphic, SimpleRND(100));
+
+          DrawNewGraphic(SCREENX(x), SCREENY(y), graphic, frame);
+       }
+#endif
 
        for (i=0; i<4; i++)
        {
@@ -4657,7 +4712,7 @@ static void CheckBuggyBase(int x, int y)
       }
 
       Feld[x][y] = EL_SP_BUGGY_BASE;
-      DrawLevelField(x, y);
+      DrawNewLevelField(x, y);
     }
   }
 }
@@ -4704,7 +4759,15 @@ static void CheckTrap(int x, int y)
 
          if (IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
          {
+#if 0
            DrawGraphic(SCREENX(x),SCREENY(y), GFX_TRAP_INACTIVE + phase - 1);
+#else
+           int graphic = IMG_TRAP_ACTIVE;
+           int frame = getNewGraphicAnimationFrame(graphic,
+                                                   31 - MovDelay[x][y]);
+
+           DrawNewGraphic(SCREENX(x),SCREENY(y), graphic, frame);
+#endif
            ErdreichAnbroeckeln(SCREENX(x), SCREENY(y));
          }
        }
@@ -4713,7 +4776,7 @@ static void CheckTrap(int x, int y)
       }
 
       Feld[x][y] = EL_TRAP;
-      DrawLevelField(x, y);
+      DrawNewLevelField(x, y);
     }
   }
 }
@@ -4725,11 +4788,17 @@ static void DrawBeltAnimation(int x, int y, int element)
 
   if (belt_dir != MV_NO_MOVING)
   {
+#if 0
     int delay = 2;
     int mode = ANIM_LOOP | (belt_dir == MV_LEFT ? 0 : ANIM_REVERSE);
     int graphic = el2gfx(element) + (belt_dir == MV_LEFT ? 0 : 7);
 
     DrawGraphicAnimation(x, y, graphic, 8, delay, mode);
+#else
+    int graphic = el2img(element);
+
+    DrawNewGraphicAnimation(x, y, graphic);
+#endif
 
     if (!(FrameCounter % 2))
       PlaySoundLevel(x, y, SND_CONVEYOR_BELT_ACTIVE);
@@ -5084,10 +5153,19 @@ void GameActions()
     else if (element == EL_TRAP || element == EL_TRAP_ACTIVE)
       CheckTrap(x, y);
     else if (element == EL_SP_TERMINAL)
+#if 0
       DrawGraphicAnimation(x, y, GFX2_SP_TERMINAL, 7, 12, ANIM_LOOP);
+#else
+      DrawNewGraphicAnimation(x, y, IMG_SP_TERMINAL);
+#endif
     else if (element == EL_SP_TERMINAL_ACTIVE)
     {
+#if 0
       DrawGraphicAnimation(x, y, GFX2_SP_TERMINAL_ACTIVE, 7, 4, ANIM_LOOP);
+#else
+      DrawNewGraphicAnimation(x, y, IMG_SP_TERMINAL_ACTIVE);
+#endif
+
 #if 0
       if (!(FrameCounter % 4))
        PlaySoundLevel(x, y, SND_SP_TERMINAL_ACTIVE);
@@ -5104,10 +5182,19 @@ void GameActions()
     else if (element == EL_TIMEGATE_CLOSING)
       CloseTimegate(x, y);
     else if (element == EL_EXTRA_TIME)
+#if 0
       DrawGraphicAnimation(x, y, GFX_EXTRA_TIME, 6, 4, ANIM_LOOP);
+#else
+      DrawNewGraphicAnimation(x, y, IMG_EXTRA_TIME);
+#endif
     else if (element == EL_SHIELD_NORMAL)
     {
+#if 0
       DrawGraphicAnimation(x, y, GFX_SHIELD_PASSIVE, 6, 4, ANIM_LOOP);
+#else
+      DrawNewGraphicAnimation(x, y, IMG_SHIELD_NORMAL);
+#endif
+
 #if 0
       if (!(FrameCounter % 4))
        PlaySoundLevel(x, y, SND_SHIELD_PASSIVE_ACTIVATED);
@@ -5115,7 +5202,12 @@ void GameActions()
     }
     else if (element == EL_SHIELD_DEADLY)
     {
+#if 0
       DrawGraphicAnimation(x, y, GFX_SHIELD_ACTIVE, 6, 4, ANIM_LOOP);
+#else
+      DrawNewGraphicAnimation(x, y, IMG_SHIELD_DEADLY);
+#endif
+
 #if 0
       if (!(FrameCounter % 4))
        PlaySoundLevel(x, y, SND_SHIELD_DEADLY_ACTIVE);
@@ -5237,13 +5329,13 @@ void GameActions()
              element == EL_MAGIC_WALL_FULL)
          {
            Feld[x][y] = EL_MAGIC_WALL_DEAD;
-           DrawLevelField(x, y);
+           DrawNewLevelField(x, y);
          }
          else if (element == EL_BD_MAGIC_WALL_ACTIVE ||
                   element == EL_BD_MAGIC_WALL_FULL)
          {
            Feld[x][y] = EL_BD_MAGIC_WALL_DEAD;
-           DrawLevelField(x, y);
+           DrawNewLevelField(x, y);
          }
        }
 
@@ -5397,13 +5489,14 @@ void ScrollLevel(int dx, int dy)
   {
     x = (dx == 1 ? BX1 : BX2);
     for (y=BY1; y<=BY2; y++)
-      DrawScreenField(x, y);
+      DrawNewScreenField(x, y);
   }
+
   if (dy)
   {
     y = (dy == 1 ? BY1 : BY2);
     for (x=BX1; x<=BX2; x++)
-      DrawScreenField(x, y);
+      DrawNewScreenField(x, y);
   }
 
   redraw_mask |= REDRAW_FIELD;
@@ -5644,7 +5737,7 @@ boolean MoveFigure(struct PlayerInfo *player, int dx, int dy)
     else if (old_jx == jx && old_jy != jy)
       player->MovDir = (old_jy < jy ? MV_DOWN : MV_UP);
 
-    DrawLevelField(jx, jy);    /* for "ErdreichAnbroeckeln()" */
+    DrawNewLevelField(jx, jy); /* for "ErdreichAnbroeckeln()" */
 
     player->last_move_dir = player->MovDir;
     player->is_moving = TRUE;
@@ -6243,7 +6336,7 @@ int DigField(struct PlayerInfo *player,
       Feld[x][y] = EL_ROBOT_WHEEL_ACTIVE;
       ZX = x;
       ZY = y;
-      DrawLevelField(x, y);
+      DrawNewLevelField(x, y);
       PlaySoundLevel(x, y, SND_ROBOT_WHEEL_ACTIVATING);
       return MF_ACTION;
       break;
@@ -6399,7 +6492,7 @@ int DigField(struct PlayerInfo *player,
 
       player->push_delay_value = (element == EL_SPRING ? 0 : 2 + RND(8));
 
-      DrawLevelField(x+dx, y+dy);
+      DrawNewLevelField(x + dx, y + dy);
       PlaySoundLevelElementAction(x, y, element, SND_ACTION_PUSHING);
       break;
 
@@ -6569,7 +6662,7 @@ int DigField(struct PlayerInfo *player,
     case EL_LAMP:
       Feld[x][y] = EL_LAMP_ACTIVE;
       local_player->lights_still_needed--;
-      DrawLevelField(x, y);
+      DrawNewLevelField(x, y);
       PlaySoundLevel(x, y, SND_LAMP_ACTIVATING);
       return MF_ACTION;
       break;
@@ -6578,7 +6671,7 @@ int DigField(struct PlayerInfo *player,
       Feld[x][y] = EL_TIME_ORB_EMPTY;
       TimeLeft += 10;
       DrawText(DX_TIME, DY_TIME, int2str(TimeLeft, 3), FS_SMALL, FC_YELLOW);
-      DrawLevelField(x, y);
+      DrawNewLevelField(x, y);
       PlaySoundStereo(SND_TIME_ORB_FULL_COLLECTING, SOUND_MAX_RIGHT);
       return MF_ACTION;
       break;
@@ -6663,8 +6756,8 @@ int DigField(struct PlayerInfo *player,
 
       player->push_delay_value = (element == EL_BALLOON ? 0 : 2);
 
-      DrawLevelField(x, y);
-      DrawLevelField(x+dx, y+dy);
+      DrawNewLevelField(x, y);
+      DrawNewLevelField(x + dx, y + dy);
 
       if (IS_SB_ELEMENT(element) &&
          local_player->sokobanfields_still_needed == 0 &&
@@ -6722,7 +6815,7 @@ boolean SnapField(struct PlayerInfo *player, int dx, int dy)
     return FALSE;
 
   player->snapped = TRUE;
-  DrawLevelField(x, y);
+  DrawNewLevelField(x, y);
   BackToFront();
 
   return TRUE;
@@ -6754,10 +6847,18 @@ boolean PlaceBomb(struct PlayerInfo *player)
             FS_SMALL, FC_YELLOW);
     if (IN_SCR_FIELD(SCREENX(jx), SCREENY(jy)))
     {
+#if 0
       if (game.emulation == EMU_SUPAPLEX)
        DrawGraphic(SCREENX(jx), SCREENY(jy), GFX_SP_DISK_RED);
       else
        DrawGraphicThruMask(SCREENX(jx), SCREENY(jy), GFX_DYNAMIT);
+#else
+      if (game.emulation == EMU_SUPAPLEX)
+       DrawNewGraphic(SCREENX(jx), SCREENY(jy), IMG_SP_DISK_RED, 0);
+      else
+       DrawNewGraphicThruMask(SCREENX(jx), SCREENY(jy),
+                              IMG_DYNAMITE_ACTIVE, 0);
+#endif
     }
 
     PlaySoundLevel(jx, jy, SND_DYNAMITE_DROPPING);
@@ -6769,7 +6870,12 @@ boolean PlaceBomb(struct PlayerInfo *player)
     MovDelay[jx][jy] = 96;
     player->dynabombs_left--;
     if (IN_SCR_FIELD(SCREENX(jx), SCREENY(jy)))
+#if 0
       DrawGraphicThruMask(SCREENX(jx), SCREENY(jy), GFX_DYNABOMB);
+#else
+      DrawNewGraphicThruMask(SCREENX(jx), SCREENY(jy),
+                            el2img(Feld[jx][jy]), 0);
+#endif
 
     PlaySoundLevel(jx, jy, SND_DYNABOMB_DROPPING);
   }
index 66ce6f42545ebc318dfb113636a7f73a27322144..32b2cb8e3d6504c2f426e26ba65b554695b3c855 100644 (file)
@@ -937,10 +937,17 @@ void InitElementInfo()
     }
   }
 
+#if 0
   for (i=EL_CHAR_START; i<=EL_CHAR_END; i++)
     element_info[i].graphic[GFX_ACTION_DEFAULT] =
       GFX_CHAR_START + (i - EL_CHAR_START);
+#else
+  for (i=EL_CHAR_START; i<=EL_CHAR_END; i++)
+    element_info[i].graphic[GFX_ACTION_DEFAULT] =
+      IMG_CHAR_START + (i - EL_CHAR_START);
+#endif
 
+#if 0
   for (i=EL_SP_START; i<=EL_SP_END; i++)
   {
     int nr_element = i - EL_SP_START;
@@ -952,6 +959,7 @@ void InitElementInfo()
     element_info[i].graphic[GFX_ACTION_DEFAULT] =
       GFX_START_ROCKSSP + nr_graphic;
   }
+#endif
 
 #if 0
   /* this overrides some of the above default settings (GFX_SP_ZONK etc.) */
@@ -1017,7 +1025,7 @@ void InitElementInfo()
     int default_action_direction_graphic[NUM_MV_DIRECTIONS];
 
     if (default_action_graphic == -1)
-      default_action_graphic = EL_CHAR_QUESTION;
+      default_action_graphic = IMG_CHAR_QUESTION;
 
     for(dir=0; dir<NUM_MV_DIRECTIONS; dir++)
     {
index ccd297a68af2450981075e97d86d70f47fff60a2..23660fbd5f98dc942c7d28d4fb1bb8dd66252991 100644 (file)
@@ -601,10 +601,12 @@ struct ConfigInfo image_config[] =
   { "sp_terminal.xpos",                                "8"                     },
   { "sp_terminal.ypos",                                "11"                    },
   { "sp_terminal.frames",                      "7"                     },
+  { "sp_terminal.delay",                       "12"                    },
   { "sp_terminal.active",                      "RocksSP.pcx"           },
   { "sp_terminal.active.xpos",                 "8"                     },
   { "sp_terminal.active.ypos",                 "12"                    },
   { "sp_terminal.active.frames",               "7"                     },
+  { "sp_terminal.active.delay",                        "4"                     },
 
   { "sp_buggy_base",                           "RocksSP.pcx"           },
   { "sp_buggy_base.xpos",                      "1"                     },
@@ -1215,6 +1217,7 @@ struct ConfigInfo image_config[] =
   { "conveyor_belt1_middle.active.xpos",       "0"                     },
   { "conveyor_belt1_middle.active.ypos",       "0"                     },
   { "conveyor_belt1_middle.active.frames",     "8"                     },
+  { "conveyor_belt1_middle.active.delay",      "2"                     },
   { "conveyor_belt1_left",                     "RocksDC.pcx"           },
   { "conveyor_belt1_left.xpos",                        "0"                     },
   { "conveyor_belt1_left.ypos",                        "1"                     },
@@ -1223,6 +1226,7 @@ struct ConfigInfo image_config[] =
   { "conveyor_belt1_left.active.xpos",         "0"                     },
   { "conveyor_belt1_left.active.ypos",         "1"                     },
   { "conveyor_belt1_left.active.frames",       "8"                     },
+  { "conveyor_belt1_left.active.delay",                "2"                     },
   { "conveyor_belt1_right",                    "RocksDC.pcx"           },
   { "conveyor_belt1_right.xpos",               "0"                     },
   { "conveyor_belt1_right.ypos",               "2"                     },
@@ -1231,6 +1235,7 @@ struct ConfigInfo image_config[] =
   { "conveyor_belt1_right.active.xpos",                "0"                     },
   { "conveyor_belt1_right.active.ypos",                "2"                     },
   { "conveyor_belt1_right.active.frames",      "8"                     },
+  { "conveyor_belt1_right.active.delay",       "2"                     },
   { "conveyor_belt1_switch_left",              "RocksDC.pcx"           },
   { "conveyor_belt1_switch_left.xpos",         "0"                     },
   { "conveyor_belt1_switch_left.ypos",         "12"                    },
@@ -1252,6 +1257,7 @@ struct ConfigInfo image_config[] =
   { "conveyor_belt2_middle.active.xpos",       "0"                     },
   { "conveyor_belt2_middle.active.ypos",       "3"                     },
   { "conveyor_belt2_middle.active.frames",     "8"                     },
+  { "conveyor_belt2_middle.active.delay",      "2"                     },
   { "conveyor_belt2_left",                     "RocksDC.pcx"           },
   { "conveyor_belt2_left.xpos",                        "0"                     },
   { "conveyor_belt2_left.ypos",                        "4"                     },
@@ -1260,6 +1266,7 @@ struct ConfigInfo image_config[] =
   { "conveyor_belt2_left.active.xpos",         "0"                     },
   { "conveyor_belt2_left.active.ypos",         "4"                     },
   { "conveyor_belt2_left.active.frames",       "8"                     },
+  { "conveyor_belt2_left.active.delay",                "2"                     },
   { "conveyor_belt2_right",                    "RocksDC.pcx"           },
   { "conveyor_belt2_right.xpos",               "0"                     },
   { "conveyor_belt2_right.ypos",               "5"                     },
@@ -1268,6 +1275,8 @@ struct ConfigInfo image_config[] =
   { "conveyor_belt2_right.active.xpos",                "0"                     },
   { "conveyor_belt2_right.active.ypos",                "5"                     },
   { "conveyor_belt2_right.active.frames",      "8"                     },
+  { "conveyor_belt2_right.active.delay",       "2"                     },
+  { "conveyor_belt2_right.active.delay",       "2"                     },
   { "conveyor_belt2_switch_left",              "RocksDC.pcx"           },
   { "conveyor_belt2_switch_left.xpos",         "1"                     },
   { "conveyor_belt2_switch_left.ypos",         "12"                    },
@@ -1289,6 +1298,7 @@ struct ConfigInfo image_config[] =
   { "conveyor_belt3_middle.active.xpos",       "0"                     },
   { "conveyor_belt3_middle.active.ypos",       "6"                     },
   { "conveyor_belt3_middle.active.frames",     "8"                     },
+  { "conveyor_belt3_middle.active.delay",      "2"                     },
   { "conveyor_belt3_left",                     "RocksDC.pcx"           },
   { "conveyor_belt3_left.xpos",                        "0"                     },
   { "conveyor_belt3_left.ypos",                        "7"                     },
@@ -1297,6 +1307,7 @@ struct ConfigInfo image_config[] =
   { "conveyor_belt3_left.active.xpos",         "0"                     },
   { "conveyor_belt3_left.active.ypos",         "7"                     },
   { "conveyor_belt3_left.active.frames",       "8"                     },
+  { "conveyor_belt3_left.active.delay",                "2"                     },
   { "conveyor_belt3_right",                    "RocksDC.pcx"           },
   { "conveyor_belt3_right.xpos",               "0"                     },
   { "conveyor_belt3_right.ypos",               "8"                     },
@@ -1305,6 +1316,8 @@ struct ConfigInfo image_config[] =
   { "conveyor_belt3_right.active.xpos",                "0"                     },
   { "conveyor_belt3_right.active.ypos",                "8"                     },
   { "conveyor_belt3_right.active.frames",      "8"                     },
+  { "conveyor_belt3_right.active.delay",       "2"                     },
+  { "conveyor_belt3_right.active.delay",       "2"                     },
   { "conveyor_belt3_switch_left",              "RocksDC.pcx"           },
   { "conveyor_belt3_switch_left.xpos",         "2"                     },
   { "conveyor_belt3_switch_left.ypos",         "12"                    },
@@ -1326,6 +1339,7 @@ struct ConfigInfo image_config[] =
   { "conveyor_belt4_middle.active.xpos",       "0"                     },
   { "conveyor_belt4_middle.active.ypos",       "9"                     },
   { "conveyor_belt4_middle.active.frames",     "8"                     },
+  { "conveyor_belt4_middle.active.delay",      "2"                     },
   { "conveyor_belt4_left",                     "RocksDC.pcx"           },
   { "conveyor_belt4_left.xpos",                        "0"                     },
   { "conveyor_belt4_left.ypos",                        "10"                    },
@@ -1334,6 +1348,7 @@ struct ConfigInfo image_config[] =
   { "conveyor_belt4_left.active.xpos",         "0"                     },
   { "conveyor_belt4_left.active.ypos",         "10"                    },
   { "conveyor_belt4_left.active.frames",       "8"                     },
+  { "conveyor_belt4_left.active.delay",                "2"                     },
   { "conveyor_belt4_right",                    "RocksDC.pcx"           },
   { "conveyor_belt4_right.xpos",               "0"                     },
   { "conveyor_belt4_right.ypos",               "11"                    },
@@ -1342,6 +1357,8 @@ struct ConfigInfo image_config[] =
   { "conveyor_belt4_right.active.xpos",                "0"                     },
   { "conveyor_belt4_right.active.ypos",                "11"                    },
   { "conveyor_belt4_right.active.frames",      "8"                     },
+  { "conveyor_belt4_right.active.delay",       "2"                     },
+  { "conveyor_belt4_right.active.delay",       "2"                     },
   { "conveyor_belt4_switch_left",              "RocksDC.pcx"           },
   { "conveyor_belt4_switch_left.xpos",         "3"                     },
   { "conveyor_belt4_switch_left.ypos",         "12"                    },
@@ -1411,16 +1428,19 @@ struct ConfigInfo image_config[] =
   { "extra_time.xpos",                         "8"                     },
   { "extra_time.ypos",                         "0"                     },
   { "extra_time.frames",                       "6"                     },
+  { "extra_time.delay",                                "4"                     },
 
   { "shield_normal",                           "RocksDC.pcx"           },
   { "shield_normal.xpos",                      "8"                     },
   { "shield_normal.ypos",                      "2"                     },
   { "shield_normal.frames",                    "6"                     },
+  { "shield_normal.delay",                     "4"                     },
 
   { "shield_deadly",                           "RocksDC.pcx"           },
   { "shield_deadly.xpos",                      "8"                     },
   { "shield_deadly.ypos",                      "1"                     },
   { "shield_deadly.frames",                    "6"                     },
+  { "shield_deadly.delay",                     "4"                     },
 
   { "shield_normal.active",                    "RocksHeroes.pcx"       },
   { "shield_normal.active.xpos",               "1"                     },
@@ -1565,6 +1585,8 @@ struct ConfigInfo image_config[] =
   { "trap.active.xpos",                                "4"                     },
   { "trap.active.ypos",                                "0"                     },
   { "trap.active.frames",                      "4"                     },
+  { "trap.active.delay",                       "4"                     },
+  { "trap.active.mode_pingpong2",              "1"                     },
 
   { "dx_supabomb",                             "RocksMore.pcx"         },
   { "dx_supabomb.xpos",                                "7"                     },
@@ -1718,6 +1740,10 @@ struct ConfigInfo image_config[] =
   { "wall_bd_diamond.ypos",                    "8"                     },
   { "wall_bd_diamond.frames",                  "1"                     },
 
+  { "wall_growing",                            "RocksElements.pcx"     },
+  { "wall_growing.xpos",                       "11"                    },
+  { "wall_growing.ypos",                       "10"                    },
+  { "wall_growing.frames",                     "1"                     },
   { "wall_growing_xy",                         "RocksElements.pcx"     },
   { "wall_growing_xy.xpos",                    "4"                     },
   { "wall_growing_xy.ypos",                    "9"                     },
@@ -1735,18 +1761,22 @@ struct ConfigInfo image_config[] =
   { "wall_growing_active_left.xpos",           "8"                     },
   { "wall_growing_active_left.ypos",           "10"                    },
   { "wall_growing_active_left.frames",         "3"                     },
+  { "wall_growing_active_left.delay",          "6"                     },
   { "wall_growing_active_right",               "RocksElements.pcx"     },
   { "wall_growing_active_right.xpos",          "5"                     },
   { "wall_growing_active_right.ypos",          "10"                    },
   { "wall_growing_active_right.frames",                "3"                     },
+  { "wall_growing_active_right.delay",         "6"                     },
   { "wall_growing_active_up",                  "RocksHeroes.pcx"       },
   { "wall_growing_active_up.xpos",             "3"                     },
   { "wall_growing_active_up.ypos",             "12"                    },
   { "wall_growing_active_up.frames",           "3"                     },
+  { "wall_growing_active_up.delay",            "6"                     },
   { "wall_growing_active_down",                        "RocksHeroes.pcx"       },
   { "wall_growing_active_down.xpos",           "0"                     },
   { "wall_growing_active_down.ypos",           "12"                    },
   { "wall_growing_active_down.frames",         "3"                     },
+  { "wall_growing_active_down.delay",          "6"                     },
 
   { "black_orb",                               "RocksElements.pcx"     },
   { "black_orb.xpos",                          "13"                    },
@@ -1807,6 +1837,10 @@ struct ConfigInfo image_config[] =
   { "dynabomb_xl.ypos",                                "9"                     },
   { "dynabomb_xl.frames",                      "1"                     },
 
+  { "pig",                                     "RocksHeroes.pcx"       },
+  { "pig.xpos",                                        "8"                     },
+  { "pig.ypos",                                        "0"                     },
+  { "pig.frames",                              "1"                     },
   { "pig_down",                                        "RocksHeroes.pcx"       },
   { "pig_down.xpos",                           "8"                     },
   { "pig_down.ypos",                           "0"                     },
@@ -1864,6 +1898,10 @@ struct ConfigInfo image_config[] =
   { "pig_right.eating.frames",                 "4"                     },
   { "pig_right.eating.delay",                  "2"                     },
 
+  { "dragon",                                  "RocksHeroes.pcx"       },
+  { "dragon.xpos",                             "8"                     },
+  { "dragon.ypos",                             "2"                     },
+  { "dragon.frames",                           "1"                     },
   { "dragon_down",                             "RocksHeroes.pcx"       },
   { "dragon_down.xpos",                                "8"                     },
   { "dragon_down.ypos",                                "2"                     },
@@ -1917,6 +1955,10 @@ struct ConfigInfo image_config[] =
   { "dragon_right.attacking.ypos",             "3"                     },
   { "dragon_right.attacking.frames",           "1"                     },
 
+  { "mole",                                    "RocksHeroes.pcx"       },
+  { "mole.xpos",                               "8"                     },
+  { "mole.ypos",                               "4"                     },
+  { "mole.frames",                             "1"                     },
   { "mole_down",                               "RocksHeroes.pcx"       },
   { "mole_down.xpos",                          "8"                     },
   { "mole_down.ypos",                          "4"                     },
@@ -1974,6 +2016,10 @@ struct ConfigInfo image_config[] =
   { "mole_right.digging.frames",               "4"                     },
   { "mole_right.digging.delay",                        "2"                     },
 
+  { "penguin",                                 "RocksHeroes.pcx"       },
+  { "penguin.xpos",                            "8"                     },
+  { "penguin.ypos",                            "6"                     },
+  { "penguin.frames",                          "1"                     },
   { "penguin_down",                            "RocksHeroes.pcx"       },
   { "penguin_down.xpos",                       "8"                     },
   { "penguin_down.ypos",                       "6"                     },
@@ -2552,10 +2598,7 @@ struct ConfigInfo image_config[] =
   { "scrollbar_yellow.ypos",                   "2"                     },
   { "scrollbar_yellow.frames",                 "1"                     },
 
-  { "char_question",                           "RocksFontEM.pcx"       },
-  { "char_question.xpos",                      "15"                    },
-  { "char_question.ypos",                      "1"                     },
-  { "char_question.frames",                    "1"                     },
+#include "conf_chr.c"  /* include auto-generated data structure definitions */
 
   { NULL,                                      NULL                    }
 };
index b3b27379d86129aed3207a1cab93ac3f2868b475..7b82f5e3a138adc4801cf5273e064a22b90fad14 100644 (file)
@@ -32,6 +32,7 @@
 
 #define IMG_EMPTY      IMG_EMPTY_SPACE
 #define IMG_SP_EMPTY   IMG_SP_EMPTY_SPACE
+#define IMG_CHAR_START IMG_CHAR_SPACE
 
 #define WIN_XSIZE      672
 #define WIN_YSIZE      560
 #define EL_EM_KEY1_FILE                        119
 
 #define EL_CHAR_START                  120
-#define EL_CHAR_ASCII0                 (EL_CHAR_START-32)
-#define EL_CHAR_EXCLAM                 (EL_CHAR_ASCII0+33)
-#define EL_CHAR_QUOTEDBL               (EL_CHAR_ASCII0+34)
-#define EL_CHAR_NUMBERSIGN             (EL_CHAR_ASCII0+35)
-#define EL_CHAR_DOLLAR                 (EL_CHAR_ASCII0+36)
-#define EL_CHAR_PROCENT                        (EL_CHAR_ASCII0+37)
-#define EL_CHAR_AMPERSAND              (EL_CHAR_ASCII0+38)
-#define EL_CHAR_APOSTROPHE             (EL_CHAR_ASCII0+39)
-#define EL_CHAR_PARENLEFT              (EL_CHAR_ASCII0+40)
-#define EL_CHAR_PARENRIGHT             (EL_CHAR_ASCII0+41)
-#define EL_CHAR_ASTERISK               (EL_CHAR_ASCII0+42)
-#define EL_CHAR_PLUS                   (EL_CHAR_ASCII0+43)
-#define EL_CHAR_COMMA                  (EL_CHAR_ASCII0+44)
-#define EL_CHAR_MINUS                  (EL_CHAR_ASCII0+45)
-#define EL_CHAR_PERIOD                 (EL_CHAR_ASCII0+46)
-#define EL_CHAR_SLASH                  (EL_CHAR_ASCII0+47)
-#define EL_CHAR_0                      (EL_CHAR_ASCII0+48)
-#define EL_CHAR_9                      (EL_CHAR_ASCII0+57)
-#define EL_CHAR_COLON                  (EL_CHAR_ASCII0+58)
-#define EL_CHAR_SEMICOLON              (EL_CHAR_ASCII0+59)
-#define EL_CHAR_LESS                   (EL_CHAR_ASCII0+60)
-#define EL_CHAR_EQUAL                  (EL_CHAR_ASCII0+61)
-#define EL_CHAR_GREATER                        (EL_CHAR_ASCII0+62)
-#define EL_CHAR_QUESTION               (EL_CHAR_ASCII0+63)
-#define EL_CHAR_AT                     (EL_CHAR_ASCII0+64)
-#define EL_CHAR_A                      (EL_CHAR_ASCII0+65)
-#define EL_CHAR_Z                      (EL_CHAR_ASCII0+90)
-#define EL_CHAR_AE                     (EL_CHAR_ASCII0+91)
-#define EL_CHAR_OE                     (EL_CHAR_ASCII0+92)
-#define EL_CHAR_UE                     (EL_CHAR_ASCII0+93)
-#define EL_CHAR_COPYRIGHT              (EL_CHAR_ASCII0+94)
-#define EL_CHAR_END                    (EL_CHAR_START+79)
+#define EL_CHAR_ASCII0                 (EL_CHAR_START  - 32)
+#define EL_CHAR_EXCLAM                 (EL_CHAR_ASCII0 + 33)
+#define EL_CHAR_QUOTEDBL               (EL_CHAR_ASCII0 + 34)
+#define EL_CHAR_NUMBERSIGN             (EL_CHAR_ASCII0 + 35)
+#define EL_CHAR_DOLLAR                 (EL_CHAR_ASCII0 + 36)
+#define EL_CHAR_PROCENT                        (EL_CHAR_ASCII0 + 37)
+#define EL_CHAR_AMPERSAND              (EL_CHAR_ASCII0 + 38)
+#define EL_CHAR_APOSTROPHE             (EL_CHAR_ASCII0 + 39)
+#define EL_CHAR_PARENLEFT              (EL_CHAR_ASCII0 + 40)
+#define EL_CHAR_PARENRIGHT             (EL_CHAR_ASCII0 + 41)
+#define EL_CHAR_ASTERISK               (EL_CHAR_ASCII0 + 42)
+#define EL_CHAR_PLUS                   (EL_CHAR_ASCII0 + 43)
+#define EL_CHAR_COMMA                  (EL_CHAR_ASCII0 + 44)
+#define EL_CHAR_MINUS                  (EL_CHAR_ASCII0 + 45)
+#define EL_CHAR_PERIOD                 (EL_CHAR_ASCII0 + 46)
+#define EL_CHAR_SLASH                  (EL_CHAR_ASCII0 + 47)
+#define EL_CHAR_0                      (EL_CHAR_ASCII0 + 48)
+#define EL_CHAR_9                      (EL_CHAR_ASCII0 + 57)
+#define EL_CHAR_COLON                  (EL_CHAR_ASCII0 + 58)
+#define EL_CHAR_SEMICOLON              (EL_CHAR_ASCII0 + 59)
+#define EL_CHAR_LESS                   (EL_CHAR_ASCII0 + 60)
+#define EL_CHAR_EQUAL                  (EL_CHAR_ASCII0 + 61)
+#define EL_CHAR_GREATER                        (EL_CHAR_ASCII0 + 62)
+#define EL_CHAR_QUESTION               (EL_CHAR_ASCII0 + 63)
+#define EL_CHAR_AT                     (EL_CHAR_ASCII0 + 64)
+#define EL_CHAR_A                      (EL_CHAR_ASCII0 + 65)
+#define EL_CHAR_Z                      (EL_CHAR_ASCII0 + 90)
+#define EL_CHAR_AE                     (EL_CHAR_ASCII0 + 91)
+#define EL_CHAR_OE                     (EL_CHAR_ASCII0 + 92)
+#define EL_CHAR_UE                     (EL_CHAR_ASCII0 + 93)
+#define EL_CHAR_COPYRIGHT              (EL_CHAR_ASCII0 + 94)
+#define EL_CHAR_END                    (EL_CHAR_START  + 79)
 
 #define EL_CHAR(x)                     ((x) == 'Ä' ? EL_CHAR_AE : \
                                         (x) == 'Ö' ? EL_CHAR_OE : \
index ebc8cb6dd6a0a0f95b4cc4fe98d4da8953ac4f25..c8f9e5d2dd7f9ac1861ade040d05cd2a66a394de 100644 (file)
@@ -690,7 +690,7 @@ static int getGraphicAnimationPhase(int frames, int delay, int mode)
 {
   int phase;
 
-  if (mode == ANIM_PINGPONG)
+  if (mode & ANIM_PINGPONG)
   {
     int max_anim_frames = 2 * frames - 2;
 
@@ -700,7 +700,7 @@ static int getGraphicAnimationPhase(int frames, int delay, int mode)
   else
     phase = (FrameCounter % (delay * frames)) / delay;
 
-  if (mode == ANIM_REVERSE)
+  if (mode & ANIM_REVERSE)
     phase = -phase;
 
   return phase;
@@ -765,9 +765,9 @@ void DrawGraphicAnimationExt(int x, int y, int graphic,
 
 void DrawNewGraphicAnimationExt(int x, int y, int graphic, int mask_mode)
 {
+#if 0
   int delay = new_graphic_info[graphic].anim_delay;
 
-#if 0
   if (!(FrameCounter % delay) && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
 #else
   if (IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
@@ -1500,7 +1500,7 @@ inline static int getGfxAction(int x, int y)
 }
 
 void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element,
-                         int cut_mode, int mask_mode)
+                            int cut_mode, int mask_mode)
 {
   int ux = LEVELX(x), uy = LEVELY(y);
   int move_dir = MovDir[ux][uy];
@@ -1521,9 +1521,15 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element,
     if (left_stopped && right_stopped)
       graphic = IMG_WALL;
     else if (left_stopped)
+    {
       graphic = IMG_WALL_GROWING_ACTIVE_RIGHT;
+      frame = new_graphic_info[graphic].anim_frames - 1;
+    }
     else if (right_stopped)
+    {
       graphic = IMG_WALL_GROWING_ACTIVE_LEFT;
+      frame = new_graphic_info[graphic].anim_frames - 1;
+    }
   }
 #if 0
   else if ((element == EL_ROCK ||
@@ -2109,7 +2115,7 @@ void DrawLevel()
 
   for(x=BX1; x<=BX2; x++)
     for(y=BY1; y<=BY2; y++)
-      DrawScreenField(x, y);
+      DrawNewScreenField(x, y);
 
   redraw_mask |= REDRAW_FIELD;
 }