/* ============== CG_SoundPickOldestRandomSound ============== */ void CG_SoundPickOldestRandomSound( soundScript_t *sound, vec3_t org, int entnum ) { int oldestTime = 0; // TTimo: init soundScriptSound_t *oldestSound; soundScriptSound_t *scriptSound; oldestSound = NULL; scriptSound = sound->soundList; while ( scriptSound ) { if ( !oldestSound || ( scriptSound->lastPlayed < oldestTime ) ) { oldestTime = scriptSound->lastPlayed; oldestSound = scriptSound; } scriptSound = scriptSound->next; } if ( oldestSound ) { // play this sound if ( !sound->streaming ) { if ( !oldestSound->sfxHandle ) { oldestSound->sfxHandle = trap_S_RegisterSound( oldestSound->filename ); } trap_S_StartSound( org, entnum, sound->channel, oldestSound->sfxHandle ); } else { trap_S_StartStreamingSound( oldestSound->filename, sound->looping ? oldestSound->filename : NULL, entnum, sound->channel, sound->attenuation ); } oldestSound->lastPlayed = cg.time; } else { CG_Error( "Unable to locate a valid sound for soundScript: %s\n", sound->name ); } }
/* ============== CG_SoundPickOldestRandomSound ============== */ void CG_SoundPickOldestRandomSound( soundScript_t *sound, vec3_t org, int entnum ) { int oldestTime = 0; // TTimo: init soundScriptSound_t *oldestSound; soundScriptSound_t *scriptSound; vec3_t eOrg; oldestSound = NULL; scriptSound = sound->soundList; while ( scriptSound ) { if ( !oldestSound || ( scriptSound->lastPlayed < oldestTime ) ) { oldestTime = scriptSound->lastPlayed; oldestSound = scriptSound; } scriptSound = scriptSound->next; } if ( oldestSound ) { // play this sound if ( !sound->streaming ) { if ( !oldestSound->sfxHandle ) { oldestSound->sfxHandle = trap_S_RegisterSound( oldestSound->filename ); } if ( sound->attenuation ) { trap_S_StartSound( org, entnum, sound->channel, oldestSound->sfxHandle ); } else { trap_S_StartLocalSound( oldestSound->sfxHandle, sound->channel ); } } else { trap_S_StartStreamingSound( oldestSound->filename, sound->looping ? oldestSound->filename : NULL, entnum, sound->channel, sound->attenuation ); } oldestSound->lastPlayed = cg.time; // // shake the view? if ( sound->shakeScale ) { // get the origin if ( org ) { VectorCopy( org, eOrg ); } else { VectorCopy( cg_entities[entnum].lerpOrigin, eOrg ); } // // start the shaker CG_StartShakeCamera( sound->shakeScale, sound->shakeDuration, eOrg, sound->shakeRadius ); } } else { CG_Error( "Unable to locate a valid sound for soundScript: %s\n", sound->name ); } }