1 /* Emacs style mode select -*- C++ -*- 2 *----------------------------------------------------------------------------- 3 * 4 * 5 * PrBoom: a Doom port merged with LxDoom and LSDLDoom 6 * based on BOOM, a modified and improved DOOM engine 7 * Copyright (C) 1999 by 8 * id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman 9 * Copyright (C) 1999-2000 by 10 * Jess Haas, Nicolas Kalkhof, Colin Phipps, Florian Schulze 11 * Copyright 2005, 2006 by 12 * Florian Schulze, Colin Phipps, Neil Stevens, Andrey Budko 13 * 14 * This program is free software; you can redistribute it and/or 15 * modify it under the terms of the GNU General Public License 16 * as published by the Free Software Foundation; either version 2 17 * of the License, or (at your option) any later version. 18 * 19 * This program is distributed in the hope that it will be useful, 20 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * GNU General Public License for more details. 23 * 24 * You should have received a copy of the GNU General Public License 25 * along with this program; if not, write to the Free Software 26 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 27 * 02111-1307, USA. 28 * 29 * DESCRIPTION: 30 * Created by the sound utility written by Dave Taylor. 31 * Kept as a sample, DOOM2 sounds. Frozen. 32 * 33 *-----------------------------------------------------------------------------*/ 34 35 #ifndef __SOUNDS__ 36 #define __SOUNDS__ 37 38 // 39 // SoundFX struct. 40 // 41 42 struct sfxinfo_struct; 43 44 typedef struct sfxinfo_struct sfxinfo_t; 45 46 struct sfxinfo_struct { 47 48 // up to 6-character name 49 const char *name; // CPhipps - const 50 51 // Sfx singularity (only one at a time) 52 int singularity; 53 54 // Sfx priority 55 int priority; 56 57 // referenced sound if a link 58 sfxinfo_t *link; 59 60 // pitch if a link 61 int pitch; 62 63 // volume if a link 64 int volume; 65 66 // sound data 67 void *data; 68 69 // this is checked every second to see if sound 70 // can be thrown out (if 0, then decrement, if -1, 71 // then throw out, if > 0, then it is in use) 72 int usefulness; 73 74 // lump number of sfx 75 int lumpnum; 76 }; 77 78 // 79 // MusicInfo struct. 80 // 81 82 typedef struct { 83 // up to 6-character name 84 const char *name; // CPhipps - const 85 86 // lump number of music 87 int lumpnum; 88 89 /* music data - cphipps 4/11 made const void* */ 90 const void *data; 91 92 // music handle once registered 93 int handle; 94 } musicinfo_t; 95 96 // the complete set of sound effects 97 extern sfxinfo_t S_sfx[]; 98 99 // the complete set of music 100 extern musicinfo_t S_music[]; 101 102 /* Identifiers for all music in game. */ 103 104 typedef enum 105 { 106 #ifdef HEXEN 107 mus_e1m1, 108 mus_e1m2, 109 mus_e1m3, 110 mus_e1m4, 111 mus_e1m5, 112 mus_e1m6, 113 mus_e1m7, 114 mus_e1m8, 115 mus_e1m9, 116 mus_e2m1, 117 mus_e2m2, 118 mus_e2m3, 119 mus_e2m4, 120 mus_e2m5, 121 mus_e2m6, 122 mus_e2m7, 123 mus_e2m8, 124 mus_e2m9, 125 mus_e3m1, 126 mus_e3m2, 127 mus_e3m3, 128 mus_e3m4, 129 mus_e3m5, 130 mus_e3m6, 131 mus_e3m7, 132 mus_e3m8, 133 mus_e3m9, 134 mus_e4m1, 135 mus_titl, 136 mus_intr, 137 mus_cptd, 138 #else 139 mus_None, 140 mus_e1m1, 141 mus_e1m2, 142 mus_e1m3, 143 mus_e1m4, 144 mus_e1m5, 145 mus_e1m6, 146 mus_e1m7, 147 mus_e1m8, 148 mus_e1m9, 149 mus_e2m1, 150 mus_e2m2, 151 mus_e2m3, 152 mus_e2m4, 153 mus_e2m5, 154 mus_e2m6, 155 mus_e2m7, 156 mus_e2m8, 157 mus_e2m9, 158 mus_e3m1, 159 mus_e3m2, 160 mus_e3m3, 161 mus_e3m4, 162 mus_e3m5, 163 mus_e3m6, 164 mus_e3m7, 165 mus_e3m8, 166 mus_e3m9, 167 mus_e4m1, // Ultimate Doom 168 mus_e4m2, 169 mus_e4m3, 170 mus_e4m4, 171 mus_e4m5, 172 mus_e4m6, 173 mus_e4m7, 174 mus_e4m8, 175 mus_e4m9, 176 mus_e5m1, // SIGIL 177 mus_e5m2, 178 mus_e5m3, 179 mus_e5m4, 180 mus_e5m5, 181 mus_e5m6, 182 mus_e5m7, 183 mus_e5m8, 184 mus_e5m9, 185 mus_inter, 186 mus_intro, 187 mus_bunny, 188 mus_victor, 189 mus_introa, 190 mus_runnin, 191 mus_stalks, 192 mus_countd, 193 mus_betwee, 194 mus_doom, 195 mus_the_da, 196 mus_shawn, 197 mus_ddtblu, 198 mus_in_cit, 199 mus_dead, 200 mus_stlks2, 201 mus_theda2, 202 mus_doom2, 203 mus_ddtbl2, 204 mus_runni2, 205 mus_dead2, 206 mus_stlks3, 207 mus_romero, 208 mus_shawn2, 209 mus_messag, 210 mus_count2, 211 mus_ddtbl3, 212 mus_ampie, 213 mus_theda3, 214 mus_adrian, 215 mus_messg2, 216 mus_romer2, 217 mus_tense, 218 mus_shawn3, 219 mus_openin, 220 mus_evil, 221 mus_ultima, 222 mus_read_m, 223 mus_dm2ttl, 224 mus_dm2int, 225 #endif 226 NUMMUSIC 227 } musicenum_t; 228 229 /* Identifiers for all sfx in game. */ 230 231 typedef enum 232 { 233 #ifdef HEXEN 234 SFX_NONE, 235 SFX_PLAYER_FIGHTER_NORMAL_DEATH, // class specific death screams 236 SFX_PLAYER_FIGHTER_CRAZY_DEATH, 237 SFX_PLAYER_FIGHTER_EXTREME1_DEATH, 238 SFX_PLAYER_FIGHTER_EXTREME2_DEATH, 239 SFX_PLAYER_FIGHTER_EXTREME3_DEATH, 240 SFX_PLAYER_FIGHTER_BURN_DEATH, 241 SFX_PLAYER_CLERIC_NORMAL_DEATH, 242 SFX_PLAYER_CLERIC_CRAZY_DEATH, 243 SFX_PLAYER_CLERIC_EXTREME1_DEATH, 244 SFX_PLAYER_CLERIC_EXTREME2_DEATH, 245 SFX_PLAYER_CLERIC_EXTREME3_DEATH, 246 SFX_PLAYER_CLERIC_BURN_DEATH, 247 SFX_PLAYER_MAGE_NORMAL_DEATH, 248 SFX_PLAYER_MAGE_CRAZY_DEATH, 249 SFX_PLAYER_MAGE_EXTREME1_DEATH, 250 SFX_PLAYER_MAGE_EXTREME2_DEATH, 251 SFX_PLAYER_MAGE_EXTREME3_DEATH, 252 SFX_PLAYER_MAGE_BURN_DEATH, 253 SFX_PLAYER_FIGHTER_PAIN, 254 SFX_PLAYER_CLERIC_PAIN, 255 SFX_PLAYER_MAGE_PAIN, 256 SFX_PLAYER_FIGHTER_GRUNT, 257 SFX_PLAYER_CLERIC_GRUNT, 258 SFX_PLAYER_MAGE_GRUNT, 259 SFX_PLAYER_LAND, 260 SFX_PLAYER_POISONCOUGH, 261 SFX_PLAYER_FIGHTER_FALLING_SCREAM, // class specific falling screams 262 SFX_PLAYER_CLERIC_FALLING_SCREAM, 263 SFX_PLAYER_MAGE_FALLING_SCREAM, 264 SFX_PLAYER_FALLING_SPLAT, 265 SFX_PLAYER_FIGHTER_FAILED_USE, 266 SFX_PLAYER_CLERIC_FAILED_USE, 267 SFX_PLAYER_MAGE_FAILED_USE, 268 SFX_PLATFORM_START, 269 SFX_PLATFORM_STARTMETAL, 270 SFX_PLATFORM_STOP, 271 SFX_STONE_MOVE, 272 SFX_METAL_MOVE, 273 SFX_DOOR_OPEN, 274 SFX_DOOR_LOCKED, 275 SFX_DOOR_METAL_OPEN, 276 SFX_DOOR_METAL_CLOSE, 277 SFX_DOOR_LIGHT_CLOSE, 278 SFX_DOOR_HEAVY_CLOSE, 279 SFX_DOOR_CREAK, 280 SFX_PICKUP_WEAPON, 281 SFX_PICKUP_ARTIFACT, 282 SFX_PICKUP_KEY, 283 SFX_PICKUP_ITEM, 284 SFX_PICKUP_PIECE, 285 SFX_WEAPON_BUILD, 286 SFX_ARTIFACT_USE, 287 SFX_ARTIFACT_BLAST, 288 SFX_TELEPORT, 289 SFX_THUNDER_CRASH, 290 SFX_FIGHTER_PUNCH_MISS, 291 SFX_FIGHTER_PUNCH_HITTHING, 292 SFX_FIGHTER_PUNCH_HITWALL, 293 SFX_FIGHTER_GRUNT, 294 SFX_FIGHTER_AXE_HITTHING, 295 SFX_FIGHTER_HAMMER_MISS, 296 SFX_FIGHTER_HAMMER_HITTHING, 297 SFX_FIGHTER_HAMMER_HITWALL, 298 SFX_FIGHTER_HAMMER_CONTINUOUS, 299 SFX_FIGHTER_HAMMER_EXPLODE, 300 SFX_FIGHTER_SWORD_FIRE, 301 SFX_FIGHTER_SWORD_EXPLODE, 302 SFX_CLERIC_CSTAFF_FIRE, 303 SFX_CLERIC_CSTAFF_EXPLODE, 304 SFX_CLERIC_CSTAFF_HITTHING, 305 SFX_CLERIC_FLAME_FIRE, 306 SFX_CLERIC_FLAME_EXPLODE, 307 SFX_CLERIC_FLAME_CIRCLE, 308 SFX_MAGE_WAND_FIRE, 309 SFX_MAGE_LIGHTNING_FIRE, 310 SFX_MAGE_LIGHTNING_ZAP, 311 SFX_MAGE_LIGHTNING_CONTINUOUS, 312 SFX_MAGE_LIGHTNING_READY, 313 SFX_MAGE_SHARDS_FIRE, 314 SFX_MAGE_SHARDS_EXPLODE, 315 SFX_MAGE_STAFF_FIRE, 316 SFX_MAGE_STAFF_EXPLODE, 317 SFX_SWITCH1, 318 SFX_SWITCH2, 319 SFX_SERPENT_SIGHT, 320 SFX_SERPENT_ACTIVE, 321 SFX_SERPENT_PAIN, 322 SFX_SERPENT_ATTACK, 323 SFX_SERPENT_MELEEHIT, 324 SFX_SERPENT_DEATH, 325 SFX_SERPENT_BIRTH, 326 SFX_SERPENTFX_CONTINUOUS, 327 SFX_SERPENTFX_HIT, 328 SFX_POTTERY_EXPLODE, 329 SFX_DRIP, 330 SFX_CENTAUR_SIGHT, 331 SFX_CENTAUR_ACTIVE, 332 SFX_CENTAUR_PAIN, 333 SFX_CENTAUR_ATTACK, 334 SFX_CENTAUR_DEATH, 335 SFX_CENTAURLEADER_ATTACK, 336 SFX_CENTAUR_MISSILE_EXPLODE, 337 SFX_WIND, 338 SFX_BISHOP_SIGHT, 339 SFX_BISHOP_ACTIVE, 340 SFX_BISHOP_PAIN, 341 SFX_BISHOP_ATTACK, 342 SFX_BISHOP_DEATH, 343 SFX_BISHOP_MISSILE_EXPLODE, 344 SFX_BISHOP_BLUR, 345 SFX_DEMON_SIGHT, 346 SFX_DEMON_ACTIVE, 347 SFX_DEMON_PAIN, 348 SFX_DEMON_ATTACK, 349 SFX_DEMON_MISSILE_FIRE, 350 SFX_DEMON_MISSILE_EXPLODE, 351 SFX_DEMON_DEATH, 352 SFX_WRAITH_SIGHT, 353 SFX_WRAITH_ACTIVE, 354 SFX_WRAITH_PAIN, 355 SFX_WRAITH_ATTACK, 356 SFX_WRAITH_MISSILE_FIRE, 357 SFX_WRAITH_MISSILE_EXPLODE, 358 SFX_WRAITH_DEATH, 359 SFX_PIG_ACTIVE1, 360 SFX_PIG_ACTIVE2, 361 SFX_PIG_PAIN, 362 SFX_PIG_ATTACK, 363 SFX_PIG_DEATH, 364 SFX_MAULATOR_SIGHT, 365 SFX_MAULATOR_ACTIVE, 366 SFX_MAULATOR_PAIN, 367 SFX_MAULATOR_HAMMER_SWING, 368 SFX_MAULATOR_HAMMER_HIT, 369 SFX_MAULATOR_MISSILE_HIT, 370 SFX_MAULATOR_DEATH, 371 SFX_FREEZE_DEATH, 372 SFX_FREEZE_SHATTER, 373 SFX_ETTIN_SIGHT, 374 SFX_ETTIN_ACTIVE, 375 SFX_ETTIN_PAIN, 376 SFX_ETTIN_ATTACK, 377 SFX_ETTIN_DEATH, 378 SFX_FIRED_SPAWN, 379 SFX_FIRED_ACTIVE, 380 SFX_FIRED_PAIN, 381 SFX_FIRED_ATTACK, 382 SFX_FIRED_MISSILE_HIT, 383 SFX_FIRED_DEATH, 384 SFX_ICEGUY_SIGHT, 385 SFX_ICEGUY_ACTIVE, 386 SFX_ICEGUY_ATTACK, 387 SFX_ICEGUY_FX_EXPLODE, 388 SFX_SORCERER_SIGHT, 389 SFX_SORCERER_ACTIVE, 390 SFX_SORCERER_PAIN, 391 SFX_SORCERER_SPELLCAST, 392 SFX_SORCERER_BALLWOOSH, 393 SFX_SORCERER_DEATHSCREAM, 394 SFX_SORCERER_BISHOPSPAWN, 395 SFX_SORCERER_BALLPOP, 396 SFX_SORCERER_BALLBOUNCE, 397 SFX_SORCERER_BALLEXPLODE, 398 SFX_SORCERER_BIGBALLEXPLODE, 399 SFX_SORCERER_HEADSCREAM, 400 SFX_DRAGON_SIGHT, 401 SFX_DRAGON_ACTIVE, 402 SFX_DRAGON_WINGFLAP, 403 SFX_DRAGON_ATTACK, 404 SFX_DRAGON_PAIN, 405 SFX_DRAGON_DEATH, 406 SFX_DRAGON_FIREBALL_EXPLODE, 407 SFX_KORAX_SIGHT, 408 SFX_KORAX_ACTIVE, 409 SFX_KORAX_PAIN, 410 SFX_KORAX_ATTACK, 411 SFX_KORAX_COMMAND, 412 SFX_KORAX_DEATH, 413 SFX_KORAX_STEP, 414 SFX_THRUSTSPIKE_RAISE, 415 SFX_THRUSTSPIKE_LOWER, 416 SFX_STAINEDGLASS_SHATTER, 417 SFX_FLECHETTE_BOUNCE, 418 SFX_FLECHETTE_EXPLODE, 419 SFX_LAVA_MOVE, 420 SFX_WATER_MOVE, 421 SFX_ICE_STARTMOVE, 422 SFX_EARTH_STARTMOVE, 423 SFX_WATER_SPLASH, 424 SFX_LAVA_SIZZLE, 425 SFX_SLUDGE_GLOOP, 426 SFX_CHOLY_FIRE, 427 SFX_SPIRIT_ACTIVE, 428 SFX_SPIRIT_ATTACK, 429 SFX_SPIRIT_DIE, 430 SFX_VALVE_TURN, 431 SFX_ROPE_PULL, 432 SFX_FLY_BUZZ, 433 SFX_IGNITE, 434 SFX_PUZZLE_SUCCESS, 435 SFX_PUZZLE_FAIL_FIGHTER, 436 SFX_PUZZLE_FAIL_CLERIC, 437 SFX_PUZZLE_FAIL_MAGE, 438 SFX_EARTHQUAKE, 439 SFX_BELLRING, 440 SFX_TREE_BREAK, 441 SFX_TREE_EXPLODE, 442 SFX_SUITOFARMOR_BREAK, 443 SFX_POISONSHROOM_PAIN, 444 SFX_POISONSHROOM_DEATH, 445 SFX_AMBIENT1, 446 SFX_AMBIENT2, 447 SFX_AMBIENT3, 448 SFX_AMBIENT4, 449 SFX_AMBIENT5, 450 SFX_AMBIENT6, 451 SFX_AMBIENT7, 452 SFX_AMBIENT8, 453 SFX_AMBIENT9, 454 SFX_AMBIENT10, 455 SFX_AMBIENT11, 456 SFX_AMBIENT12, 457 SFX_AMBIENT13, 458 SFX_AMBIENT14, 459 SFX_AMBIENT15, 460 SFX_STARTUP_TICK, 461 SFX_SWITCH_OTHERLEVEL, 462 SFX_RESPAWN, 463 SFX_KORAX_VOICE_1, 464 SFX_KORAX_VOICE_2, 465 SFX_KORAX_VOICE_3, 466 SFX_KORAX_VOICE_4, 467 SFX_KORAX_VOICE_5, 468 SFX_KORAX_VOICE_6, 469 SFX_KORAX_VOICE_7, 470 SFX_KORAX_VOICE_8, 471 SFX_KORAX_VOICE_9, 472 SFX_BAT_SCREAM, 473 SFX_CHAT, 474 SFX_MENU_MOVE, 475 SFX_CLOCK_TICK, 476 SFX_FIREBALL, 477 SFX_PUPPYBEAT, 478 SFX_MYSTICINCANT, 479 #else 480 sfx_None, 481 sfx_pistol, 482 sfx_shotgn, 483 sfx_sgcock, 484 sfx_dshtgn, 485 sfx_dbopn, 486 sfx_dbcls, 487 sfx_dbload, 488 sfx_plasma, 489 sfx_bfg, 490 sfx_sawup, 491 sfx_sawidl, 492 sfx_sawful, 493 sfx_sawhit, 494 sfx_rlaunc, 495 sfx_rxplod, 496 sfx_firsht, 497 sfx_firxpl, 498 sfx_pstart, 499 sfx_pstop, 500 sfx_doropn, 501 sfx_dorcls, 502 sfx_stnmov, 503 sfx_swtchn, 504 sfx_swtchx, 505 sfx_plpain, 506 sfx_dmpain, 507 sfx_popain, 508 sfx_vipain, 509 sfx_mnpain, 510 sfx_pepain, 511 sfx_slop, 512 sfx_itemup, 513 sfx_wpnup, 514 sfx_oof, 515 sfx_telept, 516 sfx_posit1, 517 sfx_posit2, 518 sfx_posit3, 519 sfx_bgsit1, 520 sfx_bgsit2, 521 sfx_sgtsit, 522 sfx_cacsit, 523 sfx_brssit, 524 sfx_cybsit, 525 sfx_spisit, 526 sfx_bspsit, 527 sfx_kntsit, 528 sfx_vilsit, 529 sfx_mansit, 530 sfx_pesit, 531 sfx_sklatk, 532 sfx_sgtatk, 533 sfx_skepch, 534 sfx_vilatk, 535 sfx_claw, 536 sfx_skeswg, 537 sfx_pldeth, 538 sfx_pdiehi, 539 sfx_podth1, 540 sfx_podth2, 541 sfx_podth3, 542 sfx_bgdth1, 543 sfx_bgdth2, 544 sfx_sgtdth, 545 sfx_cacdth, 546 sfx_skldth, 547 sfx_brsdth, 548 sfx_cybdth, 549 sfx_spidth, 550 sfx_bspdth, 551 sfx_vildth, 552 sfx_kntdth, 553 sfx_pedth, 554 sfx_skedth, 555 sfx_posact, 556 sfx_bgact, 557 sfx_dmact, 558 sfx_bspact, 559 sfx_bspwlk, 560 sfx_vilact, 561 sfx_noway, 562 sfx_barexp, 563 sfx_punch, 564 sfx_hoof, 565 sfx_metal, 566 sfx_chgun, 567 sfx_tink, 568 sfx_bdopn, 569 sfx_bdcls, 570 sfx_itmbk, 571 sfx_flame, 572 sfx_flamst, 573 sfx_getpow, 574 sfx_bospit, 575 sfx_boscub, 576 sfx_bossit, 577 sfx_bospn, 578 sfx_bosdth, 579 sfx_manatk, 580 sfx_mandth, 581 sfx_sssit, 582 sfx_ssdth, 583 sfx_keenpn, 584 sfx_keendt, 585 sfx_skeact, 586 sfx_skesit, 587 sfx_skeatk, 588 sfx_radio, 589 590 /* killough 11/98: dog sounds */ 591 sfx_dgsit, 592 sfx_dgatk, 593 sfx_dgact, 594 sfx_dgdth, 595 sfx_dgpain, 596 597 //e6y 598 sfx_secret, 599 sfx_gibdth, 600 #endif 601 NUMSFX 602 } sfxenum_t; 603 604 #endif 605