From 1991aa388b1c5992b7fd65710d44f968aef48e69 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Tue, 26 May 2020 18:25:34 +0300 Subject: [PATCH 1/3] Very basic compatibility with original sfx.raw/sdt --- src/audio/AudioLogic.cpp | 1259 ++------------ src/audio/AudioManager.h | 16 +- src/audio/AudioSamples.h | 3328 +++++-------------------------------- src/audio/PoliceRadio.cpp | 184 +- 4 files changed, 612 insertions(+), 4175 deletions(-) diff --git a/src/audio/AudioLogic.cpp b/src/audio/AudioLogic.cpp index de71355e..d2319a3f 100644 --- a/src/audio/AudioLogic.cpp +++ b/src/audio/AudioLogic.cpp @@ -253,24 +253,26 @@ 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(); @@ -661,10 +663,12 @@ 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); @@ -769,10 +773,11 @@ 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; @@ -819,7 +824,7 @@ cAudioManager::ProcessModelCarEngine(cVehicleParams *params) } } } - } + }*/ } @@ -2126,7 +2131,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; @@ -2138,7 +2143,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; @@ -2333,7 +2338,7 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params) } } } - +#ifdef GTA_TRAIN bool cAudioManager::ProcessTrainNoise(cVehicleParams *params) { @@ -2399,7 +2404,7 @@ cAudioManager::ProcessTrainNoise(cVehicleParams *params) } return true; } - +#endif bool cAudioManager::ProcessBoatEngine(cVehicleParams *params) { @@ -2466,7 +2471,7 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params) if (!m_sQueueSample.m_nVolume) return true; m_sQueueSample.m_nCounter = 40; - m_sQueueSample.m_nSampleIndex = SFX_POLICE_BOAT_ACCEL; + m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; m_sQueueSample.m_nFrequency += (m_sQueueSample.m_nEntityIndex * 65536) % 1000; m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_bIs2D = false; @@ -2491,7 +2496,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_POLICE_BOAT_IDLE; + m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; if (LastAccel > 20) { oneShotVol = LastVol; PlayOneShot(m_sQueueSample.m_nEntityIndex, SOUND_17, oneShotVol); @@ -2502,7 +2507,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_POLICE_BOAT_ACCEL; + m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; } LastVol = emittingVol; LastAccel = padAccelerate; @@ -2512,14 +2517,14 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params) m_sQueueSample.m_nFrequency = 11025; emittingVol = 45; m_sQueueSample.m_nCounter = 39; - m_sQueueSample.m_nSampleIndex = SFX_POLICE_BOAT_IDLE; + m_sQueueSample.m_nSampleIndex = SFX_FISHING_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_POLICE_BOAT_ACCEL; + m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; } } CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); @@ -3456,11 +3461,11 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_bReleasingSoundFlag = true; break; case WEAPONTYPE_M4: - m_sQueueSample.m_nSampleIndex = SFX_M16_LEFT; + m_sQueueSample.m_nSampleIndex = SFX_M60_LEFT; m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nCounter = iSound++; stereo = true; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_M16_LEFT); + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_M60_LEFT); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); m_sQueueSample.m_nReleasingVolumeModificator = 3; m_sQueueSample.m_fSpeedMultiplier = 0.0f; @@ -3555,7 +3560,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_M16_RELOAD; + m_sQueueSample.m_nSampleIndex = SFX_AK47_RELOAD; m_sQueueSample.m_nFrequency = 39243; break; case WEAPONTYPE_SHOTGUN: @@ -3567,8 +3572,8 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_AK47_RELOAD); break; case WEAPONTYPE_M4: - m_sQueueSample.m_nSampleIndex = SFX_M16_RELOAD; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_M16_RELOAD); + m_sQueueSample.m_nSampleIndex = SFX_AK47_RELOAD; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_AK47_RELOAD); break; case WEAPONTYPE_SNIPERRIFLE: m_sQueueSample.m_nSampleIndex = SFX_RIFLE_RELOAD; @@ -3728,7 +3733,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: @@ -3736,7 +3741,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) @@ -3747,7 +3752,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; @@ -3766,7 +3771,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; } @@ -3883,11 +3888,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; @@ -3895,10 +3900,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; } @@ -4187,7 +4192,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; @@ -4199,7 +4204,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; @@ -4467,368 +4472,6 @@ 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; @@ -4839,130 +4482,14 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) m_sQueueSample.m_nReleasingVolumeDivider = 3; m_sQueueSample.m_fSpeedMultiplier = 2.0f; break; - 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; + 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 = 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_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; + 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: @@ -4987,560 +4514,6 @@ 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 @@ -5623,53 +4596,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: @@ -5677,53 +4650,46 @@ cAudioManager::ProcessFrontEnd() m_sQueueSample.m_nSampleIndex = SFX_TIMER_BEEP; break; case SOUND_RACE_START_GO: - m_sQueueSample.m_nSampleIndex = SFX_PART_MISSION_COMPLETE; + m_sQueueSample.m_nSampleIndex = SFX_PART_MISSION_COMPLETE_LEFT; break; case SOUND_PART_MISSION_COMPLETE: - m_sQueueSample.m_nSampleIndex = SFX_PART_MISSION_COMPLETE; + m_sQueueSample.m_nSampleIndex = SFX_PART_MISSION_COMPLETE_LEFT; processedMission = true; break; case SOUND_FRONTEND_MENU_STARTING: - m_sQueueSample.m_nSampleIndex = SFX_START_BUTTON_LEFT; + m_sQueueSample.m_nSampleIndex = SFX_FE_HIGHLIGHT_LEFT; stereo = true; break; case SOUND_FRONTEND_MENU_COMPLETED: - m_sQueueSample.m_nSampleIndex = SFX_PAGE_CHANGE_AND_BACK_LEFT; + m_sQueueSample.m_nSampleIndex = SFX_FE_HIGHLIGHT_LEFT; stereo = true; break; case SOUND_FRONTEND_MENU_DENIED: - m_sQueueSample.m_nSampleIndex = SFX_HIGHLIGHT_LEFT; + m_sQueueSample.m_nSampleIndex = SFX_FE_HIGHLIGHT_LEFT; stereo = true; break; case SOUND_FRONTEND_MENU_SUCCESS: - 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; + m_sQueueSample.m_nSampleIndex = SFX_FE_SELECT_LEFT; stereo = true; 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_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_FRONTEND_FAIL: - m_sQueueSample.m_nSampleIndex = SFX_ERROR_LEFT; + m_sQueueSample.m_nSampleIndex = SFX_FE_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; } @@ -5741,11 +4707,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); } @@ -5775,7 +4741,7 @@ cAudioManager::ProcessFrontEnd() } } -void +/*void cAudioManager::ProcessCrane() { CCrane *crane = (CCrane *)m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_pEntity; @@ -5824,7 +4790,7 @@ cAudioManager::ProcessCrane() } } } -} +}*/ void cAudioManager::ProcessProjectiles() @@ -6037,7 +5003,7 @@ cAudioManager::ProcessFireHydrant() } } } - +#ifdef GTA_BRIDGE #pragma region BRIDGE const int bridgeIntensity = 400; @@ -6159,6 +5125,7 @@ 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 f53034fe..0b24c2e9 100644 --- a/src/audio/AudioManager.h +++ b/src/audio/AudioManager.h @@ -288,18 +288,17 @@ 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 ProcessCinemaScriptObject(uint8 sound); - void ProcessCrane(); - void ProcessDocksScriptObject(uint8 sound); + //void ProcessCrane(); bool ProcessEngineDamage(cVehicleParams *params); void ProcessEntity(int32 sound); void ProcessExplosions(int32 explosion); @@ -308,7 +307,6 @@ public: void ProcessFrontEnd(); void ProcessGarages(); bool ProcessHelicopter(cVehicleParams *params); - void ProcessHomeScriptObject(uint8 sound); void ProcessJumbo(cVehicleParams *); void ProcessJumboAccel(CPlane *plane); void ProcessJumboDecel(CPlane *plane); @@ -316,7 +314,6 @@ 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); @@ -326,17 +323,15 @@ 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); @@ -349,7 +344,6 @@ 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 937fe633..64c88f3b 100644 --- a/src/audio/AudioSamples.h +++ b/src/audio/AudioSamples.h @@ -12,96 +12,97 @@ 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, - SFX_ROAD_NOISE, - SFX_SKID, - SFX_GRAVEL_SKID, + SFX_CAR_STARTER, //23 + SFX_ROAD_NOISE, //24 + SFX_SKID, //25 + SFX_GRAVEL_SKID, //26 SFX_POLICE_SIREN_SLOW, - SFX_SIREN_FAST, + SFX_SIREN_FAST, //28 SFX_AMBULANCE_SIREN_SLOW, SFX_REVERSE_WARNING, SFX_ICE_CREAM_TUNE, - SFX_CAR_ALARM_1, - SFX_AIR_BRAKES, - SFX_SQUEAKY_BRAKES, - SFX_TYRE_BUMP, - SFX_TRAIN_FAR, - SFX_TRAIN_NEAR, + 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_FOOTSTEP_CONCRETE_1, SFX_FOOTSTEP_CONCRETE_2, SFX_FOOTSTEP_CONCRETE_3, SFX_FOOTSTEP_CONCRETE_4, SFX_FOOTSTEP_CONCRETE_5, - 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_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_COL_GRASS_1, SFX_COL_GRAVEL_1, SFX_COL_MUD_1, @@ -120,11 +121,8 @@ 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, - SFX_COL_PED_2, - SFX_COL_PED_3, - SFX_COL_PED_4, - SFX_COL_PED_5, + SFX_COL_PED_1, //115 + SFX_COL_PED_2, //116 SFX_COL_SAND_1, SFX_COL_WOOD_CRATES_1, SFX_COL_WOOD_CRATES_2, @@ -135,69 +133,79 @@ enum eSfxSample : uint32 SFX_COL_WOOD_BENCH_3, SFX_COL_WOOD_BENCH_4, SFX_COL_WOOD_SOLID_1, - SFX_COL_VEG_1, - SFX_COL_VEG_2, - SFX_COL_VEG_3, - SFX_COL_VEG_4, - SFX_COL_VEG_5, + 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_CONTAINER_1, SFX_COL_NEWS_VENDOR_1, SFX_COL_NEWS_VENDOR_2, SFX_COL_NEWS_VENDOR_3, - SFX_COL_CAR_1, - SFX_COL_CAR_2, - SFX_COL_CAR_3, - SFX_COL_CAR_4, - SFX_COL_CAR_5, + 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_CARDBOARD_1, SFX_COL_CARDBOARD_2, - SFX_COL_GATE, - SFX_SCRAPE_CAR_1, + SFX_COL_GATE, //143 + SFX_SCRAPE_CAR_1, //144 SFX_CRATE_SMASH, - SFX_GLASS_CRACK, - SFX_GLASS_SMASH, + SFX_GLASS_CRACK, //146 + SFX_GLASS_SMASH, //147 SFX_GLASS_SHARD_1, SFX_GLASS_SHARD_2, SFX_GLASS_SHARD_3, SFX_GLASS_SHARD_4, - 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_PED_ON_FIRE, //152 + SFX_CAR_ON_FIRE, //153 + SFX_RAIN, //154 + SFX_HURRICANE_MA, //155 SFX_BULLET_SHELL_HIT_GROUND_1, SFX_BULLET_SHELL_HIT_GROUND_2, - 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_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_WEVE_GOT, SFX_THERES, SFX_RESPOND_TO, - SFX_A_10_1, - SFX_A_10_2, + 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_CRIME_1, SFX_CRIME_2, SFX_CRIME_3, @@ -210,48 +218,20 @@ enum eSfxSample : uint32 SFX_CRIME_10, SFX_CRIME_11, SFX_CRIME_12, - 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_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_POLICE_RADIO_BLACK, SFX_POLICE_RADIO_WHITE, SFX_POLICE_RADIO_BLUE, @@ -262,93 +242,160 @@ 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_VAN, - SFX_POLICE_RADIO_TRUCK, - SFX_POLICE_RADIO_SALOON, - SFX_POLICE_RADIO_SPORTS_CAR, - SFX_POLICE_RADIO_BUGGY, - SFX_POLICE_RADIO_TAXI, - SFX_POLICE_RADIO_CRUISER, - SFX_POLICE_RADIO_BUS, SFX_POLICE_RADIO_2_DOOR, + SFX_POLICE_RADIO_TRUCK, SFX_POLICE_RADIO_FIRE_TRUCK, - SFX_POLICE_RADIO_BOAT, SFX_POLICE_RADIO_PICKUP, - SFX_POLICE_RADIO_ICE_CREAM_VAN, - SFX_POLICE_RADIO_LIMO, SFX_POLICE_RADIO_POLICE_CAR, - SFX_POLICE_RADIO_CONVERTIBLE, - SFX_POLICE_RADIO_SUBWAY_CAR, + SFX_POLICE_RADIO_BOAT, + SFX_POLICE_RADIO_BUGGY, + SFX_POLICE_RADIO_BUS, + SFX_POLICE_RADIO_COACH, + 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_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_TANK, - 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_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_JUMBO_DIST_FLY, - SFX_JUMBO_TAXI, - SFX_JUMBO_WHINE, - SFX_JUMBO_ENGINE, - SFX_JUMBO_RUMBLE, + SFX_JUMBO_TAXI, //241 + SFX_JUMBO_WHINE, //242 + SFX_JUMBO_ENGINE, //243 + SFX_JUMBO_RUMBLE, //244 SFX_JUMBO_LAND_WHEELS, - SFX_POLICE_BOAT_IDLE, - SFX_POLICE_BOAT_ACCEL, - SFX_POLICE_BOAT_THUMB_OFF, + SFX_BOAT_CRUISER_LOOP, //246 + SFX_BOAT_V12_LOOP, //247 SFX_BOAT_WATER_LOOP, SFX_BOAT_SPLASH_1, SFX_BOAT_SPLASH_2, SFX_FISHING_BOAT_IDLE, - 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_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_WOODEN_BOX_SMASH, SFX_CARDBOARD_BOX_SMASH, SFX_ERROR_FIRE_ROCKET_LAUNCHER, SFX_ERROR_FIRE_RIFLE, - SFX_TANK_TURRET, - SFX_CRANE_MAGNET, + SFX_TANK_TURRET, //263 SFX_BODY_LAND_AND_FALL, - SFX_BODY_LAND, - SFX_BOMB_BEEP, - SFX_TIMER_BEEP, - SFX_PART_MISSION_COMPLETE, - SFX_START_BUTTON_LEFT, - SFX_START_BUTTON_RIGHT, + SFX_BODY_LAND, //265 + SFX_BOMB_BEEP, //266 + SFX_TIMER_BEEP, //267 SFX_SUSPENSION_FAST_MOVE, SFX_SUSPENSION_SLOW_MOVE_LOOP, SFX_SHAG_SUSPENSION, - SFX_RADIO_CLICK, - SFX_INFO, + 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_CAR_ACCEL_1, SFX_CAR_AFTER_ACCEL_1, @@ -386,2679 +433,158 @@ enum eSfxSample : uint32 SFX_CAR_AFTER_ACCEL_9, SFX_CAR_FINGER_OFF_ACCEL_9, - 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, + 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, - // 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, + // something padded for more heli? + SFX_HELI_UNUSED_1, + SFX_HELI_UNUSED_2, + SFX_HELI_UNUSED_3, + SFX_HELI_UNUSED_4, - SFX_EXPLOSION_1, - SFX_BRIDGE_OPEN_WARNING, + 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_PAGER, // used to be ped comment on PS2 + // TODO: miami ped comments... THERE'S OVER 9000 - 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, + TOTAL_AUDIO_SAMPLES = 9941, NO_SAMPLE, // shorthands SAMPLEBANK_START = SFX_CAR_HORN_JEEP, - 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, + 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, }; diff --git a/src/audio/PoliceRadio.cpp b/src/audio/PoliceRadio.cpp index c8baec25..5843fd09 100644 --- a/src/audio/PoliceRadio.cpp +++ b/src/audio/PoliceRadio.cpp @@ -24,8 +24,6 @@ struct tPoliceRadioZone { }; tPoliceRadioZone ZoneSfx[NUMAUDIOZONES]; -char SubZo2Label[8]; -char SubZo3Label[8]; int32 g_nMissionAudioSfx = TOTAL_AUDIO_SAMPLES; int8 g_nMissionAudioPlayingStatus = 2; @@ -42,48 +40,22 @@ cAudioManager::InitialisePoliceRadioZones() strcpy(ZoneSfx[i].m_aName, name); \ ZoneSfx[i].m_nSampleIndex = sample; - 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); - */ + 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); #undef SETZONESFX - - strcpy(SubZo2Label, "SUB_ZO2"); - strcpy(SubZo3Label, "SUB_ZO3"); } void @@ -246,7 +218,7 @@ cAudioManager::ServicePoliceRadioChannel(int32 wantedLevel) if (!wantedLevel) { if (gSpecialSuspectLastSeenReport) { gSpecialSuspectLastSeenReport = 0; - } else if (((sample >= SFX_POLICE_RADIO_MESSAGE_NOISE_1) && (sample <= SFX_POLICE_RADIO_MESSAGE_NOISE_3)) || sample == TOTAL_AUDIO_SAMPLES) { + } else if (sample == SFX_POLICE_RADIO_MESSAGE_NOISE_1 || sample == TOTAL_AUDIO_SAMPLES) { bChannelOpen = false; processed = true; } @@ -257,8 +229,6 @@ 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; @@ -313,7 +283,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(m_anRandomTable[1] % 2 + SFX_A_10_1); + m_sPoliceRadioQueue.Add(SFX_A_10); 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; @@ -323,37 +293,31 @@ cAudioManager::SetupCrimeReport() } m_sPoliceRadioQueue.Add(m_sPoliceRadioQueue.crimes[i].type + SFX_CRIME_1 - 1); m_sPoliceRadioQueue.Add(SFX_IN); - if (sampleIndex == SFX_POLICE_RADIO_SHORESIDE_VALE && - (strcmp(zone->name, SubZo2Label) == 0 || strcmp(zone->name, SubZo3Label) == 0)) { + 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); - m_sPoliceRadioQueue.Add(SFX_EAST); - } 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); + 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; } } @@ -559,7 +523,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; @@ -578,7 +542,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; @@ -588,7 +552,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 @@ -631,12 +595,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; @@ -645,14 +609,7 @@ cAudioManager::SetupSuspectLastSeenReport() m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_SUSPECT); if (m_anRandomTable[3] % 2) m_sPoliceRadioQueue.Add(SFX_POLICE_RADIO_LAST_SEEN); -#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); + 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) @@ -731,34 +688,27 @@ 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); - if (sample == SFX_POLICE_RADIO_SHORESIDE_VALE && - (strcmp(zone->name, SubZo2Label) == 0 || - strcmp(zone->name, SubZo3Label) == 0)) { + 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); - m_sPoliceRadioQueue.Add(SFX_EAST); - } 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); + 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); -- 2.45.2 From 6a32981ba504d197ac3a3bd0cb4423f8e62b4ab2 Mon Sep 17 00:00:00 2001 From: Fire-Head Date: Wed, 27 May 2020 02:16:31 +0300 Subject: [PATCH 2/3] VC CParticle done --- src/control/Replay.h | 3 + src/core/Stats.cpp | 3 + src/core/Stats.h | 3 + src/core/config.h | 2 +- src/render/MBlur.h | 14 + src/render/Particle.cpp | 1503 +++++++++++++++++++++++---------- src/render/Particle.h | 32 +- src/render/ParticleMgr.cpp | 12 + src/render/ParticleMgr.h | 26 +- src/render/ParticleType.h | 17 +- src/render/Sprite.h | 3 + src/render/Weather.cpp | 2 +- src/render/Weather.h | 2 +- src/vehicles/Boat.cpp | 5 +- src/weapons/WeaponEffects.cpp | 2 +- 15 files changed, 1138 insertions(+), 491 deletions(-) diff --git a/src/control/Replay.h b/src/control/Replay.h index b369c13d..0d269316 100644 --- a/src/control/Replay.h +++ b/src/control/Replay.h @@ -11,6 +11,7 @@ class CVehicle; struct CReference; +enum tParticleType; struct CAddressInReplayBuffer { @@ -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(); -- 2.45.2 From 90947a608f514dab993163d8f2dc4f98666e5000 Mon Sep 17 00:00:00 2001 From: Fire-Head Date: Wed, 27 May 2020 03:18:02 +0300 Subject: [PATCH 3/3] fix linux build --- src/control/Replay.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/control/Replay.h b/src/control/Replay.h index 0d269316..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 @@ -11,7 +12,6 @@ class CVehicle; struct CReference; -enum tParticleType; struct CAddressInReplayBuffer { -- 2.45.2