rnd-20021005-1-src
authorHolger Schemel <info@artsoft.org>
Sat, 5 Oct 2002 01:02:13 +0000 (03:02 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:38:48 +0000 (10:38 +0200)
src/conf_e2g.c
src/conf_gfx.h
src/conftime.h
src/game.c
src/libgame/misc.c
src/main.c
src/main.h
src/tools.c

index 332a0a006ec9f81a65fb068806c7d27b0779a8fb..de7c8a11bb34b0a1172bfae4a3c02f471f17045a 100644 (file)
@@ -709,20 +709,72 @@ element_to_graphic[] =
     IMG_AMOEBA_CREATING
   },
   {
-    EL_AMOEBA_PART1,                           -1, -1,
-    IMG_AMOEBA_PART1
+    EL_AMOEBA_SHRINKING,                       -1, -1,
+    IMG_AMOEBA_SHRINKING
   },
   {
-    EL_AMOEBA_PART2,                           -1, -1,
-    IMG_AMOEBA_PART2
+    EL_AMOEBA_WET,                             -1, -1,
+    IMG_AMOEBA_WET
   },
   {
-    EL_AMOEBA_PART3,                           -1, -1,
-    IMG_AMOEBA_PART3
+    EL_AMOEBA_WET_PART1,                       -1, -1,
+    IMG_AMOEBA_WET_PART1
   },
   {
-    EL_AMOEBA_PART4,                           -1, -1,
-    IMG_AMOEBA_PART4
+    EL_AMOEBA_WET_PART2,                       -1, -1,
+    IMG_AMOEBA_WET_PART2
+  },
+  {
+    EL_AMOEBA_WET_PART3,                       -1, -1,
+    IMG_AMOEBA_WET_PART3
+  },
+  {
+    EL_AMOEBA_WET_PART4,                       -1, -1,
+    IMG_AMOEBA_WET_PART4
+  },
+  {
+    EL_AMOEBA_DRY,                             -1, -1,
+    IMG_AMOEBA_DRY
+  },
+  {
+    EL_AMOEBA_DRY_PART1,                       -1, -1,
+    IMG_AMOEBA_DRY_PART1
+  },
+  {
+    EL_AMOEBA_DRY_PART2,                       -1, -1,
+    IMG_AMOEBA_DRY_PART2
+  },
+  {
+    EL_AMOEBA_DRY_PART3,                       -1, -1,
+    IMG_AMOEBA_DRY_PART3
+  },
+  {
+    EL_AMOEBA_DRY_PART4,                       -1, -1,
+    IMG_AMOEBA_DRY_PART4
+  },
+  {
+    EL_AMOEBA_FULL,                            -1, -1,
+    IMG_AMOEBA_FULL
+  },
+  {
+    EL_AMOEBA_FULL,                            -1, GFX_ACTION_OTHER,
+    IMG_AMOEBA_FULL_PART1
+  },
+  {
+    EL_AMOEBA_FULL,                            -1, GFX_ACTION_OTHER,
+    IMG_AMOEBA_FULL_PART2
+  },
+  {
+    EL_AMOEBA_FULL,                            -1, GFX_ACTION_OTHER,
+    IMG_AMOEBA_FULL_PART3
+  },
+  {
+    EL_AMOEBA_FULL,                            -1, GFX_ACTION_OTHER,
+    IMG_AMOEBA_FULL_PART4
+  },
+  {
+    EL_AMOEBA_DEAD,                            -1, -1,
+    IMG_AMOEBA_DEAD
   },
   {
     EL_AMOEBA_DEAD_PART1,                      -1, -1,
index 83388cbb769f0a240bb958fe04160cde112d43d5..82a4878ac1f7bc1a8c7f227fbfae0cded041ccde 100644 (file)
 #define IMG_ACID_SPLASHING_RIGHT               153
 #define IMG_AMOEBA_DROP                                154
 #define IMG_AMOEBA_CREATING                    155
-#define IMG_AMOEBA_PART1                       156
-#define IMG_AMOEBA_PART2                       157
-#define IMG_AMOEBA_PART3                       158
-#define IMG_AMOEBA_PART4                       159
-#define IMG_AMOEBA_DEAD_PART1                  160
-#define IMG_AMOEBA_DEAD_PART2                  161
-#define IMG_AMOEBA_DEAD_PART3                  162
-#define IMG_AMOEBA_DEAD_PART4                  163
-#define IMG_EM_KEY1                            164
-#define IMG_EM_KEY2                            165
-#define IMG_EM_KEY3                            166
-#define IMG_EM_KEY4                            167
-#define IMG_EM_GATE1                           168
-#define IMG_EM_GATE2                           169
-#define IMG_EM_GATE3                           170
-#define IMG_EM_GATE4                           171
-#define IMG_EM_GATE1_GRAY                      172
-#define IMG_EM_GATE2_GRAY                      173
-#define IMG_EM_GATE3_GRAY                      174
-#define IMG_EM_GATE4_GRAY                      175
-#define IMG_EXIT_CLOSED                                176
-#define IMG_EXIT_OPENING                       177
-#define IMG_EXIT_OPEN                          178
-#define IMG_BALLOON                            179
-#define IMG_BALLOON_MOVING                     180
-#define IMG_BALLOON_SEND_LEFT                  181
-#define IMG_BALLOON_SEND_RIGHT                 182
-#define IMG_BALLOON_SEND_UP                    183
-#define IMG_BALLOON_SEND_DOWN                  184
-#define IMG_BALLOON_SEND_ANY_DIRECTION         185
-#define IMG_SPRING                             186
-#define IMG_SPRING_MOVING                      187
-#define IMG_EMC_STEELWALL1                     188
-#define IMG_EMC_STEELWALL2                     189
-#define IMG_EMC_STEELWALL3                     190
-#define IMG_EMC_STEELWALL4                     191
-#define IMG_EMC_WALL_PILLAR_UPPER              192
-#define IMG_EMC_WALL_PILLAR_MIDDLE             193
-#define IMG_EMC_WALL_PILLAR_LOWER              194
-#define IMG_EMC_WALL4                          195
-#define IMG_EMC_WALL5                          196
-#define IMG_EMC_WALL6                          197
-#define IMG_EMC_WALL7                          198
-#define IMG_EMC_WALL8                          199
-#define IMG_INVISIBLE_STEELWALL                        200
-#define IMG_INVISIBLE_STEELWALL_ACTIVE         201
-#define IMG_INVISIBLE_WALL                     202
-#define IMG_INVISIBLE_WALL_ACTIVE              203
-#define IMG_INVISIBLE_SAND                     204
-#define IMG_INVISIBLE_SAND_ACTIVE              205
-#define IMG_CONVEYOR_BELT1_MIDDLE              206
-#define IMG_CONVEYOR_BELT1_MIDDLE_ACTIVE       207
-#define IMG_CONVEYOR_BELT1_LEFT                        208
-#define IMG_CONVEYOR_BELT1_LEFT_ACTIVE         209
-#define IMG_CONVEYOR_BELT1_RIGHT               210
-#define IMG_CONVEYOR_BELT1_RIGHT_ACTIVE                211
-#define IMG_CONVEYOR_BELT1_SWITCH_LEFT         212
-#define IMG_CONVEYOR_BELT1_SWITCH_MIDDLE       213
-#define IMG_CONVEYOR_BELT1_SWITCH_RIGHT                214
-#define IMG_CONVEYOR_BELT2_MIDDLE              215
-#define IMG_CONVEYOR_BELT2_MIDDLE_ACTIVE       216
-#define IMG_CONVEYOR_BELT2_LEFT                        217
-#define IMG_CONVEYOR_BELT2_LEFT_ACTIVE         218
-#define IMG_CONVEYOR_BELT2_RIGHT               219
-#define IMG_CONVEYOR_BELT2_RIGHT_ACTIVE                220
-#define IMG_CONVEYOR_BELT2_SWITCH_LEFT         221
-#define IMG_CONVEYOR_BELT2_SWITCH_MIDDLE       222
-#define IMG_CONVEYOR_BELT2_SWITCH_RIGHT                223
-#define IMG_CONVEYOR_BELT3_MIDDLE              224
-#define IMG_CONVEYOR_BELT3_MIDDLE_ACTIVE       225
-#define IMG_CONVEYOR_BELT3_LEFT                        226
-#define IMG_CONVEYOR_BELT3_LEFT_ACTIVE         227
-#define IMG_CONVEYOR_BELT3_RIGHT               228
-#define IMG_CONVEYOR_BELT3_RIGHT_ACTIVE                229
-#define IMG_CONVEYOR_BELT3_SWITCH_LEFT         230
-#define IMG_CONVEYOR_BELT3_SWITCH_MIDDLE       231
-#define IMG_CONVEYOR_BELT3_SWITCH_RIGHT                232
-#define IMG_CONVEYOR_BELT4_MIDDLE              233
-#define IMG_CONVEYOR_BELT4_MIDDLE_ACTIVE       234
-#define IMG_CONVEYOR_BELT4_LEFT                        235
-#define IMG_CONVEYOR_BELT4_LEFT_ACTIVE         236
-#define IMG_CONVEYOR_BELT4_RIGHT               237
-#define IMG_CONVEYOR_BELT4_RIGHT_ACTIVE                238
-#define IMG_CONVEYOR_BELT4_SWITCH_LEFT         239
-#define IMG_CONVEYOR_BELT4_SWITCH_MIDDLE       240
-#define IMG_CONVEYOR_BELT4_SWITCH_RIGHT                241
-#define IMG_SWITCHGATE_SWITCH_UP               242
-#define IMG_SWITCHGATE_SWITCH_DOWN             243
-#define IMG_LIGHT_SWITCH                       244
-#define IMG_LIGHT_SWITCH_ACTIVE                        245
-#define IMG_TIMEGATE_SWITCH                    246
-#define IMG_TIMEGATE_SWITCH_ACTIVE             247
-#define IMG_ENVELOPE                           248
-#define IMG_SIGN_EXCLAMATION                   249
-#define IMG_SIGN_STOP                          250
-#define IMG_LANDMINE                           251
-#define IMG_STEELWALL_SLANTED                  252
-#define IMG_EXTRA_TIME                         253
-#define IMG_SHIELD_NORMAL                      254
-#define IMG_SHIELD_DEADLY                      255
-#define IMG_SHIELD_NORMAL_ACTIVE               256
-#define IMG_SHIELD_DEADLY_ACTIVE               257
-#define IMG_SWITCHGATE_CLOSED                  258
-#define IMG_SWITCHGATE_OPENING                 259
-#define IMG_SWITCHGATE_OPEN                    260
-#define IMG_SWITCHGATE_CLOSING                 261
-#define IMG_TIMEGATE_CLOSED                    262
-#define IMG_TIMEGATE_OPENING                   263
-#define IMG_TIMEGATE_OPEN                      264
-#define IMG_TIMEGATE_CLOSING                   265
-#define IMG_PEARL                              266
-#define IMG_PEARL_BREAKING                     267
-#define IMG_CRYSTAL                            268
-#define IMG_WALL_PEARL                         269
-#define IMG_WALL_CRYSTAL                       270
-#define IMG_TUBE_RIGHT_DOWN                    271
-#define IMG_TUBE_HORIZONTAL_DOWN               272
-#define IMG_TUBE_LEFT_DOWN                     273
-#define IMG_TUBE_HORIZONTAL                    274
-#define IMG_TUBE_VERTICAL_RIGHT                        275
-#define IMG_TUBE_ALL                           276
-#define IMG_TUBE_VERTICAL_LEFT                 277
-#define IMG_TUBE_VERTICAL                      278
-#define IMG_TUBE_RIGHT_UP                      279
-#define IMG_TUBE_HORIZONTAL_UP                 280
-#define IMG_TUBE_LEFT_UP                       281
-#define IMG_TRAP                               282
-#define IMG_TRAP_ACTIVE                                283
-#define IMG_DX_SUPABOMB                                284
-#define IMG_KEY1                               285
-#define IMG_KEY2                               286
-#define IMG_KEY3                               287
-#define IMG_KEY4                               288
-#define IMG_GATE1                              289
-#define IMG_GATE2                              290
-#define IMG_GATE3                              291
-#define IMG_GATE4                              292
-#define IMG_GATE1_GRAY                         293
-#define IMG_GATE2_GRAY                         294
-#define IMG_GATE3_GRAY                         295
-#define IMG_GATE4_GRAY                         296
-#define IMG_GAMEOFLIFE                         297
-#define IMG_BIOMAZE                            298
-#define IMG_PACMAN_RIGHT                       299
-#define IMG_PACMAN_UP                          300
-#define IMG_PACMAN_LEFT                                301
-#define IMG_PACMAN_DOWN                                302
-#define IMG_LAMP                               303
-#define IMG_LAMP_ACTIVE                                304
-#define IMG_TIME_ORB_FULL                      305
-#define IMG_TIME_ORB_EMPTY                     306
-#define IMG_EMERALD_YELLOW                     307
-#define IMG_EMERALD_YELLOW_FALLING             308
-#define IMG_EMERALD_RED                                309
-#define IMG_EMERALD_RED_FALLING                        310
-#define IMG_EMERALD_PURPLE                     311
-#define IMG_EMERALD_PURPLE_FALLING             312
-#define IMG_WALL_EMERALD_YELLOW                        313
-#define IMG_WALL_EMERALD_RED                   314
-#define IMG_WALL_EMERALD_PURPLE                        315
-#define IMG_WALL_BD_DIAMOND                    316
-#define IMG_WALL_GROWING_XY                    317
-#define IMG_WALL_GROWING_X                     318
-#define IMG_WALL_GROWING_Y                     319
-#define IMG_WALL_GROWING_ACTIVE_LEFT           320
-#define IMG_WALL_GROWING_ACTIVE_RIGHT          321
-#define IMG_WALL_GROWING_ACTIVE_UP             322
-#define IMG_WALL_GROWING_ACTIVE_DOWN           323
-#define IMG_BLACK_ORB                          324
-#define IMG_SPEED_PILL                         325
-#define IMG_DARK_YAMYAM                                326
-#define IMG_DYNABOMB_ACTIVE                    327
-#define IMG_DYNABOMB_PLAYER1_ACTIVE            328
-#define IMG_DYNABOMB_PLAYER2_ACTIVE            329
-#define IMG_DYNABOMB_PLAYER3_ACTIVE            330
-#define IMG_DYNABOMB_PLAYER4_ACTIVE            331
-#define IMG_DYNABOMB_NR                                332
-#define IMG_DYNABOMB_SZ                                333
-#define IMG_DYNABOMB_XL                                334
-#define IMG_PIG_DOWN                           335
-#define IMG_PIG_DOWN_MOVING                    336
-#define IMG_PIG_DOWN_EATING                    337
-#define IMG_PIG_UP                             338
-#define IMG_PIG_UP_MOVING                      339
-#define IMG_PIG_UP_EATING                      340
-#define IMG_PIG_LEFT                           341
-#define IMG_PIG_LEFT_MOVING                    342
-#define IMG_PIG_LEFT_EATING                    343
-#define IMG_PIG_RIGHT                          344
-#define IMG_PIG_RIGHT_MOVING                   345
-#define IMG_PIG_RIGHT_EATING                   346
-#define IMG_DRAGON_DOWN                                347
-#define IMG_DRAGON_DOWN_MOVING                 348
-#define IMG_DRAGON_DOWN_ATTACKING              349
-#define IMG_DRAGON_UP                          350
-#define IMG_DRAGON_UP_MOVING                   351
-#define IMG_DRAGON_UP_ATTACKING                        352
-#define IMG_DRAGON_LEFT                                353
-#define IMG_DRAGON_LEFT_MOVING                 354
-#define IMG_DRAGON_LEFT_ATTACKING              355
-#define IMG_DRAGON_RIGHT                       356
-#define IMG_DRAGON_RIGHT_MOVING                        357
-#define IMG_DRAGON_RIGHT_ATTACKING             358
-#define IMG_MOLE_DOWN                          359
-#define IMG_MOLE_DOWN_MOVING                   360
-#define IMG_MOLE_DOWN_DIGGING                  361
-#define IMG_MOLE_UP                            362
-#define IMG_MOLE_UP_MOVING                     363
-#define IMG_MOLE_UP_DIGGING                    364
-#define IMG_MOLE_LEFT                          365
-#define IMG_MOLE_LEFT_MOVING                   366
-#define IMG_MOLE_LEFT_DIGGING                  367
-#define IMG_MOLE_RIGHT                         368
-#define IMG_MOLE_RIGHT_MOVING                  369
-#define IMG_MOLE_RIGHT_DIGGING                 370
-#define IMG_PENGUIN_DOWN                       371
-#define IMG_PENGUIN_DOWN_MOVING                        372
-#define IMG_PENGUIN_UP                         373
-#define IMG_PENGUIN_UP_MOVING                  374
-#define IMG_PENGUIN_LEFT                       375
-#define IMG_PENGUIN_LEFT_MOVING                        376
-#define IMG_PENGUIN_RIGHT                      377
-#define IMG_PENGUIN_RIGHT_MOVING               378
-#define IMG_SATELLITE                          379
-#define IMG_SATELLITE_MOVING                   380
-#define IMG_FLAMES_LEFT1                       381
-#define IMG_FLAMES_LEFT2                       382
-#define IMG_FLAMES_LEFT3                       383
-#define IMG_FLAMES_RIGHT1                      384
-#define IMG_FLAMES_RIGHT2                      385
-#define IMG_FLAMES_RIGHT3                      386
-#define IMG_FLAMES_UP1                         387
-#define IMG_FLAMES_UP2                         388
-#define IMG_FLAMES_UP3                         389
-#define IMG_FLAMES_DOWN1                       390
-#define IMG_FLAMES_DOWN2                       391
-#define IMG_FLAMES_DOWN3                       392
-#define IMG_STONEBLOCK                         393
-#define IMG_PLAYER1                            394
-#define IMG_PLAYER1_DOWN                       395
-#define IMG_PLAYER1_DOWN_MOVING                        396
-#define IMG_PLAYER1_DOWN_DIGGING               397
-#define IMG_PLAYER1_DOWN_PUSHING               398
-#define IMG_PLAYER1_DOWN_SNAPPING              399
-#define IMG_PLAYER1_UP                         400
-#define IMG_PLAYER1_UP_MOVING                  401
-#define IMG_PLAYER1_UP_DIGGING                 402
-#define IMG_PLAYER1_UP_PUSHING                 403
-#define IMG_PLAYER1_UP_SNAPPING                        404
-#define IMG_PLAYER1_LEFT                       405
-#define IMG_PLAYER1_LEFT_MOVING                        406
-#define IMG_PLAYER1_LEFT_DIGGING               407
-#define IMG_PLAYER1_LEFT_PUSHING               408
-#define IMG_PLAYER1_LEFT_SNAPPING              409
-#define IMG_PLAYER1_RIGHT                      410
-#define IMG_PLAYER1_RIGHT_MOVING               411
-#define IMG_PLAYER1_RIGHT_DIGGING              412
-#define IMG_PLAYER1_RIGHT_PUSHING              413
-#define IMG_PLAYER1_RIGHT_SNAPPING             414
-#define IMG_PLAYER2                            415
-#define IMG_PLAYER2_DOWN                       416
-#define IMG_PLAYER2_DOWN_MOVING                        417
-#define IMG_PLAYER2_DOWN_DIGGING               418
-#define IMG_PLAYER2_DOWN_PUSHING               419
-#define IMG_PLAYER2_DOWN_SNAPPING              420
-#define IMG_PLAYER2_UP                         421
-#define IMG_PLAYER2_UP_MOVING                  422
-#define IMG_PLAYER2_UP_DIGGING                 423
-#define IMG_PLAYER2_UP_PUSHING                 424
-#define IMG_PLAYER2_UP_SNAPPING                        425
-#define IMG_PLAYER2_LEFT                       426
-#define IMG_PLAYER2_LEFT_MOVING                        427
-#define IMG_PLAYER2_LEFT_DIGGING               428
-#define IMG_PLAYER2_LEFT_PUSHING               429
-#define IMG_PLAYER2_LEFT_SNAPPING              430
-#define IMG_PLAYER2_RIGHT                      431
-#define IMG_PLAYER2_RIGHT_MOVING               432
-#define IMG_PLAYER2_RIGHT_DIGGING              433
-#define IMG_PLAYER2_RIGHT_PUSHING              434
-#define IMG_PLAYER2_RIGHT_SNAPPING             435
-#define IMG_PLAYER3                            436
-#define IMG_PLAYER3_DOWN                       437
-#define IMG_PLAYER3_DOWN_MOVING                        438
-#define IMG_PLAYER3_DOWN_DIGGING               439
-#define IMG_PLAYER3_DOWN_PUSHING               440
-#define IMG_PLAYER3_DOWN_SNAPPING              441
-#define IMG_PLAYER3_UP                         442
-#define IMG_PLAYER3_UP_MOVING                  443
-#define IMG_PLAYER3_UP_DIGGING                 444
-#define IMG_PLAYER3_UP_PUSHING                 445
-#define IMG_PLAYER3_UP_SNAPPING                        446
-#define IMG_PLAYER3_LEFT                       447
-#define IMG_PLAYER3_LEFT_MOVING                        448
-#define IMG_PLAYER3_LEFT_DIGGING               449
-#define IMG_PLAYER3_LEFT_PUSHING               450
-#define IMG_PLAYER3_LEFT_SNAPPING              451
-#define IMG_PLAYER3_RIGHT                      452
-#define IMG_PLAYER3_RIGHT_MOVING               453
-#define IMG_PLAYER3_RIGHT_DIGGING              454
-#define IMG_PLAYER3_RIGHT_PUSHING              455
-#define IMG_PLAYER3_RIGHT_SNAPPING             456
-#define IMG_PLAYER4                            457
-#define IMG_PLAYER4_DOWN                       458
-#define IMG_PLAYER4_DOWN_MOVING                        459
-#define IMG_PLAYER4_DOWN_DIGGING               460
-#define IMG_PLAYER4_DOWN_PUSHING               461
-#define IMG_PLAYER4_DOWN_SNAPPING              462
-#define IMG_PLAYER4_UP                         463
-#define IMG_PLAYER4_UP_MOVING                  464
-#define IMG_PLAYER4_UP_DIGGING                 465
-#define IMG_PLAYER4_UP_PUSHING                 466
-#define IMG_PLAYER4_UP_SNAPPING                        467
-#define IMG_PLAYER4_LEFT                       468
-#define IMG_PLAYER4_LEFT_MOVING                        469
-#define IMG_PLAYER4_LEFT_DIGGING               470
-#define IMG_PLAYER4_LEFT_PUSHING               471
-#define IMG_PLAYER4_LEFT_SNAPPING              472
-#define IMG_PLAYER4_RIGHT                      473
-#define IMG_PLAYER4_RIGHT_MOVING               474
-#define IMG_PLAYER4_RIGHT_DIGGING              475
-#define IMG_PLAYER4_RIGHT_PUSHING              476
-#define IMG_PLAYER4_RIGHT_SNAPPING             477
-#define IMG_EXPLOSION                          478
-#define IMG_TWINKLE_BLUE                       479
-#define IMG_TWINKLE_WHITE                      480
-#define IMG_STEELWALL_TOPLEFT                  481
-#define IMG_STEELWALL_TOPRIGHT                 482
-#define IMG_STEELWALL_BOTTOMLEFT               483
-#define IMG_STEELWALL_BOTTOMRIGHT              484
-#define IMG_STEELWALL_HORIZONTAL               485
-#define IMG_STEELWALL_VERTICAL                 486
-#define IMG_INVISIBLE_STEELWALL_TOPLEFT                487
-#define IMG_INVISIBLE_STEELWALL_TOPRIGHT       488
-#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT     489
-#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT    490
-#define IMG_INVISIBLE_STEELWALL_HORIZONTAL     491
-#define IMG_INVISIBLE_STEELWALL_VERTICAL       492
-#define IMG_ARROW_BLUE_LEFT                    493
-#define IMG_ARROW_BLUE_RIGHT                   494
-#define IMG_ARROW_BLUE_UP                      495
-#define IMG_ARROW_BLUE_DOWN                    496
-#define IMG_ARROW_RED_LEFT                     497
-#define IMG_ARROW_RED_RIGHT                    498
-#define IMG_ARROW_RED_UP                       499
-#define IMG_ARROW_RED_DOWN                     500
-#define IMG_SCROLLBAR_BLUE                     501
-#define IMG_SCROLLBAR_RED                      502
-#define IMG_SCROLLBAR_GREEN                    503
-#define IMG_SCROLLBAR_YELLOW                   504
-#define IMG_CHAR_QUESTION                      505
+#define IMG_AMOEBA_SHRINKING                   156
+#define IMG_AMOEBA_WET                         157
+#define IMG_AMOEBA_WET_PART1                   158
+#define IMG_AMOEBA_WET_PART2                   159
+#define IMG_AMOEBA_WET_PART3                   160
+#define IMG_AMOEBA_WET_PART4                   161
+#define IMG_AMOEBA_DRY                         162
+#define IMG_AMOEBA_DRY_PART1                   163
+#define IMG_AMOEBA_DRY_PART2                   164
+#define IMG_AMOEBA_DRY_PART3                   165
+#define IMG_AMOEBA_DRY_PART4                   166
+#define IMG_AMOEBA_FULL                                167
+#define IMG_AMOEBA_FULL_PART1                  168
+#define IMG_AMOEBA_FULL_PART2                  169
+#define IMG_AMOEBA_FULL_PART3                  170
+#define IMG_AMOEBA_FULL_PART4                  171
+#define IMG_AMOEBA_DEAD                                172
+#define IMG_AMOEBA_DEAD_PART1                  173
+#define IMG_AMOEBA_DEAD_PART2                  174
+#define IMG_AMOEBA_DEAD_PART3                  175
+#define IMG_AMOEBA_DEAD_PART4                  176
+#define IMG_EM_KEY1                            177
+#define IMG_EM_KEY2                            178
+#define IMG_EM_KEY3                            179
+#define IMG_EM_KEY4                            180
+#define IMG_EM_GATE1                           181
+#define IMG_EM_GATE2                           182
+#define IMG_EM_GATE3                           183
+#define IMG_EM_GATE4                           184
+#define IMG_EM_GATE1_GRAY                      185
+#define IMG_EM_GATE2_GRAY                      186
+#define IMG_EM_GATE3_GRAY                      187
+#define IMG_EM_GATE4_GRAY                      188
+#define IMG_EXIT_CLOSED                                189
+#define IMG_EXIT_OPENING                       190
+#define IMG_EXIT_OPEN                          191
+#define IMG_BALLOON                            192
+#define IMG_BALLOON_MOVING                     193
+#define IMG_BALLOON_SEND_LEFT                  194
+#define IMG_BALLOON_SEND_RIGHT                 195
+#define IMG_BALLOON_SEND_UP                    196
+#define IMG_BALLOON_SEND_DOWN                  197
+#define IMG_BALLOON_SEND_ANY_DIRECTION         198
+#define IMG_SPRING                             199
+#define IMG_SPRING_MOVING                      200
+#define IMG_EMC_STEELWALL1                     201
+#define IMG_EMC_STEELWALL2                     202
+#define IMG_EMC_STEELWALL3                     203
+#define IMG_EMC_STEELWALL4                     204
+#define IMG_EMC_WALL_PILLAR_UPPER              205
+#define IMG_EMC_WALL_PILLAR_MIDDLE             206
+#define IMG_EMC_WALL_PILLAR_LOWER              207
+#define IMG_EMC_WALL4                          208
+#define IMG_EMC_WALL5                          209
+#define IMG_EMC_WALL6                          210
+#define IMG_EMC_WALL7                          211
+#define IMG_EMC_WALL8                          212
+#define IMG_INVISIBLE_STEELWALL                        213
+#define IMG_INVISIBLE_STEELWALL_ACTIVE         214
+#define IMG_INVISIBLE_WALL                     215
+#define IMG_INVISIBLE_WALL_ACTIVE              216
+#define IMG_INVISIBLE_SAND                     217
+#define IMG_INVISIBLE_SAND_ACTIVE              218
+#define IMG_CONVEYOR_BELT1_MIDDLE              219
+#define IMG_CONVEYOR_BELT1_MIDDLE_ACTIVE       220
+#define IMG_CONVEYOR_BELT1_LEFT                        221
+#define IMG_CONVEYOR_BELT1_LEFT_ACTIVE         222
+#define IMG_CONVEYOR_BELT1_RIGHT               223
+#define IMG_CONVEYOR_BELT1_RIGHT_ACTIVE                224
+#define IMG_CONVEYOR_BELT1_SWITCH_LEFT         225
+#define IMG_CONVEYOR_BELT1_SWITCH_MIDDLE       226
+#define IMG_CONVEYOR_BELT1_SWITCH_RIGHT                227
+#define IMG_CONVEYOR_BELT2_MIDDLE              228
+#define IMG_CONVEYOR_BELT2_MIDDLE_ACTIVE       229
+#define IMG_CONVEYOR_BELT2_LEFT                        230
+#define IMG_CONVEYOR_BELT2_LEFT_ACTIVE         231
+#define IMG_CONVEYOR_BELT2_RIGHT               232
+#define IMG_CONVEYOR_BELT2_RIGHT_ACTIVE                233
+#define IMG_CONVEYOR_BELT2_SWITCH_LEFT         234
+#define IMG_CONVEYOR_BELT2_SWITCH_MIDDLE       235
+#define IMG_CONVEYOR_BELT2_SWITCH_RIGHT                236
+#define IMG_CONVEYOR_BELT3_MIDDLE              237
+#define IMG_CONVEYOR_BELT3_MIDDLE_ACTIVE       238
+#define IMG_CONVEYOR_BELT3_LEFT                        239
+#define IMG_CONVEYOR_BELT3_LEFT_ACTIVE         240
+#define IMG_CONVEYOR_BELT3_RIGHT               241
+#define IMG_CONVEYOR_BELT3_RIGHT_ACTIVE                242
+#define IMG_CONVEYOR_BELT3_SWITCH_LEFT         243
+#define IMG_CONVEYOR_BELT3_SWITCH_MIDDLE       244
+#define IMG_CONVEYOR_BELT3_SWITCH_RIGHT                245
+#define IMG_CONVEYOR_BELT4_MIDDLE              246
+#define IMG_CONVEYOR_BELT4_MIDDLE_ACTIVE       247
+#define IMG_CONVEYOR_BELT4_LEFT                        248
+#define IMG_CONVEYOR_BELT4_LEFT_ACTIVE         249
+#define IMG_CONVEYOR_BELT4_RIGHT               250
+#define IMG_CONVEYOR_BELT4_RIGHT_ACTIVE                251
+#define IMG_CONVEYOR_BELT4_SWITCH_LEFT         252
+#define IMG_CONVEYOR_BELT4_SWITCH_MIDDLE       253
+#define IMG_CONVEYOR_BELT4_SWITCH_RIGHT                254
+#define IMG_SWITCHGATE_SWITCH_UP               255
+#define IMG_SWITCHGATE_SWITCH_DOWN             256
+#define IMG_LIGHT_SWITCH                       257
+#define IMG_LIGHT_SWITCH_ACTIVE                        258
+#define IMG_TIMEGATE_SWITCH                    259
+#define IMG_TIMEGATE_SWITCH_ACTIVE             260
+#define IMG_ENVELOPE                           261
+#define IMG_SIGN_EXCLAMATION                   262
+#define IMG_SIGN_STOP                          263
+#define IMG_LANDMINE                           264
+#define IMG_STEELWALL_SLANTED                  265
+#define IMG_EXTRA_TIME                         266
+#define IMG_SHIELD_NORMAL                      267
+#define IMG_SHIELD_DEADLY                      268
+#define IMG_SHIELD_NORMAL_ACTIVE               269
+#define IMG_SHIELD_DEADLY_ACTIVE               270
+#define IMG_SWITCHGATE_CLOSED                  271
+#define IMG_SWITCHGATE_OPENING                 272
+#define IMG_SWITCHGATE_OPEN                    273
+#define IMG_SWITCHGATE_CLOSING                 274
+#define IMG_TIMEGATE_CLOSED                    275
+#define IMG_TIMEGATE_OPENING                   276
+#define IMG_TIMEGATE_OPEN                      277
+#define IMG_TIMEGATE_CLOSING                   278
+#define IMG_PEARL                              279
+#define IMG_PEARL_BREAKING                     280
+#define IMG_CRYSTAL                            281
+#define IMG_WALL_PEARL                         282
+#define IMG_WALL_CRYSTAL                       283
+#define IMG_TUBE_RIGHT_DOWN                    284
+#define IMG_TUBE_HORIZONTAL_DOWN               285
+#define IMG_TUBE_LEFT_DOWN                     286
+#define IMG_TUBE_HORIZONTAL                    287
+#define IMG_TUBE_VERTICAL_RIGHT                        288
+#define IMG_TUBE_ALL                           289
+#define IMG_TUBE_VERTICAL_LEFT                 290
+#define IMG_TUBE_VERTICAL                      291
+#define IMG_TUBE_RIGHT_UP                      292
+#define IMG_TUBE_HORIZONTAL_UP                 293
+#define IMG_TUBE_LEFT_UP                       294
+#define IMG_TRAP                               295
+#define IMG_TRAP_ACTIVE                                296
+#define IMG_DX_SUPABOMB                                297
+#define IMG_KEY1                               298
+#define IMG_KEY2                               299
+#define IMG_KEY3                               300
+#define IMG_KEY4                               301
+#define IMG_GATE1                              302
+#define IMG_GATE2                              303
+#define IMG_GATE3                              304
+#define IMG_GATE4                              305
+#define IMG_GATE1_GRAY                         306
+#define IMG_GATE2_GRAY                         307
+#define IMG_GATE3_GRAY                         308
+#define IMG_GATE4_GRAY                         309
+#define IMG_GAMEOFLIFE                         310
+#define IMG_BIOMAZE                            311
+#define IMG_PACMAN_RIGHT                       312
+#define IMG_PACMAN_UP                          313
+#define IMG_PACMAN_LEFT                                314
+#define IMG_PACMAN_DOWN                                315
+#define IMG_LAMP                               316
+#define IMG_LAMP_ACTIVE                                317
+#define IMG_TIME_ORB_FULL                      318
+#define IMG_TIME_ORB_EMPTY                     319
+#define IMG_EMERALD_YELLOW                     320
+#define IMG_EMERALD_YELLOW_FALLING             321
+#define IMG_EMERALD_RED                                322
+#define IMG_EMERALD_RED_FALLING                        323
+#define IMG_EMERALD_PURPLE                     324
+#define IMG_EMERALD_PURPLE_FALLING             325
+#define IMG_WALL_EMERALD_YELLOW                        326
+#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 NUM_IMAGE_FILES                                506
+#define NUM_IMAGE_FILES                                519
 
 #endif /* GFX_DEFS_H */
index fff6362fb13259a7ea4fbf08fad4cb00c0496b5e..641100c5daf209bb0e019c862573471073387b36 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2002-10-04 19:34]"
+#define COMPILE_DATE_STRING "[2002-10-05 03:01]"
index 05e83995548a9a5947ef6398e9f0df55238e2027..203149bc4791bfff2bcd5e248d083e032d38d422 100644 (file)
@@ -3122,7 +3122,12 @@ void StartMoving(int x, int y)
 
        PlaySoundLevel(newx, newy, SND_PENGUIN_PASSING_EXIT);
        if (IN_SCR_FIELD(SCREENX(newx), SCREENY(newy)))
