diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp index c30306c8d..1ba4b81d5 100644 --- a/src/audio/AudioManager.cpp +++ b/src/audio/AudioManager.cpp @@ -287,11 +287,11 @@ cPedComments::Process() AudioManager.m_sQueueSample.m_nEmittingVolume = maxVolume; 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 = policeHeliIntensity; - break; + //case SFX_POLICE_HELI_1: + //case SFX_POLICE_HELI_2: + //case SFX_POLICE_HELI_3: + // AudioManager.m_sQueueSample.m_fSoundIntensity = policeHeliIntensity; + // break; default: AudioManager.m_sQueueSample.m_fSoundIntensity = defaultIntensity; break; @@ -299,10 +299,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; } @@ -740,5115 +740,2081 @@ cAudioManager::DoJumboVolOffset() const gJumboVolOffsetPercentage = m_anRandomTable[1] % 60; } -uint32 -cAudioManager::GetPlayerTalkSfx(int16 sound) +void +cAudioManager::GenerateIntegerRandomNumberTable() { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_DAMAGE: - GetPhrase(&sfx, &lastSfx, SFX_CLAUDE_HIGH_DAMAGE_GRUNT_1, 11); - break; - case SOUND_PED_HIT: - GetPhrase(&sfx, &lastSfx, SFX_CLAUDE_LOW_DAMAGE_GRUNT_1, 10); - break; - case SOUND_PED_LAND: - GetPhrase(&sfx, &lastSfx, SFX_CLAUDE_HIT_GROUND_GRUNT_1, 6); - break; - default: - sfx = NO_SAMPLE; - break; + for (int32 i = 0; i < ARRAY_SIZE(m_anRandomTable); i++) { + m_anRandomTable[i] = rand(); } - return sfx; } -uint32 -cAudioManager::GetCopTalkSfx(int16 sound) +char * +cAudioManager::Get3DProviderName(uint8 id) const { - uint32 sfx; - PedState pedState; - static uint32 lastSfx = NO_SAMPLE; - - if (sound == SOUND_PED_ARREST_COP) { - GetPhrase(&sfx, &lastSfx, SFX_COP_VOICE_1_ARREST_1, 6); - } else { - if (sound != SOUND_PED_PURSUIT_COP) { - return GetGenericMaleTalkSfx(sound); - } - - pedState = FindPlayerPed()->m_nPedState; - if (pedState == PED_ARRESTED || pedState == PED_DEAD || pedState == PED_DIE) - return NO_SAMPLE; - GetPhrase(&sfx, &lastSfx, SFX_COP_VOICE_1_CHASE_1, 7); - } - - return (SFX_COP_VOICE_2_ARREST_1 - SFX_COP_VOICE_1_ARREST_1) * (m_sQueueSample.m_nEntityIndex % 5) + sfx; + if (!m_bIsInitialised) + return nil; + if (id >= SampleManager.GetNum3DProvidersAvailable()) + return nil; + return SampleManager.Get3DProviderName(id); } -uint32 -cAudioManager::GetSwatTalkSfx(int16 sound) +uint8 +cAudioManager::GetCDAudioDriveLetter() const { - uint32 sfx; - PedState pedState; - static uint32 lastSfx = NO_SAMPLE; - - if (sound == SOUND_PED_ARREST_SWAT) { - GetPhrase(&sfx, &lastSfx, SFX_SWAT_VOICE_1_CHASE_1, 6); - } else { - if (sound != SOUND_PED_PURSUIT_SWAT) { - return GetGenericMaleTalkSfx(sound); - } - - pedState = FindPlayerPed()->m_nPedState; - if (pedState == PED_ARRESTED || pedState == PED_DEAD || pedState == PED_DIE) - return NO_SAMPLE; - GetPhrase(&sfx, &lastSfx, SFX_SWAT_VOICE_1_CHASE_1, 6); - } + if (m_bIsInitialised) + return SampleManager.GetCDAudioDriveLetter(); - return (SFX_SWAT_VOICE_2_CHASE_1 - SFX_SWAT_VOICE_1_CHASE_1) * (m_sQueueSample.m_nEntityIndex % 4) + sfx; + return 0; } -uint32 -cAudioManager::GetFBITalkSfx(int16 sound) +int8 +cAudioManager::GetCurrent3DProviderIndex() const { - uint32 sfx; - PedState pedState; - static uint32 lastSfx = NO_SAMPLE; - - if (sound == SOUND_PED_ARREST_FBI) { - GetPhrase(&sfx, &lastSfx, SFX_FBI_VOICE_1_CHASE_1, 6); - } else { - if (sound != SOUND_PED_PURSUIT_FBI) { - return GetGenericMaleTalkSfx(sound); - } - - pedState = FindPlayerPed()->m_nPedState; - if (pedState == PED_ARRESTED || pedState == PED_DEAD || pedState == PED_DIE) - return NO_SAMPLE; - GetPhrase(&sfx, &lastSfx, SFX_FBI_VOICE_1_CHASE_1, 6); - } + if (m_bIsInitialised) + return SampleManager.GetCurrent3DProviderIndex(); - return (SFX_FBI_VOICE_2_CHASE_1 - SFX_FBI_VOICE_1_CHASE_1) * (m_sQueueSample.m_nEntityIndex % 3) + sfx; + return -1; } -uint32 -cAudioManager::GetArmyTalkSfx(int16 sound) +float +cAudioManager::GetDistanceSquared(const CVector &v) const { - uint32 sfx; - PedState pedState; - static uint32 lastSfx = NO_SAMPLE; - - if (sound != SOUND_PED_PURSUIT_ARMY) { - return GetGenericMaleTalkSfx(sound); - } - - pedState = FindPlayerPed()->m_nPedState; - if (pedState == PED_ARRESTED || pedState == PED_DEAD || pedState == PED_DIE) - return NO_SAMPLE; - GetPhrase(&sfx, &lastSfx, SFX_ARMY_VOICE_1_CHASE_1, 15); + const CVector &c = TheCamera.GetPosition(); + return sq(v.x - c.x) + sq(v.y - c.y) + sq((v.z - c.z) * 0.2f); +} - return (SFX_ARMY_VOICE_2_CHASE_1 - SFX_ARMY_VOICE_1_CHASE_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; +int32 +cAudioManager::GetJumboTaxiFreq() const +{ + return (60.833f * m_sQueueSample.m_fDistance) + 22050; } -uint32 -cAudioManager::GetMedicTalkSfx(int16 sound) +bool +cAudioManager::GetMissionAudioLoadingStatus() const { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + if (m_bIsInitialised) + return m_sMissionAudio.m_nLoadingStatus; - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_MEDIC_VOICE_1_GUN_PANIC_1, 5); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_MEDIC_VOICE_1_CARJACKED_1, 5); - break; - case SOUND_PED_HEALING: - GetPhrase(&sfx, &lastSfx, SFX_MEDIC_VOICE_1_AT_VICTIM_1, 12); - break; - case SOUND_PED_LEAVE_VEHICLE: - GetPhrase(&sfx, &lastSfx, SFX_MEDIC_VOICE_1_GET_OUT_VAN_CHAT_1, 9); - break; - case SOUND_PED_FLEE_RUN: - GetPhrase(&sfx, &lastSfx, SFX_MEDIC_VOICE_1_RUN_FROM_FIGHT_1, 6); - break; - default: - return GetGenericMaleTalkSfx(sound); - } - return (SFX_MEDIC_VOICE_2_GUN_PANIC_1 - SFX_MEDIC_VOICE_1_GUN_PANIC_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; + return true; } -uint32 -cAudioManager::GetFiremanTalkSfx(int16 sound) +uint8 +cAudioManager::GetNum3DProvidersAvailable() const { - return GetGenericMaleTalkSfx(sound); + if (m_bIsInitialised) + return SampleManager.GetNum3DProvidersAvailable(); + return 0; } -uint32 -cAudioManager::GetNormalMaleTalkSfx(int16 sound) +int32 +cAudioManager::GetPedCommentSfx(CPed *ped, int32 sound) { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + return NO_SAMPLE; + // TODO(MIAMI): just making this compile + /* + if (ped->IsPlayer()) + return GetPlayerTalkSfx(sound); - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_NORMAL_MALE_GUN_PANIC_1, 7); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_NORMAL_MALE_CARJACKED_1, 7); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_NORMAL_MALE_DODGE_1, 9); - break; - case SOUND_PED_FLEE_RUN: - GetPhrase(&sfx, &lastSfx, SFX_NORMAL_MALE_RUN_FROM_FIGHT_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_NORMAL_MALE_DRIVER_ABUSE_1, 12); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_NORMAL_MALE_EYING_1, 8); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_NORMAL_MALE_SHOCKED_1, 10); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_NORMAL_MALE_CHAT_1, 25); - break; + switch (ped->GetModelIndex()) { + case MI_COP: + return GetCopTalkSfx(sound); + case MI_SWAT: + return GetSwatTalkSfx(sound); + case MI_FBI: + return GetFBITalkSfx(sound); + case MI_ARMY: + return GetArmyTalkSfx(sound); + case MI_MEDIC: + return GetMedicTalkSfx(sound); + case MI_FIREMAN: + return GetFiremanTalkSfx(sound); + case MI_MALE01: + return GetNormalMaleTalkSfx(sound); + case MI_TAXI_D: + return GetTaxiDriverTalkSfx(sound); + case MI_PIMP: + return GetPimpTalkSfx(sound); + case MI_GANG01: + case MI_GANG02: + return GetMafiaTalkSfx(sound); + case MI_GANG03: + case MI_GANG04: + return GetTriadTalkSfx(sound); + case MI_GANG05: + case MI_GANG06: + return GetDiabloTalkSfx(sound); + case MI_GANG07: + case MI_GANG08: + return GetYakuzaTalkSfx(sound); + case MI_GANG09: + case MI_GANG10: + return GetYardieTalkSfx(sound); + case MI_GANG11: + case MI_GANG12: + return GetColumbianTalkSfx(sound); + case MI_GANG13: + case MI_GANG14: + return GetHoodTalkSfx(sound); + case MI_CRIMINAL01: + return GetBlackCriminalTalkSfx(sound); + case MI_CRIMINAL02: + return GetWhiteCriminalTalkSfx(sound); + case MI_SPECIAL01: + case MI_SPECIAL02: + case MI_SPECIAL03: + case MI_SPECIAL04: + return GetSpecialCharacterTalkSfx(ped->GetModelIndex(), sound); + case MI_MALE02: + return GetMaleNo2TalkSfx(sound); + case MI_MALE03: + case MI_P_MAN1: + case MI_P_MAN2: + return GetBlackProjectMaleTalkSfx(sound, ped->GetModelIndex()); + case MI_FATMALE01: + return GetWhiteFatMaleTalkSfx(sound); + case MI_FATMALE02: + return GetBlackFatMaleTalkSfx(sound); + case MI_FEMALE01: + return GetBlackCasualFemaleTalkSfx(sound); + case MI_FEMALE02: + case MI_CAS_WOM: + return GetWhiteCasualFemaleTalkSfx(sound); + case MI_FEMALE03: + return GetFemaleNo3TalkSfx(sound); + case MI_FATFEMALE01: + return GetBlackFatFemaleTalkSfx(sound); + case MI_FATFEMALE02: + return GetWhiteFatFemaleTalkSfx(sound); + case MI_PROSTITUTE: + return GetBlackFemaleProstituteTalkSfx(sound); + case MI_PROSTITUTE2: + return GetWhiteFemaleProstituteTalkSfx(sound); + case MI_P_WOM1: + return GetBlackProjectFemaleOldTalkSfx(sound); + case MI_P_WOM2: + return GetBlackProjectFemaleYoungTalkSfx(sound); + case MI_CT_MAN1: + return GetChinatownMaleOldTalkSfx(sound); + case MI_CT_MAN2: + return GetChinatownMaleYoungTalkSfx(sound); + case MI_CT_WOM1: + return GetChinatownFemaleOldTalkSfx(sound); + case MI_CT_WOM2: + return GetChinatownFemaleYoungTalkSfx(sound); + case MI_LI_MAN1: + case MI_LI_MAN2: + return GetLittleItalyMaleTalkSfx(sound); + case MI_LI_WOM1: + return GetLittleItalyFemaleOldTalkSfx(sound); + case MI_LI_WOM2: + return GetLittleItalyFemaleYoungTalkSfx(sound); + case MI_DOCKER1: + return GetWhiteDockerMaleTalkSfx(sound); + case MI_DOCKER2: + return GetBlackDockerMaleTalkSfx(sound); + case MI_SCUM_MAN: + return GetScumMaleTalkSfx(sound); + case MI_SCUM_WOM: + return GetScumFemaleTalkSfx(sound); + case MI_WORKER1: + return GetWhiteWorkerMaleTalkSfx(sound); + case MI_WORKER2: + return GetBlackWorkerMaleTalkSfx(sound); + case MI_B_MAN1: + case MI_B_MAN3: + return GetBusinessMaleYoungTalkSfx(sound, ped->GetModelIndex()); + case MI_B_MAN2: + return GetBusinessMaleOldTalkSfx(sound); + case MI_B_WOM1: + case MI_B_WOM2: + return GetWhiteBusinessFemaleTalkSfx(sound, ped->GetModelIndex()); + case MI_B_WOM3: + return GetBlackBusinessFemaleTalkSfx(sound); + case MI_MOD_MAN: + return GetSupermodelMaleTalkSfx(sound); + case MI_MOD_WOM: + return GetSupermodelFemaleTalkSfx(sound); + case MI_ST_MAN: + return GetStewardMaleTalkSfx(sound); + case MI_ST_WOM: + return GetStewardFemaleTalkSfx(sound); + case MI_FAN_MAN1: + case MI_FAN_MAN2: + return GetFanMaleTalkSfx(sound, ped->GetModelIndex()); + case MI_FAN_WOM: + return GetFanFemaleTalkSfx(sound); + case MI_HOS_MAN: + return GetHospitalMaleTalkSfx(sound); + case MI_HOS_WOM: + return GetHospitalFemaleTalkSfx(sound); + case MI_CONST1: + return GetWhiteConstructionWorkerTalkSfx(sound); + case MI_CONST2: + return GetBlackConstructionWorkerTalkSfx(sound); + case MI_SHOPPER1: + case MI_SHOPPER2: + case MI_SHOPPER3: + return GetShopperFemaleTalkSfx(sound, ped->GetModelIndex()); + case MI_STUD_MAN: + return GetStudentMaleTalkSfx(sound); + case MI_STUD_WOM: + return GetStudentFemaleTalkSfx(sound); + case MI_CAS_MAN: + return GetCasualMaleOldTalkSfx(sound); default: return GetGenericMaleTalkSfx(sound); } - return sfx; +*/ } -uint32 -cAudioManager::GetTaxiDriverTalkSfx(int16 sound) +void +cAudioManager::GetPhrase(uint32 *phrase, uint32 *prevPhrase, uint32 sample, uint32 maxOffset) const { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + *phrase = sample + m_anRandomTable[m_sQueueSample.m_nEntityIndex & 3] % maxOffset; - if (sound == SOUND_PED_CAR_JACKED) { - GetPhrase(&sfx, &lastSfx, SFX_ASIAN_TAXI_DRIVER_VOICE_1_CARJACKED_1, 7); - } else { - if (sound != SOUND_PED_CAR_COLLISION) - return GetGenericMaleTalkSfx(sound); - GetPhrase(&sfx, &lastSfx, SFX_ASIAN_TAXI_DRIVER_VOICE_1_DRIVER_ABUSE_1, 6); - } - return (SFX_ASIAN_TAXI_DRIVER_VOICE_2_DRIVER_ABUSE_1 - SFX_ASIAN_TAXI_DRIVER_VOICE_1_DRIVER_ABUSE_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; + // check if the same sfx like last time, if yes, then try use next one, + // if exceeded range, then choose first available sample + if (*phrase == *prevPhrase && ++*phrase >= sample + maxOffset) + *phrase = sample; + *prevPhrase = *phrase; } -uint32 -cAudioManager::GetPimpTalkSfx(int16 sound) +float +cAudioManager::GetVehicleDriveWheelSkidValue(uint8 wheel, CAutomobile *automobile, cTransmission *transmission, float velocityChange) { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_UP: - GetPhrase(&sfx, &lastSfx, SFX_PIMP_GUN_COOL_1, 7); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_PIMP_CARJACKED_1, 4); - break; - case SOUND_PED_DEFEND: - GetPhrase(&sfx, &lastSfx, SFX_PIMP_FIGHT_1, 9); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_PIMP_DODGE_1, 6); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_PIMP_DRIVER_ABUSE_1, 5); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_PIMP_SHOCKED_1, 2); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_PIMP_CHAT_1, 17); - break; - default: - return GetGenericMaleTalkSfx(sound); - } - return sfx; -} + tWheelState wheelState; + float relativeVelChange; + float gasPedalAudio = automobile->m_fGasPedalAudio; + float modificator; + float velChange; + float relativeVel; -uint32 -cAudioManager::GetMafiaTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + wheelState = automobile->m_aWheelState[wheel]; + if (wheelState == WHEEL_STATE_SPINNING && gasPedalAudio > 0.4f) { + relativeVelChange = (gasPedalAudio - 0.4f) * 1.25f; - switch (sound) { - case SOUND_PED_CAR_JACKING: - GetPhrase(&sfx, &lastSfx, SFX_MAFIA_MALE_VOICE_1_CARJACKING_1, 2); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_MAFIA_MALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_MAFIA_MALE_VOICE_1_FIGHT_1, 5); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_MAFIA_MALE_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_MAFIA_MALE_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_MAFIA_MALE_VOICE_1_EYING_1, 3); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_MAFIA_MALE_VOICE_1_CHAT_1, 7); - break; - default: - return GetGenericMaleTalkSfx(sound); + } else if (wheelState == WHEEL_STATE_SKIDDING) { + relativeVelChange = Min(1.0f, Abs(velocityChange) / transmission->fMaxVelocity); + } else if (wheelState == WHEEL_STATE_FIXED) { + modificator = 0.4f; + relativeVelChange = gasPedalAudio; + if (relativeVelChange > 0.4f) { + relativeVelChange = relativeVelChange - 0.4f; + modificator = 5.f / 3.f; + } + velChange = Abs(velocityChange); + if (relativeVelChange > 0.4f) + relativeVelChange = relativeVelChange * modificator; + if (velChange > 0.04f) { + relativeVel = Min(1.0f, velChange / transmission->fMaxVelocity); + } else { + relativeVel = 0.0f; + } + if (relativeVel >= relativeVelChange) + relativeVelChange = relativeVel; + } else { + relativeVelChange = 0.0f; } - return (SFX_MAFIA_MALE_VOICE_2_DRIVER_ABUSE_1 - SFX_MAFIA_MALE_VOICE_1_DRIVER_ABUSE_1) * (m_sQueueSample.m_nEntityIndex % 3) + sfx; -} - -uint32 -cAudioManager::GetTriadTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - switch (sound) { - case SOUND_PED_HANDS_UP: - GetPhrase(&sfx, &lastSfx, SFX_TRIAD_MALE_VOICE_1_GUN_COOL_1, 3); - break; - case SOUND_PED_CAR_JACKING: - GetPhrase(&sfx, &lastSfx, SFX_TRIAD_MALE_VOICE_1_CARJACKING_1, 2); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_TRIAD_MALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_TRIAD_MALE_VOICE_1_FIGHT_1, 5); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_TRIAD_MALE_VOICE_1_DODGE_1, 4); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_TRIAD_MALE_VOICE_1_DRIVER_ABUSE_1, 7); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_TRIAD_MALE_VOICE_1_EYING_1, 3); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_TRIAD_MALE_VOICE_1_CHAT_1, 8); - break; - default: - return GetGenericMaleTalkSfx(sound); - } - return sfx; + return Max(relativeVelChange, Min(1.0f, Abs(automobile->m_vecTurnSpeed.z) * 20.0f)); } -uint32 -cAudioManager::GetDiabloTalkSfx(int16 sound) +float +cAudioManager::GetVehicleNonDriveWheelSkidValue(uint8 wheel, CAutomobile *automobile, cTransmission *transmission, float velocityChange) { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + float relativeVelChange; - switch (sound) { - case SOUND_PED_HANDS_UP: - GetPhrase(&sfx, &lastSfx, SFX_DIABLO_MALE_VOICE_1_GUN_COOL_1, 4); - break; - case SOUND_PED_HANDS_COWER: - sound = SOUND_PED_FLEE_SPRINT; - return GetGenericMaleTalkSfx(sound); - break; - case SOUND_PED_CAR_JACKING: - GetPhrase(&sfx, &lastSfx, SFX_DIABLO_MALE_VOICE_1_CARJACKING_1, 2); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_DIABLO_MALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_DIABLO_MALE_VOICE_1_FIGHT_1, 4); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_DIABLO_MALE_VOICE_1_DODGE_1, 4); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_DIABLO_MALE_VOICE_1_DRIVER_ABUSE_1, 5); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_DIABLO_MALE_VOICE_1_EYING_1, 4); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_DIABLO_MALE_VOICE_1_CHAT_1, 5); - break; - default: - return GetGenericMaleTalkSfx(sound); + if (automobile->m_aWheelState[wheel] == 2) { + relativeVelChange = Min(1.0f, Abs(velocityChange) / transmission->fMaxVelocity); + } else { + relativeVelChange = 0.0f; } - return (SFX_DIABLO_MALE_VOICE_2_CHAT_1 - SFX_DIABLO_MALE_VOICE_1_CHAT_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; -} - -uint32 -cAudioManager::GetYakuzaTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - switch (sound) { - case SOUND_PED_CAR_JACKING: - GetPhrase(&sfx, &lastSfx, SFX_YAKUZA_MALE_VOICE_1_CARJACKING_1, 2); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_YAKUZA_MALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_YAKUZA_MALE_VOICE_1_FIGHT_1, 5); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_YAKUZA_MALE_VOICE_1_DODGE_1, 4); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_YAKUZA_MALE_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_YAKUZA_MALE_VOICE_1_CHAT_1, 5); - break; - default: - return GetGenericMaleTalkSfx(sound); - } - return (SFX_YAKUZA_MALE_VOICE_2_DRIVER_ABUSE_1 - SFX_YAKUZA_MALE_VOICE_1_DRIVER_ABUSE_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; + return Max(relativeVelChange, Min(1.0f, Abs(automobile->m_vecTurnSpeed.z) * 20.0f)); } -uint32 -cAudioManager::GetYardieTalkSfx(int16 sound) +bool +cAudioManager::HasAirBrakes(int32 model) const { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_UP: - sfx = SFX_YARDIE_MALE_VOICE_1_GUN_COOL_1; - break; - case SOUND_PED_CAR_JACKING: - GetPhrase(&sfx, &lastSfx, SFX_YARDIE_MALE_VOICE_1_CARJACKING_1, 2); - break; - case SOUND_PED_CAR_JACKED: - sfx = SFX_YARDIE_MALE_VOICE_1_CARJACKED_1; - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_YARDIE_MALE_VOICE_1_FIGHT_1, 6); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_YARDIE_MALE_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_YARDIE_MALE_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_YARDIE_MALE_VOICE_1_EYING_1, 2); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_YARDIE_MALE_VOICE_1_CHAT_1, 8); - break; - default: - return GetGenericMaleTalkSfx(sound); - } - return (SFX_YARDIE_MALE_VOICE_2_DRIVER_ABUSE_1 - SFX_YARDIE_MALE_VOICE_1_DRIVER_ABUSE_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; + return model == LINERUN || model == FIRETRUK || model == TRASH || model == BUS || model == COACH; } -uint32 -cAudioManager::GetColumbianTalkSfx(int16 sound) +void +cAudioManager::Initialise() { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_CAR_JACKING: - GetPhrase(&sfx, &lastSfx, SFX_COLUMBIAN_MALE_VOICE_1_CARJACKING_1, 2); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_COLUMBIAN_MALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_COLUMBIAN_MALE_VOICE_1_FIGHT_1, 5); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_COLUMBIAN_MALE_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_COLUMBIAN_MALE_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_COLUMBIAN_MALE_VOICE_1_EYING_1, 2); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_COLUMBIAN_MALE_VOICE_1_CHAT_1, 5); - break; - default: - return GetGenericMaleTalkSfx(sound); + if (!m_bIsInitialised) { + PreInitialiseGameSpecificSetup(); + m_bIsInitialised = SampleManager.Initialise(); + if (m_bIsInitialised) { + m_nActiveSamples = SampleManager.GetMaximumSupportedChannels(); + if (m_nActiveSamples <= 1) { + Terminate(); + } else { + --m_nActiveSamples; + PostInitialiseGameSpecificSetup(); + InitialisePoliceRadioZones(); + InitialisePoliceRadio(); + MusicManager.Initialise(); + } + } } - return (SFX_COLUMBIAN_MALE_VOICE_2_DRIVER_ABUSE_1 - SFX_COLUMBIAN_MALE_VOICE_1_DRIVER_ABUSE_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; } -uint32 -cAudioManager::GetHoodTalkSfx(int16 sound) +void +cAudioManager::InterrogateAudioEntities() { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_UP: - GetPhrase(&sfx, &lastSfx, SFX_HOOD_MALE_VOICE_1_GUN_COOL_1, 5); - break; - case SOUND_PED_CAR_JACKING: - GetPhrase(&sfx, &lastSfx, SFX_HOOD_MALE_VOICE_1_CARJACKING_1, 2); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_HOOD_MALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_HOOD_MALE_VOICE_1_FIGHT_1, 6); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_HOOD_MALE_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_HOOD_MALE_VOICE_1_DRIVER_ABUSE_1, 7); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_HOOD_MALE_VOICE_1_EYING_1, 2); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_HOOD_MALE_VOICE_1_CHAT_1, 6); - break; - - default: - return GetGenericMaleTalkSfx(sound); - break; + for (int32 i = 0; i < m_nAudioEntitiesTotal; i++) { + ProcessEntity(m_anAudioEntityIndices[i]); + m_asAudioEntities[m_anAudioEntityIndices[i]].m_AudioEvents = 0; } - return (SFX_HOOD_MALE_VOICE_2_DRIVER_ABUSE_1 - SFX_HOOD_MALE_VOICE_1_DRIVER_ABUSE_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; } -uint32 -cAudioManager::GetBlackCriminalTalkSfx(int16 sound) +bool +cAudioManager::IsAudioInitialised() const { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_UP: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_CRIMINAL_VOICE_1_GUN_COOL_1, 4); - break; - case SOUND_PED_CAR_JACKING: - sfx = SFX_BLACK_CRIMINAL_VOICE_1_CARJACKING_1; - break; - case SOUND_PED_MUGGING: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_CRIMINAL_VOICE_1_MUGGING_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_CRIMINAL_VOICE_1_FIGHT_1, 5); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_CRIMINAL_VOICE_1_DODGE_1, 6); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_CRIMINAL_VOICE_1_DRIVER_ABUSE_1, 5); - break; - default: - return GetGenericMaleTalkSfx(sound); - break; - } - return sfx; + return m_bIsInitialised; } -uint32 -cAudioManager::GetWhiteCriminalTalkSfx(int16 sound) +bool +cAudioManager::IsMissionAudioSampleFinished() { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + if (m_bIsInitialised) + return m_sMissionAudio.m_nPlayStatus == PLAY_STATUS_FINISHED; - switch (sound) { - case SOUND_PED_HANDS_UP: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_CRIMINAL_VOICE_1_GUN_COOL_1, 3); - break; - case SOUND_PED_CAR_JACKING: - sfx = SFX_WHITE_CRIMINAL_VOICE_1_CARJACKING_1; - break; - case SOUND_PED_MUGGING: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_CRIMINAL_VOICE_1_MUGGING_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_CRIMINAL_VOICE_1_FIGHT_1, 4); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_CRIMINAL_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_CRIMINAL_VOICE_1_DRIVER_ABUSE_1, 4); - break; - default: - return GetGenericMaleTalkSfx(sound); - break; - } - return sfx; + static int32 cPretendFrame = 1; + + return (cPretendFrame++ & 63) == 0; } -uint32 -cAudioManager::GetMaleNo2TalkSfx(int16 sound) +bool +cAudioManager::IsMP3RadioChannelAvailable() const { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + if (m_bIsInitialised) + return SampleManager.IsMP3RadioChannelAvailable(); - switch (sound) { - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_CASUAL_MALE_OLD_VOICE_1_CARJACKED_1, 3); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_CASUAL_MALE_OLD_VOICE_1_MUGGED_1, 4); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_CASUAL_MALE_OLD_VOICE_1_FIGHT_1, 4); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_CASUAL_MALE_OLD_VOICE_1_DODGE_1, 4); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_CASUAL_MALE_OLD_VOICE_1_DRIVER_ABUSE_1, 7); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_CASUAL_MALE_OLD_VOICE_1_EYING_1, 5); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_CASUAL_MALE_OLD_VOICE_1_CHAT_1, 7); - break; - default: - return GetGenericMaleTalkSfx(sound); - } - return sfx; + return false; } -uint32 -cAudioManager::GetBlackProjectMaleTalkSfx(int16 sound, int32 model) +bool +cAudioManager::MissionScriptAudioUsesPoliceChannel(int32 soundMission) const { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_UP: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_MALE_VOICE_1_GUN_COOL_1, 3); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_MALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_MALE_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_MALE_VOICE_1_FIGHT_1, 6); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_MALE_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_MALE_VOICE_1_DRIVER_ABUSE_1, 7); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_MALE_VOICE_1_EYING_1, 3); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_MALE_VOICE_1_CHAT_1, 6); + switch (soundMission) { + case STREAMED_SOUND_MISSION_J6_D: + case STREAMED_SOUND_MISSION_T4_A: + case STREAMED_SOUND_MISSION_S1_H: + case STREAMED_SOUND_MISSION_S3_B: + case STREAMED_SOUND_MISSION_EL3_A: + case STREAMED_SOUND_MISSION_A3_A: + case STREAMED_SOUND_MISSION_A5_A: + case STREAMED_SOUND_MISSION_K1_A: + case STREAMED_SOUND_MISSION_R1_A: + case STREAMED_SOUND_MISSION_R5_A: + case STREAMED_SOUND_MISSION_LO2_A: + case STREAMED_SOUND_MISSION_LO6_A: + return true; default: - return GetGenericMaleTalkSfx(sound); + return false; } - -// TODO(MIAMI): just making this compile -// if (model == MI_P_MAN2) -// sfx += (SFX_BLACK_PROJECT_MALE_VOICE_2_DRIVER_ABUSE_1 - SFX_BLACK_PROJECT_MALE_VOICE_1_DRIVER_ABUSE_1); - return sfx; } -uint32 -cAudioManager::GetWhiteFatMaleTalkSfx(int16 sound) +void +cAudioManager::PlayLoadedMissionAudio() { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_FAT_MALE_VOICE_1_CARJACKED_1, 3); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_FAT_MALE_VOICE_1_MUGGED_1, 3); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_FAT_MALE_VOICE_1_DODGE_1, 9); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_FAT_MALE_VOICE_1_DRIVER_ABUSE_1, 9); - break; - case SOUND_PED_WAIT_DOUBLEBACK: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_FAT_MALE_VOICE_1_LOST_1, 2); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_FAT_MALE_VOICE_1_CHAT_1, 9); - default: - return GetGenericMaleTalkSfx(sound); + if (m_bIsInitialised && m_sMissionAudio.m_nSampleIndex != NO_SAMPLE && m_sMissionAudio.m_nLoadingStatus == LOADING_STATUS_LOADED && + !m_sMissionAudio.m_nPlayStatus) { + m_sMissionAudio.m_bIsPlayed = true; } - return sfx; } -uint32 -cAudioManager::GetBlackFatMaleTalkSfx(int16 sound) +void +cAudioManager::PlayOneShot(int32 index, int16 sound, float vol) { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + static const uint8 OneShotPriority[] = {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 5, 5, 3, 5, 2, 2, 1, 1, 3, 1, 3, 3, 1, 1, 1, 4, 4, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 3, 2, 2, 2, 2, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 3, 1, 1, 1, 9, + 2, 2, 0, 0, 0, 0, 3, 3, 5, 1, 1, 1, 1, 3, 4, 7, 6, 6, 6, 6, 1, 3, 4, 3, 4, 2, 1, 3, 5, 4, 6, 6, 1, 3, + 1, 1, 1, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - switch (sound) { - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_FAT_MALE_VOICE_1_CARJACKED_1, 4); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_FAT_MALE_VOICE_1_MUGGED_1, 3); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_FAT_MALE_VOICE_1_DODGE_1, 7); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_FAT_MALE_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_WAIT_DOUBLEBACK: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_FAT_MALE_VOICE_1_LOST_1, 3); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_FAT_MALE_VOICE_1_CHAT_1, 8); - break; - default: - return GetGenericMaleTalkSfx(sound); + if (m_bIsInitialised) { + if (index >= 0 && index < totalAudioEntitiesSlots) { + tAudioEntity &entity = m_asAudioEntities[index]; + if (entity.m_bIsUsed) { + if (sound < SOUND_TOTAL_SOUNDS) { + if (entity.m_nType == AUDIOTYPE_SCRIPTOBJECT) { + if (m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal < ARRAY_SIZE(m_sAudioScriptObjectManager.m_anScriptObjectEntityIndices)) { + entity.m_awAudioEvent[0] = sound; + entity.m_AudioEvents = 1; + m_sAudioScriptObjectManager.m_anScriptObjectEntityIndices[m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal++] = index; + } + } else { + int32 i = 0; + while (true) { + if (i >= entity.m_AudioEvents) { + if (entity.m_AudioEvents < ARRAY_SIZE(entity.m_awAudioEvent)) { + entity.m_awAudioEvent[i] = sound; + entity.m_afVolume[i] = vol; + ++entity.m_AudioEvents; + } + return; + } + if (OneShotPriority[entity.m_awAudioEvent[i]] > OneShotPriority[sound]) + break; + ++i; + } + if (i < NUM_AUDIOENTITY_EVENTS - 1) { + memmove(&entity.m_awAudioEvent[i + 1], &entity.m_awAudioEvent[i], (NUM_AUDIOENTITY_EVENTS - 1 - i) * NUM_AUDIOENTITY_EVENTS / 2); + memmove(&entity.m_afVolume[i + 1], &entity.m_afVolume[i], (NUM_AUDIOENTITY_EVENTS - 1 - i) * NUM_AUDIOENTITY_EVENTS); + } + entity.m_awAudioEvent[i] = sound; + entity.m_afVolume[i] = vol; + if (entity.m_AudioEvents < ARRAY_SIZE(entity.m_awAudioEvent)) + ++entity.m_AudioEvents; + } + } + } + } } - return sfx; } -uint32 -cAudioManager::GetBlackCasualFemaleTalkSfx(int16 sound) +void +cAudioManager::PlayerJustGotInCar() const { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_1_VOICE_1_GUN_PANIC_1, 2); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_1_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_1_VOICE_1_MUGGED_1, 3); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_1_VOICE_1_DODGE_1, 6); - break; - case SOUND_PED_FLEE_RUN: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_1_VOICE_1_RUN_FROM_FIGHT_1, 2); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_1_VOICE_1_DRIVER_ABUSE_1, 7); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_1_VOICE_1_SHOCKED_1, 4); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_1_VOICE_1_CHAT_1, 8); - break; - default: - return GetGenericFemaleTalkSfx(sound); + if (m_bIsInitialised) { + bPlayerJustEnteredCar = true; } - return sfx; } -uint32 -cAudioManager::GetWhiteCasualFemaleTalkSfx(int16 sound) +void +cAudioManager::PlayerJustLeftCar(void) const { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_CASUAL_FEMALE_VOICE_1_GUN_PANIC_1, 2); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_CASUAL_FEMALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ROBBED: - sfx = SFX_WHITE_CASUAL_FEMALE_VOICE_1_MUGGED_1; - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_CASUAL_FEMALE_VOICE_1_DODGE_1, 3); - break; - case SOUND_PED_FLEE_RUN: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_CASUAL_FEMALE_VOICE_1_RUN_FROM_FIGHT_1, 2); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_CASUAL_FEMALE_VOICE_1_DRIVER_ABUSE_1, 8); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_CASUAL_FEMALE_VOICE_1_SHOCKED_1, 2); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_CASUAL_FEMALE_VOICE_1_CHAT_1, 4); - break; - default: - return GetGenericFemaleTalkSfx(sound); - } - return sfx; + // UNUSED: This is a perfectly empty function. } -uint32 -cAudioManager::GetFemaleNo3TalkSfx(int16 sound) +void +cAudioManager::PostInitialiseGameSpecificSetup() { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + m_nFireAudioEntity = CreateEntity(AUDIOTYPE_FIRE, &gFireManager); + if (m_nFireAudioEntity >= 0) + SetEntityStatus(m_nFireAudioEntity, 1); - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_3_VOICE_1_GUN_PANIC_1, 5); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_3_VOICE_1_CARJACKED_1, 3); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_3_VOICE_1_MUGGED_1, 3); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_3_VOICE_1_DODGE_1, 6); - break; - case SOUND_PED_FLEE_RUN: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_3_VOICE_1_RUN_FROM_FIGHT_1, 4); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_3_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_3_VOICE_1_SHOCKED_1, 4); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_FEMALE_3_VOICE_1_CHAT_1, 5); - break; - default: - return GetGenericFemaleTalkSfx(sound); - } - return sfx; -} + m_nCollisionEntity = CreateEntity(AUDIOTYPE_COLLISION, (void *)1); + if (m_nCollisionEntity >= 0) + SetEntityStatus(m_nCollisionEntity, 1); -uint32 -cAudioManager::GetBlackFatFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + m_nFrontEndEntity = CreateEntity(AUDIOTYPE_FRONTEND, (void *)1); + if (m_nFrontEndEntity >= 0) + SetEntityStatus(m_nFrontEndEntity, 1); - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_FAT_FEMALE_VOICE_1_GUN_PANIC_1, 4); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_FAT_FEMALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_FAT_FEMALE_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_FAT_FEMALE_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_FAT_FEMALE_VOICE_1_SHOCKED_1, 5); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_FAT_FEMALE_VOICE_1_CHAT_1, 7); - break; - default: - return GetGenericFemaleTalkSfx(sound); - } - return sfx; -} + m_nProjectileEntity = CreateEntity(AUDIOTYPE_PROJECTILE, (void *)1); + if (m_nProjectileEntity >= 0) + SetEntityStatus(m_nProjectileEntity, 1); -uint32 -cAudioManager::GetWhiteFatFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + m_nWaterCannonEntity = CreateEntity(AUDIOTYPE_WATERCANNON, (void *)1); + if (m_nWaterCannonEntity >= 0) + SetEntityStatus(m_nWaterCannonEntity, 1); - switch (sound) { - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_FAT_FEMALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_FAT_FEMALE_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_FAT_FEMALE_VOICE_1_DODGE_1, 6); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_FAT_FEMALE_VOICE_1_DRIVER_ABUSE_1, 8); - break; - case SOUND_PED_WAIT_DOUBLEBACK: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_FAT_FEMALE_VOICE_1_LOST_1, 2); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_FAT_FEMALE_VOICE_1_SHOCKED_1, 4); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_FAT_FEMALE_VOICE_1_CHAT_1, 8); - break; - default: - return GetGenericFemaleTalkSfx(sound); - } - return sfx; -} + m_nPoliceChannelEntity = CreateEntity(AUDIOTYPE_POLICERADIO, (void *)1); + if (m_nPoliceChannelEntity >= 0) + SetEntityStatus(m_nPoliceChannelEntity, 1); -uint32 -cAudioManager::GetBlackFemaleProstituteTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + m_nBridgeEntity = CreateEntity(AUDIOTYPE_BRIDGE, (void *)1); + if (m_nBridgeEntity >= 0) + SetEntityStatus(m_nBridgeEntity, 1); - switch (sound) { - case SOUND_PED_HANDS_UP: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROSTITUTE_VOICE_1_GUN_COOL_1, 4); - break; - case SOUND_PED_ROBBED: - sfx = SFX_BLACK_PROSTITUTE_VOICE_1_MUGGED_1; - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROSTITUTE_VOICE_1_FIGHT_1, 4); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROSTITUTE_VOICE_1_DODGE_1, 3); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROSTITUTE_VOICE_1_DRIVER_ABUSE_1, 4); - break; - case SOUND_PED_SOLICIT: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROSTITUTE_VOICE_1_SOLICIT_1, 8); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROSTITUTE_VOICE_1_CHAT_1, 4); - break; - default: - return GetGenericFemaleTalkSfx(sound); - } - return (SFX_BLACK_PROSTITUTE_VOICE_2_CHAT_1 - SFX_BLACK_PROSTITUTE_VOICE_1_CHAT_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; + m_sMissionAudio.m_nSampleIndex = NO_SAMPLE; + m_sMissionAudio.m_nLoadingStatus = LOADING_STATUS_NOT_LOADED; + m_sMissionAudio.m_nPlayStatus = PLAY_STATUS_STOPPED; + m_sMissionAudio.field_22 = 0; + m_sMissionAudio.m_bIsPlayed = false; + m_sMissionAudio.m_bPredefinedProperties = 1; + m_sMissionAudio.m_nMissionAudioCounter = 0; + ResetAudioLogicTimers(CTimer::GetTimeInMilliseconds()); } -uint32 -cAudioManager::GetWhiteFemaleProstituteTalkSfx(int16 sound) +void +cAudioManager::PostTerminateGameSpecificShutdown() { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_PROSTITUTE_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_PROSTITUTE_VOICE_1_FIGHT_1, 4); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_PROSTITUTE_VOICE_1_DODGE_1, 3); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_PROSTITUTE_VOICE_1_DRIVER_ABUSE_1, 4); - break; - case SOUND_PED_SOLICIT: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_PROSTITUTE_VOICE_1_SOLICIT_1, 8); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_PROSTITUTE_VOICE_1_CHAT_1, 4); - break; - default: - return GetGenericFemaleTalkSfx(sound); - } - return (SFX_WHITE_PROSTITUTE_VOICE_2_CHAT_1 - SFX_WHITE_PROSTITUTE_VOICE_1_CHAT_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; + ; } -uint32 -cAudioManager::GetBlackProjectFemaleOldTalkSfx(int16 sound) +void +cAudioManager::PreInitialiseGameSpecificSetup() const { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CARJACKED_1, 6); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DODGE_1, 10); - break; - case SOUND_PED_FLEE_RUN: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_RUN_FROM_FIGHT_1, 6); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_DRIVER_ABUSE_1, 7); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_SHOCKED_1, 2); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_FEMALE_OLD_VOICE_1_CHAT_1, 10); - break; - default: - return GetGenericFemaleTalkSfx(sound); - } - return sfx; + BankStartOffset[SAMPLEBANK_MAIN] = SFX_CAR_HORN_JEEP; + BankStartOffset[SAMPLEBANK_PED] = SAMPLEBANK_PED_START; } -uint32 -cAudioManager::GetBlackProjectFemaleYoungTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; +struct MissionAudioData { + const char *m_pName; + int32 m_nId; +}; - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_GUN_PANIC_1, 4); - break; - case SOUND_PED_CAR_JACKED: - sfx = SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_CARJACKED_1; - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_SHOCKED_1, 5); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_PROJECT_FEMALE_YOUNG_VOICE_1_CHAT_1, 7); - break; - default: - return GetGenericFemaleTalkSfx(sound); - } - return sfx; -} +const MissionAudioData MissionAudioNameSfxAssoc[] = { + {"lib_a1", STREAMED_SOUND_MISSION_LIB_A1}, {"lib_a2", STREAMED_SOUND_MISSION_LIB_A2}, {"lib_a", STREAMED_SOUND_MISSION_LIB_A}, + {"lib_b", STREAMED_SOUND_MISSION_LIB_B}, {"lib_c", STREAMED_SOUND_MISSION_LIB_C}, {"lib_d", STREAMED_SOUND_MISSION_LIB_D}, + {"l2_a", STREAMED_SOUND_MISSION_L2_A}, {"j4t_1", STREAMED_SOUND_MISSION_J4T_1}, {"j4t_2", STREAMED_SOUND_MISSION_J4T_2}, + {"j4t_3", STREAMED_SOUND_MISSION_J4T_3}, {"j4t_4", STREAMED_SOUND_MISSION_J4T_4}, {"j4_a", STREAMED_SOUND_MISSION_J4_A}, + {"j4_b", STREAMED_SOUND_MISSION_J4_B}, {"j4_c", STREAMED_SOUND_MISSION_J4_C}, {"j4_d", STREAMED_SOUND_MISSION_J4_D}, + {"j4_e", STREAMED_SOUND_MISSION_J4_E}, {"j4_f", STREAMED_SOUND_MISSION_J4_F}, {"j6_1", STREAMED_SOUND_MISSION_J6_1}, + {"j6_a", STREAMED_SOUND_MISSION_J6_A}, {"j6_b", STREAMED_SOUND_MISSION_J6_B}, {"j6_c", STREAMED_SOUND_MISSION_J6_C}, + {"j6_d", STREAMED_SOUND_MISSION_J6_D}, {"t4_a", STREAMED_SOUND_MISSION_T4_A}, {"s1_a", STREAMED_SOUND_MISSION_S1_A}, + {"s1_a1", STREAMED_SOUND_MISSION_S1_A1}, {"s1_b", STREAMED_SOUND_MISSION_S1_B}, {"s1_c", STREAMED_SOUND_MISSION_S1_C}, + {"s1_c1", STREAMED_SOUND_MISSION_S1_C1}, {"s1_d", STREAMED_SOUND_MISSION_S1_D}, {"s1_e", STREAMED_SOUND_MISSION_S1_E}, + {"s1_f", STREAMED_SOUND_MISSION_S1_F}, {"s1_g", STREAMED_SOUND_MISSION_S1_G}, {"s1_h", STREAMED_SOUND_MISSION_S1_H}, + {"s1_i", STREAMED_SOUND_MISSION_S1_I}, {"s1_j", STREAMED_SOUND_MISSION_S1_J}, {"s1_k", STREAMED_SOUND_MISSION_S1_K}, + {"s1_l", STREAMED_SOUND_MISSION_S1_L}, {"s3_a", STREAMED_SOUND_MISSION_S3_A}, {"s3_b", STREAMED_SOUND_MISSION_S3_B}, + {"el3_a", STREAMED_SOUND_MISSION_EL3_A}, {"mf1_a", STREAMED_SOUND_MISSION_MF1_A}, {"mf2_a", STREAMED_SOUND_MISSION_MF2_A}, + {"mf3_a", STREAMED_SOUND_MISSION_MF3_A}, {"mf3_b", STREAMED_SOUND_MISSION_MF3_B}, {"mf3_b1", STREAMED_SOUND_MISSION_MF3_B1}, + {"mf3_c", STREAMED_SOUND_MISSION_MF3_C}, {"mf4_a", STREAMED_SOUND_MISSION_MF4_A}, {"mf4_b", STREAMED_SOUND_MISSION_MF4_B}, + {"mf4_c", STREAMED_SOUND_MISSION_MF4_C}, {"a1_a", STREAMED_SOUND_MISSION_A1_A}, {"a3_a", STREAMED_SOUND_MISSION_A3_A}, + {"a5_a", STREAMED_SOUND_MISSION_A5_A}, {"a4_a", STREAMED_SOUND_MISSION_A4_A}, {"a4_b", STREAMED_SOUND_MISSION_A4_B}, + {"a4_c", STREAMED_SOUND_MISSION_A4_C}, {"a4_d", STREAMED_SOUND_MISSION_A4_D}, {"k1_a", STREAMED_SOUND_MISSION_K1_A}, + {"k3_a", STREAMED_SOUND_MISSION_K3_A}, {"r1_a", STREAMED_SOUND_MISSION_R1_A}, {"r2_a", STREAMED_SOUND_MISSION_R2_A}, + {"r2_b", STREAMED_SOUND_MISSION_R2_B}, {"r2_c", STREAMED_SOUND_MISSION_R2_C}, {"r2_d", STREAMED_SOUND_MISSION_R2_D}, + {"r2_e", STREAMED_SOUND_MISSION_R2_E}, {"r2_f", STREAMED_SOUND_MISSION_R2_F}, {"r2_g", STREAMED_SOUND_MISSION_R2_G}, + {"r2_h", STREAMED_SOUND_MISSION_R2_H}, {"r5_a", STREAMED_SOUND_MISSION_R5_A}, {"r6_a", STREAMED_SOUND_MISSION_R6_A}, + {"r6_a1", STREAMED_SOUND_MISSION_R6_A1}, {"r6_b", STREAMED_SOUND_MISSION_R6_B}, {"lo2_a", STREAMED_SOUND_MISSION_LO2_A}, + {"lo6_a", STREAMED_SOUND_MISSION_LO6_A}, {"yd2_a", STREAMED_SOUND_MISSION_YD2_A}, {"yd2_b", STREAMED_SOUND_MISSION_YD2_B}, + {"yd2_c", STREAMED_SOUND_MISSION_YD2_C}, {"yd2_c1", STREAMED_SOUND_MISSION_YD2_C1}, {"yd2_d", STREAMED_SOUND_MISSION_YD2_D}, + {"yd2_e", STREAMED_SOUND_MISSION_YD2_E}, {"yd2_f", STREAMED_SOUND_MISSION_YD2_F}, {"yd2_g", STREAMED_SOUND_MISSION_YD2_G}, + {"yd2_h", STREAMED_SOUND_MISSION_YD2_H}, {"yd2_ass", STREAMED_SOUND_MISSION_YD2_ASS}, {"yd2_ok", STREAMED_SOUND_MISSION_YD2_OK}, + {"h5_a", STREAMED_SOUND_MISSION_H5_A}, {"h5_b", STREAMED_SOUND_MISSION_H5_B}, {"h5_c", STREAMED_SOUND_MISSION_H5_C}, + {"ammu_a", STREAMED_SOUND_MISSION_AMMU_A}, {"ammu_b", STREAMED_SOUND_MISSION_AMMU_B}, {"ammu_c", STREAMED_SOUND_MISSION_AMMU_C}, + {"door_1", STREAMED_SOUND_MISSION_DOOR_1}, {"door_2", STREAMED_SOUND_MISSION_DOOR_2}, {"door_3", STREAMED_SOUND_MISSION_DOOR_3}, + {"door_4", STREAMED_SOUND_MISSION_DOOR_4}, {"door_5", STREAMED_SOUND_MISSION_DOOR_5}, {"door_6", STREAMED_SOUND_MISSION_DOOR_6}, + {"t3_a", STREAMED_SOUND_MISSION_T3_A}, {"t3_b", STREAMED_SOUND_MISSION_T3_B}, {"t3_c", STREAMED_SOUND_MISSION_T3_C}, + {"k1_b", STREAMED_SOUND_MISSION_K1_B}, {"c_1", STREAMED_SOUND_MISSION_CAT1}}; -uint32 -cAudioManager::GetChinatownMaleOldTalkSfx(int16 sound) +int32 +FindMissionAudioSfx(const char *name) { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_MALE_OLD_VOICE_1_GUN_PANIC_1, 3); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_MALE_OLD_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_MALE_OLD_VOICE_1_FIGHT_1, 5); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_MALE_OLD_VOICE_1_DODGE_1, 6); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_MALE_OLD_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_MALE_OLD_VOICE_1_EYING_1, 3); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_MALE_OLD_VOICE_1_CHAT_1, 7); - break; - default: - return GetGenericMaleTalkSfx(sound); + for (uint32 i = 0; i < ARRAY_SIZE(MissionAudioNameSfxAssoc); ++i) { + if (!CGeneral::faststricmp(MissionAudioNameSfxAssoc[i].m_pName, name)) + return MissionAudioNameSfxAssoc[i].m_nId; } - return sfx; + debug("Can't find mission audio %s", name); + return NO_SAMPLE; } -uint32 -cAudioManager::GetChinatownMaleYoungTalkSfx(int16 sound) +void +cAudioManager::PreloadMissionAudio(const char *name) { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_MALE_YOUNG_VOICE_1_GUN_PANIC_1, 2); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_MALE_YOUNG_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_MALE_YOUNG_VOICE_1_FIGHT_1, 6); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_MALE_YOUNG_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_MALE_YOUNG_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_MALE_YOUNG_VOICE_1_EYING_1, 3); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_MALE_YOUNG_VOICE_1_CHAT_1, 6); - break; - default: - return GetGenericMaleTalkSfx(sound); + if (m_bIsInitialised) { + int32 missionAudioSfx = FindMissionAudioSfx(name); + if (missionAudioSfx != NO_SAMPLE) { + m_sMissionAudio.m_nSampleIndex = missionAudioSfx; + m_sMissionAudio.m_nLoadingStatus = LOADING_STATUS_NOT_LOADED; + m_sMissionAudio.m_nPlayStatus = PLAY_STATUS_STOPPED; + m_sMissionAudio.field_22 = 0; + m_sMissionAudio.m_nMissionAudioCounter = m_nTimeSpent * SampleManager.GetStreamedFileLength(missionAudioSfx) / 1000; + m_sMissionAudio.m_nMissionAudioCounter *= 4; + m_sMissionAudio.m_bIsPlayed = false; + m_sMissionAudio.m_bPredefinedProperties = 1; + g_bMissionAudioLoadFailed = false; + } } - return sfx; } - -uint32 -cAudioManager::GetChinatownFemaleOldTalkSfx(int16 sound) +void +cAudioManager::PreTerminateGameSpecificShutdown() { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_OLD_FEMALE_VOICE_1_GUN_PANIC_1, 3); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_OLD_FEMALE_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_OLD_FEMALE_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_OLD_FEMALE_VOICE_1_DRIVER_ABUSE_1, 5); - break; - case SOUND_PED_CHAT_EVENT: - sfx = SFX_CHINATOWN_OLD_FEMALE_VOICE_1_SHOCKED_1; - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_OLD_FEMALE_VOICE_1_CHAT_1, 6); - break; - default: - return GetGenericFemaleTalkSfx(sound); + if (m_nBridgeEntity >= 0) { + DestroyEntity(m_nBridgeEntity); + m_nBridgeEntity = AEHANDLE_NONE; } - return sfx; -} - -uint32 -cAudioManager::GetChinatownFemaleYoungTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_DODGE_1, 6); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_DRIVER_ABUSE_1, 7); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_SHOCKED_1, 4); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_CHINATOWN_YOUNG_FEMALE_VOICE_1_CHAT_1, 7); - break; - default: - return GetGenericFemaleTalkSfx(sound); + if (m_nPoliceChannelEntity >= 0) { + DestroyEntity(m_nPoliceChannelEntity); + m_nPoliceChannelEntity = AEHANDLE_NONE; } - return sfx; -} - -uint32 -cAudioManager::GetLittleItalyMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_MALE_VOICE_1_GUN_PANIC_1, 3); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_MALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_MALE_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_MALE_VOICE_1_FIGHT_1, 5); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_MALE_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_MALE_VOICE_1_DRIVER_ABUSE_1, 7); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_MALE_VOICE_1_CHAT_1, 6); - break; - default: - return GetGenericMaleTalkSfx(sound); + if (m_nWaterCannonEntity >= 0) { + DestroyEntity(m_nWaterCannonEntity); + m_nWaterCannonEntity = AEHANDLE_NONE; } - return (SFX_LITTLE_ITALY_MALE_VOICE_2_DRIVER_ABUSE_1 - SFX_LITTLE_ITALY_MALE_VOICE_1_DRIVER_ABUSE_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; -} - -uint32 -cAudioManager::GetLittleItalyFemaleOldTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_DODGE_1, 6); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_DRIVER_ABUSE_1, 7); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_SHOCKED_1, 4); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_OLD_FEMALE_VOICE_1_CHAT_1, 7); - break; - default: - return GetGenericFemaleTalkSfx(sound); + if (m_nFireAudioEntity >= 0) { + DestroyEntity(m_nFireAudioEntity); + m_nFireAudioEntity = AEHANDLE_NONE; } - return sfx; -} - -uint32 -cAudioManager::GetLittleItalyFemaleYoungTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_DODGE_1, 7); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_SHOCKED_1, 4); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_LITTLE_ITALY_YOUNG_FEMALE_VOICE_1_CHAT_1, 6); - break; - default: - return GetGenericFemaleTalkSfx(sound); + if (m_nCollisionEntity >= 0) { + DestroyEntity(m_nCollisionEntity); + m_nCollisionEntity = AEHANDLE_NONE; } - return sfx; -} - -uint32 -cAudioManager::GetWhiteDockerMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_DOCKER_MALE_VOICE_1_GUN_PANIC_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_DOCKER_MALE_VOICE_1_FIGHT_1, 3); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_DOCKER_MALE_VOICE_1_DODGE_1, 4); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_DOCKER_MALE_VOICE_1_DRIVER_ABUSE_1, 4); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_DOCKER_MALE_VOICE_1_EYING_1, 3); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_DOCKER_MALE_VOICE_1_CHAT_1, 5); - break; - default: - return GetGenericMaleTalkSfx(sound); + if (m_nFrontEndEntity >= 0) { + DestroyEntity(m_nFrontEndEntity); + m_nFrontEndEntity = AEHANDLE_NONE; } - return sfx; -} - -uint32 -cAudioManager::GetBlackDockerMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_DOCKER_VOICE_1_GUN_PANIC_1, 3); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_DOCKER_VOICE_1_FIGHT_1, 5); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_DOCKER_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_DOCKER_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_DOCKER_VOICE_1_EYING_1, 3); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_DOCKER_VOICE_1_CHAT_1, 5); - break; - default: - return GetGenericMaleTalkSfx(sound); + if (m_nProjectileEntity >= 0) { + DestroyEntity(m_nProjectileEntity); + m_nProjectileEntity = AEHANDLE_NONE; } - return sfx; } -uint32 -cAudioManager::GetScumMaleTalkSfx(int16 sound) +void +cAudioManager::ProcessActiveQueues() { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_SCUM_MALE_VOICE_1_GUN_PANIC_1, 5); - break; - case SOUND_PED_ROBBED: - sfx = SFX_SCUM_MALE_VOICE_1_MUGGED_1; - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_SCUM_MALE_VOICE_1_FIGHT_1, 10); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_SCUM_MALE_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_SCUM_MALE_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_WAIT_DOUBLEBACK: - GetPhrase(&sfx, &lastSfx, SFX_SCUM_MALE_VOICE_1_LOST_1, 3); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_SCUM_MALE_VOICE_1_EYING_1, 5); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_SCUM_MALE_VOICE_1_CHAT_1, 9); - break; - default: - return GetGenericMaleTalkSfx(sound); - } - return sfx; -} + bool flag; + float position2; + float position1; -uint32 -cAudioManager::GetScumFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + uint32 v28; + uint32 v29; - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_SCUM_FEMALE_VOICE_1_GUN_PANIC_1, 4); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_SCUM_FEMALE_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_SCUM_FEMALE_VOICE_1_FIGHT_1, 4); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_SCUM_FEMALE_VOICE_1_DODGE_1, 8); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_SCUM_FEMALE_VOICE_1_DRIVER_ABUSE_1, 5); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_SCUM_FEMALE_VOICE_1_CHAT_1, 13); - break; - default: - return GetGenericFemaleTalkSfx(sound); - } - return sfx; -} + float x; + float usedX; + float usedY; + float usedZ; -uint32 -cAudioManager::GetWhiteWorkerMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + uint8 vol; + uint8 emittingVol; + CVector position; - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_WORKER_MALE_VOICE_1_GUN_PANIC_1, 3); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_WORKER_MALE_VOICE_1_FIGHT_1, 3); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_WORKER_MALE_VOICE_1_DODGE_1, 4); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_WORKER_MALE_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_WORKER_MALE_VOICE_1_EYING_1, 2); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_WORKER_MALE_VOICE_1_CHAT_1, 6); - break; - default: - return GetGenericMaleTalkSfx(sound); + for (int32 i = 0; i < m_nActiveSamples; i++) { + m_asSamples[m_nActiveSampleQueue][i].m_bIsProcessed = false; + m_asActiveSamples[i].m_bIsProcessed = false; } - return sfx; -} -uint32 -cAudioManager::GetBlackWorkerMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_WORKER_MALE_VOICE_1_GUN_PANIC_1, 4); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_WORKER_MALE_VOICE_1_FIGHT_1, 3); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_WORKER_MALE_VOICE_1_DODGE_1, 3); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_WORKER_MALE_VOICE_1_DRIVER_ABUSE_1, 4); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_WORKER_MALE_VOICE_1_EYING_1, 3); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_WORKER_MALE_VOICE_1_CHAT_1, 4); - break; - default: - return GetGenericMaleTalkSfx(sound); - } - return sfx; -} + for (int32 i = 0; i < m_SampleRequestQueuesStatus[m_nActiveSampleQueue]; ++i) { + tSound &sample = m_asSamples[m_nActiveSampleQueue][m_abSampleQueueIndexTable[m_nActiveSampleQueue][i]]; + if (sample.m_nSampleIndex != NO_SAMPLE) { + for (int32 j = 0; j < m_nActiveSamples; ++j) { + if (sample.m_nEntityIndex == m_asActiveSamples[j].m_nEntityIndex && sample.m_nCounter == m_asActiveSamples[j].m_nCounter && + sample.m_nSampleIndex == m_asActiveSamples[j].m_nSampleIndex) { + if (sample.m_nLoopCount) { + if (m_FrameCounter & 1) { + flag = !!(j & 1); + } else { + flag = !(j & 1); + } + if (flag && !SampleManager.GetChannelUsedFlag(j)) { + sample.m_bLoopEnded = true; + m_asActiveSamples[j].m_bLoopEnded = true; + m_asActiveSamples[j].m_nSampleIndex = NO_SAMPLE; + m_asActiveSamples[j].m_nEntityIndex = AEHANDLE_NONE; + continue; + } + } + sample.m_bIsProcessed = true; + m_asActiveSamples[j].m_bIsProcessed = true; + sample.m_nVolumeChange = -1; + if (!sample.m_bReleasingSoundFlag) { + if (sample.m_bIs2D) { + if (field_4) { + emittingVol = 2 * Min(63, sample.m_nEmittingVolume); + } else { + emittingVol = sample.m_nEmittingVolume; + } + SampleManager.SetChannelFrequency(j, sample.m_nFrequency); + SampleManager.SetChannelEmittingVolume(j, emittingVol); + } else { + m_asActiveSamples[j].m_fDistance = sample.m_fDistance; + position2 = sample.m_fDistance; + position1 = m_asActiveSamples[j].m_fDistance; + sample.m_nFrequency = ComputeDopplerEffectedFrequency(sample.m_nFrequency, position1, position2, sample.m_fSpeedMultiplier); + if (sample.m_nFrequency != m_asActiveSamples[j].m_nFrequency) { + int32 freq; + if (sample.m_nFrequency <= m_asActiveSamples[j].m_nFrequency) { + freq = Max(sample.m_nFrequency, m_asActiveSamples[j].m_nFrequency - 6000); + } else { + freq = Min(sample.m_nFrequency, m_asActiveSamples[j].m_nFrequency + 6000); + } + m_asActiveSamples[j].m_nFrequency = freq; + SampleManager.SetChannelFrequency(j, freq); + } -uint32 -cAudioManager::GetBusinessMaleYoungTalkSfx(int16 sound, int32 model) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + if (sample.m_nEmittingVolume != m_asActiveSamples[j].m_nEmittingVolume) { + if (sample.m_nEmittingVolume <= m_asActiveSamples[j].m_nEmittingVolume) { + vol = Max(m_asActiveSamples[j].m_nEmittingVolume - 10, sample.m_nEmittingVolume); + } else { + vol = Min(m_asActiveSamples[j].m_nEmittingVolume + 10, sample.m_nEmittingVolume); + } - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_YOUNG_VOICE_1_GUN_PANIC_1, 3); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_YOUNG_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_YOUNG_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_YOUNG_VOICE_1_FIGHT_1, 4); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_YOUNG_VOICE_1_DODGE_1, 4); - break; - case SOUND_PED_FLEE_RUN: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_YOUNG_VOICE_1_RUN_FROM_FIGHT_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_YOUNG_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_YOUNG_VOICE_1_CHAT_1, 6); - break; - default: - return GetGenericMaleTalkSfx(sound); - } - -// TODO(MIAMI): just making this compile -// if (model == MI_B_MAN3) -// sfx += (SFX_BUSINESS_MALE_YOUNG_VOICE_2_DRIVER_ABUSE_1 - SFX_BUSINESS_MALE_YOUNG_VOICE_1_DRIVER_ABUSE_1); - return sfx; -} - -uint32 -cAudioManager::GetBusinessMaleOldTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_OLD_VOICE_1_GUN_PANIC_1, 3); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_OLD_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_OLD_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_OLD_VOICE_1_FIGHT_1, 5); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_OLD_VOICE_1_DODGE_1, 4); - break; - case SOUND_PED_FLEE_RUN: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_OLD_VOICE_1_MRUN_FROM_FIGHT_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_OLD_VOICE_1_DRIVER_ABUSE_1, 5); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_BUSINESS_MALE_OLD_VOICE_1_CHAT_1, 5); - break; - default: - return GetGenericMaleTalkSfx(sound); - } - return sfx; -} - -uint32 -cAudioManager::GetWhiteBusinessFemaleTalkSfx(int16 sound, int32 model) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_BUSINESS_FEMALE_VOICE_1_GUN_PANIC_1, 4); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_BUSINESS_FEMALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_BUSINESS_FEMALE_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_BUSINESS_FEMALE_VOICE_1_DODGE_1, 6); - break; - case SOUND_PED_FLEE_RUN: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_BUSINESS_FEMALE_VOICE_1_RUN_FROM_FIGHT_1, 4); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_BUSINESS_FEMALE_VOICE_1_DRIVER_ABUSE_1, 5); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_BUSINESS_FEMALE_VOICE_1_SHOCKED_1, 4); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_BUSINESS_FEMALE_VOICE_1_CHAT_1, 7); - break; - default: - return GetGenericFemaleTalkSfx(sound); + uint8 emittingVol; + if (field_4) { + emittingVol = 2 * Min(63, vol); + } else { + emittingVol = vol; + } + SampleManager.SetChannelEmittingVolume(j, emittingVol); + m_asActiveSamples[j].m_nEmittingVolume = vol; + } + TranslateEntity(&sample.m_vecPos, &position); + SampleManager.SetChannel3DPosition(j, position.x, position.y, position.z); + SampleManager.SetChannel3DDistances(j, sample.m_fSoundIntensity, 0.25f * sample.m_fSoundIntensity); + } + SampleManager.SetChannelReverbFlag(j, sample.m_bReverbFlag); + break; + } + sample.m_bIsProcessed = false; + m_asActiveSamples[j].m_bIsProcessed = false; + } + } + } } - -// TODO(MIAMI): just making this compile -// if (model == MI_B_WOM2) -// sfx += (SFX_WHITE_BUSINESS_FEMALE_VOICE_2_DRIVER_ABUSE_1 - SFX_WHITE_BUSINESS_FEMALE_VOICE_1_DRIVER_ABUSE_1); - return sfx; -} - -uint32 -cAudioManager::GetBlackBusinessFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_BUSINESS_FEMALE_VOICE_1_GUN_PANIC_1, 5); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_BUSINESS_FEMALE_VOICE_1_CARAJACKED_1, 4); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_BUSINESS_FEMALE_VOICE_1_MUGGED_1, 3); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_BUSINESS_FEMALE_VOICE_1_DODGE_1, 6); - break; - case SOUND_PED_FLEE_RUN: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_BUSINESS_FEMALE_VOICE_1_RUN_FROM_FIGHT_1, 6); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_BUSINESS_FEMALE_VOICE_1_DRIVER_ABUSE_1, 7); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_BUSINESS_FEMALE_VOICE_1_SHOCKED_1, 4); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_BUSINESS_FEMALE_VOICE_1_CHAT_1, 7); - break; - default: - return GetGenericFemaleTalkSfx(sound); + for (int32 i = 0; i < m_nActiveSamples; i++) { + if (m_asActiveSamples[i].m_nSampleIndex != NO_SAMPLE && !m_asActiveSamples[i].m_bIsProcessed) { + SampleManager.StopChannel(i); + m_asActiveSamples[i].m_nSampleIndex = NO_SAMPLE; + m_asActiveSamples[i].m_nEntityIndex = AEHANDLE_NONE; + } } - return sfx; -} - -uint32 -cAudioManager::GetSupermodelMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_MODEL_MALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_MODEL_MALE_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_MODEL_MALE_VOICE_1_FIGHT_1, 5); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_MODEL_MALE_VOICE_1_DODGE_1, 6); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_MODEL_MALE_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_MODEL_MALE_VOICE_1_EYING_1, 3); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_MODEL_MALE_VOICE_1_CHAT_1, 6); - break; - default: - return GetGenericMaleTalkSfx(sound); + for (uint8 i = 0; i < m_SampleRequestQueuesStatus[m_nActiveSampleQueue]; ++i) { + tSound &sample = m_asSamples[m_nActiveSampleQueue][m_abSampleQueueIndexTable[m_nActiveSampleQueue][i]]; + if (!sample.m_bIsProcessed && !sample.m_bLoopEnded && m_asAudioEntities[sample.m_nEntityIndex].m_bIsUsed && sample.m_nSampleIndex < NO_SAMPLE) { + if (sample.m_nCounter > 255 && sample.m_nLoopCount && sample.m_nLoopsRemaining) { + --sample.m_nLoopsRemaining; + sample.m_nReleasingVolumeDivider = 1; + } else { + for (uint8 j = 0; j < m_nActiveSamples; ++j) { + if (!m_asActiveSamples[j].m_bIsProcessed) { + if (sample.m_nLoopCount) { + v28 = sample.m_nFrequency / m_nTimeSpent; + v29 = sample.m_nLoopCount * SampleManager.GetSampleLength(sample.m_nSampleIndex); + if (v28 == 0) + continue; + sample.m_nReleasingVolumeDivider = v29 / v28 + 1; + } + memcpy(&m_asActiveSamples[j], &sample, sizeof(tSound)); + if (!m_asActiveSamples[j].m_bIs2D) + TranslateEntity(&m_asActiveSamples[j].m_vecPos, &position); + if (field_4) { + emittingVol = 2 * Min(63, m_asActiveSamples[j].m_nEmittingVolume); + } else { + emittingVol = m_asActiveSamples[j].m_nEmittingVolume; + } + if (SampleManager.InitialiseChannel(j, m_asActiveSamples[j].m_nSampleIndex, m_asActiveSamples[j].m_nBankIndex)) { + SampleManager.SetChannelFrequency(j, m_asActiveSamples[j].m_nFrequency); + SampleManager.SetChannelEmittingVolume(j, emittingVol); + SampleManager.SetChannelLoopPoints(j, m_asActiveSamples[j].m_nLoopStart, m_asActiveSamples[j].m_nLoopEnd); + SampleManager.SetChannelLoopCount(j, m_asActiveSamples[j].m_nLoopCount); + SampleManager.SetChannelReverbFlag(j, m_asActiveSamples[j].m_bReverbFlag); + if (m_asActiveSamples[j].m_bIs2D) { + uint8 offset = m_asActiveSamples[j].m_nOffset; + if (offset == 63) { + x = 0.f; + } else if (offset >= 63) { + x = (offset - 63) * 1000.f / 63; + } else { + x = -(63 - offset) * 1000.f / 63; + } + usedX = x; + usedY = 0.f; + usedZ = 0.f; + m_asActiveSamples[j].m_fSoundIntensity = 100000.0f; + } else { + usedX = position.x; + usedY = position.y; + usedZ = position.z; + } + SampleManager.SetChannel3DPosition(j, usedX, usedY, usedZ); + SampleManager.SetChannel3DDistances(j, m_asActiveSamples[j].m_fSoundIntensity, 0.25f * m_asActiveSamples[j].m_fSoundIntensity); + SampleManager.StartChannel(j); + } + m_asActiveSamples[j].m_bIsProcessed = true; + sample.m_bIsProcessed = true; + sample.m_nVolumeChange = -1; + break; + } + } + } + } } - return sfx; } -uint32 -cAudioManager::GetSupermodelFemaleTalkSfx(int16 sound) +bool +cAudioManager::ProcessAirBrakes(cVehicleParams *params) { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + CAutomobile *automobile; + uint8 rand; - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_MODEL_FEMALE_VOICE_1_GUN_PANIC_1, 4); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_MODEL_FEMALE_VOICE_1_MUGGED_1, 3); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_MODEL_FEMALE_VOICE_1_DODGE_1, 4); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_MODEL_FEMALE_VOICE_1_DRIVER_ABUSE_1, 7); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_MODEL_FEMALE_VOICE_1_SHOCKED_1, 5); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_MODEL_FEMALE_VOICE_1_CHAT_1, 8); - break; - default: - return GetGenericFemaleTalkSfx(sound); - } - return sfx; -} + if (params->m_fDistance > 900.0f) + return false; + automobile = (CAutomobile *)params->m_pVehicle; + if (!automobile->bEngineOn) + return true; -uint32 -cAudioManager::GetStewardMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + if ((automobile->m_fVelocityChangeForAudio < 0.025f || params->m_fVelocityChange >= 0.025f) && + (automobile->m_fVelocityChangeForAudio > -0.025f || params->m_fVelocityChange <= 0.025f)) + return true; - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_STEWARD_MALE_VOICE_1_GUN_PANIC_1, 3); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_STEWARD_MALE_VOICE_1_FIGHT_1, 4); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_STEWARD_MALE_VOICE_1_DODGE_1, 3); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_STEWARD_MALE_VOICE_1_DRIVER_ABUSE_1, 5); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_STEWARD_MALE_VOICE_1_CHAT_1, 4); - break; - default: - return GetGenericMaleTalkSfx(sound); + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + rand = m_anRandomTable[0] % 10 + 70; + m_sQueueSample.m_nVolume = ComputeVolume(rand, 30.0f, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 13; + m_sQueueSample.m_nSampleIndex = SFX_AIR_BRAKES; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_AIR_BRAKES); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 10; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nEmittingVolume = rand; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); } - return sfx; -} - -uint32 -cAudioManager::GetStewardFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_STEWARD_FEMALE_VOICE_1_GUN_PANIC_1, 3); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_STEWARD_FEMALE_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_STEWARD_FEMALE_VOICE_1_DRIVER_ABUSE_1, 5); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_STEWARD_FEMALE_VOICE_1_CHAT_1, 5); - break; - default: - return GetGenericFemaleTalkSfx(sound); - } - return (SFX_STEWARD_FEMALE_VOICE_2_DRIVER_ABUSE_1 - SFX_STEWARD_FEMALE_VOICE_1_DRIVER_ABUSE_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; + return true; } -uint32 -cAudioManager::GetFanMaleTalkSfx(int16 sound, int32 model) +bool +cAudioManager::ProcessBoatEngine(cVehicleParams *params) { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_FOOTBALL_MALE_VOICE_1_FIGHT_1, 3); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_FOOTBALL_MALE_VOICE_1_DODGE_1, 4); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_FOOTBALL_MALE_VOICE_1_DRIVER_ABUSE_1, 5); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_FOOTBALL_MALE_VOICE_1_SHOCKED_1, 2); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_FOOTBALL_MALE_VOICE_1_CHAT_1, 6); - break; - default: - return GetGenericMaleTalkSfx(sound); - } + CBoat *boat; + float padRelativeAccerate; + float gasPedal; + int32 padAccelerate; + uint8 emittingVol; + float oneShotVol; -// TODO(MIAMI): just making this compile -// if (model == MI_FAN_MAN2) -// sfx += (SFX_FOOTBALL_MALE_VOICE_2_DRIVER_ABUSE_1 - SFX_FOOTBALL_MALE_VOICE_1_DRIVER_ABUSE_1); - return sfx; -} + static uint16 LastAccel = 0; + static uint8 LastVol = 0; -uint32 -cAudioManager::GetFanFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + static const int intensity = 50; - switch (sound) { - case SOUND_PED_ROBBED: - sfx = SFX_FOOTBALL_FEMALE_VOICE_1_MUGGED_1; - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_FOOTBALL_FEMALE_VOICE_1_DODGE_1, 4); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_FOOTBALL_FEMALE_VOICE_1_DRIVER_ABUSE_1, 5); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_FOOTBALL_FEMALE_VOICE_1_SHOCKED_1, 2); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_FOOTBALL_FEMALE_VOICE_1_CHAT_1, 6); - break; - default: - return GetGenericFemaleTalkSfx(sound); - } - return (SFX_FOOTBALL_FEMALE_VOICE_2_DRIVER_ABUSE_1 - SFX_FOOTBALL_FEMALE_VOICE_1_DRIVER_ABUSE_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; -} - -uint32 -cAudioManager::GetHospitalMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_HOSPITAL_MALE_VOICE_1_GUN_PANIC_1, 4); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_HOSPITAL_MALE_VOICE_1_FIGHT_1, 4); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_HOSPITAL_MALE_VOICE_1_DODGE_1, 4); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_HOSPITAL_MALE_VOICE_1_DRIVER_ABUSE_1, 5); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_HOSPITAL_MALE_VOICE_1_CHAT_1, 5); - break; - default: - return GetGenericMaleTalkSfx(sound); + if (params->m_fDistance < SQR(intensity)) { + boat = (CBoat *)params->m_pVehicle; + if (params->m_nIndex == REEFER) { + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + m_sQueueSample.m_nVolume = ComputeVolume(80, 50.f, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 39; + m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; + m_sQueueSample.m_nFrequency = 10386; + m_sQueueSample.m_nFrequency += (m_sQueueSample.m_nEntityIndex * 65536) % 1000; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nEmittingVolume = 80; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_fSoundIntensity = intensity; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 7; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + if (FindPlayerVehicle() == params->m_pVehicle) { + if (Pads[0].GetAccelerate() <= Pads[0].GetBrake()) + padAccelerate = Pads[0].GetBrake(); + else + padAccelerate = Pads[0].GetAccelerate(); + padRelativeAccerate = padAccelerate / 255; + emittingVol = (100.f * padRelativeAccerate) + 15; + m_sQueueSample.m_nFrequency = (3000.f * padRelativeAccerate) + 6000; + if (!boat->m_bIsAnchored) + m_sQueueSample.m_nFrequency = 11 * m_sQueueSample.m_nFrequency / 10; + } else { + gasPedal = Abs(boat->m_fGasPedal); + if (gasPedal > 0.0f) { + m_sQueueSample.m_nFrequency = 6000; + emittingVol = 15; + } else { + emittingVol = (100.f * gasPedal) + 15; + m_sQueueSample.m_nFrequency = (3000.f * gasPedal) + 6000; + if (!boat->m_bIsAnchored) + m_sQueueSample.m_nFrequency = 11 * m_sQueueSample.m_nFrequency / 10; + } + } + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, 50.f, m_sQueueSample.m_fDistance); + if (!m_sQueueSample.m_nVolume) + return true; + m_sQueueSample.m_nCounter = 40; + 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; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_fSoundIntensity = intensity; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 7; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + } else { + if (FindPlayerVehicle() == params->m_pVehicle) { + if (Pads[0].GetAccelerate() <= Pads[0].GetBrake()) + padAccelerate = Pads[0].GetBrake(); + else + padAccelerate = Pads[0].GetAccelerate(); + if (padAccelerate <= 20) { + emittingVol = 45 - 45 * padAccelerate / 40; + m_sQueueSample.m_nFrequency = 100 * padAccelerate + 11025; + m_sQueueSample.m_nCounter = 39; + m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; + if (LastAccel > 20) { + oneShotVol = LastVol; + PlayOneShot(m_sQueueSample.m_nEntityIndex, SOUND_17, oneShotVol); + } + } else { + emittingVol = 105 * padAccelerate / 255 + 15; + m_sQueueSample.m_nFrequency = 4000 * padAccelerate / 255 + 8000; + if (!boat->m_bIsAnchored) + m_sQueueSample.m_nFrequency = 11 * m_sQueueSample.m_nFrequency / 10; + m_sQueueSample.m_nCounter = 40; + m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; + } + LastVol = emittingVol; + LastAccel = padAccelerate; + } else { + gasPedal = Abs(boat->m_fGasPedal); + if (gasPedal > 0.0f) { + m_sQueueSample.m_nFrequency = 11025; + emittingVol = 45; + m_sQueueSample.m_nCounter = 39; + 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_FISHING_BOAT_IDLE; + } + } + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, 50.f, m_sQueueSample.m_fDistance); + if (!m_sQueueSample.m_nVolume) + return true; + m_sQueueSample.m_nFrequency += (m_sQueueSample.m_nEntityIndex * 65536) % 1000; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_fSoundIntensity = intensity; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 7; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + } + AddSampleToRequestedQueue(); + return true; } - return sfx; + return false; } -uint32 -cAudioManager::GetHospitalFemaleTalkSfx(int16 sound) +bool +cAudioManager::ProcessBoatMovingOverWater(cVehicleParams *params) { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + float velocityChange; + int32 vol; + float multiplier; - switch (sound) { - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_HOSPITAL_FEMALE_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_HOSPITAL_FEMALE_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_HOSPITAL_FEMALE_VOICE_1_CHAT_1, 6); - break; - default: - return GetGenericFemaleTalkSfx(sound); - } - return sfx; -} + if (params->m_fDistance > 2500.f) + return false; -uint32 -cAudioManager::GetWhiteConstructionWorkerTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + velocityChange = Abs(params->m_fVelocityChange); + if (velocityChange <= 0.0005f && params->m_pVehicle->GetPosition().y) + return true; - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_GUN_PANIC_1, 3); - break; - case SOUND_PED_CAR_JACKED: - sfx = SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_CARJACKED_1; - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_FIGHT_1, 5); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_DRIVER_ABUSE_1, 4); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_EYING_1, 3); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_WHITE_MALE_CONSTRUCTION_VOICE_1_CHAT_1, 7); - break; - default: - return GetGenericMaleTalkSfx(sound); + velocityChange = Min(0.75f, velocityChange); + multiplier = (velocityChange - 0.0005f) * 1.3342f; + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + vol = (30.f * multiplier); + m_sQueueSample.m_nVolume = ComputeVolume(vol, 50.f, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 38; + m_sQueueSample.m_nSampleIndex = SFX_BOAT_WATER_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nFrequency = (6050.f * multiplier) + 16000; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nEmittingVolume = vol; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_fSoundIntensity = 50.0f; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); } - return sfx; -} -uint32 -cAudioManager::GetBlackConstructionWorkerTalkSfx(int16 sound) + return true; +} +#ifdef GTA_BRIDGE +void +cAudioManager::ProcessBridge() { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + float dist; + bool distCalculated = false; - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_GUN_PANIC_1, 3); - break; - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_FIGHT_1, 5); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_DODGE_1, 5); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_DRIVER_ABUSE_1, 5); - break; - case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_EYING_1, 4); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_BLACK_CONSTRUCTION_MALE_VOICE_1_CHAT_1, 4); - break; - default: - return GetGenericMaleTalkSfx(sound); + if (CBridge::pLiftRoad) { + m_sQueueSample.m_vecPos = CBridge::pLiftRoad->GetPosition(); + dist = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (dist < 202500.0f) { + CalculateDistance(distCalculated, dist); + switch (CBridge::State) { + case STATE_BRIDGE_LOCKED: + case STATE_LIFT_PART_IS_UP: + case STATE_LIFT_PART_ABOUT_TO_MOVE_UP: + ProcessBridgeWarning(); + break; + case STATE_LIFT_PART_MOVING_DOWN: + case STATE_LIFT_PART_MOVING_UP: + ProcessBridgeWarning(); + ProcessBridgeMotor(); + break; + default: + break; + } + ProcessBridgeOneShots(); + } } - return sfx; } -uint32 -cAudioManager::GetShopperFemaleTalkSfx(int16 sound, int32 model) +void +cAudioManager::ProcessBridgeMotor() { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastSfx, SFX_SHOPPER_VOICE_1_CARJACKED_1, 2); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_SHOPPER_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_SHOPPER_VOICE_1_DODGE_1, 6); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_SHOPPER_VOICE_1_DRIVER_ABUSE_1, 7); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_SHOPPER_VOICE_1_SHOCKED_1, 4); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_SHOPPER_VOICE_1_CHAT_1, 7); - break; - default: - return GetGenericFemaleTalkSfx(sound); + if (m_sQueueSample.m_fDistance < bridgeIntensity) { + m_sQueueSample.m_nVolume = ComputeVolume(maxVolume, bridgeIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 1; + m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; // todo check sfx name + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_nFrequency = 5500; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nEmittingVolume = maxVolume; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_fSoundIntensity = bridgeIntensity; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_bReverbFlag = false; + AddSampleToRequestedQueue(); + } } +} -// TODO(MIAMI): just making this compile -// if (model == MI_SHOPPER2) { -// sfx += (SFX_SHOPPER_VOICE_2_DRIVER_ABUSE_1 - SFX_SHOPPER_VOICE_1_DRIVER_ABUSE_1); -// } else if (model == MI_SHOPPER3) { -// sfx += (SFX_SHOPPER_VOICE_3_DRIVER_ABUSE_1 - SFX_SHOPPER_VOICE_1_DRIVER_ABUSE_1); -// } - return sfx; -} - -uint32 -cAudioManager::GetStudentMaleTalkSfx(int16 sound) +void +cAudioManager::ProcessBridgeOneShots() { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_STUDENT_MALE_VOICE_1_GUN_PANIC_1, 2); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_STUDENT_MALE_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_STUDENT_MALE_VOICE_1_FIGHT_1, 4); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_STUDENT_MALE_VOICE_1_DODGE_1, 4); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_STUDENT_MALE_VOICE_1_DRIVER_ABUSE_1, 4); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_STUDENT_MALE_VOICE_1_SHOCKED_1, 3); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_STUDENT_MALE_VOICE_1_CHAT_1, 5); - break; - default: - return GetGenericMaleTalkSfx(sound); + if (CBridge::State == STATE_LIFT_PART_IS_UP && CBridge::OldState == STATE_LIFT_PART_MOVING_UP) { + m_sQueueSample.m_nSampleIndex = SFX_COL_CONTAINER_1; + } else { + if (CBridge::State == STATE_LIFT_PART_IS_DOWN && CBridge::OldState == STATE_LIFT_PART_MOVING_DOWN) { + m_sQueueSample.m_nSampleIndex = SFX_COL_CONTAINER_1; + } else { + if (CBridge::State == STATE_LIFT_PART_MOVING_UP && CBridge::OldState == STATE_LIFT_PART_ABOUT_TO_MOVE_UP) { + m_sQueueSample.m_nSampleIndex = SFX_COL_CONTAINER_1; + } else { + if (CBridge::State == STATE_LIFT_PART_MOVING_DOWN && CBridge::OldState == STATE_LIFT_PART_IS_UP) { + m_sQueueSample.m_nSampleIndex = SFX_COL_CONTAINER_1; + } else + return; + } + } + } + if (m_sQueueSample.m_fDistance < bridgeIntensity) { + m_sQueueSample.m_nVolume = ComputeVolume(maxVolume, bridgeIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 2; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nEmittingVolume = maxVolume; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_fSoundIntensity = bridgeIntensity; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bReverbFlag = false; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } } - return sfx; } - -uint32 -cAudioManager::GetStudentFemaleTalkSfx(int16 sound) +void +cAudioManager::ProcessBridgeWarning() { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastSfx, SFX_STUDENT_FEMALE_VOICE_1_GUN_PANIC_1, 4); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_STUDENT_FEMALE_VOICE_1_MUGGED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_STUDENT_FEMALE_VOICE_1_FIGHT_1, 4); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_STUDENT_FEMALE_VOICE_1_DODGE_1, 4); - break; - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_STUDENT_FEMALE_VOICE_1_DRIVER_ABUSE_1, 4); - break; - case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastSfx, SFX_STUDENT_FEMALE_VOICE_1_SHOCKED_1, 2); - break; - case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastSfx, SFX_STUDENT_FEMALE_VOICE_1_CHAT_1, 4); - break; - default: - return GetGenericFemaleTalkSfx(sound); + if (CStats::CommercialPassed && m_sQueueSample.m_fDistance < 450.f) { + m_sQueueSample.m_nVolume = ComputeVolume(100, 450.f, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 0; + m_sQueueSample.m_nSampleIndex = SFX_BRIDGE_OPEN_WARNING; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_BRIDGE_OPEN_WARNING); + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nEmittingVolume = 100; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_fSoundIntensity = 450.0f; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 8; + m_sQueueSample.m_bReverbFlag = false; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } } - return sfx; } +#endif -uint32 -cAudioManager::GetCasualMaleOldTalkSfx(int16 sound) +bool +cAudioManager::ProcessCarBombTick(cVehicleParams *params) { - return GetGenericMaleTalkSfx(sound); -} + CAutomobile *automobile; -uint32 -cAudioManager::GetSpecialCharacterTalkSfx(int32 modelIndex, int32 sound) -{ - char *modelName = CModelInfo::GetModelInfo(modelIndex)->GetName(); - if (!CGeneral::faststricmp(modelName, "eight") || !CGeneral::faststricmp(modelName, "eight2")) { - return GetEightTalkSfx(sound); - } - if (!CGeneral::faststricmp(modelName, "frankie")) { - return GetFrankieTalkSfx(sound); - } - if (!CGeneral::faststricmp(modelName, "misty")) { - return GetMistyTalkSfx(sound); - } - if (!CGeneral::faststricmp(modelName, "ojg") || !CGeneral::faststricmp(modelName, "ojg_p")) { - return GetOJGTalkSfx(sound); - } - if (!CGeneral::faststricmp(modelName, "cat")) { - return GetCatatalinaTalkSfx(sound); - } - if (!CGeneral::faststricmp(modelName, "bomber")) { - return GetBomberTalkSfx(sound); - } - if (!CGeneral::faststricmp(modelName, "s_guard")) { - return GetSecurityGuardTalkSfx(sound); - } - if (!CGeneral::faststricmp(modelName, "chunky")) { - return GetChunkyTalkSfx(sound); - } - if (!CGeneral::faststricmp(modelName, "asuka")) { - return GetGenericFemaleTalkSfx(sound); - } - if (!CGeneral::faststricmp(modelName, "maria")) { - return GetGenericFemaleTalkSfx(sound); + if (params->m_fDistance >= SQR(40.f)) + return false; + automobile = (CAutomobile *)params->m_pVehicle; + if (automobile->bEngineOn && automobile->m_bombType == CARBOMB_TIMEDACTIVE) { + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + m_sQueueSample.m_nVolume = ComputeVolume(60, 40.f, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 35; + m_sQueueSample.m_nSampleIndex = SFX_COUNTDOWN; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 0; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_COUNTDOWN); + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nEmittingVolume = 60; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_fSoundIntensity = 40.0f; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } } - - return GetGenericMaleTalkSfx(sound); + return true; } -uint32 -cAudioManager::GetEightTalkSfx(int16 sound) + +void +cAudioManager::ProcessCesna(cVehicleParams *params) { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + static uint8 nAccel = 0; - switch (sound) { - case SOUND_PED_HANDS_UP: - GetPhrase(&sfx, &lastSfx, SFX_8BALL_GUN_COOL_1, 2); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_8BALL_MUGGED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_8BALL_FIGHT_1, 6); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_8BALL_DODGE_1, 7); - break; - default: - return GetGenericMaleTalkSfx(sound); + //((CAutomobile *)params->m_pVehicle)->Damage.GetEngineStatus(); + + if (FindPlayerVehicle() == params->m_pVehicle) { + if (params->m_nIndex == DODO) { + if (Pads[0].GetAccelerate() <= 0) { + if (nAccel) + --nAccel; + } else if (nAccel < 60) { + ++nAccel; + } + AddPlayerCarSample(85 * (60 - nAccel) / 60 + 20, 8500 * nAccel / 60 + 17000, SFX_CESNA_IDLE, 0, 52, 1); + AddPlayerCarSample(85 * nAccel / 60 + 20, 8500 * nAccel / 60 + 17000, SFX_CESNA_REV, 0, 2, 1); + } + } else if (params->m_nIndex == DODO) { + AddPlayerCarSample(105, 17000, SFX_CESNA_IDLE, 0, 52, 1); + } else if (params->m_fDistance < 40000.f) { + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + m_sQueueSample.m_nVolume = ComputeVolume(80, 200.f, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 52; + m_sQueueSample.m_nSampleIndex = SFX_CESNA_IDLE; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 0; + m_sQueueSample.m_nFrequency = 12500; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nReleasingVolumeDivider = 8; + m_sQueueSample.m_nEmittingVolume = 80; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSpeedMultiplier = 8.0f; + m_sQueueSample.m_fSoundIntensity = 200.0f; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + if (params->m_fDistance < 8100.f) { + m_sQueueSample.m_nVolume = ComputeVolume(80, 90.f, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 2; + m_sQueueSample.m_nSampleIndex = SFX_CESNA_REV; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 0; + m_sQueueSample.m_nFrequency = 25000; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nReleasingVolumeDivider = 4; + m_sQueueSample.m_nEmittingVolume = 80; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSpeedMultiplier = 8.0f; + m_sQueueSample.m_fSoundIntensity = 90.0f; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } } - return sfx; } -uint32 -cAudioManager::GetFrankieTalkSfx(int16 sound) +void +cAudioManager::ProcessCrane() { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + CCrane *crane = (CCrane *)m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_pEntity; + float distSquared; + bool distCalculated = false; + static const int intensity = 80; - switch (sound) { - case SOUND_PED_HANDS_UP: - GetPhrase(&sfx, &lastSfx, SFX_SALVATORE_GUN_COOL_1, 4); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_SALVATORE_MUGGED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_SALVATORE_FIGHT_1, 6); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_SALVATORE_DODGE_1, 3); - break; - default: - return GetGenericMaleTalkSfx(sound); + if (crane) { + if (crane->m_nCraneStatus == CCrane::ACTIVATED) { + if (crane->m_nCraneState != CCrane::IDLE) { + m_sQueueSample.m_vecPos = crane->m_pCraneEntity->GetPosition(); + distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(intensity)) { + CalculateDistance(distCalculated, distSquared); + m_sQueueSample.m_nVolume = ComputeVolume(100, 80.f, m_sQueueSample.m_fDistance); + /*if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 0; + m_sQueueSample.m_nSampleIndex = NO_SAMPLE; //SFX_CRANE_MAGNET; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 2; + m_sQueueSample.m_nFrequency = 6000; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nEmittingVolume = 100; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSpeedMultiplier = 4.0f; + m_sQueueSample.m_fSoundIntensity = intensity; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + }*/ + if (m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_AudioEvents) { + m_sQueueSample.m_nCounter = 1; + m_sQueueSample.m_nSampleIndex = SFX_COL_CAR_2; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_COL_CAR_2); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = true; + AddSampleToRequestedQueue(); + } + } + } + } } - return sfx; } -uint32 -cAudioManager::GetMistyTalkSfx(int16 sound) +bool +cAudioManager::ProcessEngineDamage(cVehicleParams *params) { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + CAutomobile *veh; + uint8 engineStatus; + uint8 emittingVolume; - switch (sound) { - case SOUND_PED_HANDS_UP: - GetPhrase(&sfx, &lastSfx, SFX_MISTY_GUN_COOL_1, 5); - break; - case SOUND_PED_ROBBED: - GetPhrase(&sfx, &lastSfx, SFX_MISTY_MUGGED_1, 2); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_MISTY_FIGHT_1, 4); - break; - case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastSfx, SFX_MISTY_DODGE_1, 5); - break; - case SOUND_PED_TAXI_CALL: - GetPhrase(&sfx, &lastSfx, SFX_MISTY_HERE_1, 4); - break; - default: - return GetGenericFemaleTalkSfx(sound); - break; + if (params->m_fDistance >= SQR(engineDamageIntensity)) + return false; + veh = (CAutomobile *)params->m_pVehicle; + if (veh->bEngineOn) { + engineStatus = veh->Damage.GetEngineStatus(); + if (engineStatus > 250 || engineStatus < 100) + return true; + if (engineStatus < 225) { + m_sQueueSample.m_nSampleIndex = SFX_JUMBO_TAXI; + emittingVolume = 6; + m_sQueueSample.m_nReleasingVolumeModificator = 7; + m_sQueueSample.m_nFrequency = 40000; + } else { + emittingVolume = 60; + m_sQueueSample.m_nSampleIndex = SFX_CAR_ON_FIRE; + m_sQueueSample.m_nReleasingVolumeModificator = 7; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CAR_ON_FIRE); + } + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + m_sQueueSample.m_nVolume = ComputeVolume(emittingVolume, engineDamageIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 28; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nEmittingVolume = emittingVolume; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_fSoundIntensity = engineDamageIntensity; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } } - return sfx; -} - -uint32 -cAudioManager::GetOJGTalkSfx(int16 sound) -{ - return GetGenericMaleTalkSfx(sound); -} - -uint32 -cAudioManager::GetCatatalinaTalkSfx(int16 sound) -{ - return GetGenericFemaleTalkSfx(sound); -} - -uint32 -cAudioManager::GetBomberTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - if (sound != SOUND_PED_BOMBER) - return GetGenericMaleTalkSfx(sound); - - GetPhrase(&sfx, &lastSfx, SFX_BOMBERMAN_1, 7); - return sfx; + return true; } -uint32 -cAudioManager::GetSecurityGuardTalkSfx(int16 sound) +void +cAudioManager::ProcessEntity(int32 id) { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - switch (sound) { - case SOUND_PED_HANDS_UP: - GetPhrase(&sfx, &lastSfx, SFX_SECURITY_GUARD_VOICE_1_GUN_COOL_1, 2); - break; - case SOUND_PED_HANDS_COWER: - sfx = SFX_SECURITY_GUARD_VOICE_1_GUN_PANIC_1; - break; - case SOUND_PED_CAR_JACKED: - case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastSfx, SFX_SECURITY_GUARD_VOICE_1_DRIVER_ABUSE_1, 6); - break; - case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastSfx, SFX_SECURITY_GUARD_VOICE_1_FIGHT_1, 2); - break; - case SOUND_PED_FLEE_RUN: -#ifdef FIX_BUGS - sfx = SFX_SECURITY_GUARD_VOICE_1_RUN_FROM_FIGHT_1; -#else - GetPhrase(&sfx, &lastSfx, SFX_SECURITY_GUARD_VOICE_1_DRIVER_ABUSE_1, 12); + if (m_asAudioEntities[id].m_nStatus) { + m_sQueueSample.m_nEntityIndex = id; + switch (m_asAudioEntities[id].m_nType) { + case AUDIOTYPE_PHYSICAL: + if (!m_nUserPause) { + m_sQueueSample.m_bReverbFlag = true; + ProcessPhysical(id); + } + break; + case AUDIOTYPE_EXPLOSION: + if (!m_nUserPause) { + m_sQueueSample.m_bReverbFlag = true; + ProcessExplosions(id); + } + break; + case AUDIOTYPE_FIRE: + if (!m_nUserPause) { + m_sQueueSample.m_bReverbFlag = true; + ProcessFires(id); + } + break; + case AUDIOTYPE_WEATHER: + if (!m_nUserPause) { + m_sQueueSample.m_bReverbFlag = true; + ProcessWeather(id); + } + break; + case AUDIOTYPE_CRANE: + if (!m_nUserPause) { + m_sQueueSample.m_bReverbFlag = true; + ProcessCrane(); + } + 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 - break; - default: - return GetGenericMaleTalkSfx(sound); + case AUDIOTYPE_FRONTEND: + m_sQueueSample.m_bReverbFlag = false; + ProcessFrontEnd(); + break; + case AUDIOTYPE_PROJECTILE: + if (!m_nUserPause) { + m_sQueueSample.m_bReverbFlag = true; + ProcessProjectiles(); + } + break; + case AUDIOTYPE_GARAGE: + if (!m_nUserPause) + ProcessGarages(); + break; + case AUDIOTYPE_FIREHYDRANT: + if (!m_nUserPause) { + m_sQueueSample.m_bReverbFlag = true; + ProcessFireHydrant(); + } + break; + case AUDIOTYPE_WATERCANNON: + if (!m_nUserPause) { + m_sQueueSample.m_bReverbFlag = true; + ProcessWaterCannon(id); + } + break; + default: + return; + } } - return sfx; -} - -uint32 -cAudioManager::GetChunkyTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - if (sound == SOUND_PED_DEATH) - return SFX_CHUNKY_DEATH; - - if (sound != SOUND_PED_FLEE_RUN) - return GetGenericMaleTalkSfx(sound); - - GetPhrase(&sfx, &lastSfx, SFX_CHUNKY_RUN_1, 5); - return sfx; } -uint32 -cAudioManager::GetGenericMaleTalkSfx(int16 sound) +void +cAudioManager::ProcessExplosions(int32 explosion) { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + uint8 type; + CVector *pos; + float distSquared; - switch (sound) { - case SOUND_PED_DEATH: - GetPhrase(&sfx, &lastSfx, SFX_GENERIC_MALE_DEATH_1, 8); - break; - case SOUND_PED_BULLET_HIT: - case SOUND_PED_DEFEND: - GetPhrase(&sfx, &lastSfx, SFX_GENERIC_MALE_GRUNT_1, 15); - break; - case SOUND_PED_BURNING: - GetPhrase(&sfx, &lastSfx, SFX_GENERIC_MALE_FIRE_1, 8); - break; - case SOUND_PED_FLEE_SPRINT: - GetPhrase(&sfx, &lastSfx, SFX_GENERIC_MALE_PANIC_1, 6); - break; - default: - return NO_SAMPLE; + for (uint8 i = 0; i < ARRAY_SIZE(gaExplosion); i++) { + if (CExplosion::GetExplosionActiveCounter(i) == 1) { + CExplosion::ResetExplosionActiveCounter(i); + type = CExplosion::GetExplosionType(i); + switch (type) { + case EXPLOSION_GRENADE: + case EXPLOSION_ROCKET: + case EXPLOSION_BARREL: + case EXPLOSION_TANK_GRENADE: + m_sQueueSample.m_fSoundIntensity = 400.0f; + m_sQueueSample.m_nSampleIndex = SFX_EXPLOSION_2; + m_sQueueSample.m_nFrequency = RandomDisplacement(2000) + 19000; + m_sQueueSample.m_nReleasingVolumeModificator = 0; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + break; + case EXPLOSION_MOLOTOV: + m_sQueueSample.m_fSoundIntensity = 200.0f; + m_sQueueSample.m_nSampleIndex = SFX_EXPLOSION_3; + m_sQueueSample.m_nFrequency = RandomDisplacement(1000) + 19000; + m_sQueueSample.m_nReleasingVolumeModificator = 0; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + break; + case EXPLOSION_MINE: + case EXPLOSION_HELI_BOMB: + m_sQueueSample.m_fSoundIntensity = 300.0f; + m_sQueueSample.m_nSampleIndex = SFX_ROCKET_LEFT; + m_sQueueSample.m_nFrequency = RandomDisplacement(1000) + 12347; + m_sQueueSample.m_nReleasingVolumeModificator = 0; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + break; + default: + m_sQueueSample.m_fSoundIntensity = 400.0f; + m_sQueueSample.m_nSampleIndex = SFX_EXPLOSION_1; + m_sQueueSample.m_nFrequency = RandomDisplacement(2000) + 19000; + if (type == EXPLOSION_HELI) + m_sQueueSample.m_nFrequency = 8 * m_sQueueSample.m_nFrequency / 10; + m_sQueueSample.m_nReleasingVolumeModificator = 0; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + break; + } + pos = CExplosion::GetExplosionPosition(i); + m_sQueueSample.m_vecPos = *pos; + distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { + m_sQueueSample.m_fDistance = Sqrt(distSquared); + m_sQueueSample.m_nVolume = ComputeVolume(maxVolume, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = i; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_nEmittingVolume = maxVolume; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = true; + AddSampleToRequestedQueue(); + } + } + } } - return sfx; } -uint32 -cAudioManager::GetGenericFemaleTalkSfx(int16 sound) +void +cAudioManager::ProcessFireHydrant() { - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; + float distSquared; + bool distCalculated = false; + static const int intensity = 35; - switch (sound) { - case SOUND_PED_DEATH: - GetPhrase(&sfx, &lastSfx, SFX_GENERIC_FEMALE_DEATH_1, 10); - break; - case SOUND_PED_BULLET_HIT: - case SOUND_PED_DEFEND: - GetPhrase(&sfx, &lastSfx, SFX_GENERIC_FEMALE_GRUNT_1, 11); - break; - case SOUND_PED_BURNING: - GetPhrase(&sfx, &lastSfx, SFX_GENERIC_FEMALE_FIRE_1, 9); - break; - case SOUND_PED_FLEE_SPRINT: - GetPhrase(&sfx, &lastSfx, SFX_GENERIC_FEMALE_PANIC_1, 8); - break; - default: - return NO_SAMPLE; + m_sQueueSample.m_vecPos = ((CEntity *)m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_pEntity)->GetPosition(); + distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(intensity)) { + CalculateDistance(distCalculated, distSquared); + m_sQueueSample.m_nVolume = ComputeVolume(40, 35.f, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 0; + m_sQueueSample.m_nSampleIndex = SFX_JUMBO_TAXI; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 4; + m_sQueueSample.m_nFrequency = 15591; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nEmittingVolume = 40; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_fSoundIntensity = intensity; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } } - return sfx; } -void -cAudioManager::GenerateIntegerRandomNumberTable() +void cAudioManager::ProcessFires(int32) { - for (int32 i = 0; i < ARRAY_SIZE(m_anRandomTable); i++) { - m_anRandomTable[i] = rand(); - } -} - -char * -cAudioManager::Get3DProviderName(uint8 id) const -{ - if (!m_bIsInitialised) - return nil; - if (id >= SampleManager.GetNum3DProvidersAvailable()) - return nil; - return SampleManager.Get3DProviderName(id); -} - -uint8 -cAudioManager::GetCDAudioDriveLetter() const -{ - if (m_bIsInitialised) - return SampleManager.GetCDAudioDriveLetter(); + CEntity *entity; + uint8 emittingVol; + float distSquared; - return 0; + for (uint8 i = 0; i < NUM_FIRES; i++) { + if (gFireManager.m_aFires[i].m_bIsOngoing && gFireManager.m_aFires[i].m_bAudioSet) { + entity = gFireManager.m_aFires[i].m_pEntity; + if (entity) { + switch (entity->GetType()) { + case ENTITY_TYPE_BUILDING: + m_sQueueSample.m_fSoundIntensity = 50.0f; + m_sQueueSample.m_nSampleIndex = SFX_CAR_ON_FIRE; + emittingVol = 100; + m_sQueueSample.m_nFrequency = 8 * SampleManager.GetSampleBaseFrequency(SFX_CAR_ON_FIRE) / 10; + m_sQueueSample.m_nFrequency += i * (m_sQueueSample.m_nFrequency / 64); + m_sQueueSample.m_nReleasingVolumeModificator = 6; + break; + case ENTITY_TYPE_PED: + m_sQueueSample.m_fSoundIntensity = 25.0f; + m_sQueueSample.m_nSampleIndex = SFX_PED_ON_FIRE; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_PED_ON_FIRE); + emittingVol = 60; + m_sQueueSample.m_nFrequency += i * (m_sQueueSample.m_nFrequency / 64); + m_sQueueSample.m_nReleasingVolumeModificator = 10; + break; + default: + m_sQueueSample.m_fSoundIntensity = 50.0f; + m_sQueueSample.m_nSampleIndex = SFX_CAR_ON_FIRE; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CAR_ON_FIRE); + m_sQueueSample.m_nFrequency += i * (m_sQueueSample.m_nFrequency / 64); + emittingVol = 80; + m_sQueueSample.m_nReleasingVolumeModificator = 8; + } + } else { + m_sQueueSample.m_fSoundIntensity = 50.0f; + m_sQueueSample.m_nSampleIndex = SFX_CAR_ON_FIRE; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CAR_ON_FIRE); + m_sQueueSample.m_nFrequency += i * (m_sQueueSample.m_nFrequency / 64); + emittingVol = 80; + m_sQueueSample.m_nReleasingVolumeModificator = 8; + } + m_sQueueSample.m_vecPos = gFireManager.m_aFires[i].m_vecPos; + distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { + m_sQueueSample.m_fDistance = Sqrt(distSquared); + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = i; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nReleasingVolumeDivider = 10; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nEmittingVolume = emittingVol; + 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(); + } + } + } + } } -int8 -cAudioManager::GetCurrent3DProviderIndex() const +void +cAudioManager::ProcessFrontEnd() { - if (m_bIsInitialised) - return SampleManager.GetCurrent3DProviderIndex(); - - return -1; -} + bool stereo; + bool processedPickup; + bool processedMission; + int16 sample; -float -cAudioManager::GetDistanceSquared(const CVector &v) const -{ - const CVector &c = TheCamera.GetPosition(); - return sq(v.x - c.x) + sq(v.y - c.y) + sq((v.z - c.z) * 0.2f); -} + static uint8 counter = 0; + static uint32 cPickupNextFrame = 0; + static uint32 cPartMisComNextFrame = 0; -int32 -cAudioManager::GetJumboTaxiFreq() const -{ - return (60.833f * m_sQueueSample.m_fDistance) + 22050; -} + for (uint32 i = 0; i < m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_AudioEvents; i++) { + processedPickup = false; + stereo = false; + processedMission = false; + switch (m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i]) { + case SOUND_WEAPON_SNIPER_SHOT_NO_ZOOM: + m_sQueueSample.m_nSampleIndex = SFX_ERROR_FIRE_RIFLE; + break; + 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_RACE_START_3: + case SOUND_RACE_START_2: + case SOUND_RACE_START_1: + case SOUND_CLOCK_TICK: + m_sQueueSample.m_nSampleIndex = SFX_TIMER_BEEP; + break; + //case SOUND_RACE_START_GO: + // m_sQueueSample.m_nSampleIndex = SFX_PART_MISSION_COMPLETE; + // break; + //case SOUND_PART_MISSION_COMPLETE: + // m_sQueueSample.m_nSampleIndex = SFX_PART_MISSION_COMPLETE; + // processedMission = true; + // break; + case SOUND_FRONTEND_MENU_STARTING: + m_sQueueSample.m_nSampleIndex = SFX_FE_HIGHLIGHT_LEFT; + stereo = true; + break; + case SOUND_FRONTEND_MENU_COMPLETED: + m_sQueueSample.m_nSampleIndex = SFX_FE_HIGHLIGHT_LEFT; + stereo = true; + break; + case SOUND_FRONTEND_MENU_DENIED: + m_sQueueSample.m_nSampleIndex = SFX_FE_HIGHLIGHT_LEFT; + stereo = true; + break; + case SOUND_FRONTEND_MENU_SUCCESS: + m_sQueueSample.m_nSampleIndex = SFX_FE_SELECT_LEFT; + stereo = true; + break; + case SOUND_FRONTEND_EXIT: + m_sQueueSample.m_nSampleIndex = SFX_FE_BACK_LEFT; + stereo = true; + break; + //case SOUND_9A: + // m_sQueueSample.m_nSampleIndex = SFX_STEREO_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_FAIL: + // 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; + default: + continue; + } -bool -cAudioManager::GetMissionAudioLoadingStatus() const -{ - if (m_bIsInitialised) - return m_sMissionAudio.m_nLoadingStatus; + if (processedPickup) { + if (m_FrameCounter <= cPickupNextFrame) + continue; + cPickupNextFrame = m_FrameCounter + 5; + } else if (processedMission) { + if (m_FrameCounter <= cPartMisComNextFrame) + continue; + cPartMisComNextFrame = m_FrameCounter + 5; + } - return true; + 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) { + if (1.f == m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i]) + m_sQueueSample.m_nFrequency = 32000; + else + m_sQueueSample.m_nFrequency = 48000;*/ + } else { + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + } + m_sQueueSample.m_nVolume = 110; + m_sQueueSample.m_nCounter = counter++; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nReleasingVolumeModificator = 0; + m_sQueueSample.m_bIs2D = true; + m_sQueueSample.m_nEmittingVolume = m_sQueueSample.m_nVolume; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + if (stereo) + m_sQueueSample.m_nOffset = m_anRandomTable[0] & 31; + else + m_sQueueSample.m_nOffset = 63; + m_sQueueSample.m_bReverbFlag = false; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + if (stereo) { + ++m_sQueueSample.m_nSampleIndex; + m_sQueueSample.m_nCounter = counter++; + m_sQueueSample.m_nOffset = maxVolume - m_sQueueSample.m_nOffset; + AddSampleToRequestedQueue(); + } + } } -uint8 -cAudioManager::GetNum3DProvidersAvailable() const +void +cAudioManager::ProcessGarages() { - if (m_bIsInitialised) - return SampleManager.GetNum3DProvidersAvailable(); - return 0; -} + CEntity *entity; + eGarageState state; + uint32 sampleIndex; + uint8 j; + float distSquared; + bool distCalculated; -int32 -cAudioManager::GetPedCommentSfx(CPed *ped, int32 sound) -{ - if (ped->IsPlayer()) - return GetPlayerTalkSfx(sound); + static uint8 iSound = 32; - switch (ped->GetModelIndex()) { - case MI_COP: - return GetCopTalkSfx(sound); - case MI_SWAT: - return GetSwatTalkSfx(sound); - case MI_FBI: - return GetFBITalkSfx(sound); - case MI_ARMY: - return GetArmyTalkSfx(sound); - case MI_MEDIC: - return GetMedicTalkSfx(sound); - case MI_FIREMAN: - return GetFiremanTalkSfx(sound); - case MI_MALE01: - return GetNormalMaleTalkSfx(sound); - case MI_TAXI_D: - return GetTaxiDriverTalkSfx(sound); -// TODO(MIAMI): just making this compile -/* - case MI_PIMP: - return GetPimpTalkSfx(sound); - case MI_GANG01: - case MI_GANG02: - return GetMafiaTalkSfx(sound); - case MI_GANG03: - case MI_GANG04: - return GetTriadTalkSfx(sound); - case MI_GANG05: - case MI_GANG06: - return GetDiabloTalkSfx(sound); - case MI_GANG07: - case MI_GANG08: - return GetYakuzaTalkSfx(sound); - case MI_GANG09: - case MI_GANG10: - return GetYardieTalkSfx(sound); - case MI_GANG11: - case MI_GANG12: - return GetColumbianTalkSfx(sound); - case MI_GANG13: - case MI_GANG14: - return GetHoodTalkSfx(sound); - case MI_CRIMINAL01: - return GetBlackCriminalTalkSfx(sound); - case MI_CRIMINAL02: - return GetWhiteCriminalTalkSfx(sound); - case MI_SPECIAL01: - case MI_SPECIAL02: - case MI_SPECIAL03: - case MI_SPECIAL04: - return GetSpecialCharacterTalkSfx(ped->GetModelIndex(), sound); - case MI_MALE02: - return GetMaleNo2TalkSfx(sound); - case MI_MALE03: - case MI_P_MAN1: - case MI_P_MAN2: - return GetBlackProjectMaleTalkSfx(sound, ped->GetModelIndex()); - case MI_FATMALE01: - return GetWhiteFatMaleTalkSfx(sound); - case MI_FATMALE02: - return GetBlackFatMaleTalkSfx(sound); - case MI_FEMALE01: - return GetBlackCasualFemaleTalkSfx(sound); - case MI_FEMALE02: - case MI_CAS_WOM: - return GetWhiteCasualFemaleTalkSfx(sound); - case MI_FEMALE03: - return GetFemaleNo3TalkSfx(sound); - case MI_FATFEMALE01: - return GetBlackFatFemaleTalkSfx(sound); - case MI_FATFEMALE02: - return GetWhiteFatFemaleTalkSfx(sound); - case MI_PROSTITUTE: - return GetBlackFemaleProstituteTalkSfx(sound); - case MI_PROSTITUTE2: - return GetWhiteFemaleProstituteTalkSfx(sound); - case MI_P_WOM1: - return GetBlackProjectFemaleOldTalkSfx(sound); - case MI_P_WOM2: - return GetBlackProjectFemaleYoungTalkSfx(sound); - case MI_CT_MAN1: - return GetChinatownMaleOldTalkSfx(sound); - case MI_CT_MAN2: - return GetChinatownMaleYoungTalkSfx(sound); - case MI_CT_WOM1: - return GetChinatownFemaleOldTalkSfx(sound); - case MI_CT_WOM2: - return GetChinatownFemaleYoungTalkSfx(sound); - case MI_LI_MAN1: - case MI_LI_MAN2: - return GetLittleItalyMaleTalkSfx(sound); - case MI_LI_WOM1: - return GetLittleItalyFemaleOldTalkSfx(sound); - case MI_LI_WOM2: - return GetLittleItalyFemaleYoungTalkSfx(sound); - case MI_DOCKER1: - return GetWhiteDockerMaleTalkSfx(sound); - case MI_DOCKER2: - return GetBlackDockerMaleTalkSfx(sound); - case MI_SCUM_MAN: - return GetScumMaleTalkSfx(sound); - case MI_SCUM_WOM: - return GetScumFemaleTalkSfx(sound); - case MI_WORKER1: - return GetWhiteWorkerMaleTalkSfx(sound); - case MI_WORKER2: - return GetBlackWorkerMaleTalkSfx(sound); - case MI_B_MAN1: - case MI_B_MAN3: - return GetBusinessMaleYoungTalkSfx(sound, ped->GetModelIndex()); - case MI_B_MAN2: - return GetBusinessMaleOldTalkSfx(sound); - case MI_B_WOM1: - case MI_B_WOM2: - return GetWhiteBusinessFemaleTalkSfx(sound, ped->GetModelIndex()); - case MI_B_WOM3: - return GetBlackBusinessFemaleTalkSfx(sound); - case MI_MOD_MAN: - return GetSupermodelMaleTalkSfx(sound); - case MI_MOD_WOM: - return GetSupermodelFemaleTalkSfx(sound); - case MI_ST_MAN: - return GetStewardMaleTalkSfx(sound); - case MI_ST_WOM: - return GetStewardFemaleTalkSfx(sound); - case MI_FAN_MAN1: - case MI_FAN_MAN2: - return GetFanMaleTalkSfx(sound, ped->GetModelIndex()); - case MI_FAN_WOM: - return GetFanFemaleTalkSfx(sound); - case MI_HOS_MAN: - return GetHospitalMaleTalkSfx(sound); - case MI_HOS_WOM: - return GetHospitalFemaleTalkSfx(sound); - case MI_CONST1: - return GetWhiteConstructionWorkerTalkSfx(sound); - case MI_CONST2: - return GetBlackConstructionWorkerTalkSfx(sound); - case MI_SHOPPER1: - case MI_SHOPPER2: - case MI_SHOPPER3: - return GetShopperFemaleTalkSfx(sound, ped->GetModelIndex()); - case MI_STUD_MAN: - return GetStudentMaleTalkSfx(sound); - case MI_STUD_WOM: - return GetStudentFemaleTalkSfx(sound); - case MI_CAS_MAN: - return GetCasualMaleOldTalkSfx(sound); -*/ - default: - return GetGenericMaleTalkSfx(sound); +#define LOOP_HELPER \ + for (j = 0; j < m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_AudioEvents; ++j) { \ + switch (m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[j]) { \ + case SOUND_GARAGE_DOOR_CLOSED: \ + case SOUND_GARAGE_DOOR_OPENED: \ + if (distSquared < 6400.f) { \ + CalculateDistance(distCalculated, distSquared); \ + m_sQueueSample.m_nVolume = ComputeVolume(60, 80.f, m_sQueueSample.m_fDistance); \ + if (m_sQueueSample.m_nVolume) { \ + if (CGarages::aGarages[i].m_eGarageType == GARAGE_CRUSHER) { \ + m_sQueueSample.m_nSampleIndex = SFX_COL_CAR_PANEL_2; \ + m_sQueueSample.m_nFrequency = 6735; \ + } else if (m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[j] == 69) { \ + m_sQueueSample.m_nSampleIndex = SFX_COL_CAR_PANEL_2; \ + m_sQueueSample.m_nFrequency = 22000; \ + } else { \ + m_sQueueSample.m_nSampleIndex = SFX_COL_GARAGE_DOOR_1; \ + m_sQueueSample.m_nFrequency = 18000; \ + } \ + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; \ + m_sQueueSample.m_nReleasingVolumeModificator = 4; \ + m_sQueueSample.m_nEmittingVolume = 60; \ + m_sQueueSample.m_fSpeedMultiplier = 0.0f; \ + m_sQueueSample.m_fSoundIntensity = 80.0f; \ + /*m_sQueueSample.m_nReleasingVolumeModificator = 4;*/ \ + m_sQueueSample.m_bReverbFlag = true; \ + /*m_sQueueSample.m_bReverbFlag = true;*/ \ + m_sQueueSample.m_bIs2D = false; \ + m_sQueueSample.m_bReleasingSoundFlag = true; \ + m_sQueueSample.m_nLoopCount = 1; \ + m_sQueueSample.m_nLoopStart = 0; \ + m_sQueueSample.m_nLoopEnd = -1; \ + m_sQueueSample.m_nCounter = iSound++; \ + if (iSound < 32) \ + iSound = 32; \ + m_sQueueSample.m_bRequireReflection = true; \ + AddSampleToRequestedQueue(); \ + } \ + } \ + break; \ + default: \ + continue; \ + } \ } -} -void -cAudioManager::GetPhrase(uint32 *phrase, uint32 *prevPhrase, uint32 sample, uint32 maxOffset) const -{ - *phrase = sample + m_anRandomTable[m_sQueueSample.m_nEntityIndex & 3] % maxOffset; + for (uint32 i = 0; i < CGarages::NumGarages; ++i) { + if (CGarages::aGarages[i].m_eGarageType == GARAGE_NONE) + continue; + entity = CGarages::aGarages[i].m_pDoor1; + if (!entity) + continue; + m_sQueueSample.m_vecPos = entity->GetPosition(); + distCalculated = false; + distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < 6400.f) { + state = CGarages::aGarages[i].m_eGarageState; + if (state == GS_OPENING || state == GS_CLOSING || state == GS_AFTERDROPOFF) { + CalculateDistance(distCalculated, distSquared); + m_sQueueSample.m_nVolume = ComputeVolume(90, 80.f, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + if (CGarages::aGarages[i].m_eGarageType == GARAGE_CRUSHER) { + if (CGarages::aGarages[i].m_eGarageState == GS_AFTERDROPOFF) { + if (!(m_FrameCounter & 1)) { + LOOP_HELPER + continue; + } + if (m_anRandomTable[1] & 1) { + sampleIndex = m_anRandomTable[2] % 5 + SFX_COL_CAR_1; + } else { + sampleIndex = m_anRandomTable[2] % 6 + SFX_COL_CAR_PANEL_1; + } + m_sQueueSample.m_nSampleIndex = sampleIndex; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex) / 2; + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_nCounter = iSound++; + if (iSound < 32) + iSound = 32; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nEmittingVolume = 90; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_fSoundIntensity = 80.0f; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + LOOP_HELPER + continue; + } + m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; + m_sQueueSample.m_nFrequency = 6543; + } else { + m_sQueueSample.m_nSampleIndex = SFX_GARAGE_DOOR_LOOP; + m_sQueueSample.m_nFrequency = 13961; + } + m_sQueueSample.m_nCounter = i; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nEmittingVolume = 90; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_fSoundIntensity = 80.0f; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } + LOOP_HELPER + } + } +#undef LOOP_HELPER +} - // check if the same sfx like last time, if yes, then try use next one, - // if exceeded range, then choose first available sample - if (*phrase == *prevPhrase && ++*phrase >= sample + maxOffset) - *phrase = sample; - *prevPhrase = *phrase; -} - -float -cAudioManager::GetVehicleDriveWheelSkidValue(uint8 wheel, CAutomobile *automobile, cTransmission *transmission, float velocityChange) -{ - tWheelState wheelState; - float relativeVelChange; - float gasPedalAudio = automobile->m_fGasPedalAudio; - float modificator; - float velChange; - float relativeVel; - - wheelState = automobile->m_aWheelState[wheel]; - if (wheelState == WHEEL_STATE_SPINNING && gasPedalAudio > 0.4f) { - relativeVelChange = (gasPedalAudio - 0.4f) * 1.25f; - - } else if (wheelState == WHEEL_STATE_SKIDDING) { - relativeVelChange = Min(1.0f, Abs(velocityChange) / transmission->fMaxVelocity); - } else if (wheelState == WHEEL_STATE_FIXED) { - modificator = 0.4f; - relativeVelChange = gasPedalAudio; - if (relativeVelChange > 0.4f) { - relativeVelChange = relativeVelChange - 0.4f; - modificator = 5.f / 3.f; - } - velChange = Abs(velocityChange); - if (relativeVelChange > 0.4f) - relativeVelChange = relativeVelChange * modificator; - if (velChange > 0.04f) { - relativeVel = Min(1.0f, velChange / transmission->fMaxVelocity); - } else { - relativeVel = 0.0f; - } - if (relativeVel >= relativeVelChange) - relativeVelChange = relativeVel; - } else { - relativeVelChange = 0.0f; - } - - return Max(relativeVelChange, Min(1.0f, Abs(automobile->m_vecTurnSpeed.z) * 20.0f)); -} - -float -cAudioManager::GetVehicleNonDriveWheelSkidValue(uint8 wheel, CAutomobile *automobile, cTransmission *transmission, float velocityChange) -{ - float relativeVelChange; - - if (automobile->m_aWheelState[wheel] == 2) { - relativeVelChange = Min(1.0f, Abs(velocityChange) / transmission->fMaxVelocity); - } else { - relativeVelChange = 0.0f; - } - - return Max(relativeVelChange, Min(1.0f, Abs(automobile->m_vecTurnSpeed.z) * 20.0f)); -} - -bool -cAudioManager::HasAirBrakes(int32 model) const -{ - return model == LINERUN || model == FIRETRUK || model == TRASH || model == BUS || model == COACH; -} - -void -cAudioManager::Initialise() -{ - if (!m_bIsInitialised) { - PreInitialiseGameSpecificSetup(); - m_bIsInitialised = SampleManager.Initialise(); - if (m_bIsInitialised) { - m_nActiveSamples = SampleManager.GetMaximumSupportedChannels(); - if (m_nActiveSamples <= 1) { - Terminate(); - } else { - --m_nActiveSamples; - PostInitialiseGameSpecificSetup(); - InitialisePoliceRadioZones(); - InitialisePoliceRadio(); - MusicManager.Initialise(); - } - } - } -} - -void -cAudioManager::InterrogateAudioEntities() -{ - for (int32 i = 0; i < m_nAudioEntitiesTotal; i++) { - ProcessEntity(m_anAudioEntityIndices[i]); - m_asAudioEntities[m_anAudioEntityIndices[i]].m_AudioEvents = 0; - } -} - -bool -cAudioManager::IsAudioInitialised() const -{ - return m_bIsInitialised; -} - -bool -cAudioManager::IsMissionAudioSampleFinished() -{ - if (m_bIsInitialised) - return m_sMissionAudio.m_nPlayStatus == PLAY_STATUS_FINISHED; - - static int32 cPretendFrame = 1; - - return (cPretendFrame++ & 63) == 0; -} +struct tHelicopterSampleData { + float m_fMaxDistance; + float m_fBaseDistance; + uint8 m_bBaseVolume; +}; bool -cAudioManager::IsMP3RadioChannelAvailable() const +cAudioManager::ProcessHelicopter(cVehicleParams *params) { - if (m_bIsInitialised) - return SampleManager.IsMP3RadioChannelAvailable(); - - return false; -} + // this doesn't seem to be in miami at all + CHeli *heli; + float MaxDist; + float dist; + float baseDist; + int32 emittingVol; + static const tHelicopterSampleData gHeliSfxRanges[3] = {{400.f, 380.f, 100}/*, {100.f, 70.f, maxVolume}, {60.f, 30.f, maxVolume}*/}; -bool -cAudioManager::MissionScriptAudioUsesPoliceChannel(int32 soundMission) const -{ - switch (soundMission) { - case STREAMED_SOUND_MISSION_J6_D: - case STREAMED_SOUND_MISSION_T4_A: - case STREAMED_SOUND_MISSION_S1_H: - case STREAMED_SOUND_MISSION_S3_B: - case STREAMED_SOUND_MISSION_EL3_A: - case STREAMED_SOUND_MISSION_A3_A: - case STREAMED_SOUND_MISSION_A5_A: - case STREAMED_SOUND_MISSION_K1_A: - case STREAMED_SOUND_MISSION_R1_A: - case STREAMED_SOUND_MISSION_R5_A: - case STREAMED_SOUND_MISSION_LO2_A: - case STREAMED_SOUND_MISSION_LO6_A: - return true; - default: + if (gHeliSfxRanges[0].m_fMaxDistance * gHeliSfxRanges[0].m_fMaxDistance <= params->m_fDistance) return false; - } -} - -void -cAudioManager::PlayLoadedMissionAudio() -{ - if (m_bIsInitialised && m_sMissionAudio.m_nSampleIndex != NO_SAMPLE && m_sMissionAudio.m_nLoadingStatus == LOADING_STATUS_LOADED && - !m_sMissionAudio.m_nPlayStatus) { - m_sMissionAudio.m_bIsPlayed = true; - } -} -void -cAudioManager::PlayOneShot(int32 index, int16 sound, float vol) -{ - static const uint8 OneShotPriority[] = {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 5, 5, 3, 5, 2, 2, 1, 1, 3, 1, 3, 3, 1, 1, 1, 4, 4, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 3, 2, 2, 2, 2, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 3, 1, 1, 1, 9, - 2, 2, 0, 0, 0, 0, 3, 3, 5, 1, 1, 1, 1, 3, 4, 7, 6, 6, 6, 6, 1, 3, 4, 3, 4, 2, 1, 3, 5, 4, 6, 6, 1, 3, - 1, 1, 1, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + heli = (CHeli *)params->m_pVehicle; + for (uint32 i = 0; i < ARRAY_SIZE(gHeliSfxRanges); i++) { + MaxDist = gHeliSfxRanges[i].m_fMaxDistance; + dist = m_sQueueSample.m_fDistance; + if (dist >= MaxDist) + return true; + baseDist = gHeliSfxRanges[i].m_fBaseDistance; + if (dist < baseDist) + emittingVol = (gHeliSfxRanges[i].m_bBaseVolume * ((MaxDist - dist) / (MaxDist - baseDist))); + else + emittingVol = gHeliSfxRanges[i].m_bBaseVolume; - if (m_bIsInitialised) { - if (index >= 0 && index < totalAudioEntitiesSlots) { - tAudioEntity &entity = m_asAudioEntities[index]; - if (entity.m_bIsUsed) { - if (sound < SOUND_TOTAL_SOUNDS) { - if (entity.m_nType == AUDIOTYPE_SCRIPTOBJECT) { - if (m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal < ARRAY_SIZE(m_sAudioScriptObjectManager.m_anScriptObjectEntityIndices)) { - entity.m_awAudioEvent[0] = sound; - entity.m_AudioEvents = 1; - m_sAudioScriptObjectManager.m_anScriptObjectEntityIndices[m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal++] = index; - } - } else { - int32 i = 0; - while (true) { - if (i >= entity.m_AudioEvents) { - if (entity.m_AudioEvents < ARRAY_SIZE(entity.m_awAudioEvent)) { - entity.m_awAudioEvent[i] = sound; - entity.m_afVolume[i] = vol; - ++entity.m_AudioEvents; - } - return; - } - if (OneShotPriority[entity.m_awAudioEvent[i]] > OneShotPriority[sound]) - break; - ++i; - } - if (i < NUM_AUDIOENTITY_EVENTS - 1) { - memmove(&entity.m_awAudioEvent[i + 1], &entity.m_awAudioEvent[i], (NUM_AUDIOENTITY_EVENTS - 1 - i) * NUM_AUDIOENTITY_EVENTS / 2); - memmove(&entity.m_afVolume[i + 1], &entity.m_afVolume[i], (NUM_AUDIOENTITY_EVENTS - 1 - i) * NUM_AUDIOENTITY_EVENTS); - } - entity.m_awAudioEvent[i] = sound; - entity.m_afVolume[i] = vol; - if (entity.m_AudioEvents < ARRAY_SIZE(entity.m_awAudioEvent)) - ++entity.m_AudioEvents; - } - } - } + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, gHeliSfxRanges[i].m_fMaxDistance, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = i + 65; + m_sQueueSample.m_nSampleIndex = i + SFX_HELI_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 0; + m_sQueueSample.m_nFrequency = 1200 * heli->m_nHeliId + SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSpeedMultiplier = 6.0f; + m_sQueueSample.m_fSoundIntensity = gHeliSfxRanges[i].m_fMaxDistance; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); } } + return true; } void -cAudioManager::PlayerJustGotInCar() const -{ - if (m_bIsInitialised) { - bPlayerJustEnteredCar = true; - } -} - -void -cAudioManager::PlayerJustLeftCar(void) const +cAudioManager::ProcessJumbo(cVehicleParams *params) { - // UNUSED: This is a perfectly empty function. -} + CPlane *plane; + float position; -void -cAudioManager::PostInitialiseGameSpecificSetup() -{ - m_nFireAudioEntity = CreateEntity(AUDIOTYPE_FIRE, &gFireManager); - if (m_nFireAudioEntity >= 0) - SetEntityStatus(m_nFireAudioEntity, 1); - - m_nCollisionEntity = CreateEntity(AUDIOTYPE_COLLISION, (void *)1); - if (m_nCollisionEntity >= 0) - SetEntityStatus(m_nCollisionEntity, 1); - - m_nFrontEndEntity = CreateEntity(AUDIOTYPE_FRONTEND, (void *)1); - if (m_nFrontEndEntity >= 0) - SetEntityStatus(m_nFrontEndEntity, 1); - - m_nProjectileEntity = CreateEntity(AUDIOTYPE_PROJECTILE, (void *)1); - if (m_nProjectileEntity >= 0) - SetEntityStatus(m_nProjectileEntity, 1); - - m_nWaterCannonEntity = CreateEntity(AUDIOTYPE_WATERCANNON, (void *)1); - if (m_nWaterCannonEntity >= 0) - SetEntityStatus(m_nWaterCannonEntity, 1); - - m_nPoliceChannelEntity = CreateEntity(AUDIOTYPE_POLICERADIO, (void *)1); - if (m_nPoliceChannelEntity >= 0) - SetEntityStatus(m_nPoliceChannelEntity, 1); - - m_nBridgeEntity = CreateEntity(AUDIOTYPE_BRIDGE, (void *)1); - if (m_nBridgeEntity >= 0) - SetEntityStatus(m_nBridgeEntity, 1); - - m_sMissionAudio.m_nSampleIndex = NO_SAMPLE; - m_sMissionAudio.m_nLoadingStatus = LOADING_STATUS_NOT_LOADED; - m_sMissionAudio.m_nPlayStatus = PLAY_STATUS_STOPPED; - m_sMissionAudio.field_22 = 0; - m_sMissionAudio.m_bIsPlayed = false; - m_sMissionAudio.m_bPredefinedProperties = 1; - m_sMissionAudio.m_nMissionAudioCounter = 0; - ResetAudioLogicTimers(CTimer::GetTimeInMilliseconds()); -} - -void -cAudioManager::PostTerminateGameSpecificShutdown() -{ - ; -} - -void -cAudioManager::PreInitialiseGameSpecificSetup() const -{ - BankStartOffset[SAMPLEBANK_MAIN] = SFX_CAR_HORN_JEEP; - BankStartOffset[SAMPLEBANK_PED] = SFX_COP_VOICE_1_ARREST_1; -} - -struct MissionAudioData { - const char *m_pName; - int32 m_nId; -}; - -const MissionAudioData MissionAudioNameSfxAssoc[] = { - {"lib_a1", STREAMED_SOUND_MISSION_LIB_A1}, {"lib_a2", STREAMED_SOUND_MISSION_LIB_A2}, {"lib_a", STREAMED_SOUND_MISSION_LIB_A}, - {"lib_b", STREAMED_SOUND_MISSION_LIB_B}, {"lib_c", STREAMED_SOUND_MISSION_LIB_C}, {"lib_d", STREAMED_SOUND_MISSION_LIB_D}, - {"l2_a", STREAMED_SOUND_MISSION_L2_A}, {"j4t_1", STREAMED_SOUND_MISSION_J4T_1}, {"j4t_2", STREAMED_SOUND_MISSION_J4T_2}, - {"j4t_3", STREAMED_SOUND_MISSION_J4T_3}, {"j4t_4", STREAMED_SOUND_MISSION_J4T_4}, {"j4_a", STREAMED_SOUND_MISSION_J4_A}, - {"j4_b", STREAMED_SOUND_MISSION_J4_B}, {"j4_c", STREAMED_SOUND_MISSION_J4_C}, {"j4_d", STREAMED_SOUND_MISSION_J4_D}, - {"j4_e", STREAMED_SOUND_MISSION_J4_E}, {"j4_f", STREAMED_SOUND_MISSION_J4_F}, {"j6_1", STREAMED_SOUND_MISSION_J6_1}, - {"j6_a", STREAMED_SOUND_MISSION_J6_A}, {"j6_b", STREAMED_SOUND_MISSION_J6_B}, {"j6_c", STREAMED_SOUND_MISSION_J6_C}, - {"j6_d", STREAMED_SOUND_MISSION_J6_D}, {"t4_a", STREAMED_SOUND_MISSION_T4_A}, {"s1_a", STREAMED_SOUND_MISSION_S1_A}, - {"s1_a1", STREAMED_SOUND_MISSION_S1_A1}, {"s1_b", STREAMED_SOUND_MISSION_S1_B}, {"s1_c", STREAMED_SOUND_MISSION_S1_C}, - {"s1_c1", STREAMED_SOUND_MISSION_S1_C1}, {"s1_d", STREAMED_SOUND_MISSION_S1_D}, {"s1_e", STREAMED_SOUND_MISSION_S1_E}, - {"s1_f", STREAMED_SOUND_MISSION_S1_F}, {"s1_g", STREAMED_SOUND_MISSION_S1_G}, {"s1_h", STREAMED_SOUND_MISSION_S1_H}, - {"s1_i", STREAMED_SOUND_MISSION_S1_I}, {"s1_j", STREAMED_SOUND_MISSION_S1_J}, {"s1_k", STREAMED_SOUND_MISSION_S1_K}, - {"s1_l", STREAMED_SOUND_MISSION_S1_L}, {"s3_a", STREAMED_SOUND_MISSION_S3_A}, {"s3_b", STREAMED_SOUND_MISSION_S3_B}, - {"el3_a", STREAMED_SOUND_MISSION_EL3_A}, {"mf1_a", STREAMED_SOUND_MISSION_MF1_A}, {"mf2_a", STREAMED_SOUND_MISSION_MF2_A}, - {"mf3_a", STREAMED_SOUND_MISSION_MF3_A}, {"mf3_b", STREAMED_SOUND_MISSION_MF3_B}, {"mf3_b1", STREAMED_SOUND_MISSION_MF3_B1}, - {"mf3_c", STREAMED_SOUND_MISSION_MF3_C}, {"mf4_a", STREAMED_SOUND_MISSION_MF4_A}, {"mf4_b", STREAMED_SOUND_MISSION_MF4_B}, - {"mf4_c", STREAMED_SOUND_MISSION_MF4_C}, {"a1_a", STREAMED_SOUND_MISSION_A1_A}, {"a3_a", STREAMED_SOUND_MISSION_A3_A}, - {"a5_a", STREAMED_SOUND_MISSION_A5_A}, {"a4_a", STREAMED_SOUND_MISSION_A4_A}, {"a4_b", STREAMED_SOUND_MISSION_A4_B}, - {"a4_c", STREAMED_SOUND_MISSION_A4_C}, {"a4_d", STREAMED_SOUND_MISSION_A4_D}, {"k1_a", STREAMED_SOUND_MISSION_K1_A}, - {"k3_a", STREAMED_SOUND_MISSION_K3_A}, {"r1_a", STREAMED_SOUND_MISSION_R1_A}, {"r2_a", STREAMED_SOUND_MISSION_R2_A}, - {"r2_b", STREAMED_SOUND_MISSION_R2_B}, {"r2_c", STREAMED_SOUND_MISSION_R2_C}, {"r2_d", STREAMED_SOUND_MISSION_R2_D}, - {"r2_e", STREAMED_SOUND_MISSION_R2_E}, {"r2_f", STREAMED_SOUND_MISSION_R2_F}, {"r2_g", STREAMED_SOUND_MISSION_R2_G}, - {"r2_h", STREAMED_SOUND_MISSION_R2_H}, {"r5_a", STREAMED_SOUND_MISSION_R5_A}, {"r6_a", STREAMED_SOUND_MISSION_R6_A}, - {"r6_a1", STREAMED_SOUND_MISSION_R6_A1}, {"r6_b", STREAMED_SOUND_MISSION_R6_B}, {"lo2_a", STREAMED_SOUND_MISSION_LO2_A}, - {"lo6_a", STREAMED_SOUND_MISSION_LO6_A}, {"yd2_a", STREAMED_SOUND_MISSION_YD2_A}, {"yd2_b", STREAMED_SOUND_MISSION_YD2_B}, - {"yd2_c", STREAMED_SOUND_MISSION_YD2_C}, {"yd2_c1", STREAMED_SOUND_MISSION_YD2_C1}, {"yd2_d", STREAMED_SOUND_MISSION_YD2_D}, - {"yd2_e", STREAMED_SOUND_MISSION_YD2_E}, {"yd2_f", STREAMED_SOUND_MISSION_YD2_F}, {"yd2_g", STREAMED_SOUND_MISSION_YD2_G}, - {"yd2_h", STREAMED_SOUND_MISSION_YD2_H}, {"yd2_ass", STREAMED_SOUND_MISSION_YD2_ASS}, {"yd2_ok", STREAMED_SOUND_MISSION_YD2_OK}, - {"h5_a", STREAMED_SOUND_MISSION_H5_A}, {"h5_b", STREAMED_SOUND_MISSION_H5_B}, {"h5_c", STREAMED_SOUND_MISSION_H5_C}, - {"ammu_a", STREAMED_SOUND_MISSION_AMMU_A}, {"ammu_b", STREAMED_SOUND_MISSION_AMMU_B}, {"ammu_c", STREAMED_SOUND_MISSION_AMMU_C}, - {"door_1", STREAMED_SOUND_MISSION_DOOR_1}, {"door_2", STREAMED_SOUND_MISSION_DOOR_2}, {"door_3", STREAMED_SOUND_MISSION_DOOR_3}, - {"door_4", STREAMED_SOUND_MISSION_DOOR_4}, {"door_5", STREAMED_SOUND_MISSION_DOOR_5}, {"door_6", STREAMED_SOUND_MISSION_DOOR_6}, - {"t3_a", STREAMED_SOUND_MISSION_T3_A}, {"t3_b", STREAMED_SOUND_MISSION_T3_B}, {"t3_c", STREAMED_SOUND_MISSION_T3_C}, - {"k1_b", STREAMED_SOUND_MISSION_K1_B}, {"c_1", STREAMED_SOUND_MISSION_CAT1}}; - -int32 -FindMissionAudioSfx(const char *name) -{ - for (uint32 i = 0; i < ARRAY_SIZE(MissionAudioNameSfxAssoc); ++i) { - if (!CGeneral::faststricmp(MissionAudioNameSfxAssoc[i].m_pName, name)) - return MissionAudioNameSfxAssoc[i].m_nId; - } - debug("Can't find mission audio %s", name); - return NO_SAMPLE; -} - -void -cAudioManager::PreloadMissionAudio(const char *name) -{ - if (m_bIsInitialised) { - int32 missionAudioSfx = FindMissionAudioSfx(name); - if (missionAudioSfx != NO_SAMPLE) { - m_sMissionAudio.m_nSampleIndex = missionAudioSfx; - m_sMissionAudio.m_nLoadingStatus = LOADING_STATUS_NOT_LOADED; - m_sMissionAudio.m_nPlayStatus = PLAY_STATUS_STOPPED; - m_sMissionAudio.field_22 = 0; - m_sMissionAudio.m_nMissionAudioCounter = m_nTimeSpent * SampleManager.GetStreamedFileLength(missionAudioSfx) / 1000; - m_sMissionAudio.m_nMissionAudioCounter *= 4; - m_sMissionAudio.m_bIsPlayed = false; - m_sMissionAudio.m_bPredefinedProperties = 1; - g_bMissionAudioLoadFailed = false; - } - } -} -void -cAudioManager::PreTerminateGameSpecificShutdown() -{ - if (m_nBridgeEntity >= 0) { - DestroyEntity(m_nBridgeEntity); - m_nBridgeEntity = AEHANDLE_NONE; - } - if (m_nPoliceChannelEntity >= 0) { - DestroyEntity(m_nPoliceChannelEntity); - m_nPoliceChannelEntity = AEHANDLE_NONE; - } - if (m_nWaterCannonEntity >= 0) { - DestroyEntity(m_nWaterCannonEntity); - m_nWaterCannonEntity = AEHANDLE_NONE; - } - if (m_nFireAudioEntity >= 0) { - DestroyEntity(m_nFireAudioEntity); - m_nFireAudioEntity = AEHANDLE_NONE; - } - if (m_nCollisionEntity >= 0) { - DestroyEntity(m_nCollisionEntity); - m_nCollisionEntity = AEHANDLE_NONE; - } - if (m_nFrontEndEntity >= 0) { - DestroyEntity(m_nFrontEndEntity); - m_nFrontEndEntity = AEHANDLE_NONE; - } - if (m_nProjectileEntity >= 0) { - DestroyEntity(m_nProjectileEntity); - m_nProjectileEntity = AEHANDLE_NONE; - } -} - -void -cAudioManager::ProcessActiveQueues() -{ - bool flag; - float position2; - float position1; - - uint32 v28; - uint32 v29; - - float x; - float usedX; - float usedY; - float usedZ; - - uint8 vol; - uint8 emittingVol; - CVector position; - - for (int32 i = 0; i < m_nActiveSamples; i++) { - m_asSamples[m_nActiveSampleQueue][i].m_bIsProcessed = false; - m_asActiveSamples[i].m_bIsProcessed = false; - } - - for (int32 i = 0; i < m_SampleRequestQueuesStatus[m_nActiveSampleQueue]; ++i) { - tSound &sample = m_asSamples[m_nActiveSampleQueue][m_abSampleQueueIndexTable[m_nActiveSampleQueue][i]]; - if (sample.m_nSampleIndex != NO_SAMPLE) { - for (int32 j = 0; j < m_nActiveSamples; ++j) { - if (sample.m_nEntityIndex == m_asActiveSamples[j].m_nEntityIndex && sample.m_nCounter == m_asActiveSamples[j].m_nCounter && - sample.m_nSampleIndex == m_asActiveSamples[j].m_nSampleIndex) { - if (sample.m_nLoopCount) { - if (m_FrameCounter & 1) { - flag = !!(j & 1); - } else { - flag = !(j & 1); - } - if (flag && !SampleManager.GetChannelUsedFlag(j)) { - sample.m_bLoopEnded = true; - m_asActiveSamples[j].m_bLoopEnded = true; - m_asActiveSamples[j].m_nSampleIndex = NO_SAMPLE; - m_asActiveSamples[j].m_nEntityIndex = AEHANDLE_NONE; - continue; - } - } - sample.m_bIsProcessed = true; - m_asActiveSamples[j].m_bIsProcessed = true; - sample.m_nVolumeChange = -1; - if (!sample.m_bReleasingSoundFlag) { - if (sample.m_bIs2D) { - if (field_4) { - emittingVol = 2 * Min(63, sample.m_nEmittingVolume); - } else { - emittingVol = sample.m_nEmittingVolume; - } - SampleManager.SetChannelFrequency(j, sample.m_nFrequency); - SampleManager.SetChannelEmittingVolume(j, emittingVol); - } else { - m_asActiveSamples[j].m_fDistance = sample.m_fDistance; - position2 = sample.m_fDistance; - position1 = m_asActiveSamples[j].m_fDistance; - sample.m_nFrequency = ComputeDopplerEffectedFrequency(sample.m_nFrequency, position1, position2, sample.m_fSpeedMultiplier); - if (sample.m_nFrequency != m_asActiveSamples[j].m_nFrequency) { - int32 freq; - if (sample.m_nFrequency <= m_asActiveSamples[j].m_nFrequency) { - freq = Max(sample.m_nFrequency, m_asActiveSamples[j].m_nFrequency - 6000); - } else { - freq = Min(sample.m_nFrequency, m_asActiveSamples[j].m_nFrequency + 6000); - } - m_asActiveSamples[j].m_nFrequency = freq; - SampleManager.SetChannelFrequency(j, freq); - } - - if (sample.m_nEmittingVolume != m_asActiveSamples[j].m_nEmittingVolume) { - if (sample.m_nEmittingVolume <= m_asActiveSamples[j].m_nEmittingVolume) { - vol = Max(m_asActiveSamples[j].m_nEmittingVolume - 10, sample.m_nEmittingVolume); - } else { - vol = Min(m_asActiveSamples[j].m_nEmittingVolume + 10, sample.m_nEmittingVolume); - } - - uint8 emittingVol; - if (field_4) { - emittingVol = 2 * Min(63, vol); - } else { - emittingVol = vol; - } - SampleManager.SetChannelEmittingVolume(j, emittingVol); - m_asActiveSamples[j].m_nEmittingVolume = vol; - } - TranslateEntity(&sample.m_vecPos, &position); - SampleManager.SetChannel3DPosition(j, position.x, position.y, position.z); - SampleManager.SetChannel3DDistances(j, sample.m_fSoundIntensity, 0.25f * sample.m_fSoundIntensity); - } - SampleManager.SetChannelReverbFlag(j, sample.m_bReverbFlag); - break; - } - sample.m_bIsProcessed = false; - m_asActiveSamples[j].m_bIsProcessed = false; - } - } - } - } - for (int32 i = 0; i < m_nActiveSamples; i++) { - if (m_asActiveSamples[i].m_nSampleIndex != NO_SAMPLE && !m_asActiveSamples[i].m_bIsProcessed) { - SampleManager.StopChannel(i); - m_asActiveSamples[i].m_nSampleIndex = NO_SAMPLE; - m_asActiveSamples[i].m_nEntityIndex = AEHANDLE_NONE; - } - } - for (uint8 i = 0; i < m_SampleRequestQueuesStatus[m_nActiveSampleQueue]; ++i) { - tSound &sample = m_asSamples[m_nActiveSampleQueue][m_abSampleQueueIndexTable[m_nActiveSampleQueue][i]]; - if (!sample.m_bIsProcessed && !sample.m_bLoopEnded && m_asAudioEntities[sample.m_nEntityIndex].m_bIsUsed && sample.m_nSampleIndex < NO_SAMPLE) { - if (sample.m_nCounter > 255 && sample.m_nLoopCount && sample.m_nLoopsRemaining) { - --sample.m_nLoopsRemaining; - sample.m_nReleasingVolumeDivider = 1; - } else { - for (uint8 j = 0; j < m_nActiveSamples; ++j) { - if (!m_asActiveSamples[j].m_bIsProcessed) { - if (sample.m_nLoopCount) { - v28 = sample.m_nFrequency / m_nTimeSpent; - v29 = sample.m_nLoopCount * SampleManager.GetSampleLength(sample.m_nSampleIndex); - if (v28 == 0) - continue; - sample.m_nReleasingVolumeDivider = v29 / v28 + 1; - } - memcpy(&m_asActiveSamples[j], &sample, sizeof(tSound)); - if (!m_asActiveSamples[j].m_bIs2D) - TranslateEntity(&m_asActiveSamples[j].m_vecPos, &position); - if (field_4) { - emittingVol = 2 * Min(63, m_asActiveSamples[j].m_nEmittingVolume); - } else { - emittingVol = m_asActiveSamples[j].m_nEmittingVolume; - } - if (SampleManager.InitialiseChannel(j, m_asActiveSamples[j].m_nSampleIndex, m_asActiveSamples[j].m_nBankIndex)) { - SampleManager.SetChannelFrequency(j, m_asActiveSamples[j].m_nFrequency); - SampleManager.SetChannelEmittingVolume(j, emittingVol); - SampleManager.SetChannelLoopPoints(j, m_asActiveSamples[j].m_nLoopStart, m_asActiveSamples[j].m_nLoopEnd); - SampleManager.SetChannelLoopCount(j, m_asActiveSamples[j].m_nLoopCount); - SampleManager.SetChannelReverbFlag(j, m_asActiveSamples[j].m_bReverbFlag); - if (m_asActiveSamples[j].m_bIs2D) { - uint8 offset = m_asActiveSamples[j].m_nOffset; - if (offset == 63) { - x = 0.f; - } else if (offset >= 63) { - x = (offset - 63) * 1000.f / 63; - } else { - x = -(63 - offset) * 1000.f / 63; - } - usedX = x; - usedY = 0.f; - usedZ = 0.f; - m_asActiveSamples[j].m_fSoundIntensity = 100000.0f; - } else { - usedX = position.x; - usedY = position.y; - usedZ = position.z; - } - SampleManager.SetChannel3DPosition(j, usedX, usedY, usedZ); - SampleManager.SetChannel3DDistances(j, m_asActiveSamples[j].m_fSoundIntensity, 0.25f * m_asActiveSamples[j].m_fSoundIntensity); - SampleManager.StartChannel(j); - } - m_asActiveSamples[j].m_bIsProcessed = true; - sample.m_bIsProcessed = true; - sample.m_nVolumeChange = -1; - break; - } - } - } - } - } -} - -bool -cAudioManager::ProcessAirBrakes(cVehicleParams *params) -{ - CAutomobile *automobile; - uint8 rand; - - if (params->m_fDistance > 900.0f) - return false; - automobile = (CAutomobile *)params->m_pVehicle; - if (!automobile->bEngineOn) - return true; - - if ((automobile->m_fVelocityChangeForAudio < 0.025f || params->m_fVelocityChange >= 0.025f) && - (automobile->m_fVelocityChangeForAudio > -0.025f || params->m_fVelocityChange <= 0.025f)) - return true; - - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - rand = m_anRandomTable[0] % 10 + 70; - m_sQueueSample.m_nVolume = ComputeVolume(rand, 30.0f, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 13; - m_sQueueSample.m_nSampleIndex = SFX_AIR_BRAKES; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_AIR_BRAKES); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 10; - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nEmittingVolume = rand; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - - return true; -} - -void -cAudioManager::ProcessAirportScriptObject(uint8 sound) -{ - static uint8 counter = 0; - - uint32 time = CTimer::GetTimeInMilliseconds(); - if (time > gAirportNextTime) { - switch (sound) { - case SCRIPT_SOUND_AIRPORT_LOOP_S: - m_sQueueSample.m_fSoundIntensity = scriptObjectIntensityS; - break; - case SCRIPT_SOUND_AIRPORT_LOOP_L: - m_sQueueSample.m_fSoundIntensity = scriptObjectIntensityL; - 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) { - 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 = counter++; - 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; - } - } - } -} - -bool -cAudioManager::ProcessBoatEngine(cVehicleParams *params) -{ - CBoat *boat; - float padRelativeAccerate; - float gasPedal; - int32 padAccelerate; - uint8 emittingVol; - float oneShotVol; - - static uint16 LastAccel = 0; - static uint8 LastVol = 0; - - static const int intensity = 50; - - if (params->m_fDistance < SQR(intensity)) { - boat = (CBoat *)params->m_pVehicle; - if (params->m_nIndex == REEFER) { - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - m_sQueueSample.m_nVolume = ComputeVolume(80, 50.f, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 39; - m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; - m_sQueueSample.m_nFrequency = 10386; - m_sQueueSample.m_nFrequency += (m_sQueueSample.m_nEntityIndex * 65536) % 1000; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nEmittingVolume = 80; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_fSoundIntensity = intensity; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 7; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - if (FindPlayerVehicle() == params->m_pVehicle) { - if (Pads[0].GetAccelerate() <= Pads[0].GetBrake()) - padAccelerate = Pads[0].GetBrake(); - else - padAccelerate = Pads[0].GetAccelerate(); - padRelativeAccerate = padAccelerate / 255; - emittingVol = (100.f * padRelativeAccerate) + 15; - m_sQueueSample.m_nFrequency = (3000.f * padRelativeAccerate) + 6000; - if (!boat->m_bIsAnchored) - m_sQueueSample.m_nFrequency = 11 * m_sQueueSample.m_nFrequency / 10; - } else { - gasPedal = Abs(boat->m_fGasPedal); - if (gasPedal > 0.0f) { - m_sQueueSample.m_nFrequency = 6000; - emittingVol = 15; - } else { - emittingVol = (100.f * gasPedal) + 15; - m_sQueueSample.m_nFrequency = (3000.f * gasPedal) + 6000; - if (!boat->m_bIsAnchored) - m_sQueueSample.m_nFrequency = 11 * m_sQueueSample.m_nFrequency / 10; - } - } - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, 50.f, m_sQueueSample.m_fDistance); - if (!m_sQueueSample.m_nVolume) - return true; - m_sQueueSample.m_nCounter = 40; - m_sQueueSample.m_nSampleIndex = SFX_POLICE_BOAT_ACCEL; - m_sQueueSample.m_nFrequency += (m_sQueueSample.m_nEntityIndex * 65536) % 1000; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_fSoundIntensity = intensity; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 7; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - } else { - if (FindPlayerVehicle() == params->m_pVehicle) { - if (Pads[0].GetAccelerate() <= Pads[0].GetBrake()) - padAccelerate = Pads[0].GetBrake(); - else - padAccelerate = Pads[0].GetAccelerate(); - if (padAccelerate <= 20) { - 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; - if (LastAccel > 20) { - oneShotVol = LastVol; - PlayOneShot(m_sQueueSample.m_nEntityIndex, SOUND_17, oneShotVol); - } - } else { - emittingVol = 105 * padAccelerate / 255 + 15; - m_sQueueSample.m_nFrequency = 4000 * padAccelerate / 255 + 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; - } - LastVol = emittingVol; - LastAccel = padAccelerate; - } else { - gasPedal = Abs(boat->m_fGasPedal); - if (gasPedal > 0.0f) { - m_sQueueSample.m_nFrequency = 11025; - emittingVol = 45; - m_sQueueSample.m_nCounter = 39; - m_sQueueSample.m_nSampleIndex = SFX_POLICE_BOAT_IDLE; - } else { - emittingVol = (105.f * gasPedal) + 15; - m_sQueueSample.m_nFrequency = (4000.f * gasPedal) + 8000; - if (!boat->m_bIsAnchored) - m_sQueueSample.m_nFrequency = 11 * m_sQueueSample.m_nFrequency / 10; - m_sQueueSample.m_nCounter = 40; - m_sQueueSample.m_nSampleIndex = SFX_POLICE_BOAT_ACCEL; - } - } - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, 50.f, m_sQueueSample.m_fDistance); - if (!m_sQueueSample.m_nVolume) - return true; - m_sQueueSample.m_nFrequency += (m_sQueueSample.m_nEntityIndex * 65536) % 1000; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_fSoundIntensity = intensity; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 7; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - } - AddSampleToRequestedQueue(); - return true; - } - return false; -} - -bool -cAudioManager::ProcessBoatMovingOverWater(cVehicleParams *params) -{ - float velocityChange; - int32 vol; - float multiplier; - - if (params->m_fDistance > 2500.f) - return false; - - velocityChange = Abs(params->m_fVelocityChange); - if (velocityChange <= 0.0005f && params->m_pVehicle->GetPosition().y) - return true; - - velocityChange = Min(0.75f, velocityChange); - multiplier = (velocityChange - 0.0005f) * 1.3342f; - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - vol = (30.f * multiplier); - m_sQueueSample.m_nVolume = ComputeVolume(vol, 50.f, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 38; - m_sQueueSample.m_nSampleIndex = SFX_BOAT_WATER_LOOP; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nFrequency = (6050.f * multiplier) + 16000; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nEmittingVolume = vol; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_fSoundIntensity = 50.0f; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - - return true; -} - -void -cAudioManager::ProcessBridge() -{ - float dist; - bool distCalculated = false; - - if (CBridge::pLiftRoad) { - m_sQueueSample.m_vecPos = CBridge::pLiftRoad->GetPosition(); - dist = GetDistanceSquared(m_sQueueSample.m_vecPos); - if (dist < 202500.0f) { - CalculateDistance(distCalculated, dist); - switch (CBridge::State) { - case STATE_BRIDGE_LOCKED: - case STATE_LIFT_PART_IS_UP: - case STATE_LIFT_PART_ABOUT_TO_MOVE_UP: - ProcessBridgeWarning(); - break; - case STATE_LIFT_PART_MOVING_DOWN: - case STATE_LIFT_PART_MOVING_UP: - ProcessBridgeWarning(); - ProcessBridgeMotor(); - break; - default: - break; - } - ProcessBridgeOneShots(); - } - } -} - -void -cAudioManager::ProcessBridgeMotor() -{ - if (m_sQueueSample.m_fDistance < bridgeIntensity) { - m_sQueueSample.m_nVolume = ComputeVolume(maxVolume, bridgeIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 1; - m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; // todo check sfx name - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_nFrequency = 5500; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nEmittingVolume = maxVolume; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_fSoundIntensity = bridgeIntensity; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_bReverbFlag = false; - AddSampleToRequestedQueue(); - } - } -} - -void -cAudioManager::ProcessBridgeOneShots() -{ - if (CBridge::State == STATE_LIFT_PART_IS_UP && CBridge::OldState == STATE_LIFT_PART_MOVING_UP) { - m_sQueueSample.m_nSampleIndex = SFX_COL_CONTAINER_1; - } else { - if (CBridge::State == STATE_LIFT_PART_IS_DOWN && CBridge::OldState == STATE_LIFT_PART_MOVING_DOWN) { - m_sQueueSample.m_nSampleIndex = SFX_COL_CONTAINER_1; - } else { - if (CBridge::State == STATE_LIFT_PART_MOVING_UP && CBridge::OldState == STATE_LIFT_PART_ABOUT_TO_MOVE_UP) { - m_sQueueSample.m_nSampleIndex = SFX_COL_CONTAINER_1; - } else { - if (CBridge::State == STATE_LIFT_PART_MOVING_DOWN && CBridge::OldState == STATE_LIFT_PART_IS_UP) { - m_sQueueSample.m_nSampleIndex = SFX_COL_CONTAINER_1; - } else - return; - } - } - } - if (m_sQueueSample.m_fDistance < bridgeIntensity) { - m_sQueueSample.m_nVolume = ComputeVolume(maxVolume, bridgeIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 2; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nEmittingVolume = maxVolume; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_fSoundIntensity = bridgeIntensity; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bReverbFlag = false; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } -} - -void -cAudioManager::ProcessBridgeWarning() -{ - if (CStats::CommercialPassed && m_sQueueSample.m_fDistance < 450.f) { - m_sQueueSample.m_nVolume = ComputeVolume(100, 450.f, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 0; - m_sQueueSample.m_nSampleIndex = SFX_BRIDGE_OPEN_WARNING; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_BRIDGE_OPEN_WARNING); - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nEmittingVolume = 100; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_fSoundIntensity = 450.0f; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 8; - m_sQueueSample.m_bReverbFlag = false; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } -} - -bool -cAudioManager::ProcessCarBombTick(cVehicleParams *params) -{ - CAutomobile *automobile; - - if (params->m_fDistance >= SQR(40.f)) - return false; - automobile = (CAutomobile *)params->m_pVehicle; - if (automobile->bEngineOn && automobile->m_bombType == CARBOMB_TIMEDACTIVE) { - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - m_sQueueSample.m_nVolume = ComputeVolume(60, 40.f, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 35; - m_sQueueSample.m_nSampleIndex = SFX_COUNTDOWN; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 0; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_COUNTDOWN); - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nEmittingVolume = 60; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_fSoundIntensity = 40.0f; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - return true; -} - -void -cAudioManager::ProcessCesna(cVehicleParams *params) -{ - static uint8 nAccel = 0; - - //((CAutomobile *)params->m_pVehicle)->Damage.GetEngineStatus(); - - if (FindPlayerVehicle() == params->m_pVehicle) { - if (params->m_nIndex == DODO) { - if (Pads[0].GetAccelerate() <= 0) { - if (nAccel) - --nAccel; - } else if (nAccel < 60) { - ++nAccel; - } - AddPlayerCarSample(85 * (60 - nAccel) / 60 + 20, 8500 * nAccel / 60 + 17000, SFX_CESNA_IDLE, 0, 52, 1); - AddPlayerCarSample(85 * nAccel / 60 + 20, 8500 * nAccel / 60 + 17000, SFX_CESNA_REV, 0, 2, 1); - } - } else if (params->m_nIndex == DODO) { - AddPlayerCarSample(105, 17000, SFX_CESNA_IDLE, 0, 52, 1); - } else if (params->m_fDistance < 40000.f) { - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - m_sQueueSample.m_nVolume = ComputeVolume(80, 200.f, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 52; - m_sQueueSample.m_nSampleIndex = SFX_CESNA_IDLE; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 0; - m_sQueueSample.m_nFrequency = 12500; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nReleasingVolumeDivider = 8; - m_sQueueSample.m_nEmittingVolume = 80; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSpeedMultiplier = 8.0f; - m_sQueueSample.m_fSoundIntensity = 200.0f; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - if (params->m_fDistance < 8100.f) { - m_sQueueSample.m_nVolume = ComputeVolume(80, 90.f, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 2; - m_sQueueSample.m_nSampleIndex = SFX_CESNA_REV; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 0; - m_sQueueSample.m_nFrequency = 25000; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nReleasingVolumeDivider = 4; - m_sQueueSample.m_nEmittingVolume = 80; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSpeedMultiplier = 8.0f; - m_sQueueSample.m_fSoundIntensity = 90.0f; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - } -} - -void -cAudioManager::ProcessCinemaScriptObject(uint8 sound) -{ - uint8 rand; - - static uint8 counter = 0; - - uint32 time = CTimer::GetTimeInMilliseconds(); - if (time > gCinemaNextTime) { - switch (sound) { - case SCRIPT_SOUND_CINEMA_LOOP_S: - m_sQueueSample.m_fSoundIntensity = scriptObjectIntensityS; - break; - case SCRIPT_SOUND_CINEMA_LOOP_L: - m_sQueueSample.m_fSoundIntensity = scriptObjectIntensityL; - 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) { - m_sQueueSample.m_nSampleIndex = counter % 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 = counter++; - 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::ProcessCrane() -{ - CCrane *crane = (CCrane *)m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_pEntity; - float distSquared; - bool distCalculated = false; - static const int intensity = 80; - - if (crane) { - if (crane->m_nCraneStatus == CCrane::ACTIVATED) { - if (crane->m_nCraneState != CCrane::IDLE) { - m_sQueueSample.m_vecPos = crane->m_pCraneEntity->GetPosition(); - distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); - if (distSquared < SQR(intensity)) { - CalculateDistance(distCalculated, distSquared); - m_sQueueSample.m_nVolume = ComputeVolume(100, 80.f, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 0; - m_sQueueSample.m_nSampleIndex = SFX_CRANE_MAGNET; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 2; - m_sQueueSample.m_nFrequency = 6000; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nEmittingVolume = 100; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSpeedMultiplier = 4.0f; - m_sQueueSample.m_fSoundIntensity = intensity; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - if (m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_AudioEvents) { - m_sQueueSample.m_nCounter = 1; - m_sQueueSample.m_nSampleIndex = SFX_COL_CAR_2; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_COL_CAR_2); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = true; - AddSampleToRequestedQueue(); - } - } - } - } - } -} - -void -cAudioManager::ProcessDocksScriptObject(uint8 sound) -{ - uint32 time; - uint8 rand; - float distSquared; - - static uint32 counter = 0; - - time = CTimer::GetTimeInMilliseconds(); - if (time > gDocksNextTime) { - switch (sound) { - case SCRIPT_SOUND_DOCKS_LOOP_S: - m_sQueueSample.m_fSoundIntensity = scriptObjectIntensityS; - break; - case SCRIPT_SOUND_DOCKS_LOOP_L: - m_sQueueSample.m_fSoundIntensity = scriptObjectIntensityL; - 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) { - 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 = counter++; - 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; - } - } - } -} - -bool -cAudioManager::ProcessEngineDamage(cVehicleParams *params) -{ - CAutomobile *veh; - uint8 engineStatus; - uint8 emittingVolume; - - if (params->m_fDistance >= SQR(engineDamageIntensity)) - return false; - veh = (CAutomobile *)params->m_pVehicle; - if (veh->bEngineOn) { - engineStatus = veh->Damage.GetEngineStatus(); - if (engineStatus > 250 || engineStatus < 100) - return true; - if (engineStatus < 225) { - m_sQueueSample.m_nSampleIndex = SFX_JUMBO_TAXI; - emittingVolume = 6; - m_sQueueSample.m_nReleasingVolumeModificator = 7; - m_sQueueSample.m_nFrequency = 40000; - } else { - emittingVolume = 60; - m_sQueueSample.m_nSampleIndex = SFX_CAR_ON_FIRE; - m_sQueueSample.m_nReleasingVolumeModificator = 7; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CAR_ON_FIRE); - } - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - m_sQueueSample.m_nVolume = ComputeVolume(emittingVolume, engineDamageIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 28; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nEmittingVolume = emittingVolume; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_fSoundIntensity = engineDamageIntensity; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - return true; -} - -void -cAudioManager::ProcessEntity(int32 id) -{ - if (m_asAudioEntities[id].m_nStatus) { - m_sQueueSample.m_nEntityIndex = id; - switch (m_asAudioEntities[id].m_nType) { - case AUDIOTYPE_PHYSICAL: - if (!m_nUserPause) { - m_sQueueSample.m_bReverbFlag = true; - ProcessPhysical(id); - } - break; - case AUDIOTYPE_EXPLOSION: - if (!m_nUserPause) { - m_sQueueSample.m_bReverbFlag = true; - ProcessExplosions(id); - } - break; - case AUDIOTYPE_FIRE: - if (!m_nUserPause) { - m_sQueueSample.m_bReverbFlag = true; - ProcessFires(id); - } - break; - case AUDIOTYPE_WEATHER: - if (!m_nUserPause) { - m_sQueueSample.m_bReverbFlag = true; - ProcessWeather(id); - } - break; - case AUDIOTYPE_CRANE: - if (!m_nUserPause) { - m_sQueueSample.m_bReverbFlag = true; - ProcessCrane(); - } - break; - case AUDIOTYPE_SCRIPTOBJECT: - if (!m_nUserPause) { - m_sQueueSample.m_bReverbFlag = true; - ProcessScriptObject(id); - } - break; - case AUDIOTYPE_BRIDGE: - if (!m_nUserPause) { - m_sQueueSample.m_bReverbFlag = true; - ProcessBridge(); - } - break; - case AUDIOTYPE_FRONTEND: - m_sQueueSample.m_bReverbFlag = false; - ProcessFrontEnd(); - break; - case AUDIOTYPE_PROJECTILE: - if (!m_nUserPause) { - m_sQueueSample.m_bReverbFlag = true; - ProcessProjectiles(); - } - break; - case AUDIOTYPE_GARAGE: - if (!m_nUserPause) - ProcessGarages(); - break; - case AUDIOTYPE_FIREHYDRANT: - if (!m_nUserPause) { - m_sQueueSample.m_bReverbFlag = true; - ProcessFireHydrant(); - } - break; - case AUDIOTYPE_WATERCANNON: - if (!m_nUserPause) { - m_sQueueSample.m_bReverbFlag = true; - ProcessWaterCannon(id); - } - break; - default: - return; - } - } -} - -void -cAudioManager::ProcessExplosions(int32 explosion) -{ - uint8 type; - CVector *pos; - float distSquared; - - for (uint8 i = 0; i < ARRAY_SIZE(gaExplosion); i++) { - if (CExplosion::GetExplosionActiveCounter(i) == 1) { - CExplosion::ResetExplosionActiveCounter(i); - type = CExplosion::GetExplosionType(i); - switch (type) { - case EXPLOSION_GRENADE: - case EXPLOSION_ROCKET: - case EXPLOSION_BARREL: - case EXPLOSION_TANK_GRENADE: - m_sQueueSample.m_fSoundIntensity = 400.0f; - m_sQueueSample.m_nSampleIndex = SFX_EXPLOSION_2; - m_sQueueSample.m_nFrequency = RandomDisplacement(2000) + 38000; - m_sQueueSample.m_nReleasingVolumeModificator = 0; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - break; - case EXPLOSION_MOLOTOV: - m_sQueueSample.m_fSoundIntensity = 200.0f; - m_sQueueSample.m_nSampleIndex = SFX_EXPLOSION_3; - m_sQueueSample.m_nFrequency = RandomDisplacement(1000) + 19000; - m_sQueueSample.m_nReleasingVolumeModificator = 0; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - break; - case EXPLOSION_MINE: - case EXPLOSION_HELI_BOMB: - m_sQueueSample.m_fSoundIntensity = 300.0f; - m_sQueueSample.m_nSampleIndex = SFX_ROCKET_LEFT; - m_sQueueSample.m_nFrequency = RandomDisplacement(1000) + 12347; - m_sQueueSample.m_nReleasingVolumeModificator = 0; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - break; - default: - m_sQueueSample.m_fSoundIntensity = 400.0f; - m_sQueueSample.m_nSampleIndex = SFX_EXPLOSION_1; - m_sQueueSample.m_nFrequency = RandomDisplacement(2000) + 38000; - if (type == EXPLOSION_HELI) - m_sQueueSample.m_nFrequency = 8 * m_sQueueSample.m_nFrequency / 10; - m_sQueueSample.m_nReleasingVolumeModificator = 0; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - break; - } - pos = CExplosion::GetExplosionPosition(i); - m_sQueueSample.m_vecPos = *pos; - distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); - if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { - m_sQueueSample.m_fDistance = Sqrt(distSquared); - m_sQueueSample.m_nVolume = ComputeVolume(maxVolume, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = i; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_nEmittingVolume = maxVolume; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = true; - AddSampleToRequestedQueue(); - } - } - } - } -} - -void -cAudioManager::ProcessFireHydrant() -{ - float distSquared; - bool distCalculated = false; - static const int intensity = 35; - - m_sQueueSample.m_vecPos = ((CEntity *)m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_pEntity)->GetPosition(); - distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); - if (distSquared < SQR(intensity)) { - CalculateDistance(distCalculated, distSquared); - m_sQueueSample.m_nVolume = ComputeVolume(40, 35.f, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 0; - m_sQueueSample.m_nSampleIndex = SFX_JUMBO_TAXI; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 4; - m_sQueueSample.m_nFrequency = 15591; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nEmittingVolume = 40; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_fSoundIntensity = intensity; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } -} - -void cAudioManager::ProcessFires(int32) -{ - CEntity *entity; - uint8 emittingVol; - float distSquared; - - for (uint8 i = 0; i < NUM_FIRES; i++) { - if (gFireManager.m_aFires[i].m_bIsOngoing && gFireManager.m_aFires[i].m_bAudioSet) { - entity = gFireManager.m_aFires[i].m_pEntity; - if (entity) { - switch (entity->GetType()) { - case ENTITY_TYPE_BUILDING: - m_sQueueSample.m_fSoundIntensity = 50.0f; - m_sQueueSample.m_nSampleIndex = SFX_CAR_ON_FIRE; - emittingVol = 100; - m_sQueueSample.m_nFrequency = 8 * SampleManager.GetSampleBaseFrequency(SFX_CAR_ON_FIRE) / 10; - m_sQueueSample.m_nFrequency += i * (m_sQueueSample.m_nFrequency / 64); - m_sQueueSample.m_nReleasingVolumeModificator = 6; - break; - case ENTITY_TYPE_PED: - m_sQueueSample.m_fSoundIntensity = 25.0f; - m_sQueueSample.m_nSampleIndex = SFX_PED_ON_FIRE; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_PED_ON_FIRE); - emittingVol = 60; - m_sQueueSample.m_nFrequency += i * (m_sQueueSample.m_nFrequency / 64); - m_sQueueSample.m_nReleasingVolumeModificator = 10; - break; - default: - m_sQueueSample.m_fSoundIntensity = 50.0f; - m_sQueueSample.m_nSampleIndex = SFX_CAR_ON_FIRE; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CAR_ON_FIRE); - m_sQueueSample.m_nFrequency += i * (m_sQueueSample.m_nFrequency / 64); - emittingVol = 80; - m_sQueueSample.m_nReleasingVolumeModificator = 8; - } - } else { - m_sQueueSample.m_fSoundIntensity = 50.0f; - m_sQueueSample.m_nSampleIndex = SFX_CAR_ON_FIRE; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CAR_ON_FIRE); - m_sQueueSample.m_nFrequency += i * (m_sQueueSample.m_nFrequency / 64); - emittingVol = 80; - m_sQueueSample.m_nReleasingVolumeModificator = 8; - } - m_sQueueSample.m_vecPos = gFireManager.m_aFires[i].m_vecPos; - distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); - if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { - m_sQueueSample.m_fDistance = Sqrt(distSquared); - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = i; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_nReleasingVolumeDivider = 10; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nEmittingVolume = emittingVol; - 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::ProcessFrontEnd() -{ - bool stereo; - bool processedPickup; - bool processedMission; - int16 sample; - - static uint8 counter = 0; - static uint32 cPickupNextFrame = 0; - static uint32 cPartMisComNextFrame = 0; - - for (uint32 i = 0; i < m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_AudioEvents; i++) { - processedPickup = false; - stereo = false; - processedMission = false; - switch (m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i]) { - case SOUND_WEAPON_SNIPER_SHOT_NO_ZOOM: - m_sQueueSample.m_nSampleIndex = SFX_ERROR_FIRE_RIFLE; - break; - 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_RACE_START_3: - case SOUND_RACE_START_2: - case SOUND_RACE_START_1: - case SOUND_CLOCK_TICK: - m_sQueueSample.m_nSampleIndex = SFX_TIMER_BEEP; - break; - case SOUND_RACE_START_GO: - m_sQueueSample.m_nSampleIndex = SFX_PART_MISSION_COMPLETE; - break; - case SOUND_PART_MISSION_COMPLETE: - m_sQueueSample.m_nSampleIndex = SFX_PART_MISSION_COMPLETE; - processedMission = true; - break; - case SOUND_FRONTEND_MENU_STARTING: - m_sQueueSample.m_nSampleIndex = SFX_START_BUTTON_LEFT; - stereo = true; - break; - case SOUND_FRONTEND_MENU_COMPLETED: - m_sQueueSample.m_nSampleIndex = SFX_PAGE_CHANGE_AND_BACK_LEFT; - stereo = true; - break; - case SOUND_FRONTEND_MENU_DENIED: - m_sQueueSample.m_nSampleIndex = SFX_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; - 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_FAIL: - m_sQueueSample.m_nSampleIndex = SFX_ERROR_LEFT; - stereo = true; - break; - case SOUND_FRONTEND_NO_RADIO: - case SOUND_FRONTEND_RADIO_CHANGE: - m_sQueueSample.m_nSampleIndex = SFX_RADIO_CLICK; - break; - case SOUND_A0: - m_sQueueSample.m_nSampleIndex = SFX_INFO; - break; - default: - continue; - } - - if (processedPickup) { - if (m_FrameCounter <= cPickupNextFrame) - continue; - cPickupNextFrame = m_FrameCounter + 5; - } else if (processedMission) { - if (m_FrameCounter <= cPartMisComNextFrame) - continue; - cPartMisComNextFrame = m_FrameCounter + 5; - } - - 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) { - if (1.f == m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i]) - m_sQueueSample.m_nFrequency = 32000; - else - m_sQueueSample.m_nFrequency = 48000; - } else { - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); - } - m_sQueueSample.m_nVolume = 110; - m_sQueueSample.m_nCounter = counter++; - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nReleasingVolumeModificator = 0; - m_sQueueSample.m_bIs2D = true; - m_sQueueSample.m_nEmittingVolume = m_sQueueSample.m_nVolume; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - if (stereo) - m_sQueueSample.m_nOffset = m_anRandomTable[0] & 31; - else - m_sQueueSample.m_nOffset = 63; - m_sQueueSample.m_bReverbFlag = false; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - if (stereo) { - ++m_sQueueSample.m_nSampleIndex; - m_sQueueSample.m_nCounter = counter++; - m_sQueueSample.m_nOffset = maxVolume - m_sQueueSample.m_nOffset; - AddSampleToRequestedQueue(); - } - } -} - -void -cAudioManager::ProcessGarages() -{ - CEntity *entity; - eGarageState state; - uint32 sampleIndex; - uint8 j; - float distSquared; - bool distCalculated; - - static uint8 iSound = 32; - -#define LOOP_HELPER \ - for (j = 0; j < m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_AudioEvents; ++j) { \ - switch (m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[j]) { \ - case SOUND_GARAGE_DOOR_CLOSED: \ - case SOUND_GARAGE_DOOR_OPENED: \ - if (distSquared < 6400.f) { \ - CalculateDistance(distCalculated, distSquared); \ - m_sQueueSample.m_nVolume = ComputeVolume(60, 80.f, m_sQueueSample.m_fDistance); \ - if (m_sQueueSample.m_nVolume) { \ - if (CGarages::aGarages[i].m_eGarageType == GARAGE_CRUSHER) { \ - m_sQueueSample.m_nSampleIndex = SFX_COL_CAR_PANEL_2; \ - m_sQueueSample.m_nFrequency = 6735; \ - } else if (m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[j] == 69) { \ - m_sQueueSample.m_nSampleIndex = SFX_COL_CAR_PANEL_2; \ - m_sQueueSample.m_nFrequency = 22000; \ - } else { \ - m_sQueueSample.m_nSampleIndex = SFX_COL_GARAGE_DOOR_1; \ - m_sQueueSample.m_nFrequency = 18000; \ - } \ - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; \ - m_sQueueSample.m_nReleasingVolumeModificator = 4; \ - m_sQueueSample.m_nEmittingVolume = 60; \ - m_sQueueSample.m_fSpeedMultiplier = 0.0f; \ - m_sQueueSample.m_fSoundIntensity = 80.0f; \ - /*m_sQueueSample.m_nReleasingVolumeModificator = 4;*/ \ - m_sQueueSample.m_bReverbFlag = true; \ - /*m_sQueueSample.m_bReverbFlag = true;*/ \ - m_sQueueSample.m_bIs2D = false; \ - m_sQueueSample.m_bReleasingSoundFlag = true; \ - m_sQueueSample.m_nLoopCount = 1; \ - m_sQueueSample.m_nLoopStart = 0; \ - m_sQueueSample.m_nLoopEnd = -1; \ - m_sQueueSample.m_nCounter = iSound++; \ - if (iSound < 32) \ - iSound = 32; \ - m_sQueueSample.m_bRequireReflection = true; \ - AddSampleToRequestedQueue(); \ - } \ - } \ - break; \ - default: \ - continue; \ - } \ - } - - for (uint32 i = 0; i < CGarages::NumGarages; ++i) { - if (CGarages::aGarages[i].m_eGarageType == GARAGE_NONE) - continue; - entity = CGarages::aGarages[i].m_pDoor1; - if (!entity) - continue; - m_sQueueSample.m_vecPos = entity->GetPosition(); - distCalculated = false; - distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); - if (distSquared < 6400.f) { - state = CGarages::aGarages[i].m_eGarageState; - if (state == GS_OPENING || state == GS_CLOSING || state == GS_AFTERDROPOFF) { - CalculateDistance(distCalculated, distSquared); - m_sQueueSample.m_nVolume = ComputeVolume(90, 80.f, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - if (CGarages::aGarages[i].m_eGarageType == GARAGE_CRUSHER) { - if (CGarages::aGarages[i].m_eGarageState == GS_AFTERDROPOFF) { - if (!(m_FrameCounter & 1)) { - LOOP_HELPER - continue; - } - if (m_anRandomTable[1] & 1) { - sampleIndex = m_anRandomTable[2] % 5 + SFX_COL_CAR_1; - } else { - sampleIndex = m_anRandomTable[2] % 6 + SFX_COL_CAR_PANEL_1; - } - m_sQueueSample.m_nSampleIndex = sampleIndex; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex) / 2; - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_nCounter = iSound++; - if (iSound < 32) - iSound = 32; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nEmittingVolume = 90; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_fSoundIntensity = 80.0f; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - LOOP_HELPER - continue; - } - m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; - m_sQueueSample.m_nFrequency = 6543; - } else { - m_sQueueSample.m_nSampleIndex = SFX_GARAGE_DOOR_LOOP; - m_sQueueSample.m_nFrequency = 13961; - } - m_sQueueSample.m_nCounter = i; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nEmittingVolume = 90; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_fSoundIntensity = 80.0f; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - LOOP_HELPER - } - } -#undef LOOP_HELPER -} - -struct tHelicopterSampleData { - float m_fMaxDistance; - float m_fBaseDistance; - uint8 m_bBaseVolume; -}; - -bool -cAudioManager::ProcessHelicopter(cVehicleParams *params) -{ - CHeli *heli; - float MaxDist; - float dist; - float baseDist; - int32 emittingVol; - static const tHelicopterSampleData gHeliSfxRanges[3] = {{400.f, 380.f, 100}, {100.f, 70.f, maxVolume}, {60.f, 30.f, maxVolume}}; - - if (gHeliSfxRanges[0].m_fMaxDistance * gHeliSfxRanges[0].m_fMaxDistance <= params->m_fDistance) - return false; - - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - heli = (CHeli *)params->m_pVehicle; - for (uint32 i = 0; i < ARRAY_SIZE(gHeliSfxRanges); i++) { - MaxDist = gHeliSfxRanges[i].m_fMaxDistance; - dist = m_sQueueSample.m_fDistance; - if (dist >= MaxDist) - return true; - baseDist = gHeliSfxRanges[i].m_fBaseDistance; - if (dist < baseDist) - emittingVol = (gHeliSfxRanges[i].m_bBaseVolume * ((MaxDist - dist) / (MaxDist - baseDist))); - else - emittingVol = gHeliSfxRanges[i].m_bBaseVolume; - - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, gHeliSfxRanges[i].m_fMaxDistance, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = i + 65; - m_sQueueSample.m_nSampleIndex = i + SFX_HELI_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 0; - m_sQueueSample.m_nFrequency = 1200 * heli->m_nHeliId + SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSpeedMultiplier = 6.0f; - m_sQueueSample.m_fSoundIntensity = gHeliSfxRanges[i].m_fMaxDistance; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - return true; -} - -void -cAudioManager::ProcessHomeScriptObject(uint8 sound) -{ - uint32 time; - uint8 rand; - float dist; - - static uint8 counter = 0; - - time = CTimer::GetTimeInMilliseconds(); - if (time > gHomeNextTime) { - switch (sound) { - case SCRIPT_SOUND_HOME_LOOP_S: - m_sQueueSample.m_fSoundIntensity = scriptObjectIntensityS; - break; - case SCRIPT_SOUND_HOME_LOOP_L: - m_sQueueSample.m_fSoundIntensity = scriptObjectIntensityL; - 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) { - 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 = counter++; - 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::ProcessJumbo(cVehicleParams *params) -{ - CPlane *plane; - float position; - - if (params->m_fDistance < 193600.0f) { - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - plane = (CPlane *)params->m_pVehicle; - DoJumboVolOffset(); - position = PlanePathPosition[plane->m_nPlaneId]; - if (position <= TakeOffPoint) { - if (plane->m_fSpeed <= 0.10334f) { - ProcessJumboTaxi(); - return; - } - - ProcessJumboAccel(plane); - } else if (300.0f + TakeOffPoint >= position) { - ProcessJumboTakeOff(plane); - } else if (LandingPoint - 350.0f >= position) { - ProcessJumboFlying(); - } else { - if (position > LandingPoint) { - if (plane->m_fSpeed > 0.10334f) { - ProcessJumboDecel(plane); - return; - } - ProcessJumboTaxi(); - return; - } - ProcessJumboLanding(plane); - } - } -} - -void -cAudioManager::ProcessJumboAccel(CPlane *plane) -{ - int32 engineFreq; - int32 vol; - float whineSoundFreq; - float modificator; - - if (SetupJumboFlySound(20)) { - modificator = (plane->m_fSpeed - 0.10334f) * 1.676f; - if (modificator > 1.0f) - modificator = 1.0f; - if (SetupJumboRumbleSound(maxVolume * modificator) && SetupJumboTaxiSound((1.0f - modificator) * 75.f)) { - if (modificator < 0.2f) { - whineSoundFreq = modificator * 5.f * 14600.0f + 29500; - vol = modificator * 5.f * maxVolume; - engineFreq = modificator * 5.f * 6050.f + 16000; - } else { - whineSoundFreq = 44100; - engineFreq = 22050; - vol = maxVolume; - } - SetupJumboEngineSound(vol, engineFreq); - SetupJumboWhineSound(18, whineSoundFreq); - } - } -} - -void -cAudioManager::ProcessJumboDecel(CPlane *plane) -{ - if (SetupJumboFlySound(20) && SetupJumboTaxiSound(75)) { - const float modificator = Min(1.f, (plane->m_fSpeed - 0.10334f) * 1.676f); - SetupJumboEngineSound(maxVolume * modificator, 6050.f * modificator + 16000); - SetupJumboWhineSound(18, 29500); - } -} - -void -cAudioManager::ProcessJumboFlying() -{ - if (SetupJumboFlySound(maxVolume)) - SetupJumboEngineSound(63, 22050); -} - -void -cAudioManager::ProcessJumboLanding(CPlane *plane) -{ - const float modificator = (LandingPoint - PlanePathPosition[plane->m_nPlaneId]) / 350.f; - if (SetupJumboFlySound(107.f * modificator + 20)) { - if (SetupJumboTaxiSound(75.f * (1.f - modificator))) { - SetupJumboEngineSound(maxVolume, 22050); - SetupJumboWhineSound(18.f * (1.f - modificator), 14600.f * modificator + 29500); - } - } -} - -void -cAudioManager::ProcessJumboTakeOff(CPlane *plane) -{ - const float modificator = (PlanePathPosition[plane->m_nPlaneId] - TakeOffPoint) / 300.f; - - if (SetupJumboFlySound((107.f * modificator) + 20) && SetupJumboRumbleSound(maxVolume * (1.f - modificator))) { - if (SetupJumboEngineSound(maxVolume, 22050)) - SetupJumboWhineSound(18.f * (1.f - modificator), 44100); - } -} - -void -cAudioManager::ProcessJumboTaxi() -{ - if (SetupJumboFlySound(20)) { - if (SetupJumboTaxiSound(75)) - SetupJumboWhineSound(18, 29500); - } -} - -void -cAudioManager::ProcessLaunderetteScriptObject(uint8 sound) -{ - switch (sound) { - case SCRIPT_SOUND_LAUNDERETTE_LOOP_S: - case SCRIPT_SOUND_LAUNDERETTE_LOOP_L: - m_sQueueSample.m_fSoundIntensity = 30.0f; - 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) { - 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) { - 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::ProcessLoopingScriptObject(uint8 sound) -{ - uint8 emittingVolume; - float distSquared; - - switch (sound) { - case SCRIPT_SOUND_PARTY_1_LOOP_S: - m_sQueueSample.m_fSoundIntensity = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_1); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - break; - case SCRIPT_SOUND_PARTY_1_LOOP_L: - m_sQueueSample.m_fSoundIntensity = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_1); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - break; - case SCRIPT_SOUND_PARTY_2_LOOP_S: - m_sQueueSample.m_fSoundIntensity = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_2; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_2); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - break; - case SCRIPT_SOUND_PARTY_2_LOOP_L: - m_sQueueSample.m_fSoundIntensity = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_2; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_2); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - break; - case SCRIPT_SOUND_PARTY_3_LOOP_S: - m_sQueueSample.m_fSoundIntensity = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_3; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_3); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - break; - case SCRIPT_SOUND_PARTY_3_LOOP_L: - m_sQueueSample.m_fSoundIntensity = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_3; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_3); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - break; - case SCRIPT_SOUND_PARTY_4_LOOP_S: - m_sQueueSample.m_fSoundIntensity = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_4; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_4); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - break; - case SCRIPT_SOUND_PARTY_4_LOOP_L: - m_sQueueSample.m_fSoundIntensity = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_4; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_4); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - break; - case SCRIPT_SOUND_PARTY_5_LOOP_S: - m_sQueueSample.m_fSoundIntensity = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_5; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_5; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_6; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_6; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_7; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_7; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_8; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_8; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_9; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_9; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_10; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_10; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_11; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_11; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_12; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_12; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_RAGGA; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_RAGGA; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_STRIP_CLUB_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_STRIP_CLUB_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_STRIP_CLUB_2; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_STRIP_CLUB_2; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 30.0f; - 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 = 80.0f; - 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 = 30.0f; - 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 = 80.0f; - 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 = 30.0f; - 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 = 80.0f; - 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 = 30.0f; - 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 = 80.0f; - 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 = 30.0f; - 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 = 80.0f; - 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 = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_PIANO_BAR_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_CLUB_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_1); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - 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 = 30.0f; - 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_BANK_ALARM_LOOP_L: - m_sQueueSample.m_fSoundIntensity = 80.0f; - 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 = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_POLICE_BALL_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_POLICE_BALL_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_RAVE_INDUSTRIAL; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_RAVE_INDUSTRIAL; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_RAVE_COMMERCIAL; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_RAVE_COMMERCIAL; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_RAVE_SUBURBAN; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - 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 = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_RAVE_SUBURBAN; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RAVE_SUBURBAN); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - break; - case SCRIPT_SOUND_PRETEND_FIRE_LOOP: - m_sQueueSample.m_fSoundIntensity = 50.0f; - m_sQueueSample.m_nSampleIndex = SFX_CAR_ON_FIRE; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = 80; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CAR_ON_FIRE); - m_sQueueSample.m_nReleasingVolumeModificator = 8; - m_sQueueSample.m_nReleasingVolumeDivider = 10; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - break; + if (params->m_fDistance < 193600.0f) { + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + plane = (CPlane *)params->m_pVehicle; + DoJumboVolOffset(); + position = PlanePathPosition[plane->m_nPlaneId]; + if (position <= TakeOffPoint) { + if (plane->m_fSpeed <= 0.10334f) { + ProcessJumboTaxi(); + return; + } + + ProcessJumboAccel(plane); + } else if (300.0f + TakeOffPoint >= position) { + ProcessJumboTakeOff(plane); + } else if (LandingPoint - 350.0f >= position) { + ProcessJumboFlying(); + } else { + if (position > LandingPoint) { + if (plane->m_fSpeed > 0.10334f) { + ProcessJumboDecel(plane); + return; + } + ProcessJumboTaxi(); + return; + } + ProcessJumboLanding(plane); + } + } +} + +void +cAudioManager::ProcessJumboAccel(CPlane *plane) +{ + int32 engineFreq; + int32 vol; + float whineSoundFreq; + float modificator; + + if (SetupJumboFlySound(20)) { + modificator = (plane->m_fSpeed - 0.10334f) * 1.676f; + if (modificator > 1.0f) + modificator = 1.0f; + if (SetupJumboRumbleSound(maxVolume * modificator) && SetupJumboTaxiSound((1.0f - modificator) * 75.f)) { + if (modificator < 0.2f) { + whineSoundFreq = modificator * 5.f * 14600.0f + 29500; + vol = modificator * 5.f * maxVolume; + engineFreq = modificator * 5.f * 6050.f + 16000; + } else { + whineSoundFreq = 44100; + engineFreq = 22050; + vol = maxVolume; + } + SetupJumboEngineSound(vol, engineFreq); + SetupJumboWhineSound(18, whineSoundFreq); + } + } +} + +void +cAudioManager::ProcessJumboDecel(CPlane *plane) +{ + if (SetupJumboFlySound(20) && SetupJumboTaxiSound(75)) { + const float modificator = Min(1.f, (plane->m_fSpeed - 0.10334f) * 1.676f); + SetupJumboEngineSound(maxVolume * modificator, 6050.f * modificator + 16000); + SetupJumboWhineSound(18, 29500); + } +} + +void +cAudioManager::ProcessJumboFlying() +{ + if (SetupJumboFlySound(maxVolume)) + SetupJumboEngineSound(63, 22050); +} + +void +cAudioManager::ProcessJumboLanding(CPlane *plane) +{ + const float modificator = (LandingPoint - PlanePathPosition[plane->m_nPlaneId]) / 350.f; + if (SetupJumboFlySound(107.f * modificator + 20)) { + if (SetupJumboTaxiSound(75.f * (1.f - modificator))) { + SetupJumboEngineSound(maxVolume, 22050); + SetupJumboWhineSound(18.f * (1.f - modificator), 14600.f * modificator + 29500); + } + } +} + +void +cAudioManager::ProcessJumboTakeOff(CPlane *plane) +{ + const float modificator = (PlanePathPosition[plane->m_nPlaneId] - TakeOffPoint) / 300.f; + + if (SetupJumboFlySound((107.f * modificator) + 20) && SetupJumboRumbleSound(maxVolume * (1.f - modificator))) { + if (SetupJumboEngineSound(maxVolume, 22050)) + SetupJumboWhineSound(18.f * (1.f - modificator), 44100); + } +} + +void +cAudioManager::ProcessJumboTaxi() +{ + if (SetupJumboFlySound(20)) { + if (SetupJumboTaxiSound(75)) + SetupJumboWhineSound(18, 29500); + } +} + +void +cAudioManager::ProcessLoopingScriptObject(uint8 sound) +{ + uint8 emittingVolume; + float distSquared; + + switch (sound) { + // TODO: miami default: return; } @@ -6024,7 +2990,7 @@ cAudioManager::ProcessModelCarEngine(cVehicleParams *params) if (emittingVol) { CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, 30.f, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { + /*if (m_sQueueSample.m_nVolume) { m_sQueueSample.m_nCounter = 2; m_sQueueSample.m_nSampleIndex = SFX_REMOTE_CONTROLLED_CAR; m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; @@ -6042,7 +3008,7 @@ cAudioManager::ProcessModelCarEngine(cVehicleParams *params) m_sQueueSample.m_bReverbFlag = true; m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); - } + }*/ } } } @@ -6104,7 +3070,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; @@ -6116,7 +3082,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; @@ -6344,7 +3310,7 @@ cAudioManager::ProcessPedHeadphones(cPedParams *params) } m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, 7.f, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { + /*if (m_sQueueSample.m_nVolume) { m_sQueueSample.m_nCounter = 64; m_sQueueSample.m_nSampleIndex = SFX_HEADPHONES; m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; @@ -6362,7 +3328,7 @@ cAudioManager::ProcessPedHeadphones(cPedParams *params) m_sQueueSample.m_bReverbFlag = true; m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); - } + }*/ return; } } @@ -6847,7 +3813,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_bReleasingSoundFlag = true; break; case WEAPONTYPE_M16: - m_sQueueSample.m_nSampleIndex = SFX_M16_LEFT; + /*m_sQueueSample.m_nSampleIndex = SFX_M16_LEFT; m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nCounter = iSound++; stereo = true; @@ -6863,7 +3829,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_nEmittingVolume = emittingVol; m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bReleasingSoundFlag = true;*/ break; case WEAPONTYPE_SNIPERRIFLE: m_sQueueSample.m_nSampleIndex = SFX_SNIPER_LEFT; @@ -6946,8 +3912,8 @@ 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_nFrequency = 39243; + //m_sQueueSample.m_nSampleIndex = SFX_M16_RELOAD; + //m_sQueueSample.m_nFrequency = 39243; break; case WEAPONTYPE_SHOTGUN: m_sQueueSample.m_nSampleIndex = SFX_AK47_RELOAD; @@ -6958,9 +3924,9 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_AK47_RELOAD); break; case WEAPONTYPE_M16: - m_sQueueSample.m_nSampleIndex = SFX_M16_RELOAD; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_M16_RELOAD); - break; + //m_sQueueSample.m_nSampleIndex = SFX_M16_RELOAD; + //m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_M16_RELOAD); + //break; case WEAPONTYPE_SNIPERRIFLE: m_sQueueSample.m_nSampleIndex = SFX_RIFLE_RELOAD; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RIFLE_RELOAD); @@ -7154,116 +4120,116 @@ struct tVehicleSampleData { }; // TODO(MIAMI): this is bogus. get the real data in here! -const tVehicleSampleData aVehicleSettings[110] = {{SFX_CAR_REV_2, 2, SFX_CAR_HORN_JEEP, 26513, SFX_CAR_ALARM_1, 9935, 1}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_56CHEV, 11487, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_8, 8, SFX_CAR_HORN_PORSCHE, 11025, SFX_CAR_ALARM_1, 10928, 1}, - {SFX_CAR_REV_6, 6, SFX_CAR_HORN_TRUCK, 29711, SFX_CAR_ALARM_1, 9935, 2}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_56CHEV, 12893, SFX_CAR_ALARM_1, 8941, 0}, - {SFX_CAR_REV_5, 5, SFX_CAR_HORN_BMW328, 10706, SFX_CAR_ALARM_1, 11922, 1}, - {SFX_CAR_REV_4, 4, SFX_CAR_HORN_TRUCK, 29711, SFX_CAR_ALARM_1, 7948, 2}, +const tVehicleSampleData aVehicleSettings[110] = {{SFX_CAR_REV_2, 2, SFX_CAR_HORN_JEEP, 26513, SFX_CAR_HORN_JEEP, 9935, 1}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_56CHEV, 11487, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_8, 8, SFX_CAR_HORN_PORSCHE, 11025, SFX_CAR_HORN_JEEP, 10928, 1}, + {SFX_CAR_REV_6, 6, SFX_CAR_HORN_TRUCK, 29711, SFX_CAR_HORN_JEEP, 9935, 2}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_56CHEV, 12893, SFX_CAR_HORN_JEEP, 8941, 0}, + {SFX_CAR_REV_5, 5, SFX_CAR_HORN_BMW328, 10706, SFX_CAR_HORN_JEEP, 11922, 1}, + {SFX_CAR_REV_4, 4, SFX_CAR_HORN_TRUCK, 29711, SFX_CAR_HORN_JEEP, 7948, 2}, {SFX_CAR_REV_6, 6, SFX_CAR_HORN_TRUCK, 29711, SFX_POLICE_SIREN_SLOW, 11556, 2}, - {SFX_CAR_REV_6, 6, SFX_CAR_HORN_TRUCK, 31478, SFX_CAR_ALARM_1, 8941, 2}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_BMW328, 9538, SFX_CAR_ALARM_1, 12220, 1}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_56CHEV, 10842, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_3, 3, SFX_CAR_HORN_BMW328, 12017, SFX_CAR_ALARM_1, 9935, 1}, - {SFX_CAR_REV_2, 2, SFX_CAR_HORN_JEEP, 22295, SFX_CAR_ALARM_1, 12200, 1}, - {SFX_CAR_REV_4, 4, SFX_CAR_HORN_BUS2, 18000, SFX_CAR_ALARM_1, 13400, 1}, - {SFX_CAR_REV_4, 4, SFX_CAR_HORN_BUS, 18286, SFX_CAR_ALARM_1, 9935, 2}, - {SFX_CAR_REV_3, 3, SFX_CAR_HORN_PORSCHE, 11025, SFX_CAR_ALARM_1, 13600, 1}, + {SFX_CAR_REV_6, 6, SFX_CAR_HORN_TRUCK, 31478, SFX_CAR_HORN_JEEP, 8941, 2}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_BMW328, 9538, SFX_CAR_HORN_JEEP, 12220, 1}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_56CHEV, 10842, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_3, 3, SFX_CAR_HORN_BMW328, 12017, SFX_CAR_HORN_JEEP, 9935, 1}, + {SFX_CAR_REV_2, 2, SFX_CAR_HORN_JEEP, 22295, SFX_CAR_HORN_JEEP, 12200, 1}, + {SFX_CAR_REV_4, 4, SFX_CAR_HORN_BUS2, 18000, SFX_CAR_HORN_JEEP, 13400, 1}, + {SFX_CAR_REV_4, 4, SFX_CAR_HORN_BUS, 18286, SFX_CAR_HORN_JEEP, 9935, 2}, + {SFX_CAR_REV_3, 3, SFX_CAR_HORN_PORSCHE, 11025, SFX_CAR_HORN_JEEP, 13600, 1}, {SFX_CAR_REV_4, 4, SFX_CAR_HORN_JEEP, 22295, SFX_AMBULANCE_SIREN_SLOW, 8795, 2}, {SFX_CAR_REV_5, 5, SFX_CAR_HORN_PORSCHE, 9271, SFX_POLICE_SIREN_SLOW, 16168, 1}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_56CHEV, 12170, SFX_CAR_ALARM_1, 8000, 1}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_BUS2, 12345, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_2, 2, SFX_CAR_HORN_BMW328, 10796, SFX_CAR_ALARM_1, 8543, 1}, - {SFX_CAR_REV_5, 5, SFX_CAR_HORN_PORSCHE, 9271, SFX_CAR_ALARM_1, 9935, 1}, - {SFX_CAR_REV_2, 2, SFX_CAR_HORN_PICKUP, 10924, SFX_CAR_ALARM_1, 9935, 1}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_56CHEV, 12170, SFX_CAR_HORN_JEEP, 8000, 1}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_BUS2, 12345, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_2, 2, SFX_CAR_HORN_BMW328, 10796, SFX_CAR_HORN_JEEP, 8543, 1}, + {SFX_CAR_REV_5, 5, SFX_CAR_HORN_PORSCHE, 9271, SFX_CAR_HORN_JEEP, 9935, 1}, + {SFX_CAR_REV_2, 2, SFX_CAR_HORN_PICKUP, 10924, SFX_CAR_HORN_JEEP, 9935, 1}, {SFX_CAR_REV_1, 1, SFX_CAR_HORN_PICKUP, 11025, SFX_ICE_CREAM_TUNE, 11025, 0}, - {SFX_CAR_REV_7, 7, SFX_CAR_HORN_JEEP, 26513, SFX_CAR_ALARM_1, 9935, 1}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 26513, SFX_CAR_ALARM_1, 10000, 0}, + {SFX_CAR_REV_7, 7, SFX_CAR_HORN_JEEP, 26513, SFX_CAR_HORN_JEEP, 9935, 1}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 26513, SFX_CAR_HORN_JEEP, 10000, 0}, {SFX_CAR_REV_5, 5, SFX_CAR_HORN_BMW328, 10706, SFX_POLICE_SIREN_SLOW, 13596, 1}, {SFX_CAR_REV_4, 4, SFX_CAR_HORN_BUS, 17260, SFX_POLICE_SIREN_SLOW, 13000, 2}, - {SFX_CAR_REV_4, 4, SFX_CAR_HORN_PICKUP, 8670, SFX_CAR_ALARM_1, 9935, 2}, - {SFX_CAR_REV_8, 8, SFX_CAR_HORN_PORSCHE, 10400, SFX_CAR_ALARM_1, 10123, 1}, + {SFX_CAR_REV_4, 4, SFX_CAR_HORN_PICKUP, 8670, SFX_CAR_HORN_JEEP, 9935, 2}, + {SFX_CAR_REV_8, 8, SFX_CAR_HORN_PORSCHE, 10400, SFX_CAR_HORN_JEEP, 10123, 1}, {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 26513, SFX_POLICE_SIREN_SLOW, 13596, 0}, - {SFX_CAR_REV_6, 6, SFX_CAR_HORN_BUS2, 11652, SFX_CAR_ALARM_1, 10554, 3}, - {SFX_CAR_REV_6, 6, SFX_CAR_HORN_TRUCK, 29711, SFX_CAR_ALARM_1, 8000, 2}, - {SFX_CAR_REV_6, 6, SFX_CAR_HORN_TRUCK, 28043, SFX_CAR_ALARM_1, 9935, 2}, - {SFX_CAR_REV_1, 0, SFX_CAR_HORN_TRUCK, 29711, SFX_CAR_ALARM_1, 9935, 3}, - {SFX_CAR_REV_1, 0, SFX_CAR_HORN_JEEP, 26513, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CESNA_IDLE, 0, SFX_CAR_HORN_JEEP, 26513, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_6, 6, SFX_CAR_HORN_BUS, 16291, SFX_CAR_ALARM_1, 7500, 3}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_56CHEV, 10842, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_56CHEV, 10233, SFX_CAR_ALARM_1, 8935, 0}, - {SFX_CAR_REV_4, 4, SFX_CAR_HORN_PICKUP, 8670, SFX_CAR_ALARM_1, 8935, 0}, - {SFX_CAR_REV_1, 0, SFX_CAR_HORN_PICKUP, 2000, SFX_CAR_ALARM_1, 17000, 0}, - {SFX_CAR_REV_4, 4, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_4, 4, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_5, 5, SFX_CAR_HORN_BMW328, 9003, SFX_CAR_ALARM_1, 9935, 1}, - {SFX_CAR_REV_2, 2, SFX_CAR_HORN_PORSCHE, 12375, SFX_CAR_ALARM_1, 9935, 1}, - {SFX_CAR_REV_5, 5, SFX_CAR_HORN_BUS2, 15554, SFX_CAR_ALARM_1, 9935, 1}, - {SFX_CAR_REV_7, 7, SFX_CAR_HORN_BUS2, 13857, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_7, 7, SFX_CAR_HORN_PICKUP, 10924, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_4, 4, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 2}, - {SFX_CAR_REV_1, 0, SFX_CAR_HORN_JEEP, 20143, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 0, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_4, 4, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9000, 0}, - {SFX_CAR_REV_6, 6, SFX_CAR_HORN_TRUCK, 28043, SFX_CAR_ALARM_1, 9935, 2}, - {SFX_CAR_REV_4, 4, SFX_CAR_HORN_BUS, 18286, SFX_CAR_ALARM_1, 9935, 2}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_56CHEV, 10842, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_4, 4, SFX_CAR_HORN_BUS2, 18000, SFX_CAR_ALARM_1, 13400, 1}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}, - {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_ALARM_1, 9935, 0}}; + {SFX_CAR_REV_6, 6, SFX_CAR_HORN_BUS2, 11652, SFX_CAR_HORN_JEEP, 10554, 3}, + {SFX_CAR_REV_6, 6, SFX_CAR_HORN_TRUCK, 29711, SFX_CAR_HORN_JEEP, 8000, 2}, + {SFX_CAR_REV_6, 6, SFX_CAR_HORN_TRUCK, 28043, SFX_CAR_HORN_JEEP, 9935, 2}, + {SFX_CAR_REV_1, 0, SFX_CAR_HORN_TRUCK, 29711, SFX_CAR_HORN_JEEP, 9935, 3}, + {SFX_CAR_REV_1, 0, SFX_CAR_HORN_JEEP, 26513, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CESNA_IDLE, 0, SFX_CAR_HORN_JEEP, 26513, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_6, 6, SFX_CAR_HORN_BUS, 16291, SFX_CAR_HORN_JEEP, 7500, 3}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_56CHEV, 10842, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_56CHEV, 10233, SFX_CAR_HORN_JEEP, 8935, 0}, + {SFX_CAR_REV_4, 4, SFX_CAR_HORN_PICKUP, 8670, SFX_CAR_HORN_JEEP, 8935, 0}, + {SFX_CAR_REV_1, 0, SFX_CAR_HORN_PICKUP, 2000, SFX_CAR_HORN_JEEP, 17000, 0}, + {SFX_CAR_REV_4, 4, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_4, 4, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_5, 5, SFX_CAR_HORN_BMW328, 9003, SFX_CAR_HORN_JEEP, 9935, 1}, + {SFX_CAR_REV_2, 2, SFX_CAR_HORN_PORSCHE, 12375, SFX_CAR_HORN_JEEP, 9935, 1}, + {SFX_CAR_REV_5, 5, SFX_CAR_HORN_BUS2, 15554, SFX_CAR_HORN_JEEP, 9935, 1}, + {SFX_CAR_REV_7, 7, SFX_CAR_HORN_BUS2, 13857, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_7, 7, SFX_CAR_HORN_PICKUP, 10924, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_4, 4, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 2}, + {SFX_CAR_REV_1, 0, SFX_CAR_HORN_JEEP, 20143, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 0, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_4, 4, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9000, 0}, + {SFX_CAR_REV_6, 6, SFX_CAR_HORN_TRUCK, 28043, SFX_CAR_HORN_JEEP, 9935, 2}, + {SFX_CAR_REV_4, 4, SFX_CAR_HORN_BUS, 18286, SFX_CAR_HORN_JEEP, 9935, 2}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_56CHEV, 10842, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_4, 4, SFX_CAR_HORN_BUS2, 18000, SFX_CAR_HORN_JEEP, 13400, 1}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}, + {SFX_CAR_REV_1, 1, SFX_CAR_HORN_JEEP, 21043, SFX_CAR_HORN_JEEP, 9935, 0}}; void cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *automobile) @@ -7595,7 +4561,7 @@ cAudioManager::ProcessPornCinema(uint8 sound) float distSquared; switch (sound) { - case SCRIPT_SOUND_PORN_CINEMA_1_S: + /*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; @@ -7632,7 +4598,7 @@ cAudioManager::ProcessPornCinema(uint8 sound) m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_fSoundIntensity = 80.0f; sample = SFX_PORN_3_GROAN_1; - break; + break;*/ default: return; } @@ -7839,65 +4805,6 @@ cAudioManager::ProcessReverseGear(cVehicleParams *params) return true; } -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 = scriptObjectIntensityS; - 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) { - 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) { - 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::ProcessScriptObject(int32 id) { @@ -7911,68 +4818,6 @@ cAudioManager::ProcessScriptObject(int32 id) } } -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 = 30.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) { - 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) { - 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::ProcessSpecial() { @@ -7996,6 +4841,7 @@ cAudioManager::ProcessSpecial() } } +#ifdef GTA_TRAIN bool cAudioManager::ProcessTrainNoise(cVehicleParams *params) { @@ -8061,6 +4907,7 @@ cAudioManager::ProcessTrainNoise(cVehicleParams *params) } return true; } +#endif void cAudioManager::ProcessVehicle(CVehicle *veh) @@ -8138,11 +4985,13 @@ cAudioManager::ProcessVehicle(CVehicle *veh) ProcessVehicleOneShots(¶ms); ProcessRainOnVehicle(¶ms); break; +#ifdef GTA_TRAIN case VEHICLE_TYPE_TRAIN: ProcessTrainNoise(¶ms); ProcessVehicleOneShots(¶ms); ProcessRainOnVehicle(¶ms); break; +#endif case VEHICLE_TYPE_HELI: ProcessHelicopter(¶ms); ProcessVehicleOneShots(¶ms); @@ -8623,7 +5472,7 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params) break; } case SOUND_17: - { + {/* const float SOUND_INTENSITY = 50.0f; m_sQueueSample.m_nSampleIndex = SFX_POLICE_BOAT_THUMB_OFF; m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; @@ -8633,7 +5482,7 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params) m_sQueueSample.m_fSpeedMultiplier = 0.0f; m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; emittingVol = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i]; - maxDist = SQR(SOUND_INTENSITY); + maxDist = SQR(SOUND_INTENSITY);*/ break; } case SOUND_18: @@ -9214,43 +6063,6 @@ cAudioManager::ProcessWetRoadNoise(cVehicleParams *params) return true; } -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) { - 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(); - } - } -} - int32 cAudioManager::RandomDisplacement(uint32 seed) const { @@ -9654,7 +6466,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: @@ -9662,7 +6474,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) @@ -9673,7 +6485,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; @@ -9692,7 +6504,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; } diff --git a/src/audio/AudioManager.h b/src/audio/AudioManager.h index bbbc84bd8..8d81b857c 100644 --- a/src/audio/AudioManager.h +++ b/src/audio/AudioManager.h @@ -231,82 +231,7 @@ class cAudioManager // functions returning talk sfx, // order from GetPedCommentSfx - uint32 GetPlayerTalkSfx(int16 sound); - uint32 GetCopTalkSfx(int16 sound); - uint32 GetSwatTalkSfx(int16 sound); - uint32 GetFBITalkSfx(int16 sound); - uint32 GetArmyTalkSfx(int16 sound); - uint32 GetMedicTalkSfx(int16 sound); - uint32 GetFiremanTalkSfx(int16 sound); - uint32 GetNormalMaleTalkSfx(int16 sound); - uint32 GetTaxiDriverTalkSfx(int16 sound); - uint32 GetPimpTalkSfx(int16 sound); - uint32 GetMafiaTalkSfx(int16 sound); - uint32 GetTriadTalkSfx(int16 sound); - uint32 GetDiabloTalkSfx(int16 sound); - uint32 GetYakuzaTalkSfx(int16 sound); - uint32 GetYardieTalkSfx(int16 sound); - uint32 GetColumbianTalkSfx(int16 sound); - uint32 GetHoodTalkSfx(int16 sound); - uint32 GetBlackCriminalTalkSfx(int16 sound); - uint32 GetWhiteCriminalTalkSfx(int16 sound); - uint32 GetMaleNo2TalkSfx(int16 sound); - uint32 GetBlackProjectMaleTalkSfx(int16 sound, int32 model); - uint32 GetWhiteFatMaleTalkSfx(int16 sound); - uint32 GetBlackFatMaleTalkSfx(int16 sound); - uint32 GetBlackCasualFemaleTalkSfx(int16 sound); - uint32 GetWhiteCasualFemaleTalkSfx(int16 sound); - uint32 GetFemaleNo3TalkSfx(int16 sound); - uint32 GetBlackFatFemaleTalkSfx(int16 sound); - uint32 GetWhiteFatFemaleTalkSfx(int16 sound); - uint32 GetBlackFemaleProstituteTalkSfx(int16 sound); - uint32 GetWhiteFemaleProstituteTalkSfx(int16 sound); - uint32 GetBlackProjectFemaleOldTalkSfx(int16 sound); - uint32 GetBlackProjectFemaleYoungTalkSfx(int16 sound); - uint32 GetChinatownMaleOldTalkSfx(int16 sound); - uint32 GetChinatownMaleYoungTalkSfx(int16 sound); - uint32 GetChinatownFemaleOldTalkSfx(int16 sound); - uint32 GetChinatownFemaleYoungTalkSfx(int16 sound); - uint32 GetLittleItalyMaleTalkSfx(int16 sound); - uint32 GetLittleItalyFemaleOldTalkSfx(int16 sound); - uint32 GetLittleItalyFemaleYoungTalkSfx(int16 sound); - uint32 GetWhiteDockerMaleTalkSfx(int16 sound); - uint32 GetBlackDockerMaleTalkSfx(int16 sound); - uint32 GetScumMaleTalkSfx(int16 sound); - uint32 GetScumFemaleTalkSfx(int16 sound); - uint32 GetWhiteWorkerMaleTalkSfx(int16 sound); - uint32 GetBlackWorkerMaleTalkSfx(int16 sound); - uint32 GetBusinessMaleYoungTalkSfx(int16 sound, int32 model); - uint32 GetBusinessMaleOldTalkSfx(int16 sound); - uint32 GetWhiteBusinessFemaleTalkSfx(int16 sound, int32 model); - uint32 GetBlackBusinessFemaleTalkSfx(int16 sound); - uint32 GetSupermodelMaleTalkSfx(int16 sound); - uint32 GetSupermodelFemaleTalkSfx(int16 sound); - uint32 GetStewardMaleTalkSfx(int16 sound); - uint32 GetStewardFemaleTalkSfx(int16 sound); - uint32 GetFanMaleTalkSfx(int16 sound, int32 model); - uint32 GetFanFemaleTalkSfx(int16 sound); - uint32 GetHospitalMaleTalkSfx(int16 sound); - uint32 GetHospitalFemaleTalkSfx(int16 sound); - uint32 GetWhiteConstructionWorkerTalkSfx(int16 sound); - uint32 GetBlackConstructionWorkerTalkSfx(int16 sound); - uint32 GetShopperFemaleTalkSfx(int16 sound, int32 model); - uint32 GetStudentMaleTalkSfx(int16 sound); - uint32 GetStudentFemaleTalkSfx(int16 sound); - uint32 GetCasualMaleOldTalkSfx(int16 sound); - - uint32 GetSpecialCharacterTalkSfx(int32 modelIndex, int32 sound); - uint32 GetEightTalkSfx(int16 sound); - uint32 GetFrankieTalkSfx(int16 sound); - uint32 GetMistyTalkSfx(int16 sound); - uint32 GetOJGTalkSfx(int16 sound); - uint32 GetCatatalinaTalkSfx(int16 sound); - uint32 GetBomberTalkSfx(int16 sound); - uint32 GetSecurityGuardTalkSfx(int16 sound); - uint32 GetChunkyTalkSfx(int16 sound); - - uint32 GetGenericMaleTalkSfx(int16 sound); - uint32 GetGenericFemaleTalkSfx(int16 sound); + // TODO: miami // end of functions returning talk sfx void GenerateIntegerRandomNumberTable(); @@ -353,18 +278,17 @@ class cAudioManager /// 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); bool ProcessEngineDamage(cVehicleParams *params); void ProcessEntity(int32 sound); void ProcessExplosions(int32 explosion); @@ -373,7 +297,6 @@ class cAudioManager void ProcessFrontEnd(); void ProcessGarages(); bool ProcessHelicopter(cVehicleParams *params); - void ProcessHomeScriptObject(uint8 sound); void ProcessJumbo(cVehicleParams *); void ProcessJumboAccel(CPlane *plane); void ProcessJumboDecel(CPlane *plane); @@ -381,7 +304,6 @@ class cAudioManager void ProcessJumboLanding(CPlane *plane); void ProcessJumboTakeOff(CPlane *plane); void ProcessJumboTaxi(); - void ProcessLaunderetteScriptObject(uint8 sound); void ProcessLoopingScriptObject(uint8 sound); void ProcessMissionAudio(); void ProcessModelCarEngine(cVehicleParams *params); @@ -398,11 +320,11 @@ class cAudioManager 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); @@ -415,7 +337,6 @@ class cAudioManager 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 937fe633c..8f46a7fbd 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 abacb4251..75472ca90 100644 --- a/src/audio/PoliceRadio.cpp +++ b/src/audio/PoliceRadio.cpp @@ -25,8 +25,6 @@ struct tPoliceRadioZone { }; tPoliceRadioZone ZoneSfx[NUMAUDIOZONES]; -char SubZo2Label[8]; -char SubZo3Label[8]; int32 g_nMissionAudioSfx = TOTAL_AUDIO_SAMPLES; int8 g_nMissionAudioPlayingStatus = 2; @@ -43,48 +41,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 @@ -247,7 +219,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; } @@ -258,8 +230,8 @@ cAudioManager::ServicePoliceRadioChannel(int32 wantedLevel) SampleManager.InitialiseChannel(policeChannel, sample, 0); switch (sample) { case SFX_POLICE_RADIO_MESSAGE_NOISE_1: - case SFX_POLICE_RADIO_MESSAGE_NOISE_2: - case SFX_POLICE_RADIO_MESSAGE_NOISE_3: + //case SFX_POLICE_RADIO_MESSAGE_NOISE_2: + //case SFX_POLICE_RADIO_MESSAGE_NOISE_3: freq = m_anRandomTable[4] % 2000 + 10025; bChannelOpen = bChannelOpen == false; break; @@ -314,7 +286,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; @@ -324,11 +296,11 @@ 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 && + /*if (sampleIndex == SFX_POLICE_RADIO_SHORESIDE_VALE && (strcmp(zone->name, SubZo2Label) == 0 || strcmp(zone->name, SubZo3Label) == 0)) { m_sPoliceRadioQueue.Add(SFX_NORTH); m_sPoliceRadioQueue.Add(SFX_EAST); - } else { + } else*/ { rangeX = zone->maxx - zone->minx; rangeY = zone->maxy - zone->miny; halfX = 0.5f * rangeX + zone->minx; @@ -560,7 +532,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; @@ -579,7 +551,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; @@ -589,7 +561,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 @@ -633,7 +605,7 @@ cAudioManager::SetupSuspectLastSeenReport() color_post_modifier = TOTAL_AUDIO_SAMPLES; break; case MI_TRAIN: - sample = SFX_POLICE_RADIO_SUBWAY_CAR; +// sample = SFX_POLICE_RADIO_SUBWAY_CAR; main_color = TOTAL_AUDIO_SAMPLES; color_post_modifier = TOTAL_AUDIO_SAMPLES; @@ -646,14 +618,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) @@ -732,12 +697,12 @@ 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 && + /*if (sample == SFX_POLICE_RADIO_SHORESIDE_VALE && (strcmp(zone->name, SubZo2Label) == 0 || strcmp(zone->name, SubZo3Label) == 0)) { m_sPoliceRadioQueue.Add(SFX_NORTH); m_sPoliceRadioQueue.Add(SFX_EAST); - } else { + } else*/ { rangeX = zone->maxx - zone->minx; rangeY = zone->maxy - zone->miny; halfX = 0.5f * rangeX + zone->minx;