From c9bb6e0a6eecbf84320be79b121bd957a938a08c Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Mon, 16 Jun 2003 03:16:01 +0200 Subject: [PATCH] rnd-20030616-1-src --- src/conf_e2g.c | 12 +- src/conf_e2s.c | 26 ++-- src/conf_gfx.c | 38 +++--- src/conf_gfx.h | 154 +++++++++++----------- src/conf_snd.c | 21 ++- src/conf_snd.h | 339 ++++++++++++++++++++++++------------------------- src/conftime.h | 2 +- src/game.c | 25 ++++ src/init.c | 63 ++++++--- src/main.c | 19 ++- src/main.h | 8 +- src/tools.c | 4 + 12 files changed, 399 insertions(+), 312 deletions(-) diff --git a/src/conf_e2g.c b/src/conf_e2g.c index f53dac2e..ed2a9abf 100644 --- a/src/conf_e2g.c +++ b/src/conf_e2g.c @@ -180,6 +180,10 @@ element_to_graphic[] = EL_BD_FIREFLY, ACTION_MOVING, -1, IMG_BD_FIREFLY_MOVING }, + { + EL_SP_DEFAULT, ACTION_EXPLODING, -1, + IMG_SP_DEFAULT_EXPLODING + }, { EL_SP_EMPTY_SPACE, -1, -1, IMG_SP_EMPTY_SPACE @@ -420,6 +424,10 @@ element_to_graphic[] = EL_SP_ELECTRON, -1, -1, IMG_SP_ELECTRON }, + { + EL_SP_ELECTRON, ACTION_EXPLODING, -1, + IMG_SP_ELECTRON_EXPLODING + }, { EL_SP_TERMINAL, -1, -1, IMG_SP_TERMINAL @@ -2349,8 +2357,8 @@ element_to_graphic[] = IMG_PLAYER_4_SNAPPING_RIGHT }, { - EL_EXPLOSION, -1, -1, - IMG_EXPLOSION + EL_DEFAULT, ACTION_EXPLODING, -1, + IMG_DEFAULT_EXPLODING }, { EL_STEELWALL_TOPLEFT, -1, -1, diff --git a/src/conf_e2s.c b/src/conf_e2s.c index 76b0dab5..6eb45902 100644 --- a/src/conf_e2s.c +++ b/src/conf_e2s.c @@ -29,33 +29,41 @@ static struct element_to_sound[] = { { - EL_INTERNAL_DEFAULT_ELEMENT, TRUE, ACTION_DIGGING, + EL_DEFAULT, TRUE, ACTION_DIGGING, SND_CLASS_DEFAULT_DIGGING }, { - EL_INTERNAL_DEFAULT_ELEMENT, TRUE, ACTION_COLLECTING, + EL_DEFAULT, TRUE, ACTION_COLLECTING, SND_CLASS_DEFAULT_COLLECTING }, { - EL_INTERNAL_DEFAULT_ELEMENT, TRUE, ACTION_SNAPPING, + EL_DEFAULT, TRUE, ACTION_SNAPPING, SND_CLASS_DEFAULT_SNAPPING }, { - EL_INTERNAL_DEFAULT_ELEMENT, TRUE, ACTION_PUSHING, + EL_DEFAULT, TRUE, ACTION_PUSHING, SND_CLASS_DEFAULT_PUSHING }, { - EL_INTERNAL_DEFAULT_ELEMENT, TRUE, ACTION_IMPACT, + EL_DEFAULT, TRUE, ACTION_IMPACT, SND_CLASS_DEFAULT_IMPACT }, { - EL_INTERNAL_DEFAULT_ELEMENT, TRUE, ACTION_PASSING, + EL_DEFAULT, TRUE, ACTION_PASSING, SND_CLASS_DEFAULT_PASSING }, { - EL_INTERNAL_DEFAULT_ELEMENT, TRUE, ACTION_EXPLODING, + EL_DEFAULT, TRUE, ACTION_DYING, + SND_CLASS_DEFAULT_DYING + }, + { + EL_DEFAULT, TRUE, ACTION_EXPLODING, SND_CLASS_DEFAULT_EXPLODING }, + { + EL_SP_DEFAULT, TRUE, ACTION_EXPLODING, + SND_CLASS_SP_DEFAULT_EXPLODING + }, { EL_BD_DIAMOND, FALSE, ACTION_COLLECTING, SND_BD_DIAMOND_COLLECTING @@ -708,10 +716,6 @@ element_to_sound[] = EL_DRAGON, FALSE, ACTION_ATTACKING, SND_DRAGON_ATTACKING }, - { - EL_PLAYER_OBSOLETE, TRUE, ACTION_DYING, - SND_CLASS_PLAYER_DYING - }, { -1, -1, -1, -1 diff --git a/src/conf_gfx.c b/src/conf_gfx.c index 9fa20b78..721bf8e4 100644 --- a/src/conf_gfx.c +++ b/src/conf_gfx.c @@ -208,6 +208,13 @@ struct ConfigInfo image_config[] = /* images for Supaplex style elements and actions */ + { "[sp_default].exploding", "RocksSP.pcx" }, + { "[sp_default].exploding.xpos", "8" }, + { "[sp_default].exploding.ypos", "3" }, + { "[sp_default].exploding.frames", "8" }, + { "[sp_default].exploding.delay", "3" }, + { "[sp_default].exploding.anim_mode", "linear" }, + { "sp_empty_space", "RocksSP.pcx" }, { "sp_empty_space.xpos", "0" }, { "sp_empty_space.ypos", "0" }, @@ -485,6 +492,12 @@ struct ConfigInfo image_config[] = { "sp_electron.EDITOR", "RocksSP.pcx" }, { "sp_electron.EDITOR.xpos", "10" }, { "sp_electron.EDITOR.ypos", "11" }, + { "sp_electron.exploding", "RocksSP.pcx" }, + { "sp_electron.exploding.xpos", "8" }, + { "sp_electron.exploding.ypos", "4" }, + { "sp_electron.exploding.frames", "8" }, + { "sp_electron.exploding.delay", "3" }, + { "sp_electron.exploding.anim_mode", "linear" }, { "sp_terminal", "RocksSP.pcx" }, { "sp_terminal.xpos", "0" }, @@ -542,19 +555,6 @@ struct ConfigInfo image_config[] = { "sp_hardware_base_6.ypos", "4" }, { "sp_hardware_base_6.frames", "1" }, - { "sp_explosion", "RocksSP.pcx" }, - { "sp_explosion.xpos", "8" }, - { "sp_explosion.ypos", "3" }, - { "sp_explosion.frames", "8" }, - { "sp_explosion.delay", "3" }, - { "sp_explosion.anim_mode", "linear" }, - { "sp_explosion_infotron", "RocksSP.pcx" }, - { "sp_explosion_infotron.xpos", "8" }, - { "sp_explosion_infotron.ypos", "4" }, - { "sp_explosion_infotron.frames", "8" }, - { "sp_explosion.delay", "3" }, - { "sp_explosion.anim_mode", "linear" }, - /* images for Sokoban style elements and actions */ { "sokoban_object", "RocksElements.pcx" }, @@ -2798,12 +2798,12 @@ struct ConfigInfo image_config[] = { "player_4.snapping.right.ypos", "10" }, { "player_4.snapping.right.frames", "1" }, - { "explosion", "RocksElements.pcx" }, - { "explosion.xpos", "0" }, - { "explosion.ypos", "4" }, - { "explosion.frames", "8" }, - { "explosion.delay", "2" }, - { "explosion.anim_mode", "linear" }, + { "[default].exploding", "RocksElements.pcx" }, + { "[default].exploding.xpos", "0" }, + { "[default].exploding.ypos", "4" }, + { "[default].exploding.frames", "8" }, + { "[default].exploding.delay", "2" }, + { "[default].exploding.anim_mode", "linear" }, { "twinkle_blue", "RocksHeroes.pcx" }, { "twinkle_blue.xpos", "9" }, diff --git a/src/conf_gfx.h b/src/conf_gfx.h index 92b6b767..62fd1307 100644 --- a/src/conf_gfx.h +++ b/src/conf_gfx.h @@ -48,82 +48,82 @@ #define IMG_BD_FIREFLY_LEFT 27 #define IMG_BD_FIREFLY_DOWN 28 #define IMG_BD_FIREFLY_MOVING 29 -#define IMG_SP_EMPTY_SPACE 30 -#define IMG_SP_ZONK 31 -#define IMG_SP_ZONK_FALLING 32 -#define IMG_SP_ZONK_MOVING_LEFT 33 -#define IMG_SP_ZONK_MOVING_RIGHT 34 -#define IMG_SP_BASE 35 -#define IMG_SP_MURPHY 36 -#define IMG_SP_MURPHY_MOVING_LEFT 37 -#define IMG_SP_MURPHY_MOVING_RIGHT 38 -#define IMG_SP_MURPHY_DIGGING_LEFT 39 -#define IMG_SP_MURPHY_DIGGING_RIGHT 40 -#define IMG_SP_MURPHY_COLLECTING_LEFT 41 -#define IMG_SP_MURPHY_COLLECTING_RIGHT 42 -#define IMG_SP_MURPHY_PUSHING_LEFT 43 -#define IMG_SP_MURPHY_PUSHING_RIGHT 44 -#define IMG_SP_MURPHY_SNAPPING_LEFT 45 -#define IMG_SP_MURPHY_SNAPPING_RIGHT 46 -#define IMG_SP_MURPHY_SNAPPING_UP 47 -#define IMG_SP_MURPHY_SNAPPING_DOWN 48 -#define IMG_SP_MURPHY_CLONE 49 -#define IMG_SP_INFOTRON 50 -#define IMG_SP_INFOTRON_EDITOR 51 -#define IMG_SP_INFOTRON_FALLING 52 -#define IMG_SP_CHIP_SINGLE 53 -#define IMG_SP_CHIP_LEFT 54 -#define IMG_SP_CHIP_RIGHT 55 -#define IMG_SP_CHIP_TOP 56 -#define IMG_SP_CHIP_BOTTOM 57 -#define IMG_SP_HARDWARE_GRAY 58 -#define IMG_SP_HARDWARE_GREEN 59 -#define IMG_SP_HARDWARE_BLUE 60 -#define IMG_SP_HARDWARE_RED 61 -#define IMG_SP_HARDWARE_YELLOW 62 -#define IMG_SP_EXIT_CLOSED 63 -#define IMG_SP_EXIT_OPEN 64 -#define IMG_SP_DISK_ORANGE 65 -#define IMG_SP_DISK_ORANGE_FALLING 66 -#define IMG_SP_DISK_ORANGE_PUSHING 67 -#define IMG_SP_DISK_YELLOW 68 -#define IMG_SP_DISK_YELLOW_PUSHING 69 -#define IMG_SP_DISK_RED 70 -#define IMG_SP_DISK_RED_COLLECTING 71 -#define IMG_SP_DISK_RED_ACTIVE 72 -#define IMG_SP_PORT_RIGHT 73 -#define IMG_SP_PORT_DOWN 74 -#define IMG_SP_PORT_LEFT 75 -#define IMG_SP_PORT_UP 76 -#define IMG_SP_PORT_HORIZONTAL 77 -#define IMG_SP_PORT_VERTICAL 78 -#define IMG_SP_PORT_ANY 79 -#define IMG_SP_GRAVITY_PORT_RIGHT 80 -#define IMG_SP_GRAVITY_PORT_DOWN 81 -#define IMG_SP_GRAVITY_PORT_LEFT 82 -#define IMG_SP_GRAVITY_PORT_UP 83 -#define IMG_SP_SNIKSNAK 84 -#define IMG_SP_SNIKSNAK_LEFT 85 -#define IMG_SP_SNIKSNAK_RIGHT 86 -#define IMG_SP_SNIKSNAK_UP 87 -#define IMG_SP_SNIKSNAK_DOWN 88 -#define IMG_SP_ELECTRON 89 -#define IMG_SP_ELECTRON_EDITOR 90 -#define IMG_SP_TERMINAL 91 -#define IMG_SP_TERMINAL_EDITOR 92 -#define IMG_SP_TERMINAL_ACTIVE 93 -#define IMG_SP_BUGGY_BASE 94 -#define IMG_SP_BUGGY_BASE_EDITOR 95 -#define IMG_SP_BUGGY_BASE_ACTIVATING 96 -#define IMG_SP_BUGGY_BASE_ACTIVE 97 -#define IMG_SP_HARDWARE_BASE_1 98 -#define IMG_SP_HARDWARE_BASE_2 99 -#define IMG_SP_HARDWARE_BASE_3 100 -#define IMG_SP_HARDWARE_BASE_4 101 -#define IMG_SP_HARDWARE_BASE_5 102 -#define IMG_SP_HARDWARE_BASE_6 103 -#define IMG_SP_EXPLOSION 104 -#define IMG_SP_EXPLOSION_INFOTRON 105 +#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_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 @@ -587,7 +587,7 @@ #define IMG_PLAYER_4_SNAPPING_UP 566 #define IMG_PLAYER_4_SNAPPING_LEFT 567 #define IMG_PLAYER_4_SNAPPING_RIGHT 568 -#define IMG_EXPLOSION 569 +#define IMG_DEFAULT_EXPLODING 569 #define IMG_TWINKLE_BLUE 570 #define IMG_TWINKLE_WHITE 571 #define IMG_STEELWALL_TOPLEFT 572 diff --git a/src/conf_snd.c b/src/conf_snd.c index 2471514f..39270885 100644 --- a/src/conf_snd.c +++ b/src/conf_snd.c @@ -29,13 +29,15 @@ struct ConfigInfo sound_config_suffix[] = struct ConfigInfo sound_config[] = { /* some default sounds */ - { "[DEFAULT].digging", "schlurf.wav" }, - { "[DEFAULT].collecting", "pong.wav" }, - { "[DEFAULT].snapping", "pong.wav" }, - { "[DEFAULT].pushing", "pusch.wav" }, - { "[DEFAULT].impact", "klopf.wav" }, - { "[DEFAULT].passing", "gate.wav" }, - { "[DEFAULT].exploding", "roaaar.wav" }, + { "[default].digging", "schlurf.wav" }, + { "[default].collecting", "pong.wav" }, + { "[default].snapping", "pong.wav" }, + { "[default].pushing", "pusch.wav" }, + { "[default].impact", "klopf.wav" }, + { "[default].passing", "gate.wav" }, + { "[default].dying", "autsch.wav" }, + { "[default].exploding", "roaaar.wav" }, + { "[sp_default].exploding", "booom.wav" }, /* sounds for Boulder Dash style elements and actions */ { "bd_diamond.collecting", "pong.wav" }, @@ -209,11 +211,6 @@ struct ConfigInfo sound_config[] = { "dragon.waiting", UNDEFINED_FILENAME }, { "dragon.attacking", UNDEFINED_FILENAME }, - /* sounds for generic elements and actions */ - { "[player].dying", "autsch.wav" }, - { "element.exploding", "roaaar.wav" }, - { "sp_element.exploding", "booom.wav" }, - /* sounds not associated to game elements (used for menu screens etc.) */ /* keyword to stop parser: "NO_MORE_ELEMENT_SOUNDS" <-- do not change! */ diff --git a/src/conf_snd.h b/src/conf_snd.h index b6d426c0..76486b63 100644 --- a/src/conf_snd.h +++ b/src/conf_snd.h @@ -24,176 +24,175 @@ #define SND_CLASS_DEFAULT_PUSHING 3 #define SND_CLASS_DEFAULT_IMPACT 4 #define SND_CLASS_DEFAULT_PASSING 5 -#define SND_CLASS_DEFAULT_EXPLODING 6 -#define SND_BD_DIAMOND_COLLECTING 7 -#define SND_BD_DIAMOND_IMPACT 8 -#define SND_BD_ROCK_PUSHING 9 -#define SND_BD_ROCK_IMPACT 10 -#define SND_BD_MAGIC_WALL_ACTIVATING 11 -#define SND_BD_MAGIC_WALL_ACTIVE 12 -#define SND_BD_MAGIC_WALL_FILLING 13 -#define SND_BD_AMOEBA_WAITING 14 -#define SND_BD_AMOEBA_GROWING 15 -#define SND_BD_AMOEBA_TURNING_TO_GEM 16 -#define SND_BD_AMOEBA_TURNING_TO_ROCK 17 -#define SND_BD_BUTTERFLY_MOVING 18 -#define SND_BD_BUTTERFLY_WAITING 19 -#define SND_BD_FIREFLY_MOVING 20 -#define SND_BD_FIREFLY_WAITING 21 -#define SND_SP_BASE_DIGGING 22 -#define SND_SP_BUGGY_BASE_DIGGING 23 -#define SND_SP_BUGGY_BASE_ACTIVE 24 -#define SND_SP_INFOTRON_COLLECTING 25 -#define SND_SP_INFOTRON_IMPACT 26 -#define SND_SP_ZONK_PUSHING 27 -#define SND_SP_ZONK_IMPACT 28 -#define SND_SP_DISK_RED_COLLECTING 29 -#define SND_SP_DISK_ORANGE_PUSHING 30 -#define SND_SP_DISK_YELLOW_PUSHING 31 -#define SND_CLASS_SP_PORT_PASSING 32 -#define SND_CLASS_SP_EXIT_PASSING 33 -#define SND_CLASS_SP_EXIT_OPENING 34 -#define SND_SP_SNIKSNAK_MOVING 35 -#define SND_SP_SNIKSNAK_WAITING 36 -#define SND_SP_ELECTRON_MOVING 37 -#define SND_SP_ELECTRON_WAITING 38 -#define SND_SP_TERMINAL_ACTIVATING 39 -#define SND_SP_TERMINAL_ACTIVE 40 -#define SND_CLASS_SOKOBAN_PUSHING 41 -#define SND_CLASS_SOKOBAN_FILLING 42 -#define SND_CLASS_SOKOBAN_EMPTYING 43 -#define SND_EMPTY_SPACE_DIGGING 44 -#define SND_SAND_DIGGING 45 -#define SND_EMERALD_COLLECTING 46 -#define SND_EMERALD_IMPACT 47 -#define SND_DIAMOND_COLLECTING 48 -#define SND_DIAMOND_IMPACT 49 -#define SND_DIAMOND_BREAKING 50 -#define SND_ROCK_PUSHING 51 -#define SND_ROCK_IMPACT 52 -#define SND_BOMB_PUSHING 53 -#define SND_NUT_PUSHING 54 -#define SND_NUT_BREAKING 55 -#define SND_NUT_IMPACT 56 -#define SND_CLASS_DYNAMITE_COLLECTING 57 -#define SND_CLASS_DYNAMITE_DROPPING 58 -#define SND_CLASS_DYNAMITE_ACTIVE 59 -#define SND_CLASS_KEY_COLLECTING 60 -#define SND_CLASS_GATE_PASSING 61 -#define SND_BUG_MOVING 62 -#define SND_BUG_WAITING 63 -#define SND_SPACESHIP_MOVING 64 -#define SND_SPACESHIP_WAITING 65 -#define SND_YAMYAM_MOVING 66 -#define SND_YAMYAM_WAITING 67 -#define SND_YAMYAM_DIGGING 68 -#define SND_ROBOT_MOVING 69 -#define SND_ROBOT_WAITING 70 -#define SND_ROBOT_WHEEL_ACTIVATING 71 -#define SND_ROBOT_WHEEL_ACTIVE 72 -#define SND_MAGIC_WALL_ACTIVATING 73 -#define SND_MAGIC_WALL_ACTIVE 74 -#define SND_MAGIC_WALL_FILLING 75 -#define SND_CLASS_AMOEBA_WAITING 76 -#define SND_CLASS_AMOEBA_GROWING 77 -#define SND_CLASS_AMOEBA_DROPPING 78 -#define SND_ACID_SPLASHING 79 -#define SND_CLASS_QUICKSAND_FILLING 80 -#define SND_CLASS_QUICKSAND_EMPTYING 81 -#define SND_CLASS_EXIT_OPENING 82 -#define SND_CLASS_EXIT_PASSING 83 -#define SND_PENGUIN_PASSING 84 -#define SND_BALLOON_MOVING 85 -#define SND_BALLOON_WAITING 86 -#define SND_BALLOON_PUSHING 87 -#define SND_CLASS_BALLOON_SWITCH_ACTIVATING 88 -#define SND_SPRING_MOVING 89 -#define SND_SPRING_PUSHING 90 -#define SND_SPRING_IMPACT 91 -#define SND_CLASS_WALL_GROWING 92 -#define SND_PEARL_COLLECTING 93 -#define SND_PEARL_BREAKING 94 -#define SND_PEARL_IMPACT 95 -#define SND_CRYSTAL_COLLECTING 96 -#define SND_CRYSTAL_IMPACT 97 -#define SND_ENVELOPE_COLLECTING 98 -#define SND_INVISIBLE_SAND_DIGGING 99 -#define SND_SHIELD_NORMAL_COLLECTING 100 -#define SND_SHIELD_NORMAL_ACTIVE 101 -#define SND_SHIELD_DEADLY_COLLECTING 102 -#define SND_SHIELD_DEADLY_ACTIVE 103 -#define SND_EXTRA_TIME_COLLECTING 104 -#define SND_MOLE_MOVING 105 -#define SND_MOLE_WAITING 106 -#define SND_MOLE_DIGGING 107 -#define SND_CLASS_SWITCHGATE_SWITCH_ACTIVATING 108 -#define SND_CLASS_SWITCHGATE_OPENING 109 -#define SND_CLASS_SWITCHGATE_CLOSING 110 -#define SND_CLASS_SWITCHGATE_PASSING 111 -#define SND_TIMEGATE_SWITCH_ACTIVATING 112 -#define SND_TIMEGATE_SWITCH_ACTIVE 113 -#define SND_TIMEGATE_SWITCH_DEACTIVATING 114 -#define SND_TIMEGATE_OPENING 115 -#define SND_CLASS_TIMEGATE_CLOSING 116 -#define SND_CLASS_TIMEGATE_PASSING 117 -#define SND_CLASS_CONVEYOR_BELT_SWITCH_ACTIVATING 118 -#define SND_CLASS_CONVEYOR_BELT_ACTIVE 119 -#define SND_CLASS_CONVEYOR_BELT_SWITCH_DEACTIVATING 120 -#define SND_LIGHT_SWITCH_ACTIVATING 121 -#define SND_LIGHT_SWITCH_DEACTIVATING 122 -#define SND_DX_SUPABOMB_PUSHING 123 -#define SND_TRAP_DIGGING 124 -#define SND_TRAP_ACTIVATING 125 -#define SND_CLASS_TUBE_PASSING 126 -#define SND_AMOEBA_TURNING_TO_GEM 127 -#define SND_AMOEBA_TURNING_TO_ROCK 128 -#define SND_SPEED_PILL_COLLECTING 129 -#define SND_DYNABOMB_INCREASE_NUMBER_COLLECTING 130 -#define SND_DYNABOMB_INCREASE_SIZE_COLLECTING 131 -#define SND_DYNABOMB_INCREASE_POWER_COLLECTING 132 -#define SND_CLASS_DYNABOMB_DROPPING 133 -#define SND_CLASS_DYNABOMB_ACTIVE 134 -#define SND_SATELLITE_MOVING 135 -#define SND_SATELLITE_WAITING 136 -#define SND_SATELLITE_PUSHING 137 -#define SND_LAMP_ACTIVATING 138 -#define SND_LAMP_DEACTIVATING 139 -#define SND_TIME_ORB_FULL_COLLECTING 140 -#define SND_TIME_ORB_FULL_IMPACT 141 -#define SND_TIME_ORB_EMPTY_PUSHING 142 -#define SND_TIME_ORB_EMPTY_IMPACT 143 -#define SND_GAME_OF_LIFE_WAITING 144 -#define SND_GAME_OF_LIFE_GROWING 145 -#define SND_BIOMAZE_WAITING 146 -#define SND_BIOMAZE_GROWING 147 -#define SND_PACMAN_MOVING 148 -#define SND_PACMAN_WAITING 149 -#define SND_PACMAN_DIGGING 150 -#define SND_DARK_YAMYAM_MOVING 151 -#define SND_DARK_YAMYAM_WAITING 152 -#define SND_DARK_YAMYAM_DIGGING 153 -#define SND_PENGUIN_MOVING 154 -#define SND_PENGUIN_WAITING 155 -#define SND_PIG_MOVING 156 -#define SND_PIG_WAITING 157 -#define SND_PIG_DIGGING 158 -#define SND_DRAGON_MOVING 159 -#define SND_DRAGON_WAITING 160 -#define SND_DRAGON_ATTACKING 161 -#define SND_CLASS_PLAYER_DYING 162 -#define SND_ELEMENT_EXPLODING 163 -#define SND_SP_ELEMENT_EXPLODING 164 -#define SND_GAME_STARTING 165 -#define SND_GAME_RUNNING_OUT_OF_TIME 166 -#define SND_GAME_LEVELTIME_BONUS 167 -#define SND_GAME_LOSING 168 -#define SND_GAME_WINNING 169 -#define SND_GAME_SOKOBAN_SOLVING 170 -#define SND_DOOR_OPENING 171 -#define SND_DOOR_CLOSING 172 -#define SND_BACKGROUND_SCORES 173 -#define SND_BACKGROUND_INFO 174 +#define SND_CLASS_DEFAULT_DYING 6 +#define SND_CLASS_DEFAULT_EXPLODING 7 +#define SND_CLASS_SP_DEFAULT_EXPLODING 8 +#define SND_BD_DIAMOND_COLLECTING 9 +#define SND_BD_DIAMOND_IMPACT 10 +#define SND_BD_ROCK_PUSHING 11 +#define SND_BD_ROCK_IMPACT 12 +#define SND_BD_MAGIC_WALL_ACTIVATING 13 +#define SND_BD_MAGIC_WALL_ACTIVE 14 +#define SND_BD_MAGIC_WALL_FILLING 15 +#define SND_BD_AMOEBA_WAITING 16 +#define SND_BD_AMOEBA_GROWING 17 +#define SND_BD_AMOEBA_TURNING_TO_GEM 18 +#define SND_BD_AMOEBA_TURNING_TO_ROCK 19 +#define SND_BD_BUTTERFLY_MOVING 20 +#define SND_BD_BUTTERFLY_WAITING 21 +#define SND_BD_FIREFLY_MOVING 22 +#define SND_BD_FIREFLY_WAITING 23 +#define SND_SP_BASE_DIGGING 24 +#define SND_SP_BUGGY_BASE_DIGGING 25 +#define SND_SP_BUGGY_BASE_ACTIVE 26 +#define SND_SP_INFOTRON_COLLECTING 27 +#define SND_SP_INFOTRON_IMPACT 28 +#define SND_SP_ZONK_PUSHING 29 +#define SND_SP_ZONK_IMPACT 30 +#define SND_SP_DISK_RED_COLLECTING 31 +#define SND_SP_DISK_ORANGE_PUSHING 32 +#define SND_SP_DISK_YELLOW_PUSHING 33 +#define SND_CLASS_SP_PORT_PASSING 34 +#define SND_CLASS_SP_EXIT_PASSING 35 +#define SND_CLASS_SP_EXIT_OPENING 36 +#define SND_SP_SNIKSNAK_MOVING 37 +#define SND_SP_SNIKSNAK_WAITING 38 +#define SND_SP_ELECTRON_MOVING 39 +#define SND_SP_ELECTRON_WAITING 40 +#define SND_SP_TERMINAL_ACTIVATING 41 +#define SND_SP_TERMINAL_ACTIVE 42 +#define SND_CLASS_SOKOBAN_PUSHING 43 +#define SND_CLASS_SOKOBAN_FILLING 44 +#define SND_CLASS_SOKOBAN_EMPTYING 45 +#define SND_EMPTY_SPACE_DIGGING 46 +#define SND_SAND_DIGGING 47 +#define SND_EMERALD_COLLECTING 48 +#define SND_EMERALD_IMPACT 49 +#define SND_DIAMOND_COLLECTING 50 +#define SND_DIAMOND_IMPACT 51 +#define SND_DIAMOND_BREAKING 52 +#define SND_ROCK_PUSHING 53 +#define SND_ROCK_IMPACT 54 +#define SND_BOMB_PUSHING 55 +#define SND_NUT_PUSHING 56 +#define SND_NUT_BREAKING 57 +#define SND_NUT_IMPACT 58 +#define SND_CLASS_DYNAMITE_COLLECTING 59 +#define SND_CLASS_DYNAMITE_DROPPING 60 +#define SND_CLASS_DYNAMITE_ACTIVE 61 +#define SND_CLASS_KEY_COLLECTING 62 +#define SND_CLASS_GATE_PASSING 63 +#define SND_BUG_MOVING 64 +#define SND_BUG_WAITING 65 +#define SND_SPACESHIP_MOVING 66 +#define SND_SPACESHIP_WAITING 67 +#define SND_YAMYAM_MOVING 68 +#define SND_YAMYAM_WAITING 69 +#define SND_YAMYAM_DIGGING 70 +#define SND_ROBOT_MOVING 71 +#define SND_ROBOT_WAITING 72 +#define SND_ROBOT_WHEEL_ACTIVATING 73 +#define SND_ROBOT_WHEEL_ACTIVE 74 +#define SND_MAGIC_WALL_ACTIVATING 75 +#define SND_MAGIC_WALL_ACTIVE 76 +#define SND_MAGIC_WALL_FILLING 77 +#define SND_CLASS_AMOEBA_WAITING 78 +#define SND_CLASS_AMOEBA_GROWING 79 +#define SND_CLASS_AMOEBA_DROPPING 80 +#define SND_ACID_SPLASHING 81 +#define SND_CLASS_QUICKSAND_FILLING 82 +#define SND_CLASS_QUICKSAND_EMPTYING 83 +#define SND_CLASS_EXIT_OPENING 84 +#define SND_CLASS_EXIT_PASSING 85 +#define SND_PENGUIN_PASSING 86 +#define SND_BALLOON_MOVING 87 +#define SND_BALLOON_WAITING 88 +#define SND_BALLOON_PUSHING 89 +#define SND_CLASS_BALLOON_SWITCH_ACTIVATING 90 +#define SND_SPRING_MOVING 91 +#define SND_SPRING_PUSHING 92 +#define SND_SPRING_IMPACT 93 +#define SND_CLASS_WALL_GROWING 94 +#define SND_PEARL_COLLECTING 95 +#define SND_PEARL_BREAKING 96 +#define SND_PEARL_IMPACT 97 +#define SND_CRYSTAL_COLLECTING 98 +#define SND_CRYSTAL_IMPACT 99 +#define SND_ENVELOPE_COLLECTING 100 +#define SND_INVISIBLE_SAND_DIGGING 101 +#define SND_SHIELD_NORMAL_COLLECTING 102 +#define SND_SHIELD_NORMAL_ACTIVE 103 +#define SND_SHIELD_DEADLY_COLLECTING 104 +#define SND_SHIELD_DEADLY_ACTIVE 105 +#define SND_EXTRA_TIME_COLLECTING 106 +#define SND_MOLE_MOVING 107 +#define SND_MOLE_WAITING 108 +#define SND_MOLE_DIGGING 109 +#define SND_CLASS_SWITCHGATE_SWITCH_ACTIVATING 110 +#define SND_CLASS_SWITCHGATE_OPENING 111 +#define SND_CLASS_SWITCHGATE_CLOSING 112 +#define SND_CLASS_SWITCHGATE_PASSING 113 +#define SND_TIMEGATE_SWITCH_ACTIVATING 114 +#define SND_TIMEGATE_SWITCH_ACTIVE 115 +#define SND_TIMEGATE_SWITCH_DEACTIVATING 116 +#define SND_TIMEGATE_OPENING 117 +#define SND_CLASS_TIMEGATE_CLOSING 118 +#define SND_CLASS_TIMEGATE_PASSING 119 +#define SND_CLASS_CONVEYOR_BELT_SWITCH_ACTIVATING 120 +#define SND_CLASS_CONVEYOR_BELT_ACTIVE 121 +#define SND_CLASS_CONVEYOR_BELT_SWITCH_DEACTIVATING 122 +#define SND_LIGHT_SWITCH_ACTIVATING 123 +#define SND_LIGHT_SWITCH_DEACTIVATING 124 +#define SND_DX_SUPABOMB_PUSHING 125 +#define SND_TRAP_DIGGING 126 +#define SND_TRAP_ACTIVATING 127 +#define SND_CLASS_TUBE_PASSING 128 +#define SND_AMOEBA_TURNING_TO_GEM 129 +#define SND_AMOEBA_TURNING_TO_ROCK 130 +#define SND_SPEED_PILL_COLLECTING 131 +#define SND_DYNABOMB_INCREASE_NUMBER_COLLECTING 132 +#define SND_DYNABOMB_INCREASE_SIZE_COLLECTING 133 +#define SND_DYNABOMB_INCREASE_POWER_COLLECTING 134 +#define SND_CLASS_DYNABOMB_DROPPING 135 +#define SND_CLASS_DYNABOMB_ACTIVE 136 +#define SND_SATELLITE_MOVING 137 +#define SND_SATELLITE_WAITING 138 +#define SND_SATELLITE_PUSHING 139 +#define SND_LAMP_ACTIVATING 140 +#define SND_LAMP_DEACTIVATING 141 +#define SND_TIME_ORB_FULL_COLLECTING 142 +#define SND_TIME_ORB_FULL_IMPACT 143 +#define SND_TIME_ORB_EMPTY_PUSHING 144 +#define SND_TIME_ORB_EMPTY_IMPACT 145 +#define SND_GAME_OF_LIFE_WAITING 146 +#define SND_GAME_OF_LIFE_GROWING 147 +#define SND_BIOMAZE_WAITING 148 +#define SND_BIOMAZE_GROWING 149 +#define SND_PACMAN_MOVING 150 +#define SND_PACMAN_WAITING 151 +#define SND_PACMAN_DIGGING 152 +#define SND_DARK_YAMYAM_MOVING 153 +#define SND_DARK_YAMYAM_WAITING 154 +#define SND_DARK_YAMYAM_DIGGING 155 +#define SND_PENGUIN_MOVING 156 +#define SND_PENGUIN_WAITING 157 +#define SND_PIG_MOVING 158 +#define SND_PIG_WAITING 159 +#define SND_PIG_DIGGING 160 +#define SND_DRAGON_MOVING 161 +#define SND_DRAGON_WAITING 162 +#define SND_DRAGON_ATTACKING 163 +#define SND_GAME_STARTING 164 +#define SND_GAME_RUNNING_OUT_OF_TIME 165 +#define SND_GAME_LEVELTIME_BONUS 166 +#define SND_GAME_LOSING 167 +#define SND_GAME_WINNING 168 +#define SND_GAME_SOKOBAN_SOLVING 169 +#define SND_DOOR_OPENING 170 +#define SND_DOOR_CLOSING 171 +#define SND_BACKGROUND_SCORES 172 +#define SND_BACKGROUND_INFO 173 -#define NUM_SOUND_FILES 175 +#define NUM_SOUND_FILES 174 #endif /* CONF_SND_H */ diff --git a/src/conftime.h b/src/conftime.h index b80e0109..06b76cab 100644 --- a/src/conftime.h +++ b/src/conftime.h @@ -1 +1 @@ -#define COMPILE_DATE_STRING "[2003-06-15 03:27]" +#define COMPILE_DATE_STRING "[2003-06-16 03:06]" diff --git a/src/game.c b/src/game.c index 2f6eb82f..99cbfbbd 100644 --- a/src/game.c +++ b/src/game.c @@ -1791,7 +1791,11 @@ void Explode(int ex, int ey, int phase, int mode) } Feld[x][y] = EL_EXPLOSION; +#if 1 + GfxElement[x][y] = center_element; +#else GfxElement[x][y] = EL_UNDEFINED; +#endif MovDir[x][y] = MovPos[x][y] = 0; AmoebaNr[x][y] = 0; ExplodePhase[x][y] = 1; @@ -1846,6 +1850,7 @@ void Explode(int ex, int ey, int phase, int mode) element = Feld[x][y] = Store[x][y]; Store[x][y] = Store2[x][y] = 0; + GfxElement[x][y] = EL_UNDEFINED; if (Back[x][y] && IS_INDESTRUCTIBLE(Back[x][y])) element = Feld[x][y] = Back[x][y]; @@ -1862,10 +1867,14 @@ void Explode(int ex, int ey, int phase, int mode) } else if (phase >= delay && IN_SCR_FIELD(SCREENX(x), SCREENY(y))) { +#if 1 + int graphic = el_act2img(GfxElement[x][y], ACTION_EXPLODING); +#else int stored = Store[x][y]; int graphic = (game.emulation != EMU_SUPAPLEX ? IMG_EXPLOSION : stored == EL_SP_INFOTRON ? IMG_SP_EXPLOSION_INFOTRON : IMG_SP_EXPLOSION); +#endif int frame = getGraphicAnimationFrame(graphic, phase - delay); if (phase == delay) @@ -1942,10 +1951,22 @@ void Bang(int x, int y) { int element = Feld[x][y]; + if (IS_PLAYER(x, y)) + { + struct PlayerInfo *player = PLAYERINFO(x, y); + + element = Feld[x][y] = (player->use_murphy_graphic ? EL_SP_MURPHY : + player->element_nr); + } + +#if 1 + PlaySoundLevelAction(x, y, ACTION_EXPLODING); +#else if (game.emulation == EMU_SUPAPLEX) PlaySoundLevel(x, y, SND_SP_ELEMENT_EXPLODING); else PlaySoundLevel(x, y, SND_ELEMENT_EXPLODING); +#endif #if 0 if (IS_PLAYER(x, y)) /* remove objects that might cause smaller explosion */ @@ -6210,7 +6231,11 @@ void BuryHero(struct PlayerInfo *player) if (!player->active) return; +#if 1 + PlaySoundLevelElementAction(jx, jy, player->element_nr, ACTION_DYING); +#else PlaySoundLevel(jx, jy, SND_CLASS_PLAYER_DYING); +#endif PlaySoundLevel(jx, jy, SND_GAME_LOSING); player->GameOver = TRUE; diff --git a/src/init.c b/src/init.c index 57b1bd11..c614643e 100644 --- a/src/init.c +++ b/src/init.c @@ -481,19 +481,19 @@ void InitElementGraphicInfo() /* now set all '-1' values to element specific default values */ for (i=0; i