00001 #include "IsoBomb.h" 00002 00009 #ifndef SOUNDSYSTEM_H_KWER234 00010 #define SOUNDSYSTEM_H_KWER234 00011 00020 typedef int SoundToken; 00021 00022 const int SS_NUM_PSPAWN = 3; 00023 const int SS_NUM_PPICKUP = 2; 00024 const int SS_NUM_VOICES = 2; 00025 00032 class SoundSystem { 00033 public: 00041 SoundSystem(); 00042 00046 ~SoundSystem(); 00047 00051 static bool isTokenValid( SoundToken tok ); 00052 00057 static SoundToken getInvalidToken(); 00058 00062 void playExplosion(); 00063 00067 void playHurtSound(); 00068 00072 void playDeathSound(); 00073 00077 void playPowerupRespawnSound(); 00078 00082 void playPowerupPickupSound(); 00083 00087 void playBombarrheaVoice(); 00088 00092 void playFrailtyVoice(); 00093 00097 void playShrinkVoice(); 00098 00102 void playSlowdownVoice(); 00103 00107 void playSlowBombsVoice(); 00108 00112 void playBombConstipationVoice(); 00113 00123 SoundToken startHomingBombSound(); 00124 00132 void stopHomingBombSound( SoundToken& tok ); 00133 00134 private: 00139 void playIfAvailable( DWORD* sounds, int numSounds ); 00140 00141 CSoundManager* manager; 00142 00143 DWORD explosion[4]; //explosion sounds 00144 00145 DWORD* homingSounds; //homing bomb sound loop 00146 bool* usedHoming; //which sounds are in use 00147 00148 DWORD hurtSounds[2]; //hurt sounds 00149 int hurtCycle; 00150 00151 DWORD deathSound; 00152 00153 DWORD pSpawn[SS_NUM_PSPAWN];//Powerup respawn sounds 00154 00155 DWORD pPickup[SS_NUM_PPICKUP]; //Powerup pickup sounds 00156 00157 //Virus Voices 00158 DWORD bombarrhea[SS_NUM_VOICES]; 00159 DWORD slowdown[SS_NUM_VOICES]; 00160 DWORD slowbombs[SS_NUM_VOICES]; 00161 DWORD frailty[SS_NUM_VOICES]; 00162 DWORD shrink[SS_NUM_VOICES]; 00163 DWORD constipation[SS_NUM_VOICES]; 00164 }; 00165 00166 #endif