1 #ifndef __SOUND_DEFINTIONS_H 2 #define __SOUND_DEFINTIONS_H 3 4 /* 5 SOUND_DEFINITIONS.H 6 7 Copyright (C) 1991-2001 and beyond by Bungie Studios, Inc. 8 and the "Aleph One" developers. 9 10 This program is free software; you can redistribute it and/or modify 11 it under the terms of the GNU General Public License as published by 12 the Free Software Foundation; either version 3 of the License, or 13 (at your option) any later version. 14 15 This program is distributed in the hope that it will be useful, 16 but WITHOUT ANY WARRANTY; without even the implied warranty of 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 GNU General Public License for more details. 19 20 This license is contained in the file "COPYING", 21 which is included with this source code; it is available online at 22 http://www.gnu.org/licenses/gpl.html 23 24 Saturday, August 20, 1994 2:42:56 PM 25 26 Monday, September 26, 1994 2:06:09 PM (Jason) 27 changed the depth-fading curves significantly. 28 Wednesday, February 1, 1995 12:52:03 PM (Jason') 29 marathon 2. 30 31 Feb 2, 2000 (Loren Petrich): 32 Added Marathon Infinity sound definitions; 33 nomenclature is being kept consistent with Anvil's sound-selection popup menu; 34 this menu will provide the order of the sounds. 35 36 Discovered that SOUND_FILE_TAG should not be changed from 'snd2' to be Infinity-compatible 37 38 Aug 17, 2000 (Loren Petrich): 39 Turned handle for loaded sound into a pointer; added length of that sound object. 40 */ 41 42 #include "SoundManagerEnums.h" 43 #include "world.h" 44 45 /* ---------- constants */ 46 47 enum 48 { 49 MAXIMUM_PERMUTATIONS_PER_SOUND= 5 50 }; 51 52 enum /* sound behaviors */ 53 { 54 _sound_is_quiet, 55 _sound_is_normal, 56 _sound_is_loud, 57 NUMBER_OF_SOUND_BEHAVIOR_DEFINITIONS 58 }; 59 60 enum /* flags */ 61 { 62 _sound_cannot_be_restarted= 0x0001, 63 _sound_does_not_self_abort= 0x0002, 64 _sound_resists_pitch_changes= 0x0004, // 0.5 external pitch changes 65 _sound_cannot_change_pitch= 0x0008, // no external pitch changes 66 _sound_cannot_be_obstructed= 0x0010, // ignore obstructions 67 _sound_cannot_be_media_obstructed= 0x0020, // ignore media obstructions 68 _sound_is_ambient= 0x0040 // will not be loaded unless _ambient_sound_flag is asserted 69 }; 70 71 enum /* sound chances */ 72 { 73 _ten_percent= 32768*9/10, 74 _twenty_percent= 32768*8/10, 75 _thirty_percent= 32768*7/10, 76 _fourty_percent= 32768*6/10, 77 _fifty_percent= 32768*5/10, 78 _sixty_percent= 32768*4/10, 79 _seventy_percent= 32768*3/10, 80 _eighty_percent= 32768*2/10, 81 _ninty_percent= 32768*1/10, 82 _always= 0 83 }; 84 85 /* ---------- structures */ 86 87 struct ambient_sound_definition 88 { 89 int16 sound_index; 90 }; 91 92 struct random_sound_definition 93 { 94 int16 sound_index; 95 }; 96 97 enum 98 { 99 SOUND_FILE_VERSION= 1, 100 SOUND_FILE_TAG= FOUR_CHARS_TO_INT('s', 'n', 'd', '2') 101 }; 102 103 struct sound_file_header 104 { 105 int32 version; 106 int32 tag; 107 108 int16 source_count; // usually 2 (8-bit, 16-bit) 109 int16 sound_count; 110 111 int16 unused[124]; 112 113 // immediately followed by source_count*sound_count sound_definition structures 114 }; 115 const int SIZEOF_sound_file_header = 260; 116 117 struct sound_definition 118 { 119 int16 sound_code; 120 121 int16 behavior_index; 122 uint16 flags; 123 124 uint16 chance; // play sound if AbsRandom()>=chance 125 126 /* if low_pitch==0, use FIXED_ONE; if high_pitch==0 use low pitch; else choose in [low_pitch,high_pitch] */ 127 _fixed low_pitch, high_pitch; 128 129 /* filled in later */ 130 int16 permutations; 131 uint16 permutations_played; 132 int32 group_offset, single_length, total_length; // magic numbers necessary to load sounds 133 int32 sound_offsets[MAXIMUM_PERMUTATIONS_PER_SOUND]; // zero-based from group offset 134 135 uint32 last_played; // machine ticks 136 137 // Pointer to loaded sound and size of sound object pointed to 138 uint8 *ptr; 139 int32 size; 140 }; 141 const int SIZEOF_sound_definition = 64; 142 143 struct depth_curve_definition 144 { 145 int16 maximum_volume, maximum_volume_distance; 146 int16 minimum_volume, minimum_volume_distance; 147 }; 148 149 struct sound_behavior_definition 150 { 151 struct depth_curve_definition obstructed_curve, unobstructed_curve; 152 }; 153 154 /* ---------- sound behavior structures */ 155 156 static struct sound_behavior_definition sound_behavior_definitions[NUMBER_OF_SOUND_BEHAVIOR_DEFINITIONS]= 157 { 158 /* _sound_is_quiet */ 159 { 160 {0, 0, 0, 0}, /* obstructed quiet sounds make no sound */ 161 {MAXIMUM_SOUND_VOLUME, 0, 0, 5*WORLD_ONE}, 162 }, 163 164 /* _sound_is_normal */ 165 { 166 {MAXIMUM_SOUND_VOLUME/2, 0, 0, 7*WORLD_ONE}, 167 {MAXIMUM_SOUND_VOLUME, WORLD_ONE, 0, 10*WORLD_ONE}, 168 }, 169 170 /* _sound_is_loud */ 171 { 172 {(3*MAXIMUM_SOUND_VOLUME)/4, 0, 0, 10*WORLD_ONE}, 173 {MAXIMUM_SOUND_VOLUME, 2*WORLD_ONE, MAXIMUM_SOUND_VOLUME/8, 15*WORLD_ONE}, 174 } 175 }; 176 177 /* ---------- ambient sound definition structures */ 178 179 static struct ambient_sound_definition ambient_sound_definitions[NUMBER_OF_AMBIENT_SOUND_DEFINITIONS]= 180 { 181 {_snd_water}, 182 {_snd_sewage}, 183 {_snd_lava}, 184 {_snd_goo}, 185 {_snd_under_media}, 186 {_snd_wind}, 187 {_snd_waterfall}, 188 {_snd_siren}, 189 {_snd_fan}, 190 {_snd_spht_door}, 191 {_snd_spht_platform}, 192 {_snd_heavy_spht_door}, 193 {_snd_heavy_spht_platform}, 194 {_snd_light_machinery}, 195 {_snd_heavy_machinery}, 196 {_snd_transformer}, 197 {_snd_sparking_transformer}, 198 {_snd_machine_binder}, 199 {_snd_machine_bookpress}, 200 {_snd_machine_puncher}, 201 {_snd_electric}, 202 {_snd_alarm}, 203 {_snd_night_wind}, 204 {_snd_pfhor_door}, 205 {_snd_pfhor_platform}, 206 {_snd_alien_noise1}, 207 {_snd_alien_noise2}, 208 // LP addition: Marathon Infinity ambient sound 209 {_snd_alien_harmonics}, 210 }; 211 212 /* ---------- random sound definition structures */ 213 214 static struct random_sound_definition random_sound_definitions[NUMBER_OF_RANDOM_SOUND_DEFINITIONS]= 215 { 216 {_snd_water_drip}, 217 {_snd_surface_explosion}, 218 {_snd_underground_explosion}, 219 {_snd_owl}, 220 // LP addition: Marathon Infinity random sound 221 {_snd_creak}, 222 }; 223 224 /* ---------- sound definition structures */ 225 226 // #ifndef STATIC_DEFINITIONS 227 228 /* 229 #else 230 static struct sound_definition sound_definitions[NUMBER_OF_SOUND_DEFINITIONS]= 231 { 232 {10140, _sound_is_normal, _sound_does_not_self_abort}, // _snd_startup 233 234 {10000, _sound_is_normal}, // _snd_teleport_in 235 {10010, _sound_is_normal}, // _snd_teleport_out 236 {10020, _sound_is_loud, _sound_cannot_change_pitch}, // _snd_body_being_crunched 237 {NONE, _sound_is_normal}, // _snd_nuclear_hard_death 238 {10030, _sound_is_normal}, // _snd_absorbed 239 240 {NONE, _sound_is_normal}, // _snd_breathing 241 {10040, _sound_is_normal}, // _snd_oxygen_warning 242 {10050, _sound_is_normal}, // _snd_suffocation 243 244 // control panels 245 {10060, _sound_is_quiet}, // _snd_energy_refuel 246 {10070, _sound_is_quiet}, // _snd_oxygen_refuel 247 {10080, _sound_is_quiet}, // _snd_cant_toggle_switch 248 {10090, _sound_is_quiet}, // _snd_switch_on 249 {10100, _sound_is_quiet}, // _snd_switch_off 250 {10110, _sound_is_quiet}, // _snd_puzzle_switch 251 {10120, _sound_is_quiet}, // _snd_chip_insertion 252 {10130, _sound_is_quiet}, // _snd_pattern_buffer 253 {11280, _sound_is_loud}, // _snd_destroy_control_panel 254 255 {10150, _sound_is_quiet}, // _snd_adjust_volume 256 {10160, _sound_is_quiet}, // _snd_got_powerup 257 {10170, _sound_is_quiet}, // _snd_got_item 258 259 {11000, _sound_is_normal}, // _snd_bullet_ricochet 260 {11010, _sound_is_normal}, // _snd_metallic_ricochet 261 {11020, _sound_is_quiet}, // _snd_empty_gun 262 263 // s�pht doors and platforms 264 {12000, _sound_is_normal}, // _snd_spht_door_opening, 265 {12010, _sound_is_normal}, // _snd_spht_door_closing, 266 {12020, _sound_is_normal}, // _snd_spht_door_obstructed, 267 {12030, _sound_is_normal}, // _snd_spht_platform_starting, 268 {12040, _sound_is_normal}, // _snd_spht_platform_stopping, 269 270 {14540, _sound_is_normal}, // _snd_owl 271 {NONE, _sound_is_normal}, // 272 {NONE, _sound_is_normal}, // 273 274 {12080, _sound_is_normal}, // _snd_pfhor_platform_starting, 275 {12090, _sound_is_normal}, // _snd_pfhor_platform_stopping, 276 277 {11030, _sound_is_quiet}, // _snd_fist_hitting 278 279 // magnum 280 {11040, _sound_is_normal}, // _snd_magnum_firing 281 {11050, _sound_is_quiet}, // _snd_magnum_reloading 282 283 // assault rifle 284 {11060, _sound_is_normal}, // _snd_assault_rifle_firing 285 {11070, _sound_is_normal}, // _snd_grenade_launcher_firing 286 {11080, _sound_is_loud}, // _snd_grenade_exploding 287 {11090, _sound_is_normal}, // _snd_grenade_flyby 288 289 // fusion pistol 290 {11100, _sound_is_normal}, // _snd_fusion_firing 291 {11110, _sound_is_normal}, // _snd_fusion_exploding 292 {11120, _sound_is_normal}, // _snd_fusion_flyby 293 {11130, _sound_is_normal}, // _snd_fusion_charging 294 295 // rocket launcher 296 {11140, _sound_is_loud}, // _snd_rocket_exploding 297 {11150, _sound_is_normal}, // _snd_rocket_flyby 298 {11160, _sound_is_normal}, // _snd_rocket_firing 299 300 // flamethrower 301 {11170, _sound_is_normal}, // _snd_flamethrower 302 303 {11180, _sound_is_quiet, _sound_cannot_change_pitch}, // _snd_body_falling 304 {11190, _sound_is_quiet, _sound_cannot_change_pitch}, // _snd_body_exploding 305 {11200, _sound_is_normal, _sound_cannot_change_pitch}, // _snd_bullet_hitting_flesh 306 307 // 21300 fighter 308 {15300, _sound_is_normal}, // _snd_fighter_activate 309 {15310, _sound_is_normal}, // _snd_fighter_wail 310 {15320, _sound_is_normal}, // _snd_fighter_scream 311 {15330, _sound_is_normal}, // _snd_fighter_chatter 312 {15340, _sound_is_normal}, // _snd_fighter_swing 313 {15350, _sound_is_normal}, // _snd_fighter_hit 314 {15360, _sound_is_normal}, // _snd_fighter_flyby 315 316 // 21200 compiler 317 {15200, _sound_is_normal}, // _snd_compiler_attack 318 {15210, _sound_is_normal}, // _snd_compiler_death 319 {15220, _sound_is_normal}, // _snd_compiler_being_hit 320 {15230, _sound_is_normal}, // _snd_compiler_projectile_flyby 321 {15240, _sound_is_normal}, // _snd_compiler_projectile_hit 322 323 // 21100 cyborg 324 {15100, _sound_is_normal, 0, _fifty_percent}, // _snd_cyborg_moving, 325 {15110, _sound_is_normal}, // _snd_cyborg_attack, 326 {15120, _sound_is_normal}, // _snd_cyborg_hit, 327 {15130, _sound_is_loud}, // _snd_cyborg_death, 328 {15140, _sound_is_normal}, // _snd_cyborg_projectile_bounce, 329 {15150, _sound_is_normal}, // _snd_cyborg_projectile_hit, 330 {15160, _sound_is_normal}, // _snd_cyborg_projectile_flyby 331 332 // 21000 hummer 333 {15000, _sound_is_quiet}, // _snd_hummer_activate, 334 {15010, _sound_is_normal}, // _snd_hummer_start_attack, 335 {15020, _sound_is_normal}, // _snd_hummer_attack, 336 {15030, _sound_is_normal}, // _snd_hummer_dying, 337 {15040, _sound_is_loud}, // _snd_hummer_death, 338 {15050, _sound_is_normal}, // _snd_hummer_projectile_hit, 339 {15060, _sound_is_normal}, // _snd_hummer_projectile_flyby, 340 341 // bob 342 {15400, _sound_is_loud}, // _snd_human_wail 343 {15410, _sound_is_normal}, // _snd_human_scream 344 {15420, _sound_is_normal}, // _snd_human_hit 345 {15430, _sound_is_normal, _sound_cannot_be_restarted}, // _snd_human_chatter "they�re everywhere!" 346 {15440, _sound_is_normal, _sound_cannot_be_restarted}, // _snd_assimilated_human_chatter "thank god it�s you!" 347 {15450, _sound_is_normal, _sound_cannot_be_restarted, _seventy_percent}, // _snd_human_trash_talk "eat that!" 348 {15460, _sound_is_normal, _sound_cannot_be_restarted}, // _snd_human_apology "oops!" 349 {15470, _sound_is_normal, _sound_cannot_be_restarted}, // _snd_human_activation "they�re over here!" 350 {15480, _sound_is_normal, _sound_cannot_be_restarted, _fifty_percent}, // _snd_human_clear "out of the way!" 351 {15490, _sound_is_normal, _sound_cannot_be_restarted, _thirty_percent}, // _snd_human_stop_shooting_me_you_bastard 352 {15500, _sound_is_normal, _sound_cannot_be_restarted, _fifty_percent}, // _snd_human_area_secure 353 {15510, _sound_is_normal, _sound_cannot_be_restarted}, // _snd_kill_the_player 354 355 // looping ambient 356 {14000, _sound_is_normal, _sound_is_ambient}, // _snd_water 357 {14010, _sound_is_normal, _sound_is_ambient}, // _snd_sewage 358 {14020, _sound_is_normal, _sound_is_ambient}, // _snd_lava 359 {14030, _sound_is_normal, _sound_is_ambient}, // _snd_goo 360 {14040, _sound_is_normal, _sound_is_ambient}, // _snd_under_media 361 {14050, _sound_is_normal, _sound_is_ambient}, // _snd_wind 362 {14060, _sound_is_normal, _sound_is_ambient}, // _snd_waterfall 363 {14070, _sound_is_normal, _sound_is_ambient}, // _snd_siren, 364 {14080, _sound_is_normal, _sound_is_ambient}, // _snd_fan, 365 {14090, _sound_is_normal, _sound_is_ambient}, // _snd_spht_door 366 {14100, _sound_is_normal, _sound_is_ambient}, // _snd_spht_platform 367 {14120, _sound_is_normal, _sound_is_ambient}, // _snd_unused4 368 {14130, _sound_is_normal, _sound_is_ambient}, // _snd_heavy_spht_platform 369 {14140, _sound_is_normal, _sound_is_ambient}, // _snd_light_machinery 370 {14150, _sound_is_normal, _sound_is_ambient}, // _snd_heavy_machinery 371 {14160, _sound_is_normal, _sound_is_ambient}, // _snd_transformer 372 {14170, _sound_is_normal, _sound_is_ambient}, // _snd_sparking_transformer 373 374 // random ambient 375 {14500, _sound_is_normal}, // _snd_water_drip 376 377 // water 378 {19000, _sound_is_quiet, _sound_cannot_be_media_obstructed}, // _snd_walking_in_water 379 {19010, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_exit_water 380 {19020, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_enter_water 381 {19100, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_small_water_splash 382 {19110, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_medium_water_splash 383 {19120, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_large_water_splash 384 385 // lava 386 {19050, _sound_is_quiet, _sound_cannot_be_media_obstructed}, // _snd_walking_in_lava 387 {19060, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_enter_lava 388 {19070, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_exit_lava 389 {19130, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_small_lava_splash 390 {19140, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_medium_lava_splash 391 {19150, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_large_lava_splash 392 393 // sewage 394 {19160, _sound_is_quiet, _sound_cannot_be_media_obstructed}, // _snd_walking_in_sewage 395 {19180, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_exit_sewage 396 {19170, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_enter_sewage 397 {19190, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_small_sewage_splash 398 {19200, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_medium_sewage_splash 399 {19210, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_large_sewage_splash 400 401 // goo 402 {19220, _sound_is_quiet, _sound_cannot_be_media_obstructed}, // _snd_walking_in_goo 403 {19240, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_exit_goo 404 {19230, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_enter_goo 405 {19250, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_small_goo_splash 406 {19260, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_medium_goo_splash 407 {19270, _sound_is_normal, _sound_cannot_be_media_obstructed}, // _snd_large_goo_splash 408 409 {11290, _sound_is_normal}, // _snd_major_fusion_firing 410 {11330, _sound_is_quiet}, // _snd_major_fusion_charged 411 412 {11210, _sound_is_quiet}, // _snd_assault_rifle_reloading 413 {11270, _sound_is_quiet}, // _snd_assault_rifle_shell_casings 414 415 {11220, _sound_is_loud}, // _snd_shotgun_firing 416 {11230, _sound_is_quiet}, // _snd_shotgun_reloading 417 418 {11300, _sound_is_normal}, // _snd_ball_bounce 419 {11310, _sound_is_normal}, // _snd_you_are_it 420 {11320, _sound_is_normal}, // _snd_got_ball 421 422 {11240, _sound_is_quiet}, // _snd_computer_interface_logon 423 {11250, _sound_is_quiet}, // _snd_computer_interface_logout 424 {11260, _sound_is_quiet}, // _snd_computer_interface_page 425 426 {13000, _sound_is_normal, _sound_is_ambient}, // _snd_heavy_spht_door 427 {13010, _sound_is_normal}, // _snd_heavy_spht_door_opening 428 {13020, _sound_is_normal}, // _snd_heavy_spht_door_closing 429 {13030, _sound_is_normal}, // _snd_heavy_spht_door_open 430 {13040, _sound_is_normal}, // _snd_heavy_spht_door_closed 431 {13050, _sound_is_normal}, // _snd_heavy_spht_door_obstructed 432 433 {15600, _sound_is_normal}, // _snd_hunter_activate 434 {15610, _sound_is_normal}, // _snd_hunter_attack 435 {15620, _sound_is_normal}, // _snd_hunter_dying 436 {15630, _sound_is_loud}, // _snd_hunter_landing 437 {15640, _sound_is_loud}, // _snd_hunter_exploding 438 {15650, _sound_is_normal}, // _snd_hunter_projectile_hit 439 {15660, _sound_is_normal}, // _snd_hunter_projectile_flyby 440 441 {15700, _sound_is_normal}, // _snd_enforcer_activate 442 {15710, _sound_is_loud}, // _snd_enforcer_attack 443 {15720, _sound_is_normal}, // _snd_enforcer_projectile_hit 444 {15730, _sound_is_normal}, // _snd_enforcer_projectile_flyby 445 446 {15800, _sound_is_normal}, // _snd_yeti_melee_attack 447 {15810, _sound_is_normal}, // _snd_yeti_melee_attack_hit 448 {15820, _sound_is_normal}, // _snd_yeti_projectile_attack 449 {15860, _sound_is_normal}, // _snd_yeti_projectile_sewage_attack_hit 450 {15870, _sound_is_normal}, // _snd_yeti_projectile_sewage_flyby 451 {15830, _sound_is_normal}, // _snd_yeti_projectile_lava_attack_hit 452 {15840, _sound_is_normal}, // _snd_yeti_projectile_lava_flyby 453 {15850, _sound_is_normal}, // _snd_yeti_dying 454 455 {14180, _sound_is_normal, _sound_is_ambient}, // _snd_machine_binder 456 {14190, _sound_is_normal, _sound_is_ambient}, // _snd_machine_bookpress 457 {14200, _sound_is_normal, _sound_is_ambient}, // _snd_machine_puncher 458 {14210, _sound_is_normal, _sound_is_ambient}, // _snd_electric 459 {14220, _sound_is_normal, _sound_is_ambient}, // _snd_alarm 460 {14230, _sound_is_normal, _sound_is_ambient}, // _snd_night_wind 461 462 {14510, _sound_is_quiet}, // _snd_surface_explosion 463 {14520, _sound_is_quiet}, // _snd_underground_explosion 464 465 {16000, _sound_is_normal}, // _snd_defender_attack 466 {16010, _sound_is_normal}, // _snd_defender_hit 467 {16020, _sound_is_normal}, // _snd_defender_flyby 468 {16030, _sound_is_normal}, // _snd_defender_being_hit 469 {16040, _sound_is_loud}, // _snd_defender_exploding 470 471 {17000, _sound_is_normal, 0, _always, 3*FIXED_ONE/4, 3*FIXED_ONE/2}, // _snd_tick_chatter 472 {17010, _sound_is_normal}, // _snd_tick_falling 473 {17020, _sound_is_quiet}, // _snd_tick_flapping 474 {17030, _sound_is_loud}, // _snd_tick_exploding 475 476 {14530, _sound_is_normal}, // _snd_ceiling_lamp_exploding 477 478 {14545, _sound_is_normal}, // _snd_pfhor_platform_starting 479 {14550, _sound_is_normal}, // _snd_pfhor_platform_stopping 480 {14560, _sound_is_normal, _sound_is_ambient}, // _ambient_snd_pfhor_platform 481 482 {14570, _sound_is_normal}, // _snd_pfhor_door_opening 483 {14580, _sound_is_normal}, // _snd_pfhor_door_closing 484 {14590, _sound_is_normal}, // _snd_pfhor_door_obstructed 485 {14600, _sound_is_normal, _sound_is_ambient}, // _ambient_snd_pfhor_door 486 487 {14610, _sound_is_quiet}, // _snd_pfhor_switch_off 488 {14620, _sound_is_quiet}, // _snd_pfhor_switch_on 489 490 {14630, _sound_is_loud}, // _snd_juggernaut_firing 491 {14640, _sound_is_loud}, // _snd_juggernaut_warning 492 {14650, _sound_is_loud}, // _snd_juggernaut_exploding 493 {14660, _sound_is_loud}, // _snd_juggernaut_preparing_to_fire 494 495 {14670, _sound_is_loud}, // _snd_enforcer_exploding 496 497 {14240, _sound_is_normal, _sound_is_ambient}, // _snd_alien_noise1 498 {14250, _sound_is_normal, _sound_is_ambient}, // _snd_alien_noise2 499 }; 500 */ 501 502 #endif 503 504