rnd-20020526-1-src
[rocksndiamonds.git] / src / main.h
index dbeb50216608fe573c6a96fd3e7009361c7944dd..e51f115752395cde726553c1de75a0e2a9c737ae 100644 (file)
@@ -331,6 +331,12 @@ struct GlobalInfo
   int fps_slowdown_factor;
 };
 
+struct ElementInfo
+{
+  char *sound_class_name;
+  char *editor_description;
+};
+
 extern GC              tile_clip_gc;
 extern Bitmap         *pix[];
 extern Pixmap          tile_clipmask[];
@@ -388,13 +394,9 @@ extern struct HiScore              highscore[];
 extern struct TapeInfo         tape;
 extern struct GameInfo         game;
 extern struct GlobalInfo       global;
-
+extern struct ElementInfo      element_info[];
 extern struct SoundEffectInfo  sound_effects[];
 
-extern char            *sound_name[];
-extern char            *element_info[];
-extern int             num_element_info;
-
 /* often used screen positions */
 #define SX                     8
 #define SY                     8
@@ -818,6 +820,9 @@ extern int          num_element_info;
 #define EL_TRAP_INACTIVE       356
 #define EL_DX_SUPABOMB         357
 
+#define NUM_LEVEL_ELEMENTS     358
+
+
 /* "real" (and therefore drawable) runtime elements */
 #define EL_FIRST_RUNTIME_EL    500
 
@@ -1443,148 +1448,172 @@ extern int            num_element_info;
 #define SND_BD_MAGIC_WALL_ACTIVATING           6
 #define SND_BD_MAGIC_WALL_CHANGING             7
 #define SND_BD_MAGIC_WALL_RUNNING              8
-#define SND_BD_AMOEBA_GROWING                  9
-#define SND_BD_AMOEBA_TURNING_TO_GEM           10
-#define SND_BD_AMOEBA_TURNING_TO_ROCK          11
-#define SND_BD_BUTTERFLY_MOVING                        12
-#define SND_BD_FIREFLY_MOVING                  13
-#define SND_BD_EXIT_ENTERING                   14
-#define SND_SP_EMPTY_SPACE_DIGGING             15
-#define SND_SP_BASE_DIGGING                    16
-#define SND_SP_BUGGY_BASE_DIGGING              17
-#define SND_SP_BUGGY_BASE_ACTIVATING           18
-#define SND_SP_INFOTRON_COLLECTING             19
-#define SND_SP_INFOTRON_IMPACT                 20
-#define SND_SP_ZONK_PUSHING                    21
-#define SND_SP_ZONK_IMPACT                     22
-#define SND_SP_DISK_RED_COLLECTING             23
-#define SND_SP_DISK_ORANGE_PUSHING             24
-#define SND_SP_DISK_YELLOW_PUSHING             25
-#define SND_SP_PORT_PASSING                    26
-#define SND_SP_EXIT_ENTERING                   27
-#define SND_SP_ELEMENT_EXPLODING               28
-#define SND_SP_SNIKSNAK_MOVING                 29
-#define SND_SP_ELECTRON_MOVING                 30
-#define SND_SP_TERMINAL_ACTIVATING             31
-#define SND_SOKOBAN_OBJECT_PUSHING             32
-#define SND_SOKOBAN_FIELD_FILLING              33
-#define SND_SOKOBAN_FIELD_CLEARING             34
-#define SND_SOKOBAN_GAME_SOLVING               35
-#define SND_EMPTY_SPACE_DIGGING                        36
-#define SND_SAND_DIGGING                       37
-#define SND_EMERALD_COLLECTING                 38
-#define SND_EMERALD_IMPACT                     39
-#define SND_DIAMOND_COLLECTING                 40
-#define SND_DIAMOND_IMPACT                     41
-#define SND_DIAMOND_BREAKING                   42
-#define SND_ROCK_PUSHING                       43
-#define SND_ROCK_IMPACT                                44
-#define SND_BOMB_PUSHING                       45
-#define SND_NUT_PUSHING                                46
-#define SND_NUT_CRACKING                       47
-#define SND_NUT_IMPACT                         48
-#define SND_DYNAMITE_COLLECTING                        49
-#define SND_DYNAMITE_PLACING                   50
-#define SND_DYNAMITE_BURNING                   51
-#define SND_KEY_COLLECTING                     52
-#define SND_GATE_PASSING                       53
-#define SND_BUG_MOVING                         54
-#define SND_SPACESHIP_MOVING                   55
-#define SND_YAMYAM_MOVING                      56
-#define SND_YAMYAM_WAITING                     57
-#define SND_YAMYAM_EATING_DIAMOND              58
-#define SND_ROBOT_MOVING                       59
-#define SND_ROBOT_WHEEL_ACTIVATING             60
-#define SND_ROBOT_WHEEL_RUNNING                        61
-#define SND_MAGIC_WALL_ACTIVATING              62
-#define SND_MAGIC_WALL_CHANGING                        63
-#define SND_MAGIC_WALL_RUNNING                 64
-#define SND_AMOEBA_GROWING                     65
-#define SND_AMOEBA_DROPPING                    66
-#define SND_ACID_SPLASHING                     67
-#define SND_QUICKSAND_FILLING                  68
-#define SND_QUICKSAND_SLIPPING_THROUGH         69
-#define SND_QUICKSAND_EMPTYING                 70
-#define SND_EXIT_OPENING                       71
-#define SND_EXIT_ENTERING                      72
-#define SND_BALLOON_MOVING                     73
-#define SND_BALLOON_PUSHING                    74
-#define SND_SPRING_MOVING                      75
-#define SND_SPRING_PUSHING                     76
-#define SND_SPRING_IMPACT                      77
-#define SND_WALL_GROWING                       78
-#define SND_PEARL_COLLECTING                   79
-#define SND_PEARL_BREAKING                     80
-#define SND_PEARL_IMPACT                       81
-#define SND_CRYSTAL_COLLECTING                 82
-#define SND_CRYSTAL_IMPACT                     83
-#define SND_ENVELOPE_COLLECTING                        84
-#define SND_SAND_INVISIBLE_DIGGING             85
-#define SND_SHIELD_PASSIVE_COLLECTING          86
-#define SND_SHIELD_PASSIVE_ACTIVATED           87
-#define SND_SHIELD_ACTIVE_COLLECTING           88
-#define SND_SHIELD_ACTIVE_ACTIVATED            89
-#define SND_EXTRA_TIME_COLLECTING              90
-#define SND_MOLE_MOVING                                91
-#define SND_MOLE_EATING_AMOEBA                 92
-#define SND_SWITCHGATE_SWITCH_ACTIVATING       93
-#define SND_SWITCHGATE_OPENING                 94
-#define SND_SWITCHGATE_CLOSING                 95
-#define SND_SWITCHGATE_PASSING                 96
-#define SND_TIMEGATE_WHEEL_ACTIVATING          97
-#define SND_TIMEGATE_WHEEL_RUNNING             98
-#define SND_TIMEGATE_OPENING                   99
-#define SND_TIMEGATE_CLOSING                   100
-#define SND_TIMEGATE_PASSING                   101
-#define SND_CONVEYOR_BELT_SWITCH_ACTIVATING    102
-#define SND_CONVEYOR_BELT_RUNNING              103
-#define SND_LIGHT_SWITCH_ACTIVATING            104
-#define SND_LIGHT_SWITCH_DEACTIVATING          105
-#define SND_DX_BOMB_PUSHING                    106
-#define SND_TRAP_INACTIVE_DIGGING              107
-#define SND_TRAP_ACTIVATING                    108
-#define SND_AMOEBA_TURNING_TO_GEM              109
-#define SND_AMOEBA_TURNING_TO_ROCK             110
-#define SND_SPEED_PILL_COLLECTING              111
-#define SND_DYNABOMB_NR_COLLECTING             112
-#define SND_DYNABOMB_SZ_COLLECTING             113
-#define SND_DYNABOMB_XL_COLLECTING             114
-#define SND_DYNABOMB_PLACING                   115
-#define SND_DYNABOMB_BURNING                   116
-#define SND_SATELLITE_MOVING                   117
-#define SND_SATELLITE_PUSHING                  118
-#define SND_LAMP_ACTIVATING                    119
-#define SND_LAMP_DEACTIVATING                  120
-#define SND_TIME_ORB_FULL_COLLECTING           121
-#define SND_TIME_ORB_FULL_IMPACT               122
-#define SND_TIME_ORB_EMPTY_PUSHING             123
-#define SND_TIME_ORB_EMPTY_IMPACT              124
-#define SND_GAMEOFLIFE_GROWING                 125
-#define SND_BIOMAZE_GROWING                    126
-#define SND_PACMAN_MOVING                      127
-#define SND_PACMAN_EATING_AMOEBA               128
-#define SND_DARK_YAMYAM_MOVING                 129
-#define SND_DARK_YAMYAM_WAITING                        130
-#define SND_DARK_YAMYAM_EATING_ANY             131
-#define SND_PENGUIN_MOVING                     132
-#define SND_PENGUIN_ENTERING_EXIT              133
-#define SND_PIG_MOVING                         134
-#define SND_PIG_EATING_GEM                     135
-#define SND_DRAGON_MOVING                      136
-#define SND_DRAGON_BREATHING_FIRE              137
-#define SND_PLAYER_DYING                       138
-#define SND_ELEMENT_EXPLODING                  139
-#define SND_GAME_STARTING                      140
-#define SND_GAME_RUNNING_OUT_OF_TIME           141
-#define SND_GAME_LEVELTIME_BONUS               142
-#define SND_GAME_LOSING                                143
-#define SND_GAME_WINNING                       144
-#define SND_MENU_DOOR_OPENING                  145
-#define SND_MENU_DOOR_CLOSING                  146
-#define SND_MENU_HALL_OF_FAME                  147
-#define SND_MENU_INFO_SCREEN                   148
-
-#define NUM_SOUND_EFFECTS                      149
+#define SND_BD_AMOEBA_WAITING                  9
+#define SND_BD_AMOEBA_CREATING                 10
+#define SND_BD_AMOEBA_GROWING                  11
+#define SND_BD_AMOEBA_TURNING_TO_GEM           12
+#define SND_BD_AMOEBA_TURNING_TO_ROCK          13
+#define SND_BD_BUTTERFLY_MOVING                        14
+#define SND_BD_BUTTERFLY_WAITING               15
+#define SND_BD_FIREFLY_MOVING                  16
+#define SND_BD_FIREFLY_WAITING                 17
+#define SND_BD_EXIT_ENTERING                   18
+#define SND_SP_EMPTY_SPACE_DIGGING             19
+#define SND_SP_BASE_DIGGING                    20
+#define SND_SP_BUGGY_BASE_DIGGING              21
+#define SND_SP_BUGGY_BASE_ACTIVATING           22
+#define SND_SP_INFOTRON_COLLECTING             23
+#define SND_SP_INFOTRON_IMPACT                 24
+#define SND_SP_ZONK_PUSHING                    25
+#define SND_SP_ZONK_IMPACT                     26
+#define SND_SP_DISK_RED_COLLECTING             27
+#define SND_SP_DISK_ORANGE_PUSHING             28
+#define SND_SP_DISK_YELLOW_PUSHING             29
+#define SND_SP_PORT_PASSING                    30
+#define SND_SP_EXIT_ENTERING                   31
+#define SND_SP_ELEMENT_EXPLODING               32
+#define SND_SP_SNIKSNAK_MOVING                 33
+#define SND_SP_SNIKSNAK_WAITING                        34
+#define SND_SP_ELECTRON_MOVING                 35
+#define SND_SP_ELECTRON_WAITING                        36
+#define SND_SP_TERMINAL_ACTIVATING             37
+#define SND_SOKOBAN_OBJECT_PUSHING             38
+#define SND_SOKOBAN_FIELD_FILLING              39
+#define SND_SOKOBAN_FIELD_CLEARING             40
+#define SND_SOKOBAN_GAME_SOLVING               41
+#define SND_EMPTY_SPACE_DIGGING                        42
+#define SND_SAND_DIGGING                       43
+#define SND_EMERALD_COLLECTING                 44
+#define SND_EMERALD_IMPACT                     45
+#define SND_DIAMOND_COLLECTING                 46
+#define SND_DIAMOND_IMPACT                     47
+#define SND_DIAMOND_BREAKING                   48
+#define SND_ROCK_PUSHING                       49
+#define SND_ROCK_IMPACT                                50
+#define SND_BOMB_PUSHING                       51
+#define SND_NUT_PUSHING                                52
+#define SND_NUT_CRACKING                       53
+#define SND_NUT_IMPACT                         54
+#define SND_DYNAMITE_COLLECTING                        55
+#define SND_DYNAMITE_PLACING                   56
+#define SND_DYNAMITE_BURNING                   57
+#define SND_KEY_COLLECTING                     58
+#define SND_GATE_PASSING                       59
+#define SND_BUG_MOVING                         60
+#define SND_BUG_WAITING                                61
+#define SND_SPACESHIP_MOVING                   62
+#define SND_SPACESHIP_WAITING                  63
+#define SND_YAMYAM_MOVING                      64
+#define SND_YAMYAM_WAITING                     65
+#define SND_YAMYAM_EATING_DIAMOND              66
+#define SND_ROBOT_STEPPING                     67
+#define SND_ROBOT_WAITING                      68
+#define SND_ROBOT_WHEEL_ACTIVATING             69
+#define SND_ROBOT_WHEEL_RUNNING                        70
+#define SND_MAGIC_WALL_ACTIVATING              71
+#define SND_MAGIC_WALL_CHANGING                        72
+#define SND_MAGIC_WALL_RUNNING                 73
+#define SND_AMOEBA_WAITING                     74
+#define SND_AMOEBA_CREATING                    75
+#define SND_AMOEBA_GROWING                     76
+#define SND_AMOEBA_DROPPING                    77
+#define SND_ACID_SPLASHING                     78
+#define SND_QUICKSAND_FILLING                  79
+#define SND_QUICKSAND_SLIPPING_THROUGH         80
+#define SND_QUICKSAND_EMPTYING                 81
+#define SND_EXIT_OPENING                       82
+#define SND_EXIT_ENTERING                      83
+#define SND_BALLOON_MOVING                     84
+#define SND_BALLOON_WAITING                    85
+#define SND_BALLOON_PUSHING                    86
+#define SND_BALLOON_SWITCH_ACTIVATING          87
+#define SND_SPRING_MOVING                      88
+#define SND_SPRING_PUSHING                     89
+#define SND_SPRING_IMPACT                      90
+#define SND_WALL_GROWING                       91
+#define SND_PEARL_COLLECTING                   92
+#define SND_PEARL_BREAKING                     93
+#define SND_PEARL_IMPACT                       94
+#define SND_CRYSTAL_COLLECTING                 95
+#define SND_CRYSTAL_IMPACT                     96
+#define SND_ENVELOPE_COLLECTING                        97
+#define SND_SAND_INVISIBLE_DIGGING             98
+#define SND_SHIELD_PASSIVE_COLLECTING          99
+#define SND_SHIELD_PASSIVE_ACTIVATED           100
+#define SND_SHIELD_ACTIVE_COLLECTING           101
+#define SND_SHIELD_ACTIVE_ACTIVATED            102
+#define SND_EXTRA_TIME_COLLECTING              103
+#define SND_MOLE_MOVING                                104
+#define SND_MOLE_WAITING                       105
+#define SND_MOLE_EATING_AMOEBA                 106
+#define SND_SWITCHGATE_SWITCH_ACTIVATING       107
+#define SND_SWITCHGATE_OPENING                 108
+#define SND_SWITCHGATE_CLOSING                 109
+#define SND_SWITCHGATE_PASSING                 110
+#define SND_TIMEGATE_WHEEL_ACTIVATING          111
+#define SND_TIMEGATE_WHEEL_RUNNING             112
+#define SND_TIMEGATE_OPENING                   113
+#define SND_TIMEGATE_CLOSING                   114
+#define SND_TIMEGATE_PASSING                   115
+#define SND_CONVEYOR_BELT_SWITCH_ACTIVATING    116
+#define SND_CONVEYOR_BELT_RUNNING              117
+#define SND_LIGHT_SWITCH_ACTIVATING            118
+#define SND_LIGHT_SWITCH_DEACTIVATING          119
+#define SND_DX_BOMB_PUSHING                    120
+#define SND_TRAP_INACTIVE_DIGGING              121
+#define SND_TRAP_ACTIVATING                    122
+#define SND_TUBE_PASSING                       123
+#define SND_AMOEBA_TURNING_TO_GEM              124
+#define SND_AMOEBA_TURNING_TO_ROCK             125
+#define SND_SPEED_PILL_COLLECTING              126
+#define SND_DYNABOMB_NR_COLLECTING             127
+#define SND_DYNABOMB_SZ_COLLECTING             128
+#define SND_DYNABOMB_XL_COLLECTING             129
+#define SND_DYNABOMB_PLACING                   130
+#define SND_DYNABOMB_BURNING                   131
+#define SND_SATELLITE_MOVING                   132
+#define SND_SATELLITE_WAITING                  133
+#define SND_SATELLITE_PUSHING                  134
+#define SND_LAMP_ACTIVATING                    135
+#define SND_LAMP_DEACTIVATING                  136
+#define SND_TIME_ORB_FULL_COLLECTING           137
+#define SND_TIME_ORB_FULL_IMPACT               138
+#define SND_TIME_ORB_EMPTY_PUSHING             139
+#define SND_TIME_ORB_EMPTY_IMPACT              140
+#define SND_GAMEOFLIFE_WAITING                 141
+#define SND_GAMEOFLIFE_CREATING                        142
+#define SND_GAMEOFLIFE_GROWING                 143
+#define SND_BIOMAZE_WAITING                    144
+#define SND_BIOMAZE_CREATING                   145
+#define SND_BIOMAZE_GROWING                    146
+#define SND_PACMAN_MOVING                      147
+#define SND_PACMAN_WAITING                     148
+#define SND_PACMAN_EATING_AMOEBA               149
+#define SND_DARK_YAMYAM_MOVING                 150
+#define SND_DARK_YAMYAM_WAITING                        151
+#define SND_DARK_YAMYAM_EATING_ANY             152
+#define SND_PENGUIN_MOVING                     153
+#define SND_PENGUIN_WAITING                    154
+#define SND_PENGUIN_ENTERING_EXIT              155
+#define SND_PIG_MOVING                         156
+#define SND_PIG_WAITING                                157
+#define SND_PIG_EATING_GEM                     158
+#define SND_DRAGON_MOVING                      159
+#define SND_DRAGON_WAITING                     160
+#define SND_DRAGON_ATTACKING                   161
+#define SND_PLAYER_DYING                       162
+#define SND_ELEMENT_EXPLODING                  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_MENU_DOOR_OPENING                  169
+#define SND_MENU_DOOR_CLOSING                  170
+#define SND_MENU_HALL_OF_FAME                  171
+#define SND_MENU_INFO_SCREEN                   172
+
+#define NUM_SOUND_EFFECTS                      173
 
 
 /* values for game_status */