+#if 0
          DrawGraphicThruMask(SCREENX(newx), SCREENY(newy), el2gfx(element));
+#else
+         DrawNewGraphicThruMask(SCREENX(newx), SCREENY(newy), el2img(element),
+                                0);
+#endif
 
        local_player->friends_still_needed--;
        if (!local_player->friends_still_needed &&
@@ -3651,7 +3656,7 @@ void AmoebeUmwandelnBD(int ax, int ay, int new_element)
        AmoebaNr[x][y] = 0;
        Feld[x][y] = new_element;
        InitField(x, y, FALSE);
-       DrawLevelField(x, y);
+       DrawNewLevelField(x, y);
        done = TRUE;
       }
     }
@@ -3686,13 +3691,22 @@ void AmoebeWaechst(int x, int y)
   {
     MovDelay[x][y]--;
     if (MovDelay[x][y]/2 && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+#if 0
       DrawGraphic(SCREENX(x), SCREENY(y), GFX_AMOEBING + 3 - MovDelay[x][y]/2);
+#else
+    {
+      int frame = getNewGraphicAnimationFrame(IMG_AMOEBA_CREATING,
+                                             6 - MovDelay[x][y]);
+
+      DrawNewGraphic(SCREENX(x), SCREENY(y), IMG_AMOEBA_CREATING, frame);
+    }
+#endif
 
     if (!MovDelay[x][y])
     {
       Feld[x][y] = Store[x][y];
       Store[x][y] = 0;
-      DrawLevelField(x, y);
+      DrawNewLevelField(x, y);
     }
   }
 }
