#ifndef __GAME_SOUND_H__ #define __GAME_SOUND_H__ /* =============================================================================== Generic sound emitter. =============================================================================== */ class idSound : public idEntity { public: CLASS_PROTOTYPE( idSound ); idSound( void ); void Save( idSaveGame *savefile ) const; void Restore( idRestoreGame *savefile ); virtual void UpdateChangeableSpawnArgs( const idDict *source ); void Spawn( void ); void ToggleOnOff( idEntity *other, idEntity *activator ); void Think( void ); void SetSound( const char *sound, int channel = SND_CHANNEL_ANY ); virtual void ShowEditingDialog( void ); private: float lastSoundVol; float soundVol; float random; float wait; bool timerOn; idVec3 shakeTranslate; idAngles shakeRotate; int playingUntilTime; void Event_Trigger( idEntity *activator ); void Event_Timer( void ); void Event_On( void ); void Event_Off( void ); void DoSound( bool play ); // RAVEN BEGIN // jshepard: Allow speakers to target lights and tie them to the speaker's ref sound void SetTargetSoundHandles( void ); // abahr virtual void FindTargets(); bool GetPhysicsToSoundTransform( idVec3 &origin, idMat3 &axis ); // RAVEN END }; #endif /* !__GAME_SOUND_H__ */