/* sound.cpp - Don Yang (uguu.org) 12/21/00 */ #include"global.h" #include"main.h" #include"resource.h" #include"sound.h" static HANDLE HBlipSound = NULL; static HANDLE HClearSound = NULL; static HANDLE HSpecialSound = NULL; /***************************************************************** InitSound Load sound resources. */ BOOL InitSound(void) { HANDLE res; UninitSound(); if( (res = FindResource(NULL, (LPCTSTR)SOUND_BLIP, "WAVE")) == NULL ) return Croak("FindResource"); if( (HBlipSound = LoadResource(NULL, (HRSRC)res)) == NULL ) return Croak("LoadResource"); if( (res = FindResource(NULL, (LPCTSTR)SOUND_CLEAR, "WAVE")) == NULL ) return Croak("FindResource"); if( (HClearSound = LoadResource(NULL, (HRSRC)res)) == NULL ) return Croak("LoadResource"); if( (res = FindResource(NULL, (LPCTSTR)SOUND_SPECIAL, "WAVE")) == NULL ) return Croak("FindResource"); if( (HSpecialSound = LoadResource(NULL, (HRSRC)res)) == NULL ) return Croak("LoadResource"); return TRUE; } // InitSound() /***************************************************************** SoundBlip Play blip sound (on moving blocks). */ void SoundBlip(void) { void *res; if( (GameOptions & OPTION_SND_BLIP) == OPTION_SND_BLIP && (res = LockResource(HBlipSound)) != NULL ) { sndPlaySound((LPSTR)res, SND_MEMORY | SND_ASYNC | SND_NODEFAULT); UnlockResource(HBlipSound); } } // SoundBlip() /**************************************************************** SoundClear Play clear sound (on clearing clusters). */ void SoundClear(void) { void *res; if( (GameOptions & OPTION_SND_CLEAR) == OPTION_SND_CLEAR && (res = LockResource(HClearSound)) != NULL ) { sndPlaySound((LPSTR)res, SND_MEMORY | SND_ASYNC | SND_NODEFAULT); UnlockResource(HClearSound); } } // SoundClear() /************************************************************** SoundSpecial Play special sound (on appearance of special tiles). */ void SoundSpecial(void) { void *res; if( (GameOptions & OPTION_SND_SPECIAL) == OPTION_SND_SPECIAL && (res = LockResource(HSpecialSound)) != NULL ) { sndPlaySound((LPSTR)res, SND_MEMORY | SND_ASYNC | SND_NODEFAULT); UnlockResource(HSpecialSound); } } // SoundSpecial() /*************************************************************** UninitSound Free sound resources. */ void UninitSound(void) { sndPlaySound(NULL, 0); if( HBlipSound != NULL ) { FreeResource(HBlipSound); HBlipSound = NULL; } if( HClearSound != NULL ) { FreeResource(HClearSound); HClearSound = NULL; } if( HSpecialSound != NULL ) { FreeResource(HSpecialSound); HSpecialSound = NULL; } } // UninitSound() char *SoundObjTime = __TIME__ " " __DATE__; int SoundObjLines = __LINE__;