@@ -3714,12 +3728,21 @@ void AmoebaDisappearing(int x, int y)
   {
     MovDelay[x][y]--;
     if (MovDelay[x][y]/2 && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+#if 0
       DrawGraphic(SCREENX(x), SCREENY(y), GFX_AMOEBING + MovDelay[x][y]/2);
+#else
+    {
+      int frame = getNewGraphicAnimationFrame(IMG_AMOEBA_SHRINKING,
+                                             6 - MovDelay[x][y]);
+
+      DrawNewGraphic(SCREENX(x), SCREENY(y), IMG_AMOEBA_SHRINKING, frame);
+    }
+#endif
 
     if (!MovDelay[x][y])
     {
       Feld[x][y] = EL_EMPTY;
-      DrawLevelField(x, y);
+      DrawNewLevelField(x, y);
 
       /* don't let mole enter this field in this cycle;
         (give priority to objects falling to this field from above) */
@@ -3744,7 +3767,7 @@ void AmoebeAbleger(int ax, int ay)
   if (!level.amoeba_speed)
   {
     Feld[ax][ay] = EL_AMOEBA_DEAD;
-    DrawLevelField(ax, ay);
+    DrawNewLevelField(ax, ay);
     return;
   }
 
@@ -3807,7 +3830,7 @@ void AmoebeAbleger(int ax, int ay)
       if (i == 4 && (!waiting_for_player || game.emulation == EMU_BOULDERDASH))
       {
        Feld[ax][ay] = EL_AMOEBA_DEAD;
-       DrawLevelField(ax, ay);
+       DrawNewLevelField(ax, ay);
        AmoebaCnt[AmoebaNr[ax][ay]]--;
 
        if (AmoebaCnt[AmoebaNr[ax][ay]] <= 0)   /* amoeba is completely dead */
@@ -3870,7 +3893,7 @@ void AmoebeAbleger(int ax, int ay)
     return;
   }
 
-  DrawLevelField(newax, neway);
+  DrawNewLevelField(newax, neway);
 }
 
 void Life(int ax, int ay)
@@ -3922,7 +3945,7 @@ void Life(int ax, int ay)
       {
        Feld[xx][yy] = EL_EMPTY;
        if (!Stop[xx][yy])
-         DrawLevelField(xx, yy);
+         DrawNewLevelField(xx, yy);
        Stop[xx][yy] = TRUE;
        changed = TRUE;
       }
@@ -3934,7 +3957,7 @@ void Life(int ax, int ay)
        Feld[xx][yy] = element;
        MovDelay[xx][yy] = (element == EL_GAMEOFLIFE ? 0 : life_time-1);
        if (!Stop[xx][yy])
-         DrawLevelField(xx, yy);
+         DrawNewLevelField(xx, yy);
        Stop[xx][yy] = TRUE;
        changed = TRUE;
       }
@@ -3957,7 +3980,15 @@ void RobotWheel(int x, int y)
     if (MovDelay[x][y])
     {
       if (IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+#if 0
        DrawGraphic(SCREENX(x), SCREENY(y), GFX_ABLENK+MovDelay[x][y]%4);
+#else
+    {
+      int frame = getNewGraphicAnimationFrame(IMG_ROBOT_WHEEL_ACTIVE, -1);
+
+      DrawNewGraphic(SCREENX(x), SCREENY(y), IMG_ROBOT_WHEEL_ACTIVE, frame);
+    }
+#endif
       if (!(MovDelay[x][y]%4))
        PlaySoundLevel(x, y, SND_ROBOT_WHEEL_ACTIVE);
       return;
@@ -3965,7 +3996,7 @@ void RobotWheel(int x, int y)
   }
 
   Feld[x][y] = EL_ROBOT_WHEEL;
-  DrawLevelField(x, y);
+  DrawNewLevelField(x, y);
   if (ZX == x && ZY == y)
     ZX = ZY = -1;
 }
@@ -3981,8 +4012,16 @@ void TimegateWheel(int x, int y)
     if (MovDelay[x][y])
     {
       if (IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+#if 0
        DrawGraphic(SCREENX(x), SCREENY(y),
                    GFX_TIMEGATE_SWITCH + MovDelay[x][y]%4);
+#else
+    {
+      int frame = getNewGraphicAnimationFrame(IMG_TIMEGATE_SWITCH_ACTIVE, -1);
+
+      DrawNewGraphic(SCREENX(x), SCREENY(y), IMG_TIMEGATE_SWITCH_ACTIVE, frame);
+    }
+#endif
       if (!(MovDelay[x][y]%4))
        PlaySoundLevel(x, y, SND_TIMEGATE_SWITCH_ACTIVE);
       return;
@@ -3990,17 +4029,21 @@ void TimegateWheel(int x, int y)
   }
 
   Feld[x][y] = EL_TIMEGATE_SWITCH;
-  DrawLevelField(x, y);
+  DrawNewLevelField(x, y);
   if (ZX == x && ZY == y)
     ZX = ZY = -1;
 }
 
 void Blubber(int x, int y)
 {
-  if (y > 0 && IS_MOVING(x, y-1) && MovDir[x][y-1] == MV_DOWN)
-    DrawLevelField(x, y-1);
+#if 0
+  if (y > 0 && IS_MOVING(x, y - 1) && MovDir[x][y - 1] == MV_DOWN)
+    DrawNewLevelField(x, y - 1);
   else
     DrawGraphicAnimation(x, y, GFX_GEBLUBBER, 4, 10, ANIM_LOOP);
+#else
+  DrawNewGraphicAnimation(x, y, IMG_ACID);
+#endif
 }
 
 void NussKnacken(int x, int y)
@@ -4012,13 +4055,22 @@ void NussKnacken(int x, int y)
   {
     MovDelay[x][y]--;
     if (MovDelay[x][y]/2 && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+#if 0
       DrawGraphic(SCREENX(x), SCREENY(y),
                  GFX_CRACKINGNUT + 3 - MovDelay[x][y]/2);
+#else
+    {
+      int frame = getNewGraphicAnimationFrame(IMG_NUT_CRACKING,
+                                             6 - MovDelay[x][y]);
+
+      DrawNewGraphic(SCREENX(x), SCREENY(y), IMG_NUT_CRACKING, frame);
+    }
+#endif
 
     if (!MovDelay[x][y])
     {
       Feld[x][y] = EL_EMERALD;
-      DrawLevelField(x, y);
+      DrawNewLevelField(x, y);
     }
   }
 }
@@ -4032,22 +4084,37 @@ void BreakingPearl(int x, int y)
   {
     MovDelay[x][y]--;
     if (MovDelay[x][y]/2 && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+#if 0
       DrawGraphic(SCREENX(x), SCREENY(y),
                  GFX_PEARL_BREAKING + 4 - MovDelay[x][y]/2);
+#else
+    {
+      int frame = getNewGraphicAnimationFrame(IMG_PEARL_BREAKING,
+                                             8 - MovDelay[x][y]);
+
+      DrawNewGraphic(SCREENX(x), SCREENY(y), IMG_PEARL_BREAKING, frame);
+    }
+#endif
 
     if (!MovDelay[x][y])
     {
       Feld[x][y] = EL_EMPTY;
-      DrawLevelField(x, y);
+      DrawNewLevelField(x, y);
     }
   }
 }
 
-void SiebAktivieren(int x, int y, int typ)
+void SiebAktivieren(int x, int y, int type)
 {
-  int graphic = (typ == 1 ? GFX_MAGIC_WALL_FULL : GFX_MAGIC_WALL_BD_FULL) + 3;
+#if 0
+  int graphic = (type == 1 ? GFX_MAGIC_WALL_FULL : GFX_MAGIC_WALL_BD_FULL) + 3;
 
   DrawGraphicAnimation(x, y, graphic, 4, 4, ANIM_REVERSE);
+#else
+  int graphic = (type == 1 ? IMG_MAGIC_WALL_FULL : IMG_BD_MAGIC_WALL_FULL);
+
+  DrawNewGraphicAnimation(x, y, graphic);
+#endif
 }
 
 void AusgangstuerPruefen(int x, int y)
@@ -4085,7 +4152,7 @@ void AusgangstuerOeffnen(int x, int y)
   int delay = 6;
 
   if (!MovDelay[x][y])         /* next animation frame */
-    MovDelay[x][y] = 5*delay;
+    MovDelay[x][y] = 5 * delay;
 
   if (MovDelay[x][y])          /* wait some time before next frame */
   {
@@ -4094,19 +4161,32 @@ void AusgangstuerOeffnen(int x, int y)
     MovDelay[x][y]--;
     tuer = MovDelay[x][y]/delay;
     if (!(MovDelay[x][y]%delay) && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+#if 0
       DrawGraphic(SCREENX(x), SCREENY(y), GFX_AUSGANG_AUF-tuer);
+#else
+    {
+      int frame = getNewGraphicAnimationFrame(IMG_EXIT_OPENING,
+                                             29 - MovDelay[x][y]);
+
+      DrawNewGraphic(SCREENX(x), SCREENY(y), IMG_EXIT_OPENING, frame);
+    }
+#endif
 
     if (!MovDelay[x][y])
     {
       Feld[x][y] = EL_EXIT_OPEN;
-      DrawLevelField(x, y);
+      DrawNewLevelField(x, y);
     }
   }
 }
 
 void AusgangstuerBlinken(int x, int y)
 {
+#if 0
   DrawGraphicAnimation(x, y, GFX_AUSGANG_AUF, 4, 4, ANIM_PINGPONG);
+#else
+  DrawNewGraphicAnimation(x, y, IMG_EXIT_OPEN);
+#endif
 }
 
 void OpenSwitchgate(int x, int y)
@@ -4123,12 +4203,21 @@ void OpenSwitchgate(int x, int y)
     MovDelay[x][y]--;
     phase = MovDelay[x][y] / delay;
     if (!(MovDelay[x][y] % delay) && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+#if 0
       DrawGraphic(SCREENX(x), SCREENY(y), GFX_SWITCHGATE_OPEN - phase);
+#else
+    {
+      int frame = getNewGraphicAnimationFrame(IMG_SWITCHGATE_OPENING,
+                                             29 - MovDelay[x][y]);
+
+      DrawNewGraphic(SCREENX(x), SCREENY(y), IMG_SWITCHGATE_OPENING, frame);
+    }
+#endif
 
     if (!MovDelay[x][y])
     {
       Feld[x][y] = EL_SWITCHGATE_OPEN;
-      DrawLevelField(x, y);
+      DrawNewLevelField(x, y);
     }
   }
 }
@@ -4147,12 +4236,21 @@ void CloseSwitchgate(int x, int y)
     MovDelay[x][y]--;
     phase = MovDelay[x][y] / delay;
     if (!(MovDelay[x][y] % delay) && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+#if 0
       DrawGraphic(SCREENX(x), SCREENY(y), GFX_SWITCHGATE_CLOSED + phase);
+#else
+    {
+      int frame = getNewGraphicAnimationFrame(IMG_SWITCHGATE_CLOSING,
+                                             29 - MovDelay[x][y]);
+
+      DrawNewGraphic(SCREENX(x), SCREENY(y), IMG_SWITCHGATE_CLOSING, frame);
+    }
+#endif
 
     if (!MovDelay[x][y])
     {
       Feld[x][y] = EL_SWITCHGATE_CLOSED;
-      DrawLevelField(x, y);
+      DrawNewLevelField(x, y);
     }
   }
 }
@@ -4171,12 +4269,21 @@ void OpenTimegate(int x, int y)
     MovDelay[x][y]--;
     phase = MovDelay[x][y] / delay;
     if (!(MovDelay[x][y] % delay) && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+#if 0
       DrawGraphic(SCREENX(x), SCREENY(y), GFX_TIMEGATE_OPEN - phase);
+#else
+    {
+      int frame = getNewGraphicAnimationFrame(IMG_TIMEGATE_OPENING,
+                                             29 - MovDelay[x][y]);
+
+      DrawNewGraphic(SCREENX(x), SCREENY(y), IMG_TIMEGATE_OPENING, frame);
+    }
+#endif
 
     if (!MovDelay[x][y])
     {
       Feld[x][y] = EL_TIMEGATE_OPEN;
-      DrawLevelField(x, y);
+      DrawNewLevelField(x, y);
     }
   }
 }
@@ -4195,12 +4302,21 @@ void CloseTimegate(int x, int y)
     MovDelay[x][y]--;
     phase = MovDelay[x][y] / delay;
     if (!(MovDelay[x][y] % delay) && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
+#if 0
       DrawGraphic(SCREENX(x), SCREENY(y), GFX_TIMEGATE_CLOSED + phase);
+#else
+    {
+      int frame = getNewGraphicAnimationFrame(IMG_TIMEGATE_CLOSING,
+                                             29 - MovDelay[x][y]);
+
+      DrawNewGraphic(SCREENX(x), SCREENY(y), IMG_TIMEGATE_CLOSING, frame);
+    }
+#endif
 
     if (!MovDelay[x][y])
     {
       Feld[x][y] = EL_TIMEGATE_CLOSED;
-      DrawLevelField(x, y);
+      DrawNewLevelField(x, y);
     }
   }
 }
@@ -4230,7 +4346,11 @@ void EdelsteinFunkeln(int x, int y)
     return;
 
   if (Feld[x][y] == EL_BD_DIAMOND)
+#if 0
     DrawGraphicAnimation(x, y, GFX_EDELSTEIN_BD, 4, 4, ANIM_REVERSE);
+#else
+    DrawNewGraphicAnimation(x, y, IMG_BD_DIAMOND);
+#endif
   else
   {
     if (!MovDelay[x][y])       /* next animation frame */
@@ -4243,7 +4363,11 @@ void EdelsteinFunkeln(int x, int y)
       if (setup.direct_draw && MovDelay[x][y])
        SetDrawtoField(DRAW_BUFFERED);
 
+#if 0
       DrawGraphic(SCREENX(x), SCREENY(y), el2gfx(Feld[x][y]));
+#else
+      DrawNewGraphic(SCREENX(x), SCREENY(y), el2img(Feld[x][y]), 0);
+#endif
 
       if (MovDelay[x][y])
       {
@@ -4252,14 +4376,24 @@ void EdelsteinFunkeln(int x, int y)
        if (phase > 2)
          phase = 4-phase;
 
+#if 0
        DrawGraphicThruMask(SCREENX(x), SCREENY(y), GFX_FUNKELN_WEISS + phase);
+#else
+       {
+         int frame = getNewGraphicAnimationFrame(IMG_TWINKLE_WHITE,
+                                                 10 - MovDelay[x][y]);
+
+         DrawNewGraphicThruMask(SCREENX(x), SCREENY(y), IMG_TWINKLE_WHITE,
+                                frame);
+       }
+#endif
 
        if (setup.direct_draw)
        {
          int dest_x, dest_y;
 
-         dest_x = FX + SCREENX(x)*TILEX;
-         dest_y = FY + SCREENY(y)*TILEY;
+         dest_x = FX + SCREENX(x) * TILEX;
+         dest_y = FY + SCREENY(y) * TILEY;
 
          BlitBitmap(drawto_field, window,
                     dest_x, dest_y, TILEX, TILEY, dest_x, dest_y);
index 757872e8647a8c11d35b36238e3579c74fdc99a0..811ef07e576484826ea0ebdc07889848cac8cbee 100644 (file)
@@ -1397,6 +1397,7 @@ struct FileInfo *getFileListFromConfigList(struct ConfigInfo *config_list,
   for (i=0; config_list[i].token != NULL; i++)
   {
     int len_config_token = strlen(config_list[i].token);
+    int len_config_value = strlen(config_list[i].value);
     boolean is_file_entry = TRUE;
 
     for (j=0; suffix_list[j].token != NULL; j++)
@@ -1419,8 +1420,18 @@ struct FileInfo *getFileListFromConfigList(struct ConfigInfo *config_list,
       if (i > 0)
        list_pos++;
 
-      if (list_pos >= num_file_list_entries)
-       Error(ERR_EXIT, "inconsistant config list information -- please fix");
+      if (list_pos > num_file_list_entries - 1)
+       break;
+
+      /* simple sanity check if this is really a file definition */
+      if (strcmp(&config_list[i].value[len_config_value - 4], ".pcx") != 0 &&
+         strcmp(&config_list[i].value[len_config_value - 4], ".wav") != 0 &&
+         strcmp(config_list[i].value, UNDEFINED_FILENAME) != 0)
+      {
+       Error(ERR_RETURN, "Configuration directive '%s' -> '%s':",
+             config_list[i].token, config_list[i].value);
+       Error(ERR_EXIT, "This seems to be no valid definition -- please fix");
+      }
 
       file_list[list_pos].token = config_list[i].token;
       file_list[list_pos].default_filename = config_list[i].value;
index ceb4964823e5bc7209aa964866fc37b334c58543..ccd297a68af2450981075e97d86d70f47fff60a2 100644 (file)
@@ -212,6 +212,8 @@ struct ConfigInfo image_config[] =
   { "bd_diamond.xpos",                         "0"                     },
   { "bd_diamond.ypos",                         "10"                    },
   { "bd_diamond.frames",                       "4"                     },
+  { "bd_diamond.delay",                                "4"                     },
+  { "bd_diamond.mode_reverse",                 "1"                     },
   { "bd_diamond.falling",                      "RocksElements.pcx"     },
   { "bd_diamond.falling.xpos",                 "3"                     },
   { "bd_diamond.falling.ypos",                 "10"                    },
@@ -738,6 +740,7 @@ struct ConfigInfo image_config[] =
   { "nut.cracking.xpos",                       "13"                    },
   { "nut.cracking.ypos",                       "1"                     },
   { "nut.cracking.frames",                     "3"                     },
+  { "nut.cracking.delay",                      "2"                     },
   { "nut.cracking.mode_linear",                        "1"                     },
 
   { "dynamite",                                        "RocksElements.pcx"     },
@@ -924,22 +927,79 @@ struct ConfigInfo image_config[] =
   { "amoeba.creating.xpos",                    "5"                     },
   { "amoeba.creating.ypos",                    "6"                     },
   { "amoeba.creating.frames",                  "3"                     },
-  { "amoeba.part1",                            "RocksElements.pcx"     },
-  { "amoeba.part1.xpos",                       "8"                     },
-  { "amoeba.part1.ypos",                       "6"                     },
-  { "amoeba.part1.frames",                     "1"                     },
-  { "amoeba.part2",                            "RocksElements.pcx"     },
-  { "amoeba.part2.xpos",                       "9"                     },
-  { "amoeba.part2.ypos",                       "6"                     },
-  { "amoeba.part2.frames",                     "1"                     },
-  { "amoeba.part3",                            "RocksElements.pcx"     },
-  { "amoeba.part3.xpos",                       "10"                    },
-  { "amoeba.part3.ypos",                       "6"                     },
-  { "amoeba.part3.frames",                     "1"                     },
-  { "amoeba.part4",                            "RocksElements.pcx"     },
-  { "amoeba.part4.xpos",                       "11"                    },
-  { "amoeba.part4.ypos",                       "6"                     },
-  { "amoeba.part4.frames",                     "1"                     },
+  { "amoeba.creating.delay",                   "2"                     },
+  { "amoeba.creating.mode_linear",             "1"                     },
+  { "amoeba.shrinking",                                "RocksElements.pcx"     },
+  { "amoeba.shrinking.xpos",                   "5"                     },
+  { "amoeba.shrinking.ypos",                   "6"                     },
+  { "amoeba.shrinking.frames",                 "3"                     },
+  { "amoeba.shrinking.delay",                  "2"                     },
+  { "amoeba.shrinking.mode_linear",            "1"                     },
+  { "amoeba.shrinking.mode_reverse",           "1"                     },
+  { "amoeba_wet",                              "RocksElements.pcx"     },
+  { "amoeba_wet.xpos",                         "8"                     },
+  { "amoeba_wet.ypos",                         "6"                     },
+  { "amoeba_wet.frames",                       "1"                     },
+  { "amoeba_wet.part1",                                "RocksElements.pcx"     },
+  { "amoeba_wet.part1.xpos",                   "8"                     },
+  { "amoeba_wet.part1.ypos",                   "6"                     },
+  { "amoeba_wet.part1.frames",                 "1"                     },
+  { "amoeba_wet.part2",                                "RocksElements.pcx"     },
+  { "amoeba_wet.part2.xpos",                   "9"                     },
+  { "amoeba_wet.part2.ypos",                   "6"                     },
+  { "amoeba_wet.part2.frames",                 "1"                     },
+  { "amoeba_wet.part3",                                "RocksElements.pcx"     },
+  { "amoeba_wet.part3.xpos",                   "10"                    },
+  { "amoeba_wet.part3.ypos",                   "6"                     },
+  { "amoeba_wet.part3.frames",                 "1"                     },
+  { "amoeba_wet.part4",                                "RocksElements.pcx"     },
+  { "amoeba_wet.part4.xpos",                   "11"                    },
+  { "amoeba_wet.part4.ypos",                   "6"                     },
+  { "amoeba_wet.part4.frames",                 "1"                     },
+  { "amoeba_dry",                              "RocksElements.pcx"     },
+  { "amoeba_dry.xpos",                         "8"                     },
+  { "amoeba_dry.ypos",                         "6"                     },
+  { "amoeba_dry.frames",                       "1"                     },
+  { "amoeba_dry.part1",                                "RocksElements.pcx"     },
+  { "amoeba_dry.part1.xpos",                   "8"                     },
+  { "amoeba_dry.part1.ypos",                   "6"                     },
+  { "amoeba_dry.part1.frames",                 "1"                     },
+  { "amoeba_dry.part2",                                "RocksElements.pcx"     },
+  { "amoeba_dry.part2.xpos",                   "9"                     },
+  { "amoeba_dry.part2.ypos",                   "6"                     },
+  { "amoeba_dry.part2.frames",                 "1"                     },
+  { "amoeba_dry.part3",                                "RocksElements.pcx"     },
+  { "amoeba_dry.part3.xpos",                   "10"                    },
+  { "amoeba_dry.part3.ypos",                   "6"                     },
+  { "amoeba_dry.part3.frames",                 "1"                     },
+  { "amoeba_dry.part4",                                "RocksElements.pcx"     },
+  { "amoeba_dry.part4.xpos",                   "11"                    },
+  { "amoeba_dry.part4.ypos",                   "6"                     },
+  { "amoeba_dry.part4.frames",                 "1"                     },
+  { "amoeba_full",                             "RocksElements.pcx"     },
+  { "amoeba_full.xpos",                                "8"                     },
+  { "amoeba_full.ypos",                                "6"                     },
+  { "amoeba_full.frames",                      "1"                     },
+  { "amoeba_full.part1",                       "RocksElements.pcx"     },
+  { "amoeba_full.part1.xpos",                  "8"                     },
+  { "amoeba_full.part1.ypos",                  "6"                     },
+  { "amoeba_full.part1.frames",                        "1"                     },
+  { "amoeba_full.part2",                       "RocksElements.pcx"     },
+  { "amoeba_full.part2.xpos",                  "9"                     },
+  { "amoeba_full.part2.ypos",                  "6"                     },
+  { "amoeba_full.part2.frames",                        "1"                     },
+  { "amoeba_full.part3",                       "RocksElements.pcx"     },
+  { "amoeba_full.part3.xpos",                  "10"                    },
+  { "amoeba_full.part3.ypos",                  "6"                     },
+  { "amoeba_full.part3.frames",                        "1"                     },
+  { "amoeba_full.part4",                       "RocksElements.pcx"     },
+  { "amoeba_full.part4.xpos",                  "11"                    },
+  { "amoeba_full.part4.ypos",                  "6"                     },
+  { "amoeba_full.part4.frames",                        "1"                     },
+  { "amoeba_dead",                             "RocksElements.pcx"     },
+  { "amoeba_dead.xpos",                                "12"                    },
+  { "amoeba_dead.ypos",                                "6"                     },
+  { "amoeba_dead.frames",                      "1"                     },
   { "amoeba_dead.part1",                       "RocksElements.pcx"     },
   { "amoeba_dead.part1.xpos",                  "12"                    },
   { "amoeba_dead.part1.ypos",                  "6"                     },
@@ -1012,13 +1072,16 @@ struct ConfigInfo image_config[] =
   { "exit_closed.ypos",                                "11"                    },
   { "exit_closed.frames",                      "1"                     },
   { "exit.opening",                            "RocksElements.pcx"     },
-  { "exit.opening.xpos",                       "1"                     },
+  { "exit.opening.xpos",                       "0"                     },
   { "exit.opening.ypos",                       "11"                    },
-  { "exit.opening.frames",                     "4"                     },
+  { "exit.opening.frames",                     "5"                     },
+  { "exit.opening.delay",                      "6"                     },
+  { "exit.opening.mode_linear",                        "1"                     },
   { "exit_open",                               "RocksElements.pcx"     },
   { "exit_open.xpos",                          "4"                     },
   { "exit_open.ypos",                          "11"                    },
   { "exit_open.frames",                                "4"                     },
+  { "exit_open.delay",                         "4"                     },
   { "exit_open.mode_pingpong",                 "1"                     },
 
   /* images for Emerald Mine Club style elements and actions */
@@ -1379,6 +1442,7 @@ struct ConfigInfo image_config[] =
   { "switchgate.opening.xpos",                 "8"                     },
   { "switchgate.opening.ypos",                 "5"                     },
   { "switchgate.opening.frames",               "5"                     },
+  { "switchgate.opening.delay",                        "6"                     },
   { "switchgate_open",                         "RocksDC.pcx"           },
   { "switchgate_open.xpos",                    "12"                    },
   { "switchgate_open.ypos",                    "5"                     },
@@ -1387,6 +1451,7 @@ struct ConfigInfo image_config[] =
   { "switchgate.closing.xpos",                 "8"                     },
   { "switchgate.closing.ypos",                 "5"                     },
   { "switchgate.closing.frames",               "5"                     },
+  { "switchgate.closing.delay",                        "6"                     },
   { "switchgate.closing.mode_reverse",         "1"                     },
 
   { "timegate_closed",                         "RocksDC.pcx"           },
@@ -1397,6 +1462,7 @@ struct ConfigInfo image_config[] =
   { "timegate.opening.xpos",                   "8"                     },
   { "timegate.opening.ypos",                   "6"                     },
   { "timegate.opening.frames",                 "5"                     },
+  { "timegate.opening.delay",                  "6"                     },
   { "timegate_open",                           "RocksDC.pcx"           },
   { "timegate_open.xpos",                      "12"                    },
   { "timegate_open.ypos",                      "6"                     },
@@ -1405,6 +1471,7 @@ struct ConfigInfo image_config[] =
   { "timegate.closing.xpos",                   "8"                     },
   { "timegate.closing.ypos",                   "6"                     },
   { "timegate.closing.frames",                 "5"                     },
+  { "timegate.closing.delay",                  "6"                     },
   { "timegate.closing.mode_reverse",           "1"                     },
 
   { "pearl",                                   "RocksMore.pcx"         },
@@ -1415,6 +1482,7 @@ struct ConfigInfo image_config[] =
   { "pearl.breaking.xpos",                     "0"                     },
   { "pearl.breaking.ypos",                     "4"                     },
   { "pearl.breaking.frames",                   "4"                     },
+  { "pearl.breaking.delay",                    "2"                     },
   { "pearl.breaking.mode_linear",              "4"                     },
 
   { "crystal",                                 "RocksMore.pcx"         },
@@ -2371,14 +2439,16 @@ struct ConfigInfo image_config[] =
   { "explosion.frames",                                "8"                     },
 
   { "twinkle_blue",                            "RocksHeroes.pcx"       },
-  { "twinkle_blue.xpos",                       "8"                     },
+  { "twinkle_blue.xpos",                       "9"                     },
   { "twinkle_blue.ypos",                       "11"                    },
   { "twinkle_blue.frames",                     "3"                     },
+  { "twinkle_blue.delay",                      "2"                     },
   { "twinkle_blue.mode_pingpong",              "1"                     },
   { "twinkle_white",                           "RocksHeroes.pcx"       },
-  { "twinkle_white.xpos",                      "8"                     },
+  { "twinkle_white.xpos",                      "13"                    },
   { "twinkle_white.ypos",                      "11"                    },
   { "twinkle_white.frames",                    "3"                     },
+  { "twinkle_white.delay",                     "2"                     },
   { "twinkle_white.mode_pingpong",             "1"                     },
 
   { "steelwall_topleft",                       "RocksElements.pcx"     },
index 0afb5dbbe0c27b02c537939d9e217cc3b6697798..b3b27379d86129aed3207a1cab93ac3f2868b475 100644 (file)
 #define EL_BD_AMOEBA_PART2                     (EL_FIRST_DUMMY + 14)
 #define EL_BD_AMOEBA_PART3                     (EL_FIRST_DUMMY + 15)
 #define EL_BD_AMOEBA_PART4                     (EL_FIRST_DUMMY + 16)
-#define EL_AMOEBA_PART1                                (EL_FIRST_DUMMY + 17)
-#define EL_AMOEBA_PART2                                (EL_FIRST_DUMMY + 18)
-#define EL_AMOEBA_PART3                                (EL_FIRST_DUMMY + 19)
-#define EL_AMOEBA_PART4                                (EL_FIRST_DUMMY + 20)
-#define EL_AMOEBA_DEAD_PART1                   (EL_FIRST_DUMMY + 21)
-#define EL_AMOEBA_DEAD_PART2                   (EL_FIRST_DUMMY + 22)
-#define EL_AMOEBA_DEAD_PART3                   (EL_FIRST_DUMMY + 23)
-#define EL_AMOEBA_DEAD_PART4                   (EL_FIRST_DUMMY + 24)
-#define EL_DYNABOMB_ACTIVE                     (EL_FIRST_DUMMY + 25)
-#define EL_SHIELD_NORMAL_ACTIVE                        (EL_FIRST_DUMMY + 26)
-#define EL_SHIELD_DEADLY_ACTIVE                        (EL_FIRST_DUMMY + 27)
-#define EL_ARROW_RED_LEFT                      (EL_FIRST_DUMMY + 28)
-#define EL_ARROW_RED_RIGHT                     (EL_FIRST_DUMMY + 29)
-#define EL_ARROW_RED_UP                                (EL_FIRST_DUMMY + 30)
-#define EL_ARROW_RED_DOWN                      (EL_FIRST_DUMMY + 31)
-
-#define MAX_NUM_ELEMENTS                       (EL_FIRST_DUMMY + 32)
+#define EL_AMOEBA_WET_PART1                    (EL_FIRST_DUMMY + 17)
+#define EL_AMOEBA_WET_PART2                    (EL_FIRST_DUMMY + 18)
+#define EL_AMOEBA_WET_PART3                    (EL_FIRST_DUMMY + 19)
+#define EL_AMOEBA_WET_PART4                    (EL_FIRST_DUMMY + 20)
+#define EL_AMOEBA_DRY_PART1                    (EL_FIRST_DUMMY + 21)
+#define EL_AMOEBA_DRY_PART2                    (EL_FIRST_DUMMY + 22)
+#define EL_AMOEBA_DRY_PART3                    (EL_FIRST_DUMMY + 23)
+#define EL_AMOEBA_DRY_PART4                    (EL_FIRST_DUMMY + 24)
+#define EL_AMOEBA_DEAD_PART1                   (EL_FIRST_DUMMY + 25)
+#define EL_AMOEBA_DEAD_PART2                   (EL_FIRST_DUMMY + 26)
+#define EL_AMOEBA_DEAD_PART3                   (EL_FIRST_DUMMY + 27)
+#define EL_AMOEBA_DEAD_PART4                   (EL_FIRST_DUMMY + 28)
+#define EL_DYNABOMB_ACTIVE                     (EL_FIRST_DUMMY + 29)
+#define EL_SHIELD_NORMAL_ACTIVE                        (EL_FIRST_DUMMY + 30)
+#define EL_SHIELD_DEADLY_ACTIVE                        (EL_FIRST_DUMMY + 31)
+#define EL_ARROW_RED_LEFT                      (EL_FIRST_DUMMY + 32)
+#define EL_ARROW_RED_RIGHT                     (EL_FIRST_DUMMY + 33)
+#define EL_ARROW_RED_UP                                (EL_FIRST_DUMMY + 34)
+#define EL_ARROW_RED_DOWN                      (EL_FIRST_DUMMY + 35)
+
+#define MAX_NUM_ELEMENTS                       (EL_FIRST_DUMMY + 36)
 
 
 /* game graphics:
index 37a01c4df16245f65940ec38f9e843476aec4933..ebc8cb6dd6a0a0f95b4cc4fe98d4da8953ac4f25 100644 (file)
@@ -767,7 +767,11 @@ void DrawNewGraphicAnimationExt(int x, int y, int graphic, int mask_mode)
 {
   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)))
+#endif
   {
     int frame = getNewGraphicAnimationFrame(graphic, -1);
 
@@ -1468,6 +1472,21 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element,
     DrawGraphic(x, y, graphic);
 }
 
+inline static int getFramePosition(int x, int y)
+{
+  int element = Feld[x][y];
+  int frame_pos = -1;
+
+  if (element == EL_QUICKSAND_FULL ||
+      element == EL_MAGIC_WALL_FULL ||
+      element == EL_BD_MAGIC_WALL_FULL)
+    frame_pos = -1;
+  else if (IS_MOVING(x, y) || CAN_MOVE(element) || CAN_FALL(element))
+    frame_pos = ABS(MovPos[x][y]) / (TILEX / 8);
+
+  return frame_pos;
+}
+
 inline static int getGfxAction(int x, int y)
 {
   int gfx_action = GFX_ACTION_DEFAULT;
@@ -1485,7 +1504,7 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element,
 {
   int ux = LEVELX(x), uy = LEVELY(y);
   int move_dir = MovDir[ux][uy];
-  int move_pos = ABS(MovPos[ux][uy]) / (TILEX / 8);
+  int move_pos = getFramePosition(ux, uy);
   int gfx_action = getGfxAction(ux, uy);
   int graphic = el_dir_act2img(element, move_dir, gfx_action);
   int frame = getNewGraphicAnimationFrame(graphic, move_pos);
@@ -1494,9 +1513,9 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element,
   {
     boolean left_stopped = FALSE, right_stopped = FALSE;
 
-    if (!IN_LEV_FIELD(ux-1, uy) || IS_MAUER(Feld[ux-1][uy]))
+    if (!IN_LEV_FIELD(ux - 1, uy) || IS_MAUER(Feld[ux - 1][uy]))
       left_stopped = TRUE;
-    if (!IN_LEV_FIELD(ux+1, uy) || IS_MAUER(Feld[ux+1][uy]))
+    if (!IN_LEV_FIELD(ux + 1, uy) || IS_MAUER(Feld[ux + 1][uy]))
       right_stopped = TRUE;
 
     if (left_stopped && right_stopped)
@@ -1531,12 +1550,17 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element,
        graphic += phase2;
     }
   }
+#endif
   else if (IS_AMOEBOID(element) || element == EL_AMOEBA_DRIPPING)
   {
-    graphic = (element == EL_AMOEBA_DEAD ? GFX_AMOEBE_TOT : GFX_AMOEBE_LEBT);
+    graphic = (element == EL_BD_AMOEBA ? IMG_BD_AMOEBA_PART1 :
+              element == EL_AMOEBA_WET ? IMG_AMOEBA_WET_PART1 :
+              element == EL_AMOEBA_DRY ? IMG_AMOEBA_DRY_PART1 :
+              element == EL_AMOEBA_FULL ? IMG_AMOEBA_FULL_PART1 :
+              IMG_AMOEBA_DEAD_PART1);
+
     graphic += (x + 2 * y + 4) % 4;
   }
-#endif
 
   if (dx || dy)
     DrawNewGraphicShifted(x, y, dx, dy, graphic, frame, cut_mode, mask_mode);