1 /* 2 Copyright (C) 1994-1995 Apogee Software, Ltd. 3 4 This program is free software; you can redistribute it and/or 5 modify it under the terms of the GNU General Public License 6 as published by the Free Software Foundation; either version 2 7 of the License, or (at your option) any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 13 See the GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program; if not, write to the Free Software 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 19 */ 20 #ifndef _rt_sound_public 21 #define _rt_sound_public 22 23 #include "music.h" 24 #include "develop.h" 25 26 typedef enum { 27 28 // MENU SOUNDS 29 30 SD_MENUFLIP, 31 SD_ESCPRESSEDSND, 32 SD_MOVECURSORSND, 33 SD_SELECTSND, 34 SD_WARNINGBOXSND, 35 SD_INFOBOXSND, 36 SD_QUESTIONBOXSND, 37 SD_NOPESND, 38 SD_QUIT1SND, 39 SD_QUIT2SND, 40 SD_QUIT3SND, 41 SD_QUIT4SND, 42 SD_QUIT5SND, 43 SD_QUIT6SND, 44 SD_QUIT7SND, 45 46 47 // GAME SOUNDS 48 49 SD_LEVELSTARTSND, 50 SD_LEVELDONESND, 51 SD_GAMEOVERSND, 52 53 // LEVEL END SCREEN 54 55 SD_ENDBONUS1SND, 56 SD_NOBONUSSND, 57 SD_PERCENT100SND, 58 59 // PLAYER SOUNDS 60 61 SD_HITWALLSND, 62 SD_SELECTWPNSND, 63 SD_NOWAYSND, 64 SD_DONOTHINGSND, 65 SD_NOITEMSND, 66 SD_PLAYERDYINGSND, 67 68 SD_PLAYERTCDEATHSND, 69 SD_PLAYERTBDEATHSND, 70 SD_PLAYERDWDEATHSND, 71 SD_PLAYERLNDEATHSND, 72 SD_PLAYERIPFDEATHSND, 73 SD_PLAYERTCHURTSND, 74 SD_PLAYERTBHURTSND, 75 SD_PLAYERDWHURTSND, 76 SD_PLAYERLNHURTSND, 77 SD_PLAYERIPFHURTSND, 78 SD_PLAYERTCSND, 79 SD_PLAYERTBSND, 80 SD_PLAYERDWSND, 81 SD_PLAYERLNSND, 82 SD_PLAYERIPFSND, 83 // SD_WALK1SND, 84 // SD_WALK2SND, 85 SD_PLAYERBURNEDSND, 86 SD_PLAYERLANDSND, 87 SD_PLAYERCOUGHMSND, 88 SD_PLAYERCOUGHFSND, 89 SD_NETWIGGLESND, 90 SD_NETFALLSND, 91 92 // PLAYER WEAPONS 93 94 SD_ATKPISTOLSND, 95 SD_ATKTWOPISTOLSND, 96 SD_ATKMP40SND, 97 SD_RICOCHET1SND, 98 SD_RICOCHET2SND, 99 SD_RICOCHET3SND, 100 SD_BAZOOKAFIRESND, 101 SD_FIREBOMBFIRESND, 102 SD_HEATSEEKFIRESND, 103 SD_DRUNKFIRESND, 104 SD_FLAMEWALLFIRESND, 105 SD_FLAMEWALLSND, 106 SD_SPLITFIRESND, 107 SD_SPLITSND, 108 SD_GRAVBUILDSND, 109 SD_GRAVFIRESND, 110 SD_GRAVSND, 111 SD_GRAVHITSND, 112 SD_FIREHITSND, 113 SD_MISSILEFLYSND, 114 SD_MISSILEHITSND, 115 SD_EXCALIBOUNCESND, 116 SD_EXCALISWINGSND, 117 SD_EXCALIHITSND, 118 SD_EXCALIBUILDSND, 119 SD_EXCALIBLASTSND, 120 SD_GODMODEFIRESND, 121 SD_GODMODE1SND, 122 SD_GODMODE2SND, 123 SD_GODMODE3SND, 124 SD_LOSEMODESND, 125 SD_DOGMODEPANTSND, 126 SD_DOGMODEBITE1SND, 127 SD_DOGMODEBITE2SND, 128 SD_DOGMODELICKSND, 129 SD_DOGMODEBLASTSND, 130 SD_DOGMODEPREPBLASTSND, 131 SD_DOGMANSND, 132 SD_DOGWOMANSND, 133 SD_GODMANSND, 134 SD_GODWOMANSND, 135 SD_FLYINGSND, 136 137 // PLAYER-CAUSED SOUNDS 138 139 SD_GLASSBREAKSND, 140 SD_ITEMBLOWSND, 141 SD_BONUSBARRELSND, 142 SD_TOUCHPLATESND, 143 SD_BADTOUCHSND, 144 SD_EXPLODEFLOORSND, 145 SD_EXPLODESND, 146 SD_GASSTARTSND, 147 SD_GASHISSSND, 148 SD_GASENDSND, 149 SD_GASMASKSND, 150 151 // GET ITEM SOUNDS 152 153 SD_GETKEYSND, 154 SD_GETBONUSSND, 155 SD_GETHEALTH1SND, 156 SD_GETHEALTH2SND, 157 SD_COOKHEALTHSND, 158 159 SD_GETWEAPONSND, 160 SD_GETKNIFESND, 161 SD_GETGODSND, 162 SD_GETDOGSND, 163 SD_GETFLEETSND, 164 SD_GETELASTSND, 165 SD_GETSHROOMSSND, 166 SD_GETBVESTSND, 167 SD_GETAVESTSND, 168 SD_GETMASKSND, 169 SD_GETBATSND, 170 SD_GETHEADSND, 171 172 SD_GET1UPSND, 173 SD_GET3UPSND, 174 SD_RESPAWNSND, 175 SD_PLAYERSPAWNSND, 176 177 // ACTOR SOUNDS 178 179 SD_LOWGUARD1SEESND, 180 SD_LOWGUARD1ASEESND, 181 SD_LOWGUARD1SEE3SND, 182 SD_LOWGUARD2SEESND, 183 SD_LOWGUARD2ASEESND, 184 SD_LOWGUARD2SEE3SND, 185 SD_LOWGUARDFIRESND, 186 SD_LOWGUARDOUCHSND, 187 SD_LOWGUARD1DIESND, 188 SD_LOWGUARD2DIESND, 189 SD_SNEAKYSPRINGMSND, 190 SD_SNEAKYSPRINGFSND, 191 192 SD_HIGHGUARD1SEESND, 193 SD_HIGHGUARD2SEESND, 194 SD_HIGHGUARDFIRESND, 195 SD_HIGHGUARDOUCHSND, 196 SD_HIGHGUARDDIESND, 197 198 SD_OVERP1SEESND, 199 SD_OVERP2SEESND, 200 SD_OVERPFIRESND, 201 SD_OVERPNETSND, 202 SD_OVERPOUCHSND, 203 SD_OVERPDIESND, 204 205 SD_STRIKE1SEESND, 206 SD_STRIKE2SEESND, 207 SD_STRIKEFIRESND, 208 SD_STRIKEROLLSND, 209 SD_STRIKEOUCHSND, 210 SD_STRIKEDIESND, 211 212 SD_BLITZ1SEESND, 213 SD_BLITZ2SEESND, 214 SD_BLITZFIRESND, 215 SD_BLITZSTEALSND, 216 SD_BLITZOUCHSND, 217 SD_BLITZDIESND, 218 SD_BLITZPLEADSND, 219 SD_BLITZPLEAD1SND, 220 SD_BLITZPLEAD2SND, 221 222 SD_ENFORCERSEESND, 223 SD_ENFORCERFIRESND, 224 SD_ENFORCERTHROWSND, 225 SD_ENFORCEROUCHSND, 226 SD_ENFORCERDIESND, 227 228 SD_MONKSEESND, 229 SD_MONKGRABSND, 230 SD_MONKOUCHSND, 231 SD_MONKDIESND, 232 233 SD_FIREMONKSEESND, 234 SD_FIREMONKFIRESND, 235 SD_FIREMONKOUCHSND, 236 SD_FIREMONKDIESND, 237 238 SD_ROBOTSEESND, 239 SD_ROBOTFIRESND, 240 SD_ROBOTDIESND, 241 SD_ROBOTMOVESND, 242 243 SD_BALLISTIKRAFTSEESND, 244 SD_BALLISTIKRAFTFIRESND, 245 246 SD_DARIANSEESND, 247 SD_DARIANFIRESND, 248 SD_DARIANGONNAUSESND, 249 SD_DARIANUSESND, 250 SD_DARIANHIDESND, 251 SD_DARIANDIESND, 252 SD_DARIANSAY1, 253 SD_DARIANSAY2, 254 SD_DARIANSAY3, 255 256 SD_KRISTSEESND, 257 SD_KRISTFIRESND, 258 SD_KRISTMOTORSND, 259 SD_KRISTTURNSND, 260 SD_KRISTDROPSND, 261 SD_KRISTMINEBEEPSND, 262 SD_KRISTMINEHITSND, 263 SD_KRISTDIESND, 264 SD_KRISTSAY1, 265 SD_KRISTSAY2, 266 SD_KRISTSAY3, 267 268 SD_NMESEESND, 269 SD_NMEREADYSND, 270 SD_NMEFIRE1SND, 271 SD_NMEAPARTSND, 272 SD_NMEUFOSND, 273 SD_NMEDIESND, 274 275 SD_DARKMONKSEESND, 276 SD_DARKMONKFIRE1SND, 277 SD_DARKMONKFIRE2SND, 278 SD_DARKMONKFIRE3SND, 279 SD_DARKMONKFIRE4SND, 280 SD_DARKMONKRECHARGESND, 281 SD_DARKMONKFLOATSND, 282 SD_DARKMONKDIESND, 283 SD_DARKMONKSAY1, 284 SD_DARKMONKSAY2, 285 SD_DARKMONKSAY3, 286 287 SD_SNAKESEESND, 288 SD_SNAKEREADYSND, 289 SD_SNAKECHARGESND, 290 SD_SNAKEOUCHSND, 291 SD_SNAKEDIESND, 292 SD_SNAKESPITSND, 293 SD_SNAKESAY1, 294 SD_SNAKESAY2, 295 SD_SNAKESAY3, 296 297 SD_EMPLACEMENTSEESND, 298 SD_EMPLACEMENTFIRESND, 299 SD_BIGEMPLACEFIRESND, 300 301 302 // ENVIRONMENT SOUNDS 303 304 SD_OPENDOORSND, 305 SD_CLOSEDOORSND, 306 SD_DOORHITSND, 307 SD_FIRECHUTESND, 308 SD_FIREBALLSND, 309 SD_FIREBALLHITSND, 310 SD_BLADESPINSND, 311 SD_PUSHWALLSND, 312 SD_PUSHWALLHITSND, 313 SD_GOWALLSND, 314 SD_TURBOWALLSND, 315 SD_BOULDERHITSND, 316 SD_BOULDERROLLSND, 317 SD_BOULDERFALLSND, 318 SD_PITTRAPSND, 319 SD_FIREJETSND, 320 SD_ACTORSQUISHSND, 321 SD_ACTORBURNEDSND, 322 SD_ACTORSKELETONSND, 323 324 SD_SPEARSTABSND, 325 SD_CYLINDERMOVESND, 326 SD_ELEVATORONSND, 327 SD_ELEVATORENDSND, 328 329 SD_SPRINGBOARDSND, 330 SD_LIGHTNINGSND, 331 SD_WINDSND, 332 SD_WATERSND, 333 SD_BODYLANDSND, 334 SD_GIBSPLASHSND, 335 SD_ACTORLANDSND, 336 337 // SECRET SOUNDS 338 339 SD_DOPEFISHSND, 340 SD_YOUSUCKSND, 341 342 SD_SILLYMOVESND, 343 SD_SOUNDSELECTSND, 344 SD_SOUNDESCSND, 345 346 // REMOTE SOUNDS (shift number row) 347 348 SD_REMOTEM1SND, 349 SD_REMOTEM2SND, 350 SD_REMOTEM3SND, 351 SD_REMOTEM4SND, 352 SD_REMOTEM5SND, 353 SD_REMOTEM6SND, 354 SD_REMOTEM7SND, 355 SD_REMOTEM8SND, 356 SD_REMOTEM9SND, 357 SD_REMOTEM10SND, 358 359 SD_LASTSOUND, 360 361 MAXSOUNDS 362 363 } game_sounds; 364 365 366 typedef enum 367 { 368 // REMOTE SOUNDS (shift number row) 369 370 D_REMOTEM1SND, 371 D_REMOTEM2SND, 372 D_REMOTEM3SND, 373 D_REMOTEM4SND, 374 D_REMOTEM5SND, 375 D_REMOTEM6SND, 376 D_REMOTEM7SND, 377 D_REMOTEM8SND, 378 D_REMOTEM9SND, 379 D_REMOTEM10SND, 380 } remotesounds; 381 382 typedef enum { 383 MUSE_MENUFLIPSND, // 0 384 MUSE_ESCPRESSEDSND, // 1 385 MUSE_MOVECURSORSND, // 2 386 MUSE_SELECTSND, // 3 387 MUSE_WARNINGBOXSND, // 4 388 MUSE_INFOBOXSND, // 5 389 MUSE_QUESTIONBOXSND, // 6 390 MUSE_NOPESND, // 7 391 MUSE_LEVELSTARTSND, // 8 392 MUSE_LEVELENDSND, // 9 393 MUSE_GAMEOVERSND, // 10 394 MUSE_ENDBONUS1SND, // 11 395 MUSE_ENDBONUS2SND, // 12 396 MUSE_NOBONUSSND, // 13 397 MUSE_PERCENT100SND, // 14 398 MUSE_HITWALLSND, // 15 399 MUSE_SELECTWPNSND, // 16 400 MUSE_NOWAYSND, // 17 401 MUSE_DONOTHINGSND, // 18 402 MUSE_NOITEMSND, // 19 403 MUSE_PLAYERDYINGSND, // 20 404 MUSE_PLAYERDEATHSND, // 21 405 MUSE_PLAYERHURTSND, // 22 406 MUSE_PLAYERYESSND, // 23 407 MUSE_WALK1SND, // 24 408 MUSE_WALK2SND, // 25 409 MUSE_PLAYERLANDSND, // 26 410 MUSE_NETFALLSND, // 27 411 MUSE_ATKKNIFESND, // 28 412 MUSE_ATKPISTOLSND, // 29 413 MUSE_ATKMP40SND, // 30 414 MUSE_RICOCHETSND, // 31 415 MUSE_MISSILEFIRESND, // 32 416 MUSE_FLAMEWALLSND, // 33 417 MUSE_MISSILEHITSND, // 34 418 MUSE_WEAPONBUILDSND, // 35 419 MUSE_STABBERSND, // 36 420 MUSE_ENERGYFIRESND, // 37 421 MUSE_GAINMODESND, // 38 422 MUSE_LOSEMODESND, // 39 423 MUSE_DOGLICKSND, // 40 424 MUSE_DOGBITESND, // 41 425 MUSE_GLASSBREAKSND, // 42 426 MUSE_EXPLOSIONSND, // 43 427 MUSE_TOUCHPLATESND, // 44 428 MUSE_BADTOUCHSND, // 45 429 MUSE_SWITCHSND, // 46 430 MUSE_GETKEYSND, // 47 431 MUSE_GETBONUSSND, // 48 432 MUSE_GETHEALTHSND, // 49 433 MUSE_GETWEAPONSND, // 50 434 MUSE_GETMWEAPONSND, // 51 435 MUSE_GETPOWERUPSND, // 52 436 MUSE_GETPOWERDOWNSND, // 53 437 MUSE_GETARMORSND, // 54 438 MUSE_GETWEIRDSND, // 55 439 MUSE_GETLIFESND, // 56 440 MUSE_ACTORSEESND, // 57 441 MUSE_ACTORFIRESND, // 58 442 MUSE_ACTOROUCHSND, // 59 443 MUSE_ACTORDIESND, // 60 444 MUSE_ACTORTHROWSND, // 61 445 MUSE_ACTORROLLSND, // 62 446 MUSE_ACTORDOITSND, // 63 447 MUSE_ACTORUSESND, // 64 448 MUSE_BOSSSEESND, // 65 449 MUSE_BOSSOUCHSND, // 66 450 MUSE_BOSSDIESND, // 67 451 MUSE_BOSSDOSND, // 68 452 MUSE_BOSSBEEPSND, // 69 453 MUSE_BOSSHEYSND, // 70 454 MUSE_BOSSFIRESND, // 71 455 MUSE_BOSSWARNSND, // 72 456 MUSE_BOSSFIRE2SND, // 73 457 MUSE_EMPFIRESND, // 74 458 MUSE_OPENDOORSND, // 75 459 MUSE_CLOSEDOORSND, // 76 460 MUSE_SPINBLADESND, // 77 461 MUSE_PUSHWALLSND, // 78 462 MUSE_BOULDERSND, // 79 463 MUSE_PITTRAPSND, // 80 464 MUSE_FIREJETSND, // 81 465 MUSE_ACTORSQUISHSND, // 82 466 MUSE_CYLINDERHITSND, // 83 467 MUSE_ELEVATORSND, // 84 468 MUSE_SPRINGBOARDSND, // 85 469 MUSE_LASTSOUND=-1 470 } musesounds; 471 472 #define NUMCARDS 6 473 474 typedef enum { 475 fx_digital, 476 fx_muse 477 } fxtypes; 478 479 typedef enum { 480 ASS_UltraSound, 481 ASS_SoundBlaster, 482 ASS_SoundMan16, 483 ASS_PAS, 484 ASS_AWE32, 485 ASS_SoundScape, 486 ASS_WaveBlaster, 487 ASS_Adlib, 488 ASS_GeneralMidi, 489 ASS_SoundCanvas, 490 ASS_SoundSource, 491 ASS_TandySoundSource, 492 ASS_PCSpeaker, 493 ASS_Off 494 } ASSTypes; 495 496 497 extern int SD_Started; 498 499 int SD_SetupFXCard ( int * numvoices, int * numbits, int * numchannels); 500 int SD_Startup ( boolean bombonerror ); 501 int SD_Play ( int sndnum ); 502 void SD_Shutdown (void); 503 504 int SD_PlayPositionedSound ( int sndnum, int px, int py, int x, int y ); 505 int SD_PlaySoundRTP ( int sndnum, int x, int y ); 506 void SD_PanPositionedSound ( int handle, int px, int py, int x, int y ); 507 void SD_PanRTP ( int handle, int x, int y ); 508 void SD_SetPan ( int handle, int vol, int left, int right ); 509 int SD_Play3D ( int sndnum, int angle, int distance ); 510 int SD_PlayPitchedSound ( int sndnum, int volume, int pitch ); 511 void SD_SetSoundPitch ( int sndnum, int pitch ); 512 boolean SD_SoundOkay ( int sndnum ); 513 514 //*************************************************************************** 515 // 516 // SD_WaitSound - wait until a sound has finished 517 // 518 //*************************************************************************** 519 void SD_WaitSound ( int handle ); 520 521 //*************************************************************************** 522 // 523 // SD_StopSound 524 // 525 //*************************************************************************** 526 void SD_StopSound ( int handle ); 527 528 //*************************************************************************** 529 // 530 // SD_SoundActive 531 // 532 //*************************************************************************** 533 int SD_SoundActive ( int handle ); 534 535 //*************************************************************************** 536 // 537 // SD_StopAllSounds 538 // 539 //*************************************************************************** 540 void SD_StopAllSounds ( void ); 541 542 543 typedef enum { 544 song_gason, 545 song_bosssee, 546 song_bossdie, 547 song_endlevel, 548 song_dogend, 549 song_title, 550 song_apogee, 551 song_youwin, 552 song_level, 553 song_elevator, 554 song_secretmenu, 555 song_cinematic1, 556 song_cinematic2, 557 song_cinematic3, 558 song_gameover, 559 song_christmas, 560 song_snakechase, 561 song_menu 562 } songtypes; 563 564 565 566 void MU_Shutdown ( void ); 567 int MU_Startup ( boolean bombonerror ); 568 void MU_PlaySong ( int num ); 569 void MU_StopSong ( void ); 570 571 //*************************************************************************** 572 // 573 // MU_Continue 574 // 575 //*************************************************************************** 576 #define MU_Continue() MUSIC_Continue() 577 578 //*************************************************************************** 579 // 580 // MU_Pause 581 // 582 //*************************************************************************** 583 #define MU_Pause() MUSIC_Pause() 584 585 //*************************************************************************** 586 // 587 // MU_GetVolume 588 // 589 //*************************************************************************** 590 #define MU_GetVolume() MUSIC_GetVolume() 591 592 //*************************************************************************** 593 // 594 // MU_SetVolume 595 // 596 //*************************************************************************** 597 #define MU_SetVolume(x) MUSIC_SetVolume(x) 598 599 //*************************************************************************** 600 // 601 // MU_SongPlaying 602 // 603 //*************************************************************************** 604 #define MU_SongPlaying() MUSIC_SongPlaying() 605 606 //*************************************************************************** 607 // 608 // MU_FadeVolume 609 // 610 //*************************************************************************** 611 #define MU_FadeVolume(v,m) MUSIC_FadeVolume(v,m) 612 613 //*************************************************************************** 614 // 615 // MU_FadeActive 616 // 617 //*************************************************************************** 618 #define MU_FadeActive() MUSIC_FadeActive() 619 620 //*************************************************************************** 621 // 622 // MU_StopFade 623 // 624 //*************************************************************************** 625 #define MU_StopFade() MUSIC_StopFade() 626 627 628 //*************************************************************************** 629 // 630 // MU_FadeIn 631 // 632 //*************************************************************************** 633 void MU_FadeIn ( int num, int time ); 634 635 //*************************************************************************** 636 // 637 // MU_FadeOut 638 // 639 //*************************************************************************** 640 void MU_FadeOut ( int time ); 641 642 //*************************************************************************** 643 // 644 // MU_FadeToSong 645 // 646 //*************************************************************************** 647 void MU_FadeToSong ( int num, int time ); 648 649 //*************************************************************************** 650 // 651 // SD_PreCacheSoundGroup 652 // 653 //*************************************************************************** 654 void SD_PreCacheSoundGroup ( int lo, int hi ); 655 656 //*************************************************************************** 657 // 658 // SD_PreCacheSound 659 // 660 //*************************************************************************** 661 662 void SD_PreCacheSound ( int num ); 663 664 void MU_StartSong ( int songtype ); 665 666 void MU_JukeBoxMenu( void ); 667 668 void MU_StoreSongPosition ( void ); 669 670 void MU_RestoreSongPosition ( void ); 671 672 int MU_GetSongPosition ( void ); 673 674 void MU_SetSongPosition ( int position ); 675 676 int MU_GetSongNumber ( void ); 677 678 int MU_GetNumForType ( int songtype ); 679 680 int MU_GetStoredPosition ( void ); 681 682 void MU_SetStoredPosition ( int position ); 683 684 void MU_LoadMusic (byte * buf, int size); 685 686 void MU_SaveMusic (byte ** buf, int * size); 687 688 boolean MusicStarted( void ); 689 #endif 690