for(xx=0; xx<SCR_FIELDX; xx++)
for(yy=0; yy<SCR_FIELDY; yy++)
- DrawScreenField(xx,yy);
+ DrawNewScreenField(xx,yy);
DrawAllPlayers();
SetDrawtoField(DRAW_DIRECT);
IMG_BD_ROCK_FALLING
},
{
- EL_BD_ROCK, -1, GFX_ACTION_PUSHING,
- IMG_BD_ROCK_PUSHING
+ EL_BD_ROCK, MV_LEFT, GFX_ACTION_MOVING,
+ IMG_BD_ROCK_MOVING_LEFT
+ },
+ {
+ EL_BD_ROCK, MV_RIGHT, GFX_ACTION_MOVING,
+ IMG_BD_ROCK_MOVING_RIGHT
},
{
EL_BD_DIAMOND, -1, -1,
IMG_SP_ZONK_FALLING
},
{
- EL_SP_ZONK, -1, GFX_ACTION_PUSHING,
- IMG_SP_ZONK_PUSHING
+ EL_SP_ZONK, MV_LEFT, GFX_ACTION_MOVING,
+ IMG_SP_ZONK_MOVING_LEFT
+ },
+ {
+ EL_SP_ZONK, MV_RIGHT, GFX_ACTION_MOVING,
+ IMG_SP_ZONK_MOVING_RIGHT
},
{
EL_SP_BASE, -1, -1,
IMG_ROCK_FALLING
},
{
- EL_ROCK, -1, GFX_ACTION_PUSHING,
- IMG_ROCK_PUSHING
+ EL_ROCK, MV_LEFT, GFX_ACTION_MOVING,
+ IMG_ROCK_MOVING_LEFT
+ },
+ {
+ EL_ROCK, MV_RIGHT, GFX_ACTION_MOVING,
+ IMG_ROCK_MOVING_RIGHT
},
{
EL_EMERALD, -1, -1,
IMG_NUT
},
{
- EL_NUT, -1, GFX_ACTION_CRACKING,
+ EL_NUT_CRACKING, -1, -1,
IMG_NUT_CRACKING
},
{
IMG_ACID
},
{
- EL_ACID_SPLASHING_LEFT, -1, -1,
- IMG_ACID_SPLASHING_LEFT
+ EL_ACID_SPLASH_LEFT, -1, -1,
+ IMG_ACID_SPLASH_LEFT
},
{
- EL_ACID_SPLASHING_RIGHT, -1, -1,
- IMG_ACID_SPLASHING_RIGHT
+ EL_ACID_SPLASH_RIGHT, -1, -1,
+ IMG_ACID_SPLASH_RIGHT
},
{
EL_AMOEBA_DROP, -1, -1,
#define IMG_BD_WALL 0
#define IMG_BD_ROCK 1
#define IMG_BD_ROCK_FALLING 2
-#define IMG_BD_ROCK_PUSHING 3
-#define IMG_BD_DIAMOND 4
-#define IMG_BD_DIAMOND_FALLING 5
-#define IMG_BD_MAGIC_WALL 6
-#define IMG_BD_MAGIC_WALL_ACTIVE 7
-#define IMG_BD_MAGIC_WALL_FILLING 8
-#define IMG_BD_MAGIC_WALL_FULL 9
-#define IMG_BD_MAGIC_WALL_EMPTYING 10
-#define IMG_BD_MAGIC_WALL_DEAD 11
-#define IMG_BD_AMOEBA 12
-#define IMG_BD_AMOEBA_PART1 13
-#define IMG_BD_AMOEBA_PART2 14
-#define IMG_BD_AMOEBA_PART3 15
-#define IMG_BD_AMOEBA_PART4 16
-#define IMG_BD_BUTTERFLY 17
-#define IMG_BD_BUTTERFLY_MOVING 18
-#define IMG_BD_BUTTERFLY_RIGHT 19
-#define IMG_BD_BUTTERFLY_UP 20
-#define IMG_BD_BUTTERFLY_LEFT 21
-#define IMG_BD_BUTTERFLY_DOWN 22
-#define IMG_BD_FIREFLY 23
-#define IMG_BD_FIREFLY_MOVING 24
-#define IMG_BD_FIREFLY_RIGHT 25
-#define IMG_BD_FIREFLY_UP 26
-#define IMG_BD_FIREFLY_LEFT 27
-#define IMG_BD_FIREFLY_DOWN 28
-#define IMG_SP_EMPTY_SPACE 29
-#define IMG_SP_ZONK 30
-#define IMG_SP_ZONK_FALLING 31
-#define IMG_SP_ZONK_PUSHING 32
-#define IMG_SP_BASE 33
-#define IMG_SP_MURPHY 34
-#define IMG_SP_MURPHY_LEFT 35
-#define IMG_SP_MURPHY_LEFT_MOVING 36
-#define IMG_SP_MURPHY_LEFT_DIGGING 37
-#define IMG_SP_MURPHY_LEFT_PUSHING 38
-#define IMG_SP_MURPHY_LEFT_SNAPPING 39
-#define IMG_SP_MURPHY_RIGHT 40
-#define IMG_SP_MURPHY_RIGHT_MOVING 41
-#define IMG_SP_MURPHY_RIGHT_DIGGING 42
-#define IMG_SP_MURPHY_RIGHT_PUSHING 43
-#define IMG_SP_MURPHY_RIGHT_SNAPPING 44
-#define IMG_SP_MURPHY_UP 45
-#define IMG_SP_MURPHY_UP_SNAPPING 46
-#define IMG_SP_MURPHY_DOWN 47
-#define IMG_SP_MURPHY_DOWN_SNAPPING 48
-#define IMG_SP_MURPHY_CLONE 49
-#define IMG_SP_INFOTRON 50
-#define IMG_SP_INFOTRON_FALLING 51
-#define IMG_SP_CHIP_SINGLE 52
-#define IMG_SP_CHIP_LEFT 53
-#define IMG_SP_CHIP_RIGHT 54
-#define IMG_SP_CHIP_UPPER 55
-#define IMG_SP_CHIP_LOWER 56
-#define IMG_SP_HARD_GRAY 57
-#define IMG_SP_HARD_GREEN 58
-#define IMG_SP_HARD_BLUE 59
-#define IMG_SP_HARD_RED 60
-#define IMG_SP_HARD_YELLOW 61
-#define IMG_SP_EXIT_CLOSED 62
-#define IMG_SP_EXIT_OPEN 63
-#define IMG_SP_DISK_ORANGE 64
-#define IMG_SP_DISK_ORANGE_FALLING 65
-#define IMG_SP_DISK_ORANGE_PUSHING 66
-#define IMG_SP_DISK_YELLOW 67
-#define IMG_SP_DISK_YELLOW_PUSHING 68
-#define IMG_SP_DISK_RED 69
-#define IMG_SP_DISK_RED_COLLECTING 70
-#define IMG_SP_PORT1_RIGHT 71
-#define IMG_SP_PORT1_DOWN 72
-#define IMG_SP_PORT1_LEFT 73
-#define IMG_SP_PORT1_UP 74
-#define IMG_SP_PORT2_RIGHT 75
-#define IMG_SP_PORT2_DOWN 76
-#define IMG_SP_PORT2_LEFT 77
-#define IMG_SP_PORT2_UP 78
-#define IMG_SP_PORT_X 79
-#define IMG_SP_PORT_Y 80
-#define IMG_SP_PORT_XY 81
-#define IMG_SP_SNIKSNAK 82
-#define IMG_SP_SNIKSNAK_LEFT 83
-#define IMG_SP_SNIKSNAK_RIGHT 84
-#define IMG_SP_SNIKSNAK_UP 85
-#define IMG_SP_SNIKSNAK_DOWN 86
-#define IMG_SP_ELECTRON 87
-#define IMG_SP_TERMINAL 88
-#define IMG_SP_TERMINAL_ACTIVE 89
-#define IMG_SP_BUGGY_BASE 90
-#define IMG_SP_BUGGY_BASE_ACTIVE 91
-#define IMG_SP_HARD_BASE1 92
-#define IMG_SP_HARD_BASE2 93
-#define IMG_SP_HARD_BASE3 94
-#define IMG_SP_HARD_BASE4 95
-#define IMG_SP_HARD_BASE5 96
-#define IMG_SP_HARD_BASE6 97
-#define IMG_SP_EXPLOSION 98
-#define IMG_SP_EXPLOSION_INFOTRON 99
-#define IMG_SOKOBAN_OBJECT 100
-#define IMG_SOKOBAN_FIELD_EMPTY 101
-#define IMG_SOKOBAN_FIELD_FULL 102
-#define IMG_EMPTY_SPACE 103
-#define IMG_SAND 104
-#define IMG_SAND_CRUMBLED 105
-#define IMG_WALL 106
-#define IMG_WALL_CRUMBLED 107
-#define IMG_STEELWALL 108
-#define IMG_ROCK 109
-#define IMG_ROCK_FALLING 110
-#define IMG_ROCK_PUSHING 111
-#define IMG_EMERALD 112
-#define IMG_EMERALD_FALLING 113
-#define IMG_DIAMOND 114
-#define IMG_DIAMOND_FALLING 115
-#define IMG_BOMB 116
-#define IMG_NUT 117
-#define IMG_NUT_CRACKING 118
-#define IMG_DYNAMITE 119
-#define IMG_DYNAMITE_ACTIVE 120
-#define IMG_WALL_EMERALD 121
-#define IMG_WALL_DIAMOND 122
-#define IMG_BUG_RIGHT 123
-#define IMG_BUG_UP 124
-#define IMG_BUG_LEFT 125
-#define IMG_BUG_DOWN 126
-#define IMG_SPACESHIP_RIGHT 127
-#define IMG_SPACESHIP_UP 128
-#define IMG_SPACESHIP_LEFT 129
-#define IMG_SPACESHIP_DOWN 130
-#define IMG_YAMYAM 131
-#define IMG_YAMYAM_MOVING 132
-#define IMG_ROBOT 133
-#define IMG_ROBOT_WHEEL 134
-#define IMG_ROBOT_WHEEL_ACTIVE 135
-#define IMG_MAGIC_WALL 136
-#define IMG_MAGIC_WALL_ACTIVE 137
-#define IMG_MAGIC_WALL_FILLING 138
-#define IMG_MAGIC_WALL_FULL 139
-#define IMG_MAGIC_WALL_EMPTYING 140
-#define IMG_MAGIC_WALL_DEAD 141
-#define IMG_QUICKSAND_EMPTY 142
-#define IMG_QUICKSAND_FILLING 143
-#define IMG_QUICKSAND_FULL 144
-#define IMG_QUICKSAND_EMPTYING 145
-#define IMG_ACIDPOOL_TOPLEFT 146
-#define IMG_ACIDPOOL_TOPRIGHT 147
-#define IMG_ACIDPOOL_BOTTOMLEFT 148
-#define IMG_ACIDPOOL_BOTTOM 149
-#define IMG_ACIDPOOL_BOTTOMRIGHT 150
-#define IMG_ACID 151
-#define IMG_ACID_SPLASHING_LEFT 152
-#define IMG_ACID_SPLASHING_RIGHT 153
-#define IMG_AMOEBA_DROP 154
-#define IMG_AMOEBA_CREATING 155
-#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 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 IMG_BD_ROCK_MOVING_LEFT 3
+#define IMG_BD_ROCK_MOVING_RIGHT 4
+#define IMG_BD_DIAMOND 5
+#define IMG_BD_DIAMOND_FALLING 6
+#define IMG_BD_MAGIC_WALL 7
+#define IMG_BD_MAGIC_WALL_ACTIVE 8
+#define IMG_BD_MAGIC_WALL_FILLING 9
+#define IMG_BD_MAGIC_WALL_FULL 10
+#define IMG_BD_MAGIC_WALL_EMPTYING 11
+#define IMG_BD_MAGIC_WALL_DEAD 12
+#define IMG_BD_AMOEBA 13
+#define IMG_BD_AMOEBA_PART1 14
+#define IMG_BD_AMOEBA_PART2 15
+#define IMG_BD_AMOEBA_PART3 16
+#define IMG_BD_AMOEBA_PART4 17
+#define IMG_BD_BUTTERFLY 18
+#define IMG_BD_BUTTERFLY_MOVING 19
+#define IMG_BD_BUTTERFLY_RIGHT 20
+#define IMG_BD_BUTTERFLY_UP 21
+#define IMG_BD_BUTTERFLY_LEFT 22
+#define IMG_BD_BUTTERFLY_DOWN 23
+#define IMG_BD_FIREFLY 24
+#define IMG_BD_FIREFLY_MOVING 25
+#define IMG_BD_FIREFLY_RIGHT 26
+#define IMG_BD_FIREFLY_UP 27
+#define IMG_BD_FIREFLY_LEFT 28
+#define IMG_BD_FIREFLY_DOWN 29
+#define IMG_SP_EMPTY_SPACE 30
+#define IMG_SP_ZONK 31
+#define IMG_SP_ZONK_FALLING 32
+#define IMG_SP_ZONK_MOVING_LEFT 33
+#define IMG_SP_ZONK_MOVING_RIGHT 34
+#define IMG_SP_BASE 35
+#define IMG_SP_MURPHY 36
+#define IMG_SP_MURPHY_LEFT 37
+#define IMG_SP_MURPHY_LEFT_MOVING 38
+#define IMG_SP_MURPHY_LEFT_DIGGING 39
+#define IMG_SP_MURPHY_LEFT_PUSHING 40
+#define IMG_SP_MURPHY_LEFT_SNAPPING 41
+#define IMG_SP_MURPHY_RIGHT 42
+#define IMG_SP_MURPHY_RIGHT_MOVING 43
+#define IMG_SP_MURPHY_RIGHT_DIGGING 44
+#define IMG_SP_MURPHY_RIGHT_PUSHING 45
+#define IMG_SP_MURPHY_RIGHT_SNAPPING 46
+#define IMG_SP_MURPHY_UP 47
+#define IMG_SP_MURPHY_UP_SNAPPING 48
+#define IMG_SP_MURPHY_DOWN 49
+#define IMG_SP_MURPHY_DOWN_SNAPPING 50
+#define IMG_SP_MURPHY_CLONE 51
+#define IMG_SP_INFOTRON 52
+#define IMG_SP_INFOTRON_FALLING 53
+#define IMG_SP_CHIP_SINGLE 54
+#define IMG_SP_CHIP_LEFT 55
+#define IMG_SP_CHIP_RIGHT 56
+#define IMG_SP_CHIP_UPPER 57
+#define IMG_SP_CHIP_LOWER 58
+#define IMG_SP_HARD_GRAY 59
+#define IMG_SP_HARD_GREEN 60
+#define IMG_SP_HARD_BLUE 61
+#define IMG_SP_HARD_RED 62
+#define IMG_SP_HARD_YELLOW 63
+#define IMG_SP_EXIT_CLOSED 64
+#define IMG_SP_EXIT_OPEN 65
+#define IMG_SP_DISK_ORANGE 66
+#define IMG_SP_DISK_ORANGE_FALLING 67
+#define IMG_SP_DISK_ORANGE_PUSHING 68
+#define IMG_SP_DISK_YELLOW 69
+#define IMG_SP_DISK_YELLOW_PUSHING 70
+#define IMG_SP_DISK_RED 71
+#define IMG_SP_DISK_RED_COLLECTING 72
+#define IMG_SP_PORT1_RIGHT 73
+#define IMG_SP_PORT1_DOWN 74
+#define IMG_SP_PORT1_LEFT 75
+#define IMG_SP_PORT1_UP 76
+#define IMG_SP_PORT2_RIGHT 77
+#define IMG_SP_PORT2_DOWN 78
+#define IMG_SP_PORT2_LEFT 79
+#define IMG_SP_PORT2_UP 80
+#define IMG_SP_PORT_X 81
+#define IMG_SP_PORT_Y 82
+#define IMG_SP_PORT_XY 83
+#define IMG_SP_SNIKSNAK 84
+#define IMG_SP_SNIKSNAK_LEFT 85
+#define IMG_SP_SNIKSNAK_RIGHT 86
+#define IMG_SP_SNIKSNAK_UP 87
+#define IMG_SP_SNIKSNAK_DOWN 88
+#define IMG_SP_ELECTRON 89
+#define IMG_SP_TERMINAL 90
+#define IMG_SP_TERMINAL_ACTIVE 91
+#define IMG_SP_BUGGY_BASE 92
+#define IMG_SP_BUGGY_BASE_ACTIVE 93
+#define IMG_SP_HARD_BASE1 94
+#define IMG_SP_HARD_BASE2 95
+#define IMG_SP_HARD_BASE3 96
+#define IMG_SP_HARD_BASE4 97
+#define IMG_SP_HARD_BASE5 98
+#define IMG_SP_HARD_BASE6 99
+#define IMG_SP_EXPLOSION 100
+#define IMG_SP_EXPLOSION_INFOTRON 101
+#define IMG_SOKOBAN_OBJECT 102
+#define IMG_SOKOBAN_FIELD_EMPTY 103
+#define IMG_SOKOBAN_FIELD_FULL 104
+#define IMG_EMPTY_SPACE 105
+#define IMG_SAND 106
+#define IMG_SAND_CRUMBLED 107
+#define IMG_WALL 108
+#define IMG_WALL_CRUMBLED 109
+#define IMG_STEELWALL 110
+#define IMG_ROCK 111
+#define IMG_ROCK_FALLING 112
+#define IMG_ROCK_MOVING_LEFT 113
+#define IMG_ROCK_MOVING_RIGHT 114
+#define IMG_EMERALD 115
+#define IMG_EMERALD_FALLING 116
+#define IMG_DIAMOND 117
+#define IMG_DIAMOND_FALLING 118
+#define IMG_BOMB 119
+#define IMG_NUT 120
+#define IMG_NUT_CRACKING 121
+#define IMG_DYNAMITE 122
+#define IMG_DYNAMITE_ACTIVE 123
+#define IMG_WALL_EMERALD 124
+#define IMG_WALL_DIAMOND 125
+#define IMG_BUG_RIGHT 126
+#define IMG_BUG_UP 127
+#define IMG_BUG_LEFT 128
+#define IMG_BUG_DOWN 129
+#define IMG_SPACESHIP_RIGHT 130
+#define IMG_SPACESHIP_UP 131
+#define IMG_SPACESHIP_LEFT 132
+#define IMG_SPACESHIP_DOWN 133
+#define IMG_YAMYAM 134
+#define IMG_YAMYAM_MOVING 135
+#define IMG_ROBOT 136
+#define IMG_ROBOT_WHEEL 137
+#define IMG_ROBOT_WHEEL_ACTIVE 138
+#define IMG_MAGIC_WALL 139
+#define IMG_MAGIC_WALL_ACTIVE 140
+#define IMG_MAGIC_WALL_FILLING 141
+#define IMG_MAGIC_WALL_FULL 142
+#define IMG_MAGIC_WALL_EMPTYING 143
+#define IMG_MAGIC_WALL_DEAD 144
+#define IMG_QUICKSAND_EMPTY 145
+#define IMG_QUICKSAND_FILLING 146
+#define IMG_QUICKSAND_FULL 147
+#define IMG_QUICKSAND_EMPTYING 148
+#define IMG_ACIDPOOL_TOPLEFT 149
+#define IMG_ACIDPOOL_TOPRIGHT 150
+#define IMG_ACIDPOOL_BOTTOMLEFT 151
+#define IMG_ACIDPOOL_BOTTOM 152
+#define IMG_ACIDPOOL_BOTTOMRIGHT 153
+#define IMG_ACID 154
+#define IMG_ACID_SPLASH_LEFT 155
+#define IMG_ACID_SPLASH_RIGHT 156
+#define IMG_AMOEBA_DROP 157
+#define IMG_AMOEBA_CREATING 158
+#define IMG_AMOEBA_SHRINKING 159
+#define IMG_AMOEBA_WET 160
+#define IMG_AMOEBA_WET_PART1 161
+#define IMG_AMOEBA_WET_PART2 162
+#define IMG_AMOEBA_WET_PART3 163
+#define IMG_AMOEBA_WET_PART4 164
+#define IMG_AMOEBA_DRY 165
+#define IMG_AMOEBA_DRY_PART1 166
+#define IMG_AMOEBA_DRY_PART2 167
+#define IMG_AMOEBA_DRY_PART3 168
+#define IMG_AMOEBA_DRY_PART4 169
+#define IMG_AMOEBA_FULL 170
+#define IMG_AMOEBA_FULL_PART1 171
+#define IMG_AMOEBA_FULL_PART2 172
+#define IMG_AMOEBA_FULL_PART3 173
+#define IMG_AMOEBA_FULL_PART4 174
+#define IMG_AMOEBA_DEAD 175
+#define IMG_AMOEBA_DEAD_PART1 176
+#define IMG_AMOEBA_DEAD_PART2 177
+#define IMG_AMOEBA_DEAD_PART3 178
+#define IMG_AMOEBA_DEAD_PART4 179
+#define IMG_EM_KEY1 180
+#define IMG_EM_KEY2 181
+#define IMG_EM_KEY3 182
+#define IMG_EM_KEY4 183
+#define IMG_EM_GATE1 184
+#define IMG_EM_GATE2 185
+#define IMG_EM_GATE3 186
+#define IMG_EM_GATE4 187
+#define IMG_EM_GATE1_GRAY 188
+#define IMG_EM_GATE2_GRAY 189
+#define IMG_EM_GATE3_GRAY 190
+#define IMG_EM_GATE4_GRAY 191
+#define IMG_EXIT_CLOSED 192
+#define IMG_EXIT_OPENING 193
+#define IMG_EXIT_OPEN 194
+#define IMG_BALLOON 195
+#define IMG_BALLOON_MOVING 196
+#define IMG_BALLOON_SEND_LEFT 197
+#define IMG_BALLOON_SEND_RIGHT 198
+#define IMG_BALLOON_SEND_UP 199
+#define IMG_BALLOON_SEND_DOWN 200
+#define IMG_BALLOON_SEND_ANY_DIRECTION 201
+#define IMG_SPRING 202
+#define IMG_SPRING_MOVING 203
+#define IMG_EMC_STEELWALL1 204
+#define IMG_EMC_STEELWALL2 205
+#define IMG_EMC_STEELWALL3 206
+#define IMG_EMC_STEELWALL4 207
+#define IMG_EMC_WALL_PILLAR_UPPER 208
+#define IMG_EMC_WALL_PILLAR_MIDDLE 209
+#define IMG_EMC_WALL_PILLAR_LOWER 210
+#define IMG_EMC_WALL4 211
+#define IMG_EMC_WALL5 212
+#define IMG_EMC_WALL6 213
+#define IMG_EMC_WALL7 214
+#define IMG_EMC_WALL8 215
+#define IMG_INVISIBLE_STEELWALL 216
+#define IMG_INVISIBLE_STEELWALL_ACTIVE 217
+#define IMG_INVISIBLE_WALL 218
+#define IMG_INVISIBLE_WALL_ACTIVE 219
+#define IMG_INVISIBLE_SAND 220
+#define IMG_INVISIBLE_SAND_ACTIVE 221
+#define IMG_CONVEYOR_BELT1_MIDDLE 222
+#define IMG_CONVEYOR_BELT1_MIDDLE_ACTIVE 223
+#define IMG_CONVEYOR_BELT1_LEFT 224
+#define IMG_CONVEYOR_BELT1_LEFT_ACTIVE 225
+#define IMG_CONVEYOR_BELT1_RIGHT 226
+#define IMG_CONVEYOR_BELT1_RIGHT_ACTIVE 227
+#define IMG_CONVEYOR_BELT1_SWITCH_LEFT 228
+#define IMG_CONVEYOR_BELT1_SWITCH_MIDDLE 229
+#define IMG_CONVEYOR_BELT1_SWITCH_RIGHT 230
+#define IMG_CONVEYOR_BELT2_MIDDLE 231
+#define IMG_CONVEYOR_BELT2_MIDDLE_ACTIVE 232
+#define IMG_CONVEYOR_BELT2_LEFT 233
+#define IMG_CONVEYOR_BELT2_LEFT_ACTIVE 234
+#define IMG_CONVEYOR_BELT2_RIGHT 235
+#define IMG_CONVEYOR_BELT2_RIGHT_ACTIVE 236
+#define IMG_CONVEYOR_BELT2_SWITCH_LEFT 237
+#define IMG_CONVEYOR_BELT2_SWITCH_MIDDLE 238
+#define IMG_CONVEYOR_BELT2_SWITCH_RIGHT 239
+#define IMG_CONVEYOR_BELT3_MIDDLE 240
+#define IMG_CONVEYOR_BELT3_MIDDLE_ACTIVE 241
+#define IMG_CONVEYOR_BELT3_LEFT 242
+#define IMG_CONVEYOR_BELT3_LEFT_ACTIVE 243
+#define IMG_CONVEYOR_BELT3_RIGHT 244
+#define IMG_CONVEYOR_BELT3_RIGHT_ACTIVE 245
+#define IMG_CONVEYOR_BELT3_SWITCH_LEFT 246
+#define IMG_CONVEYOR_BELT3_SWITCH_MIDDLE 247
+#define IMG_CONVEYOR_BELT3_SWITCH_RIGHT 248
+#define IMG_CONVEYOR_BELT4_MIDDLE 249
+#define IMG_CONVEYOR_BELT4_MIDDLE_ACTIVE 250
+#define IMG_CONVEYOR_BELT4_LEFT 251
+#define IMG_CONVEYOR_BELT4_LEFT_ACTIVE 252
+#define IMG_CONVEYOR_BELT4_RIGHT 253
+#define IMG_CONVEYOR_BELT4_RIGHT_ACTIVE 254
+#define IMG_CONVEYOR_BELT4_SWITCH_LEFT 255
+#define IMG_CONVEYOR_BELT4_SWITCH_MIDDLE 256
+#define IMG_CONVEYOR_BELT4_SWITCH_RIGHT 257
+#define IMG_SWITCHGATE_SWITCH_UP 258
+#define IMG_SWITCHGATE_SWITCH_DOWN 259
+#define IMG_LIGHT_SWITCH 260
+#define IMG_LIGHT_SWITCH_ACTIVE 261
+#define IMG_TIMEGATE_SWITCH 262
+#define IMG_TIMEGATE_SWITCH_ACTIVE 263
+#define IMG_ENVELOPE 264
+#define IMG_SIGN_EXCLAMATION 265
+#define IMG_SIGN_STOP 266
+#define IMG_LANDMINE 267
+#define IMG_STEELWALL_SLANTED 268
+#define IMG_EXTRA_TIME 269
+#define IMG_SHIELD_NORMAL 270
+#define IMG_SHIELD_DEADLY 271
+#define IMG_SHIELD_NORMAL_ACTIVE 272
+#define IMG_SHIELD_DEADLY_ACTIVE 273
+#define IMG_SWITCHGATE_CLOSED 274
+#define IMG_SWITCHGATE_OPENING 275
+#define IMG_SWITCHGATE_OPEN 276
+#define IMG_SWITCHGATE_CLOSING 277
+#define IMG_TIMEGATE_CLOSED 278
+#define IMG_TIMEGATE_OPENING 279
+#define IMG_TIMEGATE_OPEN 280
+#define IMG_TIMEGATE_CLOSING 281
+#define IMG_PEARL 282
+#define IMG_PEARL_BREAKING 283
+#define IMG_CRYSTAL 284
+#define IMG_WALL_PEARL 285
+#define IMG_WALL_CRYSTAL 286
+#define IMG_TUBE_RIGHT_DOWN 287
+#define IMG_TUBE_HORIZONTAL_DOWN 288
+#define IMG_TUBE_LEFT_DOWN 289
+#define IMG_TUBE_HORIZONTAL 290
+#define IMG_TUBE_VERTICAL_RIGHT 291
+#define IMG_TUBE_ALL 292
+#define IMG_TUBE_VERTICAL_LEFT 293
+#define IMG_TUBE_VERTICAL 294
+#define IMG_TUBE_RIGHT_UP 295
+#define IMG_TUBE_HORIZONTAL_UP 296
+#define IMG_TUBE_LEFT_UP 297
+#define IMG_TRAP 298
+#define IMG_TRAP_ACTIVE 299
+#define IMG_DX_SUPABOMB 300
+#define IMG_KEY1 301
+#define IMG_KEY2 302
+#define IMG_KEY3 303
+#define IMG_KEY4 304
+#define IMG_GATE1 305
+#define IMG_GATE2 306
+#define IMG_GATE3 307
+#define IMG_GATE4 308
+#define IMG_GATE1_GRAY 309
+#define IMG_GATE2_GRAY 310
+#define IMG_GATE3_GRAY 311
+#define IMG_GATE4_GRAY 312
+#define IMG_GAMEOFLIFE 313
+#define IMG_BIOMAZE 314
+#define IMG_PACMAN_RIGHT 315
+#define IMG_PACMAN_UP 316
+#define IMG_PACMAN_LEFT 317
+#define IMG_PACMAN_DOWN 318
+#define IMG_LAMP 319
+#define IMG_LAMP_ACTIVE 320
+#define IMG_TIME_ORB_FULL 321
+#define IMG_TIME_ORB_EMPTY 322
+#define IMG_EMERALD_YELLOW 323
+#define IMG_EMERALD_YELLOW_FALLING 324
+#define IMG_EMERALD_RED 325
+#define IMG_EMERALD_RED_FALLING 326
+#define IMG_EMERALD_PURPLE 327
+#define IMG_EMERALD_PURPLE_FALLING 328
+#define IMG_WALL_EMERALD_YELLOW 329
+#define IMG_WALL_EMERALD_RED 330
+#define IMG_WALL_EMERALD_PURPLE 331
+#define IMG_WALL_BD_DIAMOND 332
+#define IMG_WALL_GROWING 333
+#define IMG_WALL_GROWING_XY 334
+#define IMG_WALL_GROWING_X 335
+#define IMG_WALL_GROWING_Y 336
+#define IMG_WALL_GROWING_ACTIVE_LEFT 337
+#define IMG_WALL_GROWING_ACTIVE_RIGHT 338
+#define IMG_WALL_GROWING_ACTIVE_UP 339
+#define IMG_WALL_GROWING_ACTIVE_DOWN 340
+#define IMG_BLACK_ORB 341
+#define IMG_SPEED_PILL 342
+#define IMG_DARK_YAMYAM 343
+#define IMG_DYNABOMB_ACTIVE 344
+#define IMG_DYNABOMB_PLAYER1_ACTIVE 345
+#define IMG_DYNABOMB_PLAYER2_ACTIVE 346
+#define IMG_DYNABOMB_PLAYER3_ACTIVE 347
+#define IMG_DYNABOMB_PLAYER4_ACTIVE 348
+#define IMG_DYNABOMB_NR 349
+#define IMG_DYNABOMB_SZ 350
+#define IMG_DYNABOMB_XL 351
+#define IMG_PIG 352
+#define IMG_PIG_DOWN 353
+#define IMG_PIG_DOWN_MOVING 354
+#define IMG_PIG_DOWN_EATING 355
+#define IMG_PIG_UP 356
+#define IMG_PIG_UP_MOVING 357
+#define IMG_PIG_UP_EATING 358
+#define IMG_PIG_LEFT 359
+#define IMG_PIG_LEFT_MOVING 360
+#define IMG_PIG_LEFT_EATING 361
+#define IMG_PIG_RIGHT 362
+#define IMG_PIG_RIGHT_MOVING 363
+#define IMG_PIG_RIGHT_EATING 364
+#define IMG_DRAGON 365
+#define IMG_DRAGON_DOWN 366
+#define IMG_DRAGON_DOWN_MOVING 367
+#define IMG_DRAGON_DOWN_ATTACKING 368
+#define IMG_DRAGON_UP 369
+#define IMG_DRAGON_UP_MOVING 370
+#define IMG_DRAGON_UP_ATTACKING 371
+#define IMG_DRAGON_LEFT 372
+#define IMG_DRAGON_LEFT_MOVING 373
+#define IMG_DRAGON_LEFT_ATTACKING 374
+#define IMG_DRAGON_RIGHT 375
+#define IMG_DRAGON_RIGHT_MOVING 376
+#define IMG_DRAGON_RIGHT_ATTACKING 377
+#define IMG_MOLE 378
+#define IMG_MOLE_DOWN 379
+#define IMG_MOLE_DOWN_MOVING 380
+#define IMG_MOLE_DOWN_DIGGING 381
+#define IMG_MOLE_UP 382
+#define IMG_MOLE_UP_MOVING 383
+#define IMG_MOLE_UP_DIGGING 384
+#define IMG_MOLE_LEFT 385
+#define IMG_MOLE_LEFT_MOVING 386
+#define IMG_MOLE_LEFT_DIGGING 387
+#define IMG_MOLE_RIGHT 388
+#define IMG_MOLE_RIGHT_MOVING 389
+#define IMG_MOLE_RIGHT_DIGGING 390
+#define IMG_PENGUIN 391
+#define IMG_PENGUIN_DOWN 392
+#define IMG_PENGUIN_DOWN_MOVING 393
+#define IMG_PENGUIN_UP 394
+#define IMG_PENGUIN_UP_MOVING 395
+#define IMG_PENGUIN_LEFT 396
+#define IMG_PENGUIN_LEFT_MOVING 397
+#define IMG_PENGUIN_RIGHT 398
+#define IMG_PENGUIN_RIGHT_MOVING 399
+#define IMG_SATELLITE 400
+#define IMG_SATELLITE_MOVING 401
+#define IMG_FLAMES_LEFT1 402
+#define IMG_FLAMES_LEFT2 403
+#define IMG_FLAMES_LEFT3 404
+#define IMG_FLAMES_RIGHT1 405
+#define IMG_FLAMES_RIGHT2 406
+#define IMG_FLAMES_RIGHT3 407
+#define IMG_FLAMES_UP1 408
+#define IMG_FLAMES_UP2 409
+#define IMG_FLAMES_UP3 410
+#define IMG_FLAMES_DOWN1 411
+#define IMG_FLAMES_DOWN2 412
+#define IMG_FLAMES_DOWN3 413
+#define IMG_STONEBLOCK 414
+#define IMG_PLAYER1 415
+#define IMG_PLAYER1_DOWN 416
+#define IMG_PLAYER1_DOWN_MOVING 417
+#define IMG_PLAYER1_DOWN_DIGGING 418
+#define IMG_PLAYER1_DOWN_PUSHING 419
+#define IMG_PLAYER1_DOWN_SNAPPING 420
+#define IMG_PLAYER1_UP 421
+#define IMG_PLAYER1_UP_MOVING 422
+#define IMG_PLAYER1_UP_DIGGING 423
+#define IMG_PLAYER1_UP_PUSHING 424
+#define IMG_PLAYER1_UP_SNAPPING 425
+#define IMG_PLAYER1_LEFT 426
+#define IMG_PLAYER1_LEFT_MOVING 427
+#define IMG_PLAYER1_LEFT_DIGGING 428
+#define IMG_PLAYER1_LEFT_PUSHING 429
+#define IMG_PLAYER1_LEFT_SNAPPING 430
+#define IMG_PLAYER1_RIGHT 431
+#define IMG_PLAYER1_RIGHT_MOVING 432
+#define IMG_PLAYER1_RIGHT_DIGGING 433
+#define IMG_PLAYER1_RIGHT_PUSHING 434
+#define IMG_PLAYER1_RIGHT_SNAPPING 435
+#define IMG_PLAYER2 436
+#define IMG_PLAYER2_DOWN 437
+#define IMG_PLAYER2_DOWN_MOVING 438
+#define IMG_PLAYER2_DOWN_DIGGING 439
+#define IMG_PLAYER2_DOWN_PUSHING 440
+#define IMG_PLAYER2_DOWN_SNAPPING 441
+#define IMG_PLAYER2_UP 442
+#define IMG_PLAYER2_UP_MOVING 443
+#define IMG_PLAYER2_UP_DIGGING 444
+#define IMG_PLAYER2_UP_PUSHING 445
+#define IMG_PLAYER2_UP_SNAPPING 446
+#define IMG_PLAYER2_LEFT 447
+#define IMG_PLAYER2_LEFT_MOVING 448
+#define IMG_PLAYER2_LEFT_DIGGING 449
+#define IMG_PLAYER2_LEFT_PUSHING 450
+#define IMG_PLAYER2_LEFT_SNAPPING 451
+#define IMG_PLAYER2_RIGHT 452
+#define IMG_PLAYER2_RIGHT_MOVING 453
+#define IMG_PLAYER2_RIGHT_DIGGING 454
+#define IMG_PLAYER2_RIGHT_PUSHING 455
+#define IMG_PLAYER2_RIGHT_SNAPPING 456
+#define IMG_PLAYER3 457
+#define IMG_PLAYER3_DOWN 458
+#define IMG_PLAYER3_DOWN_MOVING 459
+#define IMG_PLAYER3_DOWN_DIGGING 460
+#define IMG_PLAYER3_DOWN_PUSHING 461
+#define IMG_PLAYER3_DOWN_SNAPPING 462
+#define IMG_PLAYER3_UP 463
+#define IMG_PLAYER3_UP_MOVING 464
+#define IMG_PLAYER3_UP_DIGGING 465
+#define IMG_PLAYER3_UP_PUSHING 466
+#define IMG_PLAYER3_UP_SNAPPING 467
+#define IMG_PLAYER3_LEFT 468
+#define IMG_PLAYER3_LEFT_MOVING 469
+#define IMG_PLAYER3_LEFT_DIGGING 470
+#define IMG_PLAYER3_LEFT_PUSHING 471
+#define IMG_PLAYER3_LEFT_SNAPPING 472
+#define IMG_PLAYER3_RIGHT 473
+#define IMG_PLAYER3_RIGHT_MOVING 474
+#define IMG_PLAYER3_RIGHT_DIGGING 475
+#define IMG_PLAYER3_RIGHT_PUSHING 476
+#define IMG_PLAYER3_RIGHT_SNAPPING 477
+#define IMG_PLAYER4 478
+#define IMG_PLAYER4_DOWN 479
+#define IMG_PLAYER4_DOWN_MOVING 480
+#define IMG_PLAYER4_DOWN_DIGGING 481
+#define IMG_PLAYER4_DOWN_PUSHING 482
+#define IMG_PLAYER4_DOWN_SNAPPING 483
+#define IMG_PLAYER4_UP 484
+#define IMG_PLAYER4_UP_MOVING 485
+#define IMG_PLAYER4_UP_DIGGING 486
+#define IMG_PLAYER4_UP_PUSHING 487
+#define IMG_PLAYER4_UP_SNAPPING 488
+#define IMG_PLAYER4_LEFT 489
+#define IMG_PLAYER4_LEFT_MOVING 490
+#define IMG_PLAYER4_LEFT_DIGGING 491
+#define IMG_PLAYER4_LEFT_PUSHING 492
+#define IMG_PLAYER4_LEFT_SNAPPING 493
+#define IMG_PLAYER4_RIGHT 494
+#define IMG_PLAYER4_RIGHT_MOVING 495
+#define IMG_PLAYER4_RIGHT_DIGGING 496
+#define IMG_PLAYER4_RIGHT_PUSHING 497
+#define IMG_PLAYER4_RIGHT_SNAPPING 498
+#define IMG_EXPLOSION 499
+#define IMG_TWINKLE_BLUE 500
+#define IMG_TWINKLE_WHITE 501
+#define IMG_STEELWALL_TOPLEFT 502
+#define IMG_STEELWALL_TOPRIGHT 503
+#define IMG_STEELWALL_BOTTOMLEFT 504
+#define IMG_STEELWALL_BOTTOMRIGHT 505
+#define IMG_STEELWALL_HORIZONTAL 506
+#define IMG_STEELWALL_VERTICAL 507
+#define IMG_INVISIBLE_STEELWALL_TOPLEFT 508
+#define IMG_INVISIBLE_STEELWALL_TOPRIGHT 509
+#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT 510
+#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT 511
+#define IMG_INVISIBLE_STEELWALL_HORIZONTAL 512
+#define IMG_INVISIBLE_STEELWALL_VERTICAL 513
+#define IMG_ARROW_BLUE_LEFT 514
+#define IMG_ARROW_BLUE_RIGHT 515
+#define IMG_ARROW_BLUE_UP 516
+#define IMG_ARROW_BLUE_DOWN 517
+#define IMG_ARROW_RED_LEFT 518
+#define IMG_ARROW_RED_RIGHT 519
+#define IMG_ARROW_RED_UP 520
+#define IMG_ARROW_RED_DOWN 521
+#define IMG_BALL_RED 522
+#define IMG_BALL_BLUE 523
+#define IMG_BALL_YELLOW 524
+#define IMG_BALL_GRAY 525
+#define IMG_SCROLLBAR_BLUE 526
+#define IMG_SCROLLBAR_RED 527
+#define IMG_SCROLLBAR_GREEN 528
+#define IMG_SCROLLBAR_YELLOW 529
+#define IMG_CHAR_SPACE 530
+#define IMG_CHAR_EXCLAM 531
+#define IMG_CHAR_QUOTEDBL 532
+#define IMG_CHAR_NUMBERSIGN 533
+#define IMG_CHAR_DOLLAR 534
+#define IMG_CHAR_PROCENT 535
+#define IMG_CHAR_AMPERSAND 536
+#define IMG_CHAR_APOSTROPHE 537
+#define IMG_CHAR_PARENLEFT 538
+#define IMG_CHAR_PARENRIGHT 539
+#define IMG_CHAR_ASTERISK 540
+#define IMG_CHAR_PLUS 541
+#define IMG_CHAR_COMMA 542
+#define IMG_CHAR_MINUS 543
+#define IMG_CHAR_PERIOD 544
+#define IMG_CHAR_SLASH 545
+#define IMG_CHAR_0 546
+#define IMG_CHAR_1 547
+#define IMG_CHAR_2 548
+#define IMG_CHAR_3 549
+#define IMG_CHAR_4 550
+#define IMG_CHAR_5 551
+#define IMG_CHAR_6 552
+#define IMG_CHAR_7 553
+#define IMG_CHAR_8 554
+#define IMG_CHAR_9 555
+#define IMG_CHAR_COLON 556
+#define IMG_CHAR_SEMICOLON 557
+#define IMG_CHAR_LESS 558
+#define IMG_CHAR_EQUAL 559
+#define IMG_CHAR_GREATER 560
+#define IMG_CHAR_QUESTION 561
+#define IMG_CHAR_AT 562
+#define IMG_CHAR_A 563
+#define IMG_CHAR_B 564
+#define IMG_CHAR_C 565
+#define IMG_CHAR_D 566
+#define IMG_CHAR_E 567
+#define IMG_CHAR_F 568
+#define IMG_CHAR_G 569
+#define IMG_CHAR_H 570
+#define IMG_CHAR_I 571
+#define IMG_CHAR_J 572
+#define IMG_CHAR_K 573
+#define IMG_CHAR_L 574
+#define IMG_CHAR_M 575
+#define IMG_CHAR_N 576
+#define IMG_CHAR_O 577
+#define IMG_CHAR_P 578
+#define IMG_CHAR_Q 579
+#define IMG_CHAR_R 580
+#define IMG_CHAR_S 581
+#define IMG_CHAR_T 582
+#define IMG_CHAR_U 583
+#define IMG_CHAR_V 584
+#define IMG_CHAR_W 585
+#define IMG_CHAR_X 586
+#define IMG_CHAR_Y 587
+#define IMG_CHAR_Z 588
+#define IMG_CHAR_AE 589
+#define IMG_CHAR_OE 590
+#define IMG_CHAR_UE 591
+#define IMG_CHAR_COPYRIGHT 592
+#define IMG_CHAR_UNDERSCORE 593
+#define IMG_CHAR_EMPTY 594
+#define IMG_CHAR_DEGREE 595
+#define IMG_CHAR_TM 596
+#define IMG_CHAR_CURSOR 597
-#define NUM_IMAGE_FILES 591
+#define NUM_IMAGE_FILES 598
#endif /* CONF_GFX_H */
-#define COMPILE_DATE_STRING "[2002-10-19 21:00]"
+#define COMPILE_DATE_STRING "[2002-10-23 23:44]"
player->last_jx = player->last_jy = 0;
player->jx = player->jy = 0;
- player->shield_passive_time_left = 0;
- player->shield_active_time_left = 0;
+ player->shield_normal_time_left = 0;
+ player->shield_deadly_time_left = 0;
DigField(player, 0, 0, 0, 0, DF_NO_PUSH);
SnapField(player, 0, 0);
DrawNewGraphic(sx, sy, el2img(Store[x][y]), 0);
#endif
+#if 0
if (Feld[x][y] == EL_DYNAMITE_ACTIVE)
{
if ((frame = (96 - MovDelay[x][y]) / 12) > 6)
if ((frame = ((96 - MovDelay[x][y]) / 6) % 8) > 3)
frame = 7 - frame;
}
-
-#if 1
+#else
frame = getNewGraphicAnimationFrame(graphic, 96 - MovDelay[x][y]);
#endif
#endif
if (phase == delay)
- ErdreichAnbroeckeln(SCREENX(x), SCREENY(y));
+ DrawCrumbledSand(SCREENX(x), SCREENY(y));
if (IS_PFORTE(Store[x][y]))
{
{
int element = Feld[x][y];
- if (element != EL_ACID_SPLASHING_LEFT &&
- element != EL_ACID_SPLASHING_RIGHT) /* start */
+ if (element != EL_ACID_SPLASH_LEFT &&
+ element != EL_ACID_SPLASH_RIGHT) /* start */
{
PlaySoundLevel(x, y, SND_ACID_SPLASHING);
if (IN_LEV_FIELD(x-1, y) && IS_FREE(x-1, y) &&
(!IN_LEV_FIELD(x-1, y-1) ||
!CAN_FALL(MovingOrBlocked2Element(x-1, y-1))))
{
- Feld[x-1][y] = EL_ACID_SPLASHING_LEFT;
+ Feld[x-1][y] = EL_ACID_SPLASH_LEFT;
}
if (IN_LEV_FIELD(x+1, y) && IS_FREE(x+1, y) &&
(!IN_LEV_FIELD(x+1, y-1) ||
!CAN_FALL(MovingOrBlocked2Element(x+1, y-1))))
{
- Feld[x+1][y] = EL_ACID_SPLASHING_RIGHT;
+ Feld[x+1][y] = EL_ACID_SPLASH_RIGHT;
}
}
else /* go on */
{
#if 0
int graphic =
- (element == EL_ACID_SPLASHING_LEFT ? GFX_BLURB_LEFT : GFX_BLURB_RIGHT);
+ (element == EL_ACID_SPLASH_LEFT ? GFX_BLURB_LEFT : GFX_BLURB_RIGHT);
#else
- int graphic = (element == EL_ACID_SPLASHING_LEFT ?
- IMG_ACID_SPLASHING_LEFT :
- IMG_ACID_SPLASHING_RIGHT);
+ int graphic = (element == EL_ACID_SPLASH_LEFT ?
+ IMG_ACID_SPLASH_LEFT :
+ IMG_ACID_SPLASH_RIGHT);
#endif
if (!MovDelay[x][y]) /* initialize animation counter */
}
else if (smashed == EL_NUT)
{
- Feld[x][y+1] = EL_CRACKINGNUT;
+ Feld[x][y+1] = EL_NUT_CRACKING;
PlaySoundLevel(x, y, SND_NUT_CRACKING);
RaiseScoreElement(EL_NUT);
return;
yy = y + xy[i][1];
if (IN_LEV_FIELD(xx, yy) && Feld[xx][yy] == EL_SAND)
- DrawNewLevelField(xx, yy); /* for "ErdreichAnbroeckeln()" */
+ DrawNewLevelField(xx, yy); /* for "DrawCrumbledSand()" */
}
}
DrawNewGraphic(SCREENX(x),SCREENY(y), graphic, frame);
#endif
- ErdreichAnbroeckeln(SCREENX(x), SCREENY(y));
+ DrawCrumbledSand(SCREENX(x), SCREENY(y));
}
}
TimegateWheel(x, y);
else if (element == EL_ACID)
Blubber(x, y);
- else if (element == EL_ACID_SPLASHING_LEFT ||
- element == EL_ACID_SPLASHING_RIGHT)
+ else if (element == EL_ACID_SPLASH_LEFT ||
+ element == EL_ACID_SPLASH_RIGHT)
Blurb(x, y);
- else if (element == EL_CRACKINGNUT)
+ else if (element == EL_NUT_CRACKING)
NussKnacken(x, y);
else if (element == EL_PEARL_BREAKING)
BreakingPearl(x, y);
(element == EL_EMPTY ||
element == EL_SAND ||
element == EL_QUICKSAND_EMPTY ||
- element == EL_ACID_SPLASHING_LEFT ||
- element == EL_ACID_SPLASHING_RIGHT))
+ element == EL_ACID_SPLASH_LEFT ||
+ element == EL_ACID_SPLASH_RIGHT))
{
if ((IN_LEV_FIELD(x, y-1) && Feld[x][y-1] == EL_AMOEBA_WET) ||
(IN_LEV_FIELD(x-1, y) && Feld[x-1][y] == EL_AMOEBA_WET) ||
if (SHIELD_ON(player))
{
- if (player->shield_active_time_left)
+ if (player->shield_deadly_time_left)
PlaySoundLevel(player->jx, player->jy, SND_SHIELD_DEADLY_ACTIVE);
- else if (player->shield_passive_time_left)
+ else if (player->shield_normal_time_left)
PlaySoundLevel(player->jx, player->jy, SND_SHIELD_NORMAL_ACTIVE);
}
}
if (SHIELD_ON(player))
{
- player->shield_passive_time_left--;
+ player->shield_normal_time_left--;
- if (player->shield_active_time_left > 0)
- player->shield_active_time_left--;
+ if (player->shield_deadly_time_left > 0)
+ player->shield_deadly_time_left--;
}
}
else if (old_jx == jx && old_jy != jy)
player->MovDir = (old_jy < jy ? MV_DOWN : MV_UP);
- DrawNewLevelField(jx, jy); /* for "ErdreichAnbroeckeln()" */
+ DrawNewLevelField(jx, jy); /* for "DrawCrumbledSand()" */
player->last_move_dir = player->MovDir;
player->is_moving = TRUE;
{
struct PlayerInfo *player = PLAYERINFO(good_x, good_y);
- if (player->shield_active_time_left > 0)
+ if (player->shield_deadly_time_left > 0)
Bang(kill_x, kill_y);
else if (!PLAYER_PROTECTED(good_x, good_y))
KillHero(player);
;
#endif
- if (player->shield_active_time_left > 0)
+ if (player->shield_deadly_time_left > 0)
Bang(bad_x, bad_y);
else if (!PLAYER_PROTECTED(kill_x, kill_y))
KillHero(player);
Feld[jx][jy] = EL_EMPTY;
/* deactivate shield (else Bang()/Explode() would not work right) */
- player->shield_passive_time_left = 0;
- player->shield_active_time_left = 0;
+ player->shield_normal_time_left = 0;
+ player->shield_deadly_time_left = 0;
Bang(jx, jy);
BuryHero(player);
case EL_SHIELD_NORMAL:
RemoveField(x, y);
- player->shield_passive_time_left += 10;
+ player->shield_normal_time_left += 10;
PlaySoundLevel(x, y, SND_SHIELD_NORMAL_COLLECTING);
break;
case EL_SHIELD_DEADLY:
RemoveField(x, y);
- player->shield_passive_time_left += 10;
- player->shield_active_time_left += 10;
+ player->shield_normal_time_left += 10;
+ player->shield_deadly_time_left += 10;
PlaySoundLevel(x, y, SND_SHIELD_DEADLY_COLLECTING);
break;
static char *image_filename[NUM_PICTURES] =
{
+#if 0
+ "RocksScreen.pcx",
+ "RocksDoor.pcx",
+ "RocksToons.pcx",
+ "RocksFontBig.pcx",
+ "RocksFontSmall.pcx",
+ "RocksFontMedium.pcx",
+ "RocksFontEM.pcx"
+#else
"RocksScreen.pcx",
"RocksElements.pcx",
"RocksDoor.pcx",
"RocksFontSmall.pcx",
"RocksFontMedium.pcx",
"RocksFontEM.pcx"
+#endif
};
static void InitSetup(void);
unsigned long clip_gc_valuemask;
#if defined(TARGET_X11_NATIVE)
+
+#if 0
GC copy_clipmask_gc;
static struct
{ GFX2_SHIELD_ACTIVE, 3 },
{ -1, 0 }
};
+#endif
+
#endif /* TARGET_X11_NATIVE */
#endif /* TARGET_X11 */
#if defined(TARGET_X11_NATIVE)
+#if 0
/* create graphic context structures needed for clipping */
clip_gc_values.graphics_exposures = False;
clip_gc_valuemask = GCGraphicsExposures;
}
XFreeGC(display, copy_clipmask_gc);
+#endif
#endif /* TARGET_X11_NATIVE */
#endif /* TARGET_X11 */
image_files = getCurrentImageList();
+#if 0
for(i=0; i<MAX_GRAPHICS; i++)
{
/* always start with reliable default values */
getGraphicSource(i, &graphic_info[i].bitmap,
&graphic_info[i].src_x, &graphic_info[i].src_y);
}
+#endif
for(i=0; i<NUM_IMAGE_FILES; i++)
{
{ "bd_rock.falling.xpos", "4" },
{ "bd_rock.falling.ypos", "2" },
{ "bd_rock.falling.frames", "1" },
- { "bd_rock.pushing", "RocksMore.pcx" },
- { "bd_rock.pushing.xpos", "4" },
- { "bd_rock.pushing.ypos", "2" },
- { "bd_rock.pushing.frames", "4" },
+ { "bd_rock.moving_left", "RocksMore.pcx" },
+ { "bd_rock.moving_left.xpos", "4" },
+ { "bd_rock.moving_left.ypos", "2" },
+ { "bd_rock.moving_left.frames", "4" },
+ { "bd_rock.moving_left.delay", "2" },
+ { "bd_rock.moving_right", "RocksMore.pcx" },
+ { "bd_rock.moving_right.xpos", "4" },
+ { "bd_rock.moving_right.ypos", "2" },
+ { "bd_rock.moving_right.frames", "4" },
+ { "bd_rock.moving_right.delay", "2" },
+ { "bd_rock.moving_right.mode_reverse", "1" },
{ "bd_diamond", "RocksElements.pcx" },
{ "bd_diamond.xpos", "0" },
{ "sp_zonk.falling.xpos", "1" },
{ "sp_zonk.falling.ypos", "0" },
{ "sp_zonk.falling.frames", "1" },
- { "sp_zonk.pushing", "RocksSP.pcx" },
- { "sp_zonk.pushing.xpos", "0" },
- { "sp_zonk.pushing.ypos", "6" },
- { "sp_zonk.pushing.frames", "4" },
+ { "sp_zonk.moving_left", "RocksSP.pcx" },
+ { "sp_zonk.moving_left.xpos", "0" },
+ { "sp_zonk.moving_left.ypos", "6" },
+ { "sp_zonk.moving_left.frames", "4" },
+ { "sp_zonk.moving_left.delay", "2" },
+ { "sp_zonk.moving_right", "RocksSP.pcx" },
+ { "sp_zonk.moving_right.xpos", "0" },
+ { "sp_zonk.moving_right.ypos", "6" },
+ { "sp_zonk.moving_right.frames", "4" },
+ { "sp_zonk.moving_right.delay", "2" },
+ { "sp_zonk.moving_right.mode_reverse", "1" },
{ "sp_base", "RocksSP.pcx" },
{ "sp_base.xpos", "2" },
{ "sp_murphy_left.moving.ypos", "0" },
{ "sp_murphy_left.moving.frames", "3" },
{ "sp_murphy_left.moving.mode_pingpong", "1" },
+ { "sp_murphy_left.moving.delay", "2" },
{ "sp_murphy_left.digging", "RocksSP.pcx" },
{ "sp_murphy_left.digging.xpos", "8" },
{ "sp_murphy_left.digging.ypos", "0" },
{ "sp_murphy_left.digging.frames", "3" },
{ "sp_murphy_left.digging.mode_pingpong", "1" },
+ { "sp_murphy_left.digging.delay", "2" },
{ "sp_murphy_left.pushing", "RocksSP.pcx" },
{ "sp_murphy_left.pushing.xpos", "11" },
{ "sp_murphy_left.pushing.ypos", "1" },
{ "sp_murphy_right.moving.ypos", "0" },
{ "sp_murphy_right.moving.frames", "3" },
{ "sp_murphy_right.moving.mode_pingpong", "1" },
+ { "sp_murphy_right.moving.delay", "2" },
{ "sp_murphy_right.digging", "RocksSP.pcx" },
{ "sp_murphy_right.digging.xpos", "11" },
{ "sp_murphy_right.digging.ypos", "0" },
{ "sp_murphy_right.digging.frames", "3" },
{ "sp_murphy_right.digging.mode_pingpong", "1" },
+ { "sp_murphy_right.digging.delay", "2" },
{ "sp_murphy_right.pushing", "RocksSP.pcx" },
{ "sp_murphy_right.pushing.xpos", "10" },
{ "sp_murphy_right.pushing.ypos", "1" },
{ "rock.falling.xpos", "12" },
{ "rock.falling.ypos", "0" },
{ "rock.falling.frames", "1" },
- { "rock.pushing", "RocksElements.pcx" },
- { "rock.pushing.xpos", "12" },
- { "rock.pushing.ypos", "0" },
- { "rock.pushing.frames", "4" },
+ { "rock.moving_left", "RocksElements.pcx" },
+ { "rock.moving_left.xpos", "12" },
+ { "rock.moving_left.ypos", "0" },
+ { "rock.moving_left.frames", "4" },
+ { "rock.moving_left.delay", "2" },
+ { "rock.moving_right", "RocksElements.pcx" },
+ { "rock.moving_right.xpos", "12" },
+ { "rock.moving_right.ypos", "0" },
+ { "rock.moving_right.frames", "4" },
+ { "rock.moving_right.delay", "2" },
+ { "rock.moving_right.mode_reverse", "1" },
{ "emerald", "RocksElements.pcx" },
{ "emerald.xpos", "8" },
{ "acid.frames", "4" },
{ "acid.delay", "10" },
- { "acid.splashing_left", "RocksHeroes.pcx" },
- { "acid.splashing_left.xpos", "8" },
- { "acid.splashing_left.ypos", "10" },
- { "acid.splashing_left.frames", "4" },
- { "acid.splashing_left.delay", "2" },
- { "acid.splashing_right", "RocksHeroes.pcx" },
- { "acid.splashing_right.xpos", "12" },
- { "acid.splashing_right.ypos", "10" },
- { "acid.splashing_right.frames", "4" },
- { "acid.splashing_right.delay", "2" },
+ { "acid_splash_left", "RocksHeroes.pcx" },
+ { "acid_splash_left.xpos", "8" },
+ { "acid_splash_left.ypos", "10" },
+ { "acid_splash_left.frames", "4" },
+ { "acid_splash_left.delay", "2" },
+ { "acid_splash_right", "RocksHeroes.pcx" },
+ { "acid_splash_right.xpos", "12" },
+ { "acid_splash_right.ypos", "10" },
+ { "acid_splash_right.frames", "4" },
+ { "acid_splash_right.delay", "2" },
{ "amoeba_drop", "RocksElements.pcx" },
{ "amoeba_drop.xpos", "5" },
{ "shield_normal.active.xpos", "1" },
{ "shield_normal.active.ypos", "13" },
{ "shield_normal.active.frames", "3" },
+ { "shield_normal.active.delay", "8" },
{ "shield_normal.active.mode_pingpong", "1" },
{ "shield_deadly.active", "RocksHeroes.pcx" },
{ "shield_deadly.active.xpos", "5" },
{ "shield_deadly.active.ypos", "13" },
{ "shield_deadly.active.frames", "3" },
+ { "shield_deadly.active.delay", "8" },
{ "shield_deadly.active.mode_pingpong", "1" },
{ "switchgate_closed", "RocksDC.pcx" },
{ "arrow_red_down.ypos", "1" },
{ "arrow_red_down.frames", "1" },
+ { "ball_red", "RocksElements.pcx" },
+ { "ball_red.xpos", "12" },
+ { "ball_red.ypos", "8" },
+ { "ball_red.frames", "1" },
+ { "ball_blue", "RocksElements.pcx" },
+ { "ball_blue.xpos", "13" },
+ { "ball_blue.ypos", "8" },
+ { "ball_blue.frames", "1" },
+ { "ball_yellow", "RocksElements.pcx" },
+ { "ball_yellow.xpos", "14" },
+ { "ball_yellow.ypos", "8" },
+ { "ball_yellow.frames", "1" },
+ { "ball_gray", "RocksElements.pcx" },
+ { "ball_gray.xpos", "15" },
+ { "ball_gray.ypos", "8" },
+ { "ball_gray.frames", "1" },
+
{ "scrollbar_blue", "RocksMore.pcx" },
{ "scrollbar_blue.xpos", "0" },
{ "scrollbar_blue.ypos", "2" },
#define TAPE_IS_STOPPED(x) (!(x).recording && !(x).playing)
#define PLAYERINFO(x,y) (&stored_player[StorePlayer[x][y]-EL_PLAYER1])
-#define SHIELD_ON(p) ((p)->shield_passive_time_left > 0)
+#define SHIELD_ON(p) ((p)->shield_normal_time_left > 0)
#define PROTECTED_FIELD(x,y) (IS_TUBE(Feld[x][y]))
#define PLAYER_PROTECTED(x,y) (SHIELD_ON(PLAYERINFO(x, y)) || \
PROTECTED_FIELD(x, y))
+#define PLAYER_NR_GFX(g,i) ((g) + i * (IMG_PLAYER2 - IMG_PLAYER1))
+
+
+#if 0
+
+/* Bitmaps with graphic file */
+#define PIX_BACK 0
+#define PIX_DOOR 1
+#define PIX_TOONS 2
+#define PIX_FONT_BIG 3
+#define PIX_FONT_SMALL 4
+#define PIX_FONT_MEDIUM 5
+#define PIX_FONT_EM 6
+/* Bitmaps without graphic file */
+#define PIX_DB_DOOR 7
+#define PIX_DB_FIELD 8
+
+#define NUM_PICTURES 7
+#define NUM_BITMAPS 9
+
+#else
+
/* Bitmaps with graphic file */
#define PIX_BACK 0
#define PIX_ELEMENTS 1
#define NUM_PICTURES 12
#define NUM_BITMAPS 14
+#endif
+
/* boundaries of arrays etc. */
#define MAX_LEVEL_NAME_LEN 32
#define MAX_LEVEL_AUTHOR_LEN 32
#define EL_BLOCKED (EL_FIRST_RUNTIME_UNREAL + 0)
#define EL_EXPLOSION (EL_FIRST_RUNTIME_UNREAL + 1)
-#define EL_CRACKINGNUT (EL_FIRST_RUNTIME_UNREAL + 2)
-#define EL_ACID_SPLASHING_LEFT (EL_FIRST_RUNTIME_UNREAL + 3)
-#define EL_ACID_SPLASHING_RIGHT (EL_FIRST_RUNTIME_UNREAL + 4)
+#define EL_NUT_CRACKING (EL_FIRST_RUNTIME_UNREAL + 2)
+#define EL_ACID_SPLASH_LEFT (EL_FIRST_RUNTIME_UNREAL + 3)
+#define EL_ACID_SPLASH_RIGHT (EL_FIRST_RUNTIME_UNREAL + 4)
#define EL_AMOEBA_CREATING (EL_FIRST_RUNTIME_UNREAL + 5)
#define EL_AMOEBA_SHRINKING (EL_FIRST_RUNTIME_UNREAL + 6)
#define EL_WALL_GROWING_ACTIVE (EL_FIRST_RUNTIME_UNREAL + 7)
int key[4];
int dynamite;
int dynabomb_count, dynabomb_size, dynabombs_left, dynabomb_xl;
- int shield_passive_time_left;
- int shield_active_time_left;
+ int shield_normal_time_left;
+ int shield_deadly_time_left;
};
struct LevelInfo
graphic = cursor_array[pos];
if (color == FC_RED)
- graphic = (graphic == GFX_ARROW_BLUE_LEFT ? GFX_ARROW_RED_LEFT :
- graphic == GFX_ARROW_BLUE_RIGHT ? GFX_ARROW_RED_RIGHT :
- GFX_KUGEL_ROT);
+ graphic = (graphic == IMG_ARROW_BLUE_LEFT ? IMG_ARROW_RED_LEFT :
+ graphic == IMG_ARROW_BLUE_RIGHT ? IMG_ARROW_RED_RIGHT :
+ IMG_BALL_RED);
- DrawGraphic(0, MENU_SCREEN_START_YPOS + pos, graphic);
+ DrawNewGraphic(0, MENU_SCREEN_START_YPOS + pos, graphic, 0);
}
static void initCursor(int pos, int graphic)
}
for(i=0; i<8; i++)
- initCursor(i, (i == 1 || i == 6 ? GFX_ARROW_BLUE_RIGHT : GFX_KUGEL_BLAU));
+ initCursor(i, (i == 1 || i == 6 ? IMG_ARROW_BLUE_RIGHT : IMG_BALL_BLUE));
- DrawGraphic(10, 3, GFX_ARROW_BLUE_LEFT);
- DrawGraphic(14, 3, GFX_ARROW_BLUE_RIGHT);
+ DrawNewGraphic(10, 3, IMG_ARROW_BLUE_LEFT, 0);
+ DrawNewGraphic(14, 3, IMG_ARROW_BLUE_RIGHT, 0);
DrawText(SX + 56, SY + 326, "A Game by Artsoft Entertainment",
FS_SMALL, FC_RED);
}
j++;
- DrawGraphicExt(drawto, xstart, ystart+(i-start)*ystep, graphic+frame);
+ DrawOldGraphicExt(drawto, xstart, ystart+(i-start)*ystep, graphic+frame);
i++;
}
{
xpos = newxpos;
DrawText(SX + 6*32, SY + ypos*32, setup.player_name, FS_BIG, FC_YELLOW);
- DrawGraphic(xpos + 6, ypos, GFX_KUGEL_ROT);
+ DrawNewGraphic(xpos + 6, ypos, IMG_BALL_RED, 0);
return;
}
setup.player_name, FS_BIG, FC_YELLOW);
DrawTextExt(window, SX + 6*32, SY + ypos*32,
setup.player_name, FS_BIG, FC_YELLOW);
- DrawGraphic(xpos + 6, ypos, GFX_KUGEL_ROT);
+ DrawNewGraphic(xpos + 6, ypos, IMG_BALL_RED, 0);
}
else if ((key == KSYM_Delete || key == KSYM_BackSpace) && xpos > 0)
{
xpos--;
setup.player_name[xpos] = 0;
- DrawGraphic(xpos + 6, ypos, GFX_KUGEL_ROT);
- DrawGraphic(xpos + 7, ypos, GFX_LEERRAUM);
+ DrawNewGraphic(xpos + 6, ypos, IMG_BALL_RED, 0);
+ DrawNewGraphic(xpos + 7, ypos, IMG_EMPTY, 0);
}
else if (key == KSYM_Return && xpos > 0)
{
DrawText(SX + 6*32, SY + ypos*32, setup.player_name, FS_BIG, FC_RED);
- DrawGraphic(xpos + 6, ypos, GFX_LEERRAUM);
+ DrawNewGraphic(xpos + 6, ypos, IMG_EMPTY, 0);
SaveSetup();
game_status = MAINMENU;
DrawText(SX + 32, SY + ypos * 32, buffer, FS_MEDIUM, node->color);
if (node->parent_link)
- initCursor(i, GFX_ARROW_BLUE_LEFT);
+ initCursor(i, IMG_ARROW_BLUE_LEFT);
else if (node->level_group)
- initCursor(i, GFX_ARROW_BLUE_RIGHT);
+ initCursor(i, IMG_ARROW_BLUE_RIGHT);
else
- initCursor(i, GFX_KUGEL_BLAU);
+ initCursor(i, IMG_BALL_BLUE);
}
if (first_entry > 0)
- DrawGraphic(0, 1, GFX_ARROW_BLUE_UP);
+ DrawNewGraphic(0, 1, IMG_ARROW_BLUE_UP, 0);
if (first_entry + num_page_entries < num_entries)
- DrawGraphic(0, MAX_MENU_ENTRIES_ON_SCREEN + 1, GFX_ARROW_BLUE_DOWN);
+ DrawNewGraphic(0, MAX_MENU_ENTRIES_ON_SCREEN + 1, IMG_ARROW_BLUE_DOWN, 0);
}
static void drawChooseTreeInfo(int entry_pos, TreeInfo *ti)
DrawText(SX + 32, SY + ypos * 32, setup_info[i].text, font_size, FC_GREEN);
if (setup_info[i].type & TYPE_ENTER_MENU)
- initCursor(i, GFX_ARROW_BLUE_RIGHT);
+ initCursor(i, IMG_ARROW_BLUE_RIGHT);
else if (setup_info[i].type & TYPE_LEAVE_MENU)
- initCursor(i, GFX_ARROW_BLUE_LEFT);
+ initCursor(i, IMG_ARROW_BLUE_LEFT);
else if (setup_info[i].type & ~TYPE_SKIP_ENTRY)
- initCursor(i, GFX_KUGEL_BLAU);
+ initCursor(i, IMG_BALL_BLUE);
if (setup_info[i].type & TYPE_VALUE)
drawSetupValue(i);
ClearWindow();
DrawText(SX+16, SY+16, "Setup Input", FS_BIG, FC_YELLOW);
- initCursor(0, GFX_KUGEL_BLAU);
- initCursor(1, GFX_KUGEL_BLAU);
- initCursor(2, GFX_ARROW_BLUE_RIGHT);
- initCursor(13, GFX_ARROW_BLUE_LEFT);
+ initCursor(0, IMG_BALL_BLUE);
+ initCursor(1, IMG_BALL_BLUE);
+ initCursor(2, IMG_ARROW_BLUE_RIGHT);
+ initCursor(13, IMG_ARROW_BLUE_LEFT);
- DrawGraphic(10, MENU_SCREEN_START_YPOS, GFX_ARROW_BLUE_LEFT);
- DrawGraphic(12, MENU_SCREEN_START_YPOS, GFX_ARROW_BLUE_RIGHT);
+ DrawNewGraphic(10, MENU_SCREEN_START_YPOS, IMG_ARROW_BLUE_LEFT, 0);
+ DrawNewGraphic(12, MENU_SCREEN_START_YPOS, IMG_ARROW_BLUE_RIGHT, 0);
DrawText(SX+32, SY+2*32, "Player:", FS_BIG, FC_GREEN);
DrawText(SX+32, SY+3*32, "Device:", FS_BIG, FC_GREEN);
custom_key = setup.input[player_nr].key;
DrawText(SX+11*32, SY+2*32, int2str(player_nr + 1, 1), FS_BIG, FC_RED);
- DrawGraphic(8, 2, GFX_SPIELER1 + player_nr);
+ DrawNewGraphic(8, 2, PLAYER_NR_GFX(IMG_PLAYER1, player_nr), 0);
if (setup.input[player_nr].use_joystick)
{
}
DrawText(SX+32, SY+5*32, "Actual Settings:", FS_BIG, FC_GREEN);
- DrawGraphic(1, 6, GFX_ARROW_BLUE_LEFT);
- DrawGraphic(1, 7, GFX_ARROW_BLUE_RIGHT);
- DrawGraphic(1, 8, GFX_ARROW_BLUE_UP);
- DrawGraphic(1, 9, GFX_ARROW_BLUE_DOWN);
+ DrawNewGraphic(1, 6, IMG_ARROW_BLUE_LEFT, 0);
+ DrawNewGraphic(1, 7, IMG_ARROW_BLUE_RIGHT, 0);
+ DrawNewGraphic(1, 8, IMG_ARROW_BLUE_UP, 0);
+ DrawNewGraphic(1, 9, IMG_ARROW_BLUE_DOWN, 0);
DrawText(SX+2*32, SY+6*32, ":", FS_BIG, FC_BLUE);
DrawText(SX+2*32, SY+7*32, ":", FS_BIG, FC_BLUE);
DrawText(SX+2*32, SY+8*32, ":", FS_BIG, FC_BLUE);
for(x=0; x<3; x++)
{
check[x][y] = FALSE;
- DrawGraphic(xpos + x - 1, ypos + y - 1, GFX_KUGEL_BLAU);
+ DrawNewGraphic(xpos + x - 1, ypos + y - 1, IMG_BALL_BLUE, 0);
}
}
new_joystick_xmiddle = joy_x;
new_joystick_ymiddle = joy_y;
- DrawGraphic(xpos + last_x, ypos + last_y, GFX_KUGEL_ROT);
+ DrawNewGraphic(xpos + last_x, ypos + last_y, IMG_BALL_RED, 0);
BackToFront();
while(Joystick(player_nr) & JOY_BUTTON); /* wait for released button */
if (x != last_x || y != last_y)
{
- DrawGraphic(xpos + last_x, ypos + last_y, GFX_KUGEL_GELB);
- DrawGraphic(xpos + x, ypos + y, GFX_KUGEL_ROT);
+ DrawNewGraphic(xpos + last_x, ypos + last_y, IMG_BALL_YELLOW, 0);
+ DrawNewGraphic(xpos + x, ypos + y, IMG_BALL_RED, 0);
last_x = x;
last_y = y;
for(xx=BX1; xx<=BX2; xx++)
for(yy=BY1; yy<=BY2; yy++)
if (xx >= x1 && xx <= x2 && yy >= y1 && yy <= y2)
- DrawScreenField(xx, yy);
+ DrawNewScreenField(xx, yy);
DrawAllPlayers();
if (setup.direct_draw)
DrawPlayer(PLAYERINFO(x, y));
}
+#if 0
void DrawPlayer(struct PlayerInfo *player)
{
int jx = player->jx, jy = player->jy;
if (SHIELD_ON(player))
{
- int graphic = (player->shield_active_time_left ? GFX2_SHIELD_ACTIVE :
+ int graphic = (player->shield_deadly_time_left ? GFX2_SHIELD_ACTIVE :
GFX2_SHIELD_PASSIVE);
DrawGraphicAnimationShiftedThruMask(sx, sy, sxx, syy, graphic,
MarkTileDirty(sx,sy);
}
+#else
+
+void DrawPlayer(struct PlayerInfo *player)
+{
+ int jx = player->jx, jy = player->jy;
+ int last_jx = player->last_jx, last_jy = player->last_jy;
+ int next_jx = jx + (jx - last_jx), next_jy = jy + (jy - last_jy);
+ int sx = SCREENX(jx), sy = SCREENY(jy);
+ int sxx = 0, syy = 0;
+ int element = Feld[jx][jy], last_element = Feld[last_jx][last_jy];
+ int graphic;
+ int frame = 0;
+ boolean player_is_moving = (last_jx != jx || last_jy != jy ? TRUE : FALSE);
+
+ if (!player->active || !IN_SCR_FIELD(SCREENX(last_jx), SCREENY(last_jy)))
+ return;
+
+#if DEBUG
+ if (!IN_LEV_FIELD(jx,jy))
+ {
+ printf("DrawPlayerField(): x = %d, y = %d\n",jx,jy);
+ printf("DrawPlayerField(): sx = %d, sy = %d\n",sx,sy);
+ printf("DrawPlayerField(): This should never happen!\n");
+ return;
+ }
+#endif
+
+ if (element == EL_EXPLOSION)
+ return;
+
+ /* draw things in the field the player is leaving, if needed */
+
+ if (player_is_moving)
+ {
+ if (Store[last_jx][last_jy] && IS_DRAWABLE(last_element))
+ {
+ DrawNewLevelElement(last_jx, last_jy, Store[last_jx][last_jy]);
+
+ if (last_element == EL_DYNAMITE_ACTIVE)
+ DrawDynamite(last_jx, last_jy);
+ else
+ DrawNewLevelFieldThruMask(last_jx, last_jy);
+ }
+ else if (last_element == EL_DYNAMITE_ACTIVE)
+ DrawDynamite(last_jx, last_jy);
+ else
+ DrawNewLevelField(last_jx, last_jy);
+
+ if (player->Pushing && IN_SCR_FIELD(SCREENX(next_jx), SCREENY(next_jy)))
+ {
+ if (player->GfxPos)
+ {
+ if (Feld[next_jx][next_jy] == EL_SOKOBAN_FIELD_FULL)
+ DrawNewLevelElement(next_jx, next_jy, EL_SOKOBAN_FIELD_EMPTY);
+ else
+ DrawNewLevelElement(next_jx, next_jy, EL_EMPTY);
+ }
+ else
+ DrawNewLevelField(next_jx, next_jy);
+ }
+ }
+
+ if (!IN_SCR_FIELD(sx, sy))
+ return;
+
+ if (setup.direct_draw)
+ SetDrawtoField(DRAW_BUFFERED);
+
+ /* draw things behind the player, if needed */
+
+ if (Store[jx][jy])
+ DrawNewLevelElement(jx, jy, Store[jx][jy]);
+ else if (!IS_ACTIVE_BOMB(element))
+ DrawNewLevelField(jx, jy);
+ else
+ DrawNewLevelElement(jx, jy, EL_EMPTY);
+
+ /* draw player himself */
+
+ if (game.emulation == EMU_SUPAPLEX)
+ {
+ static int last_dir = MV_LEFT;
+ int action = (player->programmed_action ? player->programmed_action :
+ player->action);
+ boolean action_moving =
+ (player_is_moving ||
+ ((action & (MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN)) &&
+ !(action & ~(MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN))));
+
+ graphic = IMG_SP_MURPHY;
+
+ if (player->Pushing)
+ {
+ if (player->MovDir == MV_LEFT)
+ graphic = IMG_SP_MURPHY_LEFT_PUSHING;
+ else if (player->MovDir == MV_RIGHT)
+ graphic = IMG_SP_MURPHY_RIGHT_PUSHING;
+ else if (player->MovDir & (MV_UP | MV_DOWN) && last_dir == MV_LEFT)
+ graphic = IMG_SP_MURPHY_LEFT_PUSHING;
+ else if (player->MovDir & (MV_UP | MV_DOWN) && last_dir == MV_RIGHT)
+ graphic = IMG_SP_MURPHY_RIGHT_PUSHING;
+ }
+ else if (player->snapped)
+ {
+ if (player->MovDir == MV_LEFT)
+ graphic = IMG_SP_MURPHY_LEFT_SNAPPING;
+ else if (player->MovDir == MV_RIGHT)
+ graphic = IMG_SP_MURPHY_RIGHT_SNAPPING;
+ else if (player->MovDir == MV_UP)
+ graphic = IMG_SP_MURPHY_UP_SNAPPING;
+ else if (player->MovDir == MV_DOWN)
+ graphic = IMG_SP_MURPHY_DOWN_SNAPPING;
+ }
+ else if (action_moving)
+ {
+ if (player->MovDir == MV_LEFT)
+ graphic = IMG_SP_MURPHY_LEFT_MOVING;
+ else if (player->MovDir == MV_RIGHT)
+ graphic = IMG_SP_MURPHY_RIGHT_MOVING;
+ else if (player->MovDir & (MV_UP | MV_DOWN) && last_dir == MV_LEFT)
+ graphic = IMG_SP_MURPHY_LEFT_MOVING;
+ else if (player->MovDir & (MV_UP | MV_DOWN) && last_dir == MV_RIGHT)
+ graphic = IMG_SP_MURPHY_RIGHT_MOVING;
+ else
+ graphic = IMG_SP_MURPHY_LEFT_MOVING;
+
+ frame = getNewGraphicAnimationFrame(graphic, -1);
+ }
+
+ if (player->MovDir == MV_LEFT || player->MovDir == MV_RIGHT)
+ last_dir = player->MovDir;
+ }
+ else
+ {
+ if (player->MovDir == MV_LEFT)
+ graphic = (player->Pushing ? IMG_PLAYER1_LEFT_PUSHING :
+ IMG_PLAYER1_LEFT_MOVING);
+ else if (player->MovDir == MV_RIGHT)
+ graphic = (player->Pushing ? IMG_PLAYER1_RIGHT_PUSHING :
+ IMG_PLAYER1_RIGHT_MOVING);
+ else if (player->MovDir == MV_UP)
+ graphic = (player->Pushing ? IMG_PLAYER1_UP_PUSHING :
+ IMG_PLAYER1_UP_MOVING);
+ else /* MV_DOWN || MV_NO_MOVING */
+ graphic = (player->Pushing ? IMG_PLAYER1_DOWN_PUSHING :
+ IMG_PLAYER1_DOWN_MOVING);
+
+ graphic = PLAYER_NR_GFX(graphic, player->index_nr);
+
+ frame = player->Frame;
+ }
+
+ if (player->GfxPos)
+ {
+ if (player->MovDir == MV_LEFT || player->MovDir == MV_RIGHT)
+ sxx = player->GfxPos;
+ else
+ syy = player->GfxPos;
+ }
+
+ if (!setup.soft_scrolling && ScreenMovPos)
+ sxx = syy = 0;
+
+ DrawNewGraphicShiftedThruMask(sx, sy, sxx, syy, graphic, frame, NO_CUTTING);
+
+ if (SHIELD_ON(player))
+ {
+ int graphic = (player->shield_deadly_time_left ? IMG_SHIELD_DEADLY_ACTIVE :
+ IMG_SHIELD_NORMAL_ACTIVE);
+ int frame = getNewGraphicAnimationFrame(graphic, -1);
+
+ DrawNewGraphicShiftedThruMask(sx, sy, sxx, syy, graphic, frame, NO_CUTTING);
+ }
+
+ if (player->Pushing && player->GfxPos)
+ {
+ int px = SCREENX(next_jx), py = SCREENY(next_jy);
+
+ if (element == EL_SOKOBAN_FIELD_EMPTY ||
+ Feld[next_jx][next_jy] == EL_SOKOBAN_FIELD_FULL)
+ DrawNewGraphicShiftedThruMask(px, py, sxx, syy, GFX_SOKOBAN_OBJEKT, 0,
+ NO_CUTTING);
+ else
+ {
+ int element = Feld[next_jx][next_jy];
+ int graphic = el2img(element);
+ int frame = 0;
+
+ if ((element == EL_ROCK ||
+ element == EL_SP_ZONK ||
+ element == EL_BD_ROCK) && sxx)
+ {
+ graphic = el_dir_act2img(element, player->MovDir, GFX_ACTION_PUSHING);
+ frame = getNewGraphicAnimationFrame(graphic, player->GfxPos);
+
+ /* !!! FIX !!! */
+ if (player->MovDir == MV_LEFT)
+ frame = 3 - frame;
+
+#if 0
+ frame = (player->GfxPos / (TILEX / 4));
+
+ if (player->MovDir == MV_RIGHT)
+ frame = (frame + 4) % 4;
+#endif
+ }
+
+ DrawNewGraphicShifted(px, py, sxx, syy, graphic, frame,
+ NO_CUTTING, NO_MASKING);
+ }
+ }
+
+ /* draw things in front of player (active dynamite or dynabombs) */
+
+ if (IS_ACTIVE_BOMB(element))
+ {
+ graphic = el2img(element);
+
+#if 0
+ if (element == EL_DYNAMITE_ACTIVE)
+ {
+ if ((frame = (96 - MovDelay[jx][jy]) / 12) > 6)
+ frame = 6;
+ }
+ else
+ {
+ if ((frame = ((96 - MovDelay[jx][jy]) / 6) % 8) > 3)
+ frame = 7 - frame;
+ }
+#else
+ frame = getNewGraphicAnimationFrame(graphic, 96 - MovDelay[jx][jy]);
+#endif
+
+ if (game.emulation == EMU_SUPAPLEX)
+ DrawNewGraphic(sx, sy, GFX_SP_DISK_RED, 0);
+ else
+ DrawNewGraphicThruMask(sx, sy, graphic, frame);
+ }
+
+ if (player_is_moving && last_element == EL_EXPLOSION)
+ {
+ int frame = Frame[last_jx][last_jy];
+ int delay = 2;
+
+ if (frame > 2)
+ DrawNewGraphicThruMask(SCREENX(last_jx), SCREENY(last_jy),
+ GFX_EXPLOSION, ((frame - 1) / delay - 1));
+ }
+
+ /* draw elements that stay over the player */
+ /* handle the field the player is leaving ... */
+ if (player_is_moving && IS_OVER_PLAYER(last_element))
+ DrawNewLevelField(last_jx, last_jy);
+ /* ... and the field the player is entering */
+ if (IS_OVER_PLAYER(element))
+ DrawNewLevelField(jx, jy);
+
+ if (setup.direct_draw)
+ {
+ int dest_x = SX + SCREENX(MIN(jx, last_jx)) * TILEX;
+ int dest_y = SY + SCREENY(MIN(jy, last_jy)) * TILEY;
+ int x_size = TILEX * (1 + ABS(jx - last_jx));
+ int y_size = TILEY * (1 + ABS(jy - last_jy));
+
+ BlitBitmap(drawto_field, window,
+ dest_x, dest_y, x_size, y_size, dest_x, dest_y);
+ SetDrawtoField(DRAW_DIRECT);
+ }
+
+ MarkTileDirty(sx,sy);
+}
+#endif
+
static int getGraphicAnimationPhase(int frames, int delay, int mode)
{
int phase;
return frame;
}
+#if 0
void DrawGraphicAnimationExt(int x, int y, int graphic,
int frames, int delay, int mode, int mask_mode)
{
DrawGraphic(SCREENX(x), SCREENY(y), graphic + phase);
}
}
+#endif
void DrawNewGraphicAnimationExt(int x, int y, int graphic, int mask_mode)
{
}
}
+#if 0
void DrawGraphicAnimation(int x, int y, int graphic,
int frames, int delay, int mode)
{
DrawGraphicAnimationExt(x, y, graphic, frames, delay, mode, NO_MASKING);
}
+#endif
void DrawNewGraphicAnimation(int x, int y, int graphic)
{
DrawNewGraphicAnimationExt(x, y, graphic, NO_MASKING);
}
+#if 0
void DrawGraphicAnimationThruMask(int x, int y, int graphic,
int frames, int delay, int mode)
{
DrawGraphicAnimationExt(x, y, graphic, frames, delay, mode, USE_MASKING);
}
+#endif
static void DrawGraphicAnimationShiftedThruMask(int sx, int sy,
int sxx, int syy,
DrawGraphicShiftedThruMask(sx, sy, sxx, syy, graphic + phase, NO_CUTTING);
}
+#if 1
void getGraphicSource(int graphic, Bitmap **bitmap, int *x, int *y)
{
if (graphic >= 0 && graphic_info[graphic].bitmap != NULL)
*y = 0;
}
}
+#endif
+#if 0
void DrawGraphic(int x, int y, int graphic)
{
#if DEBUG
DrawGraphicExt(drawto_field, FX + x * TILEX, FY + y * TILEY, graphic);
MarkTileDirty(x, y);
}
+#endif
void DrawNewGraphic(int x, int y, int graphic, int frame)
{
MarkTileDirty(x, y);
}
-void DrawGraphicExt(DrawBuffer *dst_bitmap, int x, int y, int graphic)
+void DrawOldGraphicExt(DrawBuffer *dst_bitmap, int x, int y, int graphic)
{
Bitmap *src_bitmap;
int src_x, src_y;
BlitBitmapMasked(src_bitmap, d, src_x, src_y, TILEX, TILEY, dest_x, dest_y);
}
+#if 0
void DrawMiniGraphic(int x, int y, int graphic)
{
DrawMiniGraphicExt(drawto,
SX + x * MINI_TILEX, SY + y * MINI_TILEY, graphic);
MarkTileDirty(x / 2, y / 2);
}
+#endif
void DrawNewMiniGraphic(int x, int y, int graphic)
{
MarkTileDirty(x / 2, y / 2);
}
+#if 1
void getMiniGraphicSource(int graphic, Bitmap **bitmap, int *x, int *y)
{
if (graphic >= GFX_START_ROCKSELEMENTS && graphic <= GFX_END_ROCKSELEMENTS)
*x = src_x;
*y = src_y;
}
+#endif
+#if 0
void DrawMiniGraphicExt(DrawBuffer *d, int x, int y, int graphic)
{
Bitmap *bitmap;
getMiniGraphicSource(graphic, &bitmap, &src_x, &src_y);
BlitBitmap(bitmap, d, src_x, src_y, MINI_TILEX, MINI_TILEY, x, y);
}
+#endif
void DrawNewMiniGraphicExt(DrawBuffer *d, int x, int y, int graphic)
{
BlitBitmap(src_bitmap, d, src_x, src_y, MINI_TILEX, MINI_TILEY, x, y);
}
+#if 0
void DrawGraphicShifted(int x,int y, int dx,int dy, int graphic,
int cut_mode, int mask_mode)
{
MarkTileDirty(x,y);
}
+#endif
void DrawNewGraphicShifted(int x,int y, int dx,int dy, int graphic, int frame,
int cut_mode, int mask_mode)
}
src_bitmap = new_graphic_info[graphic].bitmap;
- drawing_gc = src_bitmap->stored_clip_gc;
src_x = new_graphic_info[graphic].src_x;
src_y = new_graphic_info[graphic].src_y;
offset_x = new_graphic_info[graphic].offset_x;
offset_y = new_graphic_info[graphic].offset_y;
+ drawing_gc = src_bitmap->stored_clip_gc;
+
src_x += frame * offset_x;
src_y += frame * offset_y;
#endif
if (mask_mode == USE_MASKING)
+ {
SetClipOrigin(src_bitmap, drawing_gc, dest_x - src_x, dest_y - src_y);
-
- BlitBitmap(src_bitmap, drawto_field, src_x, src_y, width, height,
- dest_x, dest_y);
+ BlitBitmapMasked(src_bitmap, drawto_field, src_x, src_y, width, height,
+ dest_x, dest_y);
+ }
+ else
+ BlitBitmap(src_bitmap, drawto_field, src_x, src_y, width, height,
+ dest_x, dest_y);
MarkTileDirty(x,y);
}
+#if 0
void DrawGraphicShiftedThruMask(int x,int y, int dx,int dy, int graphic,
int cut_mode)
{
DrawGraphicShifted(x,y, dx,dy, graphic, cut_mode, USE_MASKING);
}
+#endif
void DrawNewGraphicShiftedThruMask(int x,int y, int dx,int dy, int graphic,
int frame, int cut_mode)
DrawNewGraphicShifted(x,y, dx,dy, graphic, frame, cut_mode, USE_MASKING);
}
+#if 0
void DrawScreenElementExt(int x, int y, int dx, int dy, int element,
int cut_mode, int mask_mode)
{
else
DrawGraphic(x, y, graphic);
}
+#endif
inline static int getFramePosition(int x, int y)
{
DrawNewGraphic(x, y, graphic, frame);
}
+#if 0
void DrawLevelElementExt(int x, int y, int dx, int dy, int element,
int cut_mode, int mask_mode)
{
DrawScreenElementExt(SCREENX(x), SCREENY(y), dx, dy, element,
cut_mode, mask_mode);
}
+#endif
void DrawNewLevelElementExt(int x, int y, int dx, int dy, int element,
int cut_mode, int mask_mode)
cut_mode, mask_mode);
}
+#if 0
void DrawScreenElementShifted(int x, int y, int dx, int dy, int element,
int cut_mode)
{
DrawScreenElementExt(x, y, dx, dy, element, cut_mode, NO_MASKING);
}
+#endif
void DrawNewScreenElementShifted(int x, int y, int dx, int dy, int element,
int cut_mode)
DrawNewScreenElementExt(x, y, dx, dy, element, cut_mode, NO_MASKING);
}
+#if 0
void DrawLevelElementShifted(int x, int y, int dx, int dy, int element,
int cut_mode)
{
DrawLevelElementExt(x, y, dx, dy, element, cut_mode, NO_MASKING);
}
+#endif
void DrawNewLevelElementShifted(int x, int y, int dx, int dy, int element,
int cut_mode)
DrawNewLevelElementExt(x, y, dx, dy, element, cut_mode, NO_MASKING);
}
+#if 0
void DrawScreenElementThruMask(int x, int y, int element)
{
DrawScreenElementExt(x, y, 0, 0, element, NO_CUTTING, USE_MASKING);
{
DrawNewScreenElementExt(x, y, 0, 0, element, NO_CUTTING, USE_MASKING);
}
+#endif
+#if 0
void DrawLevelElementThruMask(int x, int y, int element)
{
DrawLevelElementExt(x, y, 0, 0, element, NO_CUTTING, USE_MASKING);
}
+#endif
void DrawNewLevelElementThruMask(int x, int y, int element)
{
DrawNewLevelElementExt(x, y, 0, 0, element, NO_CUTTING, USE_MASKING);
}
+#if 0
void DrawLevelFieldThruMask(int x, int y)
{
DrawLevelElementExt(x, y, 0, 0, Feld[x][y], NO_CUTTING, USE_MASKING);
}
+#endif
void DrawNewLevelFieldThruMask(int x, int y)
{
DrawNewLevelElementExt(x, y, 0, 0, Feld[x][y], NO_CUTTING, USE_MASKING);
}
+#if 0
void ErdreichAnbroeckeln(int x, int y)
{
Bitmap *src_bitmap;
}
}
}
+#endif
+
+void DrawCrumbledSand(int x, int y)
+{
+ Bitmap *src_bitmap;
+ int src_x, src_y;
+ int i, width, height, cx,cy;
+ int ux = LEVELX(x), uy = LEVELY(y);
+ int element, graphic;
+ int snip = 4;
+ static int xy[4][2] =
+ {
+ { 0, -1 },
+ { -1, 0 },
+ { +1, 0 },
+ { 0, +1 }
+ };
+
+ if (!IN_LEV_FIELD(ux, uy))
+ return;
+
+ element = Feld[ux][uy];
+
+ if (element == EL_SAND ||
+ element == EL_LANDMINE ||
+ element == EL_TRAP ||
+ element == EL_TRAP_ACTIVE)
+ {
+ if (!IN_SCR_FIELD(x, y))
+ return;
+
+ graphic = IMG_SAND_CRUMBLED;
+
+ src_bitmap = new_graphic_info[graphic].bitmap;
+ src_x = new_graphic_info[graphic].src_x;
+ src_y = new_graphic_info[graphic].src_y;
+
+ for(i=0; i<4; i++)
+ {
+ int uxx, uyy;
+ uxx = ux + xy[i][0];
+ uyy = uy + xy[i][1];
+ if (!IN_LEV_FIELD(uxx, uyy))
+ element = EL_STEELWALL;
+ else
+ element = Feld[uxx][uyy];
+
+ if (element == EL_SAND ||
+ element == EL_LANDMINE ||
+ element == EL_TRAP ||
+ element == EL_TRAP_ACTIVE)
+ continue;
+
+ if (i == 1 || i == 2)
+ {
+ width = snip;
+ height = TILEY;
+ cx = (i == 2 ? TILEX - snip : 0);
+ cy = 0;
+ }
+ else
+ {
+ width = TILEX;
+ height = snip;
+ cx = 0;
+ cy = (i == 3 ? TILEY - snip : 0);
+ }
+
+ BlitBitmap(src_bitmap, drawto_field, src_x + cx, src_y + cy,
+ width, height, FX + x * TILEX + cx, FY + y * TILEY + cy);
+ }
+
+ MarkTileDirty(x, y);
+ }
+ else
+ {
+ graphic = IMG_SAND_CRUMBLED;
+
+ src_bitmap = new_graphic_info[graphic].bitmap;
+ src_x = new_graphic_info[graphic].src_x;
+ src_y = new_graphic_info[graphic].src_y;
+
+ for(i=0; i<4; i++)
+ {
+ int xx, yy, uxx, uyy;
+
+ xx = x + xy[i][0];
+ yy = y + xy[i][1];
+ uxx = ux + xy[i][0];
+ uyy = uy + xy[i][1];
+
+ if (!IN_LEV_FIELD(uxx, uyy) ||
+ (Feld[uxx][uyy] != EL_SAND &&
+ Feld[uxx][uyy] != EL_LANDMINE &&
+ Feld[uxx][uyy] != EL_TRAP &&
+ Feld[uxx][uyy] != EL_TRAP_ACTIVE) ||
+ !IN_SCR_FIELD(xx, yy))
+ continue;
+
+ if (i == 1 || i == 2)
+ {
+ width = snip;
+ height = TILEY;
+ cx = (i == 1 ? TILEX - snip : 0);
+ cy = 0;
+ }
+ else
+ {
+ width = TILEX;
+ height = snip;
+ cx = 0;
+ cy = (i==0 ? TILEY-snip : 0);
+ }
+
+ BlitBitmap(src_bitmap, drawto_field, src_x + cx, src_y + cy,
+ width, height, FX + xx * TILEX + cx, FY + yy * TILEY + cy);
+
+ MarkTileDirty(xx, yy);
+ }
+ }
+}
+
+#if 0
void DrawScreenElement(int x, int y, int element)
{
DrawScreenElementExt(x, y, 0, 0, element, NO_CUTTING, NO_MASKING);
ErdreichAnbroeckeln(x, y);
}
+#endif
void DrawNewScreenElement(int x, int y, int element)
{
DrawNewScreenElementExt(x, y, 0, 0, element, NO_CUTTING, NO_MASKING);
- ErdreichAnbroeckeln(x, y);
+ DrawCrumbledSand(x, y);
}
+
+#if 0
void DrawLevelElement(int x, int y, int element)
{
if (IN_LEV_FIELD(x, y) && IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
DrawScreenElement(SCREENX(x), SCREENY(y), element);
}
+#endif
void DrawNewLevelElement(int x, int y, int element)
{
DrawNewScreenElement(SCREENX(x), SCREENY(y), element);
}
+#if 0
void DrawScreenField(int x, int y)
{
int ux = LEVELX(x), uy = LEVELY(y);
else
DrawScreenElement(x, y, EL_EMPTY);
}
+#endif
void DrawNewScreenField(int x, int y)
{
DrawNewScreenElement(x, y, EL_EMPTY);
}
+#if 0
void DrawLevelField(int x, int y)
{
if (IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
DrawScreenField(SCREENX(oldx), SCREENY(oldy));
}
}
+#endif
void DrawNewLevelField(int x, int y)
{
}
}
+#if 0
void DrawMiniElement(int x, int y, int element)
{
int graphic;
graphic = el2gfx(element);
DrawMiniGraphic(x, y, graphic);
}
+#endif
void DrawNewMiniElement(int x, int y, int element)
{
DrawNewMiniGraphic(x, y, graphic);
}
+#if 0
void DrawMiniElementOrWall(int sx, int sy, int scroll_x, int scroll_y)
{
int x = sx + scroll_x, y = sy + scroll_y;
DrawMiniGraphic(sx, sy, border[steel_position][steel_type]);
}
}
+#endif
void DrawNewMiniElementOrWall(int sx, int sy, int scroll_x, int scroll_y)
{
}
}
+#if 0
void DrawMicroElement(int xpos, int ypos, int element)
{
int graphic;
MICRO_GFX_STARTY + (graphic / MICRO_GFX_PER_LINE) * MICRO_TILEY,
MICRO_TILEX, MICRO_TILEY, xpos, ypos);
}
+#endif
void getNewMicroGraphicSource(int graphic, Bitmap **bitmap, int *x, int *y)
{
redraw_mask |= REDRAW_FIELD;
}
+#if 0
void DrawMiniLevel(int size_x, int size_y, int scroll_x, int scroll_y)
{
int x,y;
redraw_mask |= REDRAW_FIELD;
}
+#endif
void DrawNewMiniLevel(int size_x, int size_y, int scroll_x, int scroll_y)
{
redraw_mask |= REDRAW_FIELD;
}
+#if 0
static void DrawMicroLevelExt(int xpos, int ypos, int from_x, int from_y)
{
int x, y;
redraw_mask |= REDRAW_MICROLEVEL;
}
+#endif
static void DrawNewMicroLevelExt(int xpos, int ypos, int from_x, int from_y)
{
break;
}
- DrawMicroLevelExt(xpos, ypos, from_x, from_y);
+ DrawNewMicroLevelExt(xpos, ypos, from_x, from_y);
}
/* redraw micro level label, if needed */
void getGraphicSource(int, Bitmap **, int *, int *);
void DrawGraphic(int, int, int);
void DrawNewGraphic(int, int, int, int);
-void DrawGraphicExt(DrawBuffer *, int, int, int);
+void DrawOldGraphicExt(DrawBuffer *, int, int, int);
void DrawNewGraphicExt(DrawBuffer *, int, int, int, int);
void DrawGraphicThruMask(int, int, int);
void DrawNewGraphicThruMask(int, int, int, int);
void DrawLevelFieldThruMask(int, int);
void DrawNewLevelFieldThruMask(int, int);
void ErdreichAnbroeckeln(int, int);
+void DrawCrumbledSand(int, int);
void DrawScreenElement(int, int, int);
void DrawNewScreenElement(int, int, int);
void DrawLevelElement(int, int, int);