#pragma once #include #define NUMBEROFSOUNDS 10 #define NUMBEROFSOUNDCHANNELS 8 #define PLAYERSHOTSOUND 0 #define ENEMYSHOTSOUND 1 #define ROCKETTARGETSOUND 2 #define EXPLOSIONSOUND 3 #define IMPACTSOUND 4 #define LAUNCHROCKETSOUND 5 #define ROCKETEXPLODESOUND 6 #define PLAYERHITSOUND 7 #define ENEMYHITSOUND 8 #define GETPOWERUPSOUND 9 typedef struct VSound { short ResID; SndListHandle sndList; } VSound; typedef struct VSoundManager { int NumberOfSounds; VSound * Sounds; SndChannelPtr SoundChannels[NUMBEROFSOUNDCHANNELS]; short CurrentSoundChannel; Boolean SoundAvailable; } VSoundManager; void InitSoundManager(VSoundManager * sm); void CleanUpSoundManager(VSoundManager * sm); void SuspendSoundManager(VSoundManager * sm); void ResumeSoundManager(VSoundManager * sm); OSErr LoadSound(VSound * s, int ResID); void CleanUpSound(VSound * s); OSErr AllocateSoundChannels(VSoundManager * sm); void CleanUpSoundChannels(VSoundManager * sm); void PlaySound(VSoundManager * sm, int soundID); Boolean AnySoundsPlaying(VSoundManager * sm); VSoundManager * GetSoundManager(void);