diff --git a/src/audio/AudioLogic.cpp b/src/audio/AudioLogic.cpp index d2319a3f..de71355e 100644 --- a/src/audio/AudioLogic.cpp +++ b/src/audio/AudioLogic.cpp @@ -253,26 +253,24 @@ cAudioManager::ProcessEntity(int32 id) ProcessWeather(id); } break; -/* case AUDIOTYPE_CRANE: + case AUDIOTYPE_CRANE: if (!m_nUserPause) { m_sQueueSample.m_bReverbFlag = true; ProcessCrane(); } - break;*/ + break; case AUDIOTYPE_SCRIPTOBJECT: if (!m_nUserPause) { m_sQueueSample.m_bReverbFlag = true; ProcessScriptObject(id); } break; -#ifdef GTA_BRIDGE case AUDIOTYPE_BRIDGE: if (!m_nUserPause) { m_sQueueSample.m_bReverbFlag = true; ProcessBridge(); } break; -#endif case AUDIOTYPE_FRONTEND: m_sQueueSample.m_bReverbFlag = false; ProcessFrontEnd(); @@ -663,12 +661,10 @@ cAudioManager::ProcessVehicle(CVehicle *veh) ProcessBoatMovingOverWater(¶ms); ProcessVehicleOneShots(¶ms); break; -#ifdef GTA_TRAIN case VEHICLE_TYPE_TRAIN: ProcessTrainNoise(¶ms); ProcessVehicleOneShots(¶ms); break; -#endif case VEHICLE_TYPE_HELI: ProcessHelicopter(¶ms); ProcessVehicleOneShots(¶ms); @@ -773,11 +769,10 @@ cAudioManager::ProcessReverseGear(cVehicleParams *params) return true; } -// TODO(Miami): this becomes ProcessModelVehicle void cAudioManager::ProcessModelCarEngine(cVehicleParams *params) { -/* const float SOUND_INTENSITY = 30.0f; + const float SOUND_INTENSITY = 30.0f; CAutomobile *automobile; float allowedVelocity; int32 emittingVol; @@ -824,7 +819,7 @@ cAudioManager::ProcessModelCarEngine(cVehicleParams *params) } } } - }*/ + } } @@ -2131,7 +2126,7 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params) maxDist = SQR(SOUND_INTENSITY); break; } - /*case SOUND_17: { + case SOUND_17: { const float SOUND_INTENSITY = 50.0f; m_sQueueSample.m_nSampleIndex = SFX_POLICE_BOAT_THUMB_OFF; m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; @@ -2143,7 +2138,7 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params) emittingVol = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i]; maxDist = SQR(SOUND_INTENSITY); break; - }*/ + } case SOUND_18: case SOUND_19: { const float SOUND_INTENSITY = 35.0f; @@ -2338,7 +2333,7 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params) } } } -#ifdef GTA_TRAIN + bool cAudioManager::ProcessTrainNoise(cVehicleParams *params) { @@ -2404,7 +2399,7 @@ cAudioManager::ProcessTrainNoise(cVehicleParams *params) } return true; } -#endif + bool cAudioManager::ProcessBoatEngine(cVehicleParams *params) { @@ -2471,7 +2466,7 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params) if (!m_sQueueSample.m_nVolume) return true; m_sQueueSample.m_nCounter = 40; - m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; + m_sQueueSample.m_nSampleIndex = SFX_POLICE_BOAT_ACCEL; m_sQueueSample.m_nFrequency += (m_sQueueSample.m_nEntityIndex * 65536) % 1000; m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_bIs2D = false; @@ -2496,7 +2491,7 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params) emittingVol = 45 - 45 * padAccelerate / 40; m_sQueueSample.m_nFrequency = 100 * padAccelerate + 11025; m_sQueueSample.m_nCounter = 39; - m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; + m_sQueueSample.m_nSampleIndex = SFX_POLICE_BOAT_IDLE; if (LastAccel > 20) { oneShotVol = LastVol; PlayOneShot(m_sQueueSample.m_nEntityIndex, SOUND_17, oneShotVol); @@ -2507,7 +2502,7 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params) if (!boat->m_bIsAnchored) m_sQueueSample.m_nFrequency = 11 * m_sQueueSample.m_nFrequency / 10; m_sQueueSample.m_nCounter = 40; - m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; + m_sQueueSample.m_nSampleIndex = SFX_POLICE_BOAT_ACCEL; } LastVol = emittingVol; LastAccel = padAccelerate; @@ -2517,14 +2512,14 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params) m_sQueueSample.m_nFrequency = 11025; emittingVol = 45; m_sQueueSample.m_nCounter = 39; - m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; + m_sQueueSample.m_nSampleIndex = SFX_POLICE_BOAT_IDLE; } else { emittingVol = (105.f * gasPedal) + 15; m_sQueueSample.m_nFrequency = (4000.f * gasPedal) + 8000; if (!boat->m_bIsAnchored) m_sQueueSample.m_nFrequency = 11 * m_sQueueSample.m_nFrequency / 10; m_sQueueSample.m_nCounter = 40; - m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; + m_sQueueSample.m_nSampleIndex = SFX_POLICE_BOAT_ACCEL; } } CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); @@ -3461,11 +3456,11 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_bReleasingSoundFlag = true; break; case WEAPONTYPE_M4: - m_sQueueSample.m_nSampleIndex = SFX_M60_LEFT; + m_sQueueSample.m_nSampleIndex = SFX_M16_LEFT; m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nCounter = iSound++; stereo = true; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_M60_LEFT); + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_M16_LEFT); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); m_sQueueSample.m_nReleasingVolumeModificator = 3; m_sQueueSample.m_fSpeedMultiplier = 0.0f; @@ -3560,7 +3555,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_PISTOL_RELOAD) + RandomDisplacement(300); break; case WEAPONTYPE_UZI: - m_sQueueSample.m_nSampleIndex = SFX_AK47_RELOAD; + m_sQueueSample.m_nSampleIndex = SFX_M16_RELOAD; m_sQueueSample.m_nFrequency = 39243; break; case WEAPONTYPE_SHOTGUN: @@ -3572,8 +3567,8 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_AK47_RELOAD); break; case WEAPONTYPE_M4: - m_sQueueSample.m_nSampleIndex = SFX_AK47_RELOAD; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_AK47_RELOAD); + m_sQueueSample.m_nSampleIndex = SFX_M16_RELOAD; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_M16_RELOAD); break; case WEAPONTYPE_SNIPERRIFLE: m_sQueueSample.m_nSampleIndex = SFX_RIFLE_RELOAD; @@ -3733,7 +3728,7 @@ cAudioManager::SetupPedComments(cPedParams *params, uint32 sound) if (ped != nil) { switch (sound) { - /*case SOUND_AMMUNATION_WELCOME_1: + case SOUND_AMMUNATION_WELCOME_1: pedComment.m_nSampleIndex = SFX_AMMU_D; break; case SOUND_AMMUNATION_WELCOME_2: @@ -3741,7 +3736,7 @@ cAudioManager::SetupPedComments(cPedParams *params, uint32 sound) break; case SOUND_AMMUNATION_WELCOME_3: pedComment.m_nSampleIndex = SFX_AMMU_F; - break;*/ + break; default: pedComment.m_nSampleIndex = GetPedCommentSfx(ped, sound); if (pedComment.m_nSampleIndex == NO_SAMPLE) @@ -3752,7 +3747,7 @@ cAudioManager::SetupPedComments(cPedParams *params, uint32 sound) soundIntensity = 50.0f; } else { switch (sound) { - /*case SOUND_PED_HELI_PLAYER_FOUND: + case SOUND_PED_HELI_PLAYER_FOUND: soundIntensity = 400.0f; pedComment.m_nSampleIndex = GetRandomNumberInRange(m_sQueueSample.m_nEntityIndex % 4, SFX_POLICE_HELI_1, SFX_POLICE_HELI_29); break; @@ -3771,7 +3766,7 @@ cAudioManager::SetupPedComments(cPedParams *params, uint32 sound) case SOUND_INJURED_PED_FEMALE: soundIntensity = 50.0f; pedComment.m_nSampleIndex = GetRandomNumberInRange(m_sQueueSample.m_nEntityIndex % 4, SFX_GENERIC_FEMALE_GRUNT_1, SFX_GENERIC_FEMALE_GRUNT_11); - break;*/ + break; default: return; } @@ -3888,11 +3883,11 @@ cPedComments::Process() AudioManager.m_sQueueSample.m_nEmittingVolume = MAX_VOLUME; AudioManager.m_sQueueSample.m_fSpeedMultiplier = 3.0f; switch (sampleIndex) { - //case SFX_POLICE_HELI_1: - //case SFX_POLICE_HELI_2: - //case SFX_POLICE_HELI_3: - // AudioManager.m_sQueueSample.m_fSoundIntensity = 400.0f; - // break; + case SFX_POLICE_HELI_1: + case SFX_POLICE_HELI_2: + case SFX_POLICE_HELI_3: + AudioManager.m_sQueueSample.m_fSoundIntensity = 400.0f; + break; default: AudioManager.m_sQueueSample.m_fSoundIntensity = 50.0f; break; @@ -3900,10 +3895,10 @@ cPedComments::Process() AudioManager.m_sQueueSample.m_bReleasingSoundFlag = true; AudioManager.m_sQueueSample.m_vecPos = m_asPedComments[m_nActiveBank][m_nIndexMap[m_nActiveBank][0]].m_vecPos; - /*if (sampleIndex >= SFX_AMMU_D && sampleIndex <= SFX_AMMU_F) { + if (sampleIndex >= SFX_AMMU_D && sampleIndex <= SFX_AMMU_F) { AudioManager.m_sQueueSample.m_bReverbFlag = false; AudioManager.m_sQueueSample.m_bRequireReflection = false; - } else*/ { + } else { AudioManager.m_sQueueSample.m_bReverbFlag = true; AudioManager.m_sQueueSample.m_bRequireReflection = true; } @@ -4192,7 +4187,7 @@ cAudioManager::ProcessOneShotScriptObject(uint8 sound) m_sQueueSample.m_bIs2D = false; emittingVolume = m_anRandomTable[2] % 20 + 90; break; - /*case SCRIPT_SOUND_110: + case SCRIPT_SOUND_110: case SCRIPT_SOUND_111: if (SampleManager.IsSampleBankLoaded(0) != 1) return; @@ -4204,7 +4199,7 @@ cAudioManager::ProcessOneShotScriptObject(uint8 sound) m_sQueueSample.m_nReleasingVolumeModificator = 0; m_sQueueSample.m_fSpeedMultiplier = 2.0f; m_sQueueSample.m_bIs2D = false; - break;*/ + break; case SCRIPT_SOUND_PAYPHONE_RINGING: m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_PHONE_RING; @@ -4472,6 +4467,368 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) m_sQueueSample.m_nReleasingVolumeDivider = 3; m_sQueueSample.m_fSpeedMultiplier = 2.0f; break; + case SCRIPT_SOUND_PARTY_5_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_5; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_5); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_5_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_5; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_5); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_6_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_6; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_6); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_6_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_6; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_6); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_7_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_7; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_7); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_7_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_7; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_7); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_8_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_8; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_8); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_8_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_8; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_8); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_9_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_9; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_9); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_9_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_9; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_9); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_10_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_10; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_10); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_10_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_10; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_10); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_11_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_11; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_11); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_11_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_11; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_11); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_12_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_12; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_12); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_12_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_12; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_12); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_13_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_RAGGA; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_RAGGA); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PARTY_13_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_CLUB_RAGGA; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_RAGGA); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_STRIP_CLUB_LOOP_1_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_STRIP_CLUB_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_STRIP_CLUB_1); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_STRIP_CLUB_LOOP_1_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_STRIP_CLUB_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_STRIP_CLUB_1); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_STRIP_CLUB_LOOP_2_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_STRIP_CLUB_2; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_STRIP_CLUB_2); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_STRIP_CLUB_LOOP_2_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_STRIP_CLUB_2; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_STRIP_CLUB_2); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_WORK_SHOP_LOOP_S: + case SCRIPT_SOUND_WORK_SHOP_LOOP_L: + ProcessWorkShopScriptObject(sound); + return; + case SCRIPT_SOUND_SAWMILL_LOOP_S: + case SCRIPT_SOUND_SAWMILL_LOOP_L: + ProcessSawMillScriptObject(sound); + return; + case SCRIPT_SOUND_38: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_DOG_FOOD_FACTORY; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 110; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_DOG_FOOD_FACTORY); + m_sQueueSample.m_nReleasingVolumeModificator = 6; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_39: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_DOG_FOOD_FACTORY; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 110; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_DOG_FOOD_FACTORY); + m_sQueueSample.m_nReleasingVolumeModificator = 6; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_LAUNDERETTE_LOOP_S: + case SCRIPT_SOUND_LAUNDERETTE_LOOP_L: + ProcessLaunderetteScriptObject(sound); + return; + case SCRIPT_SOUND_CHINATOWN_RESTAURANT_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_CHINATOWN; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 110; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_CHINATOWN); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_CHINATOWN_RESTAURANT_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_CHINATOWN; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 110; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_CHINATOWN); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_CIPRIANI_RESAURANT_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_ITALY; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 110; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_ITALY); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_CIPRIANI_RESAURANT_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_ITALY; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 110; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_ITALY); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_46_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_GENERIC_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 110; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_GENERIC_1); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_47_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_GENERIC_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 110; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_GENERIC_1); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_MARCO_BISTRO_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_GENERIC_2; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 110; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_GENERIC_2); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_MARCO_BISTRO_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_GENERIC_2; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 110; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_GENERIC_2); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_AIRPORT_LOOP_S: + case SCRIPT_SOUND_AIRPORT_LOOP_L: + ProcessAirportScriptObject(sound); + return; + case SCRIPT_SOUND_SHOP_LOOP_S: + case SCRIPT_SOUND_SHOP_LOOP_L: + ProcessShopScriptObject(sound); + return; + case SCRIPT_SOUND_CINEMA_LOOP_S: + case SCRIPT_SOUND_CINEMA_LOOP_L: + ProcessCinemaScriptObject(sound); + return; + case SCRIPT_SOUND_DOCKS_LOOP_S: + case SCRIPT_SOUND_DOCKS_LOOP_L: + ProcessDocksScriptObject(sound); + return; + case SCRIPT_SOUND_HOME_LOOP_S: + case SCRIPT_SOUND_HOME_LOOP_L: + ProcessHomeScriptObject(sound); + return; + case SCRIPT_SOUND_FRANKIE_PIANO: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_PIANO_BAR_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_PIANO_BAR_1); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; case SCRIPT_SOUND_PARTY_1_LOOP: m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; m_sQueueSample.m_nSampleIndex = SFX_CLUB_1; @@ -4482,17 +4839,133 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) m_sQueueSample.m_nReleasingVolumeDivider = 3; m_sQueueSample.m_fSpeedMultiplier = 2.0f; break; - case SCRIPT_SOUND_PRETEND_FIRE_LOOP: - m_sQueueSample.m_fSoundIntensity = 50.0f; - m_sQueueSample.m_nSampleIndex = SFX_CAR_ON_FIRE; + case SCRIPT_SOUND_PORN_CINEMA_1_S: + case SCRIPT_SOUND_PORN_CINEMA_1_L: + case SCRIPT_SOUND_PORN_CINEMA_2_S: + case SCRIPT_SOUND_PORN_CINEMA_2_L: + case SCRIPT_SOUND_PORN_CINEMA_3_S: + case SCRIPT_SOUND_PORN_CINEMA_3_L: + case SCRIPT_SOUND_MISTY_SEX_S: + case SCRIPT_SOUND_MISTY_SEX_L: + ProcessPornCinema(sound); + return; + case SCRIPT_SOUND_BANK_ALARM_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_BANK_ALARM_1; m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = 80; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CAR_ON_FIRE); - m_sQueueSample.m_nReleasingVolumeModificator = 8; - m_sQueueSample.m_nReleasingVolumeDivider = 10; + emittingVolume = 90; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_BANK_ALARM_1); + m_sQueueSample.m_nReleasingVolumeModificator = 2; + m_sQueueSample.m_nReleasingVolumeDivider = 3; m_sQueueSample.m_fSpeedMultiplier = 2.0f; break; - default: + case SCRIPT_SOUND_BANK_ALARM_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_BANK_ALARM_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 90; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_BANK_ALARM_1); + m_sQueueSample.m_nReleasingVolumeModificator = 2; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_POLICE_BALL_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_POLICE_BALL_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_POLICE_BALL_1); + m_sQueueSample.m_nReleasingVolumeModificator = 2; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_POLICE_BALL_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_POLICE_BALL_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_POLICE_BALL_1); + m_sQueueSample.m_nReleasingVolumeModificator = 2; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_RAVE_LOOP_INDUSTRIAL_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_RAVE_INDUSTRIAL; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RAVE_INDUSTRIAL); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_RAVE_LOOP_INDUSTRIAL_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_RAVE_INDUSTRIAL; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RAVE_INDUSTRIAL); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_POLICE_CELL_BEATING_LOOP_S: + case SCRIPT_SOUND_POLICE_CELL_BEATING_LOOP_L: + ProcessPoliceCellBeatingScriptObject(sound); + return; + case SCRIPT_SOUND_RAVE_1_LOOP_S: + case SCRIPT_SOUND_RAVE_2_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_RAVE_COMMERCIAL; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_RAVE_1_LOOP_L: + case SCRIPT_SOUND_RAVE_2_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_RAVE_COMMERCIAL; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_RAVE_3_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + m_sQueueSample.m_nSampleIndex = SFX_RAVE_SUBURBAN; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RAVE_SUBURBAN); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_RAVE_3_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + m_sQueueSample.m_nSampleIndex = SFX_RAVE_SUBURBAN; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = MAX_VOLUME; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RAVE_SUBURBAN); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + case SCRIPT_SOUND_PRETEND_FIRE_LOOP: + m_sQueueSample.m_fSoundIntensity = 50.0f; + m_sQueueSample.m_nSampleIndex = SFX_CAR_ON_FIRE; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 80; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CAR_ON_FIRE); + m_sQueueSample.m_nReleasingVolumeModificator = 8; + m_sQueueSample.m_nReleasingVolumeDivider = 10; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + break; + default: return; } @@ -4514,6 +4987,560 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) } } } + +void +cAudioManager::ProcessPornCinema(uint8 sound) +{ + + eSfxSample sample; + uint32 time; + int32 rand; + float distSquared; + + switch (sound) { + case SCRIPT_SOUND_PORN_CINEMA_1_S: + case SCRIPT_SOUND_MISTY_SEX_S: + m_sQueueSample.m_nSampleIndex = SFX_PORN_1_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + sample = SFX_PORN_1_GROAN_1; + m_sQueueSample.m_fSoundIntensity = 20.0f; + break; + case SCRIPT_SOUND_PORN_CINEMA_1_L: + case SCRIPT_SOUND_MISTY_SEX_L: + m_sQueueSample.m_nSampleIndex = SFX_PORN_1_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + sample = SFX_PORN_1_GROAN_1; + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + break; + case SCRIPT_SOUND_PORN_CINEMA_2_S: + m_sQueueSample.m_nSampleIndex = SFX_PORN_2_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + sample = SFX_PORN_2_GROAN_1; + m_sQueueSample.m_fSoundIntensity = 20.0f; + break; + case SCRIPT_SOUND_PORN_CINEMA_2_L: + m_sQueueSample.m_nSampleIndex = SFX_PORN_2_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + sample = SFX_PORN_2_GROAN_1; + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + break; + case SCRIPT_SOUND_PORN_CINEMA_3_S: + m_sQueueSample.m_nSampleIndex = SFX_PORN_3_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_fSoundIntensity = 20.0f; + sample = SFX_PORN_3_GROAN_1; + break; + case SCRIPT_SOUND_PORN_CINEMA_3_L: + m_sQueueSample.m_nSampleIndex = SFX_PORN_3_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + sample = SFX_PORN_3_GROAN_1; + break; + default: + return; + } + distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { + m_sQueueSample.m_fDistance = Sqrt(distSquared); + if (sound != SCRIPT_SOUND_MISTY_SEX_S && sound != SCRIPT_SOUND_MISTY_SEX_L) { + m_sQueueSample.m_nVolume = ComputeVolume(MAX_VOLUME, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nCounter = 0; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nEmittingVolume = MAX_VOLUME; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } + + time = CTimer::GetTimeInMilliseconds(); + if (time > gPornNextTime) { + m_sQueueSample.m_nVolume = ComputeVolume(90, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + rand = m_anRandomTable[1] & 1; + m_sQueueSample.m_nSampleIndex = rand + sample; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); + m_sQueueSample.m_nCounter = rand + 1; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_nReleasingVolumeModificator = 6; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + gPornNextTime = time + 2000 + m_anRandomTable[3] % 6000; + } + } + } +} + +void +cAudioManager::ProcessWorkShopScriptObject(uint8 sound) +{ + float distSquared; + + switch (sound) { + case SCRIPT_SOUND_WORK_SHOP_LOOP_S: + case SCRIPT_SOUND_WORK_SHOP_LOOP_L: + m_sQueueSample.m_fSoundIntensity = 20.0f; + break; + default: + return; + } + distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { + m_sQueueSample.m_fDistance = Sqrt(distSquared); + m_sQueueSample.m_nVolume = ComputeVolume(30, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nSampleIndex = SFX_WORKSHOP_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_WORKSHOP_1); + m_sQueueSample.m_nCounter = 0; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nEmittingVolume = 30; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } +} + +void +cAudioManager::ProcessSawMillScriptObject(uint8 sound) +{ + + uint32 time; + float distSquared; + + switch (sound) { + case SCRIPT_SOUND_SAWMILL_LOOP_S: + case SCRIPT_SOUND_SAWMILL_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + break; + default: + return; + } + distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { + m_sQueueSample.m_fDistance = Sqrt(distSquared); + m_sQueueSample.m_nVolume = ComputeVolume(30, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nSampleIndex = SFX_SAWMILL_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SAWMILL_LOOP); + m_sQueueSample.m_nCounter = 0; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nEmittingVolume = 30; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + time = CTimer::GetTimeInMilliseconds(); + if (time > gSawMillNextTime) { + m_sQueueSample.m_nVolume = ComputeVolume(70, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nSampleIndex = SFX_SAWMILL_CUT_WOOD; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nCounter = 1; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + gSawMillNextTime = time + 2000 + m_anRandomTable[3] % 4000; + } + } + } +} + +void +cAudioManager::ProcessLaunderetteScriptObject(uint8 sound) +{ + switch (sound) { + case SCRIPT_SOUND_LAUNDERETTE_LOOP_S: + case SCRIPT_SOUND_LAUNDERETTE_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + break; + default: + return; + } + float distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { + m_sQueueSample.m_fDistance = Sqrt(distSquared); + m_sQueueSample.m_nVolume = ComputeVolume(45, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nSampleIndex = SFX_LAUNDERETTE_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_LAUNDERETTE_LOOP); + m_sQueueSample.m_nCounter = 0; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nEmittingVolume = 45; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + m_sQueueSample.m_nVolume = ComputeVolume(110, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nSampleIndex = SFX_LAUNDERETTE_SONG_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_LAUNDERETTE_SONG_LOOP); + m_sQueueSample.m_nCounter = 1; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nEmittingVolume = 110; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } +} + +void +cAudioManager::ProcessShopScriptObject(uint8 sound) +{ + uint32 time; + int32 rand; + float distSquared; + + switch (sound) { + case SCRIPT_SOUND_SHOP_LOOP_S: + case SCRIPT_SOUND_SHOP_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + break; + default: + return; + } + distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { + m_sQueueSample.m_fDistance = Sqrt(distSquared); + m_sQueueSample.m_nVolume = ComputeVolume(30, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nSampleIndex = SFX_SHOP_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SHOP_LOOP); + m_sQueueSample.m_nCounter = 0; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nEmittingVolume = 30; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + time = CTimer::GetTimeInMilliseconds(); + if (time > gShopNextTime) { + m_sQueueSample.m_nVolume = ComputeVolume(70, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + rand = m_anRandomTable[1] & 1; + m_sQueueSample.m_nSampleIndex = rand + SFX_SHOP_TILL_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nCounter = rand + 1; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nEmittingVolume = 70; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + gShopNextTime = time + 3000 + m_anRandomTable[3] % 7000; + } + } + } +} + +void +cAudioManager::ProcessAirportScriptObject(uint8 sound) +{ + static uint8 iSound = 0; + + uint32 time = CTimer::GetTimeInMilliseconds(); + if (time > gAirportNextTime) { + switch (sound) { + case SCRIPT_SOUND_AIRPORT_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + break; + case SCRIPT_SOUND_AIRPORT_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + break; + default: + return; + } + float distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { + m_sQueueSample.m_fDistance = Sqrt(distSquared); + m_sQueueSample.m_nVolume = ComputeVolume(110, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nSampleIndex = (m_anRandomTable[1] & 3) + SFX_AIRPORT_ANNOUNCEMENT_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nCounter = iSound++; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nEmittingVolume = 110; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + gAirportNextTime = time + 10000 + m_anRandomTable[3] % 20000; + } + } + } +} + +void +cAudioManager::ProcessCinemaScriptObject(uint8 sound) +{ + uint8 rand; + + static uint8 iSound = 0; + + uint32 time = CTimer::GetTimeInMilliseconds(); + if (time > gCinemaNextTime) { + switch (sound) { + case SCRIPT_SOUND_CINEMA_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + break; + case SCRIPT_SOUND_CINEMA_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + break; + default: + return; + } + float distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { + m_sQueueSample.m_fDistance = Sqrt(distSquared); + rand = m_anRandomTable[0] % 90 + 30; + m_sQueueSample.m_nVolume = ComputeVolume(rand, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nSampleIndex = iSound % 3 + SFX_CINEMA_BASS_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 4); + m_sQueueSample.m_nCounter = iSound++; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nEmittingVolume = rand; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + gCinemaNextTime = time + 1000 + m_anRandomTable[3] % 4000; + } + } + } +} + +void +cAudioManager::ProcessDocksScriptObject(uint8 sound) +{ + uint32 time; + uint8 rand; + float distSquared; + + static uint8 iSound = 0; + + time = CTimer::GetTimeInMilliseconds(); + if (time > gDocksNextTime) { + switch (sound) { + case SCRIPT_SOUND_DOCKS_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + break; + case SCRIPT_SOUND_DOCKS_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + break; + default: + return; + } + distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { + m_sQueueSample.m_fDistance = Sqrt(distSquared); + rand = m_anRandomTable[0] % 60 + 40; + m_sQueueSample.m_nVolume = ComputeVolume(rand, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nSampleIndex = SFX_DOCKS_FOGHORN; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_DOCKS_FOGHORN); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 8); + m_sQueueSample.m_nCounter = iSound++; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nEmittingVolume = rand; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + gDocksNextTime = time + 10000 + m_anRandomTable[3] % 40000; + } + } + } +} +void +cAudioManager::ProcessHomeScriptObject(uint8 sound) +{ + uint32 time; + uint8 rand; + float dist; + + static uint8 iSound = 0; + + time = CTimer::GetTimeInMilliseconds(); + if (time > gHomeNextTime) { + switch (sound) { + case SCRIPT_SOUND_HOME_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + break; + case SCRIPT_SOUND_HOME_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + break; + default: + return; + } + dist = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (dist < SQR(m_sQueueSample.m_fSoundIntensity)) { + m_sQueueSample.m_fDistance = Sqrt(dist); + rand = m_anRandomTable[0] % 30 + 40; + m_sQueueSample.m_nVolume = ComputeVolume(rand, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nSampleIndex = m_anRandomTable[0] % 5 + SFX_HOME_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); + m_sQueueSample.m_nCounter = iSound++; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_nEmittingVolume = rand; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = true; + AddSampleToRequestedQueue(); + gHomeNextTime = time + 1000 + m_anRandomTable[3] % 4000; + } + } + } +} +void +cAudioManager::ProcessPoliceCellBeatingScriptObject(uint8 sound) +{ + uint32 time = CTimer::GetTimeInMilliseconds(); + int32 sampleIndex; + uint8 emittingVol; + float distSquared; + cPedParams params; + + static uint8 iSound = 0; + + if (time > gCellNextTime) { + switch (sound) { + case SCRIPT_SOUND_POLICE_CELL_BEATING_LOOP_S: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_S; + break; + case SCRIPT_SOUND_POLICE_CELL_BEATING_LOOP_L: + m_sQueueSample.m_fSoundIntensity = SCRIPT_OBJECT_INTENSITY_L; + break; + default: + return; + } + distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { + m_sQueueSample.m_fDistance = Sqrt(distSquared); + if (m_FrameCounter & 1) + sampleIndex = (m_anRandomTable[1] & 3) + SFX_FIGHT_1; + else + sampleIndex = (m_anRandomTable[3] & 1) + SFX_BAT_HIT_LEFT; + m_sQueueSample.m_nSampleIndex = sampleIndex; + emittingVol = m_anRandomTable[0] % 50 + 55; + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); + m_sQueueSample.m_nCounter = iSound++; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + params.m_bDistanceCalculated = true; + params.m_fDistance = distSquared; + params.m_pPed = nil; + SetupPedComments(¶ms, SOUND_INJURED_PED_MALE_PRISON); + } + gCellNextTime = time + 500 + m_anRandomTable[3] % 1500; + } + } +} #pragma endregion All the code for script object audio on the map void @@ -4596,53 +5623,53 @@ cAudioManager::ProcessFrontEnd() case SOUND_WEAPON_ROCKET_SHOT_NO_ZOOM: m_sQueueSample.m_nSampleIndex = SFX_ERROR_FIRE_ROCKET_LAUNCHER; break; - //case SOUND_GARAGE_NO_MONEY: - //case SOUND_GARAGE_BAD_VEHICLE: - //case SOUND_GARAGE_BOMB_ALREADY_SET: - // m_sQueueSample.m_nSampleIndex = SFX_PICKUP_ERROR_LEFT; - // stereo = true; - // break; - //case SOUND_GARAGE_OPENING: - //case SOUND_GARAGE_BOMB1_SET: - //case SOUND_GARAGE_BOMB2_SET: - //case SOUND_GARAGE_BOMB3_SET: - //case SOUND_41: - //case SOUND_GARAGE_VEHICLE_DECLINED: - //case SOUND_GARAGE_VEHICLE_ACCEPTED: - //case SOUND_PICKUP_HEALTH: - //case SOUND_4B: - //case SOUND_PICKUP_ADRENALINE: - //case SOUND_PICKUP_ARMOUR: - //case SOUND_EVIDENCE_PICKUP: - //case SOUND_UNLOAD_GOLD: - // m_sQueueSample.m_nSampleIndex = SFX_PICKUP_2_LEFT; - // processedPickup = true; - // stereo = true; - // break; - //case SOUND_PICKUP_WEAPON_BOUGHT: - //case SOUND_PICKUP_WEAPON: - // m_sQueueSample.m_nSampleIndex = SFX_PICKUP_1_LEFT; - // processedPickup = true; - // stereo = true; - // break; - //case SOUND_4A: - // m_sQueueSample.m_nSampleIndex = SFX_PICKUP_ERROR_LEFT; - // processedPickup = true; - // stereo = true; - // break; - //case SOUND_PICKUP_BONUS: - //case SOUND_PICKUP_MONEY: - //case SOUND_PICKUP_HIDDEN_PACKAGE: - //case SOUND_PICKUP_PACMAN_PILL: - //case SOUND_PICKUP_PACMAN_PACKAGE: - //case SOUND_PICKUP_FLOAT_PACKAGE: - // m_sQueueSample.m_nSampleIndex = SFX_PICKUP_3_LEFT; - // processedPickup = true; - // stereo = true; - // break; - //case SOUND_PAGER: - // m_sQueueSample.m_nSampleIndex = SFX_PAGER; - // break; + case SOUND_GARAGE_NO_MONEY: + case SOUND_GARAGE_BAD_VEHICLE: + case SOUND_GARAGE_BOMB_ALREADY_SET: + m_sQueueSample.m_nSampleIndex = SFX_PICKUP_ERROR_LEFT; + stereo = true; + break; + case SOUND_GARAGE_OPENING: + case SOUND_GARAGE_BOMB1_SET: + case SOUND_GARAGE_BOMB2_SET: + case SOUND_GARAGE_BOMB3_SET: + case SOUND_41: + case SOUND_GARAGE_VEHICLE_DECLINED: + case SOUND_GARAGE_VEHICLE_ACCEPTED: + case SOUND_PICKUP_HEALTH: + case SOUND_4B: + case SOUND_PICKUP_ADRENALINE: + case SOUND_PICKUP_ARMOUR: + case SOUND_EVIDENCE_PICKUP: + case SOUND_UNLOAD_GOLD: + m_sQueueSample.m_nSampleIndex = SFX_PICKUP_2_LEFT; + processedPickup = true; + stereo = true; + break; + case SOUND_PICKUP_WEAPON_BOUGHT: + case SOUND_PICKUP_WEAPON: + m_sQueueSample.m_nSampleIndex = SFX_PICKUP_1_LEFT; + processedPickup = true; + stereo = true; + break; + case SOUND_4A: + m_sQueueSample.m_nSampleIndex = SFX_PICKUP_ERROR_LEFT; + processedPickup = true; + stereo = true; + break; + case SOUND_PICKUP_BONUS: + case SOUND_PICKUP_MONEY: + case SOUND_PICKUP_HIDDEN_PACKAGE: + case SOUND_PICKUP_PACMAN_PILL: + case SOUND_PICKUP_PACMAN_PACKAGE: + case SOUND_PICKUP_FLOAT_PACKAGE: + m_sQueueSample.m_nSampleIndex = SFX_PICKUP_3_LEFT; + processedPickup = true; + stereo = true; + break; + case SOUND_PAGER: + m_sQueueSample.m_nSampleIndex = SFX_PAGER; + break; case SOUND_RACE_START_3: case SOUND_RACE_START_2: case SOUND_RACE_START_1: @@ -4650,46 +5677,53 @@ cAudioManager::ProcessFrontEnd() m_sQueueSample.m_nSampleIndex = SFX_TIMER_BEEP; break; case SOUND_RACE_START_GO: - m_sQueueSample.m_nSampleIndex = SFX_PART_MISSION_COMPLETE_LEFT; + m_sQueueSample.m_nSampleIndex = SFX_PART_MISSION_COMPLETE; break; case SOUND_PART_MISSION_COMPLETE: - m_sQueueSample.m_nSampleIndex = SFX_PART_MISSION_COMPLETE_LEFT; + m_sQueueSample.m_nSampleIndex = SFX_PART_MISSION_COMPLETE; processedMission = true; break; case SOUND_FRONTEND_MENU_STARTING: - m_sQueueSample.m_nSampleIndex = SFX_FE_HIGHLIGHT_LEFT; + m_sQueueSample.m_nSampleIndex = SFX_START_BUTTON_LEFT; stereo = true; break; case SOUND_FRONTEND_MENU_COMPLETED: - m_sQueueSample.m_nSampleIndex = SFX_FE_HIGHLIGHT_LEFT; + m_sQueueSample.m_nSampleIndex = SFX_PAGE_CHANGE_AND_BACK_LEFT; stereo = true; break; case SOUND_FRONTEND_MENU_DENIED: - m_sQueueSample.m_nSampleIndex = SFX_FE_HIGHLIGHT_LEFT; + m_sQueueSample.m_nSampleIndex = SFX_HIGHLIGHT_LEFT; stereo = true; break; case SOUND_FRONTEND_MENU_SUCCESS: - m_sQueueSample.m_nSampleIndex = SFX_FE_SELECT_LEFT; + m_sQueueSample.m_nSampleIndex = SFX_SELECT_LEFT; + stereo = true; + break; + case SOUND_FRONTEND_EXIT: + m_sQueueSample.m_nSampleIndex = SFX_SUB_MENU_BACK_LEFT; + stereo = true; + break; + case SOUND_9A: + m_sQueueSample.m_nSampleIndex = SFX_STEREO_LEFT; stereo = true; break; - //case SOUND_FRONTEND_EXIT: - // m_sQueueSample.m_nSampleIndex = SFX_SUB_MENU_BACK_LEFT; - // stereo = true; - // break; - //case SOUND_FRONTEND_AUDIO_TEST: - // m_sQueueSample.m_nSampleIndex = m_anRandomTable[0] % 3 + SFX_NOISE_BURST_1; - // break; + case SOUND_9B: + m_sQueueSample.m_nSampleIndex = SFX_MONO; + break; + case SOUND_FRONTEND_AUDIO_TEST: + m_sQueueSample.m_nSampleIndex = m_anRandomTable[0] % 3 + SFX_NOISE_BURST_1; + break; case SOUND_FRONTEND_FAIL: - m_sQueueSample.m_nSampleIndex = SFX_FE_ERROR_LEFT; + m_sQueueSample.m_nSampleIndex = SFX_ERROR_LEFT; stereo = true; break; case SOUND_FRONTEND_NO_RADIO: case SOUND_FRONTEND_RADIO_CHANGE: m_sQueueSample.m_nSampleIndex = SFX_RADIO_CLICK; break; - //case SOUND_A0: - // m_sQueueSample.m_nSampleIndex = SFX_INFO; - // break; + case SOUND_A0: + m_sQueueSample.m_nSampleIndex = SFX_INFO; + break; default: continue; } @@ -4707,11 +5741,11 @@ cAudioManager::ProcessFrontEnd() sample = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i]; if (sample == SFX_RAIN) { m_sQueueSample.m_nFrequency = 28509; - /*} else if (sample == SFX_PICKUP_1_LEFT) { + } else if (sample == SFX_PICKUP_1_LEFT) { if (m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i] == 1.0f) m_sQueueSample.m_nFrequency = 32000; else - m_sQueueSample.m_nFrequency = 48000;*/ + m_sQueueSample.m_nFrequency = 48000; } else { m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); } @@ -4741,7 +5775,7 @@ cAudioManager::ProcessFrontEnd() } } -/*void +void cAudioManager::ProcessCrane() { CCrane *crane = (CCrane *)m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_pEntity; @@ -4790,7 +5824,7 @@ cAudioManager::ProcessCrane() } } } -}*/ +} void cAudioManager::ProcessProjectiles() @@ -5003,7 +6037,7 @@ cAudioManager::ProcessFireHydrant() } } } -#ifdef GTA_BRIDGE + #pragma region BRIDGE const int bridgeIntensity = 400; @@ -5125,7 +6159,6 @@ cAudioManager::ProcessBridgeOneShots() } } #pragma endregion -#endif #pragma region MISSION_AUDIO bool g_bMissionAudioLoadFailed; diff --git a/src/audio/AudioManager.h b/src/audio/AudioManager.h index 0b24c2e9..f53034fe 100644 --- a/src/audio/AudioManager.h +++ b/src/audio/AudioManager.h @@ -288,17 +288,18 @@ public: /// processX - main logic of adding new sounds void ProcessActiveQueues(); bool ProcessAirBrakes(cVehicleParams *params); + void ProcessAirportScriptObject(uint8 sound); bool ProcessBoatEngine(cVehicleParams *params); bool ProcessBoatMovingOverWater(cVehicleParams *params); -#ifdef GTA_BRIDGE void ProcessBridge(); void ProcessBridgeMotor(); void ProcessBridgeOneShots(); void ProcessBridgeWarning(); -#endif bool ProcessCarBombTick(cVehicleParams *params); void ProcessCesna(cVehicleParams *params); - //void ProcessCrane(); + void ProcessCinemaScriptObject(uint8 sound); + void ProcessCrane(); + void ProcessDocksScriptObject(uint8 sound); bool ProcessEngineDamage(cVehicleParams *params); void ProcessEntity(int32 sound); void ProcessExplosions(int32 explosion); @@ -307,6 +308,7 @@ public: void ProcessFrontEnd(); void ProcessGarages(); bool ProcessHelicopter(cVehicleParams *params); + void ProcessHomeScriptObject(uint8 sound); void ProcessJumbo(cVehicleParams *); void ProcessJumboAccel(CPlane *plane); void ProcessJumboDecel(CPlane *plane); @@ -314,6 +316,7 @@ public: void ProcessJumboLanding(CPlane *plane); void ProcessJumboTakeOff(CPlane *plane); void ProcessJumboTaxi(); + void ProcessLaunderetteScriptObject(uint8 sound); void ProcessLoopingScriptObject(uint8 sound); void ProcessMissionAudio(); void ProcessModelCarEngine(cVehicleParams *params); @@ -323,15 +326,17 @@ public: void ProcessPhysical(int32 id); void ProcessPlane(cVehicleParams *params); void ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *automobile); + void ProcessPoliceCellBeatingScriptObject(uint8 sound); + void ProcessPornCinema(uint8 sound); void ProcessProjectiles(); void ProcessRainOnVehicle(cVehicleParams *params); void ProcessReverb() const; bool ProcessReverseGear(cVehicleParams *params); + void ProcessSawMillScriptObject(uint8 sound); void ProcessScriptObject(int32 id); + void ProcessShopScriptObject(uint8 sound); void ProcessSpecial(); -#ifdef GTA_TRAIN bool ProcessTrainNoise(cVehicleParams *params); -#endif void ProcessVehicle(CVehicle *vehicle); bool ProcessVehicleDoors(cVehicleParams *params); void ProcessVehicleEngine(cVehicleParams *params); @@ -344,6 +349,7 @@ public: void ProcessWaterCannon(int32); void ProcessWeather(int32 id); bool ProcessWetRoadNoise(cVehicleParams *params); + void ProcessWorkShopScriptObject(uint8 sound); int32 RandomDisplacement(uint32 seed) const; void ReacquireDigitalHandle() const; diff --git a/src/audio/AudioSamples.h b/src/audio/AudioSamples.h index 64c88f3b..937fe633 100644 --- a/src/audio/AudioSamples.h +++ b/src/audio/AudioSamples.h @@ -12,97 +12,96 @@ enum eSfxSample : uint32 SFX_CAR_HORN_PICKUP, SFX_CAR_HORN_PORSCHE, SFX_CAR_HORN_TRUCK, - - SFX_CAR_HELI_MAI, //8 - SFX_CAR_HELI_MAI2, //9 - SFX_CAR_HELI_REA, //10 - SFX_CAR_HELI_STA, //11 - SFX_CAR_HELI_ROT, //12 - SFX_CAR_HELI_FAR, //13 - SFX_CAR_HELI_ROL, //14 - SFX_OLD_CAR_DOOR_OPEN, SFX_OLD_CAR_DOOR_CLOSE, SFX_NEW_CAR_DOOR_OPEN, SFX_NEW_CAR_DOOR_CLOSE, SFX_TRUCK_DOOR_OPEN, SFX_TRUCK_DOOR_CLOSE, + SFX_REMOTE_CONTROLLED_CAR, SFX_REVERSE_GEAR, SFX_REVERSE_GEAR_2, - SFX_CAR_STARTER, //23 - SFX_ROAD_NOISE, //24 - SFX_SKID, //25 - SFX_GRAVEL_SKID, //26 + SFX_CAR_STARTER, + SFX_ROAD_NOISE, + SFX_SKID, + SFX_GRAVEL_SKID, SFX_POLICE_SIREN_SLOW, - SFX_SIREN_FAST, //28 + SFX_SIREN_FAST, SFX_AMBULANCE_SIREN_SLOW, SFX_REVERSE_WARNING, SFX_ICE_CREAM_TUNE, - SFX_AIR_BRAKES, //32 - SFX_TYRE_BUMP, //33 - SFX_TYRE_BURST_B, //34 - SFX_TYRE_BURST, //35 - SFX_TYRE_BURST_L, //36 - SFX_PALM_TREE_LO, //37 - SFX_BULLET_PASS_1, //38 - SFX_BULLET_PASS_2, //39 - SFX_SKATE_1, //40 - SFX_SKATE_2, //41 + SFX_CAR_ALARM_1, + SFX_AIR_BRAKES, + SFX_SQUEAKY_BRAKES, + SFX_TYRE_BUMP, + SFX_TRAIN_FAR, + SFX_TRAIN_NEAR, SFX_FOOTSTEP_CONCRETE_1, SFX_FOOTSTEP_CONCRETE_2, SFX_FOOTSTEP_CONCRETE_3, SFX_FOOTSTEP_CONCRETE_4, SFX_FOOTSTEP_CONCRETE_5, - SFX_EXPLOSION_1, //47 - SFX_EXPLOSION_2, //48 - SFX_EXPLOSION_3, //49 - SFX_COLT45_LEFT, //50 - SFX_COLT45_RIGHT, //51 - SFX_AK47_LEFT, //52 - SFX_AK47_RIGHT, //53 - SFX_UZI_LEFT, //54 - SFX_UZI_RIGHT, //55 - SFX_UZI_END_LEFT, //56 - SFX_SNIPER_LEFT, //57 - SFX_SNIPER_RIGHT, //58 - SFX_ROCKET_LEFT, //59 - SFX_ROCKET_RIGHT, //60 - SFX_ROCKET_FLY, //61 - SFX_FLAMETHROWER_LEFT, //62 - SFX_FLAMETHROWER_RIGHT, //63 - SFX_FLAMETHROWER_START_LEFT, //64 - SFX_FLAMETHROWER_START_RIGHT, //65 - SFX_SHOTGUN_LEFT, //66 - SFX_SHOTGUN_RIGH, //67 - SFX_M60_LEFT, //68 - SFX_M60_RIGHT, //69 - SFX_M60_TAIL_LEFT, //70 - SFX_TEC_LEFT, //71 - SFX_TEC_RIGHT, //72 - SFX_TEC_TAIL, //73 - SFX_RUGER_LEFT, //74 - SFX_RUGER_RIGHT, //75 - SFX_RUGER_TAIL, //76 - SFX_PISTOL_RELOAD, //77 - SFX_AK47_RELOAD, //78 - SFX_ROCKET_RELOAD, //79 - SFX_RIFLE_RELOAD, //80 - SFX_GOLF_CLUB_SWING, //81 - SFX_MINIGUN_FIRE_LEFT, //82 - SFX_MINIGUN_FIRE_RIGHT, //83 - SFX_MINIGUN_STOP, //84 - SFX_SPAS12_LEFT, //85 - SFX_SPAS12_RIGHT, //86 - SFX_SPAS12_TAIL_LEFT, //87 - SFX_PYTHON_LEFT, //88 - SFX_PYTHON_RIGHT, //89 - SFX_MP5_LEFT, //90 - SFX_MP5_RIGHT, //91 - SFX_COL_TARMAC_1, //92 - SFX_COL_TARMAC_2, //93 - SFX_COL_TARMAC_3, //94 - SFX_COL_TARMAC_4, //95 - SFX_COL_TARMAC_5, //96 + SFX_FOOTSTEP_GRASS_1, + SFX_FOOTSTEP_GRASS_2, + SFX_FOOTSTEP_GRASS_3, + SFX_FOOTSTEP_GRASS_4, + SFX_FOOTSTEP_GRASS_5, + SFX_FOOTSTEP_GRAVEL_1, + SFX_FOOTSTEP_GRAVEL_2, + SFX_FOOTSTEP_GRAVEL_3, + SFX_FOOTSTEP_GRAVEL_4, + SFX_FOOTSTEP_GRAVEL_5, + SFX_FOOTSTEP_WOOD_1, + SFX_FOOTSTEP_WOOD_2, + SFX_FOOTSTEP_WOOD_3, + SFX_FOOTSTEP_WOOD_4, + SFX_FOOTSTEP_WOOD_5, + SFX_FOOTSTEP_METAL_1, + SFX_FOOTSTEP_METAL_2, + SFX_FOOTSTEP_METAL_3, + SFX_FOOTSTEP_METAL_4, + SFX_FOOTSTEP_METAL_5, + SFX_FOOTSTEP_WATER_1, + SFX_FOOTSTEP_WATER_2, + SFX_FOOTSTEP_WATER_3, + SFX_FOOTSTEP_WATER_4, + SFX_FOOTSTEP_SAND_1, + SFX_FOOTSTEP_SAND_2, + SFX_FOOTSTEP_SAND_3, + SFX_FOOTSTEP_SAND_4, + SFX_EXPLOSION_2, + SFX_EXPLOSION_3, + SFX_COLT45_LEFT, + SFX_COLT45_RIGHT, + SFX_M16_LEFT, + SFX_M16_RIGHT, + SFX_AK47_LEFT, + SFX_AK47_RIGHT, + SFX_UZI_LEFT, + SFX_UZI_RIGHT, + SFX_UZI_END_LEFT, + SFX_UZI_END_RIGHT, + SFX_SNIPER_LEFT, + SFX_SNIPER_RIGHT, + SFX_ROCKET_LEFT, + SFX_ROCKET_RIGHT, + SFX_ROCKET_FLY, + SFX_FLAMETHROWER_LEFT, + SFX_FLAMETHROWER_RIGHT, + SFX_FLAMETHROWER_START_LEFT, + SFX_FLAMETHROWER_START_RIGHT, + SFX_SHOTGUN_LEFT, + SFX_SHOTGUN_RIGHT, + SFX_PISTOL_RELOAD, + SFX_AK47_RELOAD, + SFX_M16_RELOAD, + SFX_ROCKET_RELOAD, + SFX_RIFLE_RELOAD, + SFX_COL_TARMAC_1, + SFX_COL_TARMAC_2, + SFX_COL_TARMAC_3, + SFX_COL_TARMAC_4, + SFX_COL_TARMAC_5, SFX_COL_GRASS_1, SFX_COL_GRAVEL_1, SFX_COL_MUD_1, @@ -121,8 +120,11 @@ enum eSfxSample : uint32 SFX_COL_METAL_CHAIN_FENCE_2, SFX_COL_METAL_CHAIN_FENCE_3, SFX_COL_METAL_CHAIN_FENCE_4, - SFX_COL_PED_1, //115 - SFX_COL_PED_2, //116 + SFX_COL_PED_1, + SFX_COL_PED_2, + SFX_COL_PED_3, + SFX_COL_PED_4, + SFX_COL_PED_5, SFX_COL_SAND_1, SFX_COL_WOOD_CRATES_1, SFX_COL_WOOD_CRATES_2, @@ -133,79 +135,69 @@ enum eSfxSample : uint32 SFX_COL_WOOD_BENCH_3, SFX_COL_WOOD_BENCH_4, SFX_COL_WOOD_SOLID_1, - SFX_COL_VEG_1, //127 - SFX_COL_VEG_2, //128 - SFX_COL_VEG_3, //129 - SFX_COL_VEG_4, //130 - SFX_COL_VEG_5, //131 + SFX_COL_VEG_1, + SFX_COL_VEG_2, + SFX_COL_VEG_3, + SFX_COL_VEG_4, + SFX_COL_VEG_5, SFX_COL_CONTAINER_1, SFX_COL_NEWS_VENDOR_1, SFX_COL_NEWS_VENDOR_2, SFX_COL_NEWS_VENDOR_3, - SFX_COL_CAR_1, //136 - SFX_COL_CAR_2, //137 - SFX_COL_CAR_3, //138 - SFX_COL_CAR_4, //139 - SFX_COL_CAR_5, //140 + SFX_COL_CAR_1, + SFX_COL_CAR_2, + SFX_COL_CAR_3, + SFX_COL_CAR_4, + SFX_COL_CAR_5, SFX_COL_CARDBOARD_1, SFX_COL_CARDBOARD_2, - SFX_COL_GATE, //143 - SFX_SCRAPE_CAR_1, //144 + SFX_COL_GATE, + SFX_SCRAPE_CAR_1, SFX_CRATE_SMASH, - SFX_GLASS_CRACK, //146 - SFX_GLASS_SMASH, //147 + SFX_GLASS_CRACK, + SFX_GLASS_SMASH, SFX_GLASS_SHARD_1, SFX_GLASS_SHARD_2, SFX_GLASS_SHARD_3, SFX_GLASS_SHARD_4, - SFX_PED_ON_FIRE, //152 - SFX_CAR_ON_FIRE, //153 - SFX_RAIN, //154 - SFX_HURRICANE_MA, //155 + SFX_PED_ON_FIRE, + SFX_CAR_ON_FIRE, + SFX_RAIN, + SFX_PICKUP_1_LEFT, + SFX_PICKUP_1_RIGHT, + SFX_PICKUP_2_LEFT, + SFX_PICKUP_2_RIGHT, + SFX_PICKUP_3_LEFT, + SFX_PICKUP_3_RIGHT, + SFX_PICKUP_ERROR_LEFT, + SFX_PICKUP_ERROR_RIGHT, SFX_BULLET_SHELL_HIT_GROUND_1, SFX_BULLET_SHELL_HIT_GROUND_2, - SFX_BULLET_PED, //158 - SFX_BULLET_CAR_1, //159 - SFX_BULLET_CAR_2, //160 - SFX_BULLET_CAR_3, //161 - SFX_BULLET_WALL_1, //162 - SFX_BULLET_WALL_2, //163 - SFX_BULLET_WALL_3, //164 - SFX_BAT_HIT_LEFT, //165 - SFX_BAT_HIT_RIGH, //166 - SFX_FIGHT_1, //167 - SFX_FIGHT_2, //168 - SFX_FIGHT_4, //169 - SFX_FIGHT_5, //170 - SFX_KNIFE_SWING, //171 - SFX_KNIFE_SLASH, //172 - SFX_KNIFE_STAB, //173 - SFX_HAMMER_HIT_1, //174 - SFX_HAMMER_HIT_2, //175 - SFX_GARAGE_DOOR_LOOP, //176 - SFX_COUNTDOWN, //177 - SFX_ARM_BOMB, //178 - SFX_POLICE_RADIO_CRACKLE, //179 - + SFX_BULLET_PED, + SFX_BULLET_CAR_1, + SFX_BULLET_CAR_2, + SFX_BULLET_CAR_3, + SFX_BULLET_CAR_4, + SFX_BULLET_CAR_5, + SFX_BULLET_CAR_6, + SFX_BULLET_WALL_1, + SFX_BULLET_WALL_2, + SFX_BULLET_WALL_3, + SFX_BAT_HIT_LEFT, + SFX_BAT_HIT_RIGHT, + SFX_FIGHT_1, + SFX_FIGHT_2, + SFX_FIGHT_4, + SFX_FIGHT_5, + SFX_GARAGE_DOOR_LOOP, + SFX_COUNTDOWN, + SFX_ARM_BOMB, + SFX_POLICE_RADIO_CRACKLE, SFX_WEVE_GOT, SFX_THERES, SFX_RESPOND_TO, - SFX_A_10, - SFX_IN, - SFX_NORTH, - SFX_EAST, - SFX_SOUTH, - SFX_WEST, - SFX_CENTRAL, - SFX_POLICE_RADIO_MESSAGE_NOISE_1, - SFX_POLICE_RADIO_SUSPECT, - SFX_POLICE_RADIO_LAST_SEEN, - SFX_POLICE_RADIO_ON_FOOT, - SFX_POLICE_RADIO_IN_A, - SFX_POLICE_RADIO_DARK, - SFX_POLICE_RADIO_LIGHT, - SFX_POLICE_RADIO_BRIGHT, - + SFX_A_10_1, + SFX_A_10_2, SFX_CRIME_1, SFX_CRIME_2, SFX_CRIME_3, @@ -218,20 +210,48 @@ enum eSfxSample : uint32 SFX_CRIME_10, SFX_CRIME_11, SFX_CRIME_12, - SFX_POLICE_RADIO_VICE_CITY, - SFX_POLICE_RADIO_VICE_CITY_BEACH, - SFX_POLICE_RADIO_VICE_CITY_MAINLAND, - SFX_POLICE_RADIO_OCEAN_BEACH, //??? - SFX_POLICE_RADIO_WASHINGTON_BEACH, - SFX_POLICE_RADIO_VICE_POINT, - SFX_POLICE_RADIO_LEAF_LINKS, - SFX_POLICE_RADIO_STRAFISH_ISLAND, //??????????? - SFX_POLICE_RADIO_VICE_PORT, - SFX_POLICE_RADIO_LITTLE_HAVANA, - SFX_POLICE_RADIO_LITTLE_HAITI, - SFX_POLICE_RADIO_PRAWN_ISLAND, //??????????? IS THAT HOW SHE PRONOUNCES ISLAND? - SFX_POLICE_RADIO_DOWNTOWN, - SFX_POLICE_RADIO_ESCOBAR_INTERNATIONAL, + SFX_IN, + SFX_NORTH, + SFX_EAST, + SFX_SOUTH, + SFX_WEST, + SFX_CENTRAL, + SFX_POLICE_RADIO_MESSAGE_NOISE_1, + SFX_POLICE_RADIO_MESSAGE_NOISE_2, + SFX_POLICE_RADIO_MESSAGE_NOISE_3, + SFX_POLICE_RADIO_LIBERTY_CITY, + SFX_POLICE_RADIO_PORTLAND, + SFX_POLICE_RADIO_STAUNTON_ISLAND, + SFX_POLICE_RADIO_SHORESIDE_VALE, + SFX_POLICE_RADIO_ROCKFORD, + SFX_POLICE_RADIO_FORT_STAUNTON, + SFX_POLICE_RADIO_ASPATRIA, + SFX_POLICE_RADIO_TORRINGTON, + SFX_POLICE_RADIO_BEDFORD_POINT, + SFX_POLICE_RADIO_NEWPORT, + SFX_POLICE_RADIO_BELLEVILLE_PARK, + SFX_POLICE_RADIO_LIBERTY_CAMPUS, + SFX_POLICE_RADIO_COCHRANE_DAM, + SFX_POLICE_RADIO_PIKE_CREEK, + SFX_POLICE_RADIO_CEDAR_GROVE, + SFX_POLICE_RADIO_WICHITA_GARDENS, + SFX_POLICE_RADIO_FRANCIS_INTERNATIONAL_AIRPORT, + SFX_POLICE_RADIO_CALLAHAN_POINT, + SFX_POLICE_RADIO_ATLANTIC_QUAYS, + SFX_POLICE_RADIO_PORTLAND_HARBOUR, + SFX_POLICE_RADIO_TRENTON, + SFX_POLICE_RADIO_CHINATOWN, + SFX_POLICE_RADIO_RED_LIGHT_DISTRICT, + SFX_POLICE_RADIO_HEPBURN_HEIGHTS, + SFX_POLICE_RADIO_SAINT_MARKS, + SFX_POLICE_RADIO_HARWOOD, + SFX_POLICE_RADIO_PORTLAND_BEACH, + SFX_POLICE_RADIO_PORTLAND_STRAIGHTS, // shouldn't be used anymore + SFX_POLICE_RADIO_SUSPECT, + SFX_POLICE_RADIO_LAST_SEEN, + SFX_POLICE_RADIO_ON_FOOT, + SFX_POLICE_RADIO_IN_A, + SFX_POLICE_RADIO_IN_AN, SFX_POLICE_RADIO_BLACK, SFX_POLICE_RADIO_WHITE, SFX_POLICE_RADIO_BLUE, @@ -242,160 +262,93 @@ enum eSfxSample : uint32 SFX_POLICE_RADIO_ORANGE, SFX_POLICE_RADIO_GREEN, SFX_POLICE_RADIO_SILVER, + SFX_POLICE_RADIO_DARK, + SFX_POLICE_RADIO_LIGHT, + SFX_POLICE_RADIO_BRIGHT, SFX_POLICE_RADIO_AMBULANCE, - SFX_POLICE_RADIO_2_DOOR, + SFX_POLICE_RADIO_VAN, SFX_POLICE_RADIO_TRUCK, - SFX_POLICE_RADIO_FIRE_TRUCK, - SFX_POLICE_RADIO_PICKUP, - SFX_POLICE_RADIO_POLICE_CAR, - SFX_POLICE_RADIO_BOAT, + SFX_POLICE_RADIO_SALOON, + SFX_POLICE_RADIO_SPORTS_CAR, SFX_POLICE_RADIO_BUGGY, - SFX_POLICE_RADIO_BUS, - SFX_POLICE_RADIO_COACH, + SFX_POLICE_RADIO_TAXI, SFX_POLICE_RADIO_CRUISER, - SFX_POLICE_RADIO_DINGHY, - SFX_POLICE_RADIO_GARBAGE_TRUCK, - SFX_POLICE_RADIO_GOLF_CART, - SFX_POLICE_RADIO_HEARSE, - SFX_POLICE_RADIO_HELICOPTER, + SFX_POLICE_RADIO_BUS, + SFX_POLICE_RADIO_2_DOOR, + SFX_POLICE_RADIO_FIRE_TRUCK, + SFX_POLICE_RADIO_BOAT, + SFX_POLICE_RADIO_PICKUP, SFX_POLICE_RADIO_ICE_CREAM_VAN, - SFX_POLICE_RADIO_LOWRIDER, - SFX_POLICE_RADIO_MOPED, - SFX_POLICE_RADIO_MOTOBIKE, - SFX_POLICE_RADIO_OFFROAD, - SFX_POLICE_RADIO_PLANE, - SFX_POLICE_RADIO_RIG, - SFX_POLICE_RADIO_SEDAN, - SFX_POLICE_RADIO_SPEEDBOAT, - SFX_POLICE_RADIO_SPORTS_CAR, - SFX_POLICE_RADIO_STATION_WAGON, - SFX_POLICE_RADIO_STRETCH, - SFX_POLICE_RADIO_SWAT_VAN, + SFX_POLICE_RADIO_LIMO, + SFX_POLICE_RADIO_POLICE_CAR, + SFX_POLICE_RADIO_CONVERTIBLE, + SFX_POLICE_RADIO_SUBWAY_CAR, SFX_POLICE_RADIO_TANK, - SFX_POLICE_RADIO_TAXI, - SFX_POLICE_RADIO_VAN, - - SFX_HELI_1, //198 - SFX_PHONE_RING, //199 - SFX_CAR_REV_1, //PONT - SFX_CAR_REV_2, //PORSHE - SFX_CAR_REV_3, //SPIDER - SFX_CAR_REV_4, //MERC - SFX_CAR_REV_5, //TRUC - SFX_CAR_REV_6, //HOTROD - SFX_CAR_REV_7, //COBRA - SFX_CAR_REV_8, //PONT2 - SFX_CAR_REV_9, // CADI - SFX_CAR_REV_10, //PATHFINDER - SFX_CAR_REV_11, //PACARD - SFX_CAR_REV_12, //GOLFCART - SFX_CAR_REV_13, //SFX_CAR_IDLE_GOL - SFX_CAR_REV_14, //SFX_CAR_IDLE_GOL - SFX_CAR_REV_15, //SFX_CAR_IDLE_GOL - SFX_CAR_REV_16, //SFX_CAR_IDLE_GOL - SFX_CAR_REV_17, //VTWI - SFX_MOPED_REV, // just moped - SFX_CAR_REV_19, //HOND(A) - SFX_CAR_REV_20, //SPOR(TCAR) - SFX_CAR_IDLE_1, //PONT - SFX_CAR_IDLE_2, //PORSHE - SFX_CAR_IDLE_3, //SPIDER - SFX_CAR_IDLE_4, //MERC - SFX_CAR_IDLE_5, //TRUC - SFX_CAR_IDLE_6, //HOTROD - SFX_CAR_IDLE_7, //COBRA - SFX_CAR_IDLE_8, //PONT2 - SFX_CAR_IDLE_9, //CADI - SFX_CAR_IDLE_10, //PATHFINDER - SFX_CAR_IDLE_11, //PACARD - SFX_CAR_IDLE_12, //GOLFCART - SFX_CAR_IDLE_13, //SFX_CAR_IDLE_GOL - SFX_CAR_IDLE_14, //SFX_CAR_IDLE_GOL - SFX_CAR_IDLE_15, //SFX_CAR_IDLE_GOL - SFX_CAR_IDLE_16, //SFX_CAR_IDLE_GOL - SFX_CAR_IDLE_17, //VTWI - SFX_MOPED_IDLE, //237 - SFX_CAR_IDLE_19, //HOND(A) - SFX_CAR_IDLE_20, //SPOR(TCAR) + SFX_HELI_1, + SFX_HELI_2, + SFX_HELI_3, + SFX_PHONE_RING, + SFX_CAR_REV_1, + SFX_CAR_REV_2, + SFX_CAR_REV_3, + SFX_CAR_REV_4, + SFX_CAR_REV_5, + SFX_CAR_REV_6, + SFX_CAR_REV_7, + SFX_CAR_REV_8, + SFX_CAR_REV_9, + SFX_CAR_REV_10, + SFX_CAR_IDLE_1, + SFX_CAR_IDLE_2, + SFX_CAR_IDLE_3, + SFX_CAR_IDLE_4, + SFX_CAR_IDLE_5, + SFX_CAR_IDLE_6, + SFX_CAR_IDLE_7, + SFX_CAR_IDLE_8, + SFX_CAR_IDLE_9, + SFX_CAR_IDLE_10, SFX_JUMBO_DIST_FLY, - SFX_JUMBO_TAXI, //241 - SFX_JUMBO_WHINE, //242 - SFX_JUMBO_ENGINE, //243 - SFX_JUMBO_RUMBLE, //244 + SFX_JUMBO_TAXI, + SFX_JUMBO_WHINE, + SFX_JUMBO_ENGINE, + SFX_JUMBO_RUMBLE, SFX_JUMBO_LAND_WHEELS, - SFX_BOAT_CRUISER_LOOP, //246 - SFX_BOAT_V12_LOOP, //247 + SFX_POLICE_BOAT_IDLE, + SFX_POLICE_BOAT_ACCEL, + SFX_POLICE_BOAT_THUMB_OFF, SFX_BOAT_WATER_LOOP, SFX_BOAT_SPLASH_1, SFX_BOAT_SPLASH_2, SFX_FISHING_BOAT_IDLE, - SFX_CAR_RAIN_1, //252 - SFX_CAR_RAIN_2, //253 - SFX_CAR_RAIN_3, //254 - SFX_CAR_RAIN_4, //255 - SFX_SPLASH_1, //256 - SFX_PED_CRUNCH_1, //257 - SFX_PED_CRUNCH_2, //258 + SFX_CESNA_IDLE, + SFX_CESNA_REV, + SFX_CAR_RAIN_1, + SFX_CAR_RAIN_2, + SFX_CAR_RAIN_3, + SFX_CAR_RAIN_4, + SFX_SPLASH_1, + SFX_PED_CRUNCH_1, + SFX_PED_CRUNCH_2, + SFX_HEADPHONES, SFX_WOODEN_BOX_SMASH, SFX_CARDBOARD_BOX_SMASH, SFX_ERROR_FIRE_ROCKET_LAUNCHER, SFX_ERROR_FIRE_RIFLE, - SFX_TANK_TURRET, //263 + SFX_TANK_TURRET, + SFX_CRANE_MAGNET, SFX_BODY_LAND_AND_FALL, - SFX_BODY_LAND, //265 - SFX_BOMB_BEEP, //266 - SFX_TIMER_BEEP, //267 + SFX_BODY_LAND, + SFX_BOMB_BEEP, + SFX_TIMER_BEEP, + SFX_PART_MISSION_COMPLETE, + SFX_START_BUTTON_LEFT, + SFX_START_BUTTON_RIGHT, SFX_SUSPENSION_FAST_MOVE, SFX_SUSPENSION_SLOW_MOVE_LOOP, SFX_SHAG_SUSPENSION, - SFX_HIT_BALL, //271 - SFX_ARCADE, //272 - SFX_CESNA_IDLE, //273 - SFX_CESNA_REV, //274 - SFX_RADIO_CLICK, //275 - SFX_RADIO_DIAL_1, //276 - SFX_RADIO_DIAL_2, //277 - SFX_RADIO_DIAL_3, //278 - - //pc only - SFX_RADIO_DIAL_4, - SFX_RADIO_DIAL_5, - SFX_RADIO_DIAL_6, - SFX_RADIO_DIAL_7, - SFX_RADIO_DIAL_8, - SFX_RADIO_DIAL_9, - SFX_RADIO_DIAL_10, - SFX_RADIO_DIAL_11, - SFX_RADIO_DIAL_12, - - SFX_INFO_LEFT, //279 - SFX_INFO_RIGHT, //280 - SFX_INFO_CENTRE, //281 - SFX_MONEY_LEFT, //282 - SFX_MONEY_RIGHT, //283 - SFX_WEAPON_LEFT, //284 - SFX_WEAPON_RIGHT, //285 - SFX_WEAPON_CENTRE, //286 - SFX_PART_MISSION_COMPLETE_LEFT, //287 - SFX_PART_MISSION_COMPLETE_RIGHT, //288 - SFX_PART_MISSION_COMPLETE_CENTRE, //289 - SFX_GO_LEFT, //290 - SFX_GO_RIGHT, //291 - SFX_GO_CENTRE, //292 - SFX_TIMER, //293 - SFX_EMPTY, //294 - - SFX_FE_HIGHLIGHT_LEFT, // - SFX_FE_HIGHLIGHT_RIGHT, // - SFX_FE_SELECT_LEFT, // - SFX_FE_SELECT_RIGHT, // - SFX_FE_BACK_LEFT, // - SFX_FE_BACK_RIGHT, // - SFX_FE_ERROR_LEFT, // - SFX_FE_ERROR_RIGHT, // - SFX_FE_NOISE_BURST_1, - SFX_FE_NOISE_BURST_2, - SFX_FE_NOISE_BURST_3, + SFX_RADIO_CLICK, + SFX_INFO, SFX_CAR_ACCEL_1, SFX_CAR_AFTER_ACCEL_1, @@ -433,158 +386,2679 @@ enum eSfxSample : uint32 SFX_CAR_AFTER_ACCEL_9, SFX_CAR_FINGER_OFF_ACCEL_9, - SFX_CAR_ACCEL_10, - SFX_CAR_AFTER_ACCEL_10, - SFX_CAR_FINGER_OFF_ACCEL_10, - - SFX_CAR_ACCEL_11, - SFX_CAR_AFTER_ACCEL_11, - SFX_CAR_FINGER_OFF_ACCEL_11, - - SFX_CAR_ACCEL_12, - SFX_CAR_AFTER_ACCEL_12, - SFX_CAR_FINGER_OFF_ACCEL_12, - - // some CHAINSAW STUFF - //SFX_CAR_CHAINSAW, //10973 - //SFX_CAR_CHAINSAW, //10974 - //SFX_CAR_CHAINSAW, //10975 - SFX_CAR_ACCEL_13, - SFX_CAR_AFTER_ACCEL_13, - SFX_CAR_FINGER_OFF_ACCEL_13, - - SFX_RC_IDLE, //10976 - SFX_RC_REV, //10977 - SFX_RC_EMPTY, //10978 - - SFX_CAR_RC_HELI, //10979 - SFX_CAR_AFTER_ACCEL_15, // empty - SFX_CAR_FINGER_OFF_ACCEL_15, // empty - - SFX_CAR_ACCEL_16, // empty - SFX_CAR_AFTER_ACCEL_16, // empty - SFX_CAR_FINGER_OFF_ACCEL_16, // empty - - // bike stuff apparently - SFX_CAR_ACCEL_17, - SFX_CAR_AFTER_ACCEL_17, - SFX_CAR_FINGER_OFF_ACCEL_17, - SFX_CAR_WIND_17, - - SFX_CAR_ACCEL_18, - SFX_CAR_AFTER_ACCEL_18, - SFX_CAR_FINGER_OFF_ACCEL_18, - SFX_CAR_WIND_18, - - SFX_CAR_ACCEL_19, - SFX_CAR_AFTER_ACCEL_19, - SFX_CAR_FINGER_OFF_ACCEL_19, - SFX_CAR_WIND_19, - - SFX_CAR_ACCEL_20, - SFX_CAR_AFTER_ACCEL_20, - SFX_CAR_FINGER_OFF_ACCEL_20, - SFX_CAR_WIND_20, - - // some emptinnes here - SFX_CAR_ACCEL_21, - SFX_CAR_AFTER_ACCEL_21, - SFX_CAR_FINGER_OFF_ACCEL_21, - SFX_CAR_ACCEL_22, - SFX_CAR_AFTER_ACCEL_22, - SFX_CAR_FINGER_OFF_ACCEL_22, - - SFX_HELI_APACHE_1, - SFX_HELI_APACHE_2, - SFX_HELI_APACHE_3, - SFX_HELI_APACHE_4, + SFX_PAGE_CHANGE_AND_BACK_LEFT, + SFX_PAGE_CHANGE_AND_BACK_RIGHT, + SFX_HIGHLIGHT_LEFT, + SFX_HIGHLIGHT_RIGHT, + SFX_SELECT_LEFT, + SFX_SELECT_RIGHT, + SFX_SUB_MENU_BACK_LEFT, + SFX_SUB_MENU_BACK_RIGHT, + SFX_STEREO_LEFT, + SFX_STEREO_RIGHT, + SFX_MONO, + SFX_NOISE_BURST_1, + SFX_NOISE_BURST_2, + SFX_NOISE_BURST_3, + SFX_ERROR_LEFT, + SFX_ERROR_RIGHT, + SFX_TRAIN_STATION_AMBIENCE_LOOP, + SFX_TRAIN_STATION_ANNOUNCE, + SFX_CLUB_1, + SFX_CLUB_2, + SFX_CLUB_3, + SFX_CLUB_4, + SFX_CLUB_5, + SFX_CLUB_6, + SFX_CLUB_7, + SFX_CLUB_8, + SFX_CLUB_9, + SFX_CLUB_10, + SFX_CLUB_11, + SFX_CLUB_12, + SFX_CLUB_RAGGA, + SFX_STRIP_CLUB_1, + SFX_STRIP_CLUB_2, + SFX_WORKSHOP_1, + SFX_PIANO_BAR_1, + SFX_SAWMILL_LOOP, + SFX_SAWMILL_CUT_WOOD, + SFX_DOG_FOOD_FACTORY, + SFX_LAUNDERETTE_LOOP, + SFX_LAUNDERETTE_SONG_LOOP, + SFX_RESTAURANT_CHINATOWN, + SFX_RESTAURANT_ITALY, + SFX_RESTAURANT_GENERIC_1, + SFX_RESTAURANT_GENERIC_2, + SFX_AIRPORT_ANNOUNCEMENT_1, + SFX_AIRPORT_ANNOUNCEMENT_2, + SFX_AIRPORT_ANNOUNCEMENT_3, + SFX_AIRPORT_ANNOUNCEMENT_4, + SFX_SHOP_LOOP, + SFX_SHOP_TILL_1, + SFX_SHOP_TILL_2, + SFX_CINEMA_BASS_1, + SFX_CINEMA_BASS_2, + SFX_CINEMA_BASS_3, + SFX_DOCKS_FOGHORN, + SFX_HOME_1, + SFX_HOME_2, + SFX_HOME_3, + SFX_HOME_4, + SFX_HOME_5, + SFX_PORN_1_LOOP, + SFX_PORN_1_GROAN_1, + SFX_PORN_1_GROAN_2, + SFX_PORN_2_LOOP, + SFX_PORN_2_GROAN_1, + SFX_PORN_2_GROAN_2, + SFX_PORN_3_LOOP, + SFX_PORN_3_GROAN_1, + SFX_PORN_3_GROAN_2, + SFX_POLICE_BALL_1, + SFX_BANK_ALARM_1, + SFX_RAVE_INDUSTRIAL, + SFX_RAVE_COMMERCIAL, + SFX_RAVE_SUBURBAN, + SFX_RAVE_COMMERCIAL_2, - // something padded for more heli? - SFX_HELI_UNUSED_1, - SFX_HELI_UNUSED_2, - SFX_HELI_UNUSED_3, - SFX_HELI_UNUSED_4, + // unused banks 50-58 + SFX_CLUB_1_1, + SFX_CLUB_1_2, + SFX_CLUB_1_3, + SFX_CLUB_1_4, + SFX_CLUB_1_5, + SFX_CLUB_1_6, + SFX_CLUB_1_7, + SFX_CLUB_1_8, + SFX_CLUB_1_9, - SFX_SEAPLANE_PRO1, //11018 - SFX_SEAPLANE_PRO2, //11019 - SFX_SEAPLANE_PRO3, //11020 - SFX_SEAPLANE_PRO4, //11021 - // low fuel - SFX_SEAPLANE_LOW, //11022 - - // something padded for more plane? - SFX_PLANE_UNUSED_1, - SFX_PLANE_UNUSED_2, - SFX_PLANE_UNUSED_3, - SFX_PLANE_UNUSED_4, - - // script objects - SFX_BUILDINGS_BANK_ALARM, //11027 - SFX_BUILDING_SNORE, //11028 - SFX_BUILDING_BAR_1, //11029 - SFX_BUILDING_BAR_2, //11030 - SFX_BUILDING_BAR_3, //11031 - SFX_BUILDING_BAR_4, //11032 - SFX_BUILDING_MAL1, //11033 - SFX_BUILDING_MAL2, //11034 - SFX_BUILDING_MAL3, //11035 - SFX_BUILDING_STR1, //11036 - SFX_BUILDING_STR2, //11037 - SFX_BUILDING_STR3, //11038 - SFX_BUILDING_CHURCH, //11039 - SFX_BUILDING_FAN_1, //11040 - SFX_BUILDING_FAN_2, //11041 - SFX_BUILDING_FAN_3, //11042 - SFX_BUILDING_FAN_4, //11043 - SFX_BUILDING_INSECTS_1, //11044 - SFX_BUILDING_INSECTS_2, //11045 - SFX_BUILDING_INSECTS_3, //11046 - SFX_BUILDING_INSECTS_4, //11047 - SFX_BUILDING_INSECTS_5, //11048 - SFX_CLUB_1, //11049 - SFX_CLUB_2, //11050 - SFX_CLUB_3, //11051 - SFX_CLUB_4, //11052 - - SFX_FOOTSTEP_GRASS_1, - SFX_FOOTSTEP_GRASS_2, - SFX_FOOTSTEP_GRASS_3, - SFX_FOOTSTEP_GRASS_4, - SFX_FOOTSTEP_GRASS_5, - SFX_FOOTSTEP_GRAVEL_1, - SFX_FOOTSTEP_GRAVEL_2, - SFX_FOOTSTEP_GRAVEL_3, - SFX_FOOTSTEP_GRAVEL_4, - SFX_FOOTSTEP_GRAVEL_5, - SFX_FOOTSTEP_WOOD_1, - SFX_FOOTSTEP_WOOD_2, - SFX_FOOTSTEP_WOOD_3, - SFX_FOOTSTEP_WOOD_4, - SFX_FOOTSTEP_WOOD_5, - SFX_FOOTSTEP_METAL_1, - SFX_FOOTSTEP_METAL_2, - SFX_FOOTSTEP_METAL_3, - SFX_FOOTSTEP_METAL_4, - SFX_FOOTSTEP_METAL_5, - SFX_FOOTSTEP_WATER_1, - SFX_FOOTSTEP_WATER_2, - SFX_FOOTSTEP_WATER_3, - SFX_FOOTSTEP_WATER_4, - SFX_FOOTSTEP_SAND_1, - SFX_FOOTSTEP_SAND_2, - SFX_FOOTSTEP_SAND_3, - SFX_FOOTSTEP_SAND_4, + SFX_EXPLOSION_1, + SFX_BRIDGE_OPEN_WARNING, - // TODO: miami ped comments... THERE'S OVER 9000 + SFX_PAGER, // used to be ped comment on PS2 - TOTAL_AUDIO_SAMPLES = 9941, + SFX_COP_VOICE_1_ARREST_1, + SFX_COP_VOICE_1_ARREST_2, + SFX_COP_VOICE_1_ARREST_3, + SFX_COP_VOICE_1_ARREST_4, + SFX_COP_VOICE_1_ARREST_5, + SFX_COP_VOICE_1_ARREST_6, + SFX_COP_VOICE_1_CHASE_1, + SFX_COP_VOICE_1_CHASE_2, + SFX_COP_VOICE_1_CHASE_3, + SFX_COP_VOICE_1_CHASE_4, + SFX_COP_VOICE_1_CHASE_5, + SFX_COP_VOICE_1_CHASE_6, + SFX_COP_VOICE_1_CHASE_7, + SFX_COP_VOICE_2_ARREST_1, + SFX_COP_VOICE_2_ARREST_2, + SFX_COP_VOICE_2_ARREST_3, + SFX_COP_VOICE_2_ARREST_4, + SFX_COP_VOICE_2_ARREST_5, + SFX_COP_VOICE_2_ARREST_6, + SFX_COP_VOICE_2_CHASE_1, + SFX_COP_VOICE_2_CHASE_2, + SFX_COP_VOICE_2_CHASE_3, + SFX_COP_VOICE_2_CHASE_4, + SFX_COP_VOICE_2_CHASE_5, + SFX_COP_VOICE_2_CHASE_6, + SFX_COP_VOICE_2_CHASE_7, + SFX_COP_VOICE_3_ARREST_1, + SFX_COP_VOICE_3_ARREST_2, + SFX_COP_VOICE_3_ARREST_3, + SFX_COP_VOICE_3_ARREST_4, + SFX_COP_VOICE_3_ARREST_5, + SFX_COP_VOICE_3_ARREST_6, + SFX_COP_VOICE_3_CHASE_1, + SFX_COP_VOICE_3_CHASE_2, + SFX_COP_VOICE_3_CHASE_3, + SFX_COP_VOICE_3_CHASE_4, + SFX_COP_VOICE_3_CHASE_5, + SFX_COP_VOICE_3_CHASE_6, + SFX_COP_VOICE_3_CHASE_7, + SFX_COP_VOICE_4_ARREST_1, + SFX_COP_VOICE_4_ARREST_2, + SFX_COP_VOICE_4_ARREST_3, + SFX_COP_VOICE_4_ARREST_4, + SFX_COP_VOICE_4_ARREST_5, + SFX_COP_VOICE_4_ARREST_6, + SFX_COP_VOICE_4_CHASE_1, + SFX_COP_VOICE_4_CHASE_2, + SFX_COP_VOICE_4_CHASE_3, + SFX_COP_VOICE_4_CHASE_4, + SFX_COP_VOICE_4_CHASE_5, + SFX_COP_VOICE_4_CHASE_6, + SFX_COP_VOICE_4_CHASE_7, + SFX_COP_VOICE_5_ARREST_1, + SFX_COP_VOICE_5_ARREST_2, + SFX_COP_VOICE_5_ARREST_3, + SFX_COP_VOICE_5_ARREST_4, + SFX_COP_VOICE_5_ARREST_5, + SFX_COP_VOICE_5_ARREST_6, + SFX_COP_VOICE_5_CHASE_1, + SFX_COP_VOICE_5_CHASE_2, + SFX_COP_VOICE_5_CHASE_3, + SFX_COP_VOICE_5_CHASE_4, + SFX_COP_VOICE_5_CHASE_5, + SFX_COP_VOICE_5_CHASE_6, + SFX_COP_VOICE_5_CHASE_7, + SFX_SWAT_VOICE_1_CHASE_1, + SFX_SWAT_VOICE_1_CHASE_2, + SFX_SWAT_VOICE_1_CHASE_3, + SFX_SWAT_VOICE_1_CHASE_4, + SFX_SWAT_VOICE_1_CHASE_5, + SFX_SWAT_VOICE_1_CHASE_6, + SFX_SWAT_VOICE_2_CHASE_1, + SFX_SWAT_VOICE_2_CHASE_2, + SFX_SWAT_VOICE_2_CHASE_3, + SFX_SWAT_VOICE_2_CHASE_4, + SFX_SWAT_VOICE_2_CHASE_5, + SFX_SWAT_VOICE_2_CHASE_6, + SFX_SWAT_VOICE_3_CHASE_1, + SFX_SWAT_VOICE_3_CHASE_2, + SFX_SWAT_VOICE_3_CHASE_3, + SFX_SWAT_VOICE_3_CHASE_4, + SFX_SWAT_VOICE_3_CHASE_5, + SFX_SWAT_VOICE_3_CHASE_6, + SFX_SWAT_VOICE_4_CHASE_1, + SFX_SWAT_VOICE_4_CHASE_2, + SFX_SWAT_VOICE_4_CHASE_3, + SFX_SWAT_VOICE_4_CHASE_4, + SFX_SWAT_VOICE_4_CHASE_5, + SFX_SWAT_VOICE_4_CHASE_6, + SFX_FBI_VOICE_1_CHASE_1, + SFX_FBI_VOICE_1_CHASE_2, + SFX_FBI_VOICE_1_CHASE_3, + SFX_FBI_VOICE_1_CHASE_4, + SFX_FBI_VOICE_1_CHASE_5, + SFX_FBI_VOICE_1_CHASE_6, + SFX_FBI_VOICE_2_CHASE_1, + SFX_FBI_VOICE_2_CHASE_2, + SFX_FBI_VOICE_2_CHASE_3, + SFX_FBI_VOICE_2_CHASE_4, + SFX_FBI_VOICE_2_CHASE_5, + SFX_FBI_VOICE_2_CHASE_6, + SFX_FBI_VOICE_3_CHASE_1, + SFX_FBI_VOICE_3_CHASE_2, + SFX_FBI_VOICE_3_CHASE_3, + SFX_FBI_VOICE_3_CHASE_4, + SFX_FBI_VOICE_3_CHASE_5, + SFX_FBI_VOICE_3_CHASE_6, + SFX_POLICE_HELI_1, + SFX_POLICE_HELI_2, + SFX_POLICE_HELI_3, + SFX_POLICE_HELI_4, + SFX_POLICE_HELI_5, + SFX_POLICE_HELI_6, + SFX_POLICE_HELI_7, + SFX_POLICE_HELI_8, + SFX_POLICE_HELI_9, + SFX_POLICE_HELI_10, + SFX_POLICE_HELI_11, + SFX_POLICE_HELI_12, + SFX_POLICE_HELI_13, + SFX_POLICE_HELI_14, + SFX_POLICE_HELI_15, + SFX_POLICE_HELI_16, + SFX_POLICE_HELI_17, + SFX_POLICE_HELI_18, + SFX_POLICE_HELI_19, + SFX_POLICE_HELI_20, + SFX_POLICE_HELI_21, + SFX_POLICE_HELI_22, + SFX_POLICE_HELI_23, + SFX_POLICE_HELI_24, + SFX_POLICE_HELI_25, + SFX_POLICE_HELI_26, + SFX_POLICE_HELI_27, + SFX_POLICE_HELI_28, + SFX_POLICE_HELI_29, + SFX_CHUNKY_DEATH, + SFX_BLACK_DOCKER_VOICE_1_DRIVER_ABUSE_1, + SFX_BLACK_DOCKER_VOICE_1_DRIVER_ABUSE_2, + SFX_BLACK_DOCKER_VOICE_1_DRIVER_ABUSE_3, + SFX_BLACK_DOCKER_VOICE_1_DRIVER_ABUSE_4, + SFX_BLACK_DOCKER_VOICE_1_DRIVER_ABUSE_5, + SFX_BLACK_DOCKER_VOICE_1_DRIVER_ABUSE_6, + SFX_BLACK_DOCKER_VOICE_1_CHAT_1, + SFX_BLACK_DOCKER_VOICE_1_CHAT_2, + SFX_BLACK_DOCKER_VOICE_1_CHAT_3, + SFX_BLACK_DOCKER_VOICE_1_CHAT_4, + SFX_BLACK_DOCKER_VOICE_1_CHAT_5, + SFX_BLACK_DOCKER_VOICE_1_DODGE_1, + SFX_BLACK_DOCKER_VOICE_1_DODGE_2, + SFX_BLACK_DOCKER_VOICE_1_DODGE_3, + SFX_BLACK_DOCKER_VOICE_1_DODGE_4, + SFX_BLACK_DOCKER_VOICE_1_DODGE_5, + SFX_BLACK_DOCKER_VOICE_1_EYING_1, + SFX_BLACK_DOCKER_VOICE_1_EYING_2, + SFX_BLACK_DOCKER_VOICE_1_EYING_3, + SFX_BLACK_DOCKER_VOICE_1_FIGHT_1, + SFX_BLACK_DOCKER_VOICE_1_FIGHT_2, + SFX_BLACK_DOCKER_VOICE_1_FIGHT_3, + SFX_BLACK_DOCKER_VOICE_1_FIGHT_4, + SFX_BLACK_DOCKER_VOICE_1_FIGHT_5, + SFX_BLACK_DOCKER_VOICE_1_GUN_PANIC_1, + SFX_BLACK_DOCKER_VOICE_1_GUN_PANIC_2, + SFX_BLACK_DOCKER_VOICE_1_GUN_PANIC_3, + SFX_ARMY_VOICE_1_CHASE_1, + SFX_ARMY_VOICE_1_CHASE_2, + SFX_ARMY_VOICE_1_CHASE_3, + SFX_ARMY_VOICE_1_CHASE_4, + SFX_ARMY_VOICE_1_CHASE_5, + SFX_ARMY_VOICE_1_CHASE_6, + SFX_ARMY_VOICE_1_CHASE_7, + SFX_ARMY_VOICE_1_CHASE_8, + SFX_ARMY_VOICE_1_CHASE_9, + SFX_ARMY_VOICE_1_CHASE_10, + SFX_ARMY_VOICE_1_CHASE_11, + SFX_ARMY_VOICE_1_CHASE_12, + SFX_ARMY_VOICE_1_CHASE_13, + SFX_ARMY_VOICE_1_CHASE_14, + SFX_ARMY_VOICE_1_CHASE_15, + SFX_ARMY_VOICE_2_CHASE_1, + SFX_ARMY_VOICE_2_CHASE_2, + SFX_ARMY_VOICE_2_CHASE_3, + SFX_ARMY_VOICE_2_CHASE_4, + SFX_ARMY_VOICE_2_CHASE_5, + SFX_ARMY_VOICE_2_CHASE_6, + SFX_ARMY_VOICE_2_CHASE_7, + SFX_ARMY_VOICE_2_CHASE_8, + SFX_ARMY_VOICE_2_CHASE_9, + SFX_ARMY_VOICE_2_CHASE_10, + SFX_ARMY_VOICE_2_CHASE_11, + SFX_ARMY_VOICE_2_CHASE_12, + SFX_ARMY_VOICE_2_CHASE_13, + SFX_ARMY_VOICE_2_CHASE_14, + SFX_ARMY_VOICE_2_CHASE_15, + SFX_CLAUDE_LOW_DAMAGE_GRUNT_1, + SFX_CLAUDE_LOW_DAMAGE_GRUNT_2, + SFX_CLAUDE_LOW_DAMAGE_GRUNT_3, + SFX_CLAUDE_LOW_DAMAGE_GRUNT_4, + SFX_CLAUDE_LOW_DAMAGE_GRUNT_5, + SFX_CLAUDE_LOW_DAMAGE_GRUNT_6, + SFX_CLAUDE_LOW_DAMAGE_GRUNT_7, + SFX_CLAUDE_LOW_DAMAGE_GRUNT_8, + SFX_CLAUDE_LOW_DAMAGE_GRUNT_9, + SFX_CLAUDE_LOW_DAMAGE_GRUNT_10, + SFX_CLAUDE_HIGH_DAMAGE_GRUNT_1, + SFX_CLAUDE_HIGH_DAMAGE_GRUNT_2, + SFX_CLAUDE_HIGH_DAMAGE_GRUNT_3, + SFX_CLAUDE_HIGH_DAMAGE_GRUNT_4, + SFX_CLAUDE_HIGH_DAMAGE_GRUNT_5, + SFX_CLAUDE_HIGH_DAMAGE_GRUNT_6, + SFX_CLAUDE_HIGH_DAMAGE_GRUNT_7, + SFX_CLAUDE_HIGH_DAMAGE_GRUNT_8, + SFX_CLAUDE_HIGH_DAMAGE_GRUNT_9, + SFX_CLAUDE_HIGH_DAMAGE_GRUNT_10, + SFX_CLAUDE_HIGH_DAMAGE_GRUNT_11, + SFX_CLAUDE_HIT_GROUND_GRUNT_1, + SFX_CLAUDE_HIT_GROUND_GRUNT_2, + SFX_CLAUDE_HIT_GROUND_GRUNT_3, + SFX_CLAUDE_HIT_GROUND_GRUNT_4, + SFX_CLAUDE_HIT_GROUND_GRUNT_5, + SFX_CLAUDE_HIT_GROUND_GRUNT_6, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DRIVER_ABUSE_1, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DRIVER_ABUSE_2, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DRIVER_ABUSE_3, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DRIVER_ABUSE_4, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DRIVER_ABUSE_5, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DRIVER_ABUSE_6, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DRIVER_ABUSE_7, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CHAT_1, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CHAT_2, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CHAT_3, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CHAT_4, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CHAT_5, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CHAT_6, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CHAT_7, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CHAT_8, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CHAT_9, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CHAT_10, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DODGE_1, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DODGE_2, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DODGE_3, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DODGE_4, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DODGE_5, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DODGE_6, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DODGE_7, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DODGE_8, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DODGE_9, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DODGE_10, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CARJACKED_1, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CARJACKED_2, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CARJACKED_3, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CARJACKED_4, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CARJACKED_5, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CARJACKED_6, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_MUGGED_1, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_MUGGED_2, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_RUN_FROM_FIGHT_1, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_RUN_FROM_FIGHT_2, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_RUN_FROM_FIGHT_3, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_RUN_FROM_FIGHT_4, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_RUN_FROM_FIGHT_5, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_RUN_FROM_FIGHT_6, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_SHOCKED_1, + SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_SHOCKED_2, + SFX_CHUNKY_RUN_1, + SFX_CHUNKY_RUN_2, + SFX_CHUNKY_RUN_3, + SFX_CHUNKY_RUN_4, + SFX_CHUNKY_RUN_5, + SFX_PIMP_DRIVER_ABUSE_1, + SFX_PIMP_DRIVER_ABUSE_2, + SFX_PIMP_DRIVER_ABUSE_3, + SFX_PIMP_DRIVER_ABUSE_4, + SFX_PIMP_DRIVER_ABUSE_5, + SFX_PIMP_CHAT_1, + SFX_PIMP_CHAT_2, + SFX_PIMP_CHAT_3, + SFX_PIMP_CHAT_4, + SFX_PIMP_CHAT_5, + SFX_PIMP_CHAT_6, + SFX_PIMP_CHAT_7, + SFX_PIMP_CHAT_8, + SFX_PIMP_CHAT_9, + SFX_PIMP_CHAT_10, + SFX_PIMP_CHAT_11, + SFX_PIMP_CHAT_12, + SFX_PIMP_CHAT_13, + SFX_PIMP_CHAT_14, + SFX_PIMP_CHAT_15, + SFX_PIMP_CHAT_16, + SFX_PIMP_CHAT_17, + SFX_PIMP_DODGE_1, + SFX_PIMP_DODGE_2, + SFX_PIMP_DODGE_3, + SFX_PIMP_DODGE_4, + SFX_PIMP_DODGE_5, + SFX_PIMP_DODGE_6, + SFX_PIMP_FIGHT_1, + SFX_PIMP_FIGHT_2, + SFX_PIMP_FIGHT_3, + SFX_PIMP_FIGHT_4, + SFX_PIMP_FIGHT_5, + SFX_PIMP_FIGHT_6, + SFX_PIMP_FIGHT_7, + SFX_PIMP_FIGHT_8, + SFX_PIMP_FIGHT_9, + SFX_PIMP_GUN_COOL_1, + SFX_PIMP_GUN_COOL_2, + SFX_PIMP_GUN_COOL_3, + SFX_PIMP_GUN_COOL_4, + SFX_PIMP_GUN_COOL_5, + SFX_PIMP_GUN_COOL_6, + SFX_PIMP_GUN_COOL_7, + SFX_PIMP_CARJACKED_1, + SFX_PIMP_CARJACKED_2, + SFX_PIMP_CARJACKED_3, + SFX_PIMP_CARJACKED_4, + SFX_PIMP_SHOCKED_1, + SFX_PIMP_SHOCKED_2, + SFX_NORMAL_MALE_DRIVER_ABUSE_1, + SFX_NORMAL_MALE_DRIVER_ABUSE_2, + SFX_NORMAL_MALE_DRIVER_ABUSE_3, + SFX_NORMAL_MALE_DRIVER_ABUSE_4, + SFX_NORMAL_MALE_DRIVER_ABUSE_5, + SFX_NORMAL_MALE_DRIVER_ABUSE_6, + SFX_NORMAL_MALE_DRIVER_ABUSE_7, + SFX_NORMAL_MALE_DRIVER_ABUSE_8, + SFX_NORMAL_MALE_DRIVER_ABUSE_9, + SFX_NORMAL_MALE_DRIVER_ABUSE_10, + SFX_NORMAL_MALE_DRIVER_ABUSE_11, + SFX_NORMAL_MALE_DRIVER_ABUSE_12, + SFX_NORMAL_MALE_CHAT_1, + SFX_NORMAL_MALE_CHAT_2, + SFX_NORMAL_MALE_CHAT_3, + SFX_NORMAL_MALE_CHAT_4, + SFX_NORMAL_MALE_CHAT_5, + SFX_NORMAL_MALE_CHAT_6, + SFX_NORMAL_MALE_CHAT_7, + SFX_NORMAL_MALE_CHAT_8, + SFX_NORMAL_MALE_CHAT_9, + SFX_NORMAL_MALE_CHAT_10, + SFX_NORMAL_MALE_CHAT_11, + SFX_NORMAL_MALE_CHAT_12, + SFX_NORMAL_MALE_CHAT_13, + SFX_NORMAL_MALE_CHAT_14, + SFX_NORMAL_MALE_CHAT_15, + SFX_NORMAL_MALE_CHAT_16, + SFX_NORMAL_MALE_CHAT_17, + SFX_NORMAL_MALE_CHAT_18, + SFX_NORMAL_MALE_CHAT_19, + SFX_NORMAL_MALE_CHAT_20, + SFX_NORMAL_MALE_CHAT_21, + SFX_NORMAL_MALE_CHAT_22, + SFX_NORMAL_MALE_CHAT_23, + SFX_NORMAL_MALE_CHAT_24, + SFX_NORMAL_MALE_CHAT_25, + SFX_NORMAL_MALE_DODGE_1, + SFX_NORMAL_MALE_DODGE_2, + SFX_NORMAL_MALE_DODGE_3, + SFX_NORMAL_MALE_DODGE_4, + SFX_NORMAL_MALE_DODGE_5, + SFX_NORMAL_MALE_DODGE_6, + SFX_NORMAL_MALE_DODGE_7, + SFX_NORMAL_MALE_DODGE_8, + SFX_NORMAL_MALE_DODGE_9, + SFX_NORMAL_MALE_EYING_1, + SFX_NORMAL_MALE_EYING_2, + SFX_NORMAL_MALE_EYING_3, + SFX_NORMAL_MALE_EYING_4, + SFX_NORMAL_MALE_EYING_5, + SFX_NORMAL_MALE_EYING_6, + SFX_NORMAL_MALE_EYING_7, + SFX_NORMAL_MALE_EYING_8, + SFX_NORMAL_MALE_GUN_PANIC_1, + SFX_NORMAL_MALE_GUN_PANIC_2, + SFX_NORMAL_MALE_GUN_PANIC_3, + SFX_NORMAL_MALE_GUN_PANIC_4, + SFX_NORMAL_MALE_GUN_PANIC_5, + SFX_NORMAL_MALE_GUN_PANIC_6, + SFX_NORMAL_MALE_GUN_PANIC_7, + SFX_NORMAL_MALE_CARJACKED_1, + SFX_NORMAL_MALE_CARJACKED_2, + SFX_NORMAL_MALE_CARJACKED_3, + SFX_NORMAL_MALE_CARJACKED_4, + SFX_NORMAL_MALE_CARJACKED_5, + SFX_NORMAL_MALE_CARJACKED_6, + SFX_NORMAL_MALE_CARJACKED_7, + SFX_NORMAL_MALE_RUN_FROM_FIGHT_1, + SFX_NORMAL_MALE_RUN_FROM_FIGHT_2, + SFX_NORMAL_MALE_RUN_FROM_FIGHT_3, + SFX_NORMAL_MALE_RUN_FROM_FIGHT_4, + SFX_NORMAL_MALE_RUN_FROM_FIGHT_5, + SFX_NORMAL_MALE_SHOCKED_1, + SFX_NORMAL_MALE_SHOCKED_2, + SFX_NORMAL_MALE_SHOCKED_3, + SFX_NORMAL_MALE_SHOCKED_4, + SFX_NORMAL_MALE_SHOCKED_5, + SFX_NORMAL_MALE_SHOCKED_6, + SFX_NORMAL_MALE_SHOCKED_7, + SFX_NORMAL_MALE_SHOCKED_8, + SFX_NORMAL_MALE_SHOCKED_9, + SFX_NORMAL_MALE_SHOCKED_10, + SFX_BOMBERMAN_1, + SFX_BOMBERMAN_2, + SFX_BOMBERMAN_3, + SFX_BOMBERMAN_4, + SFX_BOMBERMAN_5, + SFX_BOMBERMAN_6, + SFX_BOMBERMAN_7, + SFX_8BALL_DODGE_1, + SFX_8BALL_DODGE_2, + SFX_8BALL_DODGE_3, + SFX_8BALL_DODGE_4, + SFX_8BALL_DODGE_5, + SFX_8BALL_DODGE_6, + SFX_8BALL_DODGE_7, + SFX_8BALL_FIGHT_1, + SFX_8BALL_FIGHT_2, + SFX_8BALL_FIGHT_3, + SFX_8BALL_FIGHT_4, + SFX_8BALL_FIGHT_5, + SFX_8BALL_FIGHT_6, + SFX_8BALL_GUN_COOL_1, + SFX_8BALL_GUN_COOL_2, + SFX_8BALL_MUGGED_1, + SFX_8BALL_MUGGED_2, + SFX_SALVATORE_DODGE_1, + SFX_SALVATORE_DODGE_2, + SFX_SALVATORE_DODGE_3, + SFX_SALVATORE_FIGHT_1, + SFX_SALVATORE_FIGHT_2, + SFX_SALVATORE_FIGHT_3, + SFX_SALVATORE_FIGHT_4, + SFX_SALVATORE_FIGHT_5, + SFX_SALVATORE_FIGHT_6, + SFX_SALVATORE_GUN_COOL_1, + SFX_SALVATORE_GUN_COOL_2, + SFX_SALVATORE_GUN_COOL_3, + SFX_SALVATORE_GUN_COOL_4, + SFX_SALVATORE_MUGGED_1, + SFX_SALVATORE_MUGGED_2, + SFX_MISTY_DODGE_1, + SFX_MISTY_DODGE_2, + SFX_MISTY_DODGE_3, + SFX_MISTY_DODGE_4, + SFX_MISTY_DODGE_5, + SFX_MISTY_FIGHT_1, + SFX_MISTY_FIGHT_2, + SFX_MISTY_FIGHT_3, + SFX_MISTY_FIGHT_4, + SFX_MISTY_GUN_COOL_1, + SFX_MISTY_GUN_COOL_2, + SFX_MISTY_GUN_COOL_3, + SFX_MISTY_GUN_COOL_4, + SFX_MISTY_GUN_COOL_5, + SFX_MISTY_HERE_1, + SFX_MISTY_HERE_2, + SFX_MISTY_HERE_3, + SFX_MISTY_HERE_4, + SFX_MISTY_MUGGED_1, + SFX_MISTY_MUGGED_2, + SFX_MEDIC_VOICE_1_GUN_PANIC_1, + SFX_MEDIC_VOICE_1_GUN_PANIC_2, + SFX_MEDIC_VOICE_1_GUN_PANIC_3, + SFX_MEDIC_VOICE_1_GUN_PANIC_4, + SFX_MEDIC_VOICE_1_GUN_PANIC_5, + SFX_MEDIC_VOICE_1_CARJACKED_1, + SFX_MEDIC_VOICE_1_CARJACKED_2, + SFX_MEDIC_VOICE_1_CARJACKED_3, + SFX_MEDIC_VOICE_1_CARJACKED_4, + SFX_MEDIC_VOICE_1_CARJACKED_5, + SFX_MEDIC_VOICE_1_RUN_FROM_FIGHT_1, + SFX_MEDIC_VOICE_1_RUN_FROM_FIGHT_2, + SFX_MEDIC_VOICE_1_RUN_FROM_FIGHT_3, + SFX_MEDIC_VOICE_1_RUN_FROM_FIGHT_4, + SFX_MEDIC_VOICE_1_RUN_FROM_FIGHT_5, + SFX_MEDIC_VOICE_1_RUN_FROM_FIGHT_6, + SFX_MEDIC_VOICE_1_GET_OUT_VAN_CHAT_1, + SFX_MEDIC_VOICE_1_GET_OUT_VAN_CHAT_2, + SFX_MEDIC_VOICE_1_GET_OUT_VAN_CHAT_3, + SFX_MEDIC_VOICE_1_GET_OUT_VAN_CHAT_4, + SFX_MEDIC_VOICE_1_GET_OUT_VAN_CHAT_5, + SFX_MEDIC_VOICE_1_GET_OUT_VAN_CHAT_6, + SFX_MEDIC_VOICE_1_GET_OUT_VAN_CHAT_7, + SFX_MEDIC_VOICE_1_GET_OUT_VAN_CHAT_8, + SFX_MEDIC_VOICE_1_GET_OUT_VAN_CHAT_9, + SFX_MEDIC_VOICE_1_AT_VICTIM_1, + SFX_MEDIC_VOICE_1_AT_VICTIM_2, + SFX_MEDIC_VOICE_1_AT_VICTIM_3, + SFX_MEDIC_VOICE_1_AT_VICTIM_4, + SFX_MEDIC_VOICE_1_AT_VICTIM_5, + SFX_MEDIC_VOICE_1_AT_VICTIM_6, + SFX_MEDIC_VOICE_1_AT_VICTIM_7, + SFX_MEDIC_VOICE_1_AT_VICTIM_8, + SFX_MEDIC_VOICE_1_AT_VICTIM_9, + SFX_MEDIC_VOICE_1_AT_VICTIM_10, + SFX_MEDIC_VOICE_1_AT_VICTIM_11, + SFX_MEDIC_VOICE_1_AT_VICTIM_12, + SFX_MEDIC_VOICE_2_GUN_PANIC_1, + SFX_MEDIC_VOICE_2_GUN_PANIC_2, + SFX_MEDIC_VOICE_2_GUN_PANIC_3, + SFX_MEDIC_VOICE_2_GUN_PANIC_4, + SFX_MEDIC_VOICE_2_GUN_PANIC_5, + SFX_MEDIC_VOICE_2_CARJACKED_1, + SFX_MEDIC_VOICE_2_CARJACKED_2, + SFX_MEDIC_VOICE_2_CARJACKED_3, + SFX_MEDIC_VOICE_2_CARJACKED_4, + SFX_MEDIC_VOICE_2_CARJACKED_5, + SFX_MEDIC_VOICE_2_RUN_FROM_FIGHT_1, + SFX_MEDIC_VOICE_2_RUN_FROM_FIGHT_2, + SFX_MEDIC_VOICE_2_RUN_FROM_FIGHT_3, + SFX_MEDIC_VOICE_2_RUN_FROM_FIGHT_4, + SFX_MEDIC_VOICE_2_RUN_FROM_FIGHT_5, + SFX_MEDIC_VOICE_2_RUN_FROM_FIGHT_6, + SFX_MEDIC_VOICE_2_GET_OUT_VAN_CHAT_1, + SFX_MEDIC_VOICE_2_GET_OUT_VAN_CHAT_2, + SFX_MEDIC_VOICE_2_GET_OUT_VAN_CHAT_3, + SFX_MEDIC_VOICE_2_GET_OUT_VAN_CHAT_4, + SFX_MEDIC_VOICE_2_GET_OUT_VAN_CHAT_5, + SFX_MEDIC_VOICE_2_GET_OUT_VAN_CHAT_6, + SFX_MEDIC_VOICE_2_GET_OUT_VAN_CHAT_7, + SFX_MEDIC_VOICE_2_GET_OUT_VAN_CHAT_8, + SFX_MEDIC_VOICE_2_GET_OUT_VAN_CHAT_9, + SFX_MEDIC_VOICE_2_AT_VICTIM_1, + SFX_MEDIC_VOICE_2_AT_VICTIM_2, + SFX_MEDIC_VOICE_2_AT_VICTIM_3, + SFX_MEDIC_VOICE_2_AT_VICTIM_4, + SFX_MEDIC_VOICE_2_AT_VICTIM_5, + SFX_MEDIC_VOICE_2_AT_VICTIM_6, + SFX_MEDIC_VOICE_2_AT_VICTIM_7, + SFX_MEDIC_VOICE_2_AT_VICTIM_8, + SFX_MEDIC_VOICE_2_AT_VICTIM_9, + SFX_MEDIC_VOICE_2_AT_VICTIM_10, + SFX_MEDIC_VOICE_2_AT_VICTIM_11, + SFX_MEDIC_VOICE_2_AT_VICTIM_12, + SFX_PLASTER_BLOKE_1, + SFX_PLASTER_BLOKE_2, + SFX_PLASTER_BLOKE_3, + SFX_PLASTER_BLOKE_4, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_CHAT_1, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_CHAT_2, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_CHAT_3, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_CHAT_4, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_DODGE_1, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_DODGE_2, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_DODGE_3, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_DODGE_4, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_DODGE_5, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_EYING_1, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_EYING_2, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_EYING_3, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_EYING_4, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_FIGHT_1, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_FIGHT_2, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_FIGHT_3, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_FIGHT_4, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_FIGHT_5, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_GUN_PANIC_1, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_GUN_PANIC_2, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_GUN_PANIC_3, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_CARJACKED_1, + SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_CARJACKED_2, + SFX_FOOTBALL_FEMALE_VOICE_1_DRIVER_ABUSE_1, + SFX_FOOTBALL_FEMALE_VOICE_1_DRIVER_ABUSE_2, + SFX_FOOTBALL_FEMALE_VOICE_1_DRIVER_ABUSE_3, + SFX_FOOTBALL_FEMALE_VOICE_1_DRIVER_ABUSE_4, + SFX_FOOTBALL_FEMALE_VOICE_1_DRIVER_ABUSE_5, + SFX_FOOTBALL_FEMALE_VOICE_1_CHAT_1, + SFX_FOOTBALL_FEMALE_VOICE_1_CHAT_2, + SFX_FOOTBALL_FEMALE_VOICE_1_CHAT_3, + SFX_FOOTBALL_FEMALE_VOICE_1_CHAT_4, + SFX_FOOTBALL_FEMALE_VOICE_1_CHAT_5, + SFX_FOOTBALL_FEMALE_VOICE_1_CHAT_6, + SFX_FOOTBALL_FEMALE_VOICE_1_DODGE_1, + SFX_FOOTBALL_FEMALE_VOICE_1_DODGE_2, + SFX_FOOTBALL_FEMALE_VOICE_1_DODGE_3, + SFX_FOOTBALL_FEMALE_VOICE_1_DODGE_4, + SFX_FOOTBALL_FEMALE_VOICE_1_MUGGED_1, + SFX_FOOTBALL_FEMALE_VOICE_1_SHOCKED_1, + SFX_FOOTBALL_FEMALE_VOICE_1_SHOCKED_2, + SFX_FOOTBALL_FEMALE_VOICE_2_DRIVER_ABUSE_1, + SFX_FOOTBALL_FEMALE_VOICE_2_DRIVER_ABUSE_2, + SFX_FOOTBALL_FEMALE_VOICE_2_DRIVER_ABUSE_3, + SFX_FOOTBALL_FEMALE_VOICE_2_DRIVER_ABUSE_4, + SFX_FOOTBALL_FEMALE_VOICE_2_DRIVER_ABUSE_5, + SFX_FOOTBALL_FEMALE_VOICE_2_CHAT_1, + SFX_FOOTBALL_FEMALE_VOICE_2_CHAT_2, + SFX_FOOTBALL_FEMALE_VOICE_2_CHAT_3, + SFX_FOOTBALL_FEMALE_VOICE_2_CHAT_4, + SFX_FOOTBALL_FEMALE_VOICE_2_CHAT_5, + SFX_FOOTBALL_FEMALE_VOICE_2_CHAT_6, + SFX_FOOTBALL_FEMALE_VOICE_2_DODGE_1, + SFX_FOOTBALL_FEMALE_VOICE_2_DODGE_2, + SFX_FOOTBALL_FEMALE_VOICE_2_DODGE_3, + SFX_FOOTBALL_FEMALE_VOICE_2_DODGE_4, + SFX_FOOTBALL_FEMALE_VOICE_2_MUGGED_1, + SFX_FOOTBALL_FEMALE_VOICE_2_SHOCKED_1, + SFX_FOOTBALL_FEMALE_VOICE_2_SHOCKED_2, + SFX_FOOTBALL_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_FOOTBALL_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_FOOTBALL_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_FOOTBALL_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_FOOTBALL_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_FOOTBALL_MALE_VOICE_1_CHAT_1, + SFX_FOOTBALL_MALE_VOICE_1_CHAT_2, + SFX_FOOTBALL_MALE_VOICE_1_CHAT_3, + SFX_FOOTBALL_MALE_VOICE_1_CHAT_4, + SFX_FOOTBALL_MALE_VOICE_1_CHAT_5, + SFX_FOOTBALL_MALE_VOICE_1_CHAT_6, + SFX_FOOTBALL_MALE_VOICE_1_DODGE_1, + SFX_FOOTBALL_MALE_VOICE_1_DODGE_2, + SFX_FOOTBALL_MALE_VOICE_1_DODGE_3, + SFX_FOOTBALL_MALE_VOICE_1_DODGE_4, + SFX_FOOTBALL_MALE_VOICE_1_FIGHT_1, + SFX_FOOTBALL_MALE_VOICE_1_FIGHT_2, + SFX_FOOTBALL_MALE_VOICE_1_FIGHT_3, + SFX_FOOTBALL_MALE_VOICE_1_SHOCKED_1, + SFX_FOOTBALL_MALE_VOICE_1_SHOCKED_2, + SFX_FOOTBALL_MALE_VOICE_2_DRIVER_ABUSE_1, + SFX_FOOTBALL_MALE_VOICE_2_DRIVER_ABUSE_2, + SFX_FOOTBALL_MALE_VOICE_2_DRIVER_ABUSE_3, + SFX_FOOTBALL_MALE_VOICE_2_DRIVER_ABUSE_4, + SFX_FOOTBALL_MALE_VOICE_2_DRIVER_ABUSE_5, + SFX_FOOTBALL_MALE_VOICE_2_CHAT_1, + SFX_FOOTBALL_MALE_VOICE_2_CHAT_2, + SFX_FOOTBALL_MALE_VOICE_2_CHAT_3, + SFX_FOOTBALL_MALE_VOICE_2_CHAT_4, + SFX_FOOTBALL_MALE_VOICE_2_CHAT_5, + SFX_FOOTBALL_MALE_VOICE_2_CHAT_6, + SFX_FOOTBALL_MALE_VOICE_2_DODGE_1, + SFX_FOOTBALL_MALE_VOICE_2_DODGE_2, + SFX_FOOTBALL_MALE_VOICE_2_DODGE_3, + SFX_FOOTBALL_MALE_VOICE_2_DODGE_4, + SFX_FOOTBALL_MALE_VOICE_2_FIGHT_1, + SFX_FOOTBALL_MALE_VOICE_2_FIGHT_2, + SFX_FOOTBALL_MALE_VOICE_2_FIGHT_3, + SFX_FOOTBALL_MALE_VOICE_2_SHOCKED_1, + SFX_FOOTBALL_MALE_VOICE_2_SHOCKED_2, + SFX_MODEL_FEMALE_VOICE_1_DRIVER_ABUSE_1, + SFX_MODEL_FEMALE_VOICE_1_DRIVER_ABUSE_2, + SFX_MODEL_FEMALE_VOICE_1_DRIVER_ABUSE_3, + SFX_MODEL_FEMALE_VOICE_1_DRIVER_ABUSE_4, + SFX_MODEL_FEMALE_VOICE_1_DRIVER_ABUSE_5, + SFX_MODEL_FEMALE_VOICE_1_DRIVER_ABUSE_6, + SFX_MODEL_FEMALE_VOICE_1_DRIVER_ABUSE_7, + SFX_MODEL_FEMALE_VOICE_1_CHAT_1, + SFX_MODEL_FEMALE_VOICE_1_CHAT_2, + SFX_MODEL_FEMALE_VOICE_1_CHAT_3, + SFX_MODEL_FEMALE_VOICE_1_CHAT_4, + SFX_MODEL_FEMALE_VOICE_1_CHAT_5, + SFX_MODEL_FEMALE_VOICE_1_CHAT_6, + SFX_MODEL_FEMALE_VOICE_1_CHAT_7, + SFX_MODEL_FEMALE_VOICE_1_CHAT_8, + SFX_MODEL_FEMALE_VOICE_1_DODGE_1, + SFX_MODEL_FEMALE_VOICE_1_DODGE_2, + SFX_MODEL_FEMALE_VOICE_1_DODGE_3, + SFX_MODEL_FEMALE_VOICE_1_DODGE_4, + SFX_MODEL_FEMALE_VOICE_1_GUN_PANIC_1, + SFX_MODEL_FEMALE_VOICE_1_GUN_PANIC_2, + SFX_MODEL_FEMALE_VOICE_1_GUN_PANIC_3, + SFX_MODEL_FEMALE_VOICE_1_GUN_PANIC_4, + SFX_MODEL_FEMALE_VOICE_1_MUGGED_1, + SFX_MODEL_FEMALE_VOICE_1_MUGGED_2, + SFX_MODEL_FEMALE_VOICE_1_MUGGED_3, + SFX_MODEL_FEMALE_VOICE_1_SHOCKED_1, + SFX_MODEL_FEMALE_VOICE_1_SHOCKED_2, + SFX_MODEL_FEMALE_VOICE_1_SHOCKED_3, + SFX_MODEL_FEMALE_VOICE_1_SHOCKED_4, + SFX_MODEL_FEMALE_VOICE_1_SHOCKED_5, + SFX_MODEL_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_MODEL_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_MODEL_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_MODEL_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_MODEL_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_MODEL_MALE_VOICE_1_DRIVER_ABUSE_6, + SFX_MODEL_MALE_VOICE_1_CHAT_1, + SFX_MODEL_MALE_VOICE_1_CHAT_2, + SFX_MODEL_MALE_VOICE_1_CHAT_3, + SFX_MODEL_MALE_VOICE_1_CHAT_4, + SFX_MODEL_MALE_VOICE_1_CHAT_5, + SFX_MODEL_MALE_VOICE_1_CHAT_6, + SFX_MODEL_MALE_VOICE_1_DODGE_1, + SFX_MODEL_MALE_VOICE_1_DODGE_2, + SFX_MODEL_MALE_VOICE_1_DODGE_3, + SFX_MODEL_MALE_VOICE_1_DODGE_4, + SFX_MODEL_MALE_VOICE_1_DODGE_5, + SFX_MODEL_MALE_VOICE_1_DODGE_6, + SFX_MODEL_MALE_VOICE_1_EYING_1, + SFX_MODEL_MALE_VOICE_1_EYING_2, + SFX_MODEL_MALE_VOICE_1_EYING_3, + SFX_MODEL_MALE_VOICE_1_FIGHT_1, + SFX_MODEL_MALE_VOICE_1_FIGHT_2, + SFX_MODEL_MALE_VOICE_1_FIGHT_3, + SFX_MODEL_MALE_VOICE_1_FIGHT_4, + SFX_MODEL_MALE_VOICE_1_FIGHT_5, + SFX_MODEL_MALE_VOICE_1_CARJACKED_1, + SFX_MODEL_MALE_VOICE_1_CARJACKED_2, + SFX_MODEL_MALE_VOICE_1_MUGGED_1, + SFX_MODEL_MALE_VOICE_1_MUGGED_2, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_DRIVER_ABUSE_1, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_DRIVER_ABUSE_2, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_DRIVER_ABUSE_3, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_DRIVER_ABUSE_4, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_DRIVER_ABUSE_5, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_DRIVER_ABUSE_6, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_CHAT_1, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_CHAT_2, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_CHAT_3, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_CHAT_4, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_CHAT_5, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_CHAT_6, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_DODGE_1, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_DODGE_2, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_DODGE_3, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_DODGE_4, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_DODGE_5, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_EYING_1, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_EYING_2, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_EYING_3, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_FIGHT_1, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_FIGHT_2, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_FIGHT_3, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_FIGHT_4, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_FIGHT_5, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_FIGHT_6, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_GUN_PANIC_1, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_GUN_PANIC_2, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_CARJACKED_1, + SFX_CHINATOWN_MALE_YOUNG_VOICE_1_CARJACKED_2, + SFX_SCUM_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_SCUM_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_SCUM_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_SCUM_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_SCUM_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_SCUM_MALE_VOICE_1_DRIVER_ABUSE_6, + SFX_SCUM_MALE_VOICE_1_CHAT_1, + SFX_SCUM_MALE_VOICE_1_CHAT_2, + SFX_SCUM_MALE_VOICE_1_CHAT_3, + SFX_SCUM_MALE_VOICE_1_CHAT_4, + SFX_SCUM_MALE_VOICE_1_CHAT_5, + SFX_SCUM_MALE_VOICE_1_CHAT_6, + SFX_SCUM_MALE_VOICE_1_CHAT_7, + SFX_SCUM_MALE_VOICE_1_CHAT_8, + SFX_SCUM_MALE_VOICE_1_CHAT_9, + SFX_SCUM_MALE_VOICE_1_DODGE_1, + SFX_SCUM_MALE_VOICE_1_DODGE_2, + SFX_SCUM_MALE_VOICE_1_DODGE_3, + SFX_SCUM_MALE_VOICE_1_DODGE_4, + SFX_SCUM_MALE_VOICE_1_DODGE_5, + SFX_SCUM_MALE_VOICE_1_EYING_1, + SFX_SCUM_MALE_VOICE_1_EYING_2, + SFX_SCUM_MALE_VOICE_1_EYING_3, + SFX_SCUM_MALE_VOICE_1_EYING_4, + SFX_SCUM_MALE_VOICE_1_EYING_5, + SFX_SCUM_MALE_VOICE_1_FIGHT_1, + SFX_SCUM_MALE_VOICE_1_FIGHT_2, + SFX_SCUM_MALE_VOICE_1_FIGHT_3, + SFX_SCUM_MALE_VOICE_1_FIGHT_4, + SFX_SCUM_MALE_VOICE_1_FIGHT_5, + SFX_SCUM_MALE_VOICE_1_FIGHT_6, + SFX_SCUM_MALE_VOICE_1_FIGHT_7, + SFX_SCUM_MALE_VOICE_1_FIGHT_8, + SFX_SCUM_MALE_VOICE_1_FIGHT_9, + SFX_SCUM_MALE_VOICE_1_FIGHT_10, + SFX_SCUM_MALE_VOICE_1_GUN_PANIC_1, + SFX_SCUM_MALE_VOICE_1_GUN_PANIC_2, + SFX_SCUM_MALE_VOICE_1_GUN_PANIC_3, + SFX_SCUM_MALE_VOICE_1_GUN_PANIC_4, + SFX_SCUM_MALE_VOICE_1_GUN_PANIC_5, + SFX_SCUM_MALE_VOICE_1_LOST_1, + SFX_SCUM_MALE_VOICE_1_LOST_2, + SFX_SCUM_MALE_VOICE_1_LOST_3, + SFX_SCUM_MALE_VOICE_1_MUGGED_1, + SFX_SCUM_FEMALE_VOICE_1_DRIVER_ABUSE_1, + SFX_SCUM_FEMALE_VOICE_1_DRIVER_ABUSE_2, + SFX_SCUM_FEMALE_VOICE_1_DRIVER_ABUSE_3, + SFX_SCUM_FEMALE_VOICE_1_DRIVER_ABUSE_4, + SFX_SCUM_FEMALE_VOICE_1_DRIVER_ABUSE_5, + SFX_SCUM_FEMALE_VOICE_1_CHAT_1, + SFX_SCUM_FEMALE_VOICE_1_CHAT_2, + SFX_SCUM_FEMALE_VOICE_1_CHAT_3, + SFX_SCUM_FEMALE_VOICE_1_CHAT_4, + SFX_SCUM_FEMALE_VOICE_1_CHAT_5, + SFX_SCUM_FEMALE_VOICE_1_CHAT_6, + SFX_SCUM_FEMALE_VOICE_1_CHAT_7, + SFX_SCUM_FEMALE_VOICE_1_CHAT_8, + SFX_SCUM_FEMALE_VOICE_1_CHAT_9, + SFX_SCUM_FEMALE_VOICE_1_CHAT_10, + SFX_SCUM_FEMALE_VOICE_1_CHAT_11, + SFX_SCUM_FEMALE_VOICE_1_CHAT_12, + SFX_SCUM_FEMALE_VOICE_1_CHAT_13, + SFX_SCUM_FEMALE_VOICE_1_DODGE_1, + SFX_SCUM_FEMALE_VOICE_1_DODGE_2, + SFX_SCUM_FEMALE_VOICE_1_DODGE_3, + SFX_SCUM_FEMALE_VOICE_1_DODGE_4, + SFX_SCUM_FEMALE_VOICE_1_DODGE_5, + SFX_SCUM_FEMALE_VOICE_1_DODGE_6, + SFX_SCUM_FEMALE_VOICE_1_DODGE_7, + SFX_SCUM_FEMALE_VOICE_1_DODGE_8, + SFX_SCUM_FEMALE_VOICE_1_FIGHT_1, + SFX_SCUM_FEMALE_VOICE_1_FIGHT_2, + SFX_SCUM_FEMALE_VOICE_1_FIGHT_3, + SFX_SCUM_FEMALE_VOICE_1_FIGHT_4, + SFX_SCUM_FEMALE_VOICE_1_GUN_PANIC_1, + SFX_SCUM_FEMALE_VOICE_1_GUN_PANIC_2, + SFX_SCUM_FEMALE_VOICE_1_GUN_PANIC_3, + SFX_SCUM_FEMALE_VOICE_1_GUN_PANIC_4, + SFX_SCUM_FEMALE_VOICE_1_MUGGED_1, + SFX_SCUM_FEMALE_VOICE_1_MUGGED_2, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_DRIVER_ABUSE_1, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_DRIVER_ABUSE_2, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_DRIVER_ABUSE_3, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_DRIVER_ABUSE_4, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_DRIVER_ABUSE_5, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_DRIVER_ABUSE_6, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_CHAT_1, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_CHAT_2, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_CHAT_3, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_CHAT_4, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_CHAT_5, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_CHAT_6, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_CHAT_7, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_DODGE_1, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_DODGE_2, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_DODGE_3, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_DODGE_4, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_DODGE_5, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_GUN_PANIC_1, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_GUN_PANIC_2, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_GUN_PANIC_3, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_GUN_PANIC_4, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_CARJACKED_1, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_MUGGED_1, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_MUGGED_2, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_SHOCKED_1, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_SHOCKED_2, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_SHOCKED_3, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_SHOCKED_4, + SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_SHOCKED_5, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_DRIVER_ABUSE_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_DRIVER_ABUSE_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_DRIVER_ABUSE_3, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_DRIVER_ABUSE_4, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_DRIVER_ABUSE_5, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_DRIVER_ABUSE_6, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_CHAT_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_CHAT_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_CHAT_3, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_CHAT_4, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_CHAT_5, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_CHAT_6, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_DODGE_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_DODGE_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_DODGE_3, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_DODGE_4, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_FIGHT_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_FIGHT_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_FIGHT_3, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_FIGHT_4, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_GUN_PANIC_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_GUN_PANIC_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_GUN_PANIC_3, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_CARJACKED_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_CARJACKED_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_MUGGED_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_MUGGED_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_RUN_FROM_FIGHT_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_RUN_FROM_FIGHT_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_RUN_FROM_FIGHT_3, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_RUN_FROM_FIGHT_4, + SFX_BUSINESS_MALE_YOUNG_VOICE_1_RUN_FROM_FIGHT_5, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_DRIVER_ABUSE_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_DRIVER_ABUSE_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_DRIVER_ABUSE_3, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_DRIVER_ABUSE_4, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_DRIVER_ABUSE_5, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_DRIVER_ABUSE_6, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_CHAT_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_CHAT_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_CHAT_3, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_CHAT_4, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_CHAT_5, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_CHAT_6, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_DODGE_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_DODGE_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_DODGE_3, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_DODGE_4, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_FIGHT_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_FIGHT_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_FIGHT_3, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_FIGHT_4, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_GUN_PANIC_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_GUN_PANIC_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_GUN_PANIC_3, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_CARJACKED_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_CARJACKED_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_MUGGED_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_MUGGED_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_RUN_FROM_FIGHT_1, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_RUN_FROM_FIGHT_2, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_RUN_FROM_FIGHT_3, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_RUN_FROM_FIGHT_4, + SFX_BUSINESS_MALE_YOUNG_VOICE_2_RUN_FROM_FIGHT_5, + SFX_BLACK_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_1, + SFX_BLACK_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_2, + SFX_BLACK_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_3, + SFX_BLACK_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_4, + SFX_BLACK_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_5, + SFX_BLACK_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_6, + SFX_BLACK_FAT_FEMALE_VOICE_1_CHAT_1, + SFX_BLACK_FAT_FEMALE_VOICE_1_CHAT_2, + SFX_BLACK_FAT_FEMALE_VOICE_1_CHAT_3, + SFX_BLACK_FAT_FEMALE_VOICE_1_CHAT_4, + SFX_BLACK_FAT_FEMALE_VOICE_1_CHAT_5, + SFX_BLACK_FAT_FEMALE_VOICE_1_CHAT_6, + SFX_BLACK_FAT_FEMALE_VOICE_1_CHAT_7, + SFX_BLACK_FAT_FEMALE_VOICE_1_DODGE_1, + SFX_BLACK_FAT_FEMALE_VOICE_1_DODGE_2, + SFX_BLACK_FAT_FEMALE_VOICE_1_DODGE_3, + SFX_BLACK_FAT_FEMALE_VOICE_1_DODGE_4, + SFX_BLACK_FAT_FEMALE_VOICE_1_DODGE_5, + SFX_BLACK_FAT_FEMALE_VOICE_1_GUN_PANIC_1, + SFX_BLACK_FAT_FEMALE_VOICE_1_GUN_PANIC_2, + SFX_BLACK_FAT_FEMALE_VOICE_1_GUN_PANIC_3, + SFX_BLACK_FAT_FEMALE_VOICE_1_GUN_PANIC_4, + SFX_BLACK_FAT_FEMALE_VOICE_1_CARJACKED_1, + SFX_BLACK_FAT_FEMALE_VOICE_1_CARJACKED_2, + SFX_BLACK_FAT_FEMALE_VOICE_1_MUGGED_1, + SFX_BLACK_FAT_FEMALE_VOICE_1_MUGGED_2, + SFX_BLACK_FAT_FEMALE_VOICE_1_SHOCKED_1, + SFX_BLACK_FAT_FEMALE_VOICE_1_SHOCKED_2, + SFX_BLACK_FAT_FEMALE_VOICE_1_SHOCKED_3, + SFX_BLACK_FAT_FEMALE_VOICE_1_SHOCKED_4, + SFX_BLACK_FAT_FEMALE_VOICE_1_SHOCKED_5, + SFX_WHITE_DOCKER_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_WHITE_DOCKER_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_WHITE_DOCKER_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_WHITE_DOCKER_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_WHITE_DOCKER_MALE_VOICE_1_CHAT_1, + SFX_WHITE_DOCKER_MALE_VOICE_1_CHAT_2, + SFX_WHITE_DOCKER_MALE_VOICE_1_CHAT_3, + SFX_WHITE_DOCKER_MALE_VOICE_1_CHAT_4, + SFX_WHITE_DOCKER_MALE_VOICE_1_CHAT_5, + SFX_WHITE_DOCKER_MALE_VOICE_1_DODGE_1, + SFX_WHITE_DOCKER_MALE_VOICE_1_DODGE_2, + SFX_WHITE_DOCKER_MALE_VOICE_1_DODGE_3, + SFX_WHITE_DOCKER_MALE_VOICE_1_DODGE_4, + SFX_WHITE_DOCKER_MALE_VOICE_1_EYING_1, + SFX_WHITE_DOCKER_MALE_VOICE_1_EYING_2, + SFX_WHITE_DOCKER_MALE_VOICE_1_EYING_3, + SFX_WHITE_DOCKER_MALE_VOICE_1_FIGHT_1, + SFX_WHITE_DOCKER_MALE_VOICE_1_FIGHT_2, + SFX_WHITE_DOCKER_MALE_VOICE_1_FIGHT_3, + SFX_WHITE_DOCKER_MALE_VOICE_1_GUN_PANIC_1, + SFX_WHITE_DOCKER_MALE_VOICE_1_GUN_PANIC_2, + SFX_HOSPITAL_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_HOSPITAL_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_HOSPITAL_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_HOSPITAL_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_HOSPITAL_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_HOSPITAL_MALE_VOICE_1_CHAT_1, + SFX_HOSPITAL_MALE_VOICE_1_CHAT_2, + SFX_HOSPITAL_MALE_VOICE_1_CHAT_3, + SFX_HOSPITAL_MALE_VOICE_1_CHAT_4, + SFX_HOSPITAL_MALE_VOICE_1_CHAT_5, + SFX_HOSPITAL_MALE_VOICE_1_DODGE_1, + SFX_HOSPITAL_MALE_VOICE_1_DODGE_2, + SFX_HOSPITAL_MALE_VOICE_1_DODGE_3, + SFX_HOSPITAL_MALE_VOICE_1_DODGE_4, + SFX_HOSPITAL_MALE_VOICE_1_FIGHT_1, + SFX_HOSPITAL_MALE_VOICE_1_FIGHT_2, + SFX_HOSPITAL_MALE_VOICE_1_FIGHT_3, + SFX_HOSPITAL_MALE_VOICE_1_FIGHT_4, + SFX_HOSPITAL_MALE_VOICE_1_GUN_PANIC_1, + SFX_HOSPITAL_MALE_VOICE_1_GUN_PANIC_2, + SFX_HOSPITAL_MALE_VOICE_1_GUN_PANIC_3, + SFX_HOSPITAL_MALE_VOICE_1_GUN_PANIC_4, + SFX_HOSPITAL_FEMALE_VOICE_1_DRIVER_ABUSE_1, + SFX_HOSPITAL_FEMALE_VOICE_1_DRIVER_ABUSE_2, + SFX_HOSPITAL_FEMALE_VOICE_1_DRIVER_ABUSE_3, + SFX_HOSPITAL_FEMALE_VOICE_1_DRIVER_ABUSE_4, + SFX_HOSPITAL_FEMALE_VOICE_1_DRIVER_ABUSE_5, + SFX_HOSPITAL_FEMALE_VOICE_1_DRIVER_ABUSE_6, + SFX_HOSPITAL_FEMALE_VOICE_1_CHAT_1, + SFX_HOSPITAL_FEMALE_VOICE_1_CHAT_2, + SFX_HOSPITAL_FEMALE_VOICE_1_CHAT_3, + SFX_HOSPITAL_FEMALE_VOICE_1_CHAT_4, + SFX_HOSPITAL_FEMALE_VOICE_1_CHAT_5, + SFX_HOSPITAL_FEMALE_VOICE_1_CHAT_6, + SFX_HOSPITAL_FEMALE_VOICE_1_DODGE_1, + SFX_HOSPITAL_FEMALE_VOICE_1_DODGE_2, + SFX_HOSPITAL_FEMALE_VOICE_1_DODGE_3, + SFX_HOSPITAL_FEMALE_VOICE_1_DODGE_4, + SFX_HOSPITAL_FEMALE_VOICE_1_DODGE_5, + SFX_FEMALE_1_VOICE_1_DRIVER_ABUSE_1, + SFX_FEMALE_1_VOICE_1_DRIVER_ABUSE_2, + SFX_FEMALE_1_VOICE_1_DRIVER_ABUSE_3, + SFX_FEMALE_1_VOICE_1_DRIVER_ABUSE_4, + SFX_FEMALE_1_VOICE_1_DRIVER_ABUSE_5, + SFX_FEMALE_1_VOICE_1_DRIVER_ABUSE_6, + SFX_FEMALE_1_VOICE_1_DRIVER_ABUSE_7, + SFX_FEMALE_1_VOICE_1_CHAT_1, + SFX_FEMALE_1_VOICE_1_CHAT_2, + SFX_FEMALE_1_VOICE_1_CHAT_3, + SFX_FEMALE_1_VOICE_1_CHAT_4, + SFX_FEMALE_1_VOICE_1_CHAT_5, + SFX_FEMALE_1_VOICE_1_CHAT_6, + SFX_FEMALE_1_VOICE_1_CHAT_7, + SFX_FEMALE_1_VOICE_1_CHAT_8, + SFX_FEMALE_1_VOICE_1_DODGE_1, + SFX_FEMALE_1_VOICE_1_DODGE_2, + SFX_FEMALE_1_VOICE_1_DODGE_3, + SFX_FEMALE_1_VOICE_1_DODGE_4, + SFX_FEMALE_1_VOICE_1_DODGE_5, + SFX_FEMALE_1_VOICE_1_DODGE_6, + SFX_FEMALE_1_VOICE_1_GUN_PANIC_1, + SFX_FEMALE_1_VOICE_1_GUN_PANIC_2, + SFX_FEMALE_1_VOICE_1_CARJACKED_1, + SFX_FEMALE_1_VOICE_1_CARJACKED_2, + SFX_FEMALE_1_VOICE_1_MUGGED_1, + SFX_FEMALE_1_VOICE_1_MUGGED_2, + SFX_FEMALE_1_VOICE_1_MUGGED_3, + SFX_FEMALE_1_VOICE_1_RUN_FROM_FIGHT_1, + SFX_FEMALE_1_VOICE_1_RUN_FROM_FIGHT_2, + SFX_FEMALE_1_VOICE_1_SHOCKED_1, + SFX_FEMALE_1_VOICE_1_SHOCKED_2, + SFX_FEMALE_1_VOICE_1_SHOCKED_3, + SFX_FEMALE_1_VOICE_1_SHOCKED_4, + SFX_FEMALE_3_VOICE_1_DRIVER_ABUSE_1, + SFX_FEMALE_3_VOICE_1_DRIVER_ABUSE_2, + SFX_FEMALE_3_VOICE_1_DRIVER_ABUSE_3, + SFX_FEMALE_3_VOICE_1_DRIVER_ABUSE_4, + SFX_FEMALE_3_VOICE_1_DRIVER_ABUSE_5, + SFX_FEMALE_3_VOICE_1_DRIVER_ABUSE_6, + SFX_FEMALE_3_VOICE_1_CHAT_1, + SFX_FEMALE_3_VOICE_1_CHAT_2, + SFX_FEMALE_3_VOICE_1_CHAT_3, + SFX_FEMALE_3_VOICE_1_CHAT_4, + SFX_FEMALE_3_VOICE_1_CHAT_5, + SFX_FEMALE_3_VOICE_1_DODGE_1, + SFX_FEMALE_3_VOICE_1_DODGE_2, + SFX_FEMALE_3_VOICE_1_DODGE_3, + SFX_FEMALE_3_VOICE_1_DODGE_4, + SFX_FEMALE_3_VOICE_1_DODGE_5, + SFX_FEMALE_3_VOICE_1_DODGE_6, + SFX_FEMALE_3_VOICE_1_GUN_PANIC_1, + SFX_FEMALE_3_VOICE_1_GUN_PANIC_2, + SFX_FEMALE_3_VOICE_1_GUN_PANIC_3, + SFX_FEMALE_3_VOICE_1_GUN_PANIC_4, + SFX_FEMALE_3_VOICE_1_GUN_PANIC_5, + SFX_FEMALE_3_VOICE_1_CARJACKED_1, + SFX_FEMALE_3_VOICE_1_CARJACKED_2, + SFX_FEMALE_3_VOICE_1_CARJACKED_3, + SFX_FEMALE_3_VOICE_1_MUGGED_1, + SFX_FEMALE_3_VOICE_1_MUGGED_2, + SFX_FEMALE_3_VOICE_1_MUGGED_3, + SFX_FEMALE_3_VOICE_1_RUN_FROM_FIGHT_1, + SFX_FEMALE_3_VOICE_1_RUN_FROM_FIGHT_2, + SFX_FEMALE_3_VOICE_1_RUN_FROM_FIGHT_3, + SFX_FEMALE_3_VOICE_1_RUN_FROM_FIGHT_4, + SFX_FEMALE_3_VOICE_1_SHOCKED_1, + SFX_FEMALE_3_VOICE_1_SHOCKED_2, + SFX_FEMALE_3_VOICE_1_SHOCKED_3, + SFX_FEMALE_3_VOICE_1_SHOCKED_4, + SFX_CASUAL_MALE_OLD_VOICE_1_DRIVER_ABUSE_1, + SFX_CASUAL_MALE_OLD_VOICE_1_DRIVER_ABUSE_2, + SFX_CASUAL_MALE_OLD_VOICE_1_DRIVER_ABUSE_3, + SFX_CASUAL_MALE_OLD_VOICE_1_DRIVER_ABUSE_4, + SFX_CASUAL_MALE_OLD_VOICE_1_DRIVER_ABUSE_5, + SFX_CASUAL_MALE_OLD_VOICE_1_DRIVER_ABUSE_6, + SFX_CASUAL_MALE_OLD_VOICE_1_DRIVER_ABUSE_7, + SFX_CASUAL_MALE_OLD_VOICE_1_CHAT_1, + SFX_CASUAL_MALE_OLD_VOICE_1_CHAT_2, + SFX_CASUAL_MALE_OLD_VOICE_1_CHAT_3, + SFX_CASUAL_MALE_OLD_VOICE_1_CHAT_4, + SFX_CASUAL_MALE_OLD_VOICE_1_CHAT_5, + SFX_CASUAL_MALE_OLD_VOICE_1_CHAT_6, + SFX_CASUAL_MALE_OLD_VOICE_1_CHAT_7, + SFX_CASUAL_MALE_OLD_VOICE_1_DODGE_1, + SFX_CASUAL_MALE_OLD_VOICE_1_DODGE_2, + SFX_CASUAL_MALE_OLD_VOICE_1_DODGE_3, + SFX_CASUAL_MALE_OLD_VOICE_1_DODGE_4, + SFX_CASUAL_MALE_OLD_VOICE_1_EYING_1, + SFX_CASUAL_MALE_OLD_VOICE_1_EYING_2, + SFX_CASUAL_MALE_OLD_VOICE_1_EYING_3, + SFX_CASUAL_MALE_OLD_VOICE_1_EYING_4, + SFX_CASUAL_MALE_OLD_VOICE_1_EYING_5, + SFX_CASUAL_MALE_OLD_VOICE_1_FIGHT_1, + SFX_CASUAL_MALE_OLD_VOICE_1_FIGHT_2, + SFX_CASUAL_MALE_OLD_VOICE_1_FIGHT_3, + SFX_CASUAL_MALE_OLD_VOICE_1_FIGHT_4, + SFX_CASUAL_MALE_OLD_VOICE_1_CARJACKED_1, + SFX_CASUAL_MALE_OLD_VOICE_1_CARJACKED_2, + SFX_CASUAL_MALE_OLD_VOICE_1_CARJACKED_3, + SFX_CASUAL_MALE_OLD_VOICE_1_MUGGED_1, + SFX_CASUAL_MALE_OLD_VOICE_1_MUGGED_2, + SFX_CASUAL_MALE_OLD_VOICE_1_MUGGED_3, + SFX_CASUAL_MALE_OLD_VOICE_1_MUGGED_4, + SFX_STUDENT_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_STUDENT_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_STUDENT_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_STUDENT_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_STUDENT_MALE_VOICE_1_CHAT_1, + SFX_STUDENT_MALE_VOICE_1_CHAT_2, + SFX_STUDENT_MALE_VOICE_1_CHAT_3, + SFX_STUDENT_MALE_VOICE_1_CHAT_4, + SFX_STUDENT_MALE_VOICE_1_CHAT_5, + SFX_STUDENT_MALE_VOICE_1_DODGE_1, + SFX_STUDENT_MALE_VOICE_1_DODGE_2, + SFX_STUDENT_MALE_VOICE_1_DODGE_3, + SFX_STUDENT_MALE_VOICE_1_DODGE_4, + SFX_STUDENT_MALE_VOICE_1_FIGHT_1, + SFX_STUDENT_MALE_VOICE_1_FIGHT_2, + SFX_STUDENT_MALE_VOICE_1_FIGHT_3, + SFX_STUDENT_MALE_VOICE_1_FIGHT_4, + SFX_STUDENT_MALE_VOICE_1_GUN_PANIC_1, + SFX_STUDENT_MALE_VOICE_1_GUN_PANIC_2, + SFX_STUDENT_MALE_VOICE_1_MUGGED_1, + SFX_STUDENT_MALE_VOICE_1_MUGGED_2, + SFX_STUDENT_MALE_VOICE_1_SHOCKED_1, + SFX_STUDENT_MALE_VOICE_1_SHOCKED_2, + SFX_STUDENT_MALE_VOICE_1_SHOCKED_3, + SFX_STUDENT_FEMALE_VOICE_1_DRIVER_ABUSE_1, + SFX_STUDENT_FEMALE_VOICE_1_DRIVER_ABUSE_2, + SFX_STUDENT_FEMALE_VOICE_1_DRIVER_ABUSE_3, + SFX_STUDENT_FEMALE_VOICE_1_DRIVER_ABUSE_4, + SFX_STUDENT_FEMALE_VOICE_1_CHAT_1, + SFX_STUDENT_FEMALE_VOICE_1_CHAT_2, + SFX_STUDENT_FEMALE_VOICE_1_CHAT_3, + SFX_STUDENT_FEMALE_VOICE_1_CHAT_4, + SFX_STUDENT_FEMALE_VOICE_1_DODGE_1, + SFX_STUDENT_FEMALE_VOICE_1_DODGE_2, + SFX_STUDENT_FEMALE_VOICE_1_DODGE_3, + SFX_STUDENT_FEMALE_VOICE_1_DODGE_4, + SFX_STUDENT_FEMALE_VOICE_1_FIGHT_1, + SFX_STUDENT_FEMALE_VOICE_1_FIGHT_2, + SFX_STUDENT_FEMALE_VOICE_1_FIGHT_3, + SFX_STUDENT_FEMALE_VOICE_1_FIGHT_4, + SFX_STUDENT_FEMALE_VOICE_1_GUN_PANIC_1, + SFX_STUDENT_FEMALE_VOICE_1_GUN_PANIC_2, + SFX_STUDENT_FEMALE_VOICE_1_GUN_PANIC_3, + SFX_STUDENT_FEMALE_VOICE_1_GUN_PANIC_4, + SFX_STUDENT_FEMALE_VOICE_1_MUGGED_1, + SFX_STUDENT_FEMALE_VOICE_1_MUGGED_2, + SFX_STUDENT_FEMALE_VOICE_1_SHOCKED_1, + SFX_STUDENT_FEMALE_VOICE_1_SHOCKED_2, + SFX_HOOD_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_HOOD_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_HOOD_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_HOOD_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_HOOD_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_HOOD_MALE_VOICE_1_DRIVER_ABUSE_6, + SFX_HOOD_MALE_VOICE_1_DRIVER_ABUSE_7, + SFX_HOOD_MALE_VOICE_1_CHAT_1, + SFX_HOOD_MALE_VOICE_1_CHAT_2, + SFX_HOOD_MALE_VOICE_1_CHAT_3, + SFX_HOOD_MALE_VOICE_1_CHAT_4, + SFX_HOOD_MALE_VOICE_1_CHAT_5, + SFX_HOOD_MALE_VOICE_1_CHAT_6, + SFX_HOOD_MALE_VOICE_1_DODGE_1, + SFX_HOOD_MALE_VOICE_1_DODGE_2, + SFX_HOOD_MALE_VOICE_1_DODGE_3, + SFX_HOOD_MALE_VOICE_1_DODGE_4, + SFX_HOOD_MALE_VOICE_1_DODGE_5, + SFX_HOOD_MALE_VOICE_1_EYING_1, + SFX_HOOD_MALE_VOICE_1_EYING_2, + SFX_HOOD_MALE_VOICE_1_FIGHT_1, + SFX_HOOD_MALE_VOICE_1_FIGHT_2, + SFX_HOOD_MALE_VOICE_1_FIGHT_3, + SFX_HOOD_MALE_VOICE_1_FIGHT_4, + SFX_HOOD_MALE_VOICE_1_FIGHT_5, + SFX_HOOD_MALE_VOICE_1_FIGHT_6, + SFX_HOOD_MALE_VOICE_1_GUN_COOL_1, + SFX_HOOD_MALE_VOICE_1_GUN_COOL_2, + SFX_HOOD_MALE_VOICE_1_GUN_COOL_3, + SFX_HOOD_MALE_VOICE_1_GUN_COOL_4, + SFX_HOOD_MALE_VOICE_1_GUN_COOL_5, + SFX_HOOD_MALE_VOICE_1_CARJACKED_1, + SFX_HOOD_MALE_VOICE_1_CARJACKED_2, + SFX_HOOD_MALE_VOICE_1_CARJACKING_1, + SFX_HOOD_MALE_VOICE_1_CARJACKING_2, + SFX_HOOD_MALE_VOICE_2_DRIVER_ABUSE_1, + SFX_HOOD_MALE_VOICE_2_DRIVER_ABUSE_2, + SFX_HOOD_MALE_VOICE_2_DRIVER_ABUSE_3, + SFX_HOOD_MALE_VOICE_2_DRIVER_ABUSE_4, + SFX_HOOD_MALE_VOICE_2_DRIVER_ABUSE_5, + SFX_HOOD_MALE_VOICE_2_DRIVER_ABUSE_6, + SFX_HOOD_MALE_VOICE_2_DRIVER_ABUSE_7, + SFX_HOOD_MALE_VOICE_2_CHAT_1, + SFX_HOOD_MALE_VOICE_2_CHAT_2, + SFX_HOOD_MALE_VOICE_2_CHAT_3, + SFX_HOOD_MALE_VOICE_2_CHAT_4, + SFX_HOOD_MALE_VOICE_2_CHAT_5, + SFX_HOOD_MALE_VOICE_2_CHAT_6, + SFX_HOOD_MALE_VOICE_2_DODGE_1, + SFX_HOOD_MALE_VOICE_2_DODGE_2, + SFX_HOOD_MALE_VOICE_2_DODGE_3, + SFX_HOOD_MALE_VOICE_2_DODGE_4, + SFX_HOOD_MALE_VOICE_2_DODGE_5, + SFX_HOOD_MALE_VOICE_2_EYING_1, + SFX_HOOD_MALE_VOICE_2_EYING_2, + SFX_HOOD_MALE_VOICE_2_FIGHT_1, + SFX_HOOD_MALE_VOICE_2_FIGHT_2, + SFX_HOOD_MALE_VOICE_2_FIGHT_3, + SFX_HOOD_MALE_VOICE_2_FIGHT_4, + SFX_HOOD_MALE_VOICE_2_FIGHT_5, + SFX_HOOD_MALE_VOICE_2_FIGHT_6, + SFX_HOOD_MALE_VOICE_2_GUN_COOL_1, + SFX_HOOD_MALE_VOICE_2_GUN_COOL_2, + SFX_HOOD_MALE_VOICE_2_GUN_COOL_3, + SFX_HOOD_MALE_VOICE_2_GUN_COOL_4, + SFX_HOOD_MALE_VOICE_2_GUN_COOL_5, + SFX_HOOD_MALE_VOICE_2_CARJACKED_1, + SFX_HOOD_MALE_VOICE_2_CARJACKED_2, + SFX_HOOD_MALE_VOICE_2_CARJACKING_1, + SFX_HOOD_MALE_VOICE_2_CARJACKING_2, + SFX_YARDIE_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_YARDIE_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_YARDIE_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_YARDIE_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_YARDIE_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_YARDIE_MALE_VOICE_1_DRIVER_ABUSE_6, + SFX_YARDIE_MALE_VOICE_1_CHAT_1, + SFX_YARDIE_MALE_VOICE_1_CHAT_2, + SFX_YARDIE_MALE_VOICE_1_CHAT_3, + SFX_YARDIE_MALE_VOICE_1_CHAT_4, + SFX_YARDIE_MALE_VOICE_1_CHAT_5, + SFX_YARDIE_MALE_VOICE_1_CHAT_6, + SFX_YARDIE_MALE_VOICE_1_CHAT_7, + SFX_YARDIE_MALE_VOICE_1_CHAT_8, + SFX_YARDIE_MALE_VOICE_1_DODGE_1, + SFX_YARDIE_MALE_VOICE_1_DODGE_2, + SFX_YARDIE_MALE_VOICE_1_DODGE_3, + SFX_YARDIE_MALE_VOICE_1_DODGE_4, + SFX_YARDIE_MALE_VOICE_1_DODGE_5, + SFX_YARDIE_MALE_VOICE_1_EYING_1, + SFX_YARDIE_MALE_VOICE_1_EYING_2, + SFX_YARDIE_MALE_VOICE_1_FIGHT_1, + SFX_YARDIE_MALE_VOICE_1_FIGHT_2, + SFX_YARDIE_MALE_VOICE_1_FIGHT_3, + SFX_YARDIE_MALE_VOICE_1_FIGHT_4, + SFX_YARDIE_MALE_VOICE_1_FIGHT_5, + SFX_YARDIE_MALE_VOICE_1_FIGHT_6, + SFX_YARDIE_MALE_VOICE_1_GUN_COOL_1, + SFX_YARDIE_MALE_VOICE_1_CARJACKED_1, + SFX_YARDIE_MALE_VOICE_1_CARJACKING_1, + SFX_YARDIE_MALE_VOICE_1_CARJACKING_2, + SFX_YARDIE_MALE_VOICE_2_DRIVER_ABUSE_1, + SFX_YARDIE_MALE_VOICE_2_DRIVER_ABUSE_2, + SFX_YARDIE_MALE_VOICE_2_DRIVER_ABUSE_3, + SFX_YARDIE_MALE_VOICE_2_DRIVER_ABUSE_4, + SFX_YARDIE_MALE_VOICE_2_DRIVER_ABUSE_5, + SFX_YARDIE_MALE_VOICE_2_DRIVER_ABUSE_6, + SFX_YARDIE_MALE_VOICE_2_CHAT_1, + SFX_YARDIE_MALE_VOICE_2_CHAT_2, + SFX_YARDIE_MALE_VOICE_2_CHAT_3, + SFX_YARDIE_MALE_VOICE_2_CHAT_4, + SFX_YARDIE_MALE_VOICE_2_CHAT_5, + SFX_YARDIE_MALE_VOICE_2_CHAT_6, + SFX_YARDIE_MALE_VOICE_2_CHAT_7, + SFX_YARDIE_MALE_VOICE_2_CHAT_8, + SFX_YARDIE_MALE_VOICE_2_DODGE_1, + SFX_YARDIE_MALE_VOICE_2_DODGE_2, + SFX_YARDIE_MALE_VOICE_2_DODGE_3, + SFX_YARDIE_MALE_VOICE_2_DODGE_4, + SFX_YARDIE_MALE_VOICE_2_DODGE_5, + SFX_YARDIE_MALE_VOICE_2_EYING_1, + SFX_YARDIE_MALE_VOICE_2_EYING_2, + SFX_YARDIE_MALE_VOICE_2_FIGHT_1, + SFX_YARDIE_MALE_VOICE_2_FIGHT_2, + SFX_YARDIE_MALE_VOICE_2_FIGHT_3, + SFX_YARDIE_MALE_VOICE_2_FIGHT_4, + SFX_YARDIE_MALE_VOICE_2_FIGHT_5, + SFX_YARDIE_MALE_VOICE_2_FIGHT_6, + SFX_YARDIE_MALE_VOICE_2_GUN_COOL_1, + SFX_YARDIE_MALE_VOICE_2_CARJACKED_1, + SFX_YARDIE_MALE_VOICE_2_CARJACKING_1, + SFX_YARDIE_MALE_VOICE_2_CARJACKING_2, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_DRIVER_ABUSE_1, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_DRIVER_ABUSE_2, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_DRIVER_ABUSE_3, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_DRIVER_ABUSE_4, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_DRIVER_ABUSE_5, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_DRIVER_ABUSE_6, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_DRIVER_ABUSE_7, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_CHAT_1, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_CHAT_2, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_CHAT_3, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_CHAT_4, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_CHAT_5, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_CHAT_6, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_CHAT_7, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_DODGE_1, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_DODGE_2, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_DODGE_3, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_DODGE_4, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_DODGE_5, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_DODGE_6, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_GUN_PANIC_1, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_GUN_PANIC_2, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_GUN_PANIC_3, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_GUN_PANIC_4, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_GUN_PANIC_5, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_CARAJACKED_1, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_CARAJACKED_2, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_CARAJACKED_3, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_CARAJACKED_4, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_MUGGED_1, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_MUGGED_2, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_MUGGED_3, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_RUN_FROM_FIGHT_1, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_RUN_FROM_FIGHT_2, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_RUN_FROM_FIGHT_3, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_RUN_FROM_FIGHT_4, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_RUN_FROM_FIGHT_5, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_RUN_FROM_FIGHT_6, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_SHOCKED_1, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_SHOCKED_2, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_SHOCKED_3, + SFX_BLACK_BUSINESS_FEMALE_VOICE_1_SHOCKED_4, + SFX_WHITE_WORKER_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_WHITE_WORKER_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_WHITE_WORKER_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_WHITE_WORKER_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_WHITE_WORKER_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_WHITE_WORKER_MALE_VOICE_1_DRIVER_ABUSE_6, + SFX_WHITE_WORKER_MALE_VOICE_1_CHAT_1, + SFX_WHITE_WORKER_MALE_VOICE_1_CHAT_2, + SFX_WHITE_WORKER_MALE_VOICE_1_CHAT_3, + SFX_WHITE_WORKER_MALE_VOICE_1_CHAT_4, + SFX_WHITE_WORKER_MALE_VOICE_1_CHAT_5, + SFX_WHITE_WORKER_MALE_VOICE_1_CHAT_6, + SFX_WHITE_WORKER_MALE_VOICE_1_DODGE_1, + SFX_WHITE_WORKER_MALE_VOICE_1_DODGE_2, + SFX_WHITE_WORKER_MALE_VOICE_1_DODGE_3, + SFX_WHITE_WORKER_MALE_VOICE_1_DODGE_4, + SFX_WHITE_WORKER_MALE_VOICE_1_EYING_1, + SFX_WHITE_WORKER_MALE_VOICE_1_EYING_2, + SFX_WHITE_WORKER_MALE_VOICE_1_FIGHT_1, + SFX_WHITE_WORKER_MALE_VOICE_1_FIGHT_2, + SFX_WHITE_WORKER_MALE_VOICE_1_FIGHT_3, + SFX_WHITE_WORKER_MALE_VOICE_1_GUN_PANIC_1, + SFX_WHITE_WORKER_MALE_VOICE_1_GUN_PANIC_2, + SFX_WHITE_WORKER_MALE_VOICE_1_GUN_PANIC_3, + SFX_STEWARD_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_STEWARD_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_STEWARD_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_STEWARD_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_STEWARD_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_STEWARD_MALE_VOICE_1_CHAT_1, + SFX_STEWARD_MALE_VOICE_1_CHAT_2, + SFX_STEWARD_MALE_VOICE_1_CHAT_3, + SFX_STEWARD_MALE_VOICE_1_CHAT_4, + SFX_STEWARD_MALE_VOICE_1_DODGE_1, + SFX_STEWARD_MALE_VOICE_1_DODGE_2, + SFX_STEWARD_MALE_VOICE_1_DODGE_3, + SFX_STEWARD_MALE_VOICE_1_FIGHT_1, + SFX_STEWARD_MALE_VOICE_1_FIGHT_2, + SFX_STEWARD_MALE_VOICE_1_FIGHT_3, + SFX_STEWARD_MALE_VOICE_1_FIGHT_4, + SFX_STEWARD_MALE_VOICE_1_GUN_PANIC_1, + SFX_STEWARD_MALE_VOICE_1_GUN_PANIC_2, + SFX_STEWARD_MALE_VOICE_1_GUN_PANIC_3, + SFX_STEWARD_FEMALE_VOICE_1_DRIVER_ABUSE_1, + SFX_STEWARD_FEMALE_VOICE_1_DRIVER_ABUSE_2, + SFX_STEWARD_FEMALE_VOICE_1_DRIVER_ABUSE_3, + SFX_STEWARD_FEMALE_VOICE_1_DRIVER_ABUSE_4, + SFX_STEWARD_FEMALE_VOICE_1_DRIVER_ABUSE_5, + SFX_STEWARD_FEMALE_VOICE_1_CHAT_1, + SFX_STEWARD_FEMALE_VOICE_1_CHAT_2, + SFX_STEWARD_FEMALE_VOICE_1_CHAT_3, + SFX_STEWARD_FEMALE_VOICE_1_CHAT_4, + SFX_STEWARD_FEMALE_VOICE_1_CHAT_5, + SFX_STEWARD_FEMALE_VOICE_1_DODGE_1, + SFX_STEWARD_FEMALE_VOICE_1_DODGE_2, + SFX_STEWARD_FEMALE_VOICE_1_DODGE_3, + SFX_STEWARD_FEMALE_VOICE_1_DODGE_4, + SFX_STEWARD_FEMALE_VOICE_1_DODGE_5, + SFX_STEWARD_FEMALE_VOICE_1_GUN_PANIC_1, + SFX_STEWARD_FEMALE_VOICE_1_GUN_PANIC_2, + SFX_STEWARD_FEMALE_VOICE_1_GUN_PANIC_3, + SFX_STEWARD_FEMALE_VOICE_2_DRIVER_ABUSE_1, + SFX_STEWARD_FEMALE_VOICE_2_DRIVER_ABUSE_2, + SFX_STEWARD_FEMALE_VOICE_2_DRIVER_ABUSE_3, + SFX_STEWARD_FEMALE_VOICE_2_DRIVER_ABUSE_4, + SFX_STEWARD_FEMALE_VOICE_2_DRIVER_ABUSE_5, + SFX_STEWARD_FEMALE_VOICE_2_CHAT_1, + SFX_STEWARD_FEMALE_VOICE_2_CHAT_2, + SFX_STEWARD_FEMALE_VOICE_2_CHAT_3, + SFX_STEWARD_FEMALE_VOICE_2_CHAT_4, + SFX_STEWARD_FEMALE_VOICE_2_CHAT_5, + SFX_STEWARD_FEMALE_VOICE_2_DODGE_1, + SFX_STEWARD_FEMALE_VOICE_2_DODGE_2, + SFX_STEWARD_FEMALE_VOICE_2_DODGE_3, + SFX_STEWARD_FEMALE_VOICE_2_DODGE_4, + SFX_STEWARD_FEMALE_VOICE_2_DODGE_5, + SFX_STEWARD_FEMALE_VOICE_2_GUN_PANIC_1, + SFX_STEWARD_FEMALE_VOICE_2_GUN_PANIC_2, + SFX_STEWARD_FEMALE_VOICE_2_GUN_PANIC_3, + SFX_CHINATOWN_MALE_OLD_VOICE_1_DRIVER_ABUSE_1, + SFX_CHINATOWN_MALE_OLD_VOICE_1_DRIVER_ABUSE_2, + SFX_CHINATOWN_MALE_OLD_VOICE_1_DRIVER_ABUSE_3, + SFX_CHINATOWN_MALE_OLD_VOICE_1_DRIVER_ABUSE_4, + SFX_CHINATOWN_MALE_OLD_VOICE_1_DRIVER_ABUSE_5, + SFX_CHINATOWN_MALE_OLD_VOICE_1_DRIVER_ABUSE_6, + SFX_CHINATOWN_MALE_OLD_VOICE_1_CHAT_1, + SFX_CHINATOWN_MALE_OLD_VOICE_1_CHAT_2, + SFX_CHINATOWN_MALE_OLD_VOICE_1_CHAT_3, + SFX_CHINATOWN_MALE_OLD_VOICE_1_CHAT_4, + SFX_CHINATOWN_MALE_OLD_VOICE_1_CHAT_5, + SFX_CHINATOWN_MALE_OLD_VOICE_1_CHAT_6, + SFX_CHINATOWN_MALE_OLD_VOICE_1_CHAT_7, + SFX_CHINATOWN_MALE_OLD_VOICE_1_DODGE_1, + SFX_CHINATOWN_MALE_OLD_VOICE_1_DODGE_2, + SFX_CHINATOWN_MALE_OLD_VOICE_1_DODGE_3, + SFX_CHINATOWN_MALE_OLD_VOICE_1_DODGE_4, + SFX_CHINATOWN_MALE_OLD_VOICE_1_DODGE_5, + SFX_CHINATOWN_MALE_OLD_VOICE_1_DODGE_6, + SFX_CHINATOWN_MALE_OLD_VOICE_1_EYING_1, + SFX_CHINATOWN_MALE_OLD_VOICE_1_EYING_2, + SFX_CHINATOWN_MALE_OLD_VOICE_1_EYING_3, + SFX_CHINATOWN_MALE_OLD_VOICE_1_FIGHT_1, + SFX_CHINATOWN_MALE_OLD_VOICE_1_FIGHT_2, + SFX_CHINATOWN_MALE_OLD_VOICE_1_FIGHT_3, + SFX_CHINATOWN_MALE_OLD_VOICE_1_FIGHT_4, + SFX_CHINATOWN_MALE_OLD_VOICE_1_FIGHT_5, + SFX_CHINATOWN_MALE_OLD_VOICE_1_GUN_PANIC_1, + SFX_CHINATOWN_MALE_OLD_VOICE_1_GUN_PANIC_2, + SFX_CHINATOWN_MALE_OLD_VOICE_1_GUN_PANIC_3, + SFX_CHINATOWN_MALE_OLD_VOICE_1_CARJACKED_1, + SFX_CHINATOWN_MALE_OLD_VOICE_1_CARJACKED_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_DRIVER_ABUSE_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_DRIVER_ABUSE_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_DRIVER_ABUSE_3, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_DRIVER_ABUSE_4, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_DRIVER_ABUSE_5, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_CHAT_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_CHAT_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_CHAT_3, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_CHAT_4, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_CHAT_5, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_CHAT_6, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_CHAT_7, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_DODGE_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_DODGE_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_DODGE_3, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_DODGE_4, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_DODGE_5, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_DODGE_6, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_GUN_PANIC_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_GUN_PANIC_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_GUN_PANIC_3, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_GUN_PANIC_4, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_CARJACKED_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_CARJACKED_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_MUGGED_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_MUGGED_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_RUN_FROM_FIGHT_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_RUN_FROM_FIGHT_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_RUN_FROM_FIGHT_3, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_RUN_FROM_FIGHT_4, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_SHOCKED_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_SHOCKED_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_SHOCKED_3, + SFX_WHITE_BUSINESS_FEMALE_VOICE_1_SHOCKED_4, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_DRIVER_ABUSE_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_DRIVER_ABUSE_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_DRIVER_ABUSE_3, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_DRIVER_ABUSE_4, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_DRIVER_ABUSE_5, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_CHAT_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_CHAT_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_CHAT_3, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_CHAT_4, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_CHAT_5, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_CHAT_6, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_CHAT_7, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_DODGE_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_DODGE_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_DODGE_3, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_DODGE_4, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_DODGE_5, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_DODGE_6, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_GUN_PANIC_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_GUN_PANIC_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_GUN_PANIC_3, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_GUN_PANIC_4, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_CARJACKED_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_CARJACKED_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_MUGGED_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_MUGGED_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_RUN_FROM_FIGHT_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_RUN_FROM_FIGHT_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_RUN_FROM_FIGHT_3, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_RUN_FROM_FIGHT_4, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_SHOCKED_1, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_SHOCKED_2, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_SHOCKED_3, + SFX_WHITE_BUSINESS_FEMALE_VOICE_2_SHOCKED_4, + SFX_BLACK_FAT_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_BLACK_FAT_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_BLACK_FAT_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_BLACK_FAT_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_BLACK_FAT_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_BLACK_FAT_MALE_VOICE_1_DRIVER_ABUSE_6, + SFX_BLACK_FAT_MALE_VOICE_1_CHAT_1, + SFX_BLACK_FAT_MALE_VOICE_1_CHAT_2, + SFX_BLACK_FAT_MALE_VOICE_1_CHAT_3, + SFX_BLACK_FAT_MALE_VOICE_1_CHAT_4, + SFX_BLACK_FAT_MALE_VOICE_1_CHAT_5, + SFX_BLACK_FAT_MALE_VOICE_1_CHAT_6, + SFX_BLACK_FAT_MALE_VOICE_1_CHAT_7, + SFX_BLACK_FAT_MALE_VOICE_1_CHAT_8, + SFX_BLACK_FAT_MALE_VOICE_1_DODGE_1, + SFX_BLACK_FAT_MALE_VOICE_1_DODGE_2, + SFX_BLACK_FAT_MALE_VOICE_1_DODGE_3, + SFX_BLACK_FAT_MALE_VOICE_1_DODGE_4, + SFX_BLACK_FAT_MALE_VOICE_1_DODGE_5, + SFX_BLACK_FAT_MALE_VOICE_1_DODGE_6, + SFX_BLACK_FAT_MALE_VOICE_1_DODGE_7, + SFX_BLACK_FAT_MALE_VOICE_1_CARJACKED_1, + SFX_BLACK_FAT_MALE_VOICE_1_CARJACKED_2, + SFX_BLACK_FAT_MALE_VOICE_1_CARJACKED_3, + SFX_BLACK_FAT_MALE_VOICE_1_CARJACKED_4, + SFX_BLACK_FAT_MALE_VOICE_1_LOST_1, + SFX_BLACK_FAT_MALE_VOICE_1_LOST_2, + SFX_BLACK_FAT_MALE_VOICE_1_LOST_3, + SFX_BLACK_FAT_MALE_VOICE_1_MUGGED_1, + SFX_BLACK_FAT_MALE_VOICE_1_MUGGED_2, + SFX_BLACK_FAT_MALE_VOICE_1_MUGGED_3, + SFX_BLACK_PROJECT_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_BLACK_PROJECT_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_BLACK_PROJECT_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_BLACK_PROJECT_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_BLACK_PROJECT_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_BLACK_PROJECT_MALE_VOICE_1_DRIVER_ABUSE_6, + SFX_BLACK_PROJECT_MALE_VOICE_1_DRIVER_ABUSE_7, + SFX_BLACK_PROJECT_MALE_VOICE_1_CHAT_1, + SFX_BLACK_PROJECT_MALE_VOICE_1_CHAT_2, + SFX_BLACK_PROJECT_MALE_VOICE_1_CHAT_3, + SFX_BLACK_PROJECT_MALE_VOICE_1_CHAT_4, + SFX_BLACK_PROJECT_MALE_VOICE_1_CHAT_5, + SFX_BLACK_PROJECT_MALE_VOICE_1_CHAT_6, + SFX_BLACK_PROJECT_MALE_VOICE_1_DODGE_1, + SFX_BLACK_PROJECT_MALE_VOICE_1_DODGE_2, + SFX_BLACK_PROJECT_MALE_VOICE_1_DODGE_3, + SFX_BLACK_PROJECT_MALE_VOICE_1_DODGE_4, + SFX_BLACK_PROJECT_MALE_VOICE_1_DODGE_5, + SFX_BLACK_PROJECT_MALE_VOICE_1_EYING_1, + SFX_BLACK_PROJECT_MALE_VOICE_1_EYING_2, + SFX_BLACK_PROJECT_MALE_VOICE_1_EYING_3, + SFX_BLACK_PROJECT_MALE_VOICE_1_FIGHT_1, + SFX_BLACK_PROJECT_MALE_VOICE_1_FIGHT_2, + SFX_BLACK_PROJECT_MALE_VOICE_1_FIGHT_3, + SFX_BLACK_PROJECT_MALE_VOICE_1_FIGHT_4, + SFX_BLACK_PROJECT_MALE_VOICE_1_FIGHT_5, + SFX_BLACK_PROJECT_MALE_VOICE_1_FIGHT_6, + SFX_BLACK_PROJECT_MALE_VOICE_1_GUN_COOL_1, + SFX_BLACK_PROJECT_MALE_VOICE_1_GUN_COOL_2, + SFX_BLACK_PROJECT_MALE_VOICE_1_GUN_COOL_3, + SFX_BLACK_PROJECT_MALE_VOICE_1_CARJACKED_1, + SFX_BLACK_PROJECT_MALE_VOICE_1_CARJACKED_2, + SFX_BLACK_PROJECT_MALE_VOICE_1_MUGGED_1, + SFX_BLACK_PROJECT_MALE_VOICE_1_MUGGED_2, + SFX_BLACK_PROJECT_MALE_VOICE_2_DRIVER_ABUSE_1, + SFX_BLACK_PROJECT_MALE_VOICE_2_DRIVER_ABUSE_2, + SFX_BLACK_PROJECT_MALE_VOICE_2_DRIVER_ABUSE_3, + SFX_BLACK_PROJECT_MALE_VOICE_2_DRIVER_ABUSE_4, + SFX_BLACK_PROJECT_MALE_VOICE_2_DRIVER_ABUSE_5, + SFX_BLACK_PROJECT_MALE_VOICE_2_DRIVER_ABUSE_6, + SFX_BLACK_PROJECT_MALE_VOICE_2_DRIVER_ABUSE_7, + SFX_BLACK_PROJECT_MALE_VOICE_2_CHAT_1, + SFX_BLACK_PROJECT_MALE_VOICE_2_CHAT_2, + SFX_BLACK_PROJECT_MALE_VOICE_2_CHAT_3, + SFX_BLACK_PROJECT_MALE_VOICE_2_CHAT_4, + SFX_BLACK_PROJECT_MALE_VOICE_2_CHAT_5, + SFX_BLACK_PROJECT_MALE_VOICE_2_CHAT_6, + SFX_BLACK_PROJECT_MALE_VOICE_2_DODGE_1, + SFX_BLACK_PROJECT_MALE_VOICE_2_DODGE_2, + SFX_BLACK_PROJECT_MALE_VOICE_2_DODGE_3, + SFX_BLACK_PROJECT_MALE_VOICE_2_DODGE_4, + SFX_BLACK_PROJECT_MALE_VOICE_2_DODGE_5, + SFX_BLACK_PROJECT_MALE_VOICE_2_EYING_1, + SFX_BLACK_PROJECT_MALE_VOICE_2_EYING_2, + SFX_BLACK_PROJECT_MALE_VOICE_2_EYING_3, + SFX_BLACK_PROJECT_MALE_VOICE_2_FIGHT_1, + SFX_BLACK_PROJECT_MALE_VOICE_2_FIGHT_2, + SFX_BLACK_PROJECT_MALE_VOICE_2_FIGHT_3, + SFX_BLACK_PROJECT_MALE_VOICE_2_FIGHT_4, + SFX_BLACK_PROJECT_MALE_VOICE_2_FIGHT_5, + SFX_BLACK_PROJECT_MALE_VOICE_2_FIGHT_6, + SFX_BLACK_PROJECT_MALE_VOICE_2_GUN_COOL_1, + SFX_BLACK_PROJECT_MALE_VOICE_2_GUN_COOL_2, + SFX_BLACK_PROJECT_MALE_VOICE_2_GUN_COOL_3, + SFX_BLACK_PROJECT_MALE_VOICE_2_CARJACKED_1, + SFX_BLACK_PROJECT_MALE_VOICE_2_CARJACKED_2, + SFX_BLACK_PROJECT_MALE_VOICE_2_MUGGED_1, + SFX_BLACK_PROJECT_MALE_VOICE_2_MUGGED_2, + SFX_BLACK_WORKER_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_BLACK_WORKER_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_BLACK_WORKER_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_BLACK_WORKER_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_BLACK_WORKER_MALE_VOICE_1_CHAT_1, + SFX_BLACK_WORKER_MALE_VOICE_1_CHAT_2, + SFX_BLACK_WORKER_MALE_VOICE_1_CHAT_3, + SFX_BLACK_WORKER_MALE_VOICE_1_CHAT_4, + SFX_BLACK_WORKER_MALE_VOICE_1_DODGE_1, + SFX_BLACK_WORKER_MALE_VOICE_1_DODGE_2, + SFX_BLACK_WORKER_MALE_VOICE_1_DODGE_3, + SFX_BLACK_WORKER_MALE_VOICE_1_EYING_1, + SFX_BLACK_WORKER_MALE_VOICE_1_EYING_2, + SFX_BLACK_WORKER_MALE_VOICE_1_EYING_3, + SFX_BLACK_WORKER_MALE_VOICE_1_FIGHT_1, + SFX_BLACK_WORKER_MALE_VOICE_1_FIGHT_2, + SFX_BLACK_WORKER_MALE_VOICE_1_FIGHT_3, + SFX_BLACK_WORKER_MALE_VOICE_1_GUN_PANIC_1, + SFX_BLACK_WORKER_MALE_VOICE_1_GUN_PANIC_2, + SFX_BLACK_WORKER_MALE_VOICE_1_GUN_PANIC_3, + SFX_BLACK_WORKER_MALE_VOICE_1_GUN_PANIC_4, + SFX_SHOPPER_VOICE_1_DRIVER_ABUSE_1, + SFX_SHOPPER_VOICE_1_DRIVER_ABUSE_2, + SFX_SHOPPER_VOICE_1_DRIVER_ABUSE_3, + SFX_SHOPPER_VOICE_1_DRIVER_ABUSE_4, + SFX_SHOPPER_VOICE_1_DRIVER_ABUSE_5, + SFX_SHOPPER_VOICE_1_DRIVER_ABUSE_6, + SFX_SHOPPER_VOICE_1_DRIVER_ABUSE_7, + SFX_SHOPPER_VOICE_1_CHAT_1, + SFX_SHOPPER_VOICE_1_CHAT_2, + SFX_SHOPPER_VOICE_1_CHAT_3, + SFX_SHOPPER_VOICE_1_CHAT_4, + SFX_SHOPPER_VOICE_1_CHAT_5, + SFX_SHOPPER_VOICE_1_CHAT_6, + SFX_SHOPPER_VOICE_1_CHAT_7, + SFX_SHOPPER_VOICE_1_DODGE_1, + SFX_SHOPPER_VOICE_1_DODGE_2, + SFX_SHOPPER_VOICE_1_DODGE_3, + SFX_SHOPPER_VOICE_1_DODGE_4, + SFX_SHOPPER_VOICE_1_DODGE_5, + SFX_SHOPPER_VOICE_1_DODGE_6, + SFX_SHOPPER_VOICE_1_CARJACKED_1, + SFX_SHOPPER_VOICE_1_CARJACKED_2, + SFX_SHOPPER_VOICE_1_MUGGED_1, + SFX_SHOPPER_VOICE_1_MUGGED_2, + SFX_SHOPPER_VOICE_1_SHOCKED_1, + SFX_SHOPPER_VOICE_1_SHOCKED_2, + SFX_SHOPPER_VOICE_1_SHOCKED_3, + SFX_SHOPPER_VOICE_1_SHOCKED_4, + SFX_SHOPPER_VOICE_2_DRIVER_ABUSE_1, + SFX_SHOPPER_VOICE_2_DRIVER_ABUSE_2, + SFX_SHOPPER_VOICE_2_DRIVER_ABUSE_3, + SFX_SHOPPER_VOICE_2_DRIVER_ABUSE_4, + SFX_SHOPPER_VOICE_2_DRIVER_ABUSE_5, + SFX_SHOPPER_VOICE_2_DRIVER_ABUSE_6, + SFX_SHOPPER_VOICE_2_DRIVER_ABUSE_7, + SFX_SHOPPER_VOICE_2_CHAT_1, + SFX_SHOPPER_VOICE_2_CHAT_2, + SFX_SHOPPER_VOICE_2_CHAT_3, + SFX_SHOPPER_VOICE_2_CHAT_4, + SFX_SHOPPER_VOICE_2_CHAT_5, + SFX_SHOPPER_VOICE_2_CHAT_6, + SFX_SHOPPER_VOICE_2_CHAT_7, + SFX_SHOPPER_VOICE_2_DODGE_1, + SFX_SHOPPER_VOICE_2_DODGE_2, + SFX_SHOPPER_VOICE_2_DODGE_3, + SFX_SHOPPER_VOICE_2_DODGE_4, + SFX_SHOPPER_VOICE_2_DODGE_5, + SFX_SHOPPER_VOICE_2_DODGE_6, + SFX_SHOPPER_VOICE_2_CARJACKED_1, + SFX_SHOPPER_VOICE_2_CARJACKED_2, + SFX_SHOPPER_VOICE_2_MUGGED_1, + SFX_SHOPPER_VOICE_2_MUGGED_2, + SFX_SHOPPER_VOICE_2_SHOCKED_1, + SFX_SHOPPER_VOICE_2_SHOCKED_2, + SFX_SHOPPER_VOICE_2_SHOCKED_3, + SFX_SHOPPER_VOICE_2_SHOCKED_4, + SFX_SHOPPER_VOICE_3_DRIVER_ABUSE_1, + SFX_SHOPPER_VOICE_3_DRIVER_ABUSE_2, + SFX_SHOPPER_VOICE_3_DRIVER_ABUSE_3, + SFX_SHOPPER_VOICE_3_DRIVER_ABUSE_4, + SFX_SHOPPER_VOICE_3_DRIVER_ABUSE_5, + SFX_SHOPPER_VOICE_3_DRIVER_ABUSE_6, + SFX_SHOPPER_VOICE_3_DRIVER_ABUSE_7, + SFX_SHOPPER_VOICE_3_CHAT_1, + SFX_SHOPPER_VOICE_3_CHAT_2, + SFX_SHOPPER_VOICE_3_CHAT_3, + SFX_SHOPPER_VOICE_3_CHAT_4, + SFX_SHOPPER_VOICE_3_CHAT_5, + SFX_SHOPPER_VOICE_3_CHAT_6, + SFX_SHOPPER_VOICE_3_CHAT_7, + SFX_SHOPPER_VOICE_3_DODGE_1, + SFX_SHOPPER_VOICE_3_DODGE_2, + SFX_SHOPPER_VOICE_3_DODGE_3, + SFX_SHOPPER_VOICE_3_DODGE_4, + SFX_SHOPPER_VOICE_3_DODGE_5, + SFX_SHOPPER_VOICE_3_DODGE_6, + SFX_SHOPPER_VOICE_3_CARJACKED_1, + SFX_SHOPPER_VOICE_3_CARJACKED_2, + SFX_SHOPPER_VOICE_3_MUGGED_1, + SFX_SHOPPER_VOICE_3_MUGGED_2, + SFX_SHOPPER_VOICE_3_SHOCKED_1, + SFX_SHOPPER_VOICE_3_SHOCKED_2, + SFX_SHOPPER_VOICE_3_SHOCKED_3, + SFX_SHOPPER_VOICE_3_SHOCKED_4, + SFX_COLUMBIAN_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_COLUMBIAN_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_COLUMBIAN_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_COLUMBIAN_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_COLUMBIAN_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_COLUMBIAN_MALE_VOICE_1_DRIVER_ABUSE_6, + SFX_COLUMBIAN_MALE_VOICE_1_CHAT_1, + SFX_COLUMBIAN_MALE_VOICE_1_CHAT_2, + SFX_COLUMBIAN_MALE_VOICE_1_CHAT_3, + SFX_COLUMBIAN_MALE_VOICE_1_CHAT_4, + SFX_COLUMBIAN_MALE_VOICE_1_CHAT_5, + SFX_COLUMBIAN_MALE_VOICE_1_DODGE_1, + SFX_COLUMBIAN_MALE_VOICE_1_DODGE_2, + SFX_COLUMBIAN_MALE_VOICE_1_DODGE_3, + SFX_COLUMBIAN_MALE_VOICE_1_DODGE_4, + SFX_COLUMBIAN_MALE_VOICE_1_DODGE_5, + SFX_COLUMBIAN_MALE_VOICE_1_EYING_1, + SFX_COLUMBIAN_MALE_VOICE_1_EYING_2, + SFX_COLUMBIAN_MALE_VOICE_1_FIGHT_1, + SFX_COLUMBIAN_MALE_VOICE_1_FIGHT_2, + SFX_COLUMBIAN_MALE_VOICE_1_FIGHT_3, + SFX_COLUMBIAN_MALE_VOICE_1_FIGHT_4, + SFX_COLUMBIAN_MALE_VOICE_1_FIGHT_5, + SFX_COLUMBIAN_MALE_VOICE_1_CARJACKED_1, + SFX_COLUMBIAN_MALE_VOICE_1_CARJACKED_2, + SFX_COLUMBIAN_MALE_VOICE_1_CARJACKING_1, + SFX_COLUMBIAN_MALE_VOICE_1_CARJACKING_2, + SFX_COLUMBIAN_MALE_VOICE_2_DRIVER_ABUSE_1, + SFX_COLUMBIAN_MALE_VOICE_2_DRIVER_ABUSE_2, + SFX_COLUMBIAN_MALE_VOICE_2_DRIVER_ABUSE_3, + SFX_COLUMBIAN_MALE_VOICE_2_DRIVER_ABUSE_4, + SFX_COLUMBIAN_MALE_VOICE_2_DRIVER_ABUSE_5, + SFX_COLUMBIAN_MALE_VOICE_2_DRIVER_ABUSE_6, + SFX_COLUMBIAN_MALE_VOICE_2_CHAT_1, + SFX_COLUMBIAN_MALE_VOICE_2_CHAT_2, + SFX_COLUMBIAN_MALE_VOICE_2_CHAT_3, + SFX_COLUMBIAN_MALE_VOICE_2_CHAT_4, + SFX_COLUMBIAN_MALE_VOICE_2_CHAT_5, + SFX_COLUMBIAN_MALE_VOICE_2_DODGE_1, + SFX_COLUMBIAN_MALE_VOICE_2_DODGE_2, + SFX_COLUMBIAN_MALE_VOICE_2_DODGE_3, + SFX_COLUMBIAN_MALE_VOICE_2_DODGE_4, + SFX_COLUMBIAN_MALE_VOICE_2_DODGE_5, + SFX_COLUMBIAN_MALE_VOICE_2_EYING_1, + SFX_COLUMBIAN_MALE_VOICE_2_EYING_2, + SFX_COLUMBIAN_MALE_VOICE_2_FIGHT_1, + SFX_COLUMBIAN_MALE_VOICE_2_FIGHT_2, + SFX_COLUMBIAN_MALE_VOICE_2_FIGHT_3, + SFX_COLUMBIAN_MALE_VOICE_2_FIGHT_4, + SFX_COLUMBIAN_MALE_VOICE_2_FIGHT_5, + SFX_COLUMBIAN_MALE_VOICE_2_CARJACKED_1, + SFX_COLUMBIAN_MALE_VOICE_2_CARJACKED_2, + SFX_COLUMBIAN_MALE_VOICE_2_CARJACKING_1, + SFX_COLUMBIAN_MALE_VOICE_2_CARJACKING_2, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_DRIVER_ABUSE_1, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_DRIVER_ABUSE_2, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_DRIVER_ABUSE_3, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_DRIVER_ABUSE_4, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_DRIVER_ABUSE_5, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_DRIVER_ABUSE_6, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_DRIVER_ABUSE_7, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_CHAT_1, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_CHAT_2, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_CHAT_3, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_CHAT_4, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_CHAT_5, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_CHAT_6, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_CHAT_7, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_DODGE_1, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_DODGE_2, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_DODGE_3, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_DODGE_4, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_DODGE_5, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_DODGE_6, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_CARJACKED_1, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_CARJACKED_2, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_MUGGED_1, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_MUGGED_2, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_SHOCKED_1, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_SHOCKED_2, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_SHOCKED_3, + SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_SHOCKED_4, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_DRIVER_ABUSE_1, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_DRIVER_ABUSE_2, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_DRIVER_ABUSE_3, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_DRIVER_ABUSE_4, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_DRIVER_ABUSE_5, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_CHAT_1, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_CHAT_2, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_CHAT_3, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_CHAT_4, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_CHAT_5, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_CHAT_6, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_DODGE_1, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_DODGE_2, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_DODGE_3, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_DODGE_4, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_DODGE_5, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_GUN_PANIC_1, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_GUN_PANIC_2, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_GUN_PANIC_3, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_MUGGED_1, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_MUGGED_2, + SFX_CHINATOWN_OLD_FEMALE_VOICE_1_SHOCKED_1, + SFX_GENERIC_FEMALE_DEATH_1, + SFX_GENERIC_FEMALE_DEATH_2, + SFX_GENERIC_FEMALE_DEATH_3, + SFX_GENERIC_FEMALE_DEATH_4, + SFX_GENERIC_FEMALE_DEATH_5, + SFX_GENERIC_FEMALE_DEATH_6, + SFX_GENERIC_FEMALE_DEATH_7, + SFX_GENERIC_FEMALE_DEATH_8, + SFX_GENERIC_FEMALE_DEATH_9, + SFX_GENERIC_FEMALE_DEATH_10, + SFX_GENERIC_FEMALE_FIRE_1, + SFX_GENERIC_FEMALE_FIRE_2, + SFX_GENERIC_FEMALE_FIRE_3, + SFX_GENERIC_FEMALE_FIRE_4, + SFX_GENERIC_FEMALE_FIRE_5, + SFX_GENERIC_FEMALE_FIRE_6, + SFX_GENERIC_FEMALE_FIRE_7, + SFX_GENERIC_FEMALE_FIRE_8, + SFX_GENERIC_FEMALE_FIRE_9, + SFX_GENERIC_FEMALE_GRUNT_1, + SFX_GENERIC_FEMALE_GRUNT_2, + SFX_GENERIC_FEMALE_GRUNT_3, + SFX_GENERIC_FEMALE_GRUNT_4, + SFX_GENERIC_FEMALE_GRUNT_5, + SFX_GENERIC_FEMALE_GRUNT_6, + SFX_GENERIC_FEMALE_GRUNT_7, + SFX_GENERIC_FEMALE_GRUNT_8, + SFX_GENERIC_FEMALE_GRUNT_9, + SFX_GENERIC_FEMALE_GRUNT_10, + SFX_GENERIC_FEMALE_GRUNT_11, + SFX_GENERIC_FEMALE_PANIC_1, + SFX_GENERIC_FEMALE_PANIC_2, + SFX_GENERIC_FEMALE_PANIC_3, + SFX_GENERIC_FEMALE_PANIC_4, + SFX_GENERIC_FEMALE_PANIC_5, + SFX_GENERIC_FEMALE_PANIC_6, + SFX_GENERIC_FEMALE_PANIC_7, + SFX_GENERIC_FEMALE_PANIC_8, + SFX_BLACK_CRIMINAL_VOICE_1_DRIVER_ABUSE_1, + SFX_BLACK_CRIMINAL_VOICE_1_DRIVER_ABUSE_2, + SFX_BLACK_CRIMINAL_VOICE_1_DRIVER_ABUSE_3, + SFX_BLACK_CRIMINAL_VOICE_1_DRIVER_ABUSE_4, + SFX_BLACK_CRIMINAL_VOICE_1_DRIVER_ABUSE_5, + SFX_BLACK_CRIMINAL_VOICE_1_DODGE_1, + SFX_BLACK_CRIMINAL_VOICE_1_DODGE_2, + SFX_BLACK_CRIMINAL_VOICE_1_DODGE_3, + SFX_BLACK_CRIMINAL_VOICE_1_DODGE_4, + SFX_BLACK_CRIMINAL_VOICE_1_DODGE_5, + SFX_BLACK_CRIMINAL_VOICE_1_DODGE_6, + SFX_BLACK_CRIMINAL_VOICE_1_FIGHT_1, + SFX_BLACK_CRIMINAL_VOICE_1_FIGHT_2, + SFX_BLACK_CRIMINAL_VOICE_1_FIGHT_3, + SFX_BLACK_CRIMINAL_VOICE_1_FIGHT_4, + SFX_BLACK_CRIMINAL_VOICE_1_FIGHT_5, + SFX_BLACK_CRIMINAL_VOICE_1_GUN_COOL_1, + SFX_BLACK_CRIMINAL_VOICE_1_GUN_COOL_2, + SFX_BLACK_CRIMINAL_VOICE_1_GUN_COOL_3, + SFX_BLACK_CRIMINAL_VOICE_1_GUN_COOL_4, + SFX_BLACK_CRIMINAL_VOICE_1_CARJACKING_1, + SFX_BLACK_CRIMINAL_VOICE_1_MUGGING_1, + SFX_BLACK_CRIMINAL_VOICE_1_MUGGING_2, + SFX_WHITE_CRIMINAL_VOICE_1_DRIVER_ABUSE_1, + SFX_WHITE_CRIMINAL_VOICE_1_DRIVER_ABUSE_2, + SFX_WHITE_CRIMINAL_VOICE_1_DRIVER_ABUSE_3, + SFX_WHITE_CRIMINAL_VOICE_1_DRIVER_ABUSE_4, + SFX_WHITE_CRIMINAL_VOICE_1_DODGE_1, + SFX_WHITE_CRIMINAL_VOICE_1_DODGE_2, + SFX_WHITE_CRIMINAL_VOICE_1_DODGE_3, + SFX_WHITE_CRIMINAL_VOICE_1_DODGE_4, + SFX_WHITE_CRIMINAL_VOICE_1_DODGE_5, + SFX_WHITE_CRIMINAL_VOICE_1_FIGHT_1, + SFX_WHITE_CRIMINAL_VOICE_1_FIGHT_2, + SFX_WHITE_CRIMINAL_VOICE_1_FIGHT_3, + SFX_WHITE_CRIMINAL_VOICE_1_FIGHT_4, + SFX_WHITE_CRIMINAL_VOICE_1_GUN_COOL_1, + SFX_WHITE_CRIMINAL_VOICE_1_GUN_COOL_2, + SFX_WHITE_CRIMINAL_VOICE_1_GUN_COOL_3, + SFX_WHITE_CRIMINAL_VOICE_1_CARJACKING_1, + SFX_WHITE_CRIMINAL_VOICE_1_MUGGING_1, + SFX_WHITE_CRIMINAL_VOICE_1_MUGGING_2, + SFX_BUSINESS_MALE_OLD_VOICE_1_DRIVER_ABUSE_1, + SFX_BUSINESS_MALE_OLD_VOICE_1_DRIVER_ABUSE_2, + SFX_BUSINESS_MALE_OLD_VOICE_1_DRIVER_ABUSE_3, + SFX_BUSINESS_MALE_OLD_VOICE_1_DRIVER_ABUSE_4, + SFX_BUSINESS_MALE_OLD_VOICE_1_DRIVER_ABUSE_5, + SFX_BUSINESS_MALE_OLD_VOICE_1_CHAT_1, + SFX_BUSINESS_MALE_OLD_VOICE_1_CHAT_2, + SFX_BUSINESS_MALE_OLD_VOICE_1_CHAT_3, + SFX_BUSINESS_MALE_OLD_VOICE_1_CHAT_4, + SFX_BUSINESS_MALE_OLD_VOICE_1_CHAT_5, + SFX_BUSINESS_MALE_OLD_VOICE_1_DODGE_1, + SFX_BUSINESS_MALE_OLD_VOICE_1_DODGE_2, + SFX_BUSINESS_MALE_OLD_VOICE_1_DODGE_3, + SFX_BUSINESS_MALE_OLD_VOICE_1_DODGE_4, + SFX_BUSINESS_MALE_OLD_VOICE_1_FIGHT_1, + SFX_BUSINESS_MALE_OLD_VOICE_1_FIGHT_2, + SFX_BUSINESS_MALE_OLD_VOICE_1_FIGHT_3, + SFX_BUSINESS_MALE_OLD_VOICE_1_FIGHT_4, + SFX_BUSINESS_MALE_OLD_VOICE_1_FIGHT_5, + SFX_BUSINESS_MALE_OLD_VOICE_1_GUN_PANIC_1, + SFX_BUSINESS_MALE_OLD_VOICE_1_GUN_PANIC_2, + SFX_BUSINESS_MALE_OLD_VOICE_1_GUN_PANIC_3, + SFX_BUSINESS_MALE_OLD_VOICE_1_CARJACKED_1, + SFX_BUSINESS_MALE_OLD_VOICE_1_CARJACKED_2, + SFX_BUSINESS_MALE_OLD_VOICE_1_MUGGED_1, + SFX_BUSINESS_MALE_OLD_VOICE_1_MUGGED_2, + SFX_BUSINESS_MALE_OLD_VOICE_1_MRUN_FROM_FIGHT_1, + SFX_BUSINESS_MALE_OLD_VOICE_1_MRUN_FROM_FIGHT_2, + SFX_BUSINESS_MALE_OLD_VOICE_1_MRUN_FROM_FIGHT_3, + SFX_BUSINESS_MALE_OLD_VOICE_1_MRUN_FROM_FIGHT_4, + SFX_BUSINESS_MALE_OLD_VOICE_1_MRUN_FROM_FIGHT_5, + SFX_LITTLE_ITALY_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_LITTLE_ITALY_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_LITTLE_ITALY_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_LITTLE_ITALY_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_LITTLE_ITALY_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_LITTLE_ITALY_MALE_VOICE_1_DRIVER_ABUSE_6, + SFX_LITTLE_ITALY_MALE_VOICE_1_DRIVER_ABUSE_7, + SFX_LITTLE_ITALY_MALE_VOICE_1_CHAT_1, + SFX_LITTLE_ITALY_MALE_VOICE_1_CHAT_2, + SFX_LITTLE_ITALY_MALE_VOICE_1_CHAT_3, + SFX_LITTLE_ITALY_MALE_VOICE_1_CHAT_4, + SFX_LITTLE_ITALY_MALE_VOICE_1_CHAT_5, + SFX_LITTLE_ITALY_MALE_VOICE_1_CHAT_6, + SFX_LITTLE_ITALY_MALE_VOICE_1_DODGE_1, + SFX_LITTLE_ITALY_MALE_VOICE_1_DODGE_2, + SFX_LITTLE_ITALY_MALE_VOICE_1_DODGE_3, + SFX_LITTLE_ITALY_MALE_VOICE_1_DODGE_4, + SFX_LITTLE_ITALY_MALE_VOICE_1_DODGE_5, + SFX_LITTLE_ITALY_MALE_VOICE_1_FIGHT_1, + SFX_LITTLE_ITALY_MALE_VOICE_1_FIGHT_2, + SFX_LITTLE_ITALY_MALE_VOICE_1_FIGHT_3, + SFX_LITTLE_ITALY_MALE_VOICE_1_FIGHT_4, + SFX_LITTLE_ITALY_MALE_VOICE_1_FIGHT_5, + SFX_LITTLE_ITALY_MALE_VOICE_1_GUN_PANIC_1, + SFX_LITTLE_ITALY_MALE_VOICE_1_GUN_PANIC_2, + SFX_LITTLE_ITALY_MALE_VOICE_1_GUN_PANIC_3, + SFX_LITTLE_ITALY_MALE_VOICE_1_CARJACKED_1, + SFX_LITTLE_ITALY_MALE_VOICE_1_CARJACKED_2, + SFX_LITTLE_ITALY_MALE_VOICE_1_MUGGED_1, + SFX_LITTLE_ITALY_MALE_VOICE_1_MUGGED_2, + SFX_LITTLE_ITALY_MALE_VOICE_2_DRIVER_ABUSE_1, + SFX_LITTLE_ITALY_MALE_VOICE_2_DRIVER_ABUSE_2, + SFX_LITTLE_ITALY_MALE_VOICE_2_DRIVER_ABUSE_3, + SFX_LITTLE_ITALY_MALE_VOICE_2_DRIVER_ABUSE_4, + SFX_LITTLE_ITALY_MALE_VOICE_2_DRIVER_ABUSE_5, + SFX_LITTLE_ITALY_MALE_VOICE_2_DRIVER_ABUSE_6, + SFX_LITTLE_ITALY_MALE_VOICE_2_DRIVER_ABUSE_7, + SFX_LITTLE_ITALY_MALE_VOICE_2_CHAT_1, + SFX_LITTLE_ITALY_MALE_VOICE_2_CHAT_2, + SFX_LITTLE_ITALY_MALE_VOICE_2_CHAT_3, + SFX_LITTLE_ITALY_MALE_VOICE_2_CHAT_4, + SFX_LITTLE_ITALY_MALE_VOICE_2_CHAT_5, + SFX_LITTLE_ITALY_MALE_VOICE_2_CHAT_6, + SFX_LITTLE_ITALY_MALE_VOICE_2_DODGE_1, + SFX_LITTLE_ITALY_MALE_VOICE_2_DODGE_2, + SFX_LITTLE_ITALY_MALE_VOICE_2_DODGE_3, + SFX_LITTLE_ITALY_MALE_VOICE_2_DODGE_4, + SFX_LITTLE_ITALY_MALE_VOICE_2_DODGE_5, + SFX_LITTLE_ITALY_MALE_VOICE_2_FIGHT_1, + SFX_LITTLE_ITALY_MALE_VOICE_2_FIGHT_2, + SFX_LITTLE_ITALY_MALE_VOICE_2_FIGHT_3, + SFX_LITTLE_ITALY_MALE_VOICE_2_FIGHT_4, + SFX_LITTLE_ITALY_MALE_VOICE_2_FIGHT_5, + SFX_LITTLE_ITALY_MALE_VOICE_2_GUN_PANIC_1, + SFX_LITTLE_ITALY_MALE_VOICE_2_GUN_PANIC_2, + SFX_LITTLE_ITALY_MALE_VOICE_2_GUN_PANIC_3, + SFX_LITTLE_ITALY_MALE_VOICE_2_CARJACKED_1, + SFX_LITTLE_ITALY_MALE_VOICE_2_CARJACKED_2, + SFX_LITTLE_ITALY_MALE_VOICE_2_MUGGED_1, + SFX_LITTLE_ITALY_MALE_VOICE_2_MUGGED_2, + SFX_TRIAD_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_TRIAD_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_TRIAD_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_TRIAD_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_TRIAD_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_TRIAD_MALE_VOICE_1_DRIVER_ABUSE_6, + SFX_TRIAD_MALE_VOICE_1_DRIVER_ABUSE_7, + SFX_TRIAD_MALE_VOICE_1_CHAT_1, + SFX_TRIAD_MALE_VOICE_1_CHAT_2, + SFX_TRIAD_MALE_VOICE_1_CHAT_3, + SFX_TRIAD_MALE_VOICE_1_CHAT_4, + SFX_TRIAD_MALE_VOICE_1_CHAT_5, + SFX_TRIAD_MALE_VOICE_1_CHAT_6, + SFX_TRIAD_MALE_VOICE_1_CHAT_7, + SFX_TRIAD_MALE_VOICE_1_CHAT_8, + SFX_TRIAD_MALE_VOICE_1_DODGE_1, + SFX_TRIAD_MALE_VOICE_1_DODGE_2, + SFX_TRIAD_MALE_VOICE_1_DODGE_3, + SFX_TRIAD_MALE_VOICE_1_DODGE_4, + SFX_TRIAD_MALE_VOICE_1_EYING_1, + SFX_TRIAD_MALE_VOICE_1_EYING_2, + SFX_TRIAD_MALE_VOICE_1_EYING_3, + SFX_TRIAD_MALE_VOICE_1_FIGHT_1, + SFX_TRIAD_MALE_VOICE_1_FIGHT_2, + SFX_TRIAD_MALE_VOICE_1_FIGHT_3, + SFX_TRIAD_MALE_VOICE_1_FIGHT_4, + SFX_TRIAD_MALE_VOICE_1_FIGHT_5, + SFX_TRIAD_MALE_VOICE_1_GUN_COOL_1, + SFX_TRIAD_MALE_VOICE_1_GUN_COOL_2, + SFX_TRIAD_MALE_VOICE_1_GUN_COOL_3, + SFX_TRIAD_MALE_VOICE_1_CARJACKED_1, + SFX_TRIAD_MALE_VOICE_1_CARJACKED_2, + SFX_TRIAD_MALE_VOICE_1_CARJACKING_1, + SFX_TRIAD_MALE_VOICE_1_CARJACKING_2, + SFX_MAFIA_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_MAFIA_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_MAFIA_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_MAFIA_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_MAFIA_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_MAFIA_MALE_VOICE_1_DRIVER_ABUSE_6, + SFX_MAFIA_MALE_VOICE_1_CHAT_1, + SFX_MAFIA_MALE_VOICE_1_CHAT_2, + SFX_MAFIA_MALE_VOICE_1_CHAT_3, + SFX_MAFIA_MALE_VOICE_1_CHAT_4, + SFX_MAFIA_MALE_VOICE_1_CHAT_5, + SFX_MAFIA_MALE_VOICE_1_CHAT_6, + SFX_MAFIA_MALE_VOICE_1_CHAT_7, + SFX_MAFIA_MALE_VOICE_1_DODGE_1, + SFX_MAFIA_MALE_VOICE_1_DODGE_2, + SFX_MAFIA_MALE_VOICE_1_DODGE_3, + SFX_MAFIA_MALE_VOICE_1_DODGE_4, + SFX_MAFIA_MALE_VOICE_1_DODGE_5, + SFX_MAFIA_MALE_VOICE_1_EYING_1, + SFX_MAFIA_MALE_VOICE_1_EYING_2, + SFX_MAFIA_MALE_VOICE_1_EYING_3, + SFX_MAFIA_MALE_VOICE_1_FIGHT_1, + SFX_MAFIA_MALE_VOICE_1_FIGHT_2, + SFX_MAFIA_MALE_VOICE_1_FIGHT_3, + SFX_MAFIA_MALE_VOICE_1_FIGHT_4, + SFX_MAFIA_MALE_VOICE_1_FIGHT_5, + SFX_MAFIA_MALE_VOICE_1_CARJACKED_1, + SFX_MAFIA_MALE_VOICE_1_CARJACKED_2, + SFX_MAFIA_MALE_VOICE_1_CARJACKING_1, + SFX_MAFIA_MALE_VOICE_1_CARJACKING_2, + SFX_MAFIA_MALE_VOICE_2_DRIVER_ABUSE_1, + SFX_MAFIA_MALE_VOICE_2_DRIVER_ABUSE_2, + SFX_MAFIA_MALE_VOICE_2_DRIVER_ABUSE_3, + SFX_MAFIA_MALE_VOICE_2_DRIVER_ABUSE_4, + SFX_MAFIA_MALE_VOICE_2_DRIVER_ABUSE_5, + SFX_MAFIA_MALE_VOICE_2_DRIVER_ABUSE_6, + SFX_MAFIA_MALE_VOICE_2_CHAT_1, + SFX_MAFIA_MALE_VOICE_2_CHAT_2, + SFX_MAFIA_MALE_VOICE_2_CHAT_3, + SFX_MAFIA_MALE_VOICE_2_CHAT_4, + SFX_MAFIA_MALE_VOICE_2_CHAT_5, + SFX_MAFIA_MALE_VOICE_2_CHAT_6, + SFX_MAFIA_MALE_VOICE_2_CHAT_7, + SFX_MAFIA_MALE_VOICE_2_DODGE_1, + SFX_MAFIA_MALE_VOICE_2_DODGE_2, + SFX_MAFIA_MALE_VOICE_2_DODGE_3, + SFX_MAFIA_MALE_VOICE_2_DODGE_4, + SFX_MAFIA_MALE_VOICE_2_DODGE_5, + SFX_MAFIA_MALE_VOICE_2_EYING_1, + SFX_MAFIA_MALE_VOICE_2_EYING_2, + SFX_MAFIA_MALE_VOICE_2_EYING_3, + SFX_MAFIA_MALE_VOICE_2_FIGHT_1, + SFX_MAFIA_MALE_VOICE_2_FIGHT_2, + SFX_MAFIA_MALE_VOICE_2_FIGHT_3, + SFX_MAFIA_MALE_VOICE_2_FIGHT_4, + SFX_MAFIA_MALE_VOICE_2_FIGHT_5, + SFX_MAFIA_MALE_VOICE_2_CARJACKED_1, + SFX_MAFIA_MALE_VOICE_2_CARJACKED_2, + SFX_MAFIA_MALE_VOICE_2_CARJACKING_1, + SFX_MAFIA_MALE_VOICE_2_CARJACKING_2, + SFX_MAFIA_MALE_VOICE_3_DRIVER_ABUSE_1, + SFX_MAFIA_MALE_VOICE_3_DRIVER_ABUSE_2, + SFX_MAFIA_MALE_VOICE_3_DRIVER_ABUSE_3, + SFX_MAFIA_MALE_VOICE_3_DRIVER_ABUSE_4, + SFX_MAFIA_MALE_VOICE_3_DRIVER_ABUSE_5, + SFX_MAFIA_MALE_VOICE_3_DRIVER_ABUSE_6, + SFX_MAFIA_MALE_VOICE_3_CHAT_1, + SFX_MAFIA_MALE_VOICE_3_CHAT_2, + SFX_MAFIA_MALE_VOICE_3_CHAT_3, + SFX_MAFIA_MALE_VOICE_3_CHAT_4, + SFX_MAFIA_MALE_VOICE_3_CHAT_5, + SFX_MAFIA_MALE_VOICE_3_CHAT_6, + SFX_MAFIA_MALE_VOICE_3_CHAT_7, + SFX_MAFIA_MALE_VOICE_3_DODGE_1, + SFX_MAFIA_MALE_VOICE_3_DODGE_2, + SFX_MAFIA_MALE_VOICE_3_DODGE_3, + SFX_MAFIA_MALE_VOICE_3_DODGE_4, + SFX_MAFIA_MALE_VOICE_3_DODGE_5, + SFX_MAFIA_MALE_VOICE_3_EYING_1, + SFX_MAFIA_MALE_VOICE_3_EYING_2, + SFX_MAFIA_MALE_VOICE_3_EYING_3, + SFX_MAFIA_MALE_VOICE_3_FIGHT_1, + SFX_MAFIA_MALE_VOICE_3_FIGHT_2, + SFX_MAFIA_MALE_VOICE_3_FIGHT_3, + SFX_MAFIA_MALE_VOICE_3_FIGHT_4, + SFX_MAFIA_MALE_VOICE_3_FIGHT_5, + SFX_MAFIA_MALE_VOICE_3_CARJACKED_1, + SFX_MAFIA_MALE_VOICE_3_CARJACKED_2, + SFX_MAFIA_MALE_VOICE_3_CARJACKING_1, + SFX_MAFIA_MALE_VOICE_3_CARJACKING_2, + SFX_YAKUZA_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_YAKUZA_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_YAKUZA_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_YAKUZA_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_YAKUZA_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_YAKUZA_MALE_VOICE_1_DRIVER_ABUSE_6, + SFX_YAKUZA_MALE_VOICE_1_CHAT_1, + SFX_YAKUZA_MALE_VOICE_1_CHAT_2, + SFX_YAKUZA_MALE_VOICE_1_CHAT_3, + SFX_YAKUZA_MALE_VOICE_1_CHAT_4, + SFX_YAKUZA_MALE_VOICE_1_CHAT_5, + SFX_YAKUZA_MALE_VOICE_1_DODGE_1, + SFX_YAKUZA_MALE_VOICE_1_DODGE_2, + SFX_YAKUZA_MALE_VOICE_1_DODGE_3, + SFX_YAKUZA_MALE_VOICE_1_DODGE_4, + SFX_YAKUZA_MALE_VOICE_1_FIGHT_1, + SFX_YAKUZA_MALE_VOICE_1_FIGHT_2, + SFX_YAKUZA_MALE_VOICE_1_FIGHT_3, + SFX_YAKUZA_MALE_VOICE_1_FIGHT_4, + SFX_YAKUZA_MALE_VOICE_1_FIGHT_5, + SFX_YAKUZA_MALE_VOICE_1_CARJACKED_1, + SFX_YAKUZA_MALE_VOICE_1_CARJACKED_2, + SFX_YAKUZA_MALE_VOICE_1_CARJACKING_1, + SFX_YAKUZA_MALE_VOICE_1_CARJACKING_2, + SFX_YAKUZA_MALE_VOICE_2_DRIVER_ABUSE_1, + SFX_YAKUZA_MALE_VOICE_2_DRIVER_ABUSE_2, + SFX_YAKUZA_MALE_VOICE_2_DRIVER_ABUSE_3, + SFX_YAKUZA_MALE_VOICE_2_DRIVER_ABUSE_4, + SFX_YAKUZA_MALE_VOICE_2_DRIVER_ABUSE_5, + SFX_YAKUZA_MALE_VOICE_2_DRIVER_ABUSE_6, + SFX_YAKUZA_MALE_VOICE_2_CHAT_1, + SFX_YAKUZA_MALE_VOICE_2_CHAT_2, + SFX_YAKUZA_MALE_VOICE_2_CHAT_3, + SFX_YAKUZA_MALE_VOICE_2_CHAT_4, + SFX_YAKUZA_MALE_VOICE_2_CHAT_5, + SFX_YAKUZA_MALE_VOICE_2_DODGE_1, + SFX_YAKUZA_MALE_VOICE_2_DODGE_2, + SFX_YAKUZA_MALE_VOICE_2_DODGE_3, + SFX_YAKUZA_MALE_VOICE_2_DODGE_4, + SFX_YAKUZA_MALE_VOICE_2_FIGHT_1, + SFX_YAKUZA_MALE_VOICE_2_FIGHT_2, + SFX_YAKUZA_MALE_VOICE_2_FIGHT_3, + SFX_YAKUZA_MALE_VOICE_2_FIGHT_4, + SFX_YAKUZA_MALE_VOICE_2_FIGHT_5, + SFX_YAKUZA_MALE_VOICE_2_CARJACKED_1, + SFX_YAKUZA_MALE_VOICE_2_CARJACKED_2, + SFX_YAKUZA_MALE_VOICE_2_CARJACKING_1, + SFX_YAKUZA_MALE_VOICE_2_CARJACKING_2, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_DRIVER_ABUSE_1, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_DRIVER_ABUSE_2, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_DRIVER_ABUSE_3, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_DRIVER_ABUSE_4, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_CHAT_1, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_CHAT_2, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_CHAT_3, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_CHAT_4, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_CHAT_5, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_CHAT_6, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_CHAT_7, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_DODGE_1, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_DODGE_2, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_DODGE_3, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_DODGE_4, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_DODGE_5, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_EYING_1, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_EYING_2, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_EYING_3, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_FIGHT_1, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_FIGHT_2, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_FIGHT_3, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_FIGHT_4, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_FIGHT_5, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_GUN_PANIC_1, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_GUN_PANIC_2, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_GUN_PANIC_3, + SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_CARJACKED_1, + SFX_ASIAN_TAXI_DRIVER_VOICE_1_DRIVER_ABUSE_1, + SFX_ASIAN_TAXI_DRIVER_VOICE_1_DRIVER_ABUSE_2, + SFX_ASIAN_TAXI_DRIVER_VOICE_1_DRIVER_ABUSE_3, + SFX_ASIAN_TAXI_DRIVER_VOICE_1_DRIVER_ABUSE_4, + SFX_ASIAN_TAXI_DRIVER_VOICE_1_DRIVER_ABUSE_5, + SFX_ASIAN_TAXI_DRIVER_VOICE_1_DRIVER_ABUSE_6, + SFX_ASIAN_TAXI_DRIVER_VOICE_1_CARJACKED_1, + SFX_ASIAN_TAXI_DRIVER_VOICE_1_CARJACKED_2, + SFX_ASIAN_TAXI_DRIVER_VOICE_1_CARJACKED_3, + SFX_ASIAN_TAXI_DRIVER_VOICE_1_CARJACKED_4, + SFX_ASIAN_TAXI_DRIVER_VOICE_1_CARJACKED_5, + SFX_ASIAN_TAXI_DRIVER_VOICE_1_CARJACKED_6, + SFX_ASIAN_TAXI_DRIVER_VOICE_1_CARJACKED_7, + SFX_ASIAN_TAXI_DRIVER_VOICE_2_DRIVER_ABUSE_1, + SFX_ASIAN_TAXI_DRIVER_VOICE_2_DRIVER_ABUSE_2, + SFX_ASIAN_TAXI_DRIVER_VOICE_2_DRIVER_ABUSE_3, + SFX_ASIAN_TAXI_DRIVER_VOICE_2_DRIVER_ABUSE_4, + SFX_ASIAN_TAXI_DRIVER_VOICE_2_DRIVER_ABUSE_5, + SFX_ASIAN_TAXI_DRIVER_VOICE_2_DRIVER_ABUSE_6, + SFX_ASIAN_TAXI_DRIVER_VOICE_2_CARJACKED_1, + SFX_ASIAN_TAXI_DRIVER_VOICE_2_CARJACKED_2, + SFX_ASIAN_TAXI_DRIVER_VOICE_2_CARJACKED_3, + SFX_ASIAN_TAXI_DRIVER_VOICE_2_CARJACKED_4, + SFX_ASIAN_TAXI_DRIVER_VOICE_2_CARJACKED_5, + SFX_ASIAN_TAXI_DRIVER_VOICE_2_CARJACKED_6, + SFX_ASIAN_TAXI_DRIVER_VOICE_2_CARJACKED_7, + SFX_SECURITY_GUARD_VOICE_1_DRIVER_ABUSE_1, + SFX_SECURITY_GUARD_VOICE_1_DRIVER_ABUSE_2, + SFX_SECURITY_GUARD_VOICE_1_DRIVER_ABUSE_3, + SFX_SECURITY_GUARD_VOICE_1_DRIVER_ABUSE_4, + SFX_SECURITY_GUARD_VOICE_1_DRIVER_ABUSE_5, + SFX_SECURITY_GUARD_VOICE_1_DRIVER_ABUSE_6, + SFX_SECURITY_GUARD_VOICE_1_FIGHT_1, + SFX_SECURITY_GUARD_VOICE_1_FIGHT_2, + SFX_SECURITY_GUARD_VOICE_1_GUN_COOL_1, + SFX_SECURITY_GUARD_VOICE_1_GUN_COOL_2, + SFX_SECURITY_GUARD_VOICE_1_GUN_PANIC_1, + SFX_SECURITY_GUARD_VOICE_1_RUN_FROM_FIGHT_1, + SFX_BLACK_PROSTITUTE_VOICE_1_CHAT_1, + SFX_BLACK_PROSTITUTE_VOICE_1_CHAT_2, + SFX_BLACK_PROSTITUTE_VOICE_1_CHAT_3, + SFX_BLACK_PROSTITUTE_VOICE_1_CHAT_4, + SFX_BLACK_PROSTITUTE_VOICE_1_DODGE_1, + SFX_BLACK_PROSTITUTE_VOICE_1_DODGE_2, + SFX_BLACK_PROSTITUTE_VOICE_1_DODGE_3, + SFX_BLACK_PROSTITUTE_VOICE_1_MUGGED_1, + SFX_BLACK_PROSTITUTE_VOICE_1_DRIVER_ABUSE_1, + SFX_BLACK_PROSTITUTE_VOICE_1_DRIVER_ABUSE_2, + SFX_BLACK_PROSTITUTE_VOICE_1_DRIVER_ABUSE_3, + SFX_BLACK_PROSTITUTE_VOICE_1_DRIVER_ABUSE_4, + SFX_BLACK_PROSTITUTE_VOICE_1_FIGHT_1, + SFX_BLACK_PROSTITUTE_VOICE_1_FIGHT_2, + SFX_BLACK_PROSTITUTE_VOICE_1_FIGHT_3, + SFX_BLACK_PROSTITUTE_VOICE_1_FIGHT_4, + SFX_BLACK_PROSTITUTE_VOICE_1_SOLICIT_1, + SFX_BLACK_PROSTITUTE_VOICE_1_SOLICIT_2, + SFX_BLACK_PROSTITUTE_VOICE_1_SOLICIT_3, + SFX_BLACK_PROSTITUTE_VOICE_1_SOLICIT_4, + SFX_BLACK_PROSTITUTE_VOICE_1_SOLICIT_5, + SFX_BLACK_PROSTITUTE_VOICE_1_SOLICIT_6, + SFX_BLACK_PROSTITUTE_VOICE_1_SOLICIT_7, + SFX_BLACK_PROSTITUTE_VOICE_1_SOLICIT_8, + SFX_BLACK_PROSTITUTE_VOICE_1_GUN_COOL_1, + SFX_BLACK_PROSTITUTE_VOICE_1_GUN_COOL_2, + SFX_BLACK_PROSTITUTE_VOICE_1_GUN_COOL_3, + SFX_BLACK_PROSTITUTE_VOICE_1_GUN_COOL_4, + SFX_BLACK_PROSTITUTE_VOICE_2_CHAT_1, + SFX_BLACK_PROSTITUTE_VOICE_2_CHAT_2, + SFX_BLACK_PROSTITUTE_VOICE_2_CHAT_3, + SFX_BLACK_PROSTITUTE_VOICE_2_CHAT_4, + SFX_BLACK_PROSTITUTE_VOICE_2_DODGE_1, + SFX_BLACK_PROSTITUTE_VOICE_2_DODGE_2, + SFX_BLACK_PROSTITUTE_VOICE_2_DODGE_3, + SFX_BLACK_PROSTITUTE_VOICE_2_MUGGED_1, + SFX_BLACK_PROSTITUTE_VOICE_2_DRIVER_ABUSE_1, + SFX_BLACK_PROSTITUTE_VOICE_2_DRIVER_ABUSE_2, + SFX_BLACK_PROSTITUTE_VOICE_2_DRIVER_ABUSE_3, + SFX_BLACK_PROSTITUTE_VOICE_2_DRIVER_ABUSE_4, + SFX_BLACK_PROSTITUTE_VOICE_2_FIGHT_1, + SFX_BLACK_PROSTITUTE_VOICE_2_FIGHT_2, + SFX_BLACK_PROSTITUTE_VOICE_2_FIGHT_3, + SFX_BLACK_PROSTITUTE_VOICE_2_FIGHT_4, + SFX_BLACK_PROSTITUTE_VOICE_2_SOLICIT_1, + SFX_BLACK_PROSTITUTE_VOICE_2_SOLICIT_2, + SFX_BLACK_PROSTITUTE_VOICE_2_SOLICIT_3, + SFX_BLACK_PROSTITUTE_VOICE_2_SOLICIT_4, + SFX_BLACK_PROSTITUTE_VOICE_2_SOLICIT_5, + SFX_BLACK_PROSTITUTE_VOICE_2_SOLICIT_6, + SFX_BLACK_PROSTITUTE_VOICE_2_SOLICIT_7, + SFX_BLACK_PROSTITUTE_VOICE_2_SOLICIT_8, + SFX_BLACK_PROSTITUTE_VOICE_2_GUN_COOL_1, + SFX_BLACK_PROSTITUTE_VOICE_2_GUN_COOL_2, + SFX_BLACK_PROSTITUTE_VOICE_2_GUN_COOL_3, + SFX_BLACK_PROSTITUTE_VOICE_2_GUN_COOL_4, + SFX_WHITE_PROSTITUTE_VOICE_1_CHAT_1, + SFX_WHITE_PROSTITUTE_VOICE_1_CHAT_2, + SFX_WHITE_PROSTITUTE_VOICE_1_CHAT_3, + SFX_WHITE_PROSTITUTE_VOICE_1_CHAT_4, + SFX_WHITE_PROSTITUTE_VOICE_1_DODGE_1, + SFX_WHITE_PROSTITUTE_VOICE_1_DODGE_2, + SFX_WHITE_PROSTITUTE_VOICE_1_DODGE_3, + SFX_WHITE_PROSTITUTE_VOICE_1_MUGGED_1, + SFX_WHITE_PROSTITUTE_VOICE_1_MUGGED_2, + SFX_WHITE_PROSTITUTE_VOICE_1_DRIVER_ABUSE_1, + SFX_WHITE_PROSTITUTE_VOICE_1_DRIVER_ABUSE_2, + SFX_WHITE_PROSTITUTE_VOICE_1_DRIVER_ABUSE_3, + SFX_WHITE_PROSTITUTE_VOICE_1_DRIVER_ABUSE_4, + SFX_WHITE_PROSTITUTE_VOICE_1_FIGHT_1, + SFX_WHITE_PROSTITUTE_VOICE_1_FIGHT_2, + SFX_WHITE_PROSTITUTE_VOICE_1_FIGHT_3, + SFX_WHITE_PROSTITUTE_VOICE_1_FIGHT_4, + SFX_WHITE_PROSTITUTE_VOICE_1_SOLICIT_1, + SFX_WHITE_PROSTITUTE_VOICE_1_SOLICIT_2, + SFX_WHITE_PROSTITUTE_VOICE_1_SOLICIT_3, + SFX_WHITE_PROSTITUTE_VOICE_1_SOLICIT_4, + SFX_WHITE_PROSTITUTE_VOICE_1_SOLICIT_5, + SFX_WHITE_PROSTITUTE_VOICE_1_SOLICIT_6, + SFX_WHITE_PROSTITUTE_VOICE_1_SOLICIT_7, + SFX_WHITE_PROSTITUTE_VOICE_1_SOLICIT_8, + SFX_WHITE_PROSTITUTE_VOICE_2_CHAT_1, + SFX_WHITE_PROSTITUTE_VOICE_2_CHAT_2, + SFX_WHITE_PROSTITUTE_VOICE_2_CHAT_3, + SFX_WHITE_PROSTITUTE_VOICE_2_CHAT_4, + SFX_WHITE_PROSTITUTE_VOICE_2_DODGE_1, + SFX_WHITE_PROSTITUTE_VOICE_2_DODGE_2, + SFX_WHITE_PROSTITUTE_VOICE_2_DODGE_3, + SFX_WHITE_PROSTITUTE_VOICE_2_MUGGED_1, + SFX_WHITE_PROSTITUTE_VOICE_2_MUGGED_2, + SFX_WHITE_PROSTITUTE_VOICE_2_DRIVER_ABUSE_1, + SFX_WHITE_PROSTITUTE_VOICE_2_DRIVER_ABUSE_2, + SFX_WHITE_PROSTITUTE_VOICE_2_DRIVER_ABUSE_3, + SFX_WHITE_PROSTITUTE_VOICE_2_DRIVER_ABUSE_4, + SFX_WHITE_PROSTITUTE_VOICE_2_FIGHT_1, + SFX_WHITE_PROSTITUTE_VOICE_2_FIGHT_2, + SFX_WHITE_PROSTITUTE_VOICE_2_FIGHT_3, + SFX_WHITE_PROSTITUTE_VOICE_2_FIGHT_4, + SFX_WHITE_PROSTITUTE_VOICE_2_SOLICIT_1, + SFX_WHITE_PROSTITUTE_VOICE_2_SOLICIT_2, + SFX_WHITE_PROSTITUTE_VOICE_2_SOLICIT_3, + SFX_WHITE_PROSTITUTE_VOICE_2_SOLICIT_4, + SFX_WHITE_PROSTITUTE_VOICE_2_SOLICIT_5, + SFX_WHITE_PROSTITUTE_VOICE_2_SOLICIT_6, + SFX_WHITE_PROSTITUTE_VOICE_2_SOLICIT_7, + SFX_WHITE_PROSTITUTE_VOICE_2_SOLICIT_8, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_CHAT_1, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_CHAT_2, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_CHAT_3, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_CHAT_4, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_CHAT_5, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_CHAT_6, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_DODGE_1, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_DODGE_2, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_DODGE_3, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_DODGE_4, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_DODGE_5, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_DODGE_6, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_DODGE_7, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_CARJACKED_1, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_CARJACKED_2, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_MUGGED_1, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_MUGGED_2, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_DRIVER_ABUSE_1, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_DRIVER_ABUSE_2, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_DRIVER_ABUSE_3, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_DRIVER_ABUSE_4, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_DRIVER_ABUSE_5, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_DRIVER_ABUSE_6, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_SHOCKED_1, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_SHOCKED_2, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_SHOCKED_3, + SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_SHOCKED_4, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_CHAT_1, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_CHAT_2, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_CHAT_3, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_CHAT_4, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_CHAT_5, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_CHAT_6, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_CHAT_7, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_DODGE_1, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_DODGE_2, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_DODGE_3, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_DODGE_4, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_DODGE_5, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_DODGE_6, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_CARJACKED_1, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_CARJACKED_2, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_MUGGED_1, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_MUGGED_2, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_DRIVER_ABUSE_1, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_DRIVER_ABUSE_2, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_DRIVER_ABUSE_3, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_DRIVER_ABUSE_4, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_DRIVER_ABUSE_5, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_DRIVER_ABUSE_6, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_DRIVER_ABUSE_7, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_SHOCKED_1, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_SHOCKED_2, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_SHOCKED_3, + SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_SHOCKED_4, + SFX_GENERIC_MALE_DEATH_1, + SFX_GENERIC_MALE_DEATH_2, + SFX_GENERIC_MALE_DEATH_3, + SFX_GENERIC_MALE_DEATH_4, + SFX_GENERIC_MALE_DEATH_5, + SFX_GENERIC_MALE_DEATH_6, + SFX_GENERIC_MALE_DEATH_7, + SFX_GENERIC_MALE_DEATH_8, + SFX_GENERIC_MALE_FIRE_1, + SFX_GENERIC_MALE_FIRE_2, + SFX_GENERIC_MALE_FIRE_3, + SFX_GENERIC_MALE_FIRE_4, + SFX_GENERIC_MALE_FIRE_5, + SFX_GENERIC_MALE_FIRE_6, + SFX_GENERIC_MALE_FIRE_7, + SFX_GENERIC_MALE_FIRE_8, + SFX_GENERIC_MALE_GRUNT_1, + SFX_GENERIC_MALE_GRUNT_2, + SFX_GENERIC_MALE_GRUNT_3, + SFX_GENERIC_MALE_GRUNT_4, + SFX_GENERIC_MALE_GRUNT_5, + SFX_GENERIC_MALE_GRUNT_6, + SFX_GENERIC_MALE_GRUNT_7, + SFX_GENERIC_MALE_GRUNT_8, + SFX_GENERIC_MALE_GRUNT_9, + SFX_GENERIC_MALE_GRUNT_10, + SFX_GENERIC_MALE_GRUNT_11, + SFX_GENERIC_MALE_GRUNT_12, + SFX_GENERIC_MALE_GRUNT_13, + SFX_GENERIC_MALE_GRUNT_14, + SFX_GENERIC_MALE_GRUNT_15, + SFX_GENERIC_MALE_PANIC_1, + SFX_GENERIC_MALE_PANIC_2, + SFX_GENERIC_MALE_PANIC_3, + SFX_GENERIC_MALE_PANIC_4, + SFX_GENERIC_MALE_PANIC_5, + SFX_GENERIC_MALE_PANIC_6, + SFX_WHITE_FAT_MALE_VOICE_1_CHAT_1, + SFX_WHITE_FAT_MALE_VOICE_1_CHAT_2, + SFX_WHITE_FAT_MALE_VOICE_1_CHAT_3, + SFX_WHITE_FAT_MALE_VOICE_1_CHAT_4, + SFX_WHITE_FAT_MALE_VOICE_1_CHAT_5, + SFX_WHITE_FAT_MALE_VOICE_1_CHAT_6, + SFX_WHITE_FAT_MALE_VOICE_1_CHAT_7, + SFX_WHITE_FAT_MALE_VOICE_1_CHAT_8, + SFX_WHITE_FAT_MALE_VOICE_1_CHAT_9, + SFX_WHITE_FAT_MALE_VOICE_1_DODGE_1, + SFX_WHITE_FAT_MALE_VOICE_1_DODGE_2, + SFX_WHITE_FAT_MALE_VOICE_1_DODGE_3, + SFX_WHITE_FAT_MALE_VOICE_1_DODGE_4, + SFX_WHITE_FAT_MALE_VOICE_1_DODGE_5, + SFX_WHITE_FAT_MALE_VOICE_1_DODGE_6, + SFX_WHITE_FAT_MALE_VOICE_1_DODGE_7, + SFX_WHITE_FAT_MALE_VOICE_1_DODGE_8, + SFX_WHITE_FAT_MALE_VOICE_1_DODGE_9, + SFX_WHITE_FAT_MALE_VOICE_1_CARJACKED_1, + SFX_WHITE_FAT_MALE_VOICE_1_CARJACKED_2, + SFX_WHITE_FAT_MALE_VOICE_1_CARJACKED_3, + SFX_WHITE_FAT_MALE_VOICE_1_MUGGED_1, + SFX_WHITE_FAT_MALE_VOICE_1_MUGGED_2, + SFX_WHITE_FAT_MALE_VOICE_1_MUGGED_3, + SFX_WHITE_FAT_MALE_VOICE_1_LOST_1, + SFX_WHITE_FAT_MALE_VOICE_1_LOST_2, + SFX_WHITE_FAT_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_WHITE_FAT_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_WHITE_FAT_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_WHITE_FAT_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_WHITE_FAT_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_WHITE_FAT_MALE_VOICE_1_DRIVER_ABUSE_6, + SFX_WHITE_FAT_MALE_VOICE_1_DRIVER_ABUSE_7, + SFX_WHITE_FAT_MALE_VOICE_1_DRIVER_ABUSE_8, + SFX_WHITE_FAT_MALE_VOICE_1_DRIVER_ABUSE_9, + SFX_WHITE_FAT_FEMALE_VOICE_1_CHAT_1, + SFX_WHITE_FAT_FEMALE_VOICE_1_CHAT_2, + SFX_WHITE_FAT_FEMALE_VOICE_1_CHAT_3, + SFX_WHITE_FAT_FEMALE_VOICE_1_CHAT_4, + SFX_WHITE_FAT_FEMALE_VOICE_1_CHAT_5, + SFX_WHITE_FAT_FEMALE_VOICE_1_CHAT_6, + SFX_WHITE_FAT_FEMALE_VOICE_1_CHAT_7, + SFX_WHITE_FAT_FEMALE_VOICE_1_CHAT_8, + SFX_WHITE_FAT_FEMALE_VOICE_1_DODGE_1, + SFX_WHITE_FAT_FEMALE_VOICE_1_DODGE_2, + SFX_WHITE_FAT_FEMALE_VOICE_1_DODGE_3, + SFX_WHITE_FAT_FEMALE_VOICE_1_DODGE_4, + SFX_WHITE_FAT_FEMALE_VOICE_1_DODGE_5, + SFX_WHITE_FAT_FEMALE_VOICE_1_DODGE_6, + SFX_WHITE_FAT_FEMALE_VOICE_1_CARJACKED_1, + SFX_WHITE_FAT_FEMALE_VOICE_1_CARJACKED_2, + SFX_WHITE_FAT_FEMALE_VOICE_1_MUGGED_1, + SFX_WHITE_FAT_FEMALE_VOICE_1_MUGGED_2, + SFX_WHITE_FAT_FEMALE_VOICE_1_LOST_1, + SFX_WHITE_FAT_FEMALE_VOICE_1_LOST_2, + SFX_WHITE_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_1, + SFX_WHITE_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_2, + SFX_WHITE_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_3, + SFX_WHITE_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_4, + SFX_WHITE_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_5, + SFX_WHITE_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_6, + SFX_WHITE_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_7, + SFX_WHITE_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_8, + SFX_WHITE_FAT_FEMALE_VOICE_1_SHOCKED_1, + SFX_WHITE_FAT_FEMALE_VOICE_1_SHOCKED_2, + SFX_WHITE_FAT_FEMALE_VOICE_1_SHOCKED_3, + SFX_WHITE_FAT_FEMALE_VOICE_1_SHOCKED_4, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_CHAT_1, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_CHAT_2, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_CHAT_3, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_CHAT_4, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_DODGE_1, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_DODGE_2, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_DODGE_3, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_CARJACKED_1, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_CARJACKED_2, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_MUGGED_1, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_DRIVER_ABUSE_1, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_DRIVER_ABUSE_2, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_DRIVER_ABUSE_3, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_DRIVER_ABUSE_4, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_DRIVER_ABUSE_5, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_DRIVER_ABUSE_6, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_DRIVER_ABUSE_7, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_DRIVER_ABUSE_8, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_SHOCKED_1, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_SHOCKED_2, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_GUN_PANIC_1, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_GUN_PANIC_2, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_RUN_FROM_FIGHT_1, + SFX_WHITE_CASUAL_FEMALE_VOICE_1_RUN_FROM_FIGHT_2, + SFX_DIABLO_MALE_VOICE_1_CHAT_1, + SFX_DIABLO_MALE_VOICE_1_CHAT_2, + SFX_DIABLO_MALE_VOICE_1_CHAT_3, + SFX_DIABLO_MALE_VOICE_1_CHAT_4, + SFX_DIABLO_MALE_VOICE_1_CHAT_5, + SFX_DIABLO_MALE_VOICE_1_DODGE_1, + SFX_DIABLO_MALE_VOICE_1_DODGE_2, + SFX_DIABLO_MALE_VOICE_1_DODGE_3, + SFX_DIABLO_MALE_VOICE_1_DODGE_4, + SFX_DIABLO_MALE_VOICE_1_CARJACKED_1, + SFX_DIABLO_MALE_VOICE_1_CARJACKED_2, + SFX_DIABLO_MALE_VOICE_1_CARJACKING_1, + SFX_DIABLO_MALE_VOICE_1_CARJACKING_2, + SFX_DIABLO_MALE_VOICE_1_FIGHT_1, + SFX_DIABLO_MALE_VOICE_1_FIGHT_2, + SFX_DIABLO_MALE_VOICE_1_FIGHT_3, + SFX_DIABLO_MALE_VOICE_1_FIGHT_4, + SFX_DIABLO_MALE_VOICE_1_EYING_1, + SFX_DIABLO_MALE_VOICE_1_EYING_2, + SFX_DIABLO_MALE_VOICE_1_EYING_3, + SFX_DIABLO_MALE_VOICE_1_EYING_4, + SFX_DIABLO_MALE_VOICE_1_GUN_COOL_1, + SFX_DIABLO_MALE_VOICE_1_GUN_COOL_2, + SFX_DIABLO_MALE_VOICE_1_GUN_COOL_3, + SFX_DIABLO_MALE_VOICE_1_GUN_COOL_4, + SFX_DIABLO_MALE_VOICE_1_DRIVER_ABUSE_1, + SFX_DIABLO_MALE_VOICE_1_DRIVER_ABUSE_2, + SFX_DIABLO_MALE_VOICE_1_DRIVER_ABUSE_3, + SFX_DIABLO_MALE_VOICE_1_DRIVER_ABUSE_4, + SFX_DIABLO_MALE_VOICE_1_DRIVER_ABUSE_5, + SFX_DIABLO_MALE_VOICE_2_CHAT_1, + SFX_DIABLO_MALE_VOICE_2_CHAT_2, + SFX_DIABLO_MALE_VOICE_2_CHAT_3, + SFX_DIABLO_MALE_VOICE_2_CHAT_4, + SFX_DIABLO_MALE_VOICE_2_CHAT_5, + SFX_DIABLO_MALE_VOICE_2_DODGE_1, + SFX_DIABLO_MALE_VOICE_2_DODGE_2, + SFX_DIABLO_MALE_VOICE_2_DODGE_3, + SFX_DIABLO_MALE_VOICE_2_DODGE_4, + SFX_DIABLO_MALE_VOICE_2_CARJACKED_1, + SFX_DIABLO_MALE_VOICE_2_CARJACKED_2, + SFX_DIABLO_MALE_VOICE_2_CARJACKING_1, + SFX_DIABLO_MALE_VOICE_2_CARJACKING_2, + SFX_DIABLO_MALE_VOICE_2_FIGHT_1, + SFX_DIABLO_MALE_VOICE_2_FIGHT_2, + SFX_DIABLO_MALE_VOICE_2_FIGHT_3, + SFX_DIABLO_MALE_VOICE_2_FIGHT_4, + SFX_DIABLO_MALE_VOICE_2_EYING_1, + SFX_DIABLO_MALE_VOICE_2_EYING_2, + SFX_DIABLO_MALE_VOICE_2_EYING_3, + SFX_DIABLO_MALE_VOICE_2_EYING_4, + SFX_DIABLO_MALE_VOICE_2_GUN_COOL_1, + SFX_DIABLO_MALE_VOICE_2_GUN_COOL_2, + SFX_DIABLO_MALE_VOICE_2_GUN_COOL_3, + SFX_DIABLO_MALE_VOICE_2_GUN_COOL_4, + SFX_DIABLO_MALE_VOICE_2_DRIVER_ABUSE_1, + SFX_DIABLO_MALE_VOICE_2_DRIVER_ABUSE_2, + SFX_DIABLO_MALE_VOICE_2_DRIVER_ABUSE_3, + SFX_DIABLO_MALE_VOICE_2_DRIVER_ABUSE_4, + SFX_DIABLO_MALE_VOICE_2_DRIVER_ABUSE_5, + SFX_AMMU_D, + SFX_AMMU_E, + SFX_AMMU_F, + TOTAL_AUDIO_SAMPLES, NO_SAMPLE, // shorthands SAMPLEBANK_START = SFX_CAR_HORN_JEEP, - SAMPLEBANK_END = SFX_FOOTSTEP_SAND_4, - SAMPLEBANK_MAX = SFX_FOOTSTEP_SAND_4 + 1, - SAMPLEBANK_PED_START = SFX_FOOTSTEP_SAND_4 + 1, - SAMPLEBANK_PED_END = 9940, - SAMPLEBANK_PED_MAX = SAMPLEBANK_PED_END + 1, + SAMPLEBANK_END = SFX_PAGER, + SAMPLEBANK_MAX = SFX_PAGER + 1, + SAMPLEBANK_PED_START = SFX_COP_VOICE_1_ARREST_1, + SAMPLEBANK_PED_END = SFX_AMMU_F, + SAMPLEBANK_PED_MAX = SFX_AMMU_F + 1, }; diff --git a/src/audio/PoliceRadio.cpp b/src/audio/PoliceRadio.cpp index 5843fd09..c8baec25 100644 --- a/src/audio/PoliceRadio.cpp +++ b/src/audio/PoliceRadio.cpp @@ -24,6 +24,8 @@ struct tPoliceRadioZone { }; tPoliceRadioZone ZoneSfx[NUMAUDIOZONES]; +char SubZo2Label[8]; +char SubZo3Label[8]; int32 g_nMissionAudioSfx = TOTAL_AUDIO_SAMPLES; int8 g_nMissionAudioPlayingStatus = 2; @@ -40,22 +42,48 @@ cAudioManager::InitialisePoliceRadioZones() strcpy(ZoneSfx[i].m_aName, name); \ ZoneSfx[i].m_nSampleIndex = sample; - SETZONESFX(0, "VICE_C", SFX_POLICE_RADIO_VICE_CITY); - SETZONESFX(1, "IND_ZON", SFX_POLICE_RADIO_VICE_CITY_BEACH); - SETZONESFX(2, "COM_ZON", SFX_POLICE_RADIO_VICE_CITY_MAINLAND); - SETZONESFX(3, "BEACH1", SFX_POLICE_RADIO_OCEAN_BEACH); - SETZONESFX(4, "BEACH2", SFX_POLICE_RADIO_WASHINGTON_BEACH); - SETZONESFX(5, "BEACH3", SFX_POLICE_RADIO_VICE_POINT); - SETZONESFX(6, "GOLFC", SFX_POLICE_RADIO_LEAF_LINKS); - SETZONESFX(7, "STARI", SFX_POLICE_RADIO_STRAFISH_ISLAND); - SETZONESFX(8, "DOCKS", SFX_POLICE_RADIO_VICE_PORT); - SETZONESFX(9, "HAVANA", SFX_POLICE_RADIO_LITTLE_HAVANA); - SETZONESFX(10, "HAITI", SFX_POLICE_RADIO_LITTLE_HAITI); - SETZONESFX(11, "PORNI", SFX_POLICE_RADIO_PRAWN_ISLAND); - SETZONESFX(12, "DTOWN", SFX_POLICE_RADIO_DOWNTOWN); - SETZONESFX(13, "A_PORT", SFX_POLICE_RADIO_ESCOBAR_INTERNATIONAL); + SETZONESFX(0, "HOSPI_2", SFX_POLICE_RADIO_ROCKFORD); + SETZONESFX(1, "CONSTRU", SFX_POLICE_RADIO_FORT_STAUNTON); + SETZONESFX(2, "STADIUM", SFX_POLICE_RADIO_ASPATRIA); + SETZONESFX(3, "YAKUSA", SFX_POLICE_RADIO_TORRINGTON); + SETZONESFX(4, "SHOPING", SFX_POLICE_RADIO_BEDFORD_POINT); + SETZONESFX(5, "COM_EAS", SFX_POLICE_RADIO_NEWPORT); + SETZONESFX(6, "PARK", SFX_POLICE_RADIO_BELLEVILLE_PARK); + SETZONESFX(7, "UNIVERS", SFX_POLICE_RADIO_LIBERTY_CAMPUS); + SETZONESFX(8, "BIG_DAM", SFX_POLICE_RADIO_COCHRANE_DAM); + SETZONESFX(9, "SUB_IND", SFX_POLICE_RADIO_PIKE_CREEK); + SETZONESFX(10, "SWANKS", SFX_POLICE_RADIO_CEDAR_GROVE); + SETZONESFX(11, "PROJECT", SFX_POLICE_RADIO_WICHITA_GARDENS); + SETZONESFX(12, "AIRPORT", SFX_POLICE_RADIO_FRANCIS_INTERNATIONAL_AIRPORT); + SETZONESFX(13, "PORT_W", SFX_POLICE_RADIO_CALLAHAN_POINT); + /* + SETZONESFX(14, "PORT_S", SFX_POLICE_RADIO_ATLANTIC_QUAYS); + SETZONESFX(15, "PORT_E", SFX_POLICE_RADIO_PORTLAND_HARBOUR); + SETZONESFX(16, "PORT_I", SFX_POLICE_RADIO_TRENTON); + SETZONESFX(17, "CHINA", SFX_POLICE_RADIO_CHINATOWN); + SETZONESFX(18, "REDLIGH", SFX_POLICE_RADIO_RED_LIGHT_DISTRICT); + SETZONESFX(19, "TOWERS", SFX_POLICE_RADIO_HEPBURN_HEIGHTS); + SETZONESFX(20, "LITTLEI", SFX_POLICE_RADIO_SAINT_MARKS); + SETZONESFX(21, "HARWOOD", SFX_POLICE_RADIO_HARWOOD); + SETZONESFX(22, "EASTBAY", SFX_POLICE_RADIO_PORTLAND_BEACH); + SETZONESFX(23, "S_VIEW", SFX_POLICE_RADIO_PORTLAND_STRAIGHTS); + SETZONESFX(24, "CITYZON", SFX_POLICE_RADIO_LIBERTY_CITY); + SETZONESFX(25, "IND_ZON", SFX_POLICE_RADIO_PORTLAND); + SETZONESFX(26, "COM_ZON", SFX_POLICE_RADIO_STAUNTON_ISLAND); + SETZONESFX(27, "SUB_ZON", SFX_POLICE_RADIO_SHORESIDE_VALE); + SETZONESFX(28, "SUB_ZO2", SFX_POLICE_RADIO_SHORESIDE_VALE); + SETZONESFX(29, "SUB_ZO3", SFX_POLICE_RADIO_SHORESIDE_VALE); + SETZONESFX(30, "A", SFX_POLICE_RADIO_ROCKFORD); + SETZONESFX(31, "A", SFX_POLICE_RADIO_ROCKFORD); + SETZONESFX(32, "A", SFX_POLICE_RADIO_ROCKFORD); + SETZONESFX(33, "A", SFX_POLICE_RADIO_ROCKFORD); + SETZONESFX(34, "A", SFX_POLICE_RADIO_ROCKFORD); + */ #undef SETZONESFX + + strcpy(SubZo2Label, "SUB_ZO2"); + strcpy(SubZo3Label, "SUB_ZO3"); } void @@ -218,7 +246,7 @@ cAudioManager::ServicePoliceRadioChannel(int32 wantedLevel) if (!wantedLevel) { if (gSpecialSuspectLastSeenReport) { gSpecialSuspectLastSeenReport = 0; - } else if (sample == SFX_POLICE_RADIO_MESSAGE_NOISE_1 || sample == TOTAL_AUDIO_SAMPLES) { + } else if (((sample >= SFX_POLICE_RADIO_MESSAGE_NOISE_1) && (sample <= SFX_POLICE_RADIO_MESSAGE_NOISE_3)) || sample == TOTAL_AUDIO_SAMPLES) { bChannelOpen = false; processed = true; } @@ -229,6 +257,8 @@ cAudioManager::ServicePoliceRadioChannel(int32 wantedLevel) SampleManager.InitialiseChannel(policeChannel, sample, 0); switch (sample) { case SFX_POLICE_RADIO_MESSAGE_NOISE_1: + case SFX_POLICE_RADIO_MESSAGE_NOISE_2: + case SFX_POLICE_RADIO_MESSAGE_NOISE_3: freq = m_anRandomTable[4] % 2000 + 10025; bChannelOpen = bChannelOpen == false; break; @@ -283,7 +313,7 @@ cAudioManager::SetupCrimeReport() sampleIndex = ZoneSfx[j].m_nSampleIndex; m_sPoliceRadioQueue.Add(m_anRandomTable[4] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1); m_sPoliceRadioQueue.Add(m_anRandomTable[0] % 3 + SFX_WEVE_GOT); - m_sPoliceRadioQueue.Add(SFX_A_10); + m_sPoliceRadioQueue.Add(m_anRandomTable[1] % 2 + SFX_A_10_1); switch (m_sPoliceRadioQueue.crimes[i].type) { case CRIME_PED_BURNED: m_sPoliceRadioQueue.crimes[i].type = CRIME_HIT_PED; break; case CRIME_COP_BURNED: m_sPoliceRadioQueue.crimes[i].type = CRIME_HIT_COP; break; @@ -293,31 +323,37 @@ cAudioManager::SetupCrimeReport() } m_sPoliceRadioQueue.Add(m_sPoliceRadioQueue.crimes[i].type + SFX_CRIME_1 - 1); m_sPoliceRadioQueue.Add(SFX_IN); - rangeX = zone->maxx - zone->minx; - rangeY = zone->maxy - zone->miny; - halfX = 0.5f * rangeX + zone->minx; - halfY = 0.5f * rangeY + zone->miny; - quarterX = 0.25f * rangeX; - quarterY = 0.25f * rangeY; - - if (m_sPoliceRadioQueue.crimes[i].position.y > halfY + quarterY) { + if (sampleIndex == SFX_POLICE_RADIO_SHORESIDE_VALE && + (strcmp(zone->name, SubZo2Label) == 0 || strcmp(zone->name, SubZo3Label) == 0)) { m_sPoliceRadioQueue.Add(SFX_NORTH); - processed = true; - } else if (m_sPoliceRadioQueue.crimes[i].position.y < halfY - quarterY) { - m_sPoliceRadioQueue.Add(SFX_SOUTH); - processed = true; - } - - if (m_sPoliceRadioQueue.crimes[i].position.x > halfX + quarterX) m_sPoliceRadioQueue.Add(SFX_EAST); - else if (m_sPoliceRadioQueue.crimes[i].position.x < halfX - quarterX) - m_sPoliceRadioQueue.Add(SFX_WEST); - else if (!processed) - m_sPoliceRadioQueue.Add(SFX_CENTRAL); - - m_sPoliceRadioQueue.Add(sampleIndex); - m_sPoliceRadioQueue.Add(m_anRandomTable[2] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1); - m_sPoliceRadioQueue.Add(TOTAL_AUDIO_SAMPLES); + } else { + rangeX = zone->maxx - zone->minx; + rangeY = zone->maxy - zone->miny; + halfX = 0.5f * rangeX + zone->minx; + halfY = 0.5f * rangeY + zone->miny; + quarterX = 0.25f * rangeX; + quarterY = 0.25f * rangeY; + + if (m_sPoliceRadioQueue.crimes[i].position.y > halfY + quarterY) { + m_sPoliceRadioQueue.Add(SFX_NORTH); + processed = true; + } else if (m_sPoliceRadioQueue.crimes[i].position.y < halfY - quarterY) { + m_sPoliceRadioQueue.Add(SFX_SOUTH); + processed = true; + } + + if (m_sPoliceRadioQueue.crimes[i].position.x > halfX + quarterX) + m_sPoliceRadioQueue.Add(SFX_EAST); + else if (m_sPoliceRadioQueue.crimes[i].position.x < halfX - quarterX) + m_sPoliceRadioQueue.Add(SFX_WEST); + else if (!processed) + m_sPoliceRadioQueue.Add(SFX_CENTRAL); + + m_sPoliceRadioQueue.Add(sampleIndex); + m_sPoliceRadioQueue.Add(m_anRandomTable[2] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1); + m_sPoliceRadioQueue.Add(TOTAL_AUDIO_SAMPLES); + } break; } } @@ -523,7 +559,7 @@ cAudioManager::SetupSuspectLastSeenReport() // main_color = SFX_POLICE_RADIO_BLACK; #endif case MI_IDAHO: - // case MI_STALLION: sample = SFX_POLICE_RADIO_CONVERTIBLE; break; + case MI_STALLION: sample = SFX_POLICE_RADIO_CONVERTIBLE; break; #ifdef FIX_BUGS // case MI_YAKUZA: // color_pre_modifier = TOTAL_AUDIO_SAMPLES; @@ -542,7 +578,7 @@ cAudioManager::SetupSuspectLastSeenReport() #endif case MI_PEREN: case MI_SENTINEL: - // case MI_FBICAR: sample = SFX_POLICE_RADIO_SALOON; break; + case MI_FBICAR: sample = SFX_POLICE_RADIO_SALOON; break; case MI_PATRIOT: case MI_BOBCAT: sample = SFX_POLICE_RADIO_PICKUP; break; case MI_FIRETRUCK: sample = SFX_POLICE_RADIO_FIRE_TRUCK; break; @@ -552,7 +588,7 @@ cAudioManager::SetupSuspectLastSeenReport() #endif case MI_TRASH: case MI_BARRACKS: sample = SFX_POLICE_RADIO_TRUCK; break; - // case MI_STRETCH: sample = SFX_POLICE_RADIO_LIMO; break; + case MI_STRETCH: sample = SFX_POLICE_RADIO_LIMO; break; case MI_MANANA: case MI_ESPERANT: sample = SFX_POLICE_RADIO_2_DOOR; break; #ifdef FIX_BUGS @@ -595,12 +631,12 @@ cAudioManager::SetupSuspectLastSeenReport() main_color = TOTAL_AUDIO_SAMPLES; color_post_modifier = TOTAL_AUDIO_SAMPLES; break; - // case MI_TRAIN: - // sample = SFX_POLICE_RADIO_SUBWAY_CAR; - // main_color = TOTAL_AUDIO_SAMPLES; - // color_post_modifier = TOTAL_AUDIO_SAMPLES; + case MI_TRAIN: + sample = SFX_POLICE_RADIO_SUBWAY_CAR; + main_color = TOTAL_AUDIO_SAMPLES; + color_post_modifier = TOTAL_AUDIO_SAMPLES; - // break; + break; default: debug("\n *** UNKNOWN CAR MODEL INDEX %d *** ", veh->GetModelIndex()); return; @@ -609,7 +645,14 @@ cAudioManager::SetupSuspectLastSeenReport() m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_SUSPECT); if (m_anRandomTable[3] % 2) m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_LAST_SEEN); - m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_IN_A); +#ifdef FIX_BUGS + if (main_color == SFX_POLICE_RADIO_ORANGE && color_pre_modifier == TOTAL_AUDIO_SAMPLES) +#else + if (main_color == SFX_POLICE_RADIO_ORANGE) +#endif + m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_IN_AN); + else + m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_IN_A); if (color_pre_modifier != TOTAL_AUDIO_SAMPLES) m_sPoliceRadioQueue.Add(color_pre_modifier); if (main_color != TOTAL_AUDIO_SAMPLES) @@ -688,27 +731,34 @@ cAudioManager::PlaySuspectLastSeen(float x, float y, float z) m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_SUSPECT); m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_LAST_SEEN); m_sPoliceRadioQueue.Add(SFX_IN); - rangeX = zone->maxx - zone->minx; - rangeY = zone->maxy - zone->miny; - halfX = 0.5f * rangeX + zone->minx; - halfY = 0.5f * rangeY + zone->miny; - quarterX = 0.25f * rangeX; - quarterY = 0.25f * rangeY; - - if (vec.y > halfY + quarterY) { + if (sample == SFX_POLICE_RADIO_SHORESIDE_VALE && + (strcmp(zone->name, SubZo2Label) == 0 || + strcmp(zone->name, SubZo3Label) == 0)) { m_sPoliceRadioQueue.Add(SFX_NORTH); - processed = true; - } else if (vec.y < halfY - quarterY) { - m_sPoliceRadioQueue.Add(SFX_SOUTH); - processed = true; - } - - if (vec.x > halfX + quarterX) m_sPoliceRadioQueue.Add(SFX_EAST); - else if (vec.x < halfX - quarterX) - m_sPoliceRadioQueue.Add(SFX_WEST); - else if (!processed) - m_sPoliceRadioQueue.Add(SFX_CENTRAL); + } else { + rangeX = zone->maxx - zone->minx; + rangeY = zone->maxy - zone->miny; + halfX = 0.5f * rangeX + zone->minx; + halfY = 0.5f * rangeY + zone->miny; + quarterX = 0.25f * rangeX; + quarterY = 0.25f * rangeY; + + if (vec.y > halfY + quarterY) { + m_sPoliceRadioQueue.Add(SFX_NORTH); + processed = true; + } else if (vec.y < halfY - quarterY) { + m_sPoliceRadioQueue.Add(SFX_SOUTH); + processed = true; + } + + if (vec.x > halfX + quarterX) + m_sPoliceRadioQueue.Add(SFX_EAST); + else if (vec.x < halfX - quarterX) + m_sPoliceRadioQueue.Add(SFX_WEST); + else if (!processed) + m_sPoliceRadioQueue.Add(SFX_CENTRAL); + } m_sPoliceRadioQueue.Add(sample); m_sPoliceRadioQueue.Add(m_anRandomTable[2] % 3 + SFX_POLICE_RADIO_MESSAGE_NOISE_1); m_sPoliceRadioQueue.Add(TOTAL_AUDIO_SAMPLES); diff --git a/src/control/Replay.h b/src/control/Replay.h index b369c13d..fd484017 100644 --- a/src/control/Replay.h +++ b/src/control/Replay.h @@ -2,6 +2,7 @@ #include "Pools.h" #include "World.h" +#include "ParticleType.h" #ifdef FIX_BUGS #ifndef DONT_FIX_REPLAY_BUGS @@ -287,6 +288,8 @@ public: static bool IsPlayingBack() { return Mode == MODE_PLAYBACK; } static bool IsPlayingBackFromFile() { return bPlayingBackFromFile; } + static void RecordParticle(tParticleType type, CVector const &vecPos, CVector const &vecDir, float fSize, RwRGBA const&color) + { } //TODO private: static void RecordThisFrame(void); static void StorePedUpdate(CPed *ped, int id); diff --git a/src/core/Stats.cpp b/src/core/Stats.cpp index 3f930d49..34fc41d1 100644 --- a/src/core/Stats.cpp +++ b/src/core/Stats.cpp @@ -4,6 +4,9 @@ #include "Text.h" #include "World.h" +//TODO +int32 CStats::SeagullsKilled; + int32 CStats::DaysPassed; int32 CStats::HeadsPopped; int32 CStats::CommercialPassed; diff --git a/src/core/Stats.h b/src/core/Stats.h index 37987ae5..485bdccf 100644 --- a/src/core/Stats.h +++ b/src/core/Stats.h @@ -9,6 +9,9 @@ public: TOTAL_FASTEST_TIMES = 16, TOTAL_HIGHEST_SCORES = 16 }; + //TODO + static int32 SeagullsKilled; + static int32 DaysPassed; static int32 HeadsPopped; static int32 CommercialPassed; diff --git a/src/core/config.h b/src/core/config.h index ea31a3c8..42a9c5ff 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -206,7 +206,7 @@ enum Config { #endif // Particle -//#define PC_PARTICLE +#define PC_PARTICLE //#define PS2_ALTERNATIVE_CARSPLASH // unused on PS2 // Pad diff --git a/src/render/MBlur.h b/src/render/MBlur.h index 3129c070..5eac8dc0 100644 --- a/src/render/MBlur.h +++ b/src/render/MBlur.h @@ -1,5 +1,15 @@ #pragma once +enum FxType +{ + FXTYPE_0 = 0, + FXTYPE_1, + FXTYPE_2, + FXTYPE_3, + FXTYPE_4, + FXTYPE_5, +}; + class CMBlur { public: @@ -15,4 +25,8 @@ public: static void MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blur, int32 type); static void OverlayRender(RwCamera *cam, RwRaster *raster, RwRGBA color, int32 type); static void ClearDrunkBlur(); + + //TODO + static void AddRenderFx(RwCamera *,RwRect *,float,FxType) + {} }; diff --git a/src/render/Particle.cpp b/src/render/Particle.cpp index 5f37bdc6..d5b05947 100644 --- a/src/render/Particle.cpp +++ b/src/render/Particle.cpp @@ -8,20 +8,23 @@ #include "Collision.h" #include "World.h" #include "Shadows.h" +#include "Replay.h" +#include "Stats.h" +#include "Weather.h" +#include "MBlur.h" +#include "main.h" #include "AudioScriptObject.h" #include "ParticleObject.h" #include "Particle.h" #include "soundlist.h" -#define MAX_PARTICLES_ON_SCREEN (1000) +#define MAX_PARTICLES_ON_SCREEN (750) //(5) #define MAX_SMOKE_FILES ARRAY_SIZE(SmokeFiles) -//(5) -#define MAX_SMOKE2_FILES ARRAY_SIZE(Smoke2Files) //(5) #define MAX_RUBBER_FILES ARRAY_SIZE(RubberFiles) //(5) @@ -36,16 +39,16 @@ #define MAX_RAINSPLASHUP_FILES ARRAY_SIZE(RainSplashupFiles) //(4) #define MAX_BIRDFRONT_FILES ARRAY_SIZE(BirdfrontFiles) +//(8) +#define MAX_BOAT_FILES ARRAY_SIZE(BoatFiles) //(4) #define MAX_CARDEBRIS_FILES ARRAY_SIZE(CardebrisFiles) //(4) #define MAX_CARSPLASH_FILES ARRAY_SIZE(CarsplashFiles) -//(4) -#define MAX_RAINDROP_FILES ARRAY_SIZE(RaindropFiles) - - +#define MAX_RAINDRIP_FILES (2) + const char SmokeFiles[][6+1] = { "smoke1", @@ -56,15 +59,6 @@ const char SmokeFiles[][6+1] = }; -const char Smoke2Files[][9+1] = -{ - "smokeII_1", - "smokeII_2", - "smokeII_3", - "smokeII_4", - "smokeII_5" -}; - const char RubberFiles[][7+1] = { "rubber1", @@ -108,14 +102,6 @@ const char GunFlashFiles[][9+1] = "gunflash4" }; -const char RaindropFiles[][9+1] = -{ - "raindrop1", - "raindrop2", - "raindrop3", - "raindrop4" -}; - const char RainSplashupFiles[][10+1] = { "splash_up1", @@ -130,6 +116,18 @@ const char BirdfrontFiles[][8+1] = "birdf_04" }; +const char BoatFiles[][8+1] = +{ + "boats_01", + "boats_02", + "boats_03", + "boats_04", + "boats_05", + "boats_06", + "boats_07", + "boats_08" +}; + const char CardebrisFiles[][12+1] = { "cardebris_01", @@ -149,7 +147,7 @@ const char CarsplashFiles[][12+1] = CParticle gParticleArray[MAX_PARTICLES_ON_SCREEN]; RwTexture *gpSmokeTex[MAX_SMOKE_FILES]; -RwTexture *gpSmoke2Tex[MAX_SMOKE2_FILES]; +RwTexture *gpSmoke2Tex; RwTexture *gpRubberTex[MAX_RUBBER_FILES]; RwTexture *gpRainSplashTex[MAX_RAINSPLASH_FILES]; RwTexture *gpWatersprayTex[MAX_WATERSPRAY_FILES]; @@ -157,26 +155,27 @@ RwTexture *gpExplosionMediumTex[MAX_EXPLOSIONMEDIUM_FILES]; RwTexture *gpGunFlashTex[MAX_GUNFLASH_FILES]; RwTexture *gpRainSplashupTex[MAX_RAINSPLASHUP_FILES]; RwTexture *gpBirdfrontTex[MAX_BIRDFRONT_FILES]; +RwTexture *gpBoatTex[MAX_BOAT_FILES]; RwTexture *gpCarDebrisTex[MAX_CARDEBRIS_FILES]; RwTexture *gpCarSplashTex[MAX_CARSPLASH_FILES]; +RwTexture *gpBoatWakeTex; RwTexture *gpFlame1Tex; RwTexture *gpFlame5Tex; RwTexture *gpRainDropSmallTex; RwTexture *gpBloodTex; RwTexture *gpLeafTex; -RwTexture *gpCloudTex1; // unused +RwTexture *gpCloudTex1; RwTexture *gpCloudTex4; RwTexture *gpBloodSmallTex; RwTexture *gpGungeTex; RwTexture *gpCollisionSmokeTex; RwTexture *gpBulletHitTex; RwTexture *gpGunShellTex; -RwTexture *gpWakeOldTex; RwTexture *gpPointlightTex; RwRaster *gpSmokeRaster[MAX_SMOKE_FILES]; -RwRaster *gpSmoke2Raster[MAX_SMOKE2_FILES]; +RwRaster *gpSmoke2Raster; RwRaster *gpRubberRaster[MAX_RUBBER_FILES]; RwRaster *gpRainSplashRaster[MAX_RAINSPLASH_FILES]; RwRaster *gpWatersprayRaster[MAX_WATERSPRAY_FILES]; @@ -184,45 +183,62 @@ RwRaster *gpExplosionMediumRaster[MAX_EXPLOSIONMEDIUM_FILES]; RwRaster *gpGunFlashRaster[MAX_GUNFLASH_FILES]; RwRaster *gpRainSplashupRaster[MAX_RAINSPLASHUP_FILES]; RwRaster *gpBirdfrontRaster[MAX_BIRDFRONT_FILES]; +RwRaster *gpBoatRaster[MAX_BOAT_FILES]; RwRaster *gpCarDebrisRaster[MAX_CARDEBRIS_FILES]; RwRaster *gpCarSplashRaster[MAX_CARSPLASH_FILES]; +RwRaster *gpBoatWakeRaster; RwRaster *gpFlame1Raster; RwRaster *gpFlame5Raster; RwRaster *gpRainDropSmallRaster; RwRaster *gpBloodRaster; RwRaster *gpLeafRaster; -RwRaster *gpCloudRaster1; // unused +RwRaster *gpCloudRaster1; RwRaster *gpCloudRaster4; RwRaster *gpBloodSmallRaster; RwRaster *gpGungeRaster; RwRaster *gpCollisionSmokeRaster; RwRaster *gpBulletHitRaster; RwRaster *gpGunShellRaster; -RwRaster *gpWakeOldRaster; - - -RwRaster *gpPointlightRaster; // CPointLights::RenderFogEffect - -RwTexture *gpRainDropTex[MAX_RAINDROP_FILES]; // CWeather::RenderRainStreaks - - -RwRaster *gpRainDropRaster[MAX_RAINDROP_FILES]; +RwRaster *gpPointlightRaster; + +RwTexture *gpRainDropTex; +RwRaster *gpRainDropRaster; + +RwTexture *gpLetterTex; +RwRaster *gpLetterRaster; + +RwTexture *gpSparkTex; +RwTexture *gpNewspaperTex; +RwTexture *gpGunSmokeTex; +RwTexture *gpDotTex; +RwTexture *gpHeathazeTex; +RwTexture *gpBeastieTex; +RwTexture *gpRaindripTex1[MAX_RAINDRIP_FILES]; +RwTexture *gpRaindripTex2[MAX_RAINDRIP_FILES]; + +RwRaster *gpSparkRaster; +RwRaster *gpNewspaperRaster; +RwRaster *gpGunSmokeRaster; +RwRaster *gpDotRaster; +RwRaster *gpHeathazeRaster; +RwRaster *gpBeastieRaster; +RwRaster *gpRaindripRaster1[MAX_RAINDRIP_FILES]; +RwRaster *gpRaindripRaster2[MAX_RAINDRIP_FILES]; float CParticle::ms_afRandTable[CParticle::RAND_TABLE_SIZE]; - - CParticle *CParticle::m_pUnusedListHead; - - float CParticle::m_SinTable[CParticle::SIN_COS_TABLE_SIZE]; float CParticle::m_CosTable[CParticle::SIN_COS_TABLE_SIZE]; int32 Randomizer; - int32 nParticleCreationInterval = 1; +float PARTICLE_WIND_TEST_SCALE = 0.002f; float fParticleScaleLimit = 0.5f; +bool clearWaterDrop; +int32 numWaterDropOnScreen; + #ifdef DEBUGMENU SETTWEAKPATH("Particle"); TWEAKINT32(nParticleCreationInterval, 0, 5, 1); @@ -230,6 +246,8 @@ TWEAKFLOAT(fParticleScaleLimit, 0.0f, 1.0f, 0.1f); TWEAKFUNC(CParticle::ReloadConfig); #endif + + void CParticle::ReloadConfig() { debug("Initialising CParticleMgr..."); @@ -302,8 +320,8 @@ void CParticle::Initialise() { float angle = DEGTORAD(float(i) * float(360.0f / SIN_COS_TABLE_SIZE)); - m_SinTable[i] = Sin(angle); - m_CosTable[i] = Cos(angle); + m_SinTable[i] = ::Sin(angle); + m_CosTable[i] = ::Cos(angle); } int32 slot = CTxdStore::FindTxdSlot("particle"); @@ -317,11 +335,8 @@ void CParticle::Initialise() gpSmokeRaster[i] = RwTextureGetRaster(gpSmokeTex[i]); } - for ( int32 i = 0; i < MAX_SMOKE2_FILES; i++ ) - { - gpSmoke2Tex[i] = RwTextureRead(Smoke2Files[i], nil); - gpSmoke2Raster[i] = RwTextureGetRaster(gpSmoke2Tex[i]); - } + gpSmoke2Tex = RwTextureRead("smokeII_3", nil); + gpSmoke2Raster = RwTextureGetRaster(gpSmoke2Tex); for ( int32 i = 0; i < MAX_RUBBER_FILES; i++ ) { @@ -349,15 +364,13 @@ void CParticle::Initialise() for ( int32 i = 0; i < MAX_GUNFLASH_FILES; i++ ) { - gpGunFlashTex[i] = RwTextureRead(GunFlashFiles[i], NULL); + gpGunFlashTex[i] = RwTextureRead(GunFlashFiles[i], nil); gpGunFlashRaster[i] = RwTextureGetRaster(gpGunFlashTex[i]); } - for ( int32 i = 0; i < MAX_RAINDROP_FILES; i++ ) - { - gpRainDropTex[i] = RwTextureRead(RaindropFiles[i], nil); - gpRainDropRaster[i] = RwTextureGetRaster(gpRainDropTex[i]); - } + gpRainDropTex = RwTextureRead("raindrop4", nil); + gpRainDropRaster = RwTextureGetRaster(gpRainDropTex); + for ( int32 i = 0; i < MAX_RAINSPLASHUP_FILES; i++ ) { @@ -367,10 +380,16 @@ void CParticle::Initialise() for ( int32 i = 0; i < MAX_BIRDFRONT_FILES; i++ ) { - gpBirdfrontTex[i] = RwTextureRead(BirdfrontFiles[i], NULL); + gpBirdfrontTex[i] = RwTextureRead(BirdfrontFiles[i], nil); gpBirdfrontRaster[i] = RwTextureGetRaster(gpBirdfrontTex[i]); } + for ( int32 i = 0; i < MAX_BOAT_FILES; i++ ) + { + gpBoatTex[i] = RwTextureRead(BoatFiles[i], nil); + gpBoatRaster[i] = RwTextureGetRaster(gpBoatTex[i]); + } + for ( int32 i = 0; i < MAX_CARDEBRIS_FILES; i++ ) { gpCarDebrisTex[i] = RwTextureRead(CardebrisFiles[i], nil); @@ -383,7 +402,10 @@ void CParticle::Initialise() gpCarSplashRaster[i] = RwTextureGetRaster(gpCarSplashTex[i]); } - gpFlame1Tex = RwTextureRead("flame1", NULL); + gpBoatWakeTex = RwTextureRead("boatwake2", nil); + gpBoatWakeRaster = RwTextureGetRaster(gpBoatWakeTex); + + gpFlame1Tex = RwTextureRead("flame1", nil); gpFlame1Raster = RwTextureGetRaster(gpFlame1Tex); gpFlame5Tex = RwTextureRead("flame5", nil); @@ -402,6 +424,9 @@ void CParticle::Initialise() gpLeafTex = RwTextureRead("gameleaf01_64", nil); gpLeafRaster = RwTextureGetRaster(gpLeafTex); + + gpLetterTex = RwTextureRead("letter", nil); + gpLetterRaster = RwTextureGetRaster(gpLetterTex); gpCloudTex1 = RwTextureRead("cloud3", nil); gpCloudRaster1 = RwTextureGetRaster(gpCloudTex1); @@ -424,12 +449,39 @@ void CParticle::Initialise() gpGunShellTex = RwTextureRead("gunshell", nil); gpGunShellRaster = RwTextureGetRaster(gpGunShellTex); - gpWakeOldTex = RwTextureRead("wake_old", nil); - gpWakeOldRaster = RwTextureGetRaster(gpWakeOldTex); - gpPointlightTex = RwTextureRead("pointlight", nil); gpPointlightRaster = RwTextureGetRaster(gpPointlightTex); + gpSparkTex = RwTextureRead("spark", nil); + gpSparkRaster = RwTextureGetRaster(gpSparkTex); + + gpNewspaperTex = RwTextureRead("newspaper02_64", nil); + gpNewspaperRaster = RwTextureGetRaster(gpNewspaperTex); + + gpGunSmokeTex = RwTextureRead("gunsmoke3", nil); + gpGunSmokeRaster = RwTextureGetRaster(gpGunSmokeTex); + + gpDotTex = RwTextureRead("dot", nil); + gpDotRaster = RwTextureGetRaster(gpDotTex); + + gpHeathazeTex = RwTextureRead("heathaze", nil); + gpHeathazeRaster = RwTextureGetRaster(gpHeathazeTex); + + gpBeastieTex = RwTextureRead("beastie", nil); + gpBeastieRaster = RwTextureGetRaster(gpBeastieTex); + + gpRaindripTex1[0] = RwTextureRead("raindrip64", nil); + gpRaindripRaster1[0] = RwTextureGetRaster(gpRaindripTex1[0]); + + gpRaindripTex1[1] = RwTextureRead("raindripb64", nil); + gpRaindripRaster1[1] = RwTextureGetRaster(gpRaindripTex1[1]); + + gpRaindripTex2[0] = RwTextureRead("raindrip64_d", nil); + gpRaindripRaster2[0] = RwTextureGetRaster(gpRaindripTex2[0]); + + gpRaindripTex2[1] = RwTextureRead("raindripb64_d", nil); + gpRaindripRaster2[1] = RwTextureGetRaster(gpRaindripTex2[1]); + CTxdStore::PopCurrentTxd(); for ( int32 i = 0; i < MAX_PARTICLES; i++ ) @@ -438,145 +490,180 @@ void CParticle::Initialise() switch ( i ) { + case PARTICLE_SPARK: + case PARTICLE_SPARK_SMALL: + case PARTICLE_RAINDROP_SMALL: + case PARTICLE_HELI_ATTACK: + entry->m_ppRaster = &gpRainDropSmallRaster; + break; + + case PARTICLE_WATER_SPARK: + entry->m_ppRaster = &gpSparkRaster; + break; + + case PARTICLE_WHEEL_DIRT: + case PARTICLE_SAND: + case PARTICLE_STEAM2: + case PARTICLE_STEAM_NY: + case PARTICLE_STEAM_NY_SLOWMOTION: + case PARTICLE_GROUND_STEAM: + case PARTICLE_ENGINE_STEAM: + case PARTICLE_PEDFOOT_DUST: + case PARTICLE_CAR_DUST: + case PARTICLE_EXHAUST_FUMES: + entry->m_ppRaster = &gpSmoke2Raster; + break; + + case PARTICLE_WHEEL_WATER: + case PARTICLE_WATER: + case PARTICLE_SMOKE: + case PARTICLE_SMOKE_SLOWMOTION: + case PARTICLE_DRY_ICE: + case PARTICLE_GARAGEPAINT_SPRAY: + case PARTICLE_STEAM: + case PARTICLE_WATER_CANNON: + case PARTICLE_EXTINGUISH_STEAM: + case PARTICLE_HELI_DUST: + case PARTICLE_PAINT_SMOKE: + case PARTICLE_BULLETHIT_SMOKE: + entry->m_ppRaster = gpSmokeRaster; + break; + case PARTICLE_BLOOD: entry->m_ppRaster = &gpBloodRaster; break; - + case PARTICLE_BLOOD_SMALL: case PARTICLE_BLOOD_SPURT: entry->m_ppRaster = &gpBloodSmallRaster; break; - + + case PARTICLE_DEBRIS: + case PARTICLE_TREE_LEAVES: + entry->m_ppRaster = &gpLeafRaster; + break; + case PARTICLE_DEBRIS2: entry->m_ppRaster = &gpGungeRaster; break; - + + case PARTICLE_FLYERS: + entry->m_ppRaster = &gpNewspaperRaster; + break; + + case PARTICLE_FLAME: + case PARTICLE_CARFLAME: + entry->m_ppRaster = &gpFlame1Raster; + break; + + case PARTICLE_FIREBALL: + entry->m_ppRaster = &gpFlame5Raster; + break; + case PARTICLE_GUNFLASH: case PARTICLE_GUNFLASH_NOANIM: entry->m_ppRaster = gpGunFlashRaster; break; - + + case PARTICLE_GUNSMOKE: - case PARTICLE_SPLASH: + case PARTICLE_WATERDROP: + case PARTICLE_BLOODDROP: + case PARTICLE_HEATHAZE: + case PARTICLE_HEATHAZE_IN_DIST: entry->m_ppRaster = nil; break; - - case PARTICLE_FLAME: - case PARTICLE_CARFLAME: - entry->m_ppRaster = &gpFlame1Raster; + + case PARTICLE_GUNSMOKE2: + case PARTICLE_BOAT_THRUSTJET: + case PARTICLE_RUBBER_SMOKE: + entry->m_ppRaster = gpRubberRaster; break; - - case PARTICLE_FIREBALL: - entry->m_ppRaster = &gpFlame5Raster; + + case PARTICLE_CIGARETTE_SMOKE: + entry->m_ppRaster = &gpGunSmokeRaster; break; - + + case PARTICLE_TEARGAS: + entry->m_ppRaster = &gpHeathazeRaster; + break; + + case PARTICLE_SHARD: + case PARTICLE_RAINDROP: + case PARTICLE_RAINDROP_2D: + entry->m_ppRaster = &gpRainDropRaster; + break; + + case PARTICLE_SPLASH: + case PARTICLE_PED_SPLASH: + case PARTICLE_CAR_SPLASH: + case PARTICLE_WATER_HYDRANT: + entry->m_ppRaster = gpCarSplashRaster; + break; + case PARTICLE_RAIN_SPLASH: case PARTICLE_RAIN_SPLASH_BIGGROW: entry->m_ppRaster = gpRainSplashRaster; break; - + case PARTICLE_RAIN_SPLASHUP: entry->m_ppRaster = gpRainSplashupRaster; break; - + case PARTICLE_WATERSPRAY: entry->m_ppRaster = gpWatersprayRaster; break; - - case PARTICLE_SHARD: - case PARTICLE_RAINDROP: - case PARTICLE_RAINDROP_2D: - entry->m_ppRaster = gpRainDropRaster; - break; - + case PARTICLE_EXPLOSION_MEDIUM: case PARTICLE_EXPLOSION_LARGE: case PARTICLE_EXPLOSION_MFAST: case PARTICLE_EXPLOSION_LFAST: entry->m_ppRaster = gpExplosionMediumRaster; break; - - case PARTICLE_BOAT_WAKE: - entry->m_ppRaster = &gpWakeOldRaster; - break; - - case PARTICLE_CAR_SPLASH: - case PARTICLE_WATER_HYDRANT: - case PARTICLE_PED_SPLASH: - entry->m_ppRaster = gpCarSplashRaster; - break; - - case PARTICLE_SPARK: - case PARTICLE_SPARK_SMALL: - case PARTICLE_RAINDROP_SMALL: - case PARTICLE_HELI_ATTACK: - entry->m_ppRaster = &gpRainDropSmallRaster; - break; - - case PARTICLE_DEBRIS: - case PARTICLE_TREE_LEAVES: - entry->m_ppRaster = &gpLeafRaster; - break; - - case PARTICLE_CAR_DEBRIS: - case PARTICLE_HELI_DEBRIS: - entry->m_ppRaster = gpCarDebrisRaster; - break; - - case PARTICLE_WHEEL_DIRT: - case PARTICLE_STEAM2: - case PARTICLE_STEAM_NY: - case PARTICLE_STEAM_NY_SLOWMOTION: - case PARTICLE_ENGINE_STEAM: - case PARTICLE_BOAT_THRUSTJET: - case PARTICLE_PEDFOOT_DUST: - case PARTICLE_EXHAUST_FUMES: - entry->m_ppRaster = gpSmoke2Raster; + + case PARTICLE_BOAT_SPLASH: + entry->m_ppRaster = &gpBoatWakeRaster; break; - - case PARTICLE_GUNSMOKE2: - case PARTICLE_RUBBER_SMOKE: - entry->m_ppRaster = gpRubberRaster; + + case PARTICLE_ENGINE_SMOKE: + case PARTICLE_ENGINE_SMOKE2: + case PARTICLE_CARFLAME_SMOKE: + case PARTICLE_FIREBALL_SMOKE: + case PARTICLE_ROCKET_SMOKE: + case PARTICLE_TEST: + entry->m_ppRaster = &gpCloudRaster4; break; - + case PARTICLE_CARCOLLISION_DUST: case PARTICLE_BURNINGRUBBER_SMOKE: entry->m_ppRaster = &gpCollisionSmokeRaster; break; - - case PARTICLE_WHEEL_WATER: - case PARTICLE_WATER: - case PARTICLE_SMOKE: - case PARTICLE_SMOKE_SLOWMOTION: - case PARTICLE_GARAGEPAINT_SPRAY: - case PARTICLE_STEAM: - case PARTICLE_BOAT_SPLASH: - case PARTICLE_WATER_CANNON: - case PARTICLE_EXTINGUISH_STEAM: - case PARTICLE_HELI_DUST: - case PARTICLE_PAINT_SMOKE: - case PARTICLE_BULLETHIT_SMOKE: - entry->m_ppRaster = gpSmokeRaster; + + case PARTICLE_CAR_DEBRIS: + case PARTICLE_HELI_DEBRIS: + case PARTICLE_BIRD_DEBRIS: + entry->m_ppRaster = gpCarDebrisRaster; break; - + case PARTICLE_GUNSHELL_FIRST: case PARTICLE_GUNSHELL: case PARTICLE_GUNSHELL_BUMP1: case PARTICLE_GUNSHELL_BUMP2: entry->m_ppRaster = &gpGunShellRaster; break; - - case PARTICLE_ENGINE_SMOKE: - case PARTICLE_ENGINE_SMOKE2: - case PARTICLE_CARFLAME_SMOKE: - case PARTICLE_FIREBALL_SMOKE: - case PARTICLE_TEST: - entry->m_ppRaster = &gpCloudRaster4; - break; - + + case PARTICLE_BIRD_FRONT: entry->m_ppRaster = gpBirdfrontRaster; break; + + case PARTICLE_SHIP_SIDE: + entry->m_ppRaster = gpBoatRaster; + break; + + case PARTICLE_BEASTIE: + entry->m_ppRaster = &gpBeastieRaster; + break; } } @@ -590,168 +677,145 @@ void CParticle::Shutdown() for ( int32 i = 0; i < MAX_SMOKE_FILES; i++ ) { RwTextureDestroy(gpSmokeTex[i]); -#ifdef GTA3_1_1_PATCH gpSmokeTex[i] = nil; -#endif } - for ( int32 i = 0; i < MAX_SMOKE2_FILES; i++ ) - { - RwTextureDestroy(gpSmoke2Tex[i]); -#ifdef GTA3_1_1_PATCH - gpSmoke2Tex[i] = nil; -#endif - } + RwTextureDestroy(gpSmoke2Tex); + gpSmoke2Tex = nil; for ( int32 i = 0; i < MAX_RUBBER_FILES; i++ ) { RwTextureDestroy(gpRubberTex[i]); -#ifdef GTA3_1_1_PATCH gpRubberTex[i] = nil; -#endif } for ( int32 i = 0; i < MAX_RAINSPLASH_FILES; i++ ) { RwTextureDestroy(gpRainSplashTex[i]); -#ifdef GTA3_1_1_PATCH gpRainSplashTex[i] = nil; -#endif } for ( int32 i = 0; i < MAX_WATERSPRAY_FILES; i++ ) { RwTextureDestroy(gpWatersprayTex[i]); -#ifdef GTA3_1_1_PATCH gpWatersprayTex[i] = nil; -#endif } for ( int32 i = 0; i < MAX_EXPLOSIONMEDIUM_FILES; i++ ) { RwTextureDestroy(gpExplosionMediumTex[i]); -#ifdef GTA3_1_1_PATCH gpExplosionMediumTex[i] = nil; -#endif } for ( int32 i = 0; i < MAX_GUNFLASH_FILES; i++ ) { RwTextureDestroy(gpGunFlashTex[i]); -#ifdef GTA3_1_1_PATCH gpGunFlashTex[i] = nil; -#endif } - for ( int32 i = 0; i < MAX_RAINDROP_FILES; i++ ) - { - RwTextureDestroy(gpRainDropTex[i]); -#ifdef GTA3_1_1_PATCH - gpRainDropTex[i] = nil; -#endif - } + RwTextureDestroy(gpRainDropTex); + gpRainDropTex = nil; for ( int32 i = 0; i < MAX_RAINSPLASHUP_FILES; i++ ) { RwTextureDestroy(gpRainSplashupTex[i]); -#ifdef GTA3_1_1_PATCH gpRainSplashupTex[i] = nil; -#endif } for ( int32 i = 0; i < MAX_BIRDFRONT_FILES; i++ ) { RwTextureDestroy(gpBirdfrontTex[i]); -#ifdef GTA3_1_1_PATCH gpBirdfrontTex[i] = nil; -#endif + } + + for ( int32 i = 0; i < MAX_BOAT_FILES; i++ ) + { + RwTextureDestroy(gpBoatTex[i]); + gpBoatTex[i] = nil; } for ( int32 i = 0; i < MAX_CARDEBRIS_FILES; i++ ) { RwTextureDestroy(gpCarDebrisTex[i]); -#ifdef GTA3_1_1_PATCH gpCarDebrisTex[i] = nil; -#endif } for ( int32 i = 0; i < MAX_CARSPLASH_FILES; i++ ) { RwTextureDestroy(gpCarSplashTex[i]); -#ifdef GTA3_1_1_PATCH gpCarSplashTex[i] = nil; -#endif } + for ( int32 i = 0; i < MAX_RAINDRIP_FILES; i++ ) + { + RwTextureDestroy(gpRaindripTex1[i]); + gpRaindripTex1[i] = nil; + + RwTextureDestroy(gpRaindripTex2[i]); + gpRaindripTex2[i] = nil; + } + + RwTextureDestroy(gpBoatWakeTex); + gpBoatWakeTex = nil; + RwTextureDestroy(gpFlame1Tex); -#ifdef GTA3_1_1_PATCH gpFlame1Tex = nil; -#endif RwTextureDestroy(gpFlame5Tex); -#ifdef GTA3_1_1_PATCH gpFlame5Tex = nil; -#endif RwTextureDestroy(gpRainDropSmallTex); -#ifdef GTA3_1_1_PATCH gpRainDropSmallTex = nil; -#endif RwTextureDestroy(gpBloodTex); -#ifdef GTA3_1_1_PATCH gpBloodTex = nil; -#endif RwTextureDestroy(gpLeafTex); -#ifdef GTA3_1_1_PATCH gpLeafTex = nil; -#endif + + RwTextureDestroy(gpLetterTex); + gpLetterTex = nil; RwTextureDestroy(gpCloudTex1); -#ifdef GTA3_1_1_PATCH gpCloudTex1 = nil; -#endif RwTextureDestroy(gpCloudTex4); -#ifdef GTA3_1_1_PATCH gpCloudTex4 = nil; -#endif RwTextureDestroy(gpBloodSmallTex); -#ifdef GTA3_1_1_PATCH gpBloodSmallTex = nil; -#endif RwTextureDestroy(gpGungeTex); -#ifdef GTA3_1_1_PATCH gpGungeTex = nil; -#endif RwTextureDestroy(gpCollisionSmokeTex); -#ifdef GTA3_1_1_PATCH gpCollisionSmokeTex = nil; -#endif RwTextureDestroy(gpBulletHitTex); -#ifdef GTA3_1_1_PATCH gpBulletHitTex = nil; -#endif RwTextureDestroy(gpGunShellTex); -#ifdef GTA3_1_1_PATCH gpGunShellTex = nil; -#endif - - RwTextureDestroy(gpWakeOldTex); -#ifdef GTA3_1_1_PATCH - gpWakeOldTex = nil; -#endif RwTextureDestroy(gpPointlightTex); -#ifdef GTA3_1_1_PATCH gpPointlightTex = nil; -#endif + + RwTextureDestroy(gpSparkTex); + gpSparkTex = nil; + + RwTextureDestroy(gpNewspaperTex); + gpNewspaperTex = nil; + + RwTextureDestroy(gpGunSmokeTex); + gpGunSmokeTex = nil; + + RwTextureDestroy(gpDotTex); + gpDotTex = nil; + RwTextureDestroy(gpHeathazeTex); + gpHeathazeTex = nil; + + RwTextureDestroy(gpBeastieTex); + gpBeastieTex = nil; int32 slot; @@ -761,6 +825,40 @@ void CParticle::Shutdown() debug("CParticle shut down"); } + +void CParticle::AddParticlesAlongLine(tParticleType type, CVector const &vecStart, CVector const &vecEnd, CVector const &vecDir, float fPower, CEntity *pEntity, float fSize, int32 nRotationSpeed, int32 nRotation, int32 nCurFrame, int32 nLifeSpan) +{ + CVector vecDist = vecEnd - vecStart; + float fDist = vecDist.Magnitude(); + float fSteps = Max(fDist / fPower, 1.0f); + int32 nSteps = (int32)fSteps; + + CVector vecStep = vecDist * (1.0f / (float)nSteps); + + for ( int32 i = 0; i < nSteps; i++ ) + { + CVector vecPos = float(i) * vecStep + vecStart; + AddParticle(type, vecPos, vecDir, pEntity, fSize, nRotationSpeed, nRotation, nCurFrame, nLifeSpan); + } +} + +void CParticle::AddParticlesAlongLine(tParticleType type, CVector const &vecStart, CVector const &vecEnd, CVector const &vecDir, float fPower, CEntity *pEntity, float fSize, RwRGBA const &color, int32 nRotationSpeed, int32 nRotation, int32 nCurFrame, int32 nLifeSpan) +{ + CVector vecDist = vecEnd - vecStart; + float fDist = vecDist.Magnitude(); + float fSteps = Max(fDist / fPower, 1.0f); + int32 nSteps = (int32)fSteps; + + CVector vecStep = vecDist * (1.0f / (float)nSteps); + + for ( int32 i = 0; i < nSteps; i++ ) + { + CVector vecPos = float(i) * vecStep + vecStart; + + AddParticle(type, vecPos, vecDir, pEntity, fSize, color, nRotationSpeed, nRotation, nCurFrame, nLifeSpan); + } +} + CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVector const &vecDir, CEntity *pEntity, float fSize, int32 nRotationSpeed, int32 nRotation, int32 nCurFrame, int32 nLifeSpan) { CRGBA color(0, 0, 0, 0); @@ -770,9 +868,8 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVector const &vecDir, CEntity *pEntity, float fSize, RwRGBA const &color, int32 nRotationSpeed, int32 nRotation, int32 nCurFrame, int32 nLifeSpan) { if ( CTimer::GetIsPaused() ) - return NULL; + return nil; -#ifdef PC_PARTICLE if ( ( type == PARTICLE_ENGINE_SMOKE || type == PARTICLE_ENGINE_SMOKE2 || type == PARTICLE_ENGINE_STEAM @@ -785,8 +882,10 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe { return nil; } -#endif + if ( !CReplay::IsPlayingBack() ) + CReplay::RecordParticle(type, vecPos, vecDir, fSize, color); + CParticle *pParticle = m_pUnusedListHead; if ( pParticle == nil ) @@ -807,7 +906,19 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe pParticle->m_nTimeWhenWillBeDestroyed = CTimer::GetTimeInMilliseconds() + psystem->m_nLifeSpan; pParticle->m_nColorIntensity = psystem->m_nFadeToBlackInitialIntensity; + + pParticle->m_nFadeToBlackTimer = psystem->m_nFadeToBlackAmount; + + if ( psystem->m_nFadeToBlackTime ) + pParticle->m_nFadeToBlackTimer /= psystem->m_nFadeToBlackTime; + pParticle->m_nAlpha = psystem->m_nFadeAlphaInitialIntensity; + + pParticle->m_nFadeAlphaTimer = psystem->m_nFadeAlphaAmount; + + if ( psystem->m_nFadeAlphaTime ) + pParticle->m_nFadeAlphaTimer /= psystem->m_nFadeAlphaTime; + pParticle->m_nCurrentZRotation = psystem->m_nZRotationInitialAngle; pParticle->m_fCurrentZRadius = psystem->m_fInitialZRadius; @@ -816,14 +927,29 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe else pParticle->m_nCurrentFrame = psystem->m_nStartAnimationFrame; - pParticle->m_nFadeToBlackTimer = 0; - pParticle->m_nFadeAlphaTimer = 0; + pParticle->m_nZRotationTimer = 0; pParticle->m_nZRadiusTimer = 0; pParticle->m_nAnimationSpeedTimer = 0; pParticle->m_fZGround = 0.0f; - pParticle->m_vecPosition = vecPos; + + if ( type != PARTICLE_HEATHAZE ) + pParticle->m_vecPosition = vecPos; + else + { + CVector screen; + float w, h; + + if ( !CSprite::CalcScreenCoors(vecPos, screen, &w, &h, true) ) + return nil; + + pParticle->m_vecPosition = screen; + psystem->m_vecTextureStretch.x = w; + psystem->m_vecTextureStretch.y = h; + } + pParticle->m_vecVelocity = vecDir; + pParticle->m_vecParticleMovementOffset = CVector(0.0f, 0.0f, 0.0f); pParticle->m_nTimeWhenColorWillBeChanged = 0; @@ -831,7 +957,7 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe RwRGBAAssign(&pParticle->m_Color, &color); else { - RwRGBAAssign(&pParticle->m_Color, &psystem->m_RenderColouring); + RwRGBAAssign(&pParticle->m_Color, psystem->m_RenderColouring); if ( psystem->m_ColorFadeTime != 0 ) pParticle->m_nTimeWhenColorWillBeChanged = CTimer::GetTimeInMilliseconds() + psystem->m_ColorFadeTime; @@ -839,7 +965,7 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe if ( psystem->m_InitialColorVariation != 0 ) { int32 ColorVariation = CGeneral::GetRandomNumberInRange(-psystem->m_InitialColorVariation, psystem->m_InitialColorVariation); - //Float ColorVariation = CGeneral::GetRandomNumberInRange((float)-psystem->m_InitialColorVariation, (float)psystem->m_InitialColorVariation); + //float ColorVariation = CGeneral::GetRandomNumberInRange((float)-psystem->m_InitialColorVariation, (float)psystem->m_InitialColorVariation); pParticle->m_Color.red = clamp(pParticle->m_Color.red + PERCENT(pParticle->m_Color.red, ColorVariation), @@ -856,13 +982,7 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe } pParticle->m_nRotation = nRotation; - -// PC only - if ( pParticle->m_nRotation >= 360 ) - pParticle->m_nRotation -= 360; - else if ( pParticle->m_nRotation < 0 ) - pParticle->m_nRotation += 360; - + if ( nRotationSpeed != 0 ) pParticle->m_nRotationStep = nRotationSpeed; else @@ -871,8 +991,6 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe if ( CGeneral::GetRandomNumber() & 1 ) pParticle->m_nRotationStep = -pParticle->m_nRotationStep; - pParticle->m_vecScreenPosition.x = 0.0f; // bug ? - if ( psystem->m_fPositionRandomError != 0.0f ) { pParticle->m_vecPosition.x += psystem->m_fPositionRandomError * ms_afRandTable[CGeneral::GetRandomNumber() % RAND_TABLE_SIZE]; @@ -891,7 +1009,7 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe pParticle->m_vecVelocity.z += psystem->m_fVelocityRandomError * ms_afRandTable[CGeneral::GetRandomNumber() % RAND_TABLE_SIZE]; } - if ( psystem->m_fExpansionRateError != 0.0f ) + if ( psystem->m_fExpansionRateError != 0.0f && !(psystem->Flags & SCREEN_TRAIL) ) pParticle->m_fExpansionRate += psystem->m_fExpansionRateError * ms_afRandTable[CGeneral::GetRandomNumber() % RAND_TABLE_SIZE] + psystem->m_fExpansionRateError; if ( psystem->m_nRotationRateError != 0 ) @@ -1026,11 +1144,201 @@ void CParticle::Update() if ( particle == nil ) continue; - for ( ; particle != nil; _Next(particle, prevParticle, psystem, bRemoveParticle) ) - { - bRemoveParticle = false; + for ( ; particle != nil; _Next(particle, prevParticle, psystem, bRemoveParticle) ) + { + CVector vecWind(0.0f, 0.0f, 0.0f); + + bRemoveParticle = false; + + CVector vecMoveStep = particle->m_vecVelocity * CTimer::GetTimeStep(); + CVector vecPos = particle->m_vecPosition; + + if ( numWaterDropOnScreen == 0 ) + clearWaterDrop = false; + + if ( psystem->m_Type == PARTICLE_WATERDROP ) + { + if ( CGame::IsInInterior() || clearWaterDrop == true ) + { + bRemoveParticle = true; + continue; + } + + static uint8 nWaterDropCount; + + if ( nWaterDropCount == 5 ) + { + vecMoveStep = CVector(0.0f, 0.0f, 0.0f); + particle->m_nTimeWhenWillBeDestroyed += 1250; + nWaterDropCount = 0; + } + else + { + if ( TheCamera.m_CameraAverageSpeed > 0.35f ) + { + if ( vecMoveStep.Magnitude() > 0.5f ) + { + if ( vecMoveStep.Magnitude() > 0.4f && vecMoveStep.Magnitude() < 0.8f ) + { + vecMoveStep.x += TheCamera.m_CameraAverageSpeed * 1.5f; + vecMoveStep.y += TheCamera.m_CameraAverageSpeed * 1.5f; + } + else if ( vecMoveStep.Magnitude() != 0.0f ) + { + vecMoveStep.x += CGeneral::GetRandomNumberInRange(0.01f, 0.05f); + vecMoveStep.y += CGeneral::GetRandomNumberInRange(0.01f, 0.05f); + } + } + } + + nWaterDropCount++; + } + + if ( vecPos.z <= 1.5f ) + vecMoveStep.z = 0.0f; + } + + if ( psystem->m_Type == PARTICLE_HEATHAZE || psystem->m_Type == PARTICLE_HEATHAZE_IN_DIST ) + { + int32 nSinCosIndex = int32(DEGTORAD((float)particle->m_nRotation) * float(SIN_COS_TABLE_SIZE) / TWOPI) % SIN_COS_TABLE_SIZE; + + vecMoveStep.x = Sin(nSinCosIndex); + vecMoveStep.y = Sin(nSinCosIndex); + + if ( psystem->m_Type == PARTICLE_HEATHAZE_IN_DIST ) + particle->m_nRotation = int16((float)particle->m_nRotation + 0.75f); + else + particle->m_nRotation = int16((float)particle->m_nRotation + 1.0f); + } + + if ( psystem->m_Type == PARTICLE_BEASTIE ) + { + int32 nSinCosIndex = int32(DEGTORAD((float)particle->m_nRotation) * float(SIN_COS_TABLE_SIZE) / TWOPI) % SIN_COS_TABLE_SIZE; + + particle->m_vecVelocity.x = 0.50f * Cos(nSinCosIndex); + particle->m_vecVelocity.y = Cos(nSinCosIndex); + particle->m_vecVelocity.z = 0.25f * Sin(nSinCosIndex); + + if ( particle->m_vecVelocity.Magnitude() > 2.0f + || vecPos.z > 40.0f + || (TheCamera.GetPosition() - vecPos).Magnitude() < 60.0f + ) + { + bRemoveParticle = true; + continue; + } + } + + vecPos += vecMoveStep; + + if ( psystem->m_Type == PARTICLE_FIREBALL ) + { + AddParticle(PARTICLE_HEATHAZE, particle->m_vecPosition, CVector(0.0f, 0.0f, 0.0f), + nil, particle->m_fSize * 5.0f); + } + + if ( psystem->m_Type == PARTICLE_GUNSMOKE2 ) + { + if ( CTimer::GetFrameCounter() & 10 ) + { + if ( FindPlayerPed()->GetWeapon()->m_eWeaponType == WEAPONTYPE_MINIGUN ) + { + AddParticle(PARTICLE_HEATHAZE, particle->m_vecPosition, CVector(0.0f, 0.0f, 0.0f)); + } + } + } + + if ( CWeather::Wind > 0.0f ) + { + if ( vecMoveStep.Magnitude() != 0.0f ) + { + vecWind.x = CGeneral::GetRandomNumberInRange(0.75f, 1.25f) * -CWeather::Wind; + vecWind.y = CGeneral::GetRandomNumberInRange(0.75f, 1.25f) * -CWeather::Wind; + vecWind *= PARTICLE_WIND_TEST_SCALE * psystem->m_fWindFactor * CTimer::GetTimeStep(); + particle->m_vecVelocity += vecWind; + } + } + + if ( psystem->m_Type == PARTICLE_RAINDROP + || psystem->m_Type == PARTICLE_RAINDROP_SMALL + || psystem->m_Type == PARTICLE_RAIN_SPLASH + || psystem->m_Type == PARTICLE_RAIN_SPLASH_BIGGROW + || psystem->m_Type == PARTICLE_CAR_SPLASH + || psystem->m_Type == PARTICLE_BOAT_SPLASH + || psystem->m_Type == PARTICLE_RAINDROP_2D ) + { + int32 nMaxDrops = int32(6.0f * TheCamera.m_CameraAverageSpeed + 1.0f); + float fDistToCam = 0.0f; + + if ( psystem->m_Type == PARTICLE_BOAT_SPLASH || psystem->m_Type == PARTICLE_CAR_SPLASH ) + { + if ( vecPos.z + particle->m_fSize < 5.0f ) + { + bRemoveParticle = true; + continue; + } + + switch ( TheCamera.GetLookDirection() ) + { + case LOOKING_LEFT: + case LOOKING_RIGHT: + case LOOKING_FORWARD: + nMaxDrops /= 2; + break; + + default: + nMaxDrops = 0; + break; + } + + fDistToCam = (TheCamera.GetPosition() - vecPos).Magnitude(); + } - CVector moveStep = particle->m_vecPosition + ( particle->m_vecVelocity * CTimer::GetTimeStep() ); + if ( numWaterDropOnScreen < nMaxDrops && numWaterDropOnScreen < 63 + && fDistToCam < 10.0f + && clearWaterDrop == false + && !CGame::IsInInterior() ) + { + CVector vecWaterdropTarget + ( + CGeneral::GetRandomNumberInRange(-0.25f, 0.25f), + CGeneral::GetRandomNumberInRange(0.1f, 0.75f), + -0.01f + ); + + CVector vecWaterdropPos; + + if ( TheCamera.m_CameraAverageSpeed < 0.35f ) + vecWaterdropPos.x = (float)CGeneral::GetRandomNumberInRange(50, int32(SCREEN_WIDTH) - 50); + else + vecWaterdropPos.x = (float)CGeneral::GetRandomNumberInRange(200, int32(SCREEN_WIDTH) - 200); + + if ( psystem->m_Type == PARTICLE_BOAT_SPLASH || psystem->m_Type == PARTICLE_CAR_SPLASH ) + vecWaterdropPos.y = (float)CGeneral::GetRandomNumberInRange(SCREEN_HEIGHT / 2, SCREEN_HEIGHT); + else + { + if ( TheCamera.m_CameraAverageSpeed < 0.35f ) + vecWaterdropPos.y = (float)CGeneral::GetRandomNumberInRange(0, int32(SCREEN_HEIGHT)); + else + vecWaterdropPos.y = (float)CGeneral::GetRandomNumberInRange(150, int32(SCREEN_HEIGHT) - 200); + } + + vecWaterdropPos.z = 2.0f; + + if ( AddParticle(PARTICLE_WATERDROP, + vecWaterdropPos, + vecWaterdropTarget, + nil, + CGeneral::GetRandomNumberInRange(0.1f, 0.15f), + 0, + 0, + CGeneral::GetRandomNumber() & 1, + 0) != nil ) + { + numWaterDropOnScreen++; + } + } + } if ( CTimer::GetTimeInMilliseconds() > particle->m_nTimeWhenWillBeDestroyed || particle->m_nAlpha == 0 ) { @@ -1057,7 +1365,7 @@ void CParticle::Update() 0, 255); } else - RwRGBAAssign(&particle->m_Color, &psystem->m_FadeDestinationColor); + RwRGBAAssign(&particle->m_Color, psystem->m_FadeDestinationColor); } if ( psystem->Flags & CLIPOUT2D ) @@ -1070,16 +1378,41 @@ void CParticle::Update() } } - float size = particle->m_fSize + particle->m_fExpansionRate; - - if ( size < 0.0f ) + if ( !(psystem->Flags & SCREEN_TRAIL) ) { - bRemoveParticle = true; - continue; + float size; + + if ( particle->m_fExpansionRate > 0.0f ) + { + float speed = Max(vecWind.Magnitude(), vecMoveStep.Magnitude()); + + if ( psystem->m_Type == PARTICLE_EXHAUST_FUMES || psystem->m_Type == PARTICLE_ENGINE_STEAM ) + speed *= 2.0f; + + if ( ( psystem->m_Type == PARTICLE_BOAT_SPLASH || psystem->m_Type == PARTICLE_CAR_SPLASH ) + && particle->m_fSize > 1.2f ) + { + size = particle->m_fSize - (1.0f + speed) * particle->m_fExpansionRate; + particle->m_vecVelocity.z -= 0.15f; + } + else + size = particle->m_fSize + (1.0f + speed) * particle->m_fExpansionRate; + } + else + size = particle->m_fSize + particle->m_fExpansionRate; + + if ( psystem->m_Type == PARTICLE_WATERDROP ) + size = (size - Abs(vecMoveStep.x) * 0.000150000007f) + (Abs(vecMoveStep.z) * 0.0500000007f); //TODO: + + if ( size < 0.0f ) + { + bRemoveParticle = true; + continue; + } + + particle->m_fSize = size; } - particle->m_fSize = size; - switch ( psystem->m_nFrictionDecceleration ) { case 50: @@ -1199,7 +1532,7 @@ void CParticle::Update() if ( randVal == 5 ) { - CShadows::AddPermanentShadow(1, gpBloodPoolTex, &vecPosn, + CShadows::AddPermanentShadow(SHADOWTYPE_DARK, gpBloodPoolTex, &vecPosn, 0.1f, 0.0f, 0.0f, -0.1f, 255, 255, 0, 0, @@ -1207,7 +1540,7 @@ void CParticle::Update() } else if ( randVal == 2 ) { - CShadows::AddPermanentShadow(1, gpBloodPoolTex, &vecPosn, + CShadows::AddPermanentShadow(SHADOWTYPE_DARK, gpBloodPoolTex, &vecPosn, 0.2f, 0.0f, 0.0f, -0.2f, 255, 255, 0, 0, @@ -1225,12 +1558,12 @@ void CParticle::Update() CColPoint point; CEntity *entity; - if ( CWorld::ProcessVerticalLine(particle->m_vecPosition, moveStep.z, point, entity, + if ( CWorld::ProcessVerticalLine(particle->m_vecPosition, vecPos.z, point, entity, true, true, false, false, true, false, nil) ) { - if ( moveStep.z <= point.point.z ) + if ( vecPos.z <= point.point.z ) { - moveStep.z = point.point.z; + vecPos.z = point.point.z; if ( psystem->m_Type == PARTICLE_DEBRIS2 ) { particle->m_vecVelocity.x *= 0.8f; @@ -1317,16 +1650,16 @@ void CParticle::Update() CColPoint point; CEntity *entity; - if ( CWorld::ProcessVerticalLine(particle->m_vecPosition, moveStep.z, point, entity, + if ( CWorld::ProcessVerticalLine(particle->m_vecPosition, vecPos.z, point, entity, true, false, false, false, true, false, nil) ) { - if ( moveStep.z <= point.point.z ) + if ( vecPos.z <= point.point.z ) { - moveStep.z = point.point.z; + vecPos.z = point.point.z; if ( psystem->m_Type == PARTICLE_HELI_ATTACK ) { bRemoveParticle = true; - AddParticle(PARTICLE_STEAM, moveStep, CVector(0.0f, 0.0f, 0.05f), nil, 0.2f, 0, 0, 0, 0); + AddParticle(PARTICLE_STEAM, vecPos, CVector(0.0f, 0.0f, 0.05f), nil, 0.2f, 0, 0, 0, 0); continue; } } @@ -1335,37 +1668,21 @@ void CParticle::Update() } } - if ( psystem->m_nFadeToBlackAmount != 0 ) + if ( particle->m_nFadeToBlackTimer != 0 ) { - if ( particle->m_nFadeToBlackTimer >= psystem->m_nFadeToBlackTime ) - { - particle->m_nFadeToBlackTimer = 0; - - particle->m_nColorIntensity = clamp(particle->m_nColorIntensity - psystem->m_nFadeToBlackAmount, + particle->m_nColorIntensity = clamp(particle->m_nColorIntensity - particle->m_nFadeToBlackTimer, 0, 255); - } - else - ++particle->m_nFadeToBlackTimer; } - if ( psystem->m_nFadeAlphaAmount != 0 ) + if ( particle->m_nFadeAlphaTimer != 0 ) { - if ( particle->m_nFadeAlphaTimer >= psystem->m_nFadeAlphaTime ) - { - particle->m_nFadeAlphaTimer = 0; - - particle->m_nAlpha = clamp(particle->m_nAlpha - psystem->m_nFadeAlphaAmount, + particle->m_nAlpha = clamp(particle->m_nAlpha - particle->m_nFadeAlphaTimer, 0, 255); -#ifdef PC_PARTICLE - if ( particle->m_nAlpha == 0 ) - { - bRemoveParticle = true; - continue; - } -#endif + if ( particle->m_nAlpha == 0 ) + { + bRemoveParticle = true; + continue; } - else - ++particle->m_nFadeAlphaTimer; } if ( psystem->m_nZRotationAngleChangeAmount != 0 ) @@ -1409,31 +1726,24 @@ void CParticle::Update() } if ( particle->m_nRotationStep != 0 ) - { particle->m_nRotation += particle->m_nRotationStep; - - if ( particle->m_nRotation >= 360 ) - particle->m_nRotation -= 360; - else if ( particle->m_nRotation < 0 ) - particle->m_nRotation += 360; - } if ( particle->m_fCurrentZRadius != 0.0f ) { - int32 nRot = particle->m_nCurrentZRotation % (SIN_COS_TABLE_SIZE - 1); + int32 nSinCosIndex = particle->m_nCurrentZRotation % SIN_COS_TABLE_SIZE; - float fX = (Cos(nRot) - Sin(nRot)) * particle->m_fCurrentZRadius; + float fX = (Cos(nSinCosIndex) - Sin(nSinCosIndex)) * particle->m_fCurrentZRadius; - float fY = (Sin(nRot) + Cos(nRot)) * particle->m_fCurrentZRadius; + float fY = (Sin(nSinCosIndex) + Cos(nSinCosIndex)) * particle->m_fCurrentZRadius; - moveStep -= particle->m_vecParticleMovementOffset; + vecPos -= particle->m_vecParticleMovementOffset; - moveStep += CVector(fX, fY, 0.0f); + vecPos += CVector(fX, fY, 0.0f); particle->m_vecParticleMovementOffset = CVector(fX, fY, 0.0f); } - particle->m_vecPosition = moveStep; + particle->m_vecPosition = vecPos; } } } @@ -1457,13 +1767,10 @@ void CParticle::Render() for ( int32 i = 0; i < MAX_PARTICLES; i++ ) { tParticleSystemData *psystem = &mod_ParticleSystemManager.m_aParticles[i]; -#ifdef PC_PARTICLE bool particleBanned = false; -#endif CParticle *particle = psystem->m_pParticles; RwRaster **frames = psystem->m_ppRaster; -#ifdef PC_PARTICLE tParticleType type = psystem->m_Type; if ( type == PARTICLE_ENGINE_SMOKE @@ -1477,7 +1784,6 @@ void CParticle::Render() { particleBanned = true; } -#endif if ( particle ) { @@ -1519,11 +1825,10 @@ void CParticle::Render() while ( particle != nil ) { bool canDraw = true; -#ifdef PC_PARTICLE if ( particle->m_nAlpha == 0 ) canDraw = false; -#endif + if ( canDraw && psystem->m_nFinalAnimationFrame != 0 && frames != nil ) { RwRaster *curFrame = frames[particle->m_nCurrentFrame]; @@ -1537,28 +1842,153 @@ void CParticle::Render() if ( canDraw && psystem->Flags & DRAWTOP2D ) { - if ( particle->m_nRotation != 0 ) + float screenZ = (particle->m_vecPosition.z - CDraw::GetNearClipZ()) + * (CSprite::GetFarScreenZ() - CSprite::GetNearScreenZ()) + * CDraw::GetFarClipZ() + / ( (CDraw::GetFarClipZ() - CDraw::GetNearClipZ()) * particle->m_vecPosition.z ) + + CSprite::GetNearScreenZ(); + + float stretchTexW; + float stretchTexH; + + if ( i == PARTICLE_RAINDROP || i == PARTICLE_RAINDROP_SMALL || i == PARTICLE_RAINDROP_2D ) { - CSprite::RenderBufferedOneXLUSprite2D_Rotate_Dimension( - particle->m_vecPosition.x, - particle->m_vecPosition.y, - particle->m_fSize * 63.0f, - particle->m_fSize * 63.0f, - particle->m_Color, - particle->m_nColorIntensity, - DEGTORAD(particle->m_nRotation), - particle->m_nAlpha); + stretchTexW = CGeneral::GetRandomNumberInRange(0.1f, 1.0f) * psystem->m_vecTextureStretch.x * (float)particle->m_nCurrentFrame + 63.0f; + stretchTexH = CGeneral::GetRandomNumberInRange(0.1f, 1.0f) * psystem->m_vecTextureStretch.y * (float)particle->m_nCurrentFrame + 63.0f; } else { - CSprite::RenderBufferedOneXLUSprite2D( - particle->m_vecPosition.x, - particle->m_vecPosition.y, - particle->m_fSize * 63.0f, - particle->m_fSize * 63.0f, - particle->m_Color, - particle->m_nColorIntensity, - particle->m_nAlpha); + stretchTexW = CGeneral::GetRandomNumberInRange(0.1f, 1.0f) * psystem->m_vecTextureStretch.x + 63.0f; + stretchTexH = CGeneral::GetRandomNumberInRange(0.1f, 1.0f) * psystem->m_vecTextureStretch.y + 63.0f; + } + + + if ( i == PARTICLE_WATERDROP ) + { + int32 timeLeft = (particle->m_nTimeWhenWillBeDestroyed - CTimer::GetTimeInMilliseconds()) / particle->m_nTimeWhenWillBeDestroyed; + + stretchTexH += (1.0f - (float)timeLeft ) * psystem->m_vecTextureStretch.y; + + RwRect rect; + + rect.x = int32(particle->m_vecPosition.x - SCREEN_STRETCH_X(particle->m_fSize * stretchTexW)); + rect.y = int32(particle->m_vecPosition.y - SCREEN_STRETCH_Y(particle->m_fSize * stretchTexH)); + rect.w = int32(particle->m_vecPosition.x + SCREEN_STRETCH_X(particle->m_fSize * stretchTexW)); + rect.h = int32(particle->m_vecPosition.y + SCREEN_STRETCH_Y(particle->m_fSize * stretchTexH)); + + FxType fxtype; + + if ( particle->m_nCurrentFrame != 0 ) + fxtype = FXTYPE_1; + else + fxtype = FXTYPE_0; + + CMBlur::AddRenderFx(Scene.camera, &rect, screenZ, fxtype); + + canDraw = false; + } + + if ( i == PARTICLE_BLOODDROP ) + { + int32 timeLeft = (particle->m_nTimeWhenWillBeDestroyed - CTimer::GetTimeInMilliseconds()) / particle->m_nTimeWhenWillBeDestroyed; + + stretchTexH += (1.0f + (float)timeLeft) * psystem->m_vecTextureStretch.y; + stretchTexW += (1.0f - (float)timeLeft) * psystem->m_vecTextureStretch.x; + + RwRect rect; + + rect.x = int32(particle->m_vecPosition.x - SCREEN_STRETCH_X(particle->m_fSize * stretchTexW)); + rect.y = int32(particle->m_vecPosition.y - SCREEN_STRETCH_Y(particle->m_fSize * stretchTexH)); + rect.w = int32(particle->m_vecPosition.x + SCREEN_STRETCH_X(particle->m_fSize * stretchTexW)); + rect.h = int32(particle->m_vecPosition.y + SCREEN_STRETCH_Y(particle->m_fSize * stretchTexH)); + + FxType fxtype; + + if ( particle->m_nCurrentFrame ) + fxtype = FXTYPE_3; + else + fxtype = FXTYPE_2; + + CMBlur::AddRenderFx(Scene.camera, &rect, screenZ, fxtype); + + canDraw = false; + } + + if ( i == PARTICLE_HEATHAZE_IN_DIST ) + { + RwRect rect; + + rect.x = int32(particle->m_vecPosition.x - SCREEN_STRETCH_X(particle->m_fSize * stretchTexW)); + rect.y = int32(particle->m_vecPosition.y - SCREEN_STRETCH_Y(particle->m_fSize * stretchTexH * 0.15f)); + rect.w = int32(particle->m_vecPosition.x + SCREEN_STRETCH_X(particle->m_fSize * stretchTexW)); + rect.h = int32(particle->m_vecPosition.y + SCREEN_STRETCH_Y(particle->m_fSize * stretchTexH * 0.15f)); + + CMBlur::AddRenderFx(Scene.camera, &rect, screenZ, FXTYPE_4); + + canDraw = false; + } + + if ( i == PARTICLE_HEATHAZE ) + { + RwRect rect; + + switch ( TheCamera.GetLookDirection() ) + { + case LOOKING_LEFT: + rect.x = int32(particle->m_vecPosition.x - SCREEN_STRETCH_X(particle->m_fSize * psystem->m_vecTextureStretch.x * 2.0f)); + rect.y = int32(particle->m_vecPosition.y - SCREEN_STRETCH_Y(particle->m_fSize * psystem->m_vecTextureStretch.y)); + rect.w = int32(particle->m_vecPosition.x - SCREEN_STRETCH_X(particle->m_fSize * psystem->m_vecTextureStretch.x)); + rect.h = int32(particle->m_vecPosition.y + SCREEN_STRETCH_Y(particle->m_fSize * psystem->m_vecTextureStretch.y)); + + break; + + case LOOKING_RIGHT: + rect.x = int32(particle->m_vecPosition.x + SCREEN_STRETCH_X(particle->m_fSize * psystem->m_vecTextureStretch.x)); + rect.y = int32(particle->m_vecPosition.y - SCREEN_STRETCH_Y(particle->m_fSize * psystem->m_vecTextureStretch.y)); + rect.w = int32(particle->m_vecPosition.x + SCREEN_STRETCH_X(particle->m_fSize * psystem->m_vecTextureStretch.x * 4.0f)); + rect.h = int32(particle->m_vecPosition.y + SCREEN_STRETCH_Y(particle->m_fSize * psystem->m_vecTextureStretch.y)); + + break; + + default: + rect.x = int32(particle->m_vecPosition.x - SCREEN_STRETCH_X(particle->m_fSize * psystem->m_vecTextureStretch.x)); + rect.y = int32(particle->m_vecPosition.y - SCREEN_STRETCH_Y(particle->m_fSize * psystem->m_vecTextureStretch.y)); + rect.w = int32(particle->m_vecPosition.x + SCREEN_STRETCH_X(particle->m_fSize * psystem->m_vecTextureStretch.x)); + rect.h = int32(particle->m_vecPosition.y + SCREEN_STRETCH_Y(particle->m_fSize * psystem->m_vecTextureStretch.y)); + + break; + } + + CMBlur::AddRenderFx(Scene.camera, &rect, screenZ, FXTYPE_4); + + canDraw = false; + } + + if ( canDraw ) + { + if ( particle->m_nRotation != 0 ) + { + CSprite::RenderBufferedOneXLUSprite2D_Rotate_Dimension( + particle->m_vecPosition.x, + particle->m_vecPosition.y, + particle->m_fSize * stretchTexW, + particle->m_fSize * stretchTexH, + particle->m_Color, + particle->m_nColorIntensity, + DEGTORAD((float)particle->m_nRotation), + particle->m_nAlpha); + } + else + { + CSprite::RenderBufferedOneXLUSprite2D( + particle->m_vecPosition.x, + particle->m_vecPosition.y, + particle->m_fSize * stretchTexW, + particle->m_fSize * stretchTexH, + particle->m_Color, + particle->m_nColorIntensity, + particle->m_nAlpha); + } } canDraw = false; @@ -1572,174 +2002,234 @@ void CParticle::Render() if ( CSprite::CalcScreenCoors(particle->m_vecPosition, coors, &w, &h, true) ) { -#ifdef PC_PARTICLE - if ( (!particleBanned || SCREEN_WIDTH * fParticleScaleLimit >= w) - && SCREEN_HEIGHT * fParticleScaleLimit >= h ) -#endif + + if ( i == PARTICLE_ENGINE_STEAM + || i == PARTICLE_ENGINE_SMOKE + || i == PARTICLE_ENGINE_SMOKE2 + || i == PARTICLE_CARFLAME_SMOKE + || i == PARTICLE_CARCOLLISION_DUST + || i == PARTICLE_EXHAUST_FUMES + || i == PARTICLE_RUBBER_SMOKE + || i == PARTICLE_BURNINGRUBBER_SMOKE ) { - if ( particle->m_nRotation != 0 ) - { - CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension(coors.x, coors.y, coors.z, - particle->m_fSize * w, particle->m_fSize * h, - particle->m_Color.red, - particle->m_Color.green, - particle->m_Color.blue, - particle->m_nColorIntensity, - 1.0f / coors.z, - DEGTORAD(particle->m_nRotation), - particle->m_nAlpha); + switch ( TheCamera.GetLookDirection() ) + { + case LOOKING_LEFT: + case LOOKING_RIGHT: + w += CGeneral::GetRandomNumberInRange(1.0f, 7.5f) * psystem->m_vecTextureStretch.x; + h += CGeneral::GetRandomNumberInRange(0.1f, 1.0f) * psystem->m_vecTextureStretch.y; + break; + + default: + w += CGeneral::GetRandomNumberInRange(0.1f, 1.0f) * psystem->m_vecTextureStretch.x; + h += CGeneral::GetRandomNumberInRange(0.1f, 1.0f) * psystem->m_vecTextureStretch.y; + break; } - else if ( psystem->Flags & SCREEN_TRAIL ) + } + else if ( i == PARTICLE_WATER_HYDRANT ) + { + int32 timeLeft = (particle->m_nTimeWhenWillBeDestroyed - CTimer::GetTimeInMilliseconds()) / particle->m_nTimeWhenWillBeDestroyed; + + w += (1.0f - (float)timeLeft) * psystem->m_vecTextureStretch.x; + h += (1.0f - (float)timeLeft) * psystem->m_vecTextureStretch.y; + } + else if ( i == PARTICLE_FLYERS ) + { + w += psystem->m_vecTextureStretch.x; + h += psystem->m_vecTextureStretch.y; + + w = Max(w, 12.0f); + h = Max(h, 12.0f); + } + else + { + w += CGeneral::GetRandomNumberInRange(0.1f, 1.0f) * psystem->m_vecTextureStretch.x; + h += CGeneral::GetRandomNumberInRange(0.1f, 1.0f) * psystem->m_vecTextureStretch.y; + } + + if ( i == PARTICLE_WATER_HYDRANT + || (!particleBanned || SCREEN_WIDTH * fParticleScaleLimit >= w) + && SCREEN_HEIGHT * fParticleScaleLimit >= h ) + { + if ( i == PARTICLE_WATER_HYDRANT ) { - float fRotation; - float fTrailLength; + RwRect rect; - if ( particle->m_vecScreenPosition.x == 0.0f ) + if ( w > 0.0f ) { - fTrailLength = 0.0f; - fRotation = 0.0f; + rect.x = int32(coors.x - SCREEN_STRETCH_X(particle->m_fSize * w)); + rect.w = int32(coors.x + SCREEN_STRETCH_X(particle->m_fSize * w)); } else { - CVector2D vecDist - ( - coors.x - particle->m_vecScreenPosition.x, - coors.y - particle->m_vecScreenPosition.y - ); - - float fDist = vecDist.Magnitude(); - - fTrailLength = fDist; - - float fRot = Asin(vecDist.x / fDist); - - fRotation = fRot; - - if ( vecDist.y < 0.0f ) - fRotation = -1.0f * fRot + DEGTORAD(180.0f); - - fRotation = RADTODEG(fRotation); - - if ( fRotation < 0.0f ) - fRotation += 360.0f; - - float fSpeed = particle->m_vecVelocity.Magnitude(); - - float fNewTrailLength = fSpeed * CTimer::GetTimeStep() * w * 2.0f; - - if ( fDist > fNewTrailLength ) - fTrailLength = fNewTrailLength; + rect.w = int32(coors.x - SCREEN_STRETCH_X(particle->m_fSize * w)); + rect.x = int32(coors.x + SCREEN_STRETCH_X(particle->m_fSize * w)); + } + + if ( h > 0.0f ) + { + rect.y = int32(coors.y - SCREEN_STRETCH_Y(particle->m_fSize * h)); + rect.h = int32(coors.y + SCREEN_STRETCH_Y(particle->m_fSize * h)); + } + else + { + rect.h = int32(coors.y - SCREEN_STRETCH_Y(particle->m_fSize * h)); + rect.y = int32(coors.y + SCREEN_STRETCH_Y(particle->m_fSize * h)); } - CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension(coors.x, coors.y, coors.z, - particle->m_fSize * w, - particle->m_fSize * h + fTrailLength * psystem->m_fTrailLengthMultiplier, - particle->m_Color.red, - particle->m_Color.green, - particle->m_Color.blue, - particle->m_nColorIntensity, - 1.0f / coors.z, - DEGTORAD(fRotation), - particle->m_nAlpha); - - particle->m_vecScreenPosition = coors; + float screenZ = (coors.z - CDraw::GetNearClipZ()) + * (CSprite::GetFarScreenZ() - CSprite::GetNearScreenZ()) * CDraw::GetFarClipZ() + / ( (CDraw::GetFarClipZ() - CDraw::GetNearClipZ()) * coors.z ) + CSprite::GetNearScreenZ(); + + CMBlur::AddRenderFx(Scene.camera, &rect, screenZ, FXTYPE_5); } - else if ( psystem->Flags & SPEED_TRAIL ) + else { - CVector vecPrevPos = particle->m_vecPosition - particle->m_vecVelocity; - float fRotation; - float fTrailLength; - - if ( CSprite::CalcScreenCoors(vecPrevPos, particle->m_vecScreenPosition, &fTrailLength, &fRotation, true) ) + if ( particle->m_nRotation != 0 && i != PARTICLE_BEASTIE ) + { + CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension(coors.x, coors.y, coors.z, + particle->m_fSize * w, particle->m_fSize * h, + particle->m_Color.red, + particle->m_Color.green, + particle->m_Color.blue, + particle->m_nColorIntensity, + 1.0f / coors.z, + DEGTORAD((float)particle->m_nRotation), + particle->m_nAlpha); + } + else if ( psystem->Flags & SCREEN_TRAIL ) { - CVector2D vecDist - ( - coors.x - particle->m_vecScreenPosition.x, - coors.y - particle->m_vecScreenPosition.y - ); - - float fDist = vecDist.Magnitude(); + float fRotation; + float fTrailLength; - fTrailLength = fDist; - - float fRot = Asin(vecDist.x / fDist); - - fRotation = fRot; + if ( particle->m_fZGround == 0.0f ) + { + fTrailLength = 0.0f; + fRotation = 0.0f; + } + else + { + CVector2D vecDist + ( + coors.x - particle->m_fZGround, + coors.y - particle->m_fExpansionRate + ); + + float fDist = vecDist.Magnitude(); + + fTrailLength = fDist; + + float fRot = Asin(vecDist.x / fDist); + + fRotation = fRot; + + if ( vecDist.y < 0.0f ) + fRotation = -1.0f * fRot + DEGTORAD(180.0f); + + float fSpeed = particle->m_vecVelocity.Magnitude(); + + float fNewTrailLength = fSpeed * CTimer::GetTimeStep() * w * 2.0f; + + if ( fDist > fNewTrailLength ) + fTrailLength = fNewTrailLength; + } - if ( vecDist.y < 0.0f ) - fRotation = -1.0f * fRot + DEGTORAD(180.0f); + CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension(coors.x, coors.y, coors.z, + particle->m_fSize * w, + particle->m_fSize * h + fTrailLength * psystem->m_fTrailLengthMultiplier, + particle->m_Color.red, + particle->m_Color.green, + particle->m_Color.blue, + particle->m_nColorIntensity, + 1.0f / coors.z, + fRotation, + particle->m_nAlpha); + + particle->m_fZGround = coors.x; // WTF ? + particle->m_fExpansionRate = coors.y; // WTF ? + } + else if ( psystem->Flags & SPEED_TRAIL ) + { + CVector vecPrevPos = particle->m_vecPosition - particle->m_vecVelocity; + float fRotation; + float fTrailLength; + CVector vecScreenPosition; - fRotation = RADTODEG(fRotation); + if ( CSprite::CalcScreenCoors(vecPrevPos, vecScreenPosition, &fTrailLength, &fRotation, true) ) + { + CVector2D vecDist + ( + coors.x - vecScreenPosition.x, + coors.y - vecScreenPosition.y + ); + + float fDist = vecDist.Magnitude(); + + fTrailLength = fDist; + + float fRot = Asin(vecDist.x / fDist); + + fRotation = fRot; + + if ( vecDist.y < 0.0f ) + fRotation = -1.0f * fRot + DEGTORAD(180.0f); + } + else + { + fRotation = 0.0f; + fTrailLength = 0.0f; + } - if ( fRotation < 0.0f ) - fRotation += 360.0f; + CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension(coors.x, coors.y, coors.z, + particle->m_fSize * w, + particle->m_fSize * h + fTrailLength * psystem->m_fTrailLengthMultiplier, + particle->m_Color.red, + particle->m_Color.green, + particle->m_Color.blue, + particle->m_nColorIntensity, + 1.0f / coors.z, + fRotation, + particle->m_nAlpha); } - else + else if ( psystem->Flags & VERT_TRAIL ) { - fRotation = 0.0f; - fTrailLength = 0.0f; + float fTrailLength = fabsf(particle->m_vecVelocity.z * 10.0f); + + CSprite::RenderBufferedOneXLUSprite(coors.x, coors.y, coors.z, + particle->m_fSize * w, + (particle->m_fSize + fTrailLength * psystem->m_fTrailLengthMultiplier) * h, + particle->m_Color.red, + particle->m_Color.green, + particle->m_Color.blue, + particle->m_nColorIntensity, + 1.0f / coors.z, + particle->m_nAlpha); + } + else if ( i == PARTICLE_RAINDROP_SMALL ) + { + CSprite::RenderBufferedOneXLUSprite(coors.x, coors.y, coors.z, + particle->m_fSize * w * 0.05f, + particle->m_fSize * h, + particle->m_Color.red, + particle->m_Color.green, + particle->m_Color.blue, + particle->m_nColorIntensity, + 1.0f / coors.z, + particle->m_nAlpha); + } + /*else if ( i == PARTICLE_BOAT_WAKE )*/ + else + { + CSprite::RenderBufferedOneXLUSprite(coors.x, coors.y, coors.z, + particle->m_fSize * w, + particle->m_fSize * h, + particle->m_Color.red, + particle->m_Color.green, + particle->m_Color.blue, + particle->m_nColorIntensity, + 1.0f / coors.z, + particle->m_nAlpha); } - - CSprite::RenderBufferedOneXLUSprite_Rotate_Dimension(coors.x, coors.y, coors.z, - particle->m_fSize * w, - particle->m_fSize * h + fTrailLength * psystem->m_fTrailLengthMultiplier, - particle->m_Color.red, - particle->m_Color.green, - particle->m_Color.blue, - particle->m_nColorIntensity, - 1.0f / coors.z, - DEGTORAD(fRotation), - particle->m_nAlpha); - } - else if ( psystem->Flags & VERT_TRAIL ) - { - float fTrailLength = fabsf(particle->m_vecVelocity.z * 10.0f); - - CSprite::RenderBufferedOneXLUSprite(coors.x, coors.y, coors.z, - particle->m_fSize * w, - (particle->m_fSize + fTrailLength * psystem->m_fTrailLengthMultiplier) * h, - particle->m_Color.red, - particle->m_Color.green, - particle->m_Color.blue, - particle->m_nColorIntensity, - 1.0f / coors.z, - particle->m_nAlpha); - } - else if ( i == PARTICLE_RAINDROP_SMALL ) - { - CSprite::RenderBufferedOneXLUSprite(coors.x, coors.y, coors.z, - particle->m_fSize * w * 0.05f, - particle->m_fSize * h, - particle->m_Color.red, - particle->m_Color.green, - particle->m_Color.blue, - particle->m_nColorIntensity, - 1.0f / coors.z, - particle->m_nAlpha); - } - else if ( i == PARTICLE_BOAT_WAKE ) - { - CSprite::RenderBufferedOneXLUSprite(coors.x, coors.y, coors.z, - particle->m_fSize * w, - psystem->m_fDefaultInitialRadius * h, - particle->m_Color.red, - particle->m_Color.green, - particle->m_Color.blue, - particle->m_nColorIntensity, - 1.0f / coors.z, - particle->m_nAlpha); - } - else - { - CSprite::RenderBufferedOneXLUSprite(coors.x, coors.y, coors.z, - particle->m_fSize * w, - particle->m_fSize * h, - particle->m_Color.red, - particle->m_Color.green, - particle->m_Color.blue, - particle->m_nColorIntensity, - 1.0f / coors.z, - particle->m_nAlpha); } } } @@ -1769,6 +2259,9 @@ void CParticle::RemovePSystem(tParticleType type) void CParticle::RemoveParticle(CParticle *pParticle, CParticle *pPrevParticle, tParticleSystemData *pPSystemData) { + if ( pPSystemData->m_Type == PARTICLE_WATERDROP ) + --numWaterDropOnScreen; + if ( pPrevParticle ) pPrevParticle->m_pNext = pParticle->m_pNext; else @@ -1857,3 +2350,89 @@ void CParticle::AddYardieDoorSmoke(CVector const &vecPos, CMatrix const &matMatr 0.3f, color, 0, 0, 0, 0); } } + +void CParticle::CalWindDir(CVector *vecDirIn, CVector *vecDirOut) +{ + vecDirOut->x = (Cos(128) * vecDirIn->x) + (Sin(128) * vecDirIn->y); + + vecDirOut->x = (Cos(128) * vecDirIn->x) + (Sin(128) * vecDirIn->y) * CWeather::Wind; + vecDirOut->y = (Sin(128) * vecDirIn->x) - (Cos(128) * vecDirIn->y) * CWeather::Wind; +} + +void CParticle::HandleShipsAtHorizonStuff() +{ + tParticleSystemData *psystemdata = &mod_ParticleSystemManager.m_aParticles[PARTICLE_SHIP_SIDE]; + + for ( CParticle *particle = psystemdata->m_pParticles; particle; particle = particle->m_pNext ) + { + if ( CTimer::GetTimeInMilliseconds() > particle->m_nTimeWhenWillBeDestroyed - 32000 + && CTimer::GetTimeInMilliseconds() < particle->m_nTimeWhenWillBeDestroyed - 22000 ) + { + particle->m_nAlpha = Min(particle->m_nAlpha + 1, 96); + } + if ( CTimer::GetTimeInMilliseconds() > particle->m_nTimeWhenWillBeDestroyed - 10000 ) + particle->m_nFadeAlphaTimer = 1; + } +} + +void CParticle::HandleShootableBirdsStuff(CEntity *entity, CVector const&camPos) +{ + float fHeadingRad = entity->GetForward().Heading(); + float fHeading = RADTODEG(fHeadingRad); + float fBirdAngle = Cos(DEGTORAD(1.5f)); + + tParticleSystemData *psystem = &mod_ParticleSystemManager.m_aParticles[PARTICLE_BIRD_FRONT]; + CParticle *particle = psystem->m_pParticles; + CParticle *prevParticle = nil; + bool bRemoveParticle; + + for ( ; particle != nil; _Next(particle, prevParticle, psystem, bRemoveParticle) ) + { + bRemoveParticle = false; + + CVector2D vecPos(particle->m_vecPosition.x, particle->m_vecPosition.y); + CVector2D vecCamPos(camPos.x, camPos.y); + + CVector2D vecDist = vecPos - vecCamPos; + vecDist.Normalise(); + + float fHead = DEGTORAD(fHeading); + + CVector2D vecDir(-::Sin(fHead), ::Cos(fHead)); + vecDir.Normalise(); + + float fDot = DotProduct2D(vecDir, vecDist); + + if ( fDot > 0.0f && fDot > fBirdAngle ) + { + if ( (camPos - particle->m_vecPosition).MagnitudeSqr() < 40000.0f ) + { + CStats::SeagullsKilled++; + + bRemoveParticle = true; + + for ( int32 i = 0; i < 8; i++ ) + { + CParticle *pBirdDerbis = AddParticle(PARTICLE_BIRD_DEBRIS, + particle->m_vecPosition, + CVector + ( + CGeneral::GetRandomNumberInRange(-3.0f, 3.0f), + CGeneral::GetRandomNumberInRange(-3.0f, 3.0f), + CGeneral::GetRandomNumberInRange(-3.0f, 3.0f) + ), + nil, + 0.3f, + particle->m_Color, + CGeneral::GetRandomNumberInRange(20, 40), + 0, + CGeneral::GetRandomNumber() & 3, + 200); + if ( pBirdDerbis ) + pBirdDerbis->m_nAlpha = particle->m_nAlpha; + } + } + } + } + +} \ No newline at end of file diff --git a/src/render/Particle.h b/src/render/Particle.h index 7f02e318..d254ef65 100644 --- a/src/render/Particle.h +++ b/src/render/Particle.h @@ -15,25 +15,24 @@ public: CVector m_vecPosition; CVector m_vecVelocity; - CVector m_vecScreenPosition; - uint32 m_nTimeWhenWillBeDestroyed; - uint32 m_nTimeWhenColorWillBeChanged; + uint32 m_nTimeWhenWillBeDestroyed; + uint32 m_nTimeWhenColorWillBeChanged; float m_fZGround; CVector m_vecParticleMovementOffset; int16 m_nCurrentZRotation; - uint16 m_nZRotationTimer; + uint16 m_nZRotationTimer; float m_fCurrentZRadius; - uint16 m_nZRadiusTimer; - float m_fSize; - float m_fExpansionRate; - uint16 m_nFadeToBlackTimer; - uint16 m_nFadeAlphaTimer; + uint16 m_nZRadiusTimer; uint8 m_nColorIntensity; uint8 m_nAlpha; - uint16 m_nCurrentFrame; + float m_fSize; + float m_fExpansionRate; + int16 m_nFadeToBlackTimer; + int16 m_nFadeAlphaTimer; int16 m_nAnimationSpeedTimer; int16 m_nRotationStep; int16 m_nRotation; + uint8 m_nCurrentFrame; RwRGBA m_Color; CParticle *m_pNext; @@ -60,8 +59,11 @@ public: static void Initialise(); static void Shutdown(); - static CParticle *AddParticle(tParticleType type, CVector const &vecPos, CVector const &vecDir, CEntity *pEntity = nil, float fSize = 0.0f, int32 nRotationSpeed = 0, int32 nRotation = 0, int32 nCurFrame = 0, int32 nLifeSpan = 0); - static CParticle *AddParticle(tParticleType type, CVector const &vecPos, CVector const &vecDir, CEntity *pEntity, float fSize, RwRGBA const &color, int32 nRotationSpeed = 0, int32 nRotation = 0, int32 nCurFrame = 0, int32 nLifeSpan = 0); + static void AddParticlesAlongLine(tParticleType type, CVector const &vecStart, CVector const &vecEnd, CVector const &vecDir, float fPower, CEntity *pEntity = nil, float fSize = 0.0f, int32 nRotationSpeed = 0, int32 nRotation = 0, int32 nCurFrame = 0, int32 nLifeSpan = 0); + static void AddParticlesAlongLine(tParticleType type, CVector const &vecStart, CVector const &vecEnd, CVector const &vecDir, float fPower, CEntity *pEntity, float fSize, RwRGBA const&color, int32 nRotationSpeed = 0, int32 nRotation = 0, int32 nCurFrame = 0, int32 nLifeSpan = 0); + + static CParticle *AddParticle(tParticleType type, CVector const &vecPos, CVector const &vecDir, CEntity *pEntity = nil, float fSize = 0.0f, int32 nRotationSpeed = 0, int32 nRotation = 0, int32 nCurFrame = 0, int32 nLifeSpan = 0); + static CParticle *AddParticle(tParticleType type, CVector const &vecPos, CVector const &vecDir, CEntity *pEntity, float fSize, RwRGBA const &color, int32 nRotationSpeed = 0, int32 nRotation = 0, int32 nCurFrame = 0, int32 nLifeSpan = 0); static void Update(); static void Render(); @@ -89,6 +91,10 @@ public: static void AddJetExplosion(CVector const &vecPos, float fPower, float fSize); static void AddYardieDoorSmoke(CVector const &vecPos, CMatrix const &matMatrix); + static void CalWindDir(CVector *vecDirIn, CVector *vecDirOut); + + static void HandleShipsAtHorizonStuff(); + static void HandleShootableBirdsStuff(CEntity *entity, CVector const&camPos); }; -VALIDATE_SIZE(CParticle, 0x68); +VALIDATE_SIZE(CParticle, 0x58); diff --git a/src/render/ParticleMgr.cpp b/src/render/ParticleMgr.cpp index 3387d471..f6919435 100644 --- a/src/render/ParticleMgr.cpp +++ b/src/render/ParticleMgr.cpp @@ -216,6 +216,18 @@ void cParticleSystemMgr::LoadParticleData() case CFG_PARAM_TRAIL_LENGTH_MULTIPLIER: entry->m_fTrailLengthMultiplier = atof(value); break; + + case CFG_PARAM_STRETCH_VALUE_X: + entry->m_vecTextureStretch.x = atof(value); + break; + + case CFG_PARAM_STRETCH_VALUE_Y: + entry->m_vecTextureStretch.y = atof(value); + break; + + case CFG_PARAM_WIND_FACTOR: + entry->m_fWindFactor = atof(value); + break; case CFG_PARAM_PARTICLE_CREATE_RANGE: entry->m_fCreateRange = SQR(atof(value)); diff --git a/src/render/ParticleMgr.h b/src/render/ParticleMgr.h index 0100bb65..f4afc018 100644 --- a/src/render/ParticleMgr.h +++ b/src/render/ParticleMgr.h @@ -36,14 +36,14 @@ struct tParticleSystemData uint16 m_nZRadiusChangeTime; float m_fInitialZRadius; float m_fZRadiusChangeAmount; - uint16 m_nFadeToBlackTime; - int16 m_nFadeToBlackAmount; + int16 m_nFadeToBlackTime; uint8 m_nFadeToBlackInitialIntensity; + int16 m_nFadeToBlackAmount; uint8 m_nFadeAlphaInitialIntensity; - uint16 m_nFadeAlphaTime; + int16 m_nFadeAlphaTime; int16 m_nFadeAlphaAmount; - uint16 m_nStartAnimationFrame; - uint16 m_nFinalAnimationFrame; + uint8 m_nStartAnimationFrame; + uint8 m_nFinalAnimationFrame; uint16 m_nAnimationSpeed; uint16 m_nRotationSpeed; float m_fGravitationalAcceleration; @@ -56,16 +56,19 @@ struct tParticleSystemData uint32 m_nLifeSpanErrorShape; float m_fTrailLengthMultiplier; uint32 Flags; - RwRGBA m_RenderColouring; + CRGBA m_RenderColouring; uint8 m_InitialColorVariation; - RwRGBA m_FadeDestinationColor; + CRGBA m_FadeDestinationColor; uint32 m_ColorFadeTime; + + CVector2D m_vecTextureStretch; + float m_fWindFactor; RwRaster **m_ppRaster; CParticle *m_pParticles; }; -VALIDATE_SIZE(tParticleSystemData, 0x88); +VALIDATE_SIZE(tParticleSystemData, 0x94); class cParticleSystemMgr { @@ -107,6 +110,11 @@ class cParticleSystemMgr CFG_PARAM_ROTATION_RATE_ERROR, CFG_PARAM_LIFE_SPAN_ERROR_SHAPE, CFG_PARAM_TRAIL_LENGTH_MULTIPLIER, + + CFG_PARAM_STRETCH_VALUE_X, + CFG_PARAM_STRETCH_VALUE_Y, + CFG_PARAM_WIND_FACTOR, + CFG_PARAM_PARTICLE_CREATE_RANGE, CFG_PARAM_FLAGS, @@ -125,6 +133,6 @@ public: void RangeCheck(tParticleSystemData *pData) { } }; -VALIDATE_SIZE(cParticleSystemMgr, 0x2420); +VALIDATE_SIZE(cParticleSystemMgr, 0x2FFC); extern cParticleSystemMgr mod_ParticleSystemManager; diff --git a/src/render/ParticleType.h b/src/render/ParticleType.h index 8d352c44..0af9a1e1 100644 --- a/src/render/ParticleType.h +++ b/src/render/ParticleType.h @@ -4,13 +4,16 @@ enum tParticleType { PARTICLE_SPARK = 0, PARTICLE_SPARK_SMALL, + PARTICLE_WATER_SPARK, PARTICLE_WHEEL_DIRT, + PARTICLE_SAND, PARTICLE_WHEEL_WATER, PARTICLE_BLOOD, PARTICLE_BLOOD_SMALL, PARTICLE_BLOOD_SPURT, PARTICLE_DEBRIS, PARTICLE_DEBRIS2, + PARTICLE_FLYERS, PARTICLE_WATER, PARTICLE_FLAME, PARTICLE_FIREBALL, @@ -18,8 +21,11 @@ enum tParticleType PARTICLE_GUNFLASH_NOANIM, PARTICLE_GUNSMOKE, PARTICLE_GUNSMOKE2, + PARTICLE_CIGARETTE_SMOKE, PARTICLE_SMOKE, PARTICLE_SMOKE_SLOWMOTION, + PARTICLE_DRY_ICE, + PARTICLE_TEARGAS, PARTICLE_GARAGEPAINT_SPRAY, PARTICLE_SHARD, PARTICLE_SPLASH, @@ -28,6 +34,7 @@ enum tParticleType PARTICLE_STEAM2, PARTICLE_STEAM_NY, PARTICLE_STEAM_NY_SLOWMOTION, + PARTICLE_GROUND_STEAM, PARTICLE_ENGINE_STEAM, PARTICLE_RAINDROP, PARTICLE_RAINDROP_SMALL, @@ -35,6 +42,8 @@ enum tParticleType PARTICLE_RAIN_SPLASH_BIGGROW, PARTICLE_RAIN_SPLASHUP, PARTICLE_WATERSPRAY, + PARTICLE_WATERDROP, + PARTICLE_BLOODDROP, PARTICLE_EXPLOSION_MEDIUM, PARTICLE_EXPLOSION_LARGE, PARTICLE_EXPLOSION_MFAST, @@ -42,12 +51,12 @@ enum tParticleType PARTICLE_CAR_SPLASH, PARTICLE_BOAT_SPLASH, PARTICLE_BOAT_THRUSTJET, - PARTICLE_BOAT_WAKE, PARTICLE_WATER_HYDRANT, PARTICLE_WATER_CANNON, PARTICLE_EXTINGUISH_STEAM, PARTICLE_PED_SPLASH, PARTICLE_PEDFOOT_DUST, + PARTICLE_CAR_DUST, PARTICLE_HELI_DUST, PARTICLE_HELI_ATTACK, PARTICLE_ENGINE_SMOKE, @@ -58,6 +67,7 @@ enum tParticleType PARTICLE_TREE_LEAVES, PARTICLE_CARCOLLISION_DUST, PARTICLE_CAR_DEBRIS, + PARTICLE_BIRD_DEBRIS, PARTICLE_HELI_DEBRIS, PARTICLE_EXHAUST_FUMES, PARTICLE_RUBBER_SMOKE, @@ -67,9 +77,14 @@ enum tParticleType PARTICLE_GUNSHELL, PARTICLE_GUNSHELL_BUMP1, PARTICLE_GUNSHELL_BUMP2, + PARTICLE_ROCKET_SMOKE, PARTICLE_TEST, PARTICLE_BIRD_FRONT, + PARTICLE_SHIP_SIDE, + PARTICLE_BEASTIE, PARTICLE_RAINDROP_2D, + PARTICLE_HEATHAZE, + PARTICLE_HEATHAZE_IN_DIST, MAX_PARTICLES, PARTICLE_FIRST = PARTICLE_SPARK, diff --git a/src/render/Sprite.h b/src/render/Sprite.h index ec4c1d1b..fae6684e 100644 --- a/src/render/Sprite.h +++ b/src/render/Sprite.h @@ -7,6 +7,9 @@ class CSprite static float m_fRecipNearClipPlane; static int32 m_bFlushSpriteBufferSwitchZTest; public: + static float GetNearScreenZ(void) { return m_f2DNearScreenZ; } + static float GetFarScreenZ(void) { return m_f2DFarScreenZ; } + static float CalcHorizonCoors(void); static bool CalcScreenCoors(const RwV3d &in, RwV3d *out, float *outw, float *outh, bool farclip); static void InitSpriteBuffer(void); diff --git a/src/render/Weather.cpp b/src/render/Weather.cpp index 324c63ea..106e2f89 100644 --- a/src/render/Weather.cpp +++ b/src/render/Weather.cpp @@ -567,7 +567,7 @@ void CWeather::RenderRainStreaks(void) RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDONE); RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDONE); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); - RwRenderStateSet(rwRENDERSTATETEXTURERASTER, RwTextureGetRaster(gpRainDropTex[3])); + RwRenderStateSet(rwRENDERSTATETEXTURERASTER, RwTextureGetRaster(gpRainDropTex)); if (RwIm3DTransform(TempBufferRenderVertices, TempBufferVerticesStored, nil, 1)) { RwIm3DRenderIndexedPrimitive(rwPRIMTYPETRILIST, TempBufferRenderIndexList, TempBufferIndicesStored); diff --git a/src/render/Weather.h b/src/render/Weather.h index bd9b9603..ae09e5d1 100644 --- a/src/render/Weather.h +++ b/src/render/Weather.h @@ -63,4 +63,4 @@ struct tRainStreak uint32 timer; }; -extern RwTexture* gpRainDropTex[4]; \ No newline at end of file +extern RwTexture* gpRainDropTex; \ No newline at end of file diff --git a/src/vehicles/Boat.cpp b/src/vehicles/Boat.cpp index b9d97716..66e83c8f 100644 --- a/src/vehicles/Boat.cpp +++ b/src/vehicles/Boat.cpp @@ -382,8 +382,9 @@ CBoat::ProcessControl(void) CGeneral::GetRandomNumberInRange(0, 30), CGeneral::GetRandomNumberInRange(0, 90), 3); #endif - if(!cameraHack) - CParticle::AddParticle(PARTICLE_BOAT_WAKE, wakePos, wakeDir, nil, 0.0f, jetColor); + //TODO: MIAMI: + //if(!cameraHack) + // CParticle::AddParticle(PARTICLE_BOAT_WAKE, wakePos, wakeDir, nil, 0.0f, jetColor); }else if((CTimer::GetFrameCounter() + m_randomSeed) & 1){ #ifdef PC_PARTICLE jetDir.z = 0.018f; diff --git a/src/weapons/WeaponEffects.cpp b/src/weapons/WeaponEffects.cpp index 46195d2c..fb50bbe0 100644 --- a/src/weapons/WeaponEffects.cpp +++ b/src/weapons/WeaponEffects.cpp @@ -36,7 +36,7 @@ CWeaponEffects::Init(void) int32 slot = CTxdStore::FindTxdSlot("particle"); CTxdStore::SetCurrentTxd(slot); - gpCrossHairTex = RwTextureRead("crosshair", nil); + gpCrossHairTex = RwTextureRead("target256", "target256m"); gpCrossHairRaster = RwTextureGetRaster(gpCrossHairTex); CTxdStore::PopCurrentTxd();