From 268045d6b06349f1cf10d5cc6f9516b5caa20dea Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Sat, 26 Jul 2003 03:12:06 +0200 Subject: [PATCH] rnd-20030726-1-src --- Makefile | 4 +- src/conf_e2g.c | 124 +-- src/conf_gfx.c | 121 +-- src/conf_gfx.h | 1915 +++++++++++++++++++++---------------------- src/conftime.h | 2 +- src/editor.c | 2 +- src/events.c | 1 + src/game.c | 44 +- src/init.c | 85 +- src/libgame/misc.c | 406 ++++++++- src/libgame/setup.c | 107 ++- src/libgame/setup.h | 1 + src/main.c | 28 + src/main.h | 23 +- src/tools.c | 48 +- 15 files changed, 1785 insertions(+), 1126 deletions(-) diff --git a/Makefile b/Makefile index 0c22aefb..bdd285b5 100644 --- a/Makefile +++ b/Makefile @@ -49,8 +49,8 @@ CROSS_PATH_WIN32=/usr/local/cross-tools/i386-mingw32msvc SRC_DIR = src MAKE_CMD = $(MAKE) -C $(SRC_DIR) -# DEFAULT_TARGET = x11 -DEFAULT_TARGET = sdl +DEFAULT_TARGET = x11 +# DEFAULT_TARGET = sdl all: @$(MAKE_CMD) TARGET=$(DEFAULT_TARGET) diff --git a/src/conf_e2g.c b/src/conf_e2g.c index ed2a9abf..45e85c93 100644 --- a/src/conf_e2g.c +++ b/src/conf_e2g.c @@ -36,10 +36,6 @@ element_to_graphic[] = EL_BD_ROCK, -1, -1, IMG_BD_ROCK }, - { - EL_BD_ROCK, ACTION_FALLING, -1, - IMG_BD_ROCK_FALLING - }, { EL_BD_ROCK, ACTION_MOVING, MV_BIT_LEFT, IMG_BD_ROCK_MOVING_LEFT @@ -48,6 +44,14 @@ element_to_graphic[] = EL_BD_ROCK, ACTION_MOVING, MV_BIT_RIGHT, IMG_BD_ROCK_MOVING_RIGHT }, + { + EL_BD_ROCK, ACTION_PUSHING, MV_BIT_LEFT, + IMG_BD_ROCK_PUSHING_LEFT + }, + { + EL_BD_ROCK, ACTION_PUSHING, MV_BIT_RIGHT, + IMG_BD_ROCK_PUSHING_RIGHT + }, { EL_BD_DIAMOND, -1, -1, IMG_BD_DIAMOND @@ -192,10 +196,6 @@ element_to_graphic[] = EL_SP_ZONK, -1, -1, IMG_SP_ZONK }, - { - EL_SP_ZONK, ACTION_FALLING, -1, - IMG_SP_ZONK_FALLING - }, { EL_SP_ZONK, ACTION_MOVING, MV_BIT_LEFT, IMG_SP_ZONK_MOVING_LEFT @@ -204,6 +204,14 @@ element_to_graphic[] = EL_SP_ZONK, ACTION_MOVING, MV_BIT_RIGHT, IMG_SP_ZONK_MOVING_RIGHT }, + { + EL_SP_ZONK, ACTION_PUSHING, MV_BIT_LEFT, + IMG_SP_ZONK_PUSHING_LEFT + }, + { + EL_SP_ZONK, ACTION_PUSHING, MV_BIT_RIGHT, + IMG_SP_ZONK_PUSHING_RIGHT + }, { EL_SP_BASE, -1, -1, IMG_SP_BASE @@ -268,10 +276,6 @@ element_to_graphic[] = EL_SP_INFOTRON, -1, -1, IMG_SP_INFOTRON }, - { - EL_SP_INFOTRON, ACTION_FALLING, -1, - IMG_SP_INFOTRON_FALLING - }, { EL_SP_CHIP_SINGLE, -1, -1, IMG_SP_CHIP_SINGLE @@ -324,22 +328,10 @@ element_to_graphic[] = EL_SP_DISK_ORANGE, -1, -1, IMG_SP_DISK_ORANGE }, - { - EL_SP_DISK_ORANGE, ACTION_FALLING, -1, - IMG_SP_DISK_ORANGE_FALLING - }, - { - EL_SP_DISK_ORANGE, ACTION_PUSHING, -1, - IMG_SP_DISK_ORANGE_PUSHING - }, { EL_SP_DISK_YELLOW, -1, -1, IMG_SP_DISK_YELLOW }, - { - EL_SP_DISK_YELLOW, ACTION_PUSHING, -1, - IMG_SP_DISK_YELLOW_PUSHING - }, { EL_SP_DISK_RED, -1, -1, IMG_SP_DISK_RED @@ -348,14 +340,6 @@ element_to_graphic[] = EL_SP_DISK_RED, ACTION_COLLECTING, -1, IMG_SP_DISK_RED_COLLECTING }, - { - EL_SP_DISK_RED_ACTIVE, -1, -1, - IMG_SP_DISK_RED_ACTIVE - }, - { - EL_SP_DISK_RED, ACTION_ACTIVE, -1, - IMG_SP_DISK_RED_ACTIVE - }, { EL_SP_PORT_RIGHT, -1, -1, IMG_SP_PORT_RIGHT @@ -556,10 +540,6 @@ element_to_graphic[] = EL_ROCK, -1, -1, IMG_ROCK }, - { - EL_ROCK, ACTION_FALLING, -1, - IMG_ROCK_FALLING - }, { EL_ROCK, ACTION_MOVING, MV_BIT_LEFT, IMG_ROCK_MOVING_LEFT @@ -568,6 +548,14 @@ element_to_graphic[] = EL_ROCK, ACTION_MOVING, MV_BIT_RIGHT, IMG_ROCK_MOVING_RIGHT }, + { + EL_ROCK, ACTION_PUSHING, MV_BIT_LEFT, + IMG_ROCK_PUSHING_LEFT + }, + { + EL_ROCK, ACTION_PUSHING, MV_BIT_RIGHT, + IMG_ROCK_PUSHING_RIGHT + }, { EL_EMERALD, -1, -1, IMG_EMERALD @@ -608,18 +596,6 @@ element_to_graphic[] = EL_NUT, -1, -1, IMG_NUT }, - { - EL_NUT, ACTION_FALLING, -1, - IMG_NUT_FALLING - }, - { - EL_NUT, ACTION_MOVING, MV_BIT_LEFT, - IMG_NUT_MOVING_LEFT - }, - { - EL_NUT, ACTION_MOVING, MV_BIT_RIGHT, - IMG_NUT_MOVING_RIGHT - }, { EL_NUT_BREAKING, -1, -1, IMG_NUT_BREAKING @@ -964,6 +940,10 @@ element_to_graphic[] = EL_BALLOON, ACTION_MOVING, -1, IMG_BALLOON_MOVING }, + { + EL_BALLOON, ACTION_PUSHING, -1, + IMG_BALLOON_PUSHING + }, { EL_BALLOON_SWITCH_LEFT, -1, -1, IMG_BALLOON_SWITCH_LEFT @@ -988,10 +968,6 @@ element_to_graphic[] = EL_SPRING, -1, -1, IMG_SPRING }, - { - EL_SPRING, ACTION_MOVING, -1, - IMG_SPRING_MOVING - }, { EL_EMC_STEELWALL_1, -1, -1, IMG_EMC_STEELWALL_1 @@ -1704,26 +1680,66 @@ element_to_graphic[] = EL_DARK_YAMYAM, -1, -1, IMG_DARK_YAMYAM }, + { + EL_DYNABOMB, -1, -1, + IMG_DYNABOMB + }, { EL_DYNABOMB_ACTIVE, -1, -1, IMG_DYNABOMB_ACTIVE }, + { + EL_DYNABOMB, ACTION_ACTIVE, -1, + IMG_DYNABOMB_ACTIVE + }, + { + EL_DYNABOMB_PLAYER_1, -1, -1, + IMG_DYNABOMB_PLAYER_1 + }, { EL_DYNABOMB_PLAYER_1_ACTIVE, -1, -1, IMG_DYNABOMB_PLAYER_1_ACTIVE }, + { + EL_DYNABOMB_PLAYER_1, ACTION_ACTIVE, -1, + IMG_DYNABOMB_PLAYER_1_ACTIVE + }, + { + EL_DYNABOMB_PLAYER_2, -1, -1, + IMG_DYNABOMB_PLAYER_2 + }, { EL_DYNABOMB_PLAYER_2_ACTIVE, -1, -1, IMG_DYNABOMB_PLAYER_2_ACTIVE }, + { + EL_DYNABOMB_PLAYER_2, ACTION_ACTIVE, -1, + IMG_DYNABOMB_PLAYER_2_ACTIVE + }, + { + EL_DYNABOMB_PLAYER_3, -1, -1, + IMG_DYNABOMB_PLAYER_3 + }, { EL_DYNABOMB_PLAYER_3_ACTIVE, -1, -1, IMG_DYNABOMB_PLAYER_3_ACTIVE }, + { + EL_DYNABOMB_PLAYER_3, ACTION_ACTIVE, -1, + IMG_DYNABOMB_PLAYER_3_ACTIVE + }, + { + EL_DYNABOMB_PLAYER_4, -1, -1, + IMG_DYNABOMB_PLAYER_4 + }, { EL_DYNABOMB_PLAYER_4_ACTIVE, -1, -1, IMG_DYNABOMB_PLAYER_4_ACTIVE }, + { + EL_DYNABOMB_PLAYER_4, ACTION_ACTIVE, -1, + IMG_DYNABOMB_PLAYER_4_ACTIVE + }, { EL_DYNABOMB_INCREASE_NUMBER, -1, -1, IMG_DYNABOMB_INCREASE_NUMBER @@ -1948,10 +1964,6 @@ element_to_graphic[] = EL_SATELLITE, -1, -1, IMG_SATELLITE }, - { - EL_SATELLITE, ACTION_MOVING, -1, - IMG_SATELLITE_MOVING - }, { EL_STONEBLOCK, -1, -1, IMG_STONEBLOCK diff --git a/src/conf_gfx.c b/src/conf_gfx.c index c7fe8f4b..60b7c875 100644 --- a/src/conf_gfx.c +++ b/src/conf_gfx.c @@ -67,10 +67,6 @@ struct ConfigInfo image_config[] = { "bd_rock.EDITOR", "RocksDC.pcx" }, { "bd_rock.EDITOR.xpos", "14" }, { "bd_rock.EDITOR.ypos", "14" }, - { "bd_rock.falling", "RocksDC.pcx" }, - { "bd_rock.falling.xpos", "12" }, - { "bd_rock.falling.ypos", "10" }, - { "bd_rock.falling.frames", "1" }, { "bd_rock.moving.left", "RocksDC.pcx" }, { "bd_rock.moving.left.xpos", "12" }, { "bd_rock.moving.left.ypos", "10" }, @@ -83,6 +79,18 @@ struct ConfigInfo image_config[] = { "bd_rock.moving.right.frames", "4" }, { "bd_rock.moving.right.start_frame", "1" }, { "bd_rock.moving.right.delay", "2" }, + { "bd_rock.pushing.left", "RocksDC.pcx" }, + { "bd_rock.pushing.left.xpos", "12" }, + { "bd_rock.pushing.left.ypos", "10" }, + { "bd_rock.pushing.left.frames", "4" }, + { "bd_rock.pushing.left.delay", "2" }, + { "bd_rock.pushing.left.anim_mode", "reverse" }, + { "bd_rock.pushing.right", "RocksDC.pcx" }, + { "bd_rock.pushing.right.xpos", "12" }, + { "bd_rock.pushing.right.ypos", "10" }, + { "bd_rock.pushing.right.frames", "4" }, + { "bd_rock.pushing.right.start_frame", "1" }, + { "bd_rock.pushing.right.delay", "2" }, { "bd_diamond", "RocksElements.pcx" }, { "bd_diamond.xpos", "0" }, @@ -224,10 +232,6 @@ struct ConfigInfo image_config[] = { "sp_zonk.xpos", "1" }, { "sp_zonk.ypos", "0" }, { "sp_zonk.frames", "1" }, - { "sp_zonk.falling", "RocksSP.pcx" }, - { "sp_zonk.falling.xpos", "1" }, - { "sp_zonk.falling.ypos", "0" }, - { "sp_zonk.falling.frames", "1" }, { "sp_zonk.moving.left", "RocksSP.pcx" }, { "sp_zonk.moving.left.xpos", "0" }, { "sp_zonk.moving.left.ypos", "6" }, @@ -240,6 +244,18 @@ struct ConfigInfo image_config[] = { "sp_zonk.moving.right.frames", "4" }, { "sp_zonk.moving.right.start_frame", "1" }, { "sp_zonk.moving.right.delay", "2" }, + { "sp_zonk.pushing.left", "RocksSP.pcx" }, + { "sp_zonk.pushing.left.xpos", "0" }, + { "sp_zonk.pushing.left.ypos", "6" }, + { "sp_zonk.pushing.left.frames", "4" }, + { "sp_zonk.pushing.left.delay", "2" }, + { "sp_zonk.pushing.left.anim_mode", "reverse" }, + { "sp_zonk.pushing.right", "RocksSP.pcx" }, + { "sp_zonk.pushing.right.xpos", "0" }, + { "sp_zonk.pushing.right.ypos", "6" }, + { "sp_zonk.pushing.right.frames", "4" }, + { "sp_zonk.pushing.right.start_frame", "1" }, + { "sp_zonk.pushing.right.delay", "2" }, { "sp_base", "RocksSP.pcx" }, { "sp_base.xpos", "2" }, @@ -323,10 +339,6 @@ struct ConfigInfo image_config[] = { "sp_infotron.EDITOR", "RocksSP.pcx" }, { "sp_infotron.EDITOR.xpos", "8" }, { "sp_infotron.EDITOR.ypos", "11" }, - { "sp_infotron.falling", "RocksSP.pcx" }, - { "sp_infotron.falling.xpos", "4" }, - { "sp_infotron.falling.ypos", "0" }, - { "sp_infotron.falling.frames", "1" }, { "sp_chip_single", "RocksSP.pcx" }, { "sp_chip_single.xpos", "5" }, @@ -383,23 +395,11 @@ struct ConfigInfo image_config[] = { "sp_disk_orange.xpos", "0" }, { "sp_disk_orange.ypos", "1" }, { "sp_disk_orange.frames", "1" }, - { "sp_disk_orange.falling", "RocksSP.pcx" }, - { "sp_disk_orange.falling.xpos", "0" }, - { "sp_disk_orange.falling.ypos", "1" }, - { "sp_disk_orange.falling.frames", "1" }, - { "sp_disk_orange.pushing", "RocksSP.pcx" }, - { "sp_disk_orange.pushing.xpos", "0" }, - { "sp_disk_orange.pushing.ypos", "1" }, - { "sp_disk_orange.pushing.frames", "1" }, { "sp_disk_yellow", "RocksSP.pcx" }, { "sp_disk_yellow.xpos", "2" }, { "sp_disk_yellow.ypos", "2" }, { "sp_disk_yellow.frames", "1" }, - { "sp_disk_yellow.pushing", "RocksSP.pcx" }, - { "sp_disk_yellow.pushing.xpos", "2" }, - { "sp_disk_yellow.pushing.ypos", "2" }, - { "sp_disk_yellow.pushing.frames", "1" }, { "sp_disk_red", "RocksSP.pcx" }, { "sp_disk_red.xpos", "4" }, @@ -409,10 +409,6 @@ struct ConfigInfo image_config[] = { "sp_disk_red.collecting.xpos", "8" }, { "sp_disk_red.collecting.ypos", "5" }, { "sp_disk_red.collecting.frames", "8" }, - { "sp_disk_red.active", "RocksSP.pcx" }, - { "sp_disk_red.active.xpos", "4" }, - { "sp_disk_red.active.ypos", "2" }, - { "sp_disk_red.active.frames", "1" }, { "sp_port_right", "RocksSP.pcx" }, { "sp_port_right.xpos", "1" }, @@ -643,6 +639,7 @@ struct ConfigInfo image_config[] = { "wall.xpos", "5" }, { "wall.ypos", "0" }, { "wall.frames", "1" }, + { "wall_crumbled", "RocksElements.pcx" }, { "wall_crumbled.xpos", "6" }, { "wall_crumbled.ypos", "0" }, @@ -657,10 +654,6 @@ struct ConfigInfo image_config[] = { "rock.xpos", "12" }, { "rock.ypos", "0" }, { "rock.frames", "1" }, - { "rock.falling", "RocksElements.pcx" }, - { "rock.falling.xpos", "12" }, - { "rock.falling.ypos", "0" }, - { "rock.falling.frames", "1" }, { "rock.moving.left", "RocksElements.pcx" }, { "rock.moving.left.xpos", "12" }, { "rock.moving.left.ypos", "0" }, @@ -673,6 +666,18 @@ struct ConfigInfo image_config[] = { "rock.moving.right.frames", "4" }, { "rock.moving.right.start_frame", "1" }, { "rock.moving.right.delay", "2" }, + { "rock.pushing.left", "RocksElements.pcx" }, + { "rock.pushing.left.xpos", "12" }, + { "rock.pushing.left.ypos", "0" }, + { "rock.pushing.left.frames", "4" }, + { "rock.pushing.left.delay", "2" }, + { "rock.pushing.left.anim_mode", "reverse" }, + { "rock.pushing.right", "RocksElements.pcx" }, + { "rock.pushing.right.xpos", "12" }, + { "rock.pushing.right.ypos", "0" }, + { "rock.pushing.right.frames", "4" }, + { "rock.pushing.right.start_frame", "1" }, + { "rock.pushing.right.delay", "2" }, { "emerald", "RocksElements.pcx" }, { "emerald.xpos", "8" }, @@ -725,18 +730,6 @@ struct ConfigInfo image_config[] = { "nut.xpos", "12" }, { "nut.ypos", "1" }, { "nut.frames", "1" }, - { "nut.falling", "RocksElements.pcx" }, - { "nut.falling.xpos", "12" }, - { "nut.falling.ypos", "1" }, - { "nut.falling.frames", "1" }, - { "nut.moving.left", "RocksElements.pcx" }, - { "nut.moving.left.xpos", "12" }, - { "nut.moving.left.ypos", "1" }, - { "nut.moving.left.frames", "1" }, - { "nut.moving.right", "RocksElements.pcx" }, - { "nut.moving.right.xpos", "12" }, - { "nut.moving.right.ypos", "1" }, - { "nut.moving.right.frames", "1" }, { "nut.breaking", "RocksElements.pcx" }, { "nut.breaking.xpos", "13" }, { "nut.breaking.ypos", "1" }, @@ -1137,7 +1130,12 @@ struct ConfigInfo image_config[] = { "balloon.moving.frames", "4" }, { "balloon.moving.anim_mode", "pingpong" }, { "balloon.moving.delay", "2" }, - + { "balloon.pushing", "RocksDC.pcx" }, + { "balloon.pushing.xpos", "12" }, + { "balloon.pushing.ypos", "7" }, + { "balloon.pushing.frames", "4" }, + { "balloon.pushing.anim_mode", "pingpong" }, + { "balloon.pushing.delay", "2" }, { "balloon_switch_left", "RocksDC.pcx" }, { "balloon_switch_left.xpos", "8" }, { "balloon_switch_left.ypos", "7" }, @@ -1163,10 +1161,6 @@ struct ConfigInfo image_config[] = { "spring.xpos", "8" }, { "spring.ypos", "13" }, { "spring.frames", "1" }, - { "spring.moving", "RocksDC.pcx" }, - { "spring.moving.xpos", "8" }, - { "spring.moving.ypos", "13" }, - { "spring.moving.frames", "1" }, { "emc_steelwall_1", "RocksDC.pcx" }, { "emc_steelwall_1.xpos", "14" }, @@ -1921,30 +1915,50 @@ struct ConfigInfo image_config[] = { "dark_yamyam.frames", "4" }, { "dark_yamyam.anim_mode", "pingpong2" }, + { "dynabomb", "RocksElements.pcx" }, + { "dynabomb.xpos", "12" }, + { "dynabomb.ypos", "11" }, + { "dynabomb.frames", "1" }, { "dynabomb.active", "RocksElements.pcx" }, { "dynabomb.active.xpos", "12" }, { "dynabomb.active.ypos", "11" }, { "dynabomb.active.frames", "4" }, { "dynabomb.active.delay", "6" }, { "dynabomb.active.anim_mode", "pingpong" }, + { "dynabomb_player_1", "RocksElements.pcx" }, + { "dynabomb_player_1.xpos", "12" }, + { "dynabomb_player_1.ypos", "11" }, + { "dynabomb_player_1.frames", "1" }, { "dynabomb_player_1.active", "RocksElements.pcx" }, { "dynabomb_player_1.active.xpos", "12" }, { "dynabomb_player_1.active.ypos", "11" }, { "dynabomb_player_1.active.frames", "4" }, { "dynabomb_player_1.active.delay", "6" }, { "dynabomb_player_1.active.anim_mode", "pingpong" }, + { "dynabomb_player_2", "RocksElements.pcx" }, + { "dynabomb_player_2.xpos", "12" }, + { "dynabomb_player_2.ypos", "11" }, + { "dynabomb_player_2.frames", "1" }, { "dynabomb_player_2.active", "RocksElements.pcx" }, { "dynabomb_player_2.active.xpos", "12" }, { "dynabomb_player_2.active.ypos", "11" }, { "dynabomb_player_2.active.frames", "4" }, { "dynabomb_player_2.active.delay", "6" }, { "dynabomb_player_2.active.anim_mode", "pingpong" }, + { "dynabomb_player_3", "RocksElements.pcx" }, + { "dynabomb_player_3.xpos", "12" }, + { "dynabomb_player_3.ypos", "11" }, + { "dynabomb_player_3.frames", "1" }, { "dynabomb_player_3.active", "RocksElements.pcx" }, { "dynabomb_player_3.active.xpos", "12" }, { "dynabomb_player_3.active.ypos", "11" }, { "dynabomb_player_3.active.frames", "4" }, { "dynabomb_player_3.active.delay", "6" }, { "dynabomb_player_3.active.anim_mode", "pingpong" }, + { "dynabomb_player_4", "RocksElements.pcx" }, + { "dynabomb_player_4.xpos", "12" }, + { "dynabomb_player_4.ypos", "11" }, + { "dynabomb_player_4.frames", "1" }, { "dynabomb_player_4.active", "RocksElements.pcx" }, { "dynabomb_player_4.active.xpos", "12" }, { "dynabomb_player_4.active.ypos", "11" }, @@ -2191,13 +2205,8 @@ struct ConfigInfo image_config[] = { "satellite.xpos", "8" }, { "satellite.ypos", "9" }, { "satellite.frames", "8" }, - { "satellite.moving.delay", "2" }, - { "satellite.moving", "RocksHeroes.pcx" }, - { "satellite.moving.xpos", "8" }, - { "satellite.moving.ypos", "9" }, - { "satellite.moving.frames", "8" }, - { "satellite.moving.delay", "2" }, - { "satellite.moving.global_sync", "true" }, + { "satellite.delay", "2" }, + { "satellite.global_sync", "true" }, { "flames_1_left", "RocksHeroes.pcx" }, { "flames_1_left.xpos", "8" }, diff --git a/src/conf_gfx.h b/src/conf_gfx.h index 62fd1307..f79b0233 100644 --- a/src/conf_gfx.h +++ b/src/conf_gfx.h @@ -22,399 +22,399 @@ #define IMG_BD_WALL_EDITOR 1 #define IMG_BD_ROCK 2 #define IMG_BD_ROCK_EDITOR 3 -#define IMG_BD_ROCK_FALLING 4 -#define IMG_BD_ROCK_MOVING_LEFT 5 -#define IMG_BD_ROCK_MOVING_RIGHT 6 -#define IMG_BD_DIAMOND 7 -#define IMG_BD_DIAMOND_MOVING 8 -#define IMG_BD_DIAMOND_FALLING 9 -#define IMG_BD_MAGIC_WALL 10 -#define IMG_BD_MAGIC_WALL_ACTIVE 11 -#define IMG_BD_MAGIC_WALL_FILLING 12 -#define IMG_BD_MAGIC_WALL_FULL 13 -#define IMG_BD_MAGIC_WALL_EMPTYING 14 -#define IMG_BD_MAGIC_WALL_DEAD 15 -#define IMG_BD_AMOEBA 16 -#define IMG_BD_AMOEBA_EDITOR 17 -#define IMG_BD_BUTTERFLY 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_BUTTERFLY_MOVING 23 -#define IMG_BD_FIREFLY 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_BD_FIREFLY_MOVING 29 -#define IMG_SP_DEFAULT_EXPLODING 30 -#define IMG_SP_EMPTY_SPACE 31 -#define IMG_SP_ZONK 32 -#define IMG_SP_ZONK_FALLING 33 +#define IMG_BD_ROCK_MOVING_LEFT 4 +#define IMG_BD_ROCK_MOVING_RIGHT 5 +#define IMG_BD_ROCK_PUSHING_LEFT 6 +#define IMG_BD_ROCK_PUSHING_RIGHT 7 +#define IMG_BD_DIAMOND 8 +#define IMG_BD_DIAMOND_MOVING 9 +#define IMG_BD_DIAMOND_FALLING 10 +#define IMG_BD_MAGIC_WALL 11 +#define IMG_BD_MAGIC_WALL_ACTIVE 12 +#define IMG_BD_MAGIC_WALL_FILLING 13 +#define IMG_BD_MAGIC_WALL_FULL 14 +#define IMG_BD_MAGIC_WALL_EMPTYING 15 +#define IMG_BD_MAGIC_WALL_DEAD 16 +#define IMG_BD_AMOEBA 17 +#define IMG_BD_AMOEBA_EDITOR 18 +#define IMG_BD_BUTTERFLY 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_BUTTERFLY_MOVING 24 +#define IMG_BD_FIREFLY 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_BD_FIREFLY_MOVING 30 +#define IMG_SP_DEFAULT_EXPLODING 31 +#define IMG_SP_EMPTY_SPACE 32 +#define IMG_SP_ZONK 33 #define IMG_SP_ZONK_MOVING_LEFT 34 #define IMG_SP_ZONK_MOVING_RIGHT 35 -#define IMG_SP_BASE 36 -#define IMG_SP_MURPHY 37 -#define IMG_SP_MURPHY_MOVING_LEFT 38 -#define IMG_SP_MURPHY_MOVING_RIGHT 39 -#define IMG_SP_MURPHY_DIGGING_LEFT 40 -#define IMG_SP_MURPHY_DIGGING_RIGHT 41 -#define IMG_SP_MURPHY_COLLECTING_LEFT 42 -#define IMG_SP_MURPHY_COLLECTING_RIGHT 43 -#define IMG_SP_MURPHY_PUSHING_LEFT 44 -#define IMG_SP_MURPHY_PUSHING_RIGHT 45 -#define IMG_SP_MURPHY_SNAPPING_LEFT 46 -#define IMG_SP_MURPHY_SNAPPING_RIGHT 47 -#define IMG_SP_MURPHY_SNAPPING_UP 48 -#define IMG_SP_MURPHY_SNAPPING_DOWN 49 -#define IMG_SP_MURPHY_CLONE 50 -#define IMG_SP_INFOTRON 51 -#define IMG_SP_INFOTRON_EDITOR 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_TOP 57 -#define IMG_SP_CHIP_BOTTOM 58 -#define IMG_SP_HARDWARE_GRAY 59 -#define IMG_SP_HARDWARE_GREEN 60 -#define IMG_SP_HARDWARE_BLUE 61 -#define IMG_SP_HARDWARE_RED 62 -#define IMG_SP_HARDWARE_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_DISK_RED_ACTIVE 73 -#define IMG_SP_PORT_RIGHT 74 -#define IMG_SP_PORT_DOWN 75 -#define IMG_SP_PORT_LEFT 76 -#define IMG_SP_PORT_UP 77 -#define IMG_SP_PORT_HORIZONTAL 78 -#define IMG_SP_PORT_VERTICAL 79 -#define IMG_SP_PORT_ANY 80 -#define IMG_SP_GRAVITY_PORT_RIGHT 81 -#define IMG_SP_GRAVITY_PORT_DOWN 82 -#define IMG_SP_GRAVITY_PORT_LEFT 83 -#define IMG_SP_GRAVITY_PORT_UP 84 -#define IMG_SP_SNIKSNAK 85 -#define IMG_SP_SNIKSNAK_LEFT 86 -#define IMG_SP_SNIKSNAK_RIGHT 87 -#define IMG_SP_SNIKSNAK_UP 88 -#define IMG_SP_SNIKSNAK_DOWN 89 -#define IMG_SP_ELECTRON 90 -#define IMG_SP_ELECTRON_EDITOR 91 -#define IMG_SP_ELECTRON_EXPLODING 92 -#define IMG_SP_TERMINAL 93 -#define IMG_SP_TERMINAL_EDITOR 94 -#define IMG_SP_TERMINAL_ACTIVE 95 -#define IMG_SP_BUGGY_BASE 96 -#define IMG_SP_BUGGY_BASE_EDITOR 97 -#define IMG_SP_BUGGY_BASE_ACTIVATING 98 -#define IMG_SP_BUGGY_BASE_ACTIVE 99 -#define IMG_SP_HARDWARE_BASE_1 100 -#define IMG_SP_HARDWARE_BASE_2 101 -#define IMG_SP_HARDWARE_BASE_3 102 -#define IMG_SP_HARDWARE_BASE_4 103 -#define IMG_SP_HARDWARE_BASE_5 104 -#define IMG_SP_HARDWARE_BASE_6 105 -#define IMG_SOKOBAN_OBJECT 106 -#define IMG_SOKOBAN_OBJECT_EDITOR 107 -#define IMG_SOKOBAN_FIELD_EMPTY 108 -#define IMG_SOKOBAN_FIELD_FULL 109 -#define IMG_EMPTY_SPACE 110 -#define IMG_SAND 111 -#define IMG_SAND_DIGGING_LEFT 112 -#define IMG_SAND_DIGGING_RIGHT 113 -#define IMG_SAND_DIGGING_UP 114 -#define IMG_SAND_DIGGING_DOWN 115 -#define IMG_SAND_CRUMBLED 116 -#define IMG_SAND_CRUMBLED_DIGGING_LEFT 117 -#define IMG_SAND_CRUMBLED_DIGGING_RIGHT 118 -#define IMG_SAND_CRUMBLED_DIGGING_UP 119 -#define IMG_SAND_CRUMBLED_DIGGING_DOWN 120 -#define IMG_WALL 121 -#define IMG_WALL_CRUMBLED 122 -#define IMG_STEELWALL 123 -#define IMG_ROCK 124 -#define IMG_ROCK_FALLING 125 -#define IMG_ROCK_MOVING_LEFT 126 -#define IMG_ROCK_MOVING_RIGHT 127 -#define IMG_EMERALD 128 -#define IMG_EMERALD_MOVING 129 -#define IMG_EMERALD_FALLING 130 -#define IMG_EMERALD_COLLECTING 131 -#define IMG_DIAMOND 132 -#define IMG_DIAMOND_MOVING 133 -#define IMG_DIAMOND_FALLING 134 -#define IMG_DIAMOND_COLLECTING 135 -#define IMG_BOMB 136 -#define IMG_NUT 137 -#define IMG_NUT_FALLING 138 -#define IMG_NUT_MOVING_LEFT 139 -#define IMG_NUT_MOVING_RIGHT 140 -#define IMG_NUT_BREAKING 141 -#define IMG_DYNAMITE 142 -#define IMG_DYNAMITE_EDITOR 143 -#define IMG_DYNAMITE_ACTIVE 144 -#define IMG_DYNAMITE_ACTIVE_EDITOR 145 -#define IMG_WALL_EMERALD 146 -#define IMG_WALL_DIAMOND 147 -#define IMG_BUG 148 -#define IMG_BUG_RIGHT 149 -#define IMG_BUG_UP 150 -#define IMG_BUG_LEFT 151 -#define IMG_BUG_DOWN 152 -#define IMG_BUG_MOVING_RIGHT 153 -#define IMG_BUG_MOVING_UP 154 -#define IMG_BUG_MOVING_LEFT 155 -#define IMG_BUG_MOVING_DOWN 156 -#define IMG_SPACESHIP 157 -#define IMG_SPACESHIP_RIGHT 158 -#define IMG_SPACESHIP_UP 159 -#define IMG_SPACESHIP_LEFT 160 -#define IMG_SPACESHIP_DOWN 161 -#define IMG_SPACESHIP_MOVING_RIGHT 162 -#define IMG_SPACESHIP_MOVING_UP 163 -#define IMG_SPACESHIP_MOVING_LEFT 164 -#define IMG_SPACESHIP_MOVING_DOWN 165 -#define IMG_YAMYAM 166 -#define IMG_YAMYAM_MOVING 167 -#define IMG_ROBOT 168 -#define IMG_ROBOT_MOVING 169 -#define IMG_ROBOT_WHEEL 170 -#define IMG_ROBOT_WHEEL_ACTIVE 171 -#define IMG_MAGIC_WALL 172 -#define IMG_MAGIC_WALL_ACTIVE 173 -#define IMG_MAGIC_WALL_FILLING 174 -#define IMG_MAGIC_WALL_FULL 175 -#define IMG_MAGIC_WALL_EMPTYING 176 -#define IMG_MAGIC_WALL_DEAD 177 -#define IMG_QUICKSAND_EMPTY 178 -#define IMG_QUICKSAND_FILLING 179 -#define IMG_QUICKSAND_FULL 180 -#define IMG_QUICKSAND_FULL_EDITOR 181 -#define IMG_QUICKSAND_EMPTYING 182 -#define IMG_ACID_POOL_TOPLEFT 183 -#define IMG_ACID_POOL_TOPRIGHT 184 -#define IMG_ACID_POOL_BOTTOMLEFT 185 -#define IMG_ACID_POOL_BOTTOM 186 -#define IMG_ACID_POOL_BOTTOMRIGHT 187 -#define IMG_ACID 188 -#define IMG_ACID_SPLASH_LEFT 189 -#define IMG_ACID_SPLASH_RIGHT 190 -#define IMG_AMOEBA_DROP 191 -#define IMG_AMOEBA_GROWING 192 -#define IMG_AMOEBA_SHRINKING 193 -#define IMG_AMOEBA_WET 194 -#define IMG_AMOEBA_WET_EDITOR 195 -#define IMG_AMOEBA_DROPPING 196 -#define IMG_AMOEBA_DRY 197 -#define IMG_AMOEBA_FULL 198 -#define IMG_AMOEBA_FULL_EDITOR 199 -#define IMG_AMOEBA_DEAD 200 -#define IMG_AMOEBA_DEAD_EDITOR 201 -#define IMG_EM_KEY_1 202 -#define IMG_EM_KEY_2 203 -#define IMG_EM_KEY_3 204 -#define IMG_EM_KEY_4 205 -#define IMG_EM_GATE_1 206 -#define IMG_EM_GATE_2 207 -#define IMG_EM_GATE_3 208 -#define IMG_EM_GATE_4 209 -#define IMG_EM_GATE_1_GRAY 210 -#define IMG_EM_GATE_1_GRAY_EDITOR 211 -#define IMG_EM_GATE_2_GRAY 212 -#define IMG_EM_GATE_2_GRAY_EDITOR 213 -#define IMG_EM_GATE_3_GRAY 214 -#define IMG_EM_GATE_3_GRAY_EDITOR 215 -#define IMG_EM_GATE_4_GRAY 216 -#define IMG_EM_GATE_4_GRAY_EDITOR 217 -#define IMG_EXIT_CLOSED 218 -#define IMG_EXIT_OPENING 219 -#define IMG_EXIT_OPEN 220 -#define IMG_BALLOON 221 -#define IMG_BALLOON_MOVING 222 -#define IMG_BALLOON_SWITCH_LEFT 223 -#define IMG_BALLOON_SWITCH_RIGHT 224 -#define IMG_BALLOON_SWITCH_UP 225 -#define IMG_BALLOON_SWITCH_DOWN 226 -#define IMG_BALLOON_SWITCH_ANY 227 -#define IMG_SPRING 228 -#define IMG_SPRING_MOVING 229 -#define IMG_EMC_STEELWALL_1 230 -#define IMG_EMC_STEELWALL_2 231 -#define IMG_EMC_STEELWALL_3 232 -#define IMG_EMC_STEELWALL_4 233 -#define IMG_EMC_WALL_1 234 -#define IMG_EMC_WALL_2 235 -#define IMG_EMC_WALL_3 236 -#define IMG_EMC_WALL_4 237 -#define IMG_EMC_WALL_5 238 -#define IMG_EMC_WALL_6 239 -#define IMG_EMC_WALL_7 240 -#define IMG_EMC_WALL_8 241 -#define IMG_INVISIBLE_STEELWALL 242 -#define IMG_INVISIBLE_STEELWALL_EDITOR 243 -#define IMG_INVISIBLE_STEELWALL_ACTIVE 244 -#define IMG_INVISIBLE_WALL 245 -#define IMG_INVISIBLE_WALL_EDITOR 246 -#define IMG_INVISIBLE_WALL_ACTIVE 247 -#define IMG_INVISIBLE_SAND 248 -#define IMG_INVISIBLE_SAND_EDITOR 249 -#define IMG_INVISIBLE_SAND_ACTIVE 250 -#define IMG_CONVEYOR_BELT_1_MIDDLE 251 -#define IMG_CONVEYOR_BELT_1_MIDDLE_ACTIVE 252 -#define IMG_CONVEYOR_BELT_1_LEFT 253 -#define IMG_CONVEYOR_BELT_1_LEFT_ACTIVE 254 -#define IMG_CONVEYOR_BELT_1_RIGHT 255 -#define IMG_CONVEYOR_BELT_1_RIGHT_ACTIVE 256 -#define IMG_CONVEYOR_BELT_1_SWITCH_LEFT 257 -#define IMG_CONVEYOR_BELT_1_SWITCH_MIDDLE 258 -#define IMG_CONVEYOR_BELT_1_SWITCH_RIGHT 259 -#define IMG_CONVEYOR_BELT_2_MIDDLE 260 -#define IMG_CONVEYOR_BELT_2_MIDDLE_ACTIVE 261 -#define IMG_CONVEYOR_BELT_2_LEFT 262 -#define IMG_CONVEYOR_BELT_2_LEFT_ACTIVE 263 -#define IMG_CONVEYOR_BELT_2_RIGHT 264 -#define IMG_CONVEYOR_BELT_2_RIGHT_ACTIVE 265 -#define IMG_CONVEYOR_BELT_2_SWITCH_LEFT 266 -#define IMG_CONVEYOR_BELT_2_SWITCH_MIDDLE 267 -#define IMG_CONVEYOR_BELT_2_SWITCH_RIGHT 268 -#define IMG_CONVEYOR_BELT_3_MIDDLE 269 -#define IMG_CONVEYOR_BELT_3_MIDDLE_ACTIVE 270 -#define IMG_CONVEYOR_BELT_3_LEFT 271 -#define IMG_CONVEYOR_BELT_3_LEFT_ACTIVE 272 -#define IMG_CONVEYOR_BELT_3_RIGHT 273 -#define IMG_CONVEYOR_BELT_3_RIGHT_ACTIVE 274 -#define IMG_CONVEYOR_BELT_3_SWITCH_LEFT 275 -#define IMG_CONVEYOR_BELT_3_SWITCH_MIDDLE 276 -#define IMG_CONVEYOR_BELT_3_SWITCH_RIGHT 277 -#define IMG_CONVEYOR_BELT_4_MIDDLE 278 -#define IMG_CONVEYOR_BELT_4_MIDDLE_ACTIVE 279 -#define IMG_CONVEYOR_BELT_4_LEFT 280 -#define IMG_CONVEYOR_BELT_4_LEFT_ACTIVE 281 -#define IMG_CONVEYOR_BELT_4_RIGHT 282 -#define IMG_CONVEYOR_BELT_4_RIGHT_ACTIVE 283 -#define IMG_CONVEYOR_BELT_4_SWITCH_LEFT 284 -#define IMG_CONVEYOR_BELT_4_SWITCH_MIDDLE 285 -#define IMG_CONVEYOR_BELT_4_SWITCH_RIGHT 286 -#define IMG_SWITCHGATE_SWITCH_UP 287 -#define IMG_SWITCHGATE_SWITCH_DOWN 288 -#define IMG_LIGHT_SWITCH 289 -#define IMG_LIGHT_SWITCH_ACTIVE 290 -#define IMG_TIMEGATE_SWITCH 291 -#define IMG_TIMEGATE_SWITCH_ACTIVE 292 -#define IMG_ENVELOPE 293 -#define IMG_SIGN_EXCLAMATION 294 -#define IMG_SIGN_STOP 295 -#define IMG_LANDMINE 296 -#define IMG_STEELWALL_SLANTED 297 -#define IMG_EXTRA_TIME 298 -#define IMG_SHIELD_NORMAL 299 -#define IMG_SHIELD_NORMAL_ACTIVE 300 -#define IMG_SHIELD_DEADLY 301 -#define IMG_SHIELD_DEADLY_ACTIVE 302 -#define IMG_SWITCHGATE_CLOSED 303 -#define IMG_SWITCHGATE_OPENING 304 -#define IMG_SWITCHGATE_OPEN 305 -#define IMG_SWITCHGATE_CLOSING 306 -#define IMG_TIMEGATE_CLOSED 307 -#define IMG_TIMEGATE_OPENING 308 -#define IMG_TIMEGATE_OPEN 309 -#define IMG_TIMEGATE_CLOSING 310 -#define IMG_PEARL 311 -#define IMG_PEARL_BREAKING 312 -#define IMG_CRYSTAL 313 -#define IMG_WALL_PEARL 314 -#define IMG_WALL_CRYSTAL 315 -#define IMG_TUBE_RIGHT_DOWN 316 -#define IMG_TUBE_HORIZONTAL_DOWN 317 -#define IMG_TUBE_LEFT_DOWN 318 -#define IMG_TUBE_HORIZONTAL 319 -#define IMG_TUBE_VERTICAL_RIGHT 320 -#define IMG_TUBE_ANY 321 -#define IMG_TUBE_VERTICAL_LEFT 322 -#define IMG_TUBE_VERTICAL 323 -#define IMG_TUBE_RIGHT_UP 324 -#define IMG_TUBE_HORIZONTAL_UP 325 -#define IMG_TUBE_LEFT_UP 326 -#define IMG_TRAP 327 -#define IMG_TRAP_ACTIVE 328 -#define IMG_DX_SUPABOMB 329 -#define IMG_KEY_1 330 -#define IMG_KEY_1_EDITOR 331 -#define IMG_KEY_2 332 -#define IMG_KEY_2_EDITOR 333 -#define IMG_KEY_3 334 -#define IMG_KEY_3_EDITOR 335 -#define IMG_KEY_4 336 -#define IMG_KEY_4_EDITOR 337 -#define IMG_GATE_1 338 -#define IMG_GATE_2 339 -#define IMG_GATE_3 340 -#define IMG_GATE_4 341 -#define IMG_GATE_1_GRAY 342 -#define IMG_GATE_1_GRAY_EDITOR 343 -#define IMG_GATE_2_GRAY 344 -#define IMG_GATE_2_GRAY_EDITOR 345 -#define IMG_GATE_3_GRAY 346 -#define IMG_GATE_3_GRAY_EDITOR 347 -#define IMG_GATE_4_GRAY 348 -#define IMG_GATE_4_GRAY_EDITOR 349 -#define IMG_GAME_OF_LIFE 350 -#define IMG_BIOMAZE 351 -#define IMG_PACMAN 352 -#define IMG_PACMAN_RIGHT 353 -#define IMG_PACMAN_UP 354 -#define IMG_PACMAN_LEFT 355 -#define IMG_PACMAN_DOWN 356 -#define IMG_PACMAN_MOVING_RIGHT 357 -#define IMG_PACMAN_MOVING_UP 358 -#define IMG_PACMAN_MOVING_LEFT 359 -#define IMG_PACMAN_MOVING_DOWN 360 -#define IMG_LAMP 361 -#define IMG_LAMP_EDITOR 362 -#define IMG_LAMP_ACTIVE 363 -#define IMG_TIME_ORB_FULL 364 -#define IMG_TIME_ORB_EMPTY 365 -#define IMG_EMERALD_YELLOW 366 -#define IMG_EMERALD_YELLOW_MOVING 367 -#define IMG_EMERALD_YELLOW_FALLING 368 -#define IMG_EMERALD_RED 369 -#define IMG_EMERALD_RED_MOVING 370 -#define IMG_EMERALD_RED_FALLING 371 -#define IMG_EMERALD_PURPLE 372 -#define IMG_EMERALD_PURPLE_MOVING 373 -#define IMG_EMERALD_PURPLE_FALLING 374 -#define IMG_WALL_EMERALD_YELLOW 375 -#define IMG_WALL_EMERALD_RED 376 -#define IMG_WALL_EMERALD_PURPLE 377 -#define IMG_WALL_BD_DIAMOND 378 -#define IMG_EXPANDABLE_WALL 379 -#define IMG_EXPANDABLE_WALL_HORIZONTAL 380 -#define IMG_EXPANDABLE_WALL_HORIZONTAL_EDITOR 381 -#define IMG_EXPANDABLE_WALL_VERTICAL 382 -#define IMG_EXPANDABLE_WALL_VERTICAL_EDITOR 383 -#define IMG_EXPANDABLE_WALL_ANY 384 -#define IMG_EXPANDABLE_WALL_ANY_EDITOR 385 -#define IMG_EXPANDABLE_WALL_GROWING_LEFT 386 -#define IMG_EXPANDABLE_WALL_GROWING_RIGHT 387 -#define IMG_EXPANDABLE_WALL_GROWING_UP 388 -#define IMG_EXPANDABLE_WALL_GROWING_DOWN 389 -#define IMG_BLACK_ORB 390 -#define IMG_SPEED_PILL 391 -#define IMG_DARK_YAMYAM 392 -#define IMG_DYNABOMB_ACTIVE 393 -#define IMG_DYNABOMB_PLAYER_1_ACTIVE 394 -#define IMG_DYNABOMB_PLAYER_2_ACTIVE 395 -#define IMG_DYNABOMB_PLAYER_3_ACTIVE 396 +#define IMG_SP_ZONK_PUSHING_LEFT 36 +#define IMG_SP_ZONK_PUSHING_RIGHT 37 +#define IMG_SP_BASE 38 +#define IMG_SP_MURPHY 39 +#define IMG_SP_MURPHY_MOVING_LEFT 40 +#define IMG_SP_MURPHY_MOVING_RIGHT 41 +#define IMG_SP_MURPHY_DIGGING_LEFT 42 +#define IMG_SP_MURPHY_DIGGING_RIGHT 43 +#define IMG_SP_MURPHY_COLLECTING_LEFT 44 +#define IMG_SP_MURPHY_COLLECTING_RIGHT 45 +#define IMG_SP_MURPHY_PUSHING_LEFT 46 +#define IMG_SP_MURPHY_PUSHING_RIGHT 47 +#define IMG_SP_MURPHY_SNAPPING_LEFT 48 +#define IMG_SP_MURPHY_SNAPPING_RIGHT 49 +#define IMG_SP_MURPHY_SNAPPING_UP 50 +#define IMG_SP_MURPHY_SNAPPING_DOWN 51 +#define IMG_SP_MURPHY_CLONE 52 +#define IMG_SP_INFOTRON 53 +#define IMG_SP_INFOTRON_EDITOR 54 +#define IMG_SP_CHIP_SINGLE 55 +#define IMG_SP_CHIP_LEFT 56 +#define IMG_SP_CHIP_RIGHT 57 +#define IMG_SP_CHIP_TOP 58 +#define IMG_SP_CHIP_BOTTOM 59 +#define IMG_SP_HARDWARE_GRAY 60 +#define IMG_SP_HARDWARE_GREEN 61 +#define IMG_SP_HARDWARE_BLUE 62 +#define IMG_SP_HARDWARE_RED 63 +#define IMG_SP_HARDWARE_YELLOW 64 +#define IMG_SP_EXIT_CLOSED 65 +#define IMG_SP_EXIT_OPEN 66 +#define IMG_SP_DISK_ORANGE 67 +#define IMG_SP_DISK_YELLOW 68 +#define IMG_SP_DISK_RED 69 +#define IMG_SP_DISK_RED_COLLECTING 70 +#define IMG_SP_PORT_RIGHT 71 +#define IMG_SP_PORT_DOWN 72 +#define IMG_SP_PORT_LEFT 73 +#define IMG_SP_PORT_UP 74 +#define IMG_SP_PORT_HORIZONTAL 75 +#define IMG_SP_PORT_VERTICAL 76 +#define IMG_SP_PORT_ANY 77 +#define IMG_SP_GRAVITY_PORT_RIGHT 78 +#define IMG_SP_GRAVITY_PORT_DOWN 79 +#define IMG_SP_GRAVITY_PORT_LEFT 80 +#define IMG_SP_GRAVITY_PORT_UP 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_ELECTRON_EDITOR 88 +#define IMG_SP_ELECTRON_EXPLODING 89 +#define IMG_SP_TERMINAL 90 +#define IMG_SP_TERMINAL_EDITOR 91 +#define IMG_SP_TERMINAL_ACTIVE 92 +#define IMG_SP_BUGGY_BASE 93 +#define IMG_SP_BUGGY_BASE_EDITOR 94 +#define IMG_SP_BUGGY_BASE_ACTIVATING 95 +#define IMG_SP_BUGGY_BASE_ACTIVE 96 +#define IMG_SP_HARDWARE_BASE_1 97 +#define IMG_SP_HARDWARE_BASE_2 98 +#define IMG_SP_HARDWARE_BASE_3 99 +#define IMG_SP_HARDWARE_BASE_4 100 +#define IMG_SP_HARDWARE_BASE_5 101 +#define IMG_SP_HARDWARE_BASE_6 102 +#define IMG_SOKOBAN_OBJECT 103 +#define IMG_SOKOBAN_OBJECT_EDITOR 104 +#define IMG_SOKOBAN_FIELD_EMPTY 105 +#define IMG_SOKOBAN_FIELD_FULL 106 +#define IMG_EMPTY_SPACE 107 +#define IMG_SAND 108 +#define IMG_SAND_DIGGING_LEFT 109 +#define IMG_SAND_DIGGING_RIGHT 110 +#define IMG_SAND_DIGGING_UP 111 +#define IMG_SAND_DIGGING_DOWN 112 +#define IMG_SAND_CRUMBLED 113 +#define IMG_SAND_CRUMBLED_DIGGING_LEFT 114 +#define IMG_SAND_CRUMBLED_DIGGING_RIGHT 115 +#define IMG_SAND_CRUMBLED_DIGGING_UP 116 +#define IMG_SAND_CRUMBLED_DIGGING_DOWN 117 +#define IMG_WALL 118 +#define IMG_WALL_CRUMBLED 119 +#define IMG_STEELWALL 120 +#define IMG_ROCK 121 +#define IMG_ROCK_MOVING_LEFT 122 +#define IMG_ROCK_MOVING_RIGHT 123 +#define IMG_ROCK_PUSHING_LEFT 124 +#define IMG_ROCK_PUSHING_RIGHT 125 +#define IMG_EMERALD 126 +#define IMG_EMERALD_MOVING 127 +#define IMG_EMERALD_FALLING 128 +#define IMG_EMERALD_COLLECTING 129 +#define IMG_DIAMOND 130 +#define IMG_DIAMOND_MOVING 131 +#define IMG_DIAMOND_FALLING 132 +#define IMG_DIAMOND_COLLECTING 133 +#define IMG_BOMB 134 +#define IMG_NUT 135 +#define IMG_NUT_BREAKING 136 +#define IMG_DYNAMITE 137 +#define IMG_DYNAMITE_EDITOR 138 +#define IMG_DYNAMITE_ACTIVE 139 +#define IMG_DYNAMITE_ACTIVE_EDITOR 140 +#define IMG_WALL_EMERALD 141 +#define IMG_WALL_DIAMOND 142 +#define IMG_BUG 143 +#define IMG_BUG_RIGHT 144 +#define IMG_BUG_UP 145 +#define IMG_BUG_LEFT 146 +#define IMG_BUG_DOWN 147 +#define IMG_BUG_MOVING_RIGHT 148 +#define IMG_BUG_MOVING_UP 149 +#define IMG_BUG_MOVING_LEFT 150 +#define IMG_BUG_MOVING_DOWN 151 +#define IMG_SPACESHIP 152 +#define IMG_SPACESHIP_RIGHT 153 +#define IMG_SPACESHIP_UP 154 +#define IMG_SPACESHIP_LEFT 155 +#define IMG_SPACESHIP_DOWN 156 +#define IMG_SPACESHIP_MOVING_RIGHT 157 +#define IMG_SPACESHIP_MOVING_UP 158 +#define IMG_SPACESHIP_MOVING_LEFT 159 +#define IMG_SPACESHIP_MOVING_DOWN 160 +#define IMG_YAMYAM 161 +#define IMG_YAMYAM_MOVING 162 +#define IMG_ROBOT 163 +#define IMG_ROBOT_MOVING 164 +#define IMG_ROBOT_WHEEL 165 +#define IMG_ROBOT_WHEEL_ACTIVE 166 +#define IMG_MAGIC_WALL 167 +#define IMG_MAGIC_WALL_ACTIVE 168 +#define IMG_MAGIC_WALL_FILLING 169 +#define IMG_MAGIC_WALL_FULL 170 +#define IMG_MAGIC_WALL_EMPTYING 171 +#define IMG_MAGIC_WALL_DEAD 172 +#define IMG_QUICKSAND_EMPTY 173 +#define IMG_QUICKSAND_FILLING 174 +#define IMG_QUICKSAND_FULL 175 +#define IMG_QUICKSAND_FULL_EDITOR 176 +#define IMG_QUICKSAND_EMPTYING 177 +#define IMG_ACID_POOL_TOPLEFT 178 +#define IMG_ACID_POOL_TOPRIGHT 179 +#define IMG_ACID_POOL_BOTTOMLEFT 180 +#define IMG_ACID_POOL_BOTTOM 181 +#define IMG_ACID_POOL_BOTTOMRIGHT 182 +#define IMG_ACID 183 +#define IMG_ACID_SPLASH_LEFT 184 +#define IMG_ACID_SPLASH_RIGHT 185 +#define IMG_AMOEBA_DROP 186 +#define IMG_AMOEBA_GROWING 187 +#define IMG_AMOEBA_SHRINKING 188 +#define IMG_AMOEBA_WET 189 +#define IMG_AMOEBA_WET_EDITOR 190 +#define IMG_AMOEBA_DROPPING 191 +#define IMG_AMOEBA_DRY 192 +#define IMG_AMOEBA_FULL 193 +#define IMG_AMOEBA_FULL_EDITOR 194 +#define IMG_AMOEBA_DEAD 195 +#define IMG_AMOEBA_DEAD_EDITOR 196 +#define IMG_EM_KEY_1 197 +#define IMG_EM_KEY_2 198 +#define IMG_EM_KEY_3 199 +#define IMG_EM_KEY_4 200 +#define IMG_EM_GATE_1 201 +#define IMG_EM_GATE_2 202 +#define IMG_EM_GATE_3 203 +#define IMG_EM_GATE_4 204 +#define IMG_EM_GATE_1_GRAY 205 +#define IMG_EM_GATE_1_GRAY_EDITOR 206 +#define IMG_EM_GATE_2_GRAY 207 +#define IMG_EM_GATE_2_GRAY_EDITOR 208 +#define IMG_EM_GATE_3_GRAY 209 +#define IMG_EM_GATE_3_GRAY_EDITOR 210 +#define IMG_EM_GATE_4_GRAY 211 +#define IMG_EM_GATE_4_GRAY_EDITOR 212 +#define IMG_EXIT_CLOSED 213 +#define IMG_EXIT_OPENING 214 +#define IMG_EXIT_OPEN 215 +#define IMG_BALLOON 216 +#define IMG_BALLOON_MOVING 217 +#define IMG_BALLOON_PUSHING 218 +#define IMG_BALLOON_SWITCH_LEFT 219 +#define IMG_BALLOON_SWITCH_RIGHT 220 +#define IMG_BALLOON_SWITCH_UP 221 +#define IMG_BALLOON_SWITCH_DOWN 222 +#define IMG_BALLOON_SWITCH_ANY 223 +#define IMG_SPRING 224 +#define IMG_EMC_STEELWALL_1 225 +#define IMG_EMC_STEELWALL_2 226 +#define IMG_EMC_STEELWALL_3 227 +#define IMG_EMC_STEELWALL_4 228 +#define IMG_EMC_WALL_1 229 +#define IMG_EMC_WALL_2 230 +#define IMG_EMC_WALL_3 231 +#define IMG_EMC_WALL_4 232 +#define IMG_EMC_WALL_5 233 +#define IMG_EMC_WALL_6 234 +#define IMG_EMC_WALL_7 235 +#define IMG_EMC_WALL_8 236 +#define IMG_INVISIBLE_STEELWALL 237 +#define IMG_INVISIBLE_STEELWALL_EDITOR 238 +#define IMG_INVISIBLE_STEELWALL_ACTIVE 239 +#define IMG_INVISIBLE_WALL 240 +#define IMG_INVISIBLE_WALL_EDITOR 241 +#define IMG_INVISIBLE_WALL_ACTIVE 242 +#define IMG_INVISIBLE_SAND 243 +#define IMG_INVISIBLE_SAND_EDITOR 244 +#define IMG_INVISIBLE_SAND_ACTIVE 245 +#define IMG_CONVEYOR_BELT_1_MIDDLE 246 +#define IMG_CONVEYOR_BELT_1_MIDDLE_ACTIVE 247 +#define IMG_CONVEYOR_BELT_1_LEFT 248 +#define IMG_CONVEYOR_BELT_1_LEFT_ACTIVE 249 +#define IMG_CONVEYOR_BELT_1_RIGHT 250 +#define IMG_CONVEYOR_BELT_1_RIGHT_ACTIVE 251 +#define IMG_CONVEYOR_BELT_1_SWITCH_LEFT 252 +#define IMG_CONVEYOR_BELT_1_SWITCH_MIDDLE 253 +#define IMG_CONVEYOR_BELT_1_SWITCH_RIGHT 254 +#define IMG_CONVEYOR_BELT_2_MIDDLE 255 +#define IMG_CONVEYOR_BELT_2_MIDDLE_ACTIVE 256 +#define IMG_CONVEYOR_BELT_2_LEFT 257 +#define IMG_CONVEYOR_BELT_2_LEFT_ACTIVE 258 +#define IMG_CONVEYOR_BELT_2_RIGHT 259 +#define IMG_CONVEYOR_BELT_2_RIGHT_ACTIVE 260 +#define IMG_CONVEYOR_BELT_2_SWITCH_LEFT 261 +#define IMG_CONVEYOR_BELT_2_SWITCH_MIDDLE 262 +#define IMG_CONVEYOR_BELT_2_SWITCH_RIGHT 263 +#define IMG_CONVEYOR_BELT_3_MIDDLE 264 +#define IMG_CONVEYOR_BELT_3_MIDDLE_ACTIVE 265 +#define IMG_CONVEYOR_BELT_3_LEFT 266 +#define IMG_CONVEYOR_BELT_3_LEFT_ACTIVE 267 +#define IMG_CONVEYOR_BELT_3_RIGHT 268 +#define IMG_CONVEYOR_BELT_3_RIGHT_ACTIVE 269 +#define IMG_CONVEYOR_BELT_3_SWITCH_LEFT 270 +#define IMG_CONVEYOR_BELT_3_SWITCH_MIDDLE 271 +#define IMG_CONVEYOR_BELT_3_SWITCH_RIGHT 272 +#define IMG_CONVEYOR_BELT_4_MIDDLE 273 +#define IMG_CONVEYOR_BELT_4_MIDDLE_ACTIVE 274 +#define IMG_CONVEYOR_BELT_4_LEFT 275 +#define IMG_CONVEYOR_BELT_4_LEFT_ACTIVE 276 +#define IMG_CONVEYOR_BELT_4_RIGHT 277 +#define IMG_CONVEYOR_BELT_4_RIGHT_ACTIVE 278 +#define IMG_CONVEYOR_BELT_4_SWITCH_LEFT 279 +#define IMG_CONVEYOR_BELT_4_SWITCH_MIDDLE 280 +#define IMG_CONVEYOR_BELT_4_SWITCH_RIGHT 281 +#define IMG_SWITCHGATE_SWITCH_UP 282 +#define IMG_SWITCHGATE_SWITCH_DOWN 283 +#define IMG_LIGHT_SWITCH 284 +#define IMG_LIGHT_SWITCH_ACTIVE 285 +#define IMG_TIMEGATE_SWITCH 286 +#define IMG_TIMEGATE_SWITCH_ACTIVE 287 +#define IMG_ENVELOPE 288 +#define IMG_SIGN_EXCLAMATION 289 +#define IMG_SIGN_STOP 290 +#define IMG_LANDMINE 291 +#define IMG_STEELWALL_SLANTED 292 +#define IMG_EXTRA_TIME 293 +#define IMG_SHIELD_NORMAL 294 +#define IMG_SHIELD_NORMAL_ACTIVE 295 +#define IMG_SHIELD_DEADLY 296 +#define IMG_SHIELD_DEADLY_ACTIVE 297 +#define IMG_SWITCHGATE_CLOSED 298 +#define IMG_SWITCHGATE_OPENING 299 +#define IMG_SWITCHGATE_OPEN 300 +#define IMG_SWITCHGATE_CLOSING 301 +#define IMG_TIMEGATE_CLOSED 302 +#define IMG_TIMEGATE_OPENING 303 +#define IMG_TIMEGATE_OPEN 304 +#define IMG_TIMEGATE_CLOSING 305 +#define IMG_PEARL 306 +#define IMG_PEARL_BREAKING 307 +#define IMG_CRYSTAL 308 +#define IMG_WALL_PEARL 309 +#define IMG_WALL_CRYSTAL 310 +#define IMG_TUBE_RIGHT_DOWN 311 +#define IMG_TUBE_HORIZONTAL_DOWN 312 +#define IMG_TUBE_LEFT_DOWN 313 +#define IMG_TUBE_HORIZONTAL 314 +#define IMG_TUBE_VERTICAL_RIGHT 315 +#define IMG_TUBE_ANY 316 +#define IMG_TUBE_VERTICAL_LEFT 317 +#define IMG_TUBE_VERTICAL 318 +#define IMG_TUBE_RIGHT_UP 319 +#define IMG_TUBE_HORIZONTAL_UP 320 +#define IMG_TUBE_LEFT_UP 321 +#define IMG_TRAP 322 +#define IMG_TRAP_ACTIVE 323 +#define IMG_DX_SUPABOMB 324 +#define IMG_KEY_1 325 +#define IMG_KEY_1_EDITOR 326 +#define IMG_KEY_2 327 +#define IMG_KEY_2_EDITOR 328 +#define IMG_KEY_3 329 +#define IMG_KEY_3_EDITOR 330 +#define IMG_KEY_4 331 +#define IMG_KEY_4_EDITOR 332 +#define IMG_GATE_1 333 +#define IMG_GATE_2 334 +#define IMG_GATE_3 335 +#define IMG_GATE_4 336 +#define IMG_GATE_1_GRAY 337 +#define IMG_GATE_1_GRAY_EDITOR 338 +#define IMG_GATE_2_GRAY 339 +#define IMG_GATE_2_GRAY_EDITOR 340 +#define IMG_GATE_3_GRAY 341 +#define IMG_GATE_3_GRAY_EDITOR 342 +#define IMG_GATE_4_GRAY 343 +#define IMG_GATE_4_GRAY_EDITOR 344 +#define IMG_GAME_OF_LIFE 345 +#define IMG_BIOMAZE 346 +#define IMG_PACMAN 347 +#define IMG_PACMAN_RIGHT 348 +#define IMG_PACMAN_UP 349 +#define IMG_PACMAN_LEFT 350 +#define IMG_PACMAN_DOWN 351 +#define IMG_PACMAN_MOVING_RIGHT 352 +#define IMG_PACMAN_MOVING_UP 353 +#define IMG_PACMAN_MOVING_LEFT 354 +#define IMG_PACMAN_MOVING_DOWN 355 +#define IMG_LAMP 356 +#define IMG_LAMP_EDITOR 357 +#define IMG_LAMP_ACTIVE 358 +#define IMG_TIME_ORB_FULL 359 +#define IMG_TIME_ORB_EMPTY 360 +#define IMG_EMERALD_YELLOW 361 +#define IMG_EMERALD_YELLOW_MOVING 362 +#define IMG_EMERALD_YELLOW_FALLING 363 +#define IMG_EMERALD_RED 364 +#define IMG_EMERALD_RED_MOVING 365 +#define IMG_EMERALD_RED_FALLING 366 +#define IMG_EMERALD_PURPLE 367 +#define IMG_EMERALD_PURPLE_MOVING 368 +#define IMG_EMERALD_PURPLE_FALLING 369 +#define IMG_WALL_EMERALD_YELLOW 370 +#define IMG_WALL_EMERALD_RED 371 +#define IMG_WALL_EMERALD_PURPLE 372 +#define IMG_WALL_BD_DIAMOND 373 +#define IMG_EXPANDABLE_WALL 374 +#define IMG_EXPANDABLE_WALL_HORIZONTAL 375 +#define IMG_EXPANDABLE_WALL_HORIZONTAL_EDITOR 376 +#define IMG_EXPANDABLE_WALL_VERTICAL 377 +#define IMG_EXPANDABLE_WALL_VERTICAL_EDITOR 378 +#define IMG_EXPANDABLE_WALL_ANY 379 +#define IMG_EXPANDABLE_WALL_ANY_EDITOR 380 +#define IMG_EXPANDABLE_WALL_GROWING_LEFT 381 +#define IMG_EXPANDABLE_WALL_GROWING_RIGHT 382 +#define IMG_EXPANDABLE_WALL_GROWING_UP 383 +#define IMG_EXPANDABLE_WALL_GROWING_DOWN 384 +#define IMG_BLACK_ORB 385 +#define IMG_SPEED_PILL 386 +#define IMG_DARK_YAMYAM 387 +#define IMG_DYNABOMB 388 +#define IMG_DYNABOMB_ACTIVE 389 +#define IMG_DYNABOMB_PLAYER_1 390 +#define IMG_DYNABOMB_PLAYER_1_ACTIVE 391 +#define IMG_DYNABOMB_PLAYER_2 392 +#define IMG_DYNABOMB_PLAYER_2_ACTIVE 393 +#define IMG_DYNABOMB_PLAYER_3 394 +#define IMG_DYNABOMB_PLAYER_3_ACTIVE 395 +#define IMG_DYNABOMB_PLAYER_4 396 #define IMG_DYNABOMB_PLAYER_4_ACTIVE 397 #define IMG_DYNABOMB_INCREASE_NUMBER 398 #define IMG_DYNABOMB_INCREASE_SIZE 399 @@ -469,573 +469,572 @@ #define IMG_PENGUIN_MOVING_LEFT 448 #define IMG_PENGUIN_MOVING_RIGHT 449 #define IMG_SATELLITE 450 -#define IMG_SATELLITE_MOVING 451 -#define IMG_FLAMES_1_LEFT 452 -#define IMG_FLAMES_2_LEFT 453 -#define IMG_FLAMES_3_LEFT 454 -#define IMG_FLAMES_1_RIGHT 455 -#define IMG_FLAMES_2_RIGHT 456 -#define IMG_FLAMES_3_RIGHT 457 -#define IMG_FLAMES_1_UP 458 -#define IMG_FLAMES_2_UP 459 -#define IMG_FLAMES_3_UP 460 -#define IMG_FLAMES_1_DOWN 461 -#define IMG_FLAMES_2_DOWN 462 -#define IMG_FLAMES_3_DOWN 463 -#define IMG_STONEBLOCK 464 -#define IMG_PLAYER_1 465 -#define IMG_PLAYER_1_EDITOR 466 -#define IMG_PLAYER_1_DOWN 467 -#define IMG_PLAYER_1_UP 468 -#define IMG_PLAYER_1_LEFT 469 -#define IMG_PLAYER_1_RIGHT 470 -#define IMG_PLAYER_1_MOVING_DOWN 471 -#define IMG_PLAYER_1_MOVING_UP 472 -#define IMG_PLAYER_1_MOVING_LEFT 473 -#define IMG_PLAYER_1_MOVING_RIGHT 474 -#define IMG_PLAYER_1_DIGGING_DOWN 475 -#define IMG_PLAYER_1_DIGGING_UP 476 -#define IMG_PLAYER_1_DIGGING_LEFT 477 -#define IMG_PLAYER_1_DIGGING_RIGHT 478 -#define IMG_PLAYER_1_COLLECTING_DOWN 479 -#define IMG_PLAYER_1_COLLECTING_UP 480 -#define IMG_PLAYER_1_COLLECTING_LEFT 481 -#define IMG_PLAYER_1_COLLECTING_RIGHT 482 -#define IMG_PLAYER_1_PUSHING_DOWN 483 -#define IMG_PLAYER_1_PUSHING_UP 484 -#define IMG_PLAYER_1_PUSHING_LEFT 485 -#define IMG_PLAYER_1_PUSHING_RIGHT 486 -#define IMG_PLAYER_1_SNAPPING_DOWN 487 -#define IMG_PLAYER_1_SNAPPING_UP 488 -#define IMG_PLAYER_1_SNAPPING_LEFT 489 -#define IMG_PLAYER_1_SNAPPING_RIGHT 490 -#define IMG_PLAYER_2 491 -#define IMG_PLAYER_2_EDITOR 492 -#define IMG_PLAYER_2_DOWN 493 -#define IMG_PLAYER_2_UP 494 -#define IMG_PLAYER_2_LEFT 495 -#define IMG_PLAYER_2_RIGHT 496 -#define IMG_PLAYER_2_MOVING_DOWN 497 -#define IMG_PLAYER_2_MOVING_UP 498 -#define IMG_PLAYER_2_MOVING_LEFT 499 -#define IMG_PLAYER_2_MOVING_RIGHT 500 -#define IMG_PLAYER_2_DIGGING_DOWN 501 -#define IMG_PLAYER_2_DIGGING_UP 502 -#define IMG_PLAYER_2_DIGGING_LEFT 503 -#define IMG_PLAYER_2_DIGGING_RIGHT 504 -#define IMG_PLAYER_2_COLLECTING_DOWN 505 -#define IMG_PLAYER_2_COLLECTING_UP 506 -#define IMG_PLAYER_2_COLLECTING_LEFT 507 -#define IMG_PLAYER_2_COLLECTING_RIGHT 508 -#define IMG_PLAYER_2_PUSHING_DOWN 509 -#define IMG_PLAYER_2_PUSHING_UP 510 -#define IMG_PLAYER_2_PUSHING_LEFT 511 -#define IMG_PLAYER_2_PUSHING_RIGHT 512 -#define IMG_PLAYER_2_SNAPPING_DOWN 513 -#define IMG_PLAYER_2_SNAPPING_UP 514 -#define IMG_PLAYER_2_SNAPPING_LEFT 515 -#define IMG_PLAYER_2_SNAPPING_RIGHT 516 -#define IMG_PLAYER_3 517 -#define IMG_PLAYER_3_EDITOR 518 -#define IMG_PLAYER_3_DOWN 519 -#define IMG_PLAYER_3_UP 520 -#define IMG_PLAYER_3_LEFT 521 -#define IMG_PLAYER_3_RIGHT 522 -#define IMG_PLAYER_3_MOVING_DOWN 523 -#define IMG_PLAYER_3_MOVING_UP 524 -#define IMG_PLAYER_3_MOVING_LEFT 525 -#define IMG_PLAYER_3_MOVING_RIGHT 526 -#define IMG_PLAYER_3_DIGGING_DOWN 527 -#define IMG_PLAYER_3_DIGGING_UP 528 -#define IMG_PLAYER_3_DIGGING_LEFT 529 -#define IMG_PLAYER_3_DIGGING_RIGHT 530 -#define IMG_PLAYER_3_COLLECTING_DOWN 531 -#define IMG_PLAYER_3_COLLECTING_UP 532 -#define IMG_PLAYER_3_COLLECTING_LEFT 533 -#define IMG_PLAYER_3_COLLECTING_RIGHT 534 -#define IMG_PLAYER_3_PUSHING_DOWN 535 -#define IMG_PLAYER_3_PUSHING_UP 536 -#define IMG_PLAYER_3_PUSHING_LEFT 537 -#define IMG_PLAYER_3_PUSHING_RIGHT 538 -#define IMG_PLAYER_3_SNAPPING_DOWN 539 -#define IMG_PLAYER_3_SNAPPING_UP 540 -#define IMG_PLAYER_3_SNAPPING_LEFT 541 -#define IMG_PLAYER_3_SNAPPING_RIGHT 542 -#define IMG_PLAYER_4 543 -#define IMG_PLAYER_4_EDITOR 544 -#define IMG_PLAYER_4_DOWN 545 -#define IMG_PLAYER_4_UP 546 -#define IMG_PLAYER_4_LEFT 547 -#define IMG_PLAYER_4_RIGHT 548 -#define IMG_PLAYER_4_MOVING_DOWN 549 -#define IMG_PLAYER_4_MOVING_UP 550 -#define IMG_PLAYER_4_MOVING_LEFT 551 -#define IMG_PLAYER_4_MOVING_RIGHT 552 -#define IMG_PLAYER_4_DIGGING_DOWN 553 -#define IMG_PLAYER_4_DIGGING_UP 554 -#define IMG_PLAYER_4_DIGGING_LEFT 555 -#define IMG_PLAYER_4_DIGGING_RIGHT 556 -#define IMG_PLAYER_4_COLLECTING_DOWN 557 -#define IMG_PLAYER_4_COLLECTING_UP 558 -#define IMG_PLAYER_4_COLLECTING_LEFT 559 -#define IMG_PLAYER_4_COLLECTING_RIGHT 560 -#define IMG_PLAYER_4_PUSHING_DOWN 561 -#define IMG_PLAYER_4_PUSHING_UP 562 -#define IMG_PLAYER_4_PUSHING_LEFT 563 -#define IMG_PLAYER_4_PUSHING_RIGHT 564 -#define IMG_PLAYER_4_SNAPPING_DOWN 565 -#define IMG_PLAYER_4_SNAPPING_UP 566 -#define IMG_PLAYER_4_SNAPPING_LEFT 567 -#define IMG_PLAYER_4_SNAPPING_RIGHT 568 -#define IMG_DEFAULT_EXPLODING 569 -#define IMG_TWINKLE_BLUE 570 -#define IMG_TWINKLE_WHITE 571 -#define IMG_STEELWALL_TOPLEFT 572 -#define IMG_STEELWALL_TOPRIGHT 573 -#define IMG_STEELWALL_BOTTOMLEFT 574 -#define IMG_STEELWALL_BOTTOMRIGHT 575 -#define IMG_STEELWALL_HORIZONTAL 576 -#define IMG_STEELWALL_VERTICAL 577 -#define IMG_STEELWALL_TOPLEFT_EDITOR 578 -#define IMG_STEELWALL_TOPRIGHT_EDITOR 579 -#define IMG_STEELWALL_BOTTOMLEFT_EDITOR 580 -#define IMG_STEELWALL_BOTTOMRIGHT_EDITOR 581 -#define IMG_STEELWALL_HORIZONTAL_EDITOR 582 -#define IMG_STEELWALL_VERTICAL_EDITOR 583 -#define IMG_INVISIBLE_STEELWALL_TOPLEFT 584 -#define IMG_INVISIBLE_STEELWALL_TOPRIGHT 585 -#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT 586 -#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT 587 -#define IMG_INVISIBLE_STEELWALL_HORIZONTAL 588 -#define IMG_INVISIBLE_STEELWALL_VERTICAL 589 -#define IMG_INVISIBLE_STEELWALL_TOPLEFT_EDITOR 590 -#define IMG_INVISIBLE_STEELWALL_TOPRIGHT_EDITOR 591 -#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT_EDITOR 592 -#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT_EDITOR 593 -#define IMG_INVISIBLE_STEELWALL_HORIZONTAL_EDITOR 594 -#define IMG_INVISIBLE_STEELWALL_VERTICAL_EDITOR 595 -#define IMG_ARROW_LEFT 596 -#define IMG_ARROW_RIGHT 597 -#define IMG_ARROW_UP 598 -#define IMG_ARROW_DOWN 599 -#define IMG_CHAR_SPACE 600 -#define IMG_CHAR_EXCLAM 601 -#define IMG_CHAR_QUOTEDBL 602 -#define IMG_CHAR_NUMBERSIGN 603 -#define IMG_CHAR_DOLLAR 604 -#define IMG_CHAR_PROCENT 605 -#define IMG_CHAR_AMPERSAND 606 -#define IMG_CHAR_APOSTROPHE 607 -#define IMG_CHAR_PARENLEFT 608 -#define IMG_CHAR_PARENRIGHT 609 -#define IMG_CHAR_ASTERISK 610 -#define IMG_CHAR_PLUS 611 -#define IMG_CHAR_COMMA 612 -#define IMG_CHAR_MINUS 613 -#define IMG_CHAR_PERIOD 614 -#define IMG_CHAR_SLASH 615 -#define IMG_CHAR_0 616 -#define IMG_CHAR_1 617 -#define IMG_CHAR_2 618 -#define IMG_CHAR_3 619 -#define IMG_CHAR_4 620 -#define IMG_CHAR_5 621 -#define IMG_CHAR_6 622 -#define IMG_CHAR_7 623 -#define IMG_CHAR_8 624 -#define IMG_CHAR_9 625 -#define IMG_CHAR_COLON 626 -#define IMG_CHAR_SEMICOLON 627 -#define IMG_CHAR_LESS 628 -#define IMG_CHAR_EQUAL 629 -#define IMG_CHAR_GREATER 630 -#define IMG_CHAR_QUESTION 631 -#define IMG_CHAR_AT 632 -#define IMG_CHAR_A 633 -#define IMG_CHAR_B 634 -#define IMG_CHAR_C 635 -#define IMG_CHAR_D 636 -#define IMG_CHAR_E 637 -#define IMG_CHAR_F 638 -#define IMG_CHAR_G 639 -#define IMG_CHAR_H 640 -#define IMG_CHAR_I 641 -#define IMG_CHAR_J 642 -#define IMG_CHAR_K 643 -#define IMG_CHAR_L 644 -#define IMG_CHAR_M 645 -#define IMG_CHAR_N 646 -#define IMG_CHAR_O 647 -#define IMG_CHAR_P 648 -#define IMG_CHAR_Q 649 -#define IMG_CHAR_R 650 -#define IMG_CHAR_S 651 -#define IMG_CHAR_T 652 -#define IMG_CHAR_U 653 -#define IMG_CHAR_V 654 -#define IMG_CHAR_W 655 -#define IMG_CHAR_X 656 -#define IMG_CHAR_Y 657 -#define IMG_CHAR_Z 658 -#define IMG_CHAR_BRACKETLEFT 659 -#define IMG_CHAR_BACKSLASH 660 -#define IMG_CHAR_BRACKETRIGHT 661 -#define IMG_CHAR_ASCIICIRCUM 662 -#define IMG_CHAR_UNDERSCORE 663 -#define IMG_CHAR_COPYRIGHT 664 -#define IMG_CHAR_AUMLAUT 665 -#define IMG_CHAR_OUMLAUT 666 -#define IMG_CHAR_UUMLAUT 667 -#define IMG_CHAR_DEGREE 668 -#define IMG_CHAR_TRADEMARK 669 -#define IMG_CHAR_CURSOR 670 -#define IMG_CUSTOM_1 671 -#define IMG_CUSTOM_1_EDITOR 672 -#define IMG_CUSTOM_2 673 -#define IMG_CUSTOM_2_EDITOR 674 -#define IMG_CUSTOM_3 675 -#define IMG_CUSTOM_3_EDITOR 676 -#define IMG_CUSTOM_4 677 -#define IMG_CUSTOM_4_EDITOR 678 -#define IMG_CUSTOM_5 679 -#define IMG_CUSTOM_5_EDITOR 680 -#define IMG_CUSTOM_6 681 -#define IMG_CUSTOM_6_EDITOR 682 -#define IMG_CUSTOM_7 683 -#define IMG_CUSTOM_7_EDITOR 684 -#define IMG_CUSTOM_8 685 -#define IMG_CUSTOM_8_EDITOR 686 -#define IMG_CUSTOM_9 687 -#define IMG_CUSTOM_9_EDITOR 688 -#define IMG_CUSTOM_10 689 -#define IMG_CUSTOM_10_EDITOR 690 -#define IMG_CUSTOM_11 691 -#define IMG_CUSTOM_11_EDITOR 692 -#define IMG_CUSTOM_12 693 -#define IMG_CUSTOM_12_EDITOR 694 -#define IMG_CUSTOM_13 695 -#define IMG_CUSTOM_13_EDITOR 696 -#define IMG_CUSTOM_14 697 -#define IMG_CUSTOM_14_EDITOR 698 -#define IMG_CUSTOM_15 699 -#define IMG_CUSTOM_15_EDITOR 700 -#define IMG_CUSTOM_16 701 -#define IMG_CUSTOM_16_EDITOR 702 -#define IMG_CUSTOM_17 703 -#define IMG_CUSTOM_17_EDITOR 704 -#define IMG_CUSTOM_18 705 -#define IMG_CUSTOM_18_EDITOR 706 -#define IMG_CUSTOM_19 707 -#define IMG_CUSTOM_19_EDITOR 708 -#define IMG_CUSTOM_20 709 -#define IMG_CUSTOM_20_EDITOR 710 -#define IMG_CUSTOM_21 711 -#define IMG_CUSTOM_21_EDITOR 712 -#define IMG_CUSTOM_22 713 -#define IMG_CUSTOM_22_EDITOR 714 -#define IMG_CUSTOM_23 715 -#define IMG_CUSTOM_23_EDITOR 716 -#define IMG_CUSTOM_24 717 -#define IMG_CUSTOM_24_EDITOR 718 -#define IMG_CUSTOM_25 719 -#define IMG_CUSTOM_25_EDITOR 720 -#define IMG_CUSTOM_26 721 -#define IMG_CUSTOM_26_EDITOR 722 -#define IMG_CUSTOM_27 723 -#define IMG_CUSTOM_27_EDITOR 724 -#define IMG_CUSTOM_28 725 -#define IMG_CUSTOM_28_EDITOR 726 -#define IMG_CUSTOM_29 727 -#define IMG_CUSTOM_29_EDITOR 728 -#define IMG_CUSTOM_30 729 -#define IMG_CUSTOM_30_EDITOR 730 -#define IMG_CUSTOM_31 731 -#define IMG_CUSTOM_31_EDITOR 732 -#define IMG_CUSTOM_32 733 -#define IMG_CUSTOM_32_EDITOR 734 -#define IMG_CUSTOM_33 735 -#define IMG_CUSTOM_33_EDITOR 736 -#define IMG_CUSTOM_34 737 -#define IMG_CUSTOM_34_EDITOR 738 -#define IMG_CUSTOM_35 739 -#define IMG_CUSTOM_35_EDITOR 740 -#define IMG_CUSTOM_36 741 -#define IMG_CUSTOM_36_EDITOR 742 -#define IMG_CUSTOM_37 743 -#define IMG_CUSTOM_37_EDITOR 744 -#define IMG_CUSTOM_38 745 -#define IMG_CUSTOM_38_EDITOR 746 -#define IMG_CUSTOM_39 747 -#define IMG_CUSTOM_39_EDITOR 748 -#define IMG_CUSTOM_40 749 -#define IMG_CUSTOM_40_EDITOR 750 -#define IMG_CUSTOM_41 751 -#define IMG_CUSTOM_41_EDITOR 752 -#define IMG_CUSTOM_42 753 -#define IMG_CUSTOM_42_EDITOR 754 -#define IMG_CUSTOM_43 755 -#define IMG_CUSTOM_43_EDITOR 756 -#define IMG_CUSTOM_44 757 -#define IMG_CUSTOM_44_EDITOR 758 -#define IMG_CUSTOM_45 759 -#define IMG_CUSTOM_45_EDITOR 760 -#define IMG_CUSTOM_46 761 -#define IMG_CUSTOM_46_EDITOR 762 -#define IMG_CUSTOM_47 763 -#define IMG_CUSTOM_47_EDITOR 764 -#define IMG_CUSTOM_48 765 -#define IMG_CUSTOM_48_EDITOR 766 -#define IMG_CUSTOM_49 767 -#define IMG_CUSTOM_49_EDITOR 768 -#define IMG_CUSTOM_50 769 -#define IMG_CUSTOM_50_EDITOR 770 -#define IMG_CUSTOM_51 771 -#define IMG_CUSTOM_51_EDITOR 772 -#define IMG_CUSTOM_52 773 -#define IMG_CUSTOM_52_EDITOR 774 -#define IMG_CUSTOM_53 775 -#define IMG_CUSTOM_53_EDITOR 776 -#define IMG_CUSTOM_54 777 -#define IMG_CUSTOM_54_EDITOR 778 -#define IMG_CUSTOM_55 779 -#define IMG_CUSTOM_55_EDITOR 780 -#define IMG_CUSTOM_56 781 -#define IMG_CUSTOM_56_EDITOR 782 -#define IMG_CUSTOM_57 783 -#define IMG_CUSTOM_57_EDITOR 784 -#define IMG_CUSTOM_58 785 -#define IMG_CUSTOM_58_EDITOR 786 -#define IMG_CUSTOM_59 787 -#define IMG_CUSTOM_59_EDITOR 788 -#define IMG_CUSTOM_60 789 -#define IMG_CUSTOM_60_EDITOR 790 -#define IMG_CUSTOM_61 791 -#define IMG_CUSTOM_61_EDITOR 792 -#define IMG_CUSTOM_62 793 -#define IMG_CUSTOM_62_EDITOR 794 -#define IMG_CUSTOM_63 795 -#define IMG_CUSTOM_63_EDITOR 796 -#define IMG_CUSTOM_64 797 -#define IMG_CUSTOM_64_EDITOR 798 -#define IMG_CUSTOM_65 799 -#define IMG_CUSTOM_65_EDITOR 800 -#define IMG_CUSTOM_66 801 -#define IMG_CUSTOM_66_EDITOR 802 -#define IMG_CUSTOM_67 803 -#define IMG_CUSTOM_67_EDITOR 804 -#define IMG_CUSTOM_68 805 -#define IMG_CUSTOM_68_EDITOR 806 -#define IMG_CUSTOM_69 807 -#define IMG_CUSTOM_69_EDITOR 808 -#define IMG_CUSTOM_70 809 -#define IMG_CUSTOM_70_EDITOR 810 -#define IMG_CUSTOM_71 811 -#define IMG_CUSTOM_71_EDITOR 812 -#define IMG_CUSTOM_72 813 -#define IMG_CUSTOM_72_EDITOR 814 -#define IMG_CUSTOM_73 815 -#define IMG_CUSTOM_73_EDITOR 816 -#define IMG_CUSTOM_74 817 -#define IMG_CUSTOM_74_EDITOR 818 -#define IMG_CUSTOM_75 819 -#define IMG_CUSTOM_75_EDITOR 820 -#define IMG_CUSTOM_76 821 -#define IMG_CUSTOM_76_EDITOR 822 -#define IMG_CUSTOM_77 823 -#define IMG_CUSTOM_77_EDITOR 824 -#define IMG_CUSTOM_78 825 -#define IMG_CUSTOM_78_EDITOR 826 -#define IMG_CUSTOM_79 827 -#define IMG_CUSTOM_79_EDITOR 828 -#define IMG_CUSTOM_80 829 -#define IMG_CUSTOM_80_EDITOR 830 -#define IMG_CUSTOM_81 831 -#define IMG_CUSTOM_81_EDITOR 832 -#define IMG_CUSTOM_82 833 -#define IMG_CUSTOM_82_EDITOR 834 -#define IMG_CUSTOM_83 835 -#define IMG_CUSTOM_83_EDITOR 836 -#define IMG_CUSTOM_84 837 -#define IMG_CUSTOM_84_EDITOR 838 -#define IMG_CUSTOM_85 839 -#define IMG_CUSTOM_85_EDITOR 840 -#define IMG_CUSTOM_86 841 -#define IMG_CUSTOM_86_EDITOR 842 -#define IMG_CUSTOM_87 843 -#define IMG_CUSTOM_87_EDITOR 844 -#define IMG_CUSTOM_88 845 -#define IMG_CUSTOM_88_EDITOR 846 -#define IMG_CUSTOM_89 847 -#define IMG_CUSTOM_89_EDITOR 848 -#define IMG_CUSTOM_90 849 -#define IMG_CUSTOM_90_EDITOR 850 -#define IMG_CUSTOM_91 851 -#define IMG_CUSTOM_91_EDITOR 852 -#define IMG_CUSTOM_92 853 -#define IMG_CUSTOM_92_EDITOR 854 -#define IMG_CUSTOM_93 855 -#define IMG_CUSTOM_93_EDITOR 856 -#define IMG_CUSTOM_94 857 -#define IMG_CUSTOM_94_EDITOR 858 -#define IMG_CUSTOM_95 859 -#define IMG_CUSTOM_95_EDITOR 860 -#define IMG_CUSTOM_96 861 -#define IMG_CUSTOM_96_EDITOR 862 -#define IMG_CUSTOM_97 863 -#define IMG_CUSTOM_97_EDITOR 864 -#define IMG_CUSTOM_98 865 -#define IMG_CUSTOM_98_EDITOR 866 -#define IMG_CUSTOM_99 867 -#define IMG_CUSTOM_99_EDITOR 868 -#define IMG_CUSTOM_100 869 -#define IMG_CUSTOM_100_EDITOR 870 -#define IMG_CUSTOM_101 871 -#define IMG_CUSTOM_101_EDITOR 872 -#define IMG_CUSTOM_102 873 -#define IMG_CUSTOM_102_EDITOR 874 -#define IMG_CUSTOM_103 875 -#define IMG_CUSTOM_103_EDITOR 876 -#define IMG_CUSTOM_104 877 -#define IMG_CUSTOM_104_EDITOR 878 -#define IMG_CUSTOM_105 879 -#define IMG_CUSTOM_105_EDITOR 880 -#define IMG_CUSTOM_106 881 -#define IMG_CUSTOM_106_EDITOR 882 -#define IMG_CUSTOM_107 883 -#define IMG_CUSTOM_107_EDITOR 884 -#define IMG_CUSTOM_108 885 -#define IMG_CUSTOM_108_EDITOR 886 -#define IMG_CUSTOM_109 887 -#define IMG_CUSTOM_109_EDITOR 888 -#define IMG_CUSTOM_110 889 -#define IMG_CUSTOM_110_EDITOR 890 -#define IMG_CUSTOM_111 891 -#define IMG_CUSTOM_111_EDITOR 892 -#define IMG_CUSTOM_112 893 -#define IMG_CUSTOM_112_EDITOR 894 -#define IMG_CUSTOM_113 895 -#define IMG_CUSTOM_113_EDITOR 896 -#define IMG_CUSTOM_114 897 -#define IMG_CUSTOM_114_EDITOR 898 -#define IMG_CUSTOM_115 899 -#define IMG_CUSTOM_115_EDITOR 900 -#define IMG_CUSTOM_116 901 -#define IMG_CUSTOM_116_EDITOR 902 -#define IMG_CUSTOM_117 903 -#define IMG_CUSTOM_117_EDITOR 904 -#define IMG_CUSTOM_118 905 -#define IMG_CUSTOM_118_EDITOR 906 -#define IMG_CUSTOM_119 907 -#define IMG_CUSTOM_119_EDITOR 908 -#define IMG_CUSTOM_120 909 -#define IMG_CUSTOM_120_EDITOR 910 -#define IMG_CUSTOM_121 911 -#define IMG_CUSTOM_121_EDITOR 912 -#define IMG_CUSTOM_122 913 -#define IMG_CUSTOM_122_EDITOR 914 -#define IMG_CUSTOM_123 915 -#define IMG_CUSTOM_123_EDITOR 916 -#define IMG_CUSTOM_124 917 -#define IMG_CUSTOM_124_EDITOR 918 -#define IMG_CUSTOM_125 919 -#define IMG_CUSTOM_125_EDITOR 920 -#define IMG_CUSTOM_126 921 -#define IMG_CUSTOM_126_EDITOR 922 -#define IMG_CUSTOM_127 923 -#define IMG_CUSTOM_127_EDITOR 924 -#define IMG_CUSTOM_128 925 -#define IMG_CUSTOM_128_EDITOR 926 -#define IMG_TOON_1 927 -#define IMG_TOON_2 928 -#define IMG_TOON_3 929 -#define IMG_TOON_4 930 -#define IMG_TOON_5 931 -#define IMG_TOON_6 932 -#define IMG_TOON_7 933 -#define IMG_TOON_8 934 -#define IMG_TOON_9 935 -#define IMG_TOON_10 936 -#define IMG_TOON_11 937 -#define IMG_TOON_12 938 -#define IMG_TOON_13 939 -#define IMG_TOON_14 940 -#define IMG_TOON_15 941 -#define IMG_TOON_16 942 -#define IMG_TOON_17 943 -#define IMG_TOON_18 944 -#define IMG_TOON_19 945 -#define IMG_TOON_20 946 -#define IMG_MENU_CALIBRATE_RED 947 -#define IMG_MENU_CALIBRATE_BLUE 948 -#define IMG_MENU_CALIBRATE_YELLOW 949 -#define IMG_MENU_BUTTON 950 -#define IMG_MENU_BUTTON_ACTIVE 951 -#define IMG_MENU_BUTTON_LEFT 952 -#define IMG_MENU_BUTTON_RIGHT 953 -#define IMG_MENU_BUTTON_UP 954 -#define IMG_MENU_BUTTON_DOWN 955 -#define IMG_MENU_BUTTON_LEFT_ACTIVE 956 -#define IMG_MENU_BUTTON_RIGHT_ACTIVE 957 -#define IMG_MENU_BUTTON_UP_ACTIVE 958 -#define IMG_MENU_BUTTON_DOWN_ACTIVE 959 -#define IMG_MENU_SCROLLBAR 960 -#define IMG_MENU_SCROLLBAR_ACTIVE 961 -#define IMG_FONT_INITIAL_1 962 -#define IMG_FONT_INITIAL_2 963 -#define IMG_FONT_INITIAL_3 964 -#define IMG_FONT_INITIAL_4 965 -#define IMG_FONT_TITLE_1 966 -#define IMG_FONT_TITLE_1_LEVELS 967 -#define IMG_FONT_TITLE_2 968 -#define IMG_FONT_MENU_1 969 -#define IMG_FONT_MENU_2 970 -#define IMG_FONT_TEXT_1 971 -#define IMG_FONT_TEXT_1_LEVELS 972 -#define IMG_FONT_TEXT_1_PREVIEW 973 -#define IMG_FONT_TEXT_1_SCORES 974 -#define IMG_FONT_TEXT_1_ACTIVE_SCORES 975 -#define IMG_FONT_TEXT_2 976 -#define IMG_FONT_TEXT_2_LEVELS 977 -#define IMG_FONT_TEXT_2_PREVIEW 978 -#define IMG_FONT_TEXT_2_SCORES 979 -#define IMG_FONT_TEXT_2_ACTIVE_SCORES 980 -#define IMG_FONT_TEXT_3 981 -#define IMG_FONT_TEXT_3_LEVELS 982 -#define IMG_FONT_TEXT_3_PREVIEW 983 -#define IMG_FONT_TEXT_3_SCORES 984 -#define IMG_FONT_TEXT_3_ACTIVE_SCORES 985 -#define IMG_FONT_TEXT_4 986 -#define IMG_FONT_TEXT_4_LEVELS 987 -#define IMG_FONT_TEXT_4_SCORES 988 -#define IMG_FONT_TEXT_4_ACTIVE_SCORES 989 -#define IMG_FONT_INPUT_1 990 -#define IMG_FONT_INPUT_1_MAIN 991 -#define IMG_FONT_INPUT_1_ACTIVE 992 -#define IMG_FONT_INPUT_1_ACTIVE_MAIN 993 -#define IMG_FONT_INPUT_1_ACTIVE_SETUP 994 -#define IMG_FONT_INPUT_2 995 -#define IMG_FONT_INPUT_2_ACTIVE 996 -#define IMG_FONT_OPTION_OFF 997 -#define IMG_FONT_OPTION_ON 998 -#define IMG_FONT_VALUE_1 999 -#define IMG_FONT_VALUE_2 1000 -#define IMG_FONT_VALUE_OLD 1001 -#define IMG_FONT_LEVEL_NUMBER 1002 -#define IMG_FONT_TAPE_RECORDER 1003 -#define IMG_FONT_GAME_INFO 1004 -#define IMG_GLOBAL_BORDER 1005 -#define IMG_GLOBAL_DOOR 1006 -#define IMG_EDITOR_ELEMENT_BORDER 1007 -#define IMG_EDITOR_ELEMENT_BORDER_INPUT 1008 -#define IMG_BACKGROUND 1009 -#define IMG_BACKGROUND_MAIN 1010 -#define IMG_BACKGROUND_LEVELS 1011 -#define IMG_BACKGROUND_SCORES 1012 -#define IMG_BACKGROUND_EDITOR 1013 -#define IMG_BACKGROUND_INFO 1014 -#define IMG_BACKGROUND_SETUP 1015 -#define IMG_BACKGROUND_DOOR 1016 +#define IMG_FLAMES_1_LEFT 451 +#define IMG_FLAMES_2_LEFT 452 +#define IMG_FLAMES_3_LEFT 453 +#define IMG_FLAMES_1_RIGHT 454 +#define IMG_FLAMES_2_RIGHT 455 +#define IMG_FLAMES_3_RIGHT 456 +#define IMG_FLAMES_1_UP 457 +#define IMG_FLAMES_2_UP 458 +#define IMG_FLAMES_3_UP 459 +#define IMG_FLAMES_1_DOWN 460 +#define IMG_FLAMES_2_DOWN 461 +#define IMG_FLAMES_3_DOWN 462 +#define IMG_STONEBLOCK 463 +#define IMG_PLAYER_1 464 +#define IMG_PLAYER_1_EDITOR 465 +#define IMG_PLAYER_1_DOWN 466 +#define IMG_PLAYER_1_UP 467 +#define IMG_PLAYER_1_LEFT 468 +#define IMG_PLAYER_1_RIGHT 469 +#define IMG_PLAYER_1_MOVING_DOWN 470 +#define IMG_PLAYER_1_MOVING_UP 471 +#define IMG_PLAYER_1_MOVING_LEFT 472 +#define IMG_PLAYER_1_MOVING_RIGHT 473 +#define IMG_PLAYER_1_DIGGING_DOWN 474 +#define IMG_PLAYER_1_DIGGING_UP 475 +#define IMG_PLAYER_1_DIGGING_LEFT 476 +#define IMG_PLAYER_1_DIGGING_RIGHT 477 +#define IMG_PLAYER_1_COLLECTING_DOWN 478 +#define IMG_PLAYER_1_COLLECTING_UP 479 +#define IMG_PLAYER_1_COLLECTING_LEFT 480 +#define IMG_PLAYER_1_COLLECTING_RIGHT 481 +#define IMG_PLAYER_1_PUSHING_DOWN 482 +#define IMG_PLAYER_1_PUSHING_UP 483 +#define IMG_PLAYER_1_PUSHING_LEFT 484 +#define IMG_PLAYER_1_PUSHING_RIGHT 485 +#define IMG_PLAYER_1_SNAPPING_DOWN 486 +#define IMG_PLAYER_1_SNAPPING_UP 487 +#define IMG_PLAYER_1_SNAPPING_LEFT 488 +#define IMG_PLAYER_1_SNAPPING_RIGHT 489 +#define IMG_PLAYER_2 490 +#define IMG_PLAYER_2_EDITOR 491 +#define IMG_PLAYER_2_DOWN 492 +#define IMG_PLAYER_2_UP 493 +#define IMG_PLAYER_2_LEFT 494 +#define IMG_PLAYER_2_RIGHT 495 +#define IMG_PLAYER_2_MOVING_DOWN 496 +#define IMG_PLAYER_2_MOVING_UP 497 +#define IMG_PLAYER_2_MOVING_LEFT 498 +#define IMG_PLAYER_2_MOVING_RIGHT 499 +#define IMG_PLAYER_2_DIGGING_DOWN 500 +#define IMG_PLAYER_2_DIGGING_UP 501 +#define IMG_PLAYER_2_DIGGING_LEFT 502 +#define IMG_PLAYER_2_DIGGING_RIGHT 503 +#define IMG_PLAYER_2_COLLECTING_DOWN 504 +#define IMG_PLAYER_2_COLLECTING_UP 505 +#define IMG_PLAYER_2_COLLECTING_LEFT 506 +#define IMG_PLAYER_2_COLLECTING_RIGHT 507 +#define IMG_PLAYER_2_PUSHING_DOWN 508 +#define IMG_PLAYER_2_PUSHING_UP 509 +#define IMG_PLAYER_2_PUSHING_LEFT 510 +#define IMG_PLAYER_2_PUSHING_RIGHT 511 +#define IMG_PLAYER_2_SNAPPING_DOWN 512 +#define IMG_PLAYER_2_SNAPPING_UP 513 +#define IMG_PLAYER_2_SNAPPING_LEFT 514 +#define IMG_PLAYER_2_SNAPPING_RIGHT 515 +#define IMG_PLAYER_3 516 +#define IMG_PLAYER_3_EDITOR 517 +#define IMG_PLAYER_3_DOWN 518 +#define IMG_PLAYER_3_UP 519 +#define IMG_PLAYER_3_LEFT 520 +#define IMG_PLAYER_3_RIGHT 521 +#define IMG_PLAYER_3_MOVING_DOWN 522 +#define IMG_PLAYER_3_MOVING_UP 523 +#define IMG_PLAYER_3_MOVING_LEFT 524 +#define IMG_PLAYER_3_MOVING_RIGHT 525 +#define IMG_PLAYER_3_DIGGING_DOWN 526 +#define IMG_PLAYER_3_DIGGING_UP 527 +#define IMG_PLAYER_3_DIGGING_LEFT 528 +#define IMG_PLAYER_3_DIGGING_RIGHT 529 +#define IMG_PLAYER_3_COLLECTING_DOWN 530 +#define IMG_PLAYER_3_COLLECTING_UP 531 +#define IMG_PLAYER_3_COLLECTING_LEFT 532 +#define IMG_PLAYER_3_COLLECTING_RIGHT 533 +#define IMG_PLAYER_3_PUSHING_DOWN 534 +#define IMG_PLAYER_3_PUSHING_UP 535 +#define IMG_PLAYER_3_PUSHING_LEFT 536 +#define IMG_PLAYER_3_PUSHING_RIGHT 537 +#define IMG_PLAYER_3_SNAPPING_DOWN 538 +#define IMG_PLAYER_3_SNAPPING_UP 539 +#define IMG_PLAYER_3_SNAPPING_LEFT 540 +#define IMG_PLAYER_3_SNAPPING_RIGHT 541 +#define IMG_PLAYER_4 542 +#define IMG_PLAYER_4_EDITOR 543 +#define IMG_PLAYER_4_DOWN 544 +#define IMG_PLAYER_4_UP 545 +#define IMG_PLAYER_4_LEFT 546 +#define IMG_PLAYER_4_RIGHT 547 +#define IMG_PLAYER_4_MOVING_DOWN 548 +#define IMG_PLAYER_4_MOVING_UP 549 +#define IMG_PLAYER_4_MOVING_LEFT 550 +#define IMG_PLAYER_4_MOVING_RIGHT 551 +#define IMG_PLAYER_4_DIGGING_DOWN 552 +#define IMG_PLAYER_4_DIGGING_UP 553 +#define IMG_PLAYER_4_DIGGING_LEFT 554 +#define IMG_PLAYER_4_DIGGING_RIGHT 555 +#define IMG_PLAYER_4_COLLECTING_DOWN 556 +#define IMG_PLAYER_4_COLLECTING_UP 557 +#define IMG_PLAYER_4_COLLECTING_LEFT 558 +#define IMG_PLAYER_4_COLLECTING_RIGHT 559 +#define IMG_PLAYER_4_PUSHING_DOWN 560 +#define IMG_PLAYER_4_PUSHING_UP 561 +#define IMG_PLAYER_4_PUSHING_LEFT 562 +#define IMG_PLAYER_4_PUSHING_RIGHT 563 +#define IMG_PLAYER_4_SNAPPING_DOWN 564 +#define IMG_PLAYER_4_SNAPPING_UP 565 +#define IMG_PLAYER_4_SNAPPING_LEFT 566 +#define IMG_PLAYER_4_SNAPPING_RIGHT 567 +#define IMG_DEFAULT_EXPLODING 568 +#define IMG_TWINKLE_BLUE 569 +#define IMG_TWINKLE_WHITE 570 +#define IMG_STEELWALL_TOPLEFT 571 +#define IMG_STEELWALL_TOPRIGHT 572 +#define IMG_STEELWALL_BOTTOMLEFT 573 +#define IMG_STEELWALL_BOTTOMRIGHT 574 +#define IMG_STEELWALL_HORIZONTAL 575 +#define IMG_STEELWALL_VERTICAL 576 +#define IMG_STEELWALL_TOPLEFT_EDITOR 577 +#define IMG_STEELWALL_TOPRIGHT_EDITOR 578 +#define IMG_STEELWALL_BOTTOMLEFT_EDITOR 579 +#define IMG_STEELWALL_BOTTOMRIGHT_EDITOR 580 +#define IMG_STEELWALL_HORIZONTAL_EDITOR 581 +#define IMG_STEELWALL_VERTICAL_EDITOR 582 +#define IMG_INVISIBLE_STEELWALL_TOPLEFT 583 +#define IMG_INVISIBLE_STEELWALL_TOPRIGHT 584 +#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT 585 +#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT 586 +#define IMG_INVISIBLE_STEELWALL_HORIZONTAL 587 +#define IMG_INVISIBLE_STEELWALL_VERTICAL 588 +#define IMG_INVISIBLE_STEELWALL_TOPLEFT_EDITOR 589 +#define IMG_INVISIBLE_STEELWALL_TOPRIGHT_EDITOR 590 +#define IMG_INVISIBLE_STEELWALL_BOTTOMLEFT_EDITOR 591 +#define IMG_INVISIBLE_STEELWALL_BOTTOMRIGHT_EDITOR 592 +#define IMG_INVISIBLE_STEELWALL_HORIZONTAL_EDITOR 593 +#define IMG_INVISIBLE_STEELWALL_VERTICAL_EDITOR 594 +#define IMG_ARROW_LEFT 595 +#define IMG_ARROW_RIGHT 596 +#define IMG_ARROW_UP 597 +#define IMG_ARROW_DOWN 598 +#define IMG_CHAR_SPACE 599 +#define IMG_CHAR_EXCLAM 600 +#define IMG_CHAR_QUOTEDBL 601 +#define IMG_CHAR_NUMBERSIGN 602 +#define IMG_CHAR_DOLLAR 603 +#define IMG_CHAR_PROCENT 604 +#define IMG_CHAR_AMPERSAND 605 +#define IMG_CHAR_APOSTROPHE 606 +#define IMG_CHAR_PARENLEFT 607 +#define IMG_CHAR_PARENRIGHT 608 +#define IMG_CHAR_ASTERISK 609 +#define IMG_CHAR_PLUS 610 +#define IMG_CHAR_COMMA 611 +#define IMG_CHAR_MINUS 612 +#define IMG_CHAR_PERIOD 613 +#define IMG_CHAR_SLASH 614 +#define IMG_CHAR_0 615 +#define IMG_CHAR_1 616 +#define IMG_CHAR_2 617 +#define IMG_CHAR_3 618 +#define IMG_CHAR_4 619 +#define IMG_CHAR_5 620 +#define IMG_CHAR_6 621 +#define IMG_CHAR_7 622 +#define IMG_CHAR_8 623 +#define IMG_CHAR_9 624 +#define IMG_CHAR_COLON 625 +#define IMG_CHAR_SEMICOLON 626 +#define IMG_CHAR_LESS 627 +#define IMG_CHAR_EQUAL 628 +#define IMG_CHAR_GREATER 629 +#define IMG_CHAR_QUESTION 630 +#define IMG_CHAR_AT 631 +#define IMG_CHAR_A 632 +#define IMG_CHAR_B 633 +#define IMG_CHAR_C 634 +#define IMG_CHAR_D 635 +#define IMG_CHAR_E 636 +#define IMG_CHAR_F 637 +#define IMG_CHAR_G 638 +#define IMG_CHAR_H 639 +#define IMG_CHAR_I 640 +#define IMG_CHAR_J 641 +#define IMG_CHAR_K 642 +#define IMG_CHAR_L 643 +#define IMG_CHAR_M 644 +#define IMG_CHAR_N 645 +#define IMG_CHAR_O 646 +#define IMG_CHAR_P 647 +#define IMG_CHAR_Q 648 +#define IMG_CHAR_R 649 +#define IMG_CHAR_S 650 +#define IMG_CHAR_T 651 +#define IMG_CHAR_U 652 +#define IMG_CHAR_V 653 +#define IMG_CHAR_W 654 +#define IMG_CHAR_X 655 +#define IMG_CHAR_Y 656 +#define IMG_CHAR_Z 657 +#define IMG_CHAR_BRACKETLEFT 658 +#define IMG_CHAR_BACKSLASH 659 +#define IMG_CHAR_BRACKETRIGHT 660 +#define IMG_CHAR_ASCIICIRCUM 661 +#define IMG_CHAR_UNDERSCORE 662 +#define IMG_CHAR_COPYRIGHT 663 +#define IMG_CHAR_AUMLAUT 664 +#define IMG_CHAR_OUMLAUT 665 +#define IMG_CHAR_UUMLAUT 666 +#define IMG_CHAR_DEGREE 667 +#define IMG_CHAR_TRADEMARK 668 +#define IMG_CHAR_CURSOR 669 +#define IMG_CUSTOM_1 670 +#define IMG_CUSTOM_1_EDITOR 671 +#define IMG_CUSTOM_2 672 +#define IMG_CUSTOM_2_EDITOR 673 +#define IMG_CUSTOM_3 674 +#define IMG_CUSTOM_3_EDITOR 675 +#define IMG_CUSTOM_4 676 +#define IMG_CUSTOM_4_EDITOR 677 +#define IMG_CUSTOM_5 678 +#define IMG_CUSTOM_5_EDITOR 679 +#define IMG_CUSTOM_6 680 +#define IMG_CUSTOM_6_EDITOR 681 +#define IMG_CUSTOM_7 682 +#define IMG_CUSTOM_7_EDITOR 683 +#define IMG_CUSTOM_8 684 +#define IMG_CUSTOM_8_EDITOR 685 +#define IMG_CUSTOM_9 686 +#define IMG_CUSTOM_9_EDITOR 687 +#define IMG_CUSTOM_10 688 +#define IMG_CUSTOM_10_EDITOR 689 +#define IMG_CUSTOM_11 690 +#define IMG_CUSTOM_11_EDITOR 691 +#define IMG_CUSTOM_12 692 +#define IMG_CUSTOM_12_EDITOR 693 +#define IMG_CUSTOM_13 694 +#define IMG_CUSTOM_13_EDITOR 695 +#define IMG_CUSTOM_14 696 +#define IMG_CUSTOM_14_EDITOR 697 +#define IMG_CUSTOM_15 698 +#define IMG_CUSTOM_15_EDITOR 699 +#define IMG_CUSTOM_16 700 +#define IMG_CUSTOM_16_EDITOR 701 +#define IMG_CUSTOM_17 702 +#define IMG_CUSTOM_17_EDITOR 703 +#define IMG_CUSTOM_18 704 +#define IMG_CUSTOM_18_EDITOR 705 +#define IMG_CUSTOM_19 706 +#define IMG_CUSTOM_19_EDITOR 707 +#define IMG_CUSTOM_20 708 +#define IMG_CUSTOM_20_EDITOR 709 +#define IMG_CUSTOM_21 710 +#define IMG_CUSTOM_21_EDITOR 711 +#define IMG_CUSTOM_22 712 +#define IMG_CUSTOM_22_EDITOR 713 +#define IMG_CUSTOM_23 714 +#define IMG_CUSTOM_23_EDITOR 715 +#define IMG_CUSTOM_24 716 +#define IMG_CUSTOM_24_EDITOR 717 +#define IMG_CUSTOM_25 718 +#define IMG_CUSTOM_25_EDITOR 719 +#define IMG_CUSTOM_26 720 +#define IMG_CUSTOM_26_EDITOR 721 +#define IMG_CUSTOM_27 722 +#define IMG_CUSTOM_27_EDITOR 723 +#define IMG_CUSTOM_28 724 +#define IMG_CUSTOM_28_EDITOR 725 +#define IMG_CUSTOM_29 726 +#define IMG_CUSTOM_29_EDITOR 727 +#define IMG_CUSTOM_30 728 +#define IMG_CUSTOM_30_EDITOR 729 +#define IMG_CUSTOM_31 730 +#define IMG_CUSTOM_31_EDITOR 731 +#define IMG_CUSTOM_32 732 +#define IMG_CUSTOM_32_EDITOR 733 +#define IMG_CUSTOM_33 734 +#define IMG_CUSTOM_33_EDITOR 735 +#define IMG_CUSTOM_34 736 +#define IMG_CUSTOM_34_EDITOR 737 +#define IMG_CUSTOM_35 738 +#define IMG_CUSTOM_35_EDITOR 739 +#define IMG_CUSTOM_36 740 +#define IMG_CUSTOM_36_EDITOR 741 +#define IMG_CUSTOM_37 742 +#define IMG_CUSTOM_37_EDITOR 743 +#define IMG_CUSTOM_38 744 +#define IMG_CUSTOM_38_EDITOR 745 +#define IMG_CUSTOM_39 746 +#define IMG_CUSTOM_39_EDITOR 747 +#define IMG_CUSTOM_40 748 +#define IMG_CUSTOM_40_EDITOR 749 +#define IMG_CUSTOM_41 750 +#define IMG_CUSTOM_41_EDITOR 751 +#define IMG_CUSTOM_42 752 +#define IMG_CUSTOM_42_EDITOR 753 +#define IMG_CUSTOM_43 754 +#define IMG_CUSTOM_43_EDITOR 755 +#define IMG_CUSTOM_44 756 +#define IMG_CUSTOM_44_EDITOR 757 +#define IMG_CUSTOM_45 758 +#define IMG_CUSTOM_45_EDITOR 759 +#define IMG_CUSTOM_46 760 +#define IMG_CUSTOM_46_EDITOR 761 +#define IMG_CUSTOM_47 762 +#define IMG_CUSTOM_47_EDITOR 763 +#define IMG_CUSTOM_48 764 +#define IMG_CUSTOM_48_EDITOR 765 +#define IMG_CUSTOM_49 766 +#define IMG_CUSTOM_49_EDITOR 767 +#define IMG_CUSTOM_50 768 +#define IMG_CUSTOM_50_EDITOR 769 +#define IMG_CUSTOM_51 770 +#define IMG_CUSTOM_51_EDITOR 771 +#define IMG_CUSTOM_52 772 +#define IMG_CUSTOM_52_EDITOR 773 +#define IMG_CUSTOM_53 774 +#define IMG_CUSTOM_53_EDITOR 775 +#define IMG_CUSTOM_54 776 +#define IMG_CUSTOM_54_EDITOR 777 +#define IMG_CUSTOM_55 778 +#define IMG_CUSTOM_55_EDITOR 779 +#define IMG_CUSTOM_56 780 +#define IMG_CUSTOM_56_EDITOR 781 +#define IMG_CUSTOM_57 782 +#define IMG_CUSTOM_57_EDITOR 783 +#define IMG_CUSTOM_58 784 +#define IMG_CUSTOM_58_EDITOR 785 +#define IMG_CUSTOM_59 786 +#define IMG_CUSTOM_59_EDITOR 787 +#define IMG_CUSTOM_60 788 +#define IMG_CUSTOM_60_EDITOR 789 +#define IMG_CUSTOM_61 790 +#define IMG_CUSTOM_61_EDITOR 791 +#define IMG_CUSTOM_62 792 +#define IMG_CUSTOM_62_EDITOR 793 +#define IMG_CUSTOM_63 794 +#define IMG_CUSTOM_63_EDITOR 795 +#define IMG_CUSTOM_64 796 +#define IMG_CUSTOM_64_EDITOR 797 +#define IMG_CUSTOM_65 798 +#define IMG_CUSTOM_65_EDITOR 799 +#define IMG_CUSTOM_66 800 +#define IMG_CUSTOM_66_EDITOR 801 +#define IMG_CUSTOM_67 802 +#define IMG_CUSTOM_67_EDITOR 803 +#define IMG_CUSTOM_68 804 +#define IMG_CUSTOM_68_EDITOR 805 +#define IMG_CUSTOM_69 806 +#define IMG_CUSTOM_69_EDITOR 807 +#define IMG_CUSTOM_70 808 +#define IMG_CUSTOM_70_EDITOR 809 +#define IMG_CUSTOM_71 810 +#define IMG_CUSTOM_71_EDITOR 811 +#define IMG_CUSTOM_72 812 +#define IMG_CUSTOM_72_EDITOR 813 +#define IMG_CUSTOM_73 814 +#define IMG_CUSTOM_73_EDITOR 815 +#define IMG_CUSTOM_74 816 +#define IMG_CUSTOM_74_EDITOR 817 +#define IMG_CUSTOM_75 818 +#define IMG_CUSTOM_75_EDITOR 819 +#define IMG_CUSTOM_76 820 +#define IMG_CUSTOM_76_EDITOR 821 +#define IMG_CUSTOM_77 822 +#define IMG_CUSTOM_77_EDITOR 823 +#define IMG_CUSTOM_78 824 +#define IMG_CUSTOM_78_EDITOR 825 +#define IMG_CUSTOM_79 826 +#define IMG_CUSTOM_79_EDITOR 827 +#define IMG_CUSTOM_80 828 +#define IMG_CUSTOM_80_EDITOR 829 +#define IMG_CUSTOM_81 830 +#define IMG_CUSTOM_81_EDITOR 831 +#define IMG_CUSTOM_82 832 +#define IMG_CUSTOM_82_EDITOR 833 +#define IMG_CUSTOM_83 834 +#define IMG_CUSTOM_83_EDITOR 835 +#define IMG_CUSTOM_84 836 +#define IMG_CUSTOM_84_EDITOR 837 +#define IMG_CUSTOM_85 838 +#define IMG_CUSTOM_85_EDITOR 839 +#define IMG_CUSTOM_86 840 +#define IMG_CUSTOM_86_EDITOR 841 +#define IMG_CUSTOM_87 842 +#define IMG_CUSTOM_87_EDITOR 843 +#define IMG_CUSTOM_88 844 +#define IMG_CUSTOM_88_EDITOR 845 +#define IMG_CUSTOM_89 846 +#define IMG_CUSTOM_89_EDITOR 847 +#define IMG_CUSTOM_90 848 +#define IMG_CUSTOM_90_EDITOR 849 +#define IMG_CUSTOM_91 850 +#define IMG_CUSTOM_91_EDITOR 851 +#define IMG_CUSTOM_92 852 +#define IMG_CUSTOM_92_EDITOR 853 +#define IMG_CUSTOM_93 854 +#define IMG_CUSTOM_93_EDITOR 855 +#define IMG_CUSTOM_94 856 +#define IMG_CUSTOM_94_EDITOR 857 +#define IMG_CUSTOM_95 858 +#define IMG_CUSTOM_95_EDITOR 859 +#define IMG_CUSTOM_96 860 +#define IMG_CUSTOM_96_EDITOR 861 +#define IMG_CUSTOM_97 862 +#define IMG_CUSTOM_97_EDITOR 863 +#define IMG_CUSTOM_98 864 +#define IMG_CUSTOM_98_EDITOR 865 +#define IMG_CUSTOM_99 866 +#define IMG_CUSTOM_99_EDITOR 867 +#define IMG_CUSTOM_100 868 +#define IMG_CUSTOM_100_EDITOR 869 +#define IMG_CUSTOM_101 870 +#define IMG_CUSTOM_101_EDITOR 871 +#define IMG_CUSTOM_102 872 +#define IMG_CUSTOM_102_EDITOR 873 +#define IMG_CUSTOM_103 874 +#define IMG_CUSTOM_103_EDITOR 875 +#define IMG_CUSTOM_104 876 +#define IMG_CUSTOM_104_EDITOR 877 +#define IMG_CUSTOM_105 878 +#define IMG_CUSTOM_105_EDITOR 879 +#define IMG_CUSTOM_106 880 +#define IMG_CUSTOM_106_EDITOR 881 +#define IMG_CUSTOM_107 882 +#define IMG_CUSTOM_107_EDITOR 883 +#define IMG_CUSTOM_108 884 +#define IMG_CUSTOM_108_EDITOR 885 +#define IMG_CUSTOM_109 886 +#define IMG_CUSTOM_109_EDITOR 887 +#define IMG_CUSTOM_110 888 +#define IMG_CUSTOM_110_EDITOR 889 +#define IMG_CUSTOM_111 890 +#define IMG_CUSTOM_111_EDITOR 891 +#define IMG_CUSTOM_112 892 +#define IMG_CUSTOM_112_EDITOR 893 +#define IMG_CUSTOM_113 894 +#define IMG_CUSTOM_113_EDITOR 895 +#define IMG_CUSTOM_114 896 +#define IMG_CUSTOM_114_EDITOR 897 +#define IMG_CUSTOM_115 898 +#define IMG_CUSTOM_115_EDITOR 899 +#define IMG_CUSTOM_116 900 +#define IMG_CUSTOM_116_EDITOR 901 +#define IMG_CUSTOM_117 902 +#define IMG_CUSTOM_117_EDITOR 903 +#define IMG_CUSTOM_118 904 +#define IMG_CUSTOM_118_EDITOR 905 +#define IMG_CUSTOM_119 906 +#define IMG_CUSTOM_119_EDITOR 907 +#define IMG_CUSTOM_120 908 +#define IMG_CUSTOM_120_EDITOR 909 +#define IMG_CUSTOM_121 910 +#define IMG_CUSTOM_121_EDITOR 911 +#define IMG_CUSTOM_122 912 +#define IMG_CUSTOM_122_EDITOR 913 +#define IMG_CUSTOM_123 914 +#define IMG_CUSTOM_123_EDITOR 915 +#define IMG_CUSTOM_124 916 +#define IMG_CUSTOM_124_EDITOR 917 +#define IMG_CUSTOM_125 918 +#define IMG_CUSTOM_125_EDITOR 919 +#define IMG_CUSTOM_126 920 +#define IMG_CUSTOM_126_EDITOR 921 +#define IMG_CUSTOM_127 922 +#define IMG_CUSTOM_127_EDITOR 923 +#define IMG_CUSTOM_128 924 +#define IMG_CUSTOM_128_EDITOR 925 +#define IMG_TOON_1 926 +#define IMG_TOON_2 927 +#define IMG_TOON_3 928 +#define IMG_TOON_4 929 +#define IMG_TOON_5 930 +#define IMG_TOON_6 931 +#define IMG_TOON_7 932 +#define IMG_TOON_8 933 +#define IMG_TOON_9 934 +#define IMG_TOON_10 935 +#define IMG_TOON_11 936 +#define IMG_TOON_12 937 +#define IMG_TOON_13 938 +#define IMG_TOON_14 939 +#define IMG_TOON_15 940 +#define IMG_TOON_16 941 +#define IMG_TOON_17 942 +#define IMG_TOON_18 943 +#define IMG_TOON_19 944 +#define IMG_TOON_20 945 +#define IMG_MENU_CALIBRATE_RED 946 +#define IMG_MENU_CALIBRATE_BLUE 947 +#define IMG_MENU_CALIBRATE_YELLOW 948 +#define IMG_MENU_BUTTON 949 +#define IMG_MENU_BUTTON_ACTIVE 950 +#define IMG_MENU_BUTTON_LEFT 951 +#define IMG_MENU_BUTTON_RIGHT 952 +#define IMG_MENU_BUTTON_UP 953 +#define IMG_MENU_BUTTON_DOWN 954 +#define IMG_MENU_BUTTON_LEFT_ACTIVE 955 +#define IMG_MENU_BUTTON_RIGHT_ACTIVE 956 +#define IMG_MENU_BUTTON_UP_ACTIVE 957 +#define IMG_MENU_BUTTON_DOWN_ACTIVE 958 +#define IMG_MENU_SCROLLBAR 959 +#define IMG_MENU_SCROLLBAR_ACTIVE 960 +#define IMG_FONT_INITIAL_1 961 +#define IMG_FONT_INITIAL_2 962 +#define IMG_FONT_INITIAL_3 963 +#define IMG_FONT_INITIAL_4 964 +#define IMG_FONT_TITLE_1 965 +#define IMG_FONT_TITLE_1_LEVELS 966 +#define IMG_FONT_TITLE_2 967 +#define IMG_FONT_MENU_1 968 +#define IMG_FONT_MENU_2 969 +#define IMG_FONT_TEXT_1 970 +#define IMG_FONT_TEXT_1_LEVELS 971 +#define IMG_FONT_TEXT_1_PREVIEW 972 +#define IMG_FONT_TEXT_1_SCORES 973 +#define IMG_FONT_TEXT_1_ACTIVE_SCORES 974 +#define IMG_FONT_TEXT_2 975 +#define IMG_FONT_TEXT_2_LEVELS 976 +#define IMG_FONT_TEXT_2_PREVIEW 977 +#define IMG_FONT_TEXT_2_SCORES 978 +#define IMG_FONT_TEXT_2_ACTIVE_SCORES 979 +#define IMG_FONT_TEXT_3 980 +#define IMG_FONT_TEXT_3_LEVELS 981 +#define IMG_FONT_TEXT_3_PREVIEW 982 +#define IMG_FONT_TEXT_3_SCORES 983 +#define IMG_FONT_TEXT_3_ACTIVE_SCORES 984 +#define IMG_FONT_TEXT_4 985 +#define IMG_FONT_TEXT_4_LEVELS 986 +#define IMG_FONT_TEXT_4_SCORES 987 +#define IMG_FONT_TEXT_4_ACTIVE_SCORES 988 +#define IMG_FONT_INPUT_1 989 +#define IMG_FONT_INPUT_1_MAIN 990 +#define IMG_FONT_INPUT_1_ACTIVE 991 +#define IMG_FONT_INPUT_1_ACTIVE_MAIN 992 +#define IMG_FONT_INPUT_1_ACTIVE_SETUP 993 +#define IMG_FONT_INPUT_2 994 +#define IMG_FONT_INPUT_2_ACTIVE 995 +#define IMG_FONT_OPTION_OFF 996 +#define IMG_FONT_OPTION_ON 997 +#define IMG_FONT_VALUE_1 998 +#define IMG_FONT_VALUE_2 999 +#define IMG_FONT_VALUE_OLD 1000 +#define IMG_FONT_LEVEL_NUMBER 1001 +#define IMG_FONT_TAPE_RECORDER 1002 +#define IMG_FONT_GAME_INFO 1003 +#define IMG_GLOBAL_BORDER 1004 +#define IMG_GLOBAL_DOOR 1005 +#define IMG_EDITOR_ELEMENT_BORDER 1006 +#define IMG_EDITOR_ELEMENT_BORDER_INPUT 1007 +#define IMG_BACKGROUND 1008 +#define IMG_BACKGROUND_MAIN 1009 +#define IMG_BACKGROUND_LEVELS 1010 +#define IMG_BACKGROUND_SCORES 1011 +#define IMG_BACKGROUND_EDITOR 1012 +#define IMG_BACKGROUND_INFO 1013 +#define IMG_BACKGROUND_SETUP 1014 +#define IMG_BACKGROUND_DOOR 1015 -#define NUM_IMAGE_FILES 1017 +#define NUM_IMAGE_FILES 1016 #endif /* CONF_GFX_H */ diff --git a/src/conftime.h b/src/conftime.h index f45491f6..0a2e5814 100644 --- a/src/conftime.h +++ b/src/conftime.h @@ -1 +1 @@ -#define COMPILE_DATE_STRING "[2003-07-23 01:01]" +#define COMPILE_DATE_STRING "[2003-07-26 03:06]" diff --git a/src/editor.c b/src/editor.c index b7fc8bd4..77557f6e 100644 --- a/src/editor.c +++ b/src/editor.c @@ -888,7 +888,7 @@ static struct GADGET_ID_CHANGE_CONT_RND_DOWN, GADGET_ID_CHANGE_CONT_RND_UP, GADGET_ID_CHANGE_CONT_RND_TEXT, GADGET_ID_NONE, &custom_element.change.random, - NULL, "use random change:", NULL + NULL, "use random change:", "(%)" }, }; diff --git a/src/events.c b/src/events.c index b1c15e9f..0dec9df9 100644 --- a/src/events.c +++ b/src/events.c @@ -432,6 +432,7 @@ void HandleButton(int mx, int my, int button) printf(" MovDelay[%d][%d] == %d\n", x,y, MovDelay[x][y]); printf(" ChangeDelay[%d][%d] == %d\n", x,y, ChangeDelay[x][y]); printf(" GfxElement[%d][%d] == %d\n", x,y, GfxElement[x][y]); + printf(" GfxAction[%d][%d] == %d\n", x,y, GfxAction[x][y]); printf("\n"); } } diff --git a/src/game.c b/src/game.c index c2deb648..5b22dcbd 100644 --- a/src/game.c +++ b/src/game.c @@ -1906,6 +1906,8 @@ void Explode(int ex, int ey, int phase, int mode) for (y = ey - 1; y <= ey + 1; y++) for(x = ex - 1; x <= ex + 1; x++) { + int xx = x - ex + 1; + int yy = y - ey + 1; int element; if (!IN_LEV_FIELD(x, y) || @@ -2016,11 +2018,10 @@ void Explode(int ex, int ey, int phase, int mode) else if (center_element == EL_AMOEBA_TO_DIAMOND) Store[x][y] = level.amoeba_content; else if (center_element == EL_YAMYAM) - Store[x][y] = - level.yamyam_content[game.yamyam_content_nr][x - ex + 1][y - ey + 1]; - else if (IS_CUSTOM_ELEMENT(center_element)) - Store[x][y] = - element_info[center_element].content[x - ex + 1][y - ey + 1]; + Store[x][y] = level.yamyam_content[game.yamyam_content_nr][xx][yy]; + else if (IS_CUSTOM_ELEMENT(center_element) && + element_info[center_element].content[xx][yy] != EL_EMPTY) + Store[x][y] = element_info[center_element].content[xx][yy]; else if (element == EL_WALL_EMERALD) Store[x][y] = EL_EMERALD; else if (element == EL_WALL_DIAMOND) @@ -2037,6 +2038,8 @@ void Explode(int ex, int ey, int phase, int mode) Store[x][y] = EL_PEARL; else if (element == EL_WALL_CRYSTAL) Store[x][y] = EL_CRYSTAL; + else if (IS_CUSTOM_ELEMENT(element)) + Store[x][y] = element_info[element].content[1][1]; else Store[x][y] = EL_EMPTY; @@ -3440,7 +3443,7 @@ void StartMoving(int x, int y) if (Stop[x][y]) return; - /* !!! this should be handled more generic (not only for more) !!! */ + /* !!! this should be handled more generic (not only for mole) !!! */ if (element != EL_MOLE && GfxAction[x][y] != ACTION_DIGGING) GfxAction[x][y] = ACTION_DEFAULT; @@ -5224,7 +5227,7 @@ static void ChangeElementNow(int x, int y, int element) if (!change->only_complete || complete_change) { if (change->only_complete && change->use_random_change && - RND(change->random) != 0) + RND(100) < change->random) return; for (yy = 0; yy < 3; yy++) for(xx = 0; xx < 3 ; xx++) @@ -5233,7 +5236,7 @@ static void ChangeElementNow(int x, int y, int element) int ey = y + yy - 1; if (can_change[xx][yy] && (!change->use_random_change || - RND(change->random) == 0)) + RND(100) < change->random)) { if (IS_MOVING(ex, ey) || IS_BLOCKED(ex, ey)) RemoveMovingField(ex, ey); @@ -5583,6 +5586,16 @@ void GameActions() GfxFrame[x][y]++; +#if 1 + /* reset finished pushing action (not done in ContinueMoving() to allow + continous pushing animation for elements without push delay) */ + if (GfxAction[x][y] == ACTION_PUSHING && !IS_MOVING(x, y)) + { + ResetGfxAnimation(x, y); + DrawLevelField(x, y); + } +#endif + #if DEBUG if (IS_BLOCKED(x, y)) { @@ -6339,7 +6352,9 @@ void ScrollFigure(struct PlayerInfo *player, int mode) if (Feld[last_jx][last_jy] == EL_EMPTY) Feld[last_jx][last_jy] = EL_PLAYER_IS_LEAVING; +#if 0 DrawPlayer(player); +#endif return; } else if (!FrameReached(&player->actual_frame_counter, 1)) @@ -6355,7 +6370,9 @@ void ScrollFigure(struct PlayerInfo *player, int mode) if (player->MovPos == 0) CheckGravityMovement(player); - DrawPlayer(player); +#if 0 + DrawPlayer(player); /* needed here only to cleanup last field */ +#endif if (player->MovPos == 0) { @@ -7327,6 +7344,7 @@ int DigField(struct PlayerInfo *player, PlaySoundLevelElementAction(x, y, element, ACTION_PUSHING); InitMovingField(x, y, move_direction); + GfxAction[x][y] = ACTION_PUSHING; if (mode == DF_SNAP) ContinueMoving(x, y); @@ -7885,6 +7903,8 @@ static void HandleGameButtons(struct GadgetInfo *gi) else if (audio.music_available) { setup.sound = setup.sound_music = TRUE; + + SetAudioMode(setup.sound); PlayMusic(level_nr); } break; @@ -7893,14 +7913,20 @@ static void HandleGameButtons(struct GadgetInfo *gi) if (setup.sound_loops) setup.sound_loops = FALSE; else if (audio.loops_available) + { setup.sound = setup.sound_loops = TRUE; + SetAudioMode(setup.sound); + } break; case SOUND_CTRL_ID_SIMPLE: if (setup.sound_simple) setup.sound_simple = FALSE; else if (audio.sound_available) + { setup.sound = setup.sound_simple = TRUE; + SetAudioMode(setup.sound); + } break; default: diff --git a/src/init.c b/src/init.c index 57cdc8e1..20a84d1e 100644 --- a/src/init.c +++ b/src/init.c @@ -754,6 +754,10 @@ static void InitGraphicInfo() int src_x, src_y; int first_frame, last_frame; +#if 0 + printf("::: image: '%s'\n", image->token); +#endif + set_graphic_parameters(i, image->parameter); /* now check if no animation frames are outside of the loaded image */ @@ -993,6 +997,10 @@ static void InitSoundInfo() sound_effect_properties[i] = ACTION_OTHER; sound_info[i].loop = FALSE; +#if 0 + printf("::: sound: '%s'\n", sound->token); +#endif + /* determine all loop sounds and identify certain sound classes */ for (j=0; element_action_info[j].suffix; j++) @@ -1010,6 +1018,11 @@ static void InitSoundInfo() } } +#if 0 + if (strcmp(sound->token, "custom_42") == 0) + printf("::: '%s' -> %d\n", sound->token, sound_info[i].loop); +#endif + /* associate elements and some selected sound actions */ for (j=0; jidentifier, + leveldir_current->graphics_set, + leveldir_current->graphics_path); +#endif + ReloadCustomImages(); LoadCustomElementDescriptions(); @@ -3051,12 +3076,16 @@ static void InitImages() static void InitSound() { + setLevelArtworkDir(artwork.snd_first); + InitReloadCustomSounds(artwork.snd_current->identifier); ReinitializeSounds(); } static void InitMusic() { + setLevelArtworkDir(artwork.mus_first); + InitReloadCustomMusic(artwork.mus_current->identifier); ReinitializeMusic(); } @@ -3090,6 +3119,12 @@ void ReloadCustomArtwork() static boolean last_override_level_graphics = FALSE; static boolean last_override_level_sounds = FALSE; static boolean last_override_level_music = FALSE; + static boolean last_own_level_graphics_set = FALSE; + static boolean last_own_level_sounds_set = FALSE; + static boolean last_own_level_music_set = FALSE; + boolean level_graphics_set_changed = FALSE; + boolean level_sounds_set_changed = FALSE; + boolean level_music_set_changed = FALSE; /* identifier for new artwork; default: artwork configured in setup */ #if 0 char *gfx_new_identifier = artwork.gfx_current->identifier; @@ -3187,12 +3222,14 @@ void ReloadCustomArtwork() gfx_new_identifier, identifier_old, identifier_new); #endif +#if 0 leveldir_current_identifier = leveldir_current->identifier; +#endif } /* custom level artwork configured in level series configuration file always overrides custom level artwork stored in level series directory - and (level independent) custom artwork configured in setup menue */ + and (level independent) custom artwork configured in setup menu */ if (leveldir_current->graphics_set != NULL) gfx_new_identifier = leveldir_current->graphics_set; if (leveldir_current->sounds_set != NULL) @@ -3200,16 +3237,46 @@ void ReloadCustomArtwork() if (leveldir_current->music_set != NULL) mus_new_identifier = leveldir_current->music_set; + if (leveldir_current_identifier != leveldir_current->identifier) + { + if (last_own_level_graphics_set || leveldir_current->graphics_set != NULL) + level_graphics_set_changed = TRUE; + + if (last_own_level_sounds_set || leveldir_current->sounds_set != NULL) + level_sounds_set_changed = TRUE; + + if (last_own_level_music_set || leveldir_current->music_set != NULL) + level_music_set_changed = TRUE; + + last_own_level_graphics_set = (leveldir_current->graphics_set != NULL); + last_own_level_sounds_set = (leveldir_current->sounds_set != NULL); + last_own_level_music_set = (leveldir_current->music_set != NULL); + } + #if 1 - printf("CHECKING OLD/NEW GFX:\n OLD: '%s'\n NEW: '%s' [setup '%s', level '%s']\n", + leveldir_current_identifier = leveldir_current->identifier; +#endif + + if (setup.override_level_graphics) + gfx_new_identifier = artwork.gfx_current->identifier; + if (setup.override_level_sounds) + snd_new_identifier = artwork.snd_current->identifier; + if (setup.override_level_music) + mus_new_identifier = artwork.mus_current->identifier; + + +#if 0 + printf("CHECKING OLD/NEW GFX:\n OLD: '%s'\n NEW: '%s' ['%s', '%s'] [%d]\n", artwork.gfx_current_identifier, gfx_new_identifier, - artwork.gfx_current->identifier, leveldir_current->graphics_set); + artwork.gfx_current->identifier, leveldir_current->graphics_set, + level_graphics_set_changed); #endif if (strcmp(artwork.gfx_current_identifier, gfx_new_identifier) != 0 || - last_override_level_graphics != setup.override_level_graphics) + last_override_level_graphics != setup.override_level_graphics || + level_graphics_set_changed) { -#if 1 +#if 0 printf("RELOADING GRAPHICS '%s' -> '%s' ['%s']\n", artwork.gfx_current_identifier, gfx_new_identifier, @@ -3224,7 +3291,9 @@ void ReloadCustomArtwork() artwork.gfx_current_identifier = gfx_new_identifier; #endif +#if 0 setLevelArtworkDir(artwork.gfx_first); +#endif ClearRectangle(window, 0, 0, WIN_XSIZE, WIN_YSIZE); @@ -3259,7 +3328,8 @@ void ReloadCustomArtwork() } if (strcmp(artwork.snd_current_identifier, snd_new_identifier) != 0 || - last_override_level_sounds != setup.override_level_sounds) + last_override_level_sounds != setup.override_level_sounds || + level_sounds_set_changed) { #if 0 printf("RELOADING SOUNDS '%s' -> '%s' ('%s')\n", @@ -3288,7 +3358,8 @@ void ReloadCustomArtwork() } if (strcmp(artwork.mus_current_identifier, mus_new_identifier) != 0 || - last_override_level_music != setup.override_level_music) + last_override_level_music != setup.override_level_music || + level_music_set_changed) { /* set artwork path to send it to the sound server process */ setLevelArtworkDir(artwork.mus_first); diff --git a/src/libgame/misc.c b/src/libgame/misc.c index f4871757..26406030 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -1801,8 +1801,16 @@ static void read_token_parameters(SetupFileHash *setup_file_hash, /* mark config file token as well known from default config */ setHashEntry(setup_file_hash, file_list_entry->token, known_token_value); } +#if 0 else + { + if (strcmp(file_list_entry->filename, + file_list_entry->default_filename) != 0) + printf("___ resetting '%s' to default\n", file_list_entry->token); + setString(&file_list_entry->filename, file_list_entry->default_filename); + } +#endif /* check for config tokens that can be build by base token and suffixes */ for (i=0; suffix_list[i].token != NULL; i++) @@ -1869,8 +1877,346 @@ static void add_property_mapping(struct PropertyMapping **list, new_list_entry->artwork_index = artwork_index; } +static void LoadArtworkConfigFromFilename(struct ArtworkListInfo *artwork_info, + char *filename) +{ + struct FileInfo *file_list = artwork_info->file_list; + struct ConfigInfo *suffix_list = artwork_info->suffix_list; + char **base_prefixes = artwork_info->base_prefixes; + char **ext1_suffixes = artwork_info->ext1_suffixes; + char **ext2_suffixes = artwork_info->ext2_suffixes; + char **ext3_suffixes = artwork_info->ext3_suffixes; + char **ignore_tokens = artwork_info->ignore_tokens; + int num_file_list_entries = artwork_info->num_file_list_entries; + int num_suffix_list_entries = artwork_info->num_suffix_list_entries; + int num_base_prefixes = artwork_info->num_base_prefixes; + int num_ext1_suffixes = artwork_info->num_ext1_suffixes; + int num_ext2_suffixes = artwork_info->num_ext2_suffixes; + int num_ext3_suffixes = artwork_info->num_ext3_suffixes; + int num_ignore_tokens = artwork_info->num_ignore_tokens; + SetupFileHash *setup_file_hash, *extra_file_hash; + char *known_token_value = KNOWN_TOKEN_VALUE; + int i, j, k, l; + + if (filename == NULL) + return; + +#if 0 + printf("::: LoadArtworkConfigFromFilename: '%s'\n", filename); +#endif + + if ((setup_file_hash = loadSetupFileHash(filename)) == NULL) + return; + + /* read parameters for all known config file tokens */ + for (i=0; idynamic_file_list; + int *num_dynamic_file_list_entries = + &artwork_info->num_dynamic_file_list_entries; + struct PropertyMapping **property_mapping = + &artwork_info->property_mapping; + int *num_property_mapping_entries = + &artwork_info->num_property_mapping_entries; + int current_summarized_file_list_entry = + artwork_info->num_file_list_entries + + artwork_info->num_dynamic_file_list_entries; + char *token = HASH_ITERATION_TOKEN(itr); + int len_token = strlen(token); + int start_pos; + boolean base_prefix_found = FALSE; + boolean parameter_suffix_found = FALSE; + + /* skip all parameter definitions (handled by read_token_parameters()) */ + for (i=0; i < num_suffix_list_entries && !parameter_suffix_found; i++) + { + int len_suffix = strlen(suffix_list[i].token); + + if (token_suffix_match(token, suffix_list[i].token, -len_suffix)) + parameter_suffix_found = TRUE; + } + +#if 0 + if (IS_PARENT_PROCESS()) + { + if (parameter_suffix_found) + printf("---> skipping token '%s' (parameter token)\n", token); + else + printf("---> examining token '%s': search prefix ...\n", token); + } +#endif + + if (parameter_suffix_found) + continue; + + /* ---------- step 0: search for matching base prefix ---------- */ + + start_pos = 0; + for (i=0; i examining token '%s': search 1st suffix ...\n", token); +#endif + + /* ---------- step 1: search for matching first suffix ---------- */ + + start_pos += len_base_prefix; + for (j=0; j examining token '%s': search 2nd suffix ...\n", token); +#endif + + /* ---------- step 2: search for matching second suffix ---------- */ + + for (k=0; k examining token '%s': search 3rd suffix ...\n",token); +#endif + + /* ---------- step 3: search for matching third suffix ---------- */ + + for (l=0; lnum_dynamic_file_list_entries > 0) + { + artwork_info->dynamic_artwork_list = + checked_calloc(artwork_info->num_dynamic_file_list_entries * + artwork_info->sizeof_artwork_list_entry); + } + + if (extra_file_hash != NULL && options.verbose && IS_PARENT_PROCESS()) + { + SetupFileList *setup_file_list, *list; + boolean dynamic_tokens_found = FALSE; + boolean unknown_tokens_found = FALSE; + + if ((setup_file_list = loadSetupFileList(filename)) == NULL) + Error(ERR_EXIT, "loadSetupFileHash works, but loadSetupFileList fails"); + + BEGIN_HASH_ITERATION(extra_file_hash, itr) + { + if (strcmp(HASH_ITERATION_VALUE(itr), known_token_value) == 0) + dynamic_tokens_found = TRUE; + else + unknown_tokens_found = TRUE; + } + END_HASH_ITERATION(extra_file_hash, itr) + +#if DEBUG + if (dynamic_tokens_found) + { + Error(ERR_RETURN_LINE, "-"); + Error(ERR_RETURN, "dynamic token(s) found:"); + + for (list = setup_file_list; list != NULL; list = list->next) + { + char *value = getHashEntry(extra_file_hash, list->token); + + if (value != NULL && strcmp(value, known_token_value) == 0) + Error(ERR_RETURN, "- dynamic token: '%s'", list->token); + } + + Error(ERR_RETURN_LINE, "-"); + } +#endif + + if (unknown_tokens_found) + { + Error(ERR_RETURN_LINE, "-"); + Error(ERR_RETURN, "warning: unknown token(s) found in config file:"); + Error(ERR_RETURN, "- config file: '%s'", filename); + + for (list = setup_file_list; list != NULL; list = list->next) + { + char *value = getHashEntry(extra_file_hash, list->token); + + if (value != NULL && strcmp(value, known_token_value) != 0) + Error(ERR_RETURN, "- dynamic token: '%s'", list->token); + } + + Error(ERR_RETURN_LINE, "-"); + } + + freeSetupFileList(setup_file_list); + } + + freeSetupFileHash(extra_file_hash); + +#if 0 + for (i=0; i '%s'\n", file_list[i].filename); + else + printf("-> UNDEFINED [-> '%s']\n", file_list[i].default_filename); + } +#endif +} + void LoadArtworkConfig(struct ArtworkListInfo *artwork_info) { +#if 0 struct FileInfo *file_list = artwork_info->file_list; struct ConfigInfo *suffix_list = artwork_info->suffix_list; char **base_prefixes = artwork_info->base_prefixes; @@ -1889,6 +2235,13 @@ void LoadArtworkConfig(struct ArtworkListInfo *artwork_info) SetupFileHash *setup_file_hash, *extra_file_hash; char *known_token_value = KNOWN_TOKEN_VALUE; int i, j, k, l; +#else + struct FileInfo *file_list = artwork_info->file_list; + int num_file_list_entries = artwork_info->num_file_list_entries; + int num_suffix_list_entries = artwork_info->num_suffix_list_entries; + char *filename_base, *filename_local; + int i, j; +#endif #if 0 printf("GOT CUSTOM ARTWORK CONFIG FILE '%s'\n", filename); @@ -1931,6 +2284,38 @@ void LoadArtworkConfig(struct ArtworkListInfo *artwork_info) artwork_info->num_property_mapping_entries = 0; } +#if 1 + /* first look for special artwork configured in level series config */ + filename_base = getCustomArtworkLevelConfigFilename(artwork_info->type); + + if (fileExists(filename_base)) + LoadArtworkConfigFromFilename(artwork_info, filename_base); + +#if 0 + for(i=0; i '%s'\n", + file_list[i].token, file_list[i].filename); +#endif + +#if 1 + filename_local = getCustomArtworkConfigFilename(artwork_info->type); + + if (filename_local != NULL && strcmp(filename_base, filename_local) != 0) + LoadArtworkConfigFromFilename(artwork_info, filename_local); + +#if 0 + for(i=0; i '%s'\n", + file_list[i].token, file_list[i].filename); +#endif + +#endif +#endif + +#if 0 + if (filename == NULL) return; @@ -2241,6 +2626,8 @@ void LoadArtworkConfig(struct ArtworkListInfo *artwork_info) printf("-> UNDEFINED [-> '%s']\n", file_list[i].default_filename); } #endif + +#endif } static void deleteArtworkListEntry(struct ArtworkListInfo *artwork_info, @@ -2282,11 +2669,6 @@ static void replaceArtworkListEntry(struct ArtworkListInfo *artwork_info, ListNode *node; char *filename = getCustomArtworkFilename(basename, artwork_info->type); -#if 1 - if (strcmp(basename, "RocksScreen.pcx") == 0) - printf("::: got filename '%s'\n", filename); -#endif - if (filename == NULL) { int error_mode = ERR_WARN; @@ -2306,11 +2688,8 @@ static void replaceArtworkListEntry(struct ArtworkListInfo *artwork_info, This usually means that this artwork does not exist in this artwork set and a fallback to the existing artwork is done. */ -#if 1 -#if 1 - if (strcmp(basename, "RocksScreen.pcx") == 0) -#endif - printf("[artwork '%s' already exists (same list entry)]\n", filename); +#if 0 + printf("[artwork '%s' already exists (same list entry)]\n", filename); #endif return; @@ -2418,8 +2797,15 @@ void ReloadCustomArtworkList(struct ArtworkListInfo *artwork_info) #endif for(i=0; i '%s'\n", file_list[i].token, file_list[i].filename); +#endif + LoadArtworkToList(artwork_info, &artwork_info->artwork_list[i], file_list[i].filename, i); + } #if 0 printf("DEBUG: reloading %d dynamic artwork files ...\n", diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 165b8a2a..574d37e8 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -268,6 +268,16 @@ static char *getDefaultMusicDir(char *music_subdir) return music_dir; } +static char *getDefaultArtworkDir(int type) +{ + return (type == TREE_TYPE_GRAPHICS_DIR ? + getDefaultGraphicsDir(GRAPHICS_SUBDIR) : + type == TREE_TYPE_SOUNDS_DIR ? + getDefaultSoundsDir(SOUNDS_SUBDIR) : + type == TREE_TYPE_MUSIC_DIR ? + getDefaultMusicDir(MUSIC_SUBDIR) : ""); +} + static char *getUserGraphicsDir() { static char *usergraphics_dir = NULL; @@ -328,13 +338,29 @@ void setLevelArtworkDir(TreeInfo *ti) ti->type == TREE_TYPE_SOUNDS_DIR ? leveldir_current->sounds_set : leveldir_current->music_set); - if ((level_artwork = getTreeInfoFromIdentifier(ti, artwork_set)) == NULL) - return; - if (*artwork_path_ptr != NULL) free(*artwork_path_ptr); - *artwork_path_ptr = getStringCopy(getSetupArtworkDir(level_artwork)); + if ((level_artwork = getTreeInfoFromIdentifier(ti, artwork_set))) + *artwork_path_ptr = getStringCopy(getSetupArtworkDir(level_artwork)); + else + { + /* No (or non-existing) artwork configured in "levelinfo.conf". This would + normally result in using the artwork configured in the setup menu. But + if an artwork subdirectory exists (which might contain custom artwork + or an artwork configuration file), this level artwork must be treated + as relative to the default "classic" artwork, not to the artwork that + is currently configured in the setup menu. */ + + char *dir = getPath2(getCurrentLevelDir(), ARTWORK_DIRECTORY(ti->type)); + + if (fileExists(dir)) + *artwork_path_ptr = getStringCopy(getDefaultArtworkDir(ti->type)); + else + *artwork_path_ptr = getStringCopy(UNDEFINED_FILENAME); + + free(dir); + } } static char *getLevelArtworkDir(int type) @@ -453,34 +479,49 @@ char *getCustomImageFilename(char *basename) if (!setup.override_level_graphics) { +#if 0 /* 1st try: look for special artwork configured in level series config */ filename = getPath2(getLevelArtworkDir(TREE_TYPE_GRAPHICS_DIR), basename); -#if 1 +#if 0 if (strcmp(basename, "RocksScreen.pcx") == 0) - printf("::: check 1: filename '%s'\n", filename); + printf("::: trying 1 '%s' ...\n", filename); #endif if (fileExists(filename)) return filename; free(filename); +#endif /* 2nd try: look for special artwork in current level series directory */ filename = getPath3(getCurrentLevelDir(), GRAPHICS_DIRECTORY, basename); +#if 0 + if (strcmp(basename, "RocksScreen.pcx") == 0) + printf("::: trying 2 '%s' ...\n", filename); +#endif + if (fileExists(filename)) + return filename; + + free(filename); + #if 1 + /* 1st try: look for special artwork configured in level series config */ + filename = getPath2(getLevelArtworkDir(TREE_TYPE_GRAPHICS_DIR), basename); +#if 0 if (strcmp(basename, "RocksScreen.pcx") == 0) - printf("::: check 2: filename '%s'\n", filename); + printf("::: trying 2.1 '%s' ...\n", filename); #endif if (fileExists(filename)) return filename; free(filename); +#endif } /* 3rd try: look for special artwork in configured artwork directory */ filename = getPath2(getSetupArtworkDir(artwork.gfx_current), basename); -#if 1 - if (strcmp(basename, "RocksScreen.pcx") == 0) - printf("::: check 3: filename '%s'\n", filename); +#if 0 + if (strcmp(basename, "RocksScreen.pcx") == 0) + printf("::: trying 3 '%s' ...\n", filename); #endif if (fileExists(filename)) return filename; @@ -489,9 +530,9 @@ char *getCustomImageFilename(char *basename) /* 4th try: look for default artwork in new default artwork directory */ filename = getPath2(getDefaultGraphicsDir(GRAPHICS_SUBDIR), basename); -#if 1 - if (strcmp(basename, "RocksScreen.pcx") == 0) - printf("::: check 4: filename '%s'\n", filename); +#if 0 + if (strcmp(basename, "RocksScreen.pcx") == 0) + printf("::: trying 4 '%s' ...\n", filename); #endif if (fileExists(filename)) return filename; @@ -500,9 +541,9 @@ char *getCustomImageFilename(char *basename) /* 5th try: look for default artwork in old default artwork directory */ filename = getPath2(options.graphics_directory, basename); -#if 1 - if (strcmp(basename, "RocksScreen.pcx") == 0) - printf("::: check 5: filename '%s'\n", filename); +#if 0 + if (strcmp(basename, "RocksScreen.pcx") == 0) + printf("::: trying 5 '%s' ...\n", filename); #endif if (fileExists(filename)) return filename; @@ -519,12 +560,14 @@ char *getCustomSoundFilename(char *basename) if (!setup.override_level_sounds) { +#if 0 /* 1st try: look for special artwork configured in level series config */ filename = getPath2(getLevelArtworkDir(TREE_TYPE_SOUNDS_DIR), basename); if (fileExists(filename)) return filename; free(filename); +#endif /* 2nd try: look for special artwork in current level series directory */ filename = getPath3(getCurrentLevelDir(), SOUNDS_DIRECTORY, basename); @@ -532,6 +575,15 @@ char *getCustomSoundFilename(char *basename) return filename; free(filename); + +#if 1 + /* 1st try: look for special artwork configured in level series config */ + filename = getPath2(getLevelArtworkDir(TREE_TYPE_SOUNDS_DIR), basename); + if (fileExists(filename)) + return filename; + + free(filename); +#endif } /* 3rd try: look for special artwork in configured artwork directory */ @@ -571,6 +623,18 @@ char *getCustomArtworkConfigFilename(int type) return getCustomArtworkFilename(ARTWORKINFO_FILENAME(type), type); } +char *getCustomArtworkLevelConfigFilename(int type) +{ + static char *filename = NULL; + + if (filename != NULL) + free(filename); + + filename = getPath2(getLevelArtworkDir(type), ARTWORKINFO_FILENAME(type)); + + return filename; +} + char *getCustomMusicDirectory(void) { static char *directory = NULL; @@ -580,12 +644,14 @@ char *getCustomMusicDirectory(void) if (!setup.override_level_music) { +#if 0 /* 1st try: look for special artwork configured in level series config */ directory = getStringCopy(getLevelArtworkDir(TREE_TYPE_MUSIC_DIR)); if (fileExists(directory)) return directory; free(directory); +#endif /* 2nd try: look for special artwork in current level series directory */ directory = getPath2(getCurrentLevelDir(), MUSIC_DIRECTORY); @@ -593,6 +659,15 @@ char *getCustomMusicDirectory(void) return directory; free(directory); + +#if 1 + /* 1st try: look for special artwork configured in level series config */ + directory = getStringCopy(getLevelArtworkDir(TREE_TYPE_MUSIC_DIR)); + if (fileExists(directory)) + return directory; + + free(directory); +#endif } /* 3rd try: look for special artwork in configured artwork directory */ diff --git a/src/libgame/setup.h b/src/libgame/setup.h index 479f88c4..ab976302 100644 --- a/src/libgame/setup.h +++ b/src/libgame/setup.h @@ -193,6 +193,7 @@ char *getCustomImageFilename(char *); char *getCustomSoundFilename(char *); char *getCustomArtworkFilename(char *, int); char *getCustomArtworkConfigFilename(int); +char *getCustomArtworkLevelConfigFilename(int); char *getCustomMusicDirectory(void); void InitTapeDirectory(char *); diff --git a/src/main.c b/src/main.c index 8a720ae9..697d1b74 100644 --- a/src/main.c +++ b/src/main.c @@ -2923,11 +2923,36 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] = "-", "-" }, + { + "dynabomb", + "-", + "-" + }, { "dynabomb_active", "-", "-" }, + { + "dynabomb_player_1", + "-", + "-" + }, + { + "dynabomb_player_2", + "-", + "-" + }, + { + "dynabomb_player_3", + "-", + "-" + }, + { + "dynabomb_player_4", + "-", + "-" + }, { "shield_normal_active", "-", @@ -3003,6 +3028,9 @@ struct ElementActionInfo element_action_info[NUM_ACTIONS + 1] = { ".dying", ACTION_DYING, FALSE }, { ".other", ACTION_OTHER, FALSE }, + /* empty suffix always matches -- check as last entry in InitSoundInfo() */ + { "", ACTION_DEFAULT, TRUE }, + { NULL, 0, 0 } }; diff --git a/src/main.h b/src/main.h index 4f431f8a..8bef96cc 100644 --- a/src/main.h +++ b/src/main.h @@ -823,15 +823,20 @@ #define EL_INVISIBLE_STEELWALL_HORIZONTAL (EL_FIRST_DUMMY + 10) #define EL_INVISIBLE_STEELWALL_VERTICAL (EL_FIRST_DUMMY + 11) #define EL_SAND_CRUMBLED (EL_FIRST_DUMMY + 12) -#define EL_DYNABOMB_ACTIVE (EL_FIRST_DUMMY + 13) -#define EL_SHIELD_NORMAL_ACTIVE (EL_FIRST_DUMMY + 14) -#define EL_SHIELD_DEADLY_ACTIVE (EL_FIRST_DUMMY + 15) -#define EL_DEFAULT (EL_FIRST_DUMMY + 16) -#define EL_BD_DEFAULT (EL_FIRST_DUMMY + 17) -#define EL_SP_DEFAULT (EL_FIRST_DUMMY + 18) -#define EL_SB_DEFAULT (EL_FIRST_DUMMY + 19) - -#define MAX_NUM_ELEMENTS (EL_FIRST_DUMMY + 20) +#define EL_DYNABOMB (EL_FIRST_DUMMY + 13) +#define EL_DYNABOMB_ACTIVE (EL_FIRST_DUMMY + 14) +#define EL_DYNABOMB_PLAYER_1 (EL_FIRST_DUMMY + 15) +#define EL_DYNABOMB_PLAYER_2 (EL_FIRST_DUMMY + 16) +#define EL_DYNABOMB_PLAYER_3 (EL_FIRST_DUMMY + 17) +#define EL_DYNABOMB_PLAYER_4 (EL_FIRST_DUMMY + 18) +#define EL_SHIELD_NORMAL_ACTIVE (EL_FIRST_DUMMY + 19) +#define EL_SHIELD_DEADLY_ACTIVE (EL_FIRST_DUMMY + 20) +#define EL_DEFAULT (EL_FIRST_DUMMY + 21) +#define EL_BD_DEFAULT (EL_FIRST_DUMMY + 22) +#define EL_SP_DEFAULT (EL_FIRST_DUMMY + 23) +#define EL_SB_DEFAULT (EL_FIRST_DUMMY + 24) + +#define MAX_NUM_ELEMENTS (EL_FIRST_DUMMY + 25) /* values for graphics/sounds action types */ diff --git a/src/tools.c b/src/tools.c index cfbc85cc..e7b99635 100644 --- a/src/tools.c +++ b/src/tools.c @@ -540,6 +540,7 @@ void DrawPlayerField(int x, int y) void DrawPlayer(struct PlayerInfo *player) { +#if 0 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); @@ -551,6 +552,23 @@ void DrawPlayer(struct PlayerInfo *player) boolean player_is_moving = (last_jx != jx || last_jy != jy ? TRUE : FALSE); int move_dir = player->MovDir; int action = ACTION_DEFAULT; +#else + int jx = player->jx, jy = player->jy; + int move_dir = player->MovDir; + int dx = (move_dir == MV_LEFT ? -1 : move_dir == MV_RIGHT ? +1 : 0); + int dy = (move_dir == MV_UP ? -1 : move_dir == MV_DOWN ? +1 : 0); + int last_jx = (player->is_moving ? jx - dx : jx); + int last_jy = (player->is_moving ? jy - dy : jy); + int next_jx = jx + dx; + int next_jy = jy + dy; + 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 = (player->MovPos ? TRUE : FALSE); + int action = ACTION_DEFAULT; +#endif if (!player->active || !IN_SCR_FIELD(SCREENX(last_jx), SCREENY(last_jy))) return; @@ -580,7 +598,11 @@ void DrawPlayer(struct PlayerInfo *player) /* draw things in the field the player is leaving, if needed */ /* ----------------------------------------------------------------------- */ +#if 1 + if (player->is_moving) +#else if (player_is_moving) +#endif { if (Back[last_jx][last_jy] && IS_DRAWABLE(last_element)) { @@ -600,6 +622,7 @@ void DrawPlayer(struct PlayerInfo *player) if (player->Pushing && IN_SCR_FIELD(SCREENX(next_jx), SCREENY(next_jy))) { +#if 1 #if 1 DrawLevelElement(next_jx, next_jy, EL_EMPTY); #else @@ -612,6 +635,7 @@ void DrawPlayer(struct PlayerInfo *player) } else DrawLevelField(next_jx, next_jy); +#endif #endif } } @@ -700,7 +724,17 @@ void DrawPlayer(struct PlayerInfo *player) /* draw things the player is pushing, if needed */ /* ----------------------------------------------------------------------- */ +#if 0 + printf("::: %d, %d [%d, %d] [%d]\n", + player->Pushing, player_is_moving, player->GfxAction, + player->is_moving, player_is_moving); +#endif + +#if 1 + if (player->Pushing && player->is_moving) +#else if (player->Pushing && player_is_moving) +#endif { int px = SCREENX(next_jx), py = SCREENY(next_jy); @@ -720,23 +754,35 @@ void DrawPlayer(struct PlayerInfo *player) #endif else { +#if 1 + int element = MovingOrBlocked2Element(next_jx, next_jy); +#else #if 1 int element = Feld[jx][jy]; #else int element = Feld[next_jx][next_jy]; #endif +#endif +#if 1 int graphic = el2img(element); int frame = 0; +#if 0 if ((sxx || syy) && IS_PUSHABLE(element)) +#endif { - graphic = el_act_dir2img(element, ACTION_MOVING, move_dir); + graphic = el_act_dir2img(element, ACTION_PUSHING, move_dir); frame = getGraphicAnimationFrame(graphic, player->Frame); } +#if 0 + printf("::: pushing %d: %d ...\n", sxx, frame); +#endif + DrawGraphicShifted(px, py, sxx, syy, graphic, frame, NO_CUTTING, NO_MASKING); +#endif } } -- 2.34.1