From 13a0bf1c436d6d2d66d4c53c845114fa1718ad0b Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Sat, 16 May 2020 20:29:13 +0300 Subject: [PATCH 1/7] Move sound processors to AudioLogic.cpp, plus small fixes --- src/audio/AudioLogic.cpp | 8838 ++++++++++++++++++++++++++++++ src/audio/AudioManager.cpp | 10056 +++-------------------------------- src/audio/AudioManager.h | 22 +- src/audio/DMAudio.cpp | 6 +- src/audio/DMAudio.h | 2 +- 5 files changed, 9476 insertions(+), 9448 deletions(-) create mode 100644 src/audio/AudioLogic.cpp diff --git a/src/audio/AudioLogic.cpp b/src/audio/AudioLogic.cpp new file mode 100644 index 00000000..05483617 --- /dev/null +++ b/src/audio/AudioLogic.cpp @@ -0,0 +1,8838 @@ +#include "common.h" + +#include "AudioManager.h" +#include "audio_enums.h" + +#include "Automobile.h" +#include "Boat.h" +#include "Bridge.h" +#include "Camera.h" +#include "Cranes.h" +#include "DMAudio.h" +#include "Entity.h" +#include "Explosion.h" +#include "Fire.h" +#include "Garages.h" +#include "General.h" +#include "HandlingMgr.h" +#include "Heli.h" +#include "ModelIndices.h" +#include "MusicManager.h" +#include "Pad.h" +#include "Ped.h" +#include "Physical.h" +#include "Placeable.h" +#include "Plane.h" +#include "PlayerPed.h" +#include "Pools.h" +#include "Projectile.h" +#include "ProjectileInfo.h" +#include "Replay.h" +#include "Stats.h" +#include "SurfaceTable.h" +#include "Train.h" +#include "Transmission.h" +#include "Vehicle.h" +#include "WaterCannon.h" +#include "Weather.h" +#include "ZoneCull.h" +#include "sampman.h" + +const int channels = ARRAY_SIZE(cAudioManager::m_asActiveSamples); +const int policeChannel = channels + 1; +const int allChannels = channels + 2; +const int maxVolume = 127; + +uint32 gPornNextTime; +uint32 gSawMillNextTime; +uint32 gShopNextTime; +uint32 gAirportNextTime; +uint32 gCinemaNextTime; +uint32 gDocksNextTime; +uint32 gHomeNextTime; +uint32 gCellNextTime; +uint32 gNextCryTime; + +enum PLAY_STATUS : uint8 { PLAY_STATUS_STOPPED = 0, PLAY_STATUS_PLAYING = 1, PLAY_STATUS_FINISHED = 2 }; +enum LOADING_STATUS : uint8 { LOADING_STATUS_NOT_LOADED = 0, LOADING_STATUS_LOADED = 1 }; + +void +cAudioManager::PreInitialiseGameSpecificSetup() const +{ + BankStartOffset[SAMPLEBANK_MAIN] = SAMPLEBANK_START; + BankStartOffset[SAMPLEBANK_PED] = SAMPLEBANK_PED_START; +} + +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::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::PostTerminateGameSpecificShutdown() +{ + ; +} + +void +cAudioManager::ResetAudioLogicTimers(uint32 timer) +{ + gPornNextTime = timer; + gNextCryTime = timer; + gSawMillNextTime = timer; + gCellNextTime = timer; + gShopNextTime = timer; + gHomeNextTime = timer; + gAirportNextTime = timer; + gDocksNextTime = timer; + gCinemaNextTime = timer; + for (int32 i = 0; i < m_nAudioEntitiesTotal; i++) { + if (m_asAudioEntities[m_anAudioEntityIndices[i]].m_nType == AUDIOTYPE_PHYSICAL) { + CPed *ped = (CPed *)m_asAudioEntities[m_anAudioEntityIndices[i]].m_pEntity; + if (ped->IsPed()) { + ped->m_lastSoundStart = timer; + ped->m_soundStart = timer + m_anRandomTable[0] % 3000; + } + } + } + ClearMissionAudio(); + SampleManager.StopChannel(policeChannel); +} + +void +cAudioManager::ProcessReverb() const +{ + if (SampleManager.UpdateReverb() && m_bDynamicAcousticModelingStatus) { + for (uint32 i = 0; i < +#ifdef FIX_BUGS + channels +#else + 28 +#endif + ; + i++) { + if (m_asActiveSamples[i].m_bReverbFlag) + SampleManager.SetChannelReverbFlag(i, 1); + } + } +} + +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); +} + +void +cAudioManager::CalculateDistance(bool &distCalculated, float dist) +{ + if (!distCalculated) { + m_sQueueSample.m_fDistance = Sqrt(dist); + distCalculated = true; + } +} + +void +cAudioManager::ProcessSpecial() +{ + if (m_nUserPause) { + if (!m_nPreviousUserPause) { + MusicManager.ChangeMusicMode(MUSICMODE_FRONTEND); + SampleManager.SetEffectsFadeVolume(maxVolume); + SampleManager.SetMusicFadeVolume(maxVolume); + } + } else { + if (m_nPreviousUserPause) { + MusicManager.StopFrontEndTrack(); + MusicManager.ChangeMusicMode(MUSICMODE_GAME); + } + CPlayerPed *playerPed = FindPlayerPed(); + if (playerPed) { + const PedState &state = playerPed->m_nPedState; + if (state != PED_ENTER_CAR && state != PED_STEAL_CAR && !playerPed->bInVehicle) + SampleManager.StopChannel(m_nActiveSamples); + } + } +} + +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::ProcessPhysical(int32 id) +{ + CPhysical *entity = (CPhysical *)m_asAudioEntities[id].m_pEntity; + if (entity) { + switch (entity->GetType()) { + case ENTITY_TYPE_VEHICLE: + ProcessVehicle((CVehicle *)m_asAudioEntities[id].m_pEntity); + break; + case ENTITY_TYPE_PED: + ProcessPed((CPhysical *)m_asAudioEntities[id].m_pEntity); + break; + default: + return; + } + } +} + +#pragma region VEHICLE AUDIO +enum eVehicleModel { + LANDSTAL, + IDAHO, + STINGER, + LINERUN, + PEREN, + SENTINEL, + PATRIOT, + FIRETRUK, + TRASH, + STRETCH, + MANANA, + INFERNUS, + BLISTA, + PONY, + MULE, + CHEETAH, + AMBULAN, + FBICAR, + MOONBEAM, + ESPERANT, + TAXI, + KURUMA, + BOBCAT, + MRWHOOP, + BFINJECT, + CORPSE, + POLICE, + ENFORCER, + SECURICA, + BANSHEE, + PREDATOR, + BUS, + RHINO, + BARRACKS, + TRAIN, + CHOPPER, + DODO, + COACH, + CABBIE, + STALLION, + RUMPO, + RCBANDIT, + BELLYUP, + MRWONGS, + MAFIA, + YARDIE, + YAKUZA, + DIABLOS, + COLUMB, + HOODS, + AIRTRAIN, + DEADDODO, + SPEEDER, + REEFER, + PANLANT, + FLATBED, + YANKEE, + ESCAPE, + BORGNINE, + TOYZ, + GHOST, + CAR151, + CAR152, + CAR153, + CAR154, + CAR155, + CAR156, + CAR157, + CAR158, + CAR159, + MAX_CARS +}; + + +struct tVehicleSampleData { + eSfxSample m_nAccelerationSampleIndex; + uint8 m_bEngineSoundType; + eSfxSample m_nHornSample; + int32 m_nHornFrequency; + uint8 m_nSirenOrAlarmSample; + int32 m_nSirenOrAlarmFrequency; + uint8 m_bDoorType; +}; + +const tVehicleSampleData aVehicleSettings[MAX_CARS] = {{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}, + {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_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_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_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_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}}; + + +bool bPlayerJustEnteredCar; + +const bool hornPatternsArray[8][44] = { + {false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, + false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false}, + {false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, + true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false}, + {false, false, true, true, true, true, true, true, true, true, true, true, false, false, false, false, true, true, true, true, true, false, + false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false}, + {false, false, true, true, true, true, true, false, false, true, true, true, true, true, false, false, false, true, true, true, true, true, + true, true, true, true, true, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, false}, + {false, false, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false}, + {false, false, true, true, true, false, false, false, true, true, true, false, false, false, false, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false}, + {false, false, true, true, true, true, false, false, false, false, true, true, true, false, false, true, true, true, false, false, true, true, + true, true, true, true, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, false, false}, + {false, false, true, true, true, true, false, false, true, true, true, true, true, false, false, false, true, true, true, true, true, true, + false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false}, +}; + + +void +cAudioManager::ProcessVehicle(CVehicle *veh) +{ + tHandlingData *handling = veh->pHandling; + float velChange; + cVehicleParams params; + m_sQueueSample.m_vecPos = veh->GetPosition(); + + params.m_bDistanceCalculated = false; + params.m_fDistance = GetDistanceSquared(m_sQueueSample.m_vecPos); + params.m_pVehicle = veh; + params.m_pTransmission = nil; + params.m_nIndex = 0; + params.m_fVelocityChange = 0.0f; + + if (handling) + params.m_pTransmission = &handling->Transmission; + + params.m_nIndex = veh->GetModelIndex() - MI_FIRST_VEHICLE; + if (params.m_pVehicle->GetStatus() == STATUS_SIMPLE) + velChange = params.m_pVehicle->AutoPilot.m_fMaxTrafficSpeed * 0.02f; + else + velChange = DotProduct(params.m_pVehicle->m_vecMoveSpeed, params.m_pVehicle->GetForward()); + params.m_fVelocityChange = velChange; + switch (params.m_pVehicle->m_vehType) { + case VEHICLE_TYPE_CAR: + UpdateGasPedalAudio((CAutomobile *)veh); + if (params.m_nIndex == RCBANDIT) { + ProcessModelCarEngine(¶ms); + ProcessVehicleOneShots(¶ms); + ((CAutomobile *)veh)->m_fVelocityChangeForAudio = params.m_fVelocityChange; + ProcessRainOnVehicle(¶ms); + break; + } + if (params.m_nIndex == DODO) { + if (!ProcessVehicleRoadNoise(¶ms)) { + ProcessVehicleOneShots(¶ms); + ((CAutomobile *)veh)->m_fVelocityChangeForAudio = params.m_fVelocityChange; + ProcessRainOnVehicle(¶ms); + break; + } + if (CWeather::WetRoads > 0.f) + ProcessWetRoadNoise(¶ms); + ProcessVehicleSkidding(¶ms); + } else { + if (!ProcessVehicleRoadNoise(¶ms)) { + ProcessVehicleOneShots(¶ms); + ((CAutomobile *)veh)->m_fVelocityChangeForAudio = params.m_fVelocityChange; + ProcessRainOnVehicle(¶ms); + break; + } + ProcessReverseGear(¶ms); + if (CWeather::WetRoads > 0.f) + ProcessWetRoadNoise(¶ms); + ProcessVehicleSkidding(¶ms); + ProcessVehicleHorn(¶ms); + ProcessVehicleSirenOrAlarm(¶ms); + if (UsesReverseWarning(params.m_nIndex)) + ProcessVehicleReverseWarning(¶ms); + if (HasAirBrakes(params.m_nIndex)) + ProcessAirBrakes(¶ms); + } + ProcessCarBombTick(¶ms); + ProcessVehicleEngine(¶ms); + ProcessEngineDamage(¶ms); + ProcessVehicleDoors(¶ms); + ProcessVehicleOneShots(¶ms); + ((CAutomobile *)veh)->m_fVelocityChangeForAudio = params.m_fVelocityChange; + ProcessRainOnVehicle(¶ms); + break; + case VEHICLE_TYPE_BOAT: + ProcessBoatEngine(¶ms); + ProcessBoatMovingOverWater(¶ms); + ProcessVehicleOneShots(¶ms); + ProcessRainOnVehicle(¶ms); + break; + case VEHICLE_TYPE_TRAIN: + ProcessTrainNoise(¶ms); + ProcessVehicleOneShots(¶ms); + ProcessRainOnVehicle(¶ms); + break; + case VEHICLE_TYPE_HELI: + ProcessHelicopter(¶ms); + ProcessVehicleOneShots(¶ms); + ProcessRainOnVehicle(¶ms); + break; + case VEHICLE_TYPE_PLANE: + ProcessPlane(¶ms); + ProcessVehicleOneShots(¶ms); + ProcessRainOnVehicle(¶ms); + break; + default: + ProcessRainOnVehicle(¶ms); + break; + } +} + +void +cAudioManager::ProcessRainOnVehicle(cVehicleParams *params) +{ + const int rainOnVehicleIntensity = 22; + if (params->m_fDistance < SQR(rainOnVehicleIntensity) && CWeather::Rain > 0.01f && (!CCullZones::CamNoRain() || !CCullZones::PlayerNoRain())) { + CVehicle *veh = params->m_pVehicle; + ++veh->m_bRainAudioCounter; + if (veh->m_bRainAudioCounter >= 2) { + veh->m_bRainAudioCounter = 0; + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + float emittingVol = 30.f * CWeather::Rain; + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, rainOnVehicleIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = veh->m_bRainSamplesCounter++; + if (veh->m_bRainSamplesCounter > 4) + veh->m_bRainSamplesCounter = 68; + m_sQueueSample.m_nSampleIndex = (m_anRandomTable[1] & 3) + SFX_CAR_RAIN_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 9; + m_sQueueSample.m_nFrequency = m_anRandomTable[1] % 4000 + 28000; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nEmittingVolume = (uint8)emittingVol; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = rainOnVehicleIntensity; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bReverbFlag = false; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } + } +} + +bool +cAudioManager::ProcessReverseGear(cVehicleParams *params) +{ + const int reverseGearIntensity = 30; + + CVehicle *veh; + CAutomobile *automobile; + int32 emittingVol; + float modificator; + + if (params->m_fDistance >= SQR(reverseGearIntensity)) + return false; + veh = params->m_pVehicle; + if (veh->bEngineOn && (veh->m_fGasPedal < 0.0f || !veh->m_nCurrentGear)) { + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + automobile = (CAutomobile *)params->m_pVehicle; + if (automobile->m_nWheelsOnGround) { + modificator = params->m_fVelocityChange / params->m_pTransmission->fMaxReverseVelocity; + } else { + if (automobile->m_nDriveWheelsOnGround) + automobile->m_fGasPedalAudio = automobile->m_fGasPedalAudio * 0.4f; + modificator = automobile->m_fGasPedalAudio; + } + modificator = Abs(modificator); + emittingVol = (24.f * modificator); + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, reverseGearIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + if (params->m_pVehicle->m_fGasPedal >= 0.0f) { + m_sQueueSample.m_nCounter = 62; + m_sQueueSample.m_nSampleIndex = SFX_REVERSE_GEAR_2; + } else { + m_sQueueSample.m_nCounter = 61; + m_sQueueSample.m_nSampleIndex = SFX_REVERSE_GEAR; + } + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nFrequency = (6000.f * modificator) + 7000; + 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 = 3.0f; + m_sQueueSample.m_fSoundIntensity = reverseGearIntensity; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 5; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } + return true; +} + +void +cAudioManager::ProcessModelCarEngine(cVehicleParams *params) +{ + const float SOUND_INTENSITY = 30.0f; + CAutomobile *automobile; + float allowedVelocity; + int32 emittingVol; + float velocityChange; + + if (params->m_fDistance < SQR(SOUND_INTENSITY)) { + automobile = (CAutomobile *)params->m_pVehicle; + if (automobile->bEngineOn) { + if (automobile->m_nWheelsOnGround) { + velocityChange = Abs(params->m_fVelocityChange); + } else { + if (automobile->m_nDriveWheelsOnGround) + automobile->m_fGasPedalAudio = automobile->m_fGasPedalAudio * 0.4f; + velocityChange = automobile->m_fGasPedalAudio * params->m_pTransmission->fMaxVelocity; + } + if (velocityChange > 0.001f) { + allowedVelocity = 0.5f * params->m_pTransmission->fMaxVelocity; + if (velocityChange < allowedVelocity) + emittingVol = (90.f * velocityChange / allowedVelocity); + else + emittingVol = 90; + 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) { + m_sQueueSample.m_nCounter = 2; + m_sQueueSample.m_nSampleIndex = SFX_REMOTE_CONTROLLED_CAR; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_nFrequency = (11025.f * velocityChange / params->m_pTransmission->fMaxVelocity + 11025.f); + 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 = 3.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } + } + } + } +} + + + +bool +cAudioManager::ProcessVehicleRoadNoise(cVehicleParams *params) +{ + const float SOUND_INTENSITY = 95.0f; + + int32 emittingVol; + uint32 freq; + float modificator; + int sampleFreq; + float velocity; + + if (params->m_fDistance >= SQR(SOUND_INTENSITY)) + return false; + if (params->m_pTransmission) { + if (params->m_pVehicle->m_vecMoveSpeed.z) { + velocity = Abs(params->m_fVelocityChange); + if (velocity > 0.0f) { + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + emittingVol = 30.f * Min(1.f, velocity / (0.5f * params->m_pTransmission->fMaxVelocity)); + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 0; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + if (params->m_pVehicle->m_nSurfaceTouched == SURFACE_PUDDLE) { + m_sQueueSample.m_nSampleIndex = SFX_BOAT_WATER_LOOP; + freq = 6050 * emittingVol / 30 + 16000; + } else { + m_sQueueSample.m_nSampleIndex = SFX_ROAD_NOISE; + modificator = m_sQueueSample.m_fDistance / 190.f; + sampleFreq = SampleManager.GetSampleBaseFrequency(SFX_ROAD_NOISE); + freq = (sampleFreq * modificator) + ((3 * sampleFreq) / 4); + } + m_sQueueSample.m_nFrequency = freq; + 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 = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 4; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } + } + } + return true; +} + +bool +cAudioManager::ProcessWetRoadNoise(cVehicleParams *params) +{ + const float SOUND_INTENSITY = 30.0f; + + float relativeVelocity; + int32 emittingVol; + float modificator; + int freq; + float velChange; + + if (params->m_fDistance >= SQR(SOUND_INTENSITY)) + return false; + if (params->m_pTransmission) { + if (params->m_pVehicle->m_vecMoveSpeed.z) { + velChange = Abs(params->m_fVelocityChange); + if (velChange > 0.f) { + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + relativeVelocity = Min(1.0f, velChange / (0.5f * params->m_pTransmission->fMaxVelocity)); + emittingVol = 23.0f * relativeVelocity * CWeather::WetRoads; + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 1; + m_sQueueSample.m_nSampleIndex = SFX_ROAD_NOISE; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + modificator = m_sQueueSample.m_fDistance / 6.f; + freq = SampleManager.GetSampleBaseFrequency(SFX_ROAD_NOISE); + m_sQueueSample.m_nFrequency = freq + freq * modificator; + 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 = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 4; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } + } + } + return true; +} + +void +cAudioManager::ProcessVehicleEngine(cVehicleParams *params) +{ + const float SOUND_INTENSITY = 50.0f; + + CVehicle *playerVeh; + CVehicle *veh; + CAutomobile *automobile; + float relativeGearChange; + float relativeChange; + uint8 volume; + int32 freq = 0; // uinitialized variable + uint8 emittingVol; + cTransmission *transmission; + uint8 currentGear; + float modificator; + float traction = 0.f; + + if (params->m_fDistance < SQR(SOUND_INTENSITY)) { + playerVeh = FindPlayerVehicle(); + veh = params->m_pVehicle; + if (playerVeh == veh && veh->GetStatus() == STATUS_WRECKED) { + SampleManager.StopChannel(m_nActiveSamples); + return; + } + if (veh->bEngineOn) { + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + automobile = (CAutomobile *)params->m_pVehicle; + if (params->m_nIndex == DODO) { + ProcessCesna(params); + return; + } + if (FindPlayerVehicle() == veh) { + ProcessPlayersVehicleEngine(params, automobile); + return; + } + transmission = params->m_pTransmission; + if (transmission) { + currentGear = params->m_pVehicle->m_nCurrentGear; + if (automobile->m_nWheelsOnGround) { + if (automobile->bIsHandbrakeOn) { + if (params->m_fVelocityChange == 0.0f) + traction = 0.9f; + } else if (params->m_pVehicle->GetStatus() == STATUS_SIMPLE) { + traction = 0.0f; + } else { + switch (transmission->nDriveType) { + case '4': + for (int32 i = 0; i < ARRAY_SIZE(automobile->m_aWheelState); i++) { + if (automobile->m_aWheelState[i] == WHEEL_STATE_SPINNING) + traction += 0.05f; + } + break; + case 'F': + if (automobile->m_aWheelState[0] == WHEEL_STATE_SPINNING) + traction += 0.1f; + if (automobile->m_aWheelState[2] == WHEEL_STATE_SPINNING) + traction += 0.1f; + break; + case 'R': + if (automobile->m_aWheelState[1] == WHEEL_STATE_SPINNING) + traction += 0.1f; + if (automobile->m_aWheelState[3] == WHEEL_STATE_SPINNING) + traction += 0.1f; + break; + } + } + if (transmission->fMaxVelocity <= 0.f) { + relativeChange = 0.f; + } else if (currentGear) { + relativeGearChange = + Min(1.0f, (params->m_fVelocityChange - transmission->Gears[currentGear].fShiftDownVelocity) / transmission->fMaxVelocity * 2.5f); + if (traction == 0.0f && automobile->GetStatus() != STATUS_SIMPLE && + params->m_fVelocityChange >= transmission->Gears[1].fShiftUpVelocity) { + traction = 0.7f; + } + relativeChange = traction * automobile->m_fGasPedalAudio * 0.95f + (1.0f - traction) * relativeGearChange; + } else + relativeChange = + Min(1.0f, 1.0f - Abs((params->m_fVelocityChange - transmission->Gears[0].fShiftDownVelocity) / transmission->fMaxReverseVelocity)); + } else { + if (automobile->m_nDriveWheelsOnGround) + automobile->m_fGasPedalAudio *= 0.4f; + relativeChange = automobile->m_fGasPedalAudio; + } + modificator = relativeChange; + if (currentGear || !automobile->m_nWheelsOnGround) + freq = 1200 * currentGear + 18000.f * modificator + 14000; + else + freq = 13000.f * modificator + 14000; + if (modificator >= 0.75f) { + emittingVol = 120; + volume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + } else { + emittingVol = modificator * 4.0f / 3.0f * 40.f + 80.f; + volume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + } + } else { + modificator = 0.f; + emittingVol = 80; + volume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + } + m_sQueueSample.m_nVolume = volume; + if (m_sQueueSample.m_nVolume) { + if (automobile->GetStatus() == STATUS_SIMPLE) { + if (modificator < 0.02f) { + m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_bEngineSoundType - 1 + SFX_CAR_IDLE_1; + freq = modificator * 10000 + 22050; + m_sQueueSample.m_nCounter = 52; + } else { + m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_nAccelerationSampleIndex; + m_sQueueSample.m_nCounter = 2; + } + } else { + if (automobile->m_fGasPedal < 0.05f) { + m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_bEngineSoundType - 1 + SFX_CAR_IDLE_1; + freq = modificator * 10000 + 22050; + m_sQueueSample.m_nCounter = 52; + } else { + m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_nAccelerationSampleIndex; + m_sQueueSample.m_nCounter = 2; + } + } + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_nFrequency = freq + 100 * m_sQueueSample.m_nEntityIndex % 1000; + if (m_sQueueSample.m_nSampleIndex == SFX_CAR_IDLE_6 || m_sQueueSample.m_nSampleIndex == SFX_CAR_REV_6) + m_sQueueSample.m_nFrequency /= 2; + 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 = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 8; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } + } +} + +void +cAudioManager::UpdateGasPedalAudio(CAutomobile *automobile) +{ + float newGasPedalAudio; + + float gasPedal = Abs(automobile->m_fGasPedal); + float gasPedalAudio = automobile->m_fGasPedalAudio; + + if (gasPedalAudio < gasPedal) { + newGasPedalAudio = gasPedalAudio + 0.09f; + if (gasPedal <= newGasPedalAudio) + newGasPedalAudio = gasPedal; + } else { + newGasPedalAudio = gasPedalAudio - 0.07f; + if (gasPedal >= newGasPedalAudio) + newGasPedalAudio = gasPedal; + } + automobile->m_fGasPedalAudio = newGasPedalAudio; +} + +void +cAudioManager::PlayerJustGotInCar() const +{ + if (m_bIsInitialised) { + bPlayerJustEnteredCar = true; + } +} + +void +cAudioManager::PlayerJustLeftCar(void) const +{ + // UNUSED: This is a perfectly empty function. +} + +void +cAudioManager::AddPlayerCarSample(uint8 emittingVolume, int32 freq, uint32 sample, uint8 unk1, uint8 counter, bool notLooping) +{ + m_sQueueSample.m_nVolume = ComputeVolume(emittingVolume, 50.f, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = counter; + m_sQueueSample.m_nSampleIndex = sample; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 0; + m_sQueueSample.m_nFrequency = freq; + if (notLooping) { + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nReleasingVolumeDivider = 8; + } else { + m_sQueueSample.m_nLoopCount = 1; + } + 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 = 6.0f; + m_sQueueSample.m_fSoundIntensity = 50.0f; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } +} + +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::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *automobile) +{ + static int32 GearFreqAdj[] = {6000, 6000, 3400, 1200, 0, -1000}; + + cTransmission *transmission; + float velocityChange; + float relativeVelocityChange; + float accelerationMultipler; + uint8 wheelInUseCounter; + float time; + int baseFreq; + uint8 vol; + int gearNr; + int32 freq; + + int freqModifier; + int soundOffset; + uint8 engineSoundType; + int32 accelerateState; + bool channelUsed; + char lostTraction; + bool processedAccelSampleStopped; + uint8 currentGear; + float gasPedalAudio; + CVector pos; + + static int16 LastAccel = 0; + static int16 LastBrake = 0; + static uint8 CurrentPretendGear = 1; + static bool bLostTractionLastFrame = false; + static bool bHandbrakeOnLastFrame = 0; + static int32 nCruising = 0; + static bool bAccelSampleStopped = true; + + lostTraction = 0; + processedAccelSampleStopped = 0; + if (bPlayerJustEnteredCar) { + bAccelSampleStopped = true; + bPlayerJustEnteredCar = false; + nCruising = 0; + LastAccel = 0; + bLostTractionLastFrame = false; + LastBrake = 0; + bHandbrakeOnLastFrame = 0; + CurrentPretendGear = 1; + } + if (CReplay::IsPlayingBack()) { + accelerateState = 255.f * Max(0.0f, Min(1.0f, automobile->m_fGasPedal)); + } else { + accelerateState = Pads->GetAccelerate(); + } + channelUsed = SampleManager.GetChannelUsedFlag(m_nActiveSamples); + transmission = params->m_pTransmission; + velocityChange = params->m_fVelocityChange; + relativeVelocityChange = 2.0f * velocityChange / transmission->fMaxVelocity; + + accelerationMultipler = Min(Min(1.f, relativeVelocityChange), 0.f); + gasPedalAudio = accelerationMultipler; + currentGear = params->m_pVehicle->m_nCurrentGear; + + if (transmission->nDriveType == '4') { + wheelInUseCounter = 0; + for (uint8 i = 0; i < ARRAY_SIZE(automobile->m_aWheelState); i++) { + if (automobile->m_aWheelState[i]) + ++wheelInUseCounter; + } + if (wheelInUseCounter > 2) + lostTraction = 1; + } else if (transmission->nDriveType == 'F') { + if ((automobile->m_aWheelState[0] || automobile->m_aWheelState[2]) && (automobile->m_aWheelState[1] || automobile->m_aWheelState[3])) { + lostTraction = 1; + } + } else if (transmission->nDriveType == 'R' && (automobile->m_aWheelState[1] || automobile->m_aWheelState[3])) { + lostTraction = 1; + } + if (0.0f != velocityChange) { + time = params->m_pVehicle->m_vecMoveSpeed.z / velocityChange; + if (time <= 0.0f) { + freqModifier = Max(-0.2f, time) * -15000.f; + } else { + freqModifier = -(Min(0.2f, time) * 15000.f); + } + if (params->m_fVelocityChange < -0.001f) + freqModifier = -freqModifier; + } else { + freqModifier = 0; + } + engineSoundType = aVehicleSettings[params->m_nIndex].m_bEngineSoundType; + soundOffset = 3 * (engineSoundType - 1); + if (accelerateState <= 0) { + if (params->m_fVelocityChange < -0.001f) { + if (channelUsed) { + SampleManager.StopChannel(m_nActiveSamples); + bAccelSampleStopped = true; + } + if (!automobile->m_nWheelsOnGround || automobile->bIsHandbrakeOn || lostTraction) { + gasPedalAudio = automobile->m_fGasPedalAudio; + } else { + gasPedalAudio = Min(1.0f, params->m_fVelocityChange / params->m_pTransmission->fMaxReverseVelocity); + } + gasPedalAudio = Max(0.0f, gasPedalAudio); + automobile->m_fGasPedalAudio = gasPedalAudio; + } else if (LastAccel > 0) { + if (channelUsed) { + SampleManager.StopChannel(m_nActiveSamples); + bAccelSampleStopped = true; + } + nCruising = 0; + if (!automobile->m_nWheelsOnGround || automobile->bIsHandbrakeOn || lostTraction || + params->m_fVelocityChange >= 0.01f && automobile->m_fGasPedalAudio > 0.2f) { + automobile->m_fGasPedalAudio = automobile->m_fGasPedalAudio * 0.6f; + gasPedalAudio = automobile->m_fGasPedalAudio; + } + if (gasPedalAudio > 0.05f) { + freq = (5000.f * (gasPedalAudio - 0.05f) * 20.f / 19) + 19000; + if (engineSoundType == 6) + freq /= 2; + AddPlayerCarSample((25.f * (gasPedalAudio - 0.05f) * 20.f / 19) + 40, freq, (soundOffset + SFX_CAR_FINGER_OFF_ACCEL_1), engineSoundType, 63, 0); + } + } + freq = (10000.f * gasPedalAudio) + 22050; + if (engineSoundType == 6) + freq /= 2; + AddPlayerCarSample(110 - (40.f * gasPedalAudio), freq, (engineSoundType + SFX_CAR_REV_10), 0, 52, 1); + + CurrentPretendGear = Max(1, currentGear); + LastAccel = accelerateState; + + bHandbrakeOnLastFrame = automobile->bIsHandbrakeOn; + bLostTractionLastFrame = lostTraction; + return; + } + if (!nCruising) { + if (accelerateState < 150 || !automobile->m_nWheelsOnGround || automobile->bIsHandbrakeOn || lostTraction || + currentGear < 2 && velocityChange - automobile->m_fVelocityChangeForAudio < 0.01f) { // here could be used abs + if (!automobile->m_nWheelsOnGround || automobile->bIsHandbrakeOn || lostTraction) { + if (!automobile->m_nWheelsOnGround && automobile->m_nDriveWheelsOnGround || + (automobile->bIsHandbrakeOn && !bHandbrakeOnLastFrame || lostTraction && !bLostTractionLastFrame) && automobile->m_nWheelsOnGround) { + automobile->m_fGasPedalAudio = automobile->m_fGasPedalAudio * 0.6f; + } + freqModifier = 0; + baseFreq = (15000.f * automobile->m_fGasPedalAudio) + 14000; + vol = (25.0f * automobile->m_fGasPedalAudio) + 60; + } else { + baseFreq = (8000.f * accelerationMultipler) + 16000; + vol = (25.0f * accelerationMultipler) + 60; + automobile->m_fGasPedalAudio = accelerationMultipler; + } + freq = freqModifier + baseFreq; + if (engineSoundType == 6) + freq /= 2; + if (channelUsed) { + SampleManager.StopChannel(m_nActiveSamples); + bAccelSampleStopped = true; + } + AddPlayerCarSample(vol, freq, (engineSoundType + SFX_PHONE_RING), 0, 2, 1); + LastAccel = accelerateState; + + bHandbrakeOnLastFrame = automobile->bIsHandbrakeOn; + bLostTractionLastFrame = lostTraction; + return; + } + TranslateEntity(&m_sQueueSample.m_vecPos, &pos); + if (bAccelSampleStopped) { + if (CurrentPretendGear != 1 || currentGear != 2) { + gearNr = currentGear - 1; + if (gearNr < 1) + gearNr = 1; + CurrentPretendGear = gearNr; + } + processedAccelSampleStopped = 1; + bAccelSampleStopped = false; + } + if (channelUsed) { + SampleManager.SetChannelEmittingVolume(m_nActiveSamples, 85); + SampleManager.SetChannel3DPosition(m_nActiveSamples, pos.x, pos.y, pos.z); + SampleManager.SetChannel3DDistances(m_nActiveSamples, 50.f, 12.5f); + if (engineSoundType == 6) + freq = (GearFreqAdj[CurrentPretendGear] + freqModifier + 22050) / 2; + else + freq = GearFreqAdj[CurrentPretendGear] + freqModifier + 22050; + SampleManager.SetChannelFrequency(m_nActiveSamples, freq); + if (!channelUsed) { + SampleManager.SetChannelReverbFlag(m_nActiveSamples, m_bDynamicAcousticModelingStatus != 0); + SampleManager.StartChannel(m_nActiveSamples); + } + LastAccel = accelerateState; + + bHandbrakeOnLastFrame = automobile->bIsHandbrakeOn; + bLostTractionLastFrame = lostTraction; + return; + } + if (processedAccelSampleStopped) { + if (!SampleManager.InitialiseChannel(m_nActiveSamples, soundOffset + SFX_CAR_ACCEL_1, 0)) + return; + SampleManager.SetChannelLoopCount(m_nActiveSamples, 1); + SampleManager.SetChannelLoopPoints(m_nActiveSamples, 0, -1); + SampleManager.SetChannelEmittingVolume(m_nActiveSamples, 85); + SampleManager.SetChannel3DPosition(m_nActiveSamples, pos.x, pos.y, pos.z); + SampleManager.SetChannel3DDistances(m_nActiveSamples, 50.f, 12.5f); + freq = GearFreqAdj[CurrentPretendGear] + freqModifier + 22050; + if (engineSoundType == 6) + freq /= 2; + SampleManager.SetChannelFrequency(m_nActiveSamples, freq); + if (!channelUsed) { + SampleManager.SetChannelReverbFlag(m_nActiveSamples, m_bDynamicAcousticModelingStatus != 0); + SampleManager.StartChannel(m_nActiveSamples); + } + LastAccel = accelerateState; + + bHandbrakeOnLastFrame = automobile->bIsHandbrakeOn; + bLostTractionLastFrame = lostTraction; + return; + } + if (CurrentPretendGear < params->m_pTransmission->nNumberOfGears - 1) { + ++CurrentPretendGear; + if (!SampleManager.InitialiseChannel(m_nActiveSamples, soundOffset + SFX_CAR_ACCEL_1, 0)) + return; + SampleManager.SetChannelLoopCount(m_nActiveSamples, 1); + SampleManager.SetChannelLoopPoints(m_nActiveSamples, 0, -1); + SampleManager.SetChannelEmittingVolume(m_nActiveSamples, 85); + SampleManager.SetChannel3DPosition(m_nActiveSamples, pos.x, pos.y, pos.z); + SampleManager.SetChannel3DDistances(m_nActiveSamples, 50.f, 12.5f); + freq = GearFreqAdj[CurrentPretendGear] + freqModifier + 22050; + if (engineSoundType == 6) + freq /= 2; + SampleManager.SetChannelFrequency(m_nActiveSamples, freq); + if (!channelUsed) { + SampleManager.SetChannelReverbFlag(m_nActiveSamples, m_bDynamicAcousticModelingStatus != 0); + SampleManager.StartChannel(m_nActiveSamples); + } + LastAccel = accelerateState; + + bHandbrakeOnLastFrame = automobile->bIsHandbrakeOn; + bLostTractionLastFrame = lostTraction; + return; + } + nCruising = 1; + } + bAccelSampleStopped = true; + if (accelerateState < 150 || !automobile->m_nWheelsOnGround || automobile->bIsHandbrakeOn || lostTraction || + currentGear < params->m_pTransmission->nNumberOfGears - 1) { + nCruising = 0; + } else { + if (accelerateState >= 220 && 0.001f + params->m_fVelocityChange < automobile->m_fVelocityChangeForAudio) { + if (nCruising < 800) + ++nCruising; + } else if (nCruising > 3) { + --nCruising; + } + freq = 27 * nCruising + freqModifier + 22050; + if (engineSoundType == 6) + freq /= 2; + AddPlayerCarSample(85, freq, (soundOffset + SFX_CAR_AFTER_ACCEL_1), engineSoundType, 64, 1); + } + LastAccel = accelerateState; + + bHandbrakeOnLastFrame = automobile->bIsHandbrakeOn; + bLostTractionLastFrame = lostTraction; +} + +void +cAudioManager::ProcessVehicleSkidding(cVehicleParams *params) +{ + const float SOUND_INTENSITY = 40.0f; + + CAutomobile *automobile; + cTransmission *transmission; + int32 emittingVol; + float newSkidVal = 0.0f; + float skidVal = 0.0f; + + if (params->m_fDistance >= SQR(SOUND_INTENSITY)) + return; + automobile = (CAutomobile *)params->m_pVehicle; + if (!automobile->m_nWheelsOnGround) + return; + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + for (int32 i = 0; i < ARRAY_SIZE(automobile->m_aWheelState); i++) { + if (automobile->m_aWheelState[i] == WHEEL_STATE_NORMAL || automobile->Damage.GetWheelStatus(i) == WHEEL_STATUS_MISSING) + continue; + transmission = params->m_pTransmission; + switch (transmission->nDriveType) { + case '4': + newSkidVal = GetVehicleDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange); + break; + case 'F': + if (i == CARWHEEL_FRONT_LEFT || i == CARWHEEL_FRONT_RIGHT) + newSkidVal = GetVehicleDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange); + else + newSkidVal = GetVehicleNonDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange); + break; + case 'R': + if (i == CARWHEEL_REAR_LEFT || i == CARWHEEL_REAR_RIGHT) + newSkidVal = GetVehicleDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange); + else + newSkidVal = GetVehicleNonDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange); + break; + default: + break; + } + skidVal = Max(skidVal, newSkidVal); + } + + if (skidVal > 0.0f) { + emittingVol = 50.f * skidVal; + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nCounter = 3; + switch (params->m_pVehicle->m_nSurfaceTouched) { + case SURFACE_GRASS: + case SURFACE_HEDGE: + m_sQueueSample.m_nSampleIndex = SFX_RAIN; + emittingVol /= 4; + m_sQueueSample.m_nFrequency = 13000.f * skidVal + 35000.f; + m_sQueueSample.m_nVolume /= 4; + break; + case SURFACE_DIRT: + case SURFACE_DIRTTRACK: + case SURFACE_SAND: + case SURFACE_PUDDLE: + m_sQueueSample.m_nSampleIndex = SFX_GRAVEL_SKID; + m_sQueueSample.m_nFrequency = 6000.f * skidVal + 10000.f; + break; + + default: + m_sQueueSample.m_nSampleIndex = SFX_SKID; + m_sQueueSample.m_nFrequency = 5000.f * skidVal + 11000.f; + break; + } + + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 8; + 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 = 3.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } +} + +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)); +} + +void +cAudioManager::ProcessVehicleHorn(cVehicleParams *params) +{ + const float SOUND_INTENSITY = 40.0f; + + CAutomobile *automobile; + + if (params->m_fDistance < SQR(SOUND_INTENSITY)) { + automobile = (CAutomobile *)params->m_pVehicle; + if ((!automobile->m_bSirenOrAlarm || !UsesSirenSwitching(params->m_nIndex)) && automobile->GetModelIndex() != MI_MRWHOOP) { + if (automobile->m_nCarHornTimer) { + if (params->m_pVehicle->GetStatus() != STATUS_PLAYER) { + automobile->m_nCarHornTimer = Min(44, automobile->m_nCarHornTimer); + if (automobile->m_nCarHornTimer == 44) + automobile->m_nCarHornPattern = (m_FrameCounter + m_sQueueSample.m_nEntityIndex) & 7; + if (!hornPatternsArray[automobile->m_nCarHornPattern][44 - automobile->m_nCarHornTimer]) + return; + } + + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + m_sQueueSample.m_nVolume = ComputeVolume(80, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 4; + m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_nHornSample; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 2; + m_sQueueSample.m_nFrequency = aVehicleSettings[params->m_nIndex].m_nHornFrequency; + 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 = 5.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } + } + } +} + +bool +cAudioManager::UsesSiren(int32 model) const +{ + switch (model) { + case FIRETRUK: + case AMBULAN: + case FBICAR: + case POLICE: + case ENFORCER: + case PREDATOR: + return true; + default: + return false; + } +} + +bool +cAudioManager::UsesSirenSwitching(int32 model) const +{ + switch (model) { + case AMBULAN: + case POLICE: + case ENFORCER: + case PREDATOR: + return true; + default: + return false; + } +} + +void +cAudioManager::ProcessVehicleSirenOrAlarm(cVehicleParams *params) +{ + const float SOUND_INTENSITY = 110.0f; + + if (params->m_fDistance < SQR(SOUND_INTENSITY)) { + CVehicle *veh = params->m_pVehicle; + if (veh->m_bSirenOrAlarm == 0 && veh->m_nAlarmState <= 0) + return; + +#ifdef FIX_BUGS + if (params->m_pVehicle->GetStatus() == STATUS_WRECKED) + return; +#endif + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + m_sQueueSample.m_nVolume = ComputeVolume(80, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 5; + if (UsesSiren(params->m_nIndex)) { + if (params->m_pVehicle->GetStatus() == STATUS_ABANDONED) + return; + if (veh->m_nCarHornTimer && params->m_nIndex != FIRETRUK) { + m_sQueueSample.m_nSampleIndex = SFX_SIREN_FAST; + if (params->m_nIndex == FBICAR) + m_sQueueSample.m_nFrequency = 16113; + else + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SIREN_FAST); + m_sQueueSample.m_nCounter = 60; + } else { + m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_nSirenOrAlarmSample; + m_sQueueSample.m_nFrequency = aVehicleSettings[params->m_nIndex].m_nSirenOrAlarmFrequency; + } + } else { + m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_nSirenOrAlarmSample; + m_sQueueSample.m_nFrequency = aVehicleSettings[params->m_nIndex].m_nSirenOrAlarmFrequency; + } + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 1; + 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 = 7.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 5; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + return; + } + } +} + +bool +cAudioManager::UsesReverseWarning(int32 model) const +{ + return model == LINERUN || model == FIRETRUK || model == TRASH || model == BUS || model == COACH; +} + +bool +cAudioManager::ProcessVehicleReverseWarning(cVehicleParams *params) +{ + const float SOUND_INTENSITY = 50.0f; + + CVehicle *veh = params->m_pVehicle; + + if (params->m_fDistance >= SQR(SOUND_INTENSITY)) + return false; + + if (veh->bEngineOn && veh->m_fGasPedal < 0.0f) { + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + m_sQueueSample.m_nVolume = ComputeVolume(60, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 12; + m_sQueueSample.m_nSampleIndex = SFX_REVERSE_WARNING; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 2; + m_sQueueSample.m_nFrequency = (100 * m_sQueueSample.m_nEntityIndex & 1023) + SampleManager.GetSampleBaseFrequency(SFX_REVERSE_WARNING); + 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 = 3.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } + return true; +} + +bool +cAudioManager::ProcessVehicleDoors(cVehicleParams *params) +{ + const float SOUND_INTENSITY = 40.0f; + + CAutomobile *automobile; + int8 doorState; + int32 emittingVol; + float velocity; + + if (params->m_fDistance >= SQR(SOUND_INTENSITY)) + return false; + + automobile = (CAutomobile *)params->m_pVehicle; + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + for (int32 i = 0; i < ARRAY_SIZE(automobile->Doors); i++) { + if (automobile->Damage.GetDoorStatus(i) == DOOR_STATUS_SWINGING) { + doorState = automobile->Doors[i].m_nDoorState; + if (doorState == DOOR_STATUS_SMASHED || doorState == DOOR_STATUS_SWINGING) { + velocity = Min(0.3f, Abs(automobile->Doors[i].m_fAngVel)); + if (velocity > 0.0035f) { + emittingVol = (100.f * velocity * 10.f / 3.f); + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = i + 6; + m_sQueueSample.m_nSampleIndex = m_anRandomTable[1] % 6 + SFX_COL_CAR_PANEL_1; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex) + RandomDisplacement(1000); + 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 = emittingVol; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_fSpeedMultiplier = 1.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = true; + AddSampleToRequestedQueue(); + } + } + } + } + } + return true; +} + +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; +} + +bool +cAudioManager::HasAirBrakes(int32 model) const +{ + return model == LINERUN || model == FIRETRUK || model == TRASH || model == BUS || model == COACH; +} + +bool +cAudioManager::ProcessEngineDamage(cVehicleParams *params) +{ + const int engineDamageIntensity = 40; + + 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; +} + +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::ProcessVehicleOneShots(cVehicleParams *params) +{ + int16 event; + uint8 emittingVol; + float relVol; + float vol; + bool noReflections; + float maxDist; + cPedParams pedParams; + + static uint8 WaveIndex = 41; + static uint8 GunIndex = 53; + static uint8 iWheelIndex = 82; + static uint8 CrunchOffset = 0; + + for (int i = 0; i < m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_AudioEvents; i++) { + noReflections = 0; + m_sQueueSample.m_bRequireReflection = false; + event = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i]; + switch (event) { + case SOUND_CAR_DOOR_CLOSE_BONNET: + case SOUND_CAR_DOOR_CLOSE_BUMPER: + case SOUND_CAR_DOOR_CLOSE_FRONT_LEFT: + case SOUND_CAR_DOOR_CLOSE_FRONT_RIGHT: + case SOUND_CAR_DOOR_CLOSE_BACK_LEFT: + case SOUND_CAR_DOOR_CLOSE_BACK_RIGHT: { + const float SOUND_INTENSITY = 50.0f; + maxDist = SQR(SOUND_INTENSITY); + emittingVol = m_anRandomTable[2] % 5 + 122; + switch (aVehicleSettings[params->m_nIndex].m_bDoorType) { + case 0: + m_sQueueSample.m_nSampleIndex = SFX_OLD_CAR_DOOR_CLOSE; + break; + case 2: + m_sQueueSample.m_nSampleIndex = SFX_TRUCK_DOOR_CLOSE; + break; + case 3: + m_sQueueSample.m_nSampleIndex = SFX_AIR_BRAKES; + break; + default: + m_sQueueSample.m_nSampleIndex = SFX_NEW_CAR_DOOR_CLOSE; + break; + } + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i] + 22; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bRequireReflection = true; + break; + } + case SOUND_CAR_DOOR_OPEN_BONNET: + case SOUND_CAR_DOOR_OPEN_BUMPER: + case SOUND_CAR_DOOR_OPEN_FRONT_LEFT: + case SOUND_CAR_DOOR_OPEN_FRONT_RIGHT: + case SOUND_CAR_DOOR_OPEN_BACK_LEFT: + case SOUND_CAR_DOOR_OPEN_BACK_RIGHT: { + const float SOUND_INTENSITY = 50.0f; + maxDist = SQR(SOUND_INTENSITY); + emittingVol = m_anRandomTable[1] % 10 + 117; + switch (aVehicleSettings[params->m_nIndex].m_bDoorType) { + case 0: + m_sQueueSample.m_nSampleIndex = SFX_OLD_CAR_DOOR_OPEN; + break; + case 2: + m_sQueueSample.m_nSampleIndex = SFX_TRUCK_DOOR_OPEN; + break; + case 3: + m_sQueueSample.m_nSampleIndex = SFX_AIR_BRAKES; + break; + default: + m_sQueueSample.m_nSampleIndex = SFX_NEW_CAR_DOOR_OPEN; + break; + } + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i] + 10; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bRequireReflection = true; + break; + } + case SOUND_CAR_WINDSHIELD_CRACK: { + const float SOUND_INTENSITY = 30.0f; + maxDist = SQR(SOUND_INTENSITY); + m_sQueueSample.m_nSampleIndex = SFX_GLASS_CRACK; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 68; + emittingVol = m_anRandomTable[1] % 30 + 60; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_GLASS_CRACK); + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + } break; + case SOUND_CAR_JUMP: { + const float SOUND_INTENSITY = 35.0f; + emittingVol = Max(80.f, 2 * (100.f * m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i])); + maxDist = SQR(SOUND_INTENSITY); + m_sQueueSample.m_nSampleIndex = SFX_TYRE_BUMP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iWheelIndex++; + if (iWheelIndex > 85) + iWheelIndex = 82; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_TYRE_BUMP); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); + if (params->m_nIndex == 41) { + m_sQueueSample.m_nFrequency *= 2; + emittingVol /= 2; + } + m_sQueueSample.m_nReleasingVolumeModificator = 6; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + break; + } + case SOUND_CAR_ENGINE_START: { + const float SOUND_INTENSITY = 40.0f; + emittingVol = 60; + maxDist = SQR(SOUND_INTENSITY); + m_sQueueSample.m_nSampleIndex = SFX_CAR_STARTER; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 33; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CAR_STARTER); + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bRequireReflection = true; + break; + } + case SOUND_CAR_LIGHT_BREAK: { + const float SOUND_INTENSITY = 30.0f; + m_sQueueSample.m_nSampleIndex = SFX_GLASS_SHARD_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 37; + m_sQueueSample.m_nFrequency = 9 * SampleManager.GetSampleBaseFrequency(SFX_GLASS_SHARD_1) / 10; + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 8); + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + maxDist = SQR(SOUND_INTENSITY); + emittingVol = m_anRandomTable[4] % 10 + 30; + break; + } + case SOUND_CAR_HYDRAULIC_1: + case SOUND_CAR_HYDRAULIC_2: { + const float SOUND_INTENSITY = 35.0f; + if (event == MOONBEAM) // todo check + m_sQueueSample.m_nFrequency = 15600; + else + m_sQueueSample.m_nFrequency = 13118; + m_sQueueSample.m_nSampleIndex = SFX_SUSPENSION_FAST_MOVE; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 51; + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 8); + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + maxDist = SQR(SOUND_INTENSITY); + emittingVol = m_anRandomTable[0] % 15 + 55; + break; + } + case SOUND_CAR_HYDRAULIC_3: { + const float SOUND_INTENSITY = 35.0f; + m_sQueueSample.m_nSampleIndex = SFX_SUSPENSION_SLOW_MOVE_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 86; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SUSPENSION_SLOW_MOVE_LOOP); + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_nReleasingVolumeDivider = 7; + noReflections = true; + maxDist = SQR(SOUND_INTENSITY); + emittingVol = m_anRandomTable[0] % 15 + 55; + break; + } + case SOUND_CAR_JERK: { + const float SOUND_INTENSITY = 35.0f; + m_sQueueSample.m_nSampleIndex = SFX_SHAG_SUSPENSION; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 87; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SHAG_SUSPENSION); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 8); + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + maxDist = SQR(SOUND_INTENSITY); + emittingVol = m_anRandomTable[1] % 15 + 55; + break; + } + case SOUND_CAR_SPLASH: { + const float SOUND_INTENSITY = 40.0f; + vol = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i]; + if (vol <= 300.f) + continue; + if (vol > 1200.f) + m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i] = 1200.0f; + relVol = (m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i] - 300.f) / 900.f; + m_sQueueSample.m_nSampleIndex = (m_anRandomTable[0] & 1) + SFX_BOAT_SPLASH_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = WaveIndex++; + if (WaveIndex > 46) + WaveIndex = 41; + m_sQueueSample.m_nFrequency = (7000.f * relVol) + 6000; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + emittingVol = (55.f * relVol); + maxDist = SQR(SOUND_INTENSITY); + 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; + m_sQueueSample.m_nCounter = 47; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_POLICE_BOAT_THUMB_OFF) + RandomDisplacement(600); + m_sQueueSample.m_nReleasingVolumeModificator = 2; + 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); + break; + } + case SOUND_18: + case SOUND_19: { + const float SOUND_INTENSITY = 35.0f; + m_sQueueSample.m_nSampleIndex = SFX_AIR_BRAKES; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 59; + m_sQueueSample.m_nFrequency = RandomDisplacement(1000) + 11025; + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_fSpeedMultiplier = 5.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + maxDist = SQR(SOUND_INTENSITY); + emittingVol = m_anRandomTable[1] % 20 + 70; + break; + } + case SOUND_CAR_TANK_TURRET_ROTATE: { + const float SOUND_INTENSITY = 40.0f; + vol = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i]; + if (vol > 96.0f / 2500.0f) + vol = 96.0f / 2500.0f; + m_sQueueSample.m_nSampleIndex = SFX_TANK_TURRET; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 79; + m_sQueueSample.m_nFrequency = (3000.f * vol * 2500.0f / 96.0f) + 9000; + m_sQueueSample.m_nReleasingVolumeModificator = 2; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + emittingVol = (37.f * vol * 2500.0f / 96.0f) + 90; + maxDist = SQR(SOUND_INTENSITY); + noReflections = true; + break; + } + case SOUND_CAR_BOMB_TICK: { + const float SOUND_INTENSITY = 30.0f; + m_sQueueSample.m_nSampleIndex = SFX_BOMB_BEEP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 80; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_BOMB_BEEP); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + maxDist = SQR(SOUND_INTENSITY); + m_sQueueSample.m_bRequireReflection = true; + emittingVol = 60; + break; + } + case SOUND_PLANE_ON_GROUND: { + const float SOUND_INTENSITY = 180.0f; + m_sQueueSample.m_nSampleIndex = SFX_JUMBO_LAND_WHEELS; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 81; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_JUMBO_LAND_WHEELS); + m_sQueueSample.m_nReleasingVolumeModificator = 2; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + maxDist = SQR(SOUND_INTENSITY); + emittingVol = m_anRandomTable[4] % 25 + 75; + break; + } + case SOUND_WEAPON_SHOT_FIRED: { + const float SOUND_INTENSITY = 120.0f; + emittingVol = m_anRandomTable[2]; + maxDist = SQR(SOUND_INTENSITY); + m_sQueueSample.m_nSampleIndex = SFX_UZI_LEFT; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = GunIndex++; + emittingVol = emittingVol % 15 + 65; + if (GunIndex > 58) + GunIndex = 53; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_UZI_LEFT); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + break; + } + case SOUND_WEAPON_HIT_VEHICLE: { + const float SOUND_INTENSITY = 40.0f; + m_sQueueSample.m_nSampleIndex = m_anRandomTable[m_sQueueSample.m_nEntityIndex % ARRAY_SIZE(m_anRandomTable)] % 6 + SFX_BULLET_CAR_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 34; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); + m_sQueueSample.m_nReleasingVolumeModificator = 7; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + maxDist = SQR(SOUND_INTENSITY); + emittingVol = m_anRandomTable[3] % 20 + 90; + break; + } + case SOUND_BOMB_TIMED_ACTIVATED: + case SOUND_55: + case SOUND_BOMB_ONIGNITION_ACTIVATED: + case SOUND_BOMB_TICK: { + const float SOUND_INTENSITY = 50.0f; + m_sQueueSample.m_nSampleIndex = SFX_ARM_BOMB; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 36; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_ARM_BOMB); + m_sQueueSample.m_nReleasingVolumeModificator = 0; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bRequireReflection = true; + emittingVol = 50; + maxDist = SQR(SOUND_INTENSITY); + break; + } + case SOUND_PED_HELI_PLAYER_FOUND: + pedParams.m_pPed = nil; + pedParams.m_bDistanceCalculated = false; + pedParams.m_fDistance = 0.0f; + pedParams.m_bDistanceCalculated = params->m_bDistanceCalculated; + pedParams.m_fDistance = params->m_fDistance; + SetupPedComments(&pedParams, SOUND_PED_HELI_PLAYER_FOUND); + continue; + case SOUND_PED_BODYCAST_HIT: + pedParams.m_pPed = nil; + pedParams.m_bDistanceCalculated = false; + pedParams.m_fDistance = 0.0f; + pedParams.m_bDistanceCalculated = params->m_bDistanceCalculated; + pedParams.m_fDistance = params->m_fDistance; + SetupPedComments(&pedParams, SOUND_PED_BODYCAST_HIT); + continue; + case SOUND_WATER_FALL: { + const float SOUND_INTENSITY = 40.0f; + m_sQueueSample.m_nSampleIndex = SFX_SPLASH_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 15; + m_sQueueSample.m_nFrequency = RandomDisplacement(1000) + 16000; + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + maxDist = SQR(SOUND_INTENSITY); + m_sQueueSample.m_bRequireReflection = true; + emittingVol = m_anRandomTable[4] % 20 + 90; + break; + } + case SOUND_SPLATTER: { + const float SOUND_INTENSITY = 40.0f; + m_sQueueSample.m_nSampleIndex = CrunchOffset + SFX_PED_CRUNCH_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 48; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_PED_CRUNCH_1) + RandomDisplacement(600); + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 40.0f; + ++CrunchOffset; + maxDist = SQR(SOUND_INTENSITY); + emittingVol = m_anRandomTable[4] % 20 + 55; + CrunchOffset %= 2; + m_sQueueSample.m_bRequireReflection = true; + break; + } + case SOUND_CAR_PED_COLLISION: { + const float SOUND_INTENSITY = 40.0f; + vol = Min(20.0f, m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i]); + emittingVol = (vol / 20.0f * 127.f); + if (!emittingVol) + continue; + + m_sQueueSample.m_nSampleIndex = (m_anRandomTable[2] & 3) + SFX_FIGHT_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 50; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex) / 2; + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + maxDist = SQR(SOUND_INTENSITY); + break; + } + default: + continue; + } + if (params->m_fDistance < maxDist) { + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + if (noReflections) { + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_bReleasingSoundFlag = false; + } else { + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + } + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bIs2D = false; + AddSampleToRequestedQueue(); + } + } + } +} + +bool +cAudioManager::ProcessTrainNoise(cVehicleParams *params) +{ + const float SOUND_INTENSITY = 300.0f; + + CTrain *train; + uint8 emittingVol; + float speedMultipler; + + if (params->m_fDistance >= SQR(SOUND_INTENSITY)) + return false; + + if (params->m_fVelocityChange > 0.0f) { + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + train = (CTrain *)params->m_pVehicle; + speedMultipler = Min(1.0f, train->m_fSpeed * 250.f / 51.f); + emittingVol = (75.f * speedMultipler); + if (train->m_fWagonPosition == 0.0f) { + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nCounter = 32; + m_sQueueSample.m_nSampleIndex = SFX_TRAIN_FAR; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 2; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_TRAIN_FAR); + 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 = 3.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } + const float SOUND_INTENSITY = 70.0f; + if (params->m_fDistance < SQR(SOUND_INTENSITY)) { + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nCounter = 33; + m_sQueueSample.m_nSampleIndex = SFX_TRAIN_NEAR; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_TRAIN_NEAR) + 100 * m_sQueueSample.m_nEntityIndex % 987; + 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 = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } + } + return true; +} + +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; +} + +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::ProcessPlane(cVehicleParams *params) +{ + switch (params->m_nIndex) { + case AIRTRAIN: + ProcessJumbo(params); + break; + case DEADDODO: + ProcessCesna(params); + break; + default: + debug("Plane Model Id is %d\n, ", params->m_pVehicle->GetModelIndex()); + break; + } +} + +#pragma region JUMBO +uint8 gJumboVolOffsetPercentage; + +void +DoJumboVolOffset() +{ + if (!(AudioManager.GetFrameCounter() % (AudioManager.GetRandomNumber(0) % 6 + 3))) + gJumboVolOffsetPercentage = AudioManager.GetRandomNumber(1) % 60; +} + +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::ProcessJumboTaxi() +{ + if (SetupJumboFlySound(20)) { + if (SetupJumboTaxiSound(75)) + SetupJumboWhineSound(18, 29500); + } +} + +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::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::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::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); + } +} + +bool +cAudioManager::SetupJumboTaxiSound(uint8 vol) +{ + const float SOUND_INTENSITY = 180.0f; + if (m_sQueueSample.m_fDistance >= SOUND_INTENSITY) + return false; + + uint8 emittingVol = (vol / 2) + ((vol / 2) * m_sQueueSample.m_fDistance / SOUND_INTENSITY); + + if (m_sQueueSample.m_fDistance / SOUND_INTENSITY < 0.7f) + emittingVol -= emittingVol * gJumboVolOffsetPercentage / 100; + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nCounter = 1; + m_sQueueSample.m_nSampleIndex = SFX_JUMBO_TAXI; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_nFrequency = GetJumboTaxiFreq(); + 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 = 4.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 4; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + return true; +} + +bool +cAudioManager::SetupJumboWhineSound(uint8 emittingVol, int32 freq) +{ + const float SOUND_INTENSITY = 170.0f; + + if (m_sQueueSample.m_fDistance >= SOUND_INTENSITY) + return false; + + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nCounter = 2; + m_sQueueSample.m_nSampleIndex = SFX_JUMBO_WHINE; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_nFrequency = freq; + 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 = 4.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 4; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + return true; +} + +bool +cAudioManager::SetupJumboEngineSound(uint8 vol, int32 freq) +{ + const float SOUND_INTENSITY = 180.0f; + if (m_sQueueSample.m_fDistance >= SOUND_INTENSITY) + return false; + + uint8 emittingVol = vol - gJumboVolOffsetPercentage / 100; + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nCounter = 3; + m_sQueueSample.m_nSampleIndex = SFX_JUMBO_ENGINE; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_nFrequency = freq; + 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 = 4.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 4; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + return true; +} + +bool +cAudioManager::SetupJumboFlySound(uint8 emittingVol) +{ + const float SOUND_INTENSITY = 440.0f; + if (m_sQueueSample.m_fDistance >= SOUND_INTENSITY) + return false; + + int32 vol = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + m_sQueueSample.m_nVolume = vol; + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nSampleIndex = SFX_JUMBO_DIST_FLY; + m_sQueueSample.m_nCounter = 0; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_JUMBO_DIST_FLY); + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_fSpeedMultiplier = 4.0f; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_nReleasingVolumeDivider = 5; + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + AddSampleToRequestedQueue(); + } + return true; +} + +bool +cAudioManager::SetupJumboRumbleSound(uint8 emittingVol) +{ + const float SOUND_INTENSITY = 240.0f; + if (m_sQueueSample.m_fDistance >= SOUND_INTENSITY) + return false; + + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); + + if (m_sQueueSample.m_nVolume != 0) { + m_sQueueSample.m_nCounter = 5; + m_sQueueSample.m_nSampleIndex = SFX_JUMBO_RUMBLE; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = true; + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_JUMBO_RUMBLE); + 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 = 4.0f; + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 12; + m_sQueueSample.m_nOffset = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + m_sQueueSample.m_nCounter = 6; + m_sQueueSample.m_nSampleIndex = SFX_JUMBO_RUMBLE; + m_sQueueSample.m_nFrequency += 200; + m_sQueueSample.m_nOffset = maxVolume; + AddSampleToRequestedQueue(); + } + return true; +} + +int32 +cAudioManager::GetJumboTaxiFreq() const +{ + return (60.833f * m_sQueueSample.m_fDistance) + 22050; +} + +#pragma endregion Some jumbo crap + +#pragma endregion All the vehicle audio code + +#pragma region PED AUDIO +void +cAudioManager::ProcessPed(CPhysical *ped) +{ + cPedParams params; + + params.m_pPed = nil; + params.m_bDistanceCalculated = false; + params.m_fDistance = 0.0f; + + m_sQueueSample.m_vecPos = ped->GetPosition(); + + // params.m_bDistanceCalculated = false; + params.m_pPed = (CPed *)ped; + params.m_fDistance = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (ped->GetModelIndex() == MI_FATMALE02) + ProcessPedHeadphones(¶ms); + ProcessPedOneShots(¶ms); +} + +void +cAudioManager::ProcessPedHeadphones(cPedParams *params) +{ + CPed *ped; + CAutomobile *veh; + uint8 emittingVol; + + if (params->m_fDistance < 49.f) { + ped = params->m_pPed; + if (!ped->bIsAimingGun || ped->m_bodyPartBleeding != PED_HEAD) { + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + if (ped->bInVehicle && ped->m_nPedState == PED_DRIVING) { + emittingVol = 10; + veh = (CAutomobile *)ped->m_pMyVehicle; + if (veh && veh->IsCar()) { + for (int32 i = 2; i < ARRAY_SIZE(veh->Doors); i++) { + if (!veh->IsDoorClosed((eDoors)i) || veh->IsDoorMissing((eDoors)i)) { + emittingVol = 42; + break; + } + } + } + } else { + emittingVol = 42; + } + + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, 7.f, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 64; + m_sQueueSample.m_nSampleIndex = SFX_HEADPHONES; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_HEADPHONES); + 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 = 4.0f; + m_sQueueSample.m_fSoundIntensity = 7.0f; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 5; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + return; + } + } +} + +void +cAudioManager::ProcessPedOneShots(cPedParams *params) +{ + uint8 emittingVol; + int32 sampleIndex; + + CPed *ped = params->m_pPed; + + bool stereo; + int16 sound; + bool noReflection; + CWeapon *weapon; + float maxDist = 0.f; // uninitialized variable + + static uint8 iSound = 21; + + weapon = params->m_pPed->GetWeapon(); + for (uint32 i = 0; i < m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_AudioEvents; i++) { + noReflection = false; + stereo = false; + m_sQueueSample.m_bRequireReflection = false; + sound = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i]; + switch (sound) { + case SOUND_STEP_START: + case SOUND_STEP_END: + if (!params->m_pPed->bIsLooking) { + emittingVol = m_anRandomTable[3] % 15 + 45; + if (FindPlayerPed() != m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_pEntity) + emittingVol /= 2; + maxDist = 400.f; + switch (params->m_pPed->m_nSurfaceTouched) { + case SURFACE_GRASS: + sampleIndex = m_anRandomTable[1] % 5 + SFX_FOOTSTEP_GRASS_1; + break; + case SURFACE_DIRT: + case SURFACE_DIRTTRACK: + sampleIndex = m_anRandomTable[4] % 5 + SFX_FOOTSTEP_GRAVEL_1; + break; + case SURFACE_METAL6: + case SURFACE_METAL_DOOR: + case SURFACE_BILLBOARD: + case SURFACE_STEEL: + case SURFACE_METAL_POLE: + case SURFACE_STREET_LIGHT: + case SURFACE_METAL14: + case SURFACE_METAL15: + case SURFACE_METAL_FENCE: + case SURFACE_METAL27: + case SURFACE_METAL28: + sampleIndex = m_anRandomTable[0] % 5 + SFX_FOOTSTEP_METAL_1; + break; + case SURFACE_SAND: + sampleIndex = (m_anRandomTable[4] & 3) + SFX_FOOTSTEP_SAND_1; + break; + case SURFACE_PUDDLE: + sampleIndex = (m_anRandomTable[3] & 3) + SFX_FOOTSTEP_WATER_1; + break; + case SURFACE_WOOD: + case SURFACE_WOOD_BOX: + case SURFACE_WOOD_PLANK: + sampleIndex = m_anRandomTable[2] % 5 + SFX_FOOTSTEP_WOOD_1; + break; + case SURFACE_HEDGE: + sampleIndex = m_anRandomTable[2] % 5 + SFX_COL_VEG_1; + break; + default: + sampleIndex = m_anRandomTable[2] % 5 + SFX_FOOTSTEP_CONCRETE_1; + break; + } + m_sQueueSample.m_nSampleIndex = sampleIndex; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i] - 28; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 17); + switch (params->m_pPed->m_nMoveState) { + case PEDMOVE_WALK: + emittingVol /= 4; + m_sQueueSample.m_nFrequency = 9 * m_sQueueSample.m_nFrequency / 10; + break; + case PEDMOVE_RUN: + emittingVol /= 2; + m_sQueueSample.m_nFrequency = 11 * m_sQueueSample.m_nFrequency / 10; + break; + case PEDMOVE_SPRINT: + m_sQueueSample.m_nFrequency = 12 * m_sQueueSample.m_nFrequency / 10; + break; + default: + break; + } + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 20.0f; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + } + break; + case SOUND_FALL_LAND: + case SOUND_FALL_COLLAPSE: + if (!ped->bIsLooking) { + maxDist = SQR(30); + emittingVol = m_anRandomTable[3] % 20 + 80; + if (ped->m_nSurfaceTouched == SURFACE_PUDDLE) { + m_sQueueSample.m_nSampleIndex = (m_anRandomTable[3] & 3) + SFX_FOOTSTEP_WATER_1; + } else if (sound == SOUND_FALL_LAND) { + m_sQueueSample.m_nSampleIndex = SFX_BODY_LAND; + } else { + m_sQueueSample.m_nSampleIndex = SFX_BODY_LAND_AND_FALL; + } + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 1; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 17); + m_sQueueSample.m_nReleasingVolumeModificator = 2; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + } + break; + case SOUND_FIGHT_PUNCH_33: + m_sQueueSample.m_nSampleIndex = SFX_FIGHT_1; + m_sQueueSample.m_nFrequency = 18000; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound; + stereo = true; + ++iSound; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + maxDist = SQR(30); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[3] % 26 + 100; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + break; + case SOUND_FIGHT_KICK_34: + m_sQueueSample.m_nSampleIndex = SFX_FIGHT_1; + m_sQueueSample.m_nFrequency = 16500; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound; + stereo = true; + ++iSound; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + maxDist = SQR(30); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[3] % 26 + 100; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + break; + case SOUND_FIGHT_HEADBUTT_35: + m_sQueueSample.m_nSampleIndex = SFX_FIGHT_1; + m_sQueueSample.m_nFrequency = 20000; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound; + stereo = true; + ++iSound; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + maxDist = SQR(30); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[3] % 26 + 100; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + break; + case SOUND_FIGHT_PUNCH_36: + m_sQueueSample.m_nSampleIndex = SFX_FIGHT_2; + m_sQueueSample.m_nFrequency = 18000; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound; + stereo = true; + ++iSound; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + maxDist = SQR(30); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[3] % 26 + 100; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + break; + case SOUND_FIGHT_PUNCH_37: + m_sQueueSample.m_nSampleIndex = SFX_FIGHT_2; + m_sQueueSample.m_nFrequency = 16500; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound; + stereo = true; + ++iSound; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + maxDist = SQR(30); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[3] % 26 + 100; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + break; + case SOUND_FIGHT_CLOSE_PUNCH_38: + m_sQueueSample.m_nSampleIndex = SFX_FIGHT_2; + m_sQueueSample.m_nFrequency = 20000; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound; + stereo = true; + ++iSound; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + maxDist = SQR(30); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[3] % 26 + 100; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + break; + case SOUND_FIGHT_PUNCH_39: + m_sQueueSample.m_nSampleIndex = SFX_FIGHT_4; + m_sQueueSample.m_nFrequency = 18000; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound; + stereo = true; + ++iSound; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + maxDist = SQR(30); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[3] % 26 + 100; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + break; + case SOUND_FIGHT_PUNCH_OR_KICK_BELOW_40: + m_sQueueSample.m_nSampleIndex = SFX_FIGHT_4; + m_sQueueSample.m_nFrequency = 16500; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound; + stereo = true; + ++iSound; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + maxDist = SQR(30); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[3] % 26 + 100; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + break; + case SOUND_FIGHT_PUNCH_41: + m_sQueueSample.m_nSampleIndex = SFX_FIGHT_4; + m_sQueueSample.m_nFrequency = 20000; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound; + stereo = true; + ++iSound; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + maxDist = SQR(30); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[3] % 26 + 100; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + break; + case SOUND_FIGHT_PUNCH_FROM_BEHIND_42: + m_sQueueSample.m_nSampleIndex = SFX_FIGHT_5; + m_sQueueSample.m_nFrequency = 18000; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound; + stereo = true; + ++iSound; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + maxDist = SQR(30); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[3] % 26 + 100; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + break; + case SOUND_FIGHT_KNEE_OR_KICK_43: + m_sQueueSample.m_nSampleIndex = SFX_FIGHT_5; + m_sQueueSample.m_nFrequency = 16500; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound; + stereo = true; + ++iSound; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + maxDist = SQR(30); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[3] % 26 + 100; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + break; + case SOUND_FIGHT_KICK_44: + m_sQueueSample.m_nSampleIndex = SFX_FIGHT_5; + m_sQueueSample.m_nFrequency = 20000; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound; + stereo = true; + ++iSound; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + maxDist = SQR(30); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[3] % 26 + 100; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + break; + case SOUND_WEAPON_BAT_ATTACK: + m_sQueueSample.m_nSampleIndex = SFX_BAT_HIT_LEFT; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound++; + stereo = true; + m_sQueueSample.m_nFrequency = RandomDisplacement(2000) + 22000; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + maxDist = SQR(30); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + emittingVol = m_anRandomTable[2] % 20 + 100; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + if (m_bDynamicAcousticModelingStatus) + m_sQueueSample.m_bRequireReflection = true; + else + noReflection = true; + break; + case SOUND_WEAPON_SHOT_FIRED: + weapon = &ped->m_weapons[ped->m_currentWeapon]; + switch (weapon->m_eWeaponType) { + case WEAPONTYPE_COLT45: + m_sQueueSample.m_nSampleIndex = SFX_COLT45_LEFT; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound++; + stereo = true; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_COLT45_LEFT); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 50.0f; + maxDist = SQR(50); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + emittingVol = m_anRandomTable[1] % 10 + 90; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + if (m_bDynamicAcousticModelingStatus) + m_sQueueSample.m_bRequireReflection = true; + else + noReflection = true; + break; + case WEAPONTYPE_UZI: + m_sQueueSample.m_nSampleIndex = SFX_UZI_LEFT; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound++; + stereo = true; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_UZI_LEFT); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 80.0f; + maxDist = SQR(80); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[3] % 15 + 70; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + break; + case WEAPONTYPE_SHOTGUN: + m_sQueueSample.m_nSampleIndex = SFX_SHOTGUN_LEFT; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound++; + stereo = true; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SHOTGUN_LEFT); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 60.0f; + maxDist = 3600.f; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + emittingVol = m_anRandomTable[2] % 10 + 100; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + if (m_bDynamicAcousticModelingStatus) + m_sQueueSample.m_bRequireReflection = true; + else + noReflection = true; + break; + case WEAPONTYPE_AK47: + m_sQueueSample.m_nSampleIndex = SFX_AK47_LEFT; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound++; + stereo = true; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_AK47_LEFT); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 80.0f; + maxDist = SQR(80); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[1] % 15 + 70; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + break; + case WEAPONTYPE_M16: + m_sQueueSample.m_nSampleIndex = SFX_M16_LEFT; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound++; + stereo = true; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_M16_LEFT); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 80.0f; + maxDist = SQR(80); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[4] % 15 + 70; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + break; + case WEAPONTYPE_SNIPERRIFLE: + m_sQueueSample.m_nSampleIndex = SFX_SNIPER_LEFT; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound++; + stereo = true; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SNIPER_LEFT); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 60.0f; + maxDist = 3600.f; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + emittingVol = m_anRandomTable[4] % 10 + 110; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + if (m_bDynamicAcousticModelingStatus) + m_sQueueSample.m_bRequireReflection = true; + else + noReflection = true; + break; + case WEAPONTYPE_ROCKETLAUNCHER: + m_sQueueSample.m_nSampleIndex = SFX_ROCKET_LEFT; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound++; + stereo = true; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_ROCKET_LEFT); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 90.0f; + maxDist = 8100.f; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + emittingVol = m_anRandomTable[0] % 20 + 80; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + if (m_bDynamicAcousticModelingStatus) + m_sQueueSample.m_bRequireReflection = true; + else + noReflection = true; + break; + case WEAPONTYPE_FLAMETHROWER: + m_sQueueSample.m_nSampleIndex = SFX_FLAMETHROWER_LEFT; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = 9; + emittingVol = 90; + m_sQueueSample.m_nFrequency = (10 * m_sQueueSample.m_nEntityIndex & 2047) + SampleManager.GetSampleBaseFrequency(SFX_FLAMETHROWER_LEFT); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 4.0f; + m_sQueueSample.m_fSoundIntensity = 60.0f; + maxDist = 3600.f; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nEmittingVolume = 90; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 6; + if (m_bDynamicAcousticModelingStatus) + m_sQueueSample.m_bRequireReflection = true; + else + noReflection = true; + break; + default: + continue; + } + + break; + case SOUND_WEAPON_RELOAD: + weapon = &ped->m_weapons[ped->m_currentWeapon]; + switch (weapon->m_eWeaponType) { + case WEAPONTYPE_COLT45: + m_sQueueSample.m_nSampleIndex = SFX_PISTOL_RELOAD; + 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; + break; + case WEAPONTYPE_SHOTGUN: + m_sQueueSample.m_nSampleIndex = SFX_AK47_RELOAD; + m_sQueueSample.m_nFrequency = 30290; + break; + case WEAPONTYPE_AK47: + m_sQueueSample.m_nSampleIndex = SFX_AK47_RELOAD; + 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; + case WEAPONTYPE_SNIPERRIFLE: + m_sQueueSample.m_nSampleIndex = SFX_RIFLE_RELOAD; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RIFLE_RELOAD); + break; + case WEAPONTYPE_ROCKETLAUNCHER: + m_sQueueSample.m_nSampleIndex = SFX_ROCKET_RELOAD; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_ROCKET_RELOAD); + break; + default: + continue; + } + emittingVol = 75; + m_sQueueSample.m_nCounter = iSound++; + stereo = true; + m_sQueueSample.m_nFrequency += RandomDisplacement(300); + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + maxDist = SQR(30); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = 75; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + break; + case SOUND_WEAPON_AK47_BULLET_ECHO: + case SOUND_WEAPON_UZI_BULLET_ECHO: + case SOUND_WEAPON_M16_BULLET_ECHO: + m_sQueueSample.m_nSampleIndex = SFX_UZI_END_LEFT; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound++; + stereo = true; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_UZI_END_LEFT); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 80.0f; + maxDist = SQR(80); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + emittingVol = m_anRandomTable[4] % 10 + 40; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + if (m_bDynamicAcousticModelingStatus) + m_sQueueSample.m_bRequireReflection = true; + else + noReflection = true; + break; + case SOUND_WEAPON_FLAMETHROWER_FIRE: + m_sQueueSample.m_nSampleIndex = SFX_FLAMETHROWER_START_LEFT; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound++; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_FLAMETHROWER_START_LEFT); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 4.0f; + m_sQueueSample.m_fSoundIntensity = 60.0f; + maxDist = 3600.f; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + emittingVol = 70; + m_sQueueSample.m_nEmittingVolume = 70; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + break; + case SOUND_WEAPON_HIT_PED: + m_sQueueSample.m_nSampleIndex = SFX_BULLET_PED; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound++; + stereo = true; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_BULLET_PED); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 8); + m_sQueueSample.m_nReleasingVolumeModificator = 7; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 30.0f; + maxDist = SQR(30); + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[0] % 20 + 90; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + break; + case SOUND_SPLASH: + m_sQueueSample.m_nSampleIndex = SFX_SPLASH_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nCounter = iSound++; + stereo = true; + m_sQueueSample.m_nFrequency = RandomDisplacement(1400) + 20000; + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_fSoundIntensity = 40.0f; + maxDist = 1600.f; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_nLoopStart = 0; + emittingVol = m_anRandomTable[2] % 30 + 70; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_nEmittingVolume = emittingVol; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_bRequireReflection = true; + break; + default: + SetupPedComments(params, sound); + continue; + } + + if (stereo && iSound > 60) + iSound = 21; + if (params->m_fDistance < maxDist) { + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + if (noReflection) { + if (0.2f * m_sQueueSample.m_fSoundIntensity <= m_sQueueSample.m_fDistance) { + noReflection = 0; + } else { + m_sQueueSample.m_bIs2D = true; + m_sQueueSample.m_nOffset = 0; + } + } + m_sQueueSample.m_bReverbFlag = true; + AddSampleToRequestedQueue(); + if (noReflection) { + m_sQueueSample.m_nOffset = 127; + ++m_sQueueSample.m_nSampleIndex; + if (m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i] != SOUND_WEAPON_SHOT_FIRED || + weapon->m_eWeaponType != WEAPONTYPE_FLAMETHROWER) { + m_sQueueSample.m_nCounter = iSound++; + if (iSound > 60) + iSound = 21; + } else { + ++m_sQueueSample.m_nCounter; + } + AddSampleToRequestedQueue(); + } + } + } + } +} + +void +cAudioManager::SetupPedComments(cPedParams *params, uint32 sound) +{ + CPed *ped = params->m_pPed; + uint8 emittingVol; + float soundIntensity; + tPedComment pedComment; + + if (ped != nil) { + switch (sound) { + case SOUND_AMMUNATION_WELCOME_1: + pedComment.m_nSampleIndex = SFX_AMMU_D; + break; + case SOUND_AMMUNATION_WELCOME_2: + pedComment.m_nSampleIndex = SFX_AMMU_E; + break; + case SOUND_AMMUNATION_WELCOME_3: + pedComment.m_nSampleIndex = SFX_AMMU_F; + break; + default: + pedComment.m_nSampleIndex = GetPedCommentSfx(ped, sound); + if (pedComment.m_nSampleIndex == NO_SAMPLE) + return; + break; + } + + soundIntensity = 50.0f; + } else { + switch (sound) { + 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; + case SOUND_PED_BODYCAST_HIT: + if (CTimer::GetTimeInMilliseconds() <= gNextCryTime) + return; + soundIntensity = 50.0f; + gNextCryTime = CTimer::GetTimeInMilliseconds() + 500; + pedComment.m_nSampleIndex = GetRandomNumberInRange(m_sQueueSample.m_nEntityIndex % 4, SFX_PLASTER_BLOKE_1, SFX_PLASTER_BLOKE_4); + break; + case SOUND_INJURED_PED_MALE_OUCH: + case SOUND_INJURED_PED_MALE_PRISON: + soundIntensity = 50.0f; + pedComment.m_nSampleIndex = GetRandomNumberInRange(m_sQueueSample.m_nEntityIndex % 4, SFX_GENERIC_MALE_GRUNT_1, SFX_GENERIC_MALE_GRUNT_15); + break; + 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; + default: + return; + } + } + + if (params->m_fDistance < SQR(soundIntensity)) { + CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); + if (sound != SOUND_PAGER) { + switch (sound) { + case SOUND_AMMUNATION_WELCOME_1: + case SOUND_AMMUNATION_WELCOME_2: + case SOUND_AMMUNATION_WELCOME_3: + emittingVol = maxVolume; + break; + default: + if (CWorld::GetIsLineOfSightClear(TheCamera.GetPosition(), m_sQueueSample.m_vecPos, true, false, false, false, false, false)) + emittingVol = maxVolume; + else + emittingVol = 31; + break; + } + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, soundIntensity, m_sQueueSample.m_fDistance); + pedComment.m_nProcess = 10; + if (m_sQueueSample.m_nVolume != 0) { + pedComment.m_nEntityIndex = m_sQueueSample.m_nEntityIndex; + pedComment.m_vecPos = m_sQueueSample.m_vecPos; + pedComment.m_fDistance = m_sQueueSample.m_fDistance; + pedComment.m_bVolume = m_sQueueSample.m_nVolume; + m_sPedComments.Add(&pedComment); + } + } + } +} + +int32 +cAudioManager::GetPedCommentSfx(CPed *ped, int32 sound) +{ + if (ped->IsPlayer()) + return GetPlayerTalkSfx(sound); + + 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); + } +} + +void +cAudioManager::GetPhrase(uint32 *phrase, uint32 *prevPhrase, uint32 sample, uint32 maxOffset) const +{ + *phrase = sample + m_anRandomTable[m_sQueueSample.m_nEntityIndex & 3] % maxOffset; + + // 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; +} + +#pragma region PED_COMMENTS + +uint32 +cAudioManager::GetPlayerTalkSfx(int16 sound) +{ + 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; + } + return sfx; +} + +uint32 +cAudioManager::GetCopTalkSfx(int16 sound) +{ + 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; +} + +uint32 +cAudioManager::GetSwatTalkSfx(int16 sound) +{ + 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); + } + + return (SFX_SWAT_VOICE_2_CHASE_1 - SFX_SWAT_VOICE_1_CHASE_1) * (m_sQueueSample.m_nEntityIndex % 4) + sfx; +} + +uint32 +cAudioManager::GetFBITalkSfx(int16 sound) +{ + 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); + } + + return (SFX_FBI_VOICE_2_CHASE_1 - SFX_FBI_VOICE_1_CHASE_1) * (m_sQueueSample.m_nEntityIndex % 3) + sfx; +} + +uint32 +cAudioManager::GetArmyTalkSfx(int16 sound) +{ + 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); + + return (SFX_ARMY_VOICE_2_CHASE_1 - SFX_ARMY_VOICE_1_CHASE_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; +} + +uint32 +cAudioManager::GetMedicTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; +} + +uint32 +cAudioManager::GetFiremanTalkSfx(int16 sound) +{ + return GetGenericMaleTalkSfx(sound); +} + +uint32 +cAudioManager::GetNormalMaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; + default: + return GetGenericMaleTalkSfx(sound); + } + return sfx; +} + +uint32 +cAudioManager::GetTaxiDriverTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; +} + +uint32 +cAudioManager::GetPimpTalkSfx(int16 sound) +{ + 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; +} + +uint32 +cAudioManager::GetMafiaTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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); + } + 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; +} + +uint32 +cAudioManager::GetDiabloTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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); + } + 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; +} + +uint32 +cAudioManager::GetYardieTalkSfx(int16 sound) +{ + 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; +} + +uint32 +cAudioManager::GetColumbianTalkSfx(int16 sound) +{ + 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); + } + 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) +{ + 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; + } + 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) +{ + 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; +} + +uint32 +cAudioManager::GetWhiteCriminalTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; +} + +uint32 +cAudioManager::GetMaleNo2TalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; +} + +uint32 +cAudioManager::GetBlackProjectMaleTalkSfx(int16 sound, int32 model) +{ + 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); + default: + return GetGenericMaleTalkSfx(sound); + } + + 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) +{ + 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); + } + return sfx; +} + +uint32 +cAudioManager::GetBlackFatMaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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); + } + return sfx; +} + +uint32 +cAudioManager::GetBlackCasualFemaleTalkSfx(int16 sound) +{ + 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); + } + return sfx; +} + +uint32 +cAudioManager::GetWhiteCasualFemaleTalkSfx(int16 sound) +{ + 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; +} + +uint32 +cAudioManager::GetFemaleNo3TalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; +} + +uint32 +cAudioManager::GetBlackFatFemaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; +} + +uint32 +cAudioManager::GetWhiteFatFemaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; +} + +uint32 +cAudioManager::GetBlackFemaleProstituteTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; +} + +uint32 +cAudioManager::GetWhiteFemaleProstituteTalkSfx(int16 sound) +{ + 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) +{ + 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; +} + +uint32 +cAudioManager::GetBlackProjectFemaleYoungTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; +} + +uint32 +cAudioManager::GetChinatownMaleOldTalkSfx(int16 sound) +{ + 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); + } + return sfx; +} + +uint32 +cAudioManager::GetChinatownMaleYoungTalkSfx(int16 sound) +{ + 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); + } + return sfx; +} + +uint32 +cAudioManager::GetChinatownFemaleOldTalkSfx(int16 sound) +{ + 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); + } + 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); + } + 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); + } + 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); + } + 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); + } + 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); + } + 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); + } + return sfx; +} + +uint32 +cAudioManager::GetScumMaleTalkSfx(int16 sound) +{ + 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; +} + +uint32 +cAudioManager::GetScumFemaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; +} + +uint32 +cAudioManager::GetWhiteWorkerMaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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); + } + 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; +} + +uint32 +cAudioManager::GetBusinessMaleYoungTalkSfx(int16 sound, int32 model) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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); + } + + 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); + } + + 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); + } + 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); + } + return sfx; +} + +uint32 +cAudioManager::GetSupermodelFemaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; +} + +uint32 +cAudioManager::GetStewardMaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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); + } + 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; +} + +uint32 +cAudioManager::GetFanMaleTalkSfx(int16 sound, int32 model) +{ + 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); + } + + if (model == MI_FAN_MAN2) + sfx += (SFX_FOOTBALL_MALE_VOICE_2_DRIVER_ABUSE_1 - SFX_FOOTBALL_MALE_VOICE_1_DRIVER_ABUSE_1); + return sfx; +} + +uint32 +cAudioManager::GetFanFemaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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); + } + return sfx; +} + +uint32 +cAudioManager::GetHospitalFemaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; +} + +uint32 +cAudioManager::GetWhiteConstructionWorkerTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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); + } + return sfx; +} + +uint32 +cAudioManager::GetBlackConstructionWorkerTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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); + } + return sfx; +} + +uint32 +cAudioManager::GetShopperFemaleTalkSfx(int16 sound, int32 model) +{ + 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 (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) +{ + 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); + } + return sfx; +} + +uint32 +cAudioManager::GetStudentFemaleTalkSfx(int16 sound) +{ + 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); + } + return sfx; +} + +uint32 +cAudioManager::GetCasualMaleOldTalkSfx(int16 sound) +{ + return GetGenericMaleTalkSfx(sound); +} + +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); + } + + return GetGenericMaleTalkSfx(sound); +} +uint32 +cAudioManager::GetEightTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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); + } + return sfx; +} + +uint32 +cAudioManager::GetFrankieTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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); + } + return sfx; +} + +uint32 +cAudioManager::GetMistyTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; + } + 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; +} + +uint32 +cAudioManager::GetSecurityGuardTalkSfx(int16 sound) +{ + 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); +#endif + break; + default: + return GetGenericMaleTalkSfx(sound); + } + 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) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; + } + return sfx; +} + +uint32 +cAudioManager::GetGenericFemaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + 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; + } + return sfx; +} + + + +void +cPedComments::Add(tPedComment *com) +{ + uint8 index; + + if (m_nCommentsInBank[m_nActiveBank] >= NUM_PED_COMMENTS_SLOTS) { + index = m_nIndexMap[m_nActiveBank][NUM_PED_COMMENTS_SLOTS - 1]; + if (m_asPedComments[m_nActiveBank][index].m_bVolume > com->m_bVolume) + return; + } else { + index = m_nCommentsInBank[m_nActiveBank]++; + } + + m_asPedComments[m_nActiveBank][index].m_nSampleIndex = com->m_nSampleIndex; + m_asPedComments[m_nActiveBank][index].m_nEntityIndex = com->m_nEntityIndex; + m_asPedComments[m_nActiveBank][index].m_vecPos = com->m_vecPos; + m_asPedComments[m_nActiveBank][index].m_fDistance = com->m_fDistance; + m_asPedComments[m_nActiveBank][index].m_bVolume = com->m_bVolume; + + uint32 i = 0; + if (index != 0) { + for (i = 0; i < index; i++) { + if (m_asPedComments[m_nActiveBank][m_nIndexMap[m_nActiveBank][i]].m_bVolume < m_asPedComments[m_nActiveBank][index].m_bVolume) { + break; + } + } + + if (i < index) + memmove(&m_nIndexMap[m_nActiveBank][i + 1], &m_nIndexMap[m_nActiveBank][i], NUM_PED_COMMENTS_SLOTS - 1 - i); + } + + m_nIndexMap[m_nActiveBank][i] = index; +} + +void +cPedComments::Process() +{ + int sampleIndex; + uint8 actualUsedBank; + tPedComment *comment; + + static const int defaultIntensity = 50; + static const int policeHeliIntensity = 400; + + if (!AudioManager.m_nUserPause) { + if (m_nCommentsInBank[m_nActiveBank]) { + sampleIndex = m_asPedComments[m_nActiveBank][m_nIndexMap[m_nActiveBank][0]].m_nSampleIndex; + if (!SampleManager.IsPedCommentLoaded(sampleIndex)) + SampleManager.LoadPedComment(sampleIndex); + + AudioManager.m_sQueueSample.m_nEntityIndex = m_asPedComments[m_nActiveBank][m_nIndexMap[m_nActiveBank][0]].m_nEntityIndex; + AudioManager.m_sQueueSample.m_nCounter = 0; + AudioManager.m_sQueueSample.m_nSampleIndex = sampleIndex; + AudioManager.m_sQueueSample.m_nBankIndex = SAMPLEBANK_PED; + AudioManager.m_sQueueSample.m_nReleasingVolumeModificator = 3; + AudioManager.m_sQueueSample.m_nVolume = m_asPedComments[m_nActiveBank][m_nIndexMap[m_nActiveBank][0]].m_bVolume; + AudioManager.m_sQueueSample.m_fDistance = m_asPedComments[m_nActiveBank][m_nIndexMap[m_nActiveBank][0]].m_fDistance; + AudioManager.m_sQueueSample.m_nLoopCount = 1; + AudioManager.m_sQueueSample.m_nLoopStart = 0; + AudioManager.m_sQueueSample.m_nLoopEnd = -1; + 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; + default: + AudioManager.m_sQueueSample.m_fSoundIntensity = defaultIntensity; + break; + } + 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) { + AudioManager.m_sQueueSample.m_bReverbFlag = false; + AudioManager.m_sQueueSample.m_bRequireReflection = false; + } else { + AudioManager.m_sQueueSample.m_bReverbFlag = true; + AudioManager.m_sQueueSample.m_bRequireReflection = true; + } + + AudioManager.m_sQueueSample.m_bIs2D = false; + AudioManager.m_sQueueSample.m_nFrequency = + SampleManager.GetSampleBaseFrequency(AudioManager.m_sQueueSample.m_nSampleIndex) + AudioManager.RandomDisplacement(750); + if (CTimer::GetIsSlowMotionActive()) + AudioManager.m_sQueueSample.m_nFrequency /= 2; + m_asPedComments[m_nActiveBank][m_nIndexMap[m_nActiveBank][0]].m_nProcess = -1; + AudioManager.AddSampleToRequestedQueue(); + } + + // Switch bank + if (m_nActiveBank) { + actualUsedBank = SAMPLEBANK_PED; + m_nActiveBank = SAMPLEBANK_MAIN; + } else { + actualUsedBank = SAMPLEBANK_MAIN; + m_nActiveBank = SAMPLEBANK_PED; + } + comment = m_asPedComments[actualUsedBank]; + for (uint32 i = 0; i < m_nCommentsInBank[actualUsedBank]; i++) { + if (m_asPedComments[actualUsedBank][m_nIndexMap[actualUsedBank][i]].m_nProcess > 0) { + --m_asPedComments[actualUsedBank][m_nIndexMap[actualUsedBank][i]].m_nProcess; + Add(&comment[m_nIndexMap[actualUsedBank][i]]); + } + } + + for (uint32 i = 0; i < NUM_PED_COMMENTS_SLOTS; i++) { + m_nIndexMap[actualUsedBank][i] = NUM_PED_COMMENTS_SLOTS; + } + m_nCommentsInBank[actualUsedBank] = 0; + } +} + +#pragma endregion + +#pragma endregion All the ped audio code + +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::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::ProcessWaterCannon(int32) +{ + const float SOUND_INTENSITY = 900.0f; + + for (int32 i = 0; i < NUM_WATERCANNONS; i++) { + if (CWaterCannons::aCannons[i].m_nId) { + m_sQueueSample.m_vecPos = CWaterCannons::aCannons[0].m_avecPos[CWaterCannons::aCannons[i].m_nCur]; + float distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SOUND_INTENSITY) { + m_sQueueSample.m_fDistance = Sqrt(distSquared); + m_sQueueSample.m_nVolume = ComputeVolume(50, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; + m_sQueueSample.m_nSampleIndex = SFX_JUMBO_TAXI; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = 15591; + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_nCounter = i; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nReleasingVolumeDivider = 8; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nEmittingVolume = 50; + 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(); + } + } + } + } +} + +#pragma region SCRIPT_OBJECTS +const int scriptObjectIntensityS = 30; +const int scriptObjectIntensityL = 80; + +void +cAudioManager::ProcessScriptObject(int32 id) +{ + cAudioScriptObject *entity = (cAudioScriptObject *)m_asAudioEntities[id].m_pEntity; + if (entity) { + m_sQueueSample.m_vecPos = entity->Posn; + if (m_asAudioEntities[id].m_AudioEvents == 1) + ProcessOneShotScriptObject(m_asAudioEntities[id].m_awAudioEvent[0]); + else + ProcessLoopingScriptObject(entity->AudioId); + } +} + +void +cAudioManager::ProcessOneShotScriptObject(uint8 sound) +{ + CPlayerPed *playerPed; + uint8 emittingVolume; + float distSquared; + + cPedParams male; + cPedParams female; + + static uint8 iSound = 0; + + switch (sound) { + case SCRIPT_SOUND_INJURED_PED_MALE_OUCH_S: + case SCRIPT_SOUND_INJURED_PED_MALE_OUCH_L: + male.m_pPed = nil; + male.m_bDistanceCalculated = false; + male.m_fDistance = GetDistanceSquared(m_sQueueSample.m_vecPos); + SetupPedComments(&male, SOUND_INJURED_PED_MALE_OUCH); + return; + case SCRIPT_SOUND_INJURED_PED_FEMALE_OUCH_S: + case SCRIPT_SOUND_INJURED_PED_FEMALE_OUCH_L: + female.m_pPed = nil; + female.m_bDistanceCalculated = false; + female.m_fDistance = GetDistanceSquared(m_sQueueSample.m_vecPos); + SetupPedComments(&female, SOUND_INJURED_PED_FEMALE); + return; + case SCRIPT_SOUND_GATE_START_CLUNK: + case SCRIPT_SOUND_GATE_STOP_CLUNK: + m_sQueueSample.m_fSoundIntensity = 40.0f; + m_sQueueSample.m_nSampleIndex = SFX_COL_GATE; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + if (sound == SCRIPT_SOUND_GATE_START_CLUNK) + m_sQueueSample.m_nFrequency = 10600; + else + m_sQueueSample.m_nFrequency = 9000; + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bRequireReflection = true; + emittingVolume = RandomDisplacement(10) + 50; + break; + case SCRIPT_SOUND_BULLET_HIT_GROUND_1: + case SCRIPT_SOUND_BULLET_HIT_GROUND_2: + case SCRIPT_SOUND_BULLET_HIT_GROUND_3: + m_sQueueSample.m_fSoundIntensity = 50.0f; + m_sQueueSample.m_nSampleIndex = m_anRandomTable[iSound % 5] % 3 + SFX_BULLET_WALL_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 / 32); + m_sQueueSample.m_nReleasingVolumeModificator = 9; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_bIs2D = false; + emittingVolume = m_anRandomTable[2] % 20 + 90; + break; + case SCRIPT_SOUND_110: + case SCRIPT_SOUND_111: + if (SampleManager.IsSampleBankLoaded(0) != 1) + return; + m_sQueueSample.m_fSoundIntensity = 80.0f; + m_sQueueSample.m_nSampleIndex = SFX_TRAIN_STATION_ANNOUNCE; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = maxVolume; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_TRAIN_STATION_ANNOUNCE); + m_sQueueSample.m_nReleasingVolumeModificator = 0; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_bIs2D = false; + break; + case SCRIPT_SOUND_PAYPHONE_RINGING: + m_sQueueSample.m_fSoundIntensity = 80.0f; + m_sQueueSample.m_nSampleIndex = SFX_PHONE_RING; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 80; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_PHONE_RING); + m_sQueueSample.m_nReleasingVolumeModificator = 1; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bRequireReflection = false; + break; + case SCRIPT_SOUND_GLASS_BREAK_L: + m_sQueueSample.m_fSoundIntensity = 60.0f; + m_sQueueSample.m_nSampleIndex = SFX_GLASS_SMASH; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 70; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_GLASS_SMASH); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_bIs2D = false; + break; + case SCRIPT_SOUND_GLASS_BREAK_S: + m_sQueueSample.m_fSoundIntensity = 60.0f; + m_sQueueSample.m_nSampleIndex = SFX_GLASS_SMASH; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 60; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_GLASS_SMASH); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_bIs2D = false; + break; + case SCRIPT_SOUND_GLASS_CRACK: + m_sQueueSample.m_fSoundIntensity = 60.0f; + m_sQueueSample.m_nSampleIndex = SFX_GLASS_CRACK; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + emittingVolume = 70; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_GLASS_CRACK); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bRequireReflection = true; + break; + case SCRIPT_SOUND_GLASS_LIGHT_BREAK: + m_sQueueSample.m_fSoundIntensity = 55.0f; + m_sQueueSample.m_nSampleIndex = (m_anRandomTable[4] & 3) + SFX_GLASS_SHARD_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = RandomDisplacement(2000) + 19000; + m_sQueueSample.m_nReleasingVolumeModificator = 9; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_bIs2D = false; + emittingVolume = RandomDisplacement(11) + 25; + break; + case SCRIPT_SOUND_BOX_DESTROYED_1: + m_sQueueSample.m_fSoundIntensity = 60.0f; + m_sQueueSample.m_nSampleIndex = SFX_WOODEN_BOX_SMASH; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = RandomDisplacement(1500) + 18600; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bRequireReflection = true; + emittingVolume = m_anRandomTable[2] % 20 + 80; + break; + case SCRIPT_SOUND_BOX_DESTROYED_2: + m_sQueueSample.m_fSoundIntensity = 60.0f; + m_sQueueSample.m_nSampleIndex = SFX_CARDBOARD_BOX_SMASH; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = RandomDisplacement(1500) + 18600; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bRequireReflection = true; + emittingVolume = m_anRandomTable[2] % 20 + 80; + break; + case SCRIPT_SOUND_METAL_COLLISION: + m_sQueueSample.m_fSoundIntensity = 60.0f; + m_sQueueSample.m_nSampleIndex = m_anRandomTable[3] % 5 + SFX_COL_CAR_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_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bRequireReflection = true; + emittingVolume = m_anRandomTable[2] % 30 + 70; + break; + case SCRIPT_SOUND_TIRE_COLLISION: + m_sQueueSample.m_fSoundIntensity = 60.0f; + m_sQueueSample.m_nSampleIndex = SFX_TYRE_BUMP; + 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_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_bRequireReflection = true; + emittingVolume = m_anRandomTable[2] % 30 + 60; + break; + case SCRIPT_SOUND_GUNSHELL_DROP: + playerPed = FindPlayerPed(); + if (playerPed) { + switch (playerPed->m_nSurfaceTouched) { + case SURFACE_GRASS: + case SURFACE_DIRT: + case SURFACE_DIRTTRACK: + case SURFACE_SCAFFOLD: + case SURFACE_FLESH: + case SURFACE_SAND: + case SURFACE_TIRE: + case SURFACE_HEDGE: + m_sQueueSample.m_nSampleIndex = SFX_BULLET_SHELL_HIT_GROUND_2; + m_sQueueSample.m_nFrequency = RandomDisplacement(500) + 11000; + m_sQueueSample.m_nReleasingVolumeModificator = 18; + m_sQueueSample.m_fSoundIntensity = 20.0f; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_bIs2D = false; + emittingVolume = m_anRandomTable[2] % 20 + 30; + distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { + m_sQueueSample.m_fDistance = Sqrt(distSquared); + m_sQueueSample.m_nVolume = ComputeVolume(emittingVolume, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = iSound++; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_nEmittingVolume = emittingVolume; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_bReverbFlag = true; + AddSampleToRequestedQueue(); + } + } + return; + case SURFACE_PUDDLE: + return; + default: + break; + } + } + m_sQueueSample.m_nSampleIndex = SFX_BULLET_SHELL_HIT_GROUND_1; + m_sQueueSample.m_nFrequency = RandomDisplacement(750) + 18000; + m_sQueueSample.m_nReleasingVolumeModificator = 15; + m_sQueueSample.m_fSoundIntensity = 20.0f; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_bIs2D = false; + emittingVolume = m_anRandomTable[2] % 20 + 30; + break; + case SCRIPT_SOUND_GUNSHELL_DROP_SOFT: + m_sQueueSample.m_nSampleIndex = SFX_BULLET_SHELL_HIT_GROUND_2; + m_sQueueSample.m_nFrequency = RandomDisplacement(500) + 11000; + m_sQueueSample.m_nReleasingVolumeModificator = 18; + m_sQueueSample.m_fSoundIntensity = 20.0f; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_bIs2D = false; + emittingVolume = m_anRandomTable[2] % 20 + 30; + 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(emittingVolume, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = iSound++; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_nEmittingVolume = emittingVolume; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_bReverbFlag = true; + 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; + 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(emittingVolume, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = 0; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_bReverbFlag = true; + 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_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } +} + +void +cAudioManager::ProcessPornCinema(uint8 sound) +{ + + eSfxSample sample; + uint32 time; + int32 rand; + float distSquared; + + switch (sound) { + case SCRIPT_SOUND_PORN_CINEMA_1_S: + case SCRIPT_SOUND_MISTY_SEX_S: + m_sQueueSample.m_nSampleIndex = SFX_PORN_1_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + sample = SFX_PORN_1_GROAN_1; + m_sQueueSample.m_fSoundIntensity = 20.0f; + break; + case SCRIPT_SOUND_PORN_CINEMA_1_L: + case SCRIPT_SOUND_MISTY_SEX_L: + m_sQueueSample.m_nSampleIndex = SFX_PORN_1_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + sample = SFX_PORN_1_GROAN_1; + m_sQueueSample.m_fSoundIntensity = 80.0f; + break; + case SCRIPT_SOUND_PORN_CINEMA_2_S: + m_sQueueSample.m_nSampleIndex = SFX_PORN_2_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + sample = SFX_PORN_2_GROAN_1; + m_sQueueSample.m_fSoundIntensity = 20.0f; + break; + case SCRIPT_SOUND_PORN_CINEMA_2_L: + m_sQueueSample.m_nSampleIndex = SFX_PORN_2_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + sample = SFX_PORN_2_GROAN_1; + m_sQueueSample.m_fSoundIntensity = 80.0f; + break; + case SCRIPT_SOUND_PORN_CINEMA_3_S: + m_sQueueSample.m_nSampleIndex = SFX_PORN_3_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_fSoundIntensity = 20.0f; + sample = SFX_PORN_3_GROAN_1; + break; + case SCRIPT_SOUND_PORN_CINEMA_3_L: + m_sQueueSample.m_nSampleIndex = SFX_PORN_3_LOOP; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_fSoundIntensity = 80.0f; + sample = SFX_PORN_3_GROAN_1; + break; + default: + return; + } + distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { + m_sQueueSample.m_fDistance = Sqrt(distSquared); + if (sound != SCRIPT_SOUND_MISTY_SEX_S && sound != SCRIPT_SOUND_MISTY_SEX_L) { + m_sQueueSample.m_nVolume = ComputeVolume(maxVolume, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nCounter = 0; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeModificator = 3; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nEmittingVolume = maxVolume; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } + + time = CTimer::GetTimeInMilliseconds(); + if (time > gPornNextTime) { + m_sQueueSample.m_nVolume = ComputeVolume(90, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + rand = m_anRandomTable[1] & 1; + m_sQueueSample.m_nSampleIndex = rand + sample; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); + m_sQueueSample.m_nCounter = rand + 1; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_nReleasingVolumeModificator = 6; + m_sQueueSample.m_fSpeedMultiplier = 0.0f; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + gPornNextTime = time + 2000 + m_anRandomTable[3] % 6000; + } + } + } +} + +void +cAudioManager::ProcessWorkShopScriptObject(uint8 sound) +{ + float distSquared; + + switch (sound) { + case SCRIPT_SOUND_WORK_SHOP_LOOP_S: + case SCRIPT_SOUND_WORK_SHOP_LOOP_L: + m_sQueueSample.m_fSoundIntensity = 20.0f; + break; + default: + return; + } + distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); + if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { + m_sQueueSample.m_fDistance = Sqrt(distSquared); + m_sQueueSample.m_nVolume = ComputeVolume(30, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nSampleIndex = SFX_WORKSHOP_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_WORKSHOP_1); + m_sQueueSample.m_nCounter = 0; + m_sQueueSample.m_bIs2D = false; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeModificator = 5; + m_sQueueSample.m_fSpeedMultiplier = 2.0f; + m_sQueueSample.m_nEmittingVolume = 30; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + } +} + +void +cAudioManager::ProcessSawMillScriptObject(uint8 sound) +{ + + uint32 time; + float distSquared; + + switch (sound) { + case SCRIPT_SOUND_SAWMILL_LOOP_S: + case SCRIPT_SOUND_SAWMILL_LOOP_L: + m_sQueueSample.m_fSoundIntensity = 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::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::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::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; + } + } + } +} + +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::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; + } + } + } +} +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::ProcessPoliceCellBeatingScriptObject(uint8 sound) +{ + uint32 time = CTimer::GetTimeInMilliseconds(); + int32 sampleIndex; + uint8 emittingVol; + float distSquared; + cPedParams params; + + static uint8 counter = 0; + + if (time > gCellNextTime) { + switch (sound) { + case SCRIPT_SOUND_POLICE_CELL_BEATING_LOOP_S: + m_sQueueSample.m_fSoundIntensity = scriptObjectIntensityS; + break; + case SCRIPT_SOUND_POLICE_CELL_BEATING_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); + if (m_FrameCounter & 1) + sampleIndex = (m_anRandomTable[1] & 3) + SFX_FIGHT_1; + else + sampleIndex = (m_anRandomTable[3] & 1) + SFX_BAT_HIT_LEFT; + m_sQueueSample.m_nSampleIndex = sampleIndex; + emittingVol = m_anRandomTable[0] % 50 + 55; + m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + 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 = emittingVol; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + params.m_bDistanceCalculated = true; + params.m_fDistance = distSquared; + params.m_pPed = nil; + SetupPedComments(¶ms, SOUND_INJURED_PED_MALE_PRISON); + } + gCellNextTime = time + 500 + m_anRandomTable[3] % 1500; + } + } +} +#pragma endregion All the code for script object audio on the map + +void +cAudioManager::ProcessWeather(int32 id) +{ + uint8 vol; + static uint8 counter = 0; + + if (m_asAudioEntities[id].m_AudioEvents && m_asAudioEntities[id].m_awAudioEvent[0] == SOUND_LIGHTNING) { + if (m_asAudioEntities[id].m_afVolume[0] >= 10.f) { + m_sQueueSample.m_nSampleIndex = SFX_EXPLOSION_1; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = RandomDisplacement(500) + 4000; + vol = (m_asAudioEntities[id].m_afVolume[0] - 10.f) + 40; + } else { + m_sQueueSample.m_nSampleIndex = SFX_EXPLOSION_2; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = RandomDisplacement(500) + 4000; + vol = (m_asAudioEntities[id].m_afVolume[0]) + 35; + } + m_sQueueSample.m_nVolume = vol; + if (TheCamera.SoundDistUp < 20.f) + m_sQueueSample.m_nVolume /= 2; + if (counter == 4) + counter = 0; + m_sQueueSample.m_nCounter = counter++; + m_sQueueSample.m_nReleasingVolumeModificator = 0; + m_sQueueSample.m_nOffset = (m_anRandomTable[2] & 15) + 55; + m_sQueueSample.m_bIs2D = true; + m_sQueueSample.m_nLoopCount = 1; + m_sQueueSample.m_bReleasingSoundFlag = true; + m_sQueueSample.m_nEmittingVolume = m_sQueueSample.m_nVolume; + m_sQueueSample.m_nLoopStart = 0; + m_sQueueSample.m_nLoopEnd = -1; + m_sQueueSample.m_bReverbFlag = false; + m_sQueueSample.m_bRequireReflection = false; + AddSampleToRequestedQueue(); + } + if (CWeather::Rain > 0.0f && (!CCullZones::CamNoRain() || !CCullZones::PlayerNoRain())) { + m_sQueueSample.m_nSampleIndex = SFX_RAIN; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RAIN); + m_sQueueSample.m_nVolume = (int32)(25.f * CWeather::Rain); + m_sQueueSample.m_nCounter = 4; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nReleasingVolumeModificator = 0; + m_sQueueSample.m_nOffset = 63; + m_sQueueSample.m_bIs2D = true; + m_sQueueSample.m_nLoopCount = 0; + m_sQueueSample.m_bReleasingSoundFlag = false; + m_sQueueSample.m_nReleasingVolumeDivider = 30; + m_sQueueSample.m_bReverbFlag = false; + m_sQueueSample.m_nEmittingVolume = m_sQueueSample.m_nVolume; + m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); + m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); + 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::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::ProcessProjectiles() +{ + const int rocketLauncherIntensity = 90; + const int molotovIntensity = 30; + const int molotovVolume = 50; + uint8 emittingVol; + + for (int32 i = 0; i < NUM_PROJECTILES; i++) { + if (CProjectileInfo::GetProjectileInfo(i)->m_bInUse) { + switch (CProjectileInfo::GetProjectileInfo(i)->m_eWeaponType) { + case WEAPONTYPE_ROCKETLAUNCHER: + emittingVol = maxVolume; + m_sQueueSample.m_fSoundIntensity = rocketLauncherIntensity; + m_sQueueSample.m_nSampleIndex = SFX_ROCKET_FLY; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_ROCKET_FLY); + m_sQueueSample.m_nReleasingVolumeModificator = 3; + break; + case WEAPONTYPE_MOLOTOV: + emittingVol = molotovVolume; + m_sQueueSample.m_fSoundIntensity = molotovIntensity; + m_sQueueSample.m_nSampleIndex = SFX_PED_ON_FIRE; + m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_nFrequency = 32 * SampleManager.GetSampleBaseFrequency(SFX_PED_ON_FIRE) / 25; + m_sQueueSample.m_nReleasingVolumeModificator = 7; + break; + default: + return; + } + m_sQueueSample.m_fSpeedMultiplier = 4.0f; + m_sQueueSample.m_nReleasingVolumeDivider = 3; + m_sQueueSample.m_vecPos = CProjectileInfo::ms_apProjectile[i]->GetPosition(); + 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(emittingVol, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); + if (m_sQueueSample.m_nVolume) { + m_sQueueSample.m_nCounter = i; + m_sQueueSample.m_bIs2D = false; + 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_bReleasingSoundFlag = false; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; + 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 +} + +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(); + } + } +} + +#pragma region BRIDGE +const int bridgeIntensity = 400; + +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::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(); + } + } +} + +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(); + } + } +} +#pragma endregion + +#pragma region MISSION_AUDIO +bool g_bMissionAudioLoadFailed; + +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; +} + +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: + return false; + } +} + +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; + } + } +} + +bool +cAudioManager::GetMissionAudioLoadingStatus() const +{ + if (m_bIsInitialised) + return m_sMissionAudio.m_nLoadingStatus; + + return true; +} + +void +cAudioManager::SetMissionAudioLocation(float x, float y, float z) +{ + if (m_bIsInitialised) { + m_sMissionAudio.m_bPredefinedProperties = false; + m_sMissionAudio.m_vecPos = CVector(x, y, z); + } +} + +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; + } +} + +bool +cAudioManager::IsMissionAudioSampleFinished() +{ + if (m_bIsInitialised) + return m_sMissionAudio.m_nPlayStatus == PLAY_STATUS_FINISHED; + + static int32 cPretendFrame = 1; + + return (cPretendFrame++ & 63) == 0; +} + +void +cAudioManager::ClearMissionAudio() +{ + if (m_bIsInitialised) { + 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; + } +} + +void +cAudioManager::ProcessMissionAudio() +{ + float dist; + uint8 emittingVol; + uint8 pan; + float distSquared; + CVector vec; + + static uint8 nCheckPlayingDelay = 0; + static uint8 nFramesUntilFailedLoad = 0; + static uint8 nFramesForPretendPlaying = 0; + + if (m_bIsInitialised) { + if (m_sMissionAudio.m_nSampleIndex != NO_SAMPLE) { + switch (m_sMissionAudio.m_nLoadingStatus) { + case LOADING_STATUS_NOT_LOADED: + SampleManager.PreloadStreamedFile(m_sMissionAudio.m_nSampleIndex, 1); + m_sMissionAudio.m_nLoadingStatus = LOADING_STATUS_LOADED; + nFramesUntilFailedLoad = 0; + return; + case LOADING_STATUS_LOADED: + if (!m_sMissionAudio.m_bIsPlayed) + return; + if (g_bMissionAudioLoadFailed) { + if (m_bTimerJustReset) { + ClearMissionAudio(); + SampleManager.StopStreamedFile(1); + nFramesForPretendPlaying = 0; + nCheckPlayingDelay = 0; + nFramesUntilFailedLoad = 0; + } else if (!m_nUserPause) { + if (++nFramesForPretendPlaying < 120) { + m_sMissionAudio.m_nPlayStatus = PLAY_STATUS_PLAYING; + } else { + m_sMissionAudio.m_nPlayStatus = PLAY_STATUS_FINISHED; + m_sMissionAudio.m_nSampleIndex = NO_SAMPLE; + } + } + } else { + if (m_sMissionAudio.m_nPlayStatus) { + if (m_sMissionAudio.m_nPlayStatus != PLAY_STATUS_PLAYING) + return; + if (m_bTimerJustReset) { + ClearMissionAudio(); + SampleManager.StopStreamedFile(1); + return; + } + if (MissionScriptAudioUsesPoliceChannel(m_sMissionAudio.m_nSampleIndex)) { + if (!m_nUserPause) { + if (nCheckPlayingDelay) { + --nCheckPlayingDelay; + } else if (GetMissionScriptPoliceAudioPlayingStatus() == PLAY_STATUS_FINISHED || + m_sMissionAudio.m_nMissionAudioCounter-- == 0) { + m_sMissionAudio.m_nPlayStatus = PLAY_STATUS_FINISHED; + m_sMissionAudio.m_nSampleIndex = NO_SAMPLE; + SampleManager.StopStreamedFile(1); + m_sMissionAudio.m_nMissionAudioCounter = 0; + } + } + } else if (m_sMissionAudio.field_22) { + if (SampleManager.IsStreamPlaying(1) || m_nUserPause || m_nPreviousUserPause) { + if (m_nUserPause) + SampleManager.PauseStream(1, 1); + else + SampleManager.PauseStream(0, 1); + } else { + m_sMissionAudio.m_nPlayStatus = PLAY_STATUS_FINISHED; + m_sMissionAudio.m_nSampleIndex = NO_SAMPLE; + SampleManager.StopStreamedFile(1); + m_sMissionAudio.m_nMissionAudioCounter = 0; + } + } else { + if (m_nUserPause) + return; + if (nCheckPlayingDelay--) { + if (!SampleManager.IsStreamPlaying(1)) + return; + nCheckPlayingDelay = 0; + } + m_sMissionAudio.field_22 = 1; + } + } else { + if (MissionScriptAudioUsesPoliceChannel(m_sMissionAudio.m_nSampleIndex)) { + SetMissionScriptPoliceAudio(m_sMissionAudio.m_nSampleIndex); + } else { + if (m_nUserPause) + SampleManager.PauseStream(1, 1); + if (m_sMissionAudio.m_bPredefinedProperties) { + SampleManager.SetStreamedVolumeAndPan(80, 63, 1, 1); + } else { + distSquared = GetDistanceSquared(m_sMissionAudio.m_vecPos); + if (distSquared >= 2500.f) { + emittingVol = 0; + pan = 63; + } else { + dist = Sqrt(distSquared); + emittingVol = ComputeVolume(80, 50.0f, dist); + TranslateEntity(&m_sMissionAudio.m_vecPos, &vec); + pan = ComputePan(50.f, &vec); + } + SampleManager.SetStreamedVolumeAndPan(emittingVol, pan, 1, 1); + } + SampleManager.StartPreloadedStreamedFile(1); + } + m_sMissionAudio.m_nPlayStatus = PLAY_STATUS_PLAYING; + nCheckPlayingDelay = 30; + } + } + break; + case 2: + if (++nFramesUntilFailedLoad >= 90) { + nFramesForPretendPlaying = 0; + g_bMissionAudioLoadFailed = true; + nFramesUntilFailedLoad = 0; + m_sMissionAudio.m_nLoadingStatus = LOADING_STATUS_LOADED; + } + return; + default: + return; + } + } + } +} +#pragma endregion All the mission audio stuff \ No newline at end of file diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp index ec46aa53..eecc8e7d 100644 --- a/src/audio/AudioManager.cpp +++ b/src/audio/AudioManager.cpp @@ -3,301 +3,21 @@ #include "AudioManager.h" #include "audio_enums.h" -#include "Automobile.h" -#include "Boat.h" -#include "Bridge.h" -#include "Camera.h" -#include "Cranes.h" -#include "DMAudio.h" -#include "Entity.h" -#include "Explosion.h" -#include "Fire.h" -#include "Garages.h" -#include "General.h" -#include "HandlingMgr.h" -#include "Heli.h" -#include "ModelIndices.h" +#include "AudioScriptObject.h" #include "MusicManager.h" -#include "Pad.h" -#include "Ped.h" -#include "Physical.h" -#include "Placeable.h" -#include "Plane.h" -#include "PlayerPed.h" -#include "Pools.h" -#include "Projectile.h" -#include "ProjectileInfo.h" -#include "Replay.h" -#include "Stats.h" -#include "SurfaceTable.h" -#include "Train.h" -#include "Transmission.h" -#include "Vehicle.h" -#include "WaterCannon.h" -#include "Weather.h" -#include "ZoneCull.h" +#include "Timer.h" +#include "DMAudio.h" #include "sampman.h" +#include "Camera.h" +#include "World.h" cAudioManager AudioManager; -uint32 gPornNextTime; -uint32 gSawMillNextTime; -uint32 gShopNextTime; -uint32 gAirportNextTime; -uint32 gCinemaNextTime; -uint32 gDocksNextTime; -uint32 gHomeNextTime; -uint32 gCellNextTime; -uint32 gNextCryTime; -uint8 gJumboVolOffsetPercentage; -bool bPlayerJustEnteredCar; -bool g_bMissionAudioLoadFailed; const int channels = ARRAY_SIZE(cAudioManager::m_asActiveSamples); const int policeChannel = channels + 1; const int allChannels = channels + 2; const int maxVolume = 127; -const int scriptObjectIntensityS = 30; -const int scriptObjectIntensityL = 80; -const int bridgeIntensity = 400; -const int rocketLauncherIntensity = 90; -const int molotovIntensity = 30; -const int molotovVolume = 50; - -const int rainOnVehicleIntensity = 22; -const int reverseGearIntensity = 30; -const int engineDamageIntensity = 40; - -const bool hornPatternsArray[8][44] = { - {false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, - false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false}, - {false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, - true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false}, - {false, false, true, true, true, true, true, true, true, true, true, true, false, false, false, false, true, true, true, true, true, false, - false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false}, - {false, false, true, true, true, true, true, false, false, true, true, true, true, true, false, false, false, true, true, true, true, true, - true, true, true, true, true, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, false}, - {false, false, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, - false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false}, - {false, false, true, true, true, false, false, false, true, true, true, false, false, false, false, false, false, false, false, false, false, false, - false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false}, - {false, false, true, true, true, true, false, false, false, false, true, true, true, false, false, true, true, true, false, false, true, true, - true, true, true, true, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, false, false}, - {false, false, true, true, true, true, false, false, true, true, true, true, true, false, false, false, true, true, true, true, true, true, - false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false}, -}; - -const int totalAudioEntitiesSlots = 200; - -const uint8 panTable[64]{0, 3, 8, 12, 16, 19, 22, 24, 26, 28, 30, 31, 33, 34, 36, 37, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 49, 50, 51, 52, 53, 53, - 54, 55, 55, 56, 56, 57, 57, 58, 58, 58, 59, 59, 59, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63, 63}; - -// TODO: where is this used? Is this the right file? -enum eVehicleModel { - LANDSTAL, - IDAHO, - STINGER, - LINERUN, - PEREN, - SENTINEL, - PATRIOT, - FIRETRUK, - TRASH, - STRETCH, - MANANA, - INFERNUS, - BLISTA, - PONY, - MULE, - CHEETAH, - AMBULAN, - FBICAR, - MOONBEAM, - ESPERANT, - TAXI, - KURUMA, - BOBCAT, - MRWHOOP, - BFINJECT, - CORPSE, - POLICE, - ENFORCER, - SECURICA, - BANSHEE, - PREDATOR, - BUS, - RHINO, - BARRACKS, - TRAIN, - CHOPPER, - DODO, - COACH, - CABBIE, - STALLION, - RUMPO, - RCBANDIT, - BELLYUP, - MRWONGS, - MAFIA, - YARDIE, - YAKUZA, - DIABLOS, - COLUMB, - HOODS, - AIRTRAIN, - DEADDODO, - SPEEDER, - REEFER, - PANLANT, - FLATBED, - YANKEE, - ESCAPE, - BORGNINE, - TOYZ, - GHOST, - CAR151, - CAR152, - CAR153, - CAR154, - CAR155, - CAR156, - CAR157, - CAR158, - CAR159, -}; - -enum PLAY_STATUS : uint8 { PLAY_STATUS_STOPPED = 0, PLAY_STATUS_PLAYING = 1, PLAY_STATUS_FINISHED = 2 }; - -enum LOADING_STATUS : uint8 { LOADING_STATUS_NOT_LOADED = 0, LOADING_STATUS_LOADED = 1 }; - -cPedComments::cPedComments() -{ - for (int i = 0; i < NUM_PED_COMMENTS_SLOTS; i++) - for (int j = 0; j < NUM_PED_COMMENTS_BANKS; j++) { - m_asPedComments[j][i].m_nProcess = -1; - m_nIndexMap[j][i] = NUM_PED_COMMENTS_SLOTS; - } - - for (int i = 0; i < NUM_PED_COMMENTS_BANKS; i++) - m_nCommentsInBank[i] = 0; - m_nActiveBank = 0; -} - -void -cPedComments::Add(tPedComment *com) -{ - uint8 index; - - if (m_nCommentsInBank[m_nActiveBank] >= NUM_PED_COMMENTS_SLOTS) { - index = m_nIndexMap[m_nActiveBank][NUM_PED_COMMENTS_SLOTS - 1]; - if (m_asPedComments[m_nActiveBank][index].m_bVolume > com->m_bVolume) - return; - } else { - index = m_nCommentsInBank[m_nActiveBank]++; - } - - m_asPedComments[m_nActiveBank][index].m_nSampleIndex = com->m_nSampleIndex; - m_asPedComments[m_nActiveBank][index].m_nEntityIndex = com->m_nEntityIndex; - m_asPedComments[m_nActiveBank][index].m_vecPos = com->m_vecPos; - m_asPedComments[m_nActiveBank][index].m_fDistance = com->m_fDistance; - m_asPedComments[m_nActiveBank][index].m_bVolume = com->m_bVolume; - - uint32 i = 0; - if (index != 0) { - for (i = 0; i < index; i++) { - if (m_asPedComments[m_nActiveBank][m_nIndexMap[m_nActiveBank][i]].m_bVolume < m_asPedComments[m_nActiveBank][index].m_bVolume) { - break; - } - } - - if (i < index) - memmove(&m_nIndexMap[m_nActiveBank][i + 1], &m_nIndexMap[m_nActiveBank][i], NUM_PED_COMMENTS_SLOTS - 1 - i); - } - - m_nIndexMap[m_nActiveBank][i] = index; -} - -void -cPedComments::Process() -{ - int sampleIndex; - uint8 actualUsedBank; - tPedComment *comment; - - static const int defaultIntensity = 50; - static const int policeHeliIntensity = 400; - - if (!AudioManager.m_nUserPause) { - if (m_nCommentsInBank[m_nActiveBank]) { - sampleIndex = m_asPedComments[m_nActiveBank][m_nIndexMap[m_nActiveBank][0]].m_nSampleIndex; - if (!SampleManager.IsPedCommentLoaded(sampleIndex)) - SampleManager.LoadPedComment(sampleIndex); - - AudioManager.m_sQueueSample.m_nEntityIndex = m_asPedComments[m_nActiveBank][m_nIndexMap[m_nActiveBank][0]].m_nEntityIndex; - AudioManager.m_sQueueSample.m_nCounter = 0; - AudioManager.m_sQueueSample.m_nSampleIndex = sampleIndex; - AudioManager.m_sQueueSample.m_nBankIndex = SAMPLEBANK_PED; - AudioManager.m_sQueueSample.m_nReleasingVolumeModificator = 3; - AudioManager.m_sQueueSample.m_nVolume = m_asPedComments[m_nActiveBank][m_nIndexMap[m_nActiveBank][0]].m_bVolume; - AudioManager.m_sQueueSample.m_fDistance = m_asPedComments[m_nActiveBank][m_nIndexMap[m_nActiveBank][0]].m_fDistance; - AudioManager.m_sQueueSample.m_nLoopCount = 1; - AudioManager.m_sQueueSample.m_nLoopStart = 0; - AudioManager.m_sQueueSample.m_nLoopEnd = -1; - 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; - default: - AudioManager.m_sQueueSample.m_fSoundIntensity = defaultIntensity; - break; - } - 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) { - AudioManager.m_sQueueSample.m_bReverbFlag = false; - AudioManager.m_sQueueSample.m_bRequireReflection = false; - } else { - AudioManager.m_sQueueSample.m_bReverbFlag = true; - AudioManager.m_sQueueSample.m_bRequireReflection = true; - } - - AudioManager.m_sQueueSample.m_bIs2D = false; - AudioManager.m_sQueueSample.m_nFrequency = - SampleManager.GetSampleBaseFrequency(AudioManager.m_sQueueSample.m_nSampleIndex) + AudioManager.RandomDisplacement(750); - if (CTimer::GetIsSlowMotionActive()) - AudioManager.m_sQueueSample.m_nFrequency /= 2; - m_asPedComments[m_nActiveBank][m_nIndexMap[m_nActiveBank][0]].m_nProcess = -1; - AudioManager.AddSampleToRequestedQueue(); - } - - // Switch bank - if (m_nActiveBank) { - actualUsedBank = SAMPLEBANK_PED; - m_nActiveBank = SAMPLEBANK_MAIN; - } else { - actualUsedBank = SAMPLEBANK_MAIN; - m_nActiveBank = SAMPLEBANK_PED; - } - comment = m_asPedComments[actualUsedBank]; - for (uint32 i = 0; i < m_nCommentsInBank[actualUsedBank]; i++) { - if (m_asPedComments[actualUsedBank][m_nIndexMap[actualUsedBank][i]].m_nProcess > 0) { - --m_asPedComments[actualUsedBank][m_nIndexMap[actualUsedBank][i]].m_nProcess; - Add(&comment[m_nIndexMap[actualUsedBank][i]]); - } - } - - for (uint32 i = 0; i < NUM_PED_COMMENTS_SLOTS; i++) { - m_nIndexMap[actualUsedBank][i] = NUM_PED_COMMENTS_SLOTS; - } - m_nCommentsInBank[actualUsedBank] = 0; - } -} - cAudioManager::cAudioManager() { m_bIsInitialised = false; @@ -331,6 +51,536 @@ cAudioManager::~cAudioManager() Terminate(); } +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::Terminate() +{ + if (m_bIsInitialised) { + MusicManager.Terminate(); + + for (uint32 i = 0; i < NUM_AUDIOENTITIES; i++) { + m_asAudioEntities[i].m_bIsUsed = false; + m_anAudioEntityIndices[i] = ARRAY_SIZE(m_anAudioEntityIndices); + } + + m_nAudioEntitiesTotal = 0; + m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal = 0; + PreTerminateGameSpecificShutdown(); + + for (uint32 i = 0; i < MAX_SAMPLEBANKS; i++) { + if (SampleManager.IsSampleBankLoaded(i)) + SampleManager.UnloadSampleBank(i); + } + + SampleManager.Terminate(); + + m_bIsInitialised = false; + PostTerminateGameSpecificShutdown(); + } +} + +void +cAudioManager::Service() +{ + GenerateIntegerRandomNumberTable(); + if (m_bTimerJustReset) { + ResetAudioLogicTimers(m_nTimer); + MusicManager.ResetTimers(m_nTimer); + m_bTimerJustReset = false; + } + if (m_bIsInitialised) { + m_nPreviousUserPause = m_nUserPause; + m_nUserPause = CTimer::GetIsUserPaused(); + UpdateReflections(); + ServiceSoundEffects(); + MusicManager.Service(); + } +} + +int32 +cAudioManager::CreateEntity(eAudioType type, void *entity) +{ + if (!m_bIsInitialised) + return AEHANDLE_ERROR_NOAUDIOSYS; + if (!entity) + return AEHANDLE_ERROR_NOENTITY; + if (type >= TOTAL_AUDIO_TYPES) + return AEHANDLE_ERROR_BADAUDIOTYPE; + for (uint32 i = 0; i < ARRAY_SIZE(m_asAudioEntities); i++) { + if (!m_asAudioEntities[i].m_bIsUsed) { + m_asAudioEntities[i].m_bIsUsed = true; + m_asAudioEntities[i].m_nStatus = 0; + m_asAudioEntities[i].m_nType = type; + m_asAudioEntities[i].m_pEntity = entity; + m_asAudioEntities[i].m_awAudioEvent[0] = SOUND_NO_SOUND; + m_asAudioEntities[i].m_awAudioEvent[1] = SOUND_NO_SOUND; + m_asAudioEntities[i].m_awAudioEvent[2] = SOUND_NO_SOUND; + m_asAudioEntities[i].m_awAudioEvent[3] = SOUND_NO_SOUND; + m_asAudioEntities[i].m_AudioEvents = 0; + m_anAudioEntityIndices[m_nAudioEntitiesTotal++] = i; + return i; + } + } + return AEHANDLE_ERROR_NOFREESLOT; +} + +void +cAudioManager::DestroyEntity(int32 id) +{ + if (m_bIsInitialised && id >= 0 && id < NUM_AUDIOENTITIES && m_asAudioEntities[id].m_bIsUsed) { + m_asAudioEntities[id].m_bIsUsed = false; + for (int32 i = 0; i < m_nAudioEntitiesTotal; ++i) { + if (id == m_anAudioEntityIndices[i]) { + if (i < NUM_AUDIOENTITIES - 1) + memmove(&m_anAudioEntityIndices[i], &m_anAudioEntityIndices[i + 1], NUM_AUDIOENTITY_EVENTS * (m_nAudioEntitiesTotal - (i + 1))); + m_anAudioEntityIndices[--m_nAudioEntitiesTotal] = NUM_AUDIOENTITIES; + return; + } + } + } +} + +void +cAudioManager::SetEntityStatus(int32 id, uint8 status) +{ + if (m_bIsInitialised && id >= 0 && id < NUM_AUDIOENTITIES && m_asAudioEntities[id].m_bIsUsed) + m_asAudioEntities[id].m_nStatus = status; +} + +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}; + + if (m_bIsInitialised) { + if (index >= 0 && index < NUM_AUDIOENTITIES) { + 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; + } + } + } + } + } +} + +void +cAudioManager::SetEffectsMasterVolume(uint8 volume) const +{ + SampleManager.SetEffectsMasterVolume(volume); +} + +void +cAudioManager::SetMusicMasterVolume(uint8 volume) const +{ + SampleManager.SetMusicMasterVolume(volume); +} + +void +cAudioManager::SetEffectsFadeVol(uint8 volume) const +{ + SampleManager.SetEffectsFadeVolume(volume); +} + +void +cAudioManager::SetMusicFadeVol(uint8 volume) const +{ + SampleManager.SetMusicFadeVolume(volume); +} + +void +cAudioManager::ResetTimers(uint32 time) +{ + if (m_bIsInitialised) { + m_bTimerJustReset = true; + m_nTimer = time; + ClearRequestedQueue(); + if (m_nActiveSampleQueue) { + m_nActiveSampleQueue = 0; + ClearRequestedQueue(); + m_nActiveSampleQueue = 1; + } else { + m_nActiveSampleQueue = 1; + ClearRequestedQueue(); + m_nActiveSampleQueue = 0; + } + ClearActiveSamples(); + ClearMissionAudio(); + SampleManager.StopChannel(policeChannel); + SampleManager.SetEffectsFadeVolume(0); + SampleManager.SetMusicFadeVolume(0); + MusicManager.ResetMusicAfterReload(); +#ifdef AUDIO_OAL + SampleManager.Service(); +#endif + } +} + +void +cAudioManager::DestroyAllGameCreatedEntities() +{ + cAudioScriptObject *entity; + + if (m_bIsInitialised) { + for (uint32 i = 0; i < ARRAY_SIZE(m_asAudioEntities); i++) { + if (m_asAudioEntities[i].m_bIsUsed) { + switch (m_asAudioEntities[i].m_nType) { + case AUDIOTYPE_PHYSICAL: + case AUDIOTYPE_EXPLOSION: + case AUDIOTYPE_WEATHER: + case AUDIOTYPE_CRANE: + case AUDIOTYPE_GARAGE: + case AUDIOTYPE_FIREHYDRANT: + DestroyEntity(i); + break; + case AUDIOTYPE_SCRIPTOBJECT: + entity = (cAudioScriptObject *)m_asAudioEntities[i].m_pEntity; + if (entity) { + delete entity; + m_asAudioEntities[i].m_pEntity = nil; + } + DestroyEntity(i); + break; + default: + break; + } + } + } + m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal = 0; + } +} + +uint8 +cAudioManager::GetNum3DProvidersAvailable() const +{ + if (m_bIsInitialised) + return SampleManager.GetNum3DProvidersAvailable(); + return 0; +} + +char * +cAudioManager::Get3DProviderName(uint8 id) const +{ + if (!m_bIsInitialised) + return nil; + if (id >= SampleManager.GetNum3DProvidersAvailable()) + return nil; + return SampleManager.Get3DProviderName(id); +} + +int8 +cAudioManager::GetCurrent3DProviderIndex() const +{ + if (m_bIsInitialised) + return SampleManager.GetCurrent3DProviderIndex(); + + return -1; +} + +int8 +cAudioManager::SetCurrent3DProvider(uint8 which) +{ + if (!m_bIsInitialised) + return -1; + for (uint8 i = 0; i < m_nActiveSamples + 1; ++i) + SampleManager.StopChannel(i); + ClearRequestedQueue(); + if (m_nActiveSampleQueue == 0) + m_nActiveSampleQueue = 1; + else + m_nActiveSampleQueue = 0; + ClearRequestedQueue(); + ClearActiveSamples(); + int8 current = SampleManager.SetCurrent3DProvider(which); + if (current > 0) { + m_nActiveSamples = SampleManager.GetMaximumSupportedChannels(); + if (m_nActiveSamples > 1) + --m_nActiveSamples; + } + return current; +} + +void +cAudioManager::SetSpeakerConfig(int32 conf) const +{ + SampleManager.SetSpeakerConfig(conf); +} + +bool +cAudioManager::IsMP3RadioChannelAvailable() const +{ + if (m_bIsInitialised) + return SampleManager.IsMP3RadioChannelAvailable(); + + return false; +} + +void +cAudioManager::ReleaseDigitalHandle() const +{ + if (m_bIsInitialised) { + SampleManager.ReleaseDigitalHandle(); + } +} + +void +cAudioManager::ReacquireDigitalHandle() const +{ + if (m_bIsInitialised) { + SampleManager.ReacquireDigitalHandle(); + } +} + +void +cAudioManager::SetDynamicAcousticModelingStatus(bool status) +{ + m_bDynamicAcousticModelingStatus = status; +} + +bool +cAudioManager::CheckForAnAudioFileOnCD() const +{ + return SampleManager.CheckForAnAudioFileOnCD(); +} + +uint8 +cAudioManager::GetCDAudioDriveLetter() const +{ + if (m_bIsInitialised) + return SampleManager.GetCDAudioDriveLetter(); + + return 0; +} + +bool +cAudioManager::IsAudioInitialised() const +{ + return m_bIsInitialised; +} + +void +cAudioManager::ServiceSoundEffects() +{ + m_bFifthFrameFlag = (m_FrameCounter++ % 5) == 0; + if (m_nUserPause && !m_nPreviousUserPause) { + for (int32 i = 0; i < allChannels; i++) + SampleManager.StopChannel(i); + + ClearRequestedQueue(); + if (m_nActiveSampleQueue) { + m_nActiveSampleQueue = 0; + ClearRequestedQueue(); + m_nActiveSampleQueue = 1; + } else { + m_nActiveSampleQueue = 1; + ClearRequestedQueue(); + m_nActiveSampleQueue = 0; + } + ClearActiveSamples(); + } + m_nActiveSampleQueue = m_nActiveSampleQueue != 1; + ProcessReverb(); + ProcessSpecial(); + ClearRequestedQueue(); + InterrogateAudioEntities(); + m_sPedComments.Process(); + ServicePoliceRadio(); + ServiceCollisions(); + AddReleasingSounds(); + ProcessMissionAudio(); +#ifdef GTA_PC + AdjustSamplesVolume(); +#endif + ProcessActiveQueues(); +#ifdef AUDIO_OAL + SampleManager.Service(); +#endif + for (int32 i = 0; i < m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal; ++i) { + cAudioScriptObject *object = (cAudioScriptObject *)m_asAudioEntities[m_sAudioScriptObjectManager.m_anScriptObjectEntityIndices[i]].m_pEntity; + delete object; + m_asAudioEntities[m_sAudioScriptObjectManager.m_anScriptObjectEntityIndices[i]].m_pEntity = nil; + DestroyEntity(m_sAudioScriptObjectManager.m_anScriptObjectEntityIndices[i]); + } + m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal = 0; +} + +uint8 +cAudioManager::ComputeVolume(uint8 emittingVolume, float soundIntensity, float distance) const +{ + float newSoundIntensity; + if (soundIntensity <= 0.0f) + return 0; + newSoundIntensity = soundIntensity / 5.0f; + if (newSoundIntensity <= distance) + emittingVolume = sq((soundIntensity - newSoundIntensity - (distance - newSoundIntensity)) / (soundIntensity - newSoundIntensity)) * emittingVolume; + return emittingVolume; +} + +void +cAudioManager::TranslateEntity(Const CVector *in, CVector *out) const +{ + *out = MultiplyInverse(TheCamera.GetMatrix(), *in); +} + +int32 +cAudioManager::ComputePan(float dist, CVector *vec) +{ + const uint8 PanTable[64] = {0, 3, 8, 12, 16, 19, 22, 24, 26, 28, 30, 31, 33, 34, 36, 37, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 49, 50, 51, 52, 53, 53, + 54, 55, 55, 56, 56, 57, 57, 58, 58, 58, 59, 59, 59, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63, 63}; + + int32 index = Min(63, Abs(vec->x / (dist / 64.f))); + + if (vec->x > 0.f) + return Max(20, 63 - PanTable[index]); + return Min(107, PanTable[index] + 63); +} + +int32 +cAudioManager::ComputeDopplerEffectedFrequency(uint32 oldFreq, float position1, float position2, float speedMultiplier) const +{ + uint32 newFreq = oldFreq; + if (!TheCamera.Get_Just_Switched_Status() && speedMultiplier != 0.0f) { + float dist = position2 - position1; + if (dist != 0.0f) { + float speedOfSource = (dist / m_nTimeSpent) * speedMultiplier; + if (m_fSpeedOfSound > Abs(speedOfSource)) { + if (speedOfSource < 0.0f) { + speedOfSource = Max(speedOfSource, -1.5f); + } else { + speedOfSource = Min(speedOfSource, 1.5f); + } + newFreq = (oldFreq * m_fSpeedOfSound) / (speedOfSource + m_fSpeedOfSound); + } + } + } + return newFreq; +} + +int32 +cAudioManager::RandomDisplacement(uint32 seed) const +{ + int32 value; + + static bool bIsEven = true; + static uint32 base = 0; + + if (!seed) + return 0; + + value = m_anRandomTable[(base + seed) % 5] % seed; + base += value; + + if (value % 2) { + bIsEven = !bIsEven; + } + if (!bIsEven) + value = -value; + return value; +} + +void +cAudioManager::InterrogateAudioEntities() +{ + for (int32 i = 0; i < m_nAudioEntitiesTotal; i++) { + ProcessEntity(m_anAudioEntityIndices[i]); + m_asAudioEntities[m_anAudioEntityIndices[i]].m_AudioEvents = 0; + } +} + +void +cAudioManager::AddSampleToRequestedQueue() +{ + int32 calculatedVolume; + uint8 sampleIndex; + bool bReflections; + + if (m_sQueueSample.m_nSampleIndex < TOTAL_AUDIO_SAMPLES) { + calculatedVolume = m_sQueueSample.m_nReleasingVolumeModificator * (maxVolume - m_sQueueSample.m_nVolume); + sampleIndex = m_SampleRequestQueuesStatus[m_nActiveSampleQueue]; + if (sampleIndex >= m_nActiveSamples) { + sampleIndex = m_abSampleQueueIndexTable[m_nActiveSampleQueue][m_nActiveSamples - 1]; + if (m_asSamples[m_nActiveSampleQueue][sampleIndex].m_nCalculatedVolume <= calculatedVolume) + return; + } else { + ++m_SampleRequestQueuesStatus[m_nActiveSampleQueue]; + } + m_sQueueSample.m_nCalculatedVolume = calculatedVolume; + m_sQueueSample.m_bLoopEnded = false; + if (m_sQueueSample.m_bIs2D) { + m_sQueueSample.m_bRequireReflection = false; + m_sQueueSample.m_nLoopsRemaining = 0; + } + if (m_bDynamicAcousticModelingStatus && m_sQueueSample.m_nLoopCount) { + bReflections = m_sQueueSample.m_bRequireReflection; + } else { + bReflections = false; + m_sQueueSample.m_nLoopsRemaining = 0; + } + m_sQueueSample.m_bRequireReflection = false; + + if (!m_bDynamicAcousticModelingStatus) + m_sQueueSample.m_bReverbFlag = false; + + m_asSamples[m_nActiveSampleQueue][sampleIndex] = m_sQueueSample; + + AddDetailsToRequestedOrderList(sampleIndex); + if (bReflections) + AddReflectionsToRequestedQueue(); + } +} void cAudioManager::AddDetailsToRequestedOrderList(uint8 sample) { @@ -348,35 +598,6 @@ cAudioManager::AddDetailsToRequestedOrderList(uint8 sample) m_abSampleQueueIndexTable[m_nActiveSampleQueue][i] = sample; } -void -cAudioManager::AddPlayerCarSample(uint8 emittingVolume, int32 freq, uint32 sample, uint8 unk1, uint8 counter, bool notLooping) -{ - m_sQueueSample.m_nVolume = ComputeVolume(emittingVolume, 50.f, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = counter; - m_sQueueSample.m_nSampleIndex = sample; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 0; - m_sQueueSample.m_nFrequency = freq; - if (notLooping) { - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nReleasingVolumeDivider = 8; - } else { - m_sQueueSample.m_nLoopCount = 1; - } - 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 = 6.0f; - m_sQueueSample.m_fSoundIntensity = 50.0f; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } -} - void cAudioManager::AddReflectionsToRequestedQueue() { @@ -410,6 +631,51 @@ cAudioManager::AddReflectionsToRequestedQueue() } } +void +cAudioManager::UpdateReflections() +{ + const CVector &camPos = TheCamera.GetPosition(); + CColPoint colpoint; + CEntity *ent; + + if (m_FrameCounter % 8 == 0) { + m_avecReflectionsPos[0] = camPos; + m_avecReflectionsPos[0].y += 50.f; + if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[0], colpoint, ent, true, false, false, true, false, true, true)) + m_afReflectionsDistances[0] = Distance(camPos, colpoint.point); + else + m_afReflectionsDistances[0] = 50.0f; + } else if ((m_FrameCounter + 1) % 8 == 0) { + m_avecReflectionsPos[1] = camPos; + m_avecReflectionsPos[1].y -= 50.0f; + if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[1], colpoint, ent, true, false, false, true, false, true, true)) + m_afReflectionsDistances[1] = Distance(camPos, colpoint.point); + else + m_afReflectionsDistances[1] = 50.0f; + } else if ((m_FrameCounter + 2) % 8 == 0) { + m_avecReflectionsPos[2] = camPos; + m_avecReflectionsPos[2].x -= 50.0f; + if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[2], colpoint, ent, true, false, false, true, false, true, true)) + m_afReflectionsDistances[2] = Distance(camPos, colpoint.point); + else + m_afReflectionsDistances[2] = 50.0f; + } else if ((m_FrameCounter + 3) % 8 == 0) { + m_avecReflectionsPos[3] = camPos; + m_avecReflectionsPos[3].x += 50.0f; + if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[3], colpoint, ent, true, false, false, true, false, true, true)) + m_afReflectionsDistances[3] = Distance(camPos, colpoint.point); + else + m_afReflectionsDistances[3] = 50.0f; + } else if ((m_FrameCounter + 4) % 8 == 0) { + m_avecReflectionsPos[4] = camPos; + m_avecReflectionsPos[4].z += 50.0f; + if (CWorld::ProcessVerticalLine(camPos, m_avecReflectionsPos[4].z, colpoint, ent, true, false, false, false, true, false, nil)) + m_afReflectionsDistances[4] = colpoint.point.z - camPos.z; + else + m_afReflectionsDistances[4] = 50.0f; + } +} + void cAudioManager::AddReleasingSounds() { @@ -459,3064 +725,6 @@ cAudioManager::AddReleasingSounds() } } -void -cAudioManager::AddSampleToRequestedQueue() -{ - int32 calculatedVolume; - uint8 sampleIndex; - bool bReflections; - - if (m_sQueueSample.m_nSampleIndex < TOTAL_AUDIO_SAMPLES) { - calculatedVolume = m_sQueueSample.m_nReleasingVolumeModificator * (maxVolume - m_sQueueSample.m_nVolume); - sampleIndex = m_SampleRequestQueuesStatus[m_nActiveSampleQueue]; - if (sampleIndex >= m_nActiveSamples) { - sampleIndex = m_abSampleQueueIndexTable[m_nActiveSampleQueue][m_nActiveSamples - 1]; - if (m_asSamples[m_nActiveSampleQueue][sampleIndex].m_nCalculatedVolume <= calculatedVolume) - return; - } else { - ++m_SampleRequestQueuesStatus[m_nActiveSampleQueue]; - } - m_sQueueSample.m_nCalculatedVolume = calculatedVolume; - m_sQueueSample.m_bLoopEnded = false; - if (m_sQueueSample.m_bIs2D) { - m_sQueueSample.m_bRequireReflection = false; - m_sQueueSample.m_nLoopsRemaining = 0; - } - if (m_bDynamicAcousticModelingStatus && m_sQueueSample.m_nLoopCount) { - bReflections = m_sQueueSample.m_bRequireReflection; - } else { - bReflections = false; - m_sQueueSample.m_nLoopsRemaining = 0; - } - m_sQueueSample.m_bRequireReflection = false; - - if (!m_bDynamicAcousticModelingStatus) - m_sQueueSample.m_bReverbFlag = false; - - m_asSamples[m_nActiveSampleQueue][sampleIndex] = m_sQueueSample; - - AddDetailsToRequestedOrderList(sampleIndex); - if (bReflections) - AddReflectionsToRequestedQueue(); - } -} - -void -cAudioManager::CalculateDistance(bool &distCalculated, float dist) -{ - if (!distCalculated) { - m_sQueueSample.m_fDistance = Sqrt(dist); - distCalculated = true; - } -} - -bool -cAudioManager::CheckForAnAudioFileOnCD() const -{ - return SampleManager.CheckForAnAudioFileOnCD(); -} - -void -cAudioManager::ClearActiveSamples() -{ - for (int32 i = 0; i < m_nActiveSamples; i++) { - m_asActiveSamples[i].m_nEntityIndex = AEHANDLE_NONE; - m_asActiveSamples[i].m_nCounter = 0; - m_asActiveSamples[i].m_nSampleIndex = NO_SAMPLE; - m_asActiveSamples[i].m_nBankIndex = SAMPLEBANK_INVALID; - m_asActiveSamples[i].m_bIs2D = false; - m_asActiveSamples[i].m_nReleasingVolumeModificator = 5; - m_asActiveSamples[i].m_nFrequency = 0; - m_asActiveSamples[i].m_nVolume = 0; - m_asActiveSamples[i].m_nEmittingVolume = 0; - m_asActiveSamples[i].m_fDistance = 0.0f; - m_asActiveSamples[i].m_bIsProcessed = false; - m_asActiveSamples[i].m_bLoopEnded = false; - m_asActiveSamples[i].m_nLoopCount = 1; - m_asActiveSamples[i].m_nLoopStart = 0; - m_asActiveSamples[i].m_nLoopEnd = -1; - m_asActiveSamples[i].m_fSpeedMultiplier = 0.0f; - m_asActiveSamples[i].m_fSoundIntensity = 200.0f; - m_asActiveSamples[i].m_nOffset = 63; - m_asActiveSamples[i].m_bReleasingSoundFlag = false; - m_asActiveSamples[i].m_nCalculatedVolume = 0; - m_asActiveSamples[i].m_nReleasingVolumeDivider = 0; - m_asActiveSamples[i].m_nVolumeChange = -1; - m_asActiveSamples[i].m_vecPos = {0.0f, 0.0f, 0.0f}; - m_asActiveSamples[i].m_bReverbFlag = false; - m_asActiveSamples[i].m_nLoopsRemaining = 0; - m_asActiveSamples[i].m_bRequireReflection = false; - } -} - -void -cAudioManager::ClearMissionAudio() -{ - if (m_bIsInitialised) { - 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; - } -} - -void -cAudioManager::ClearRequestedQueue() -{ - for (int32 i = 0; i < m_nActiveSamples; i++) { - m_abSampleQueueIndexTable[m_nActiveSampleQueue][i] = m_nActiveSamples; - } - m_SampleRequestQueuesStatus[m_nActiveSampleQueue] = 0; -} - -int32 -cAudioManager::ComputeDopplerEffectedFrequency(uint32 oldFreq, float position1, float position2, float speedMultiplier) const -{ - uint32 newFreq = oldFreq; - if (!TheCamera.Get_Just_Switched_Status() && speedMultiplier != 0.0f) { - float dist = position2 - position1; - if (dist != 0.0f) { - float speedOfSource = (dist / m_nTimeSpent) * speedMultiplier; - if (m_fSpeedOfSound > Abs(speedOfSource)) { - if (speedOfSource < 0.0f) { - speedOfSource = Max(speedOfSource, -1.5f); - } else { - speedOfSource = Min(speedOfSource, 1.5f); - } - newFreq = (oldFreq * m_fSpeedOfSound) / (speedOfSource + m_fSpeedOfSound); - } - } - } - return newFreq; -} - -int32 -cAudioManager::ComputePan(float dist, CVector *vec) -{ - int32 index = Min(63, Abs(vec->x / (dist / 64.f))); - - if (vec->x > 0.f) - return Max(20, 63 - panTable[index]); - return Min(107, panTable[index] + 63); -} - -uint8 -cAudioManager::ComputeVolume(uint8 emittingVolume, float soundIntensity, float distance) const -{ - float newSoundIntensity; - if (soundIntensity <= 0.0f) - return 0; - newSoundIntensity = soundIntensity / 5.0f; - if (newSoundIntensity <= distance) - emittingVolume = sq((soundIntensity - newSoundIntensity - (distance - newSoundIntensity)) / (soundIntensity - newSoundIntensity)) * emittingVolume; - return emittingVolume; -} - -int32 -cAudioManager::CreateEntity(int32 type, void *entity) -{ - if (!m_bIsInitialised) - return AEHANDLE_ERROR_NOAUDIOSYS; - if (!entity) - return AEHANDLE_ERROR_NOENTITY; - if (type >= TOTAL_AUDIO_TYPES) - return AEHANDLE_ERROR_BADAUDIOTYPE; - for (uint32 i = 0; i < ARRAY_SIZE(m_asAudioEntities); i++) { - if (!m_asAudioEntities[i].m_bIsUsed) { - m_asAudioEntities[i].m_bIsUsed = true; - m_asAudioEntities[i].m_nStatus = 0; - m_asAudioEntities[i].m_nType = (eAudioType)type; - m_asAudioEntities[i].m_pEntity = entity; - m_asAudioEntities[i].m_awAudioEvent[0] = SOUND_NO_SOUND; - m_asAudioEntities[i].m_awAudioEvent[1] = SOUND_NO_SOUND; - m_asAudioEntities[i].m_awAudioEvent[2] = SOUND_NO_SOUND; - m_asAudioEntities[i].m_awAudioEvent[3] = SOUND_NO_SOUND; - m_asAudioEntities[i].m_AudioEvents = 0; - m_anAudioEntityIndices[m_nAudioEntitiesTotal++] = i; - return i; - } - } - return AEHANDLE_ERROR_NOFREESLOT; -} - -void -cAudioManager::DestroyAllGameCreatedEntities() -{ - cAudioScriptObject *entity; - - if (m_bIsInitialised) { - for (uint32 i = 0; i < ARRAY_SIZE(m_asAudioEntities); i++) { - if (m_asAudioEntities[i].m_bIsUsed) { - switch (m_asAudioEntities[i].m_nType) { - case AUDIOTYPE_PHYSICAL: - case AUDIOTYPE_EXPLOSION: - case AUDIOTYPE_WEATHER: - case AUDIOTYPE_CRANE: - case AUDIOTYPE_GARAGE: - case AUDIOTYPE_FIREHYDRANT: - DestroyEntity(i); - break; - case AUDIOTYPE_SCRIPTOBJECT: - entity = (cAudioScriptObject *)m_asAudioEntities[i].m_pEntity; - if (entity) { - delete entity; - m_asAudioEntities[i].m_pEntity = nil; - } - DestroyEntity(i); - break; - default: - break; - } - } - } - m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal = 0; - } -} - -void -cAudioManager::DestroyEntity(int32 id) -{ - if (m_bIsInitialised && id >= 0 && id < totalAudioEntitiesSlots && m_asAudioEntities[id].m_bIsUsed) { - m_asAudioEntities[id].m_bIsUsed = false; - for (int32 i = 0; i < m_nAudioEntitiesTotal; ++i) { - if (id == m_anAudioEntityIndices[i]) { - if (i < totalAudioEntitiesSlots - 1) - memmove(&m_anAudioEntityIndices[i], &m_anAudioEntityIndices[i + 1], NUM_AUDIOENTITY_EVENTS * (m_nAudioEntitiesTotal - (i + 1))); - m_anAudioEntityIndices[--m_nAudioEntitiesTotal] = totalAudioEntitiesSlots; - return; - } - } - } -} - -void -cAudioManager::DoJumboVolOffset() const -{ - if (!(m_FrameCounter % (m_anRandomTable[0] % 6 + 3))) - gJumboVolOffsetPercentage = m_anRandomTable[1] % 60; -} - -uint32 -cAudioManager::GetPlayerTalkSfx(int16 sound) -{ - 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; - } - return sfx; -} - -uint32 -cAudioManager::GetCopTalkSfx(int16 sound) -{ - 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; -} - -uint32 -cAudioManager::GetSwatTalkSfx(int16 sound) -{ - 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); - } - - return (SFX_SWAT_VOICE_2_CHASE_1 - SFX_SWAT_VOICE_1_CHASE_1) * (m_sQueueSample.m_nEntityIndex % 4) + sfx; -} - -uint32 -cAudioManager::GetFBITalkSfx(int16 sound) -{ - 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); - } - - return (SFX_FBI_VOICE_2_CHASE_1 - SFX_FBI_VOICE_1_CHASE_1) * (m_sQueueSample.m_nEntityIndex % 3) + sfx; -} - -uint32 -cAudioManager::GetArmyTalkSfx(int16 sound) -{ - 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); - - return (SFX_ARMY_VOICE_2_CHASE_1 - SFX_ARMY_VOICE_1_CHASE_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; -} - -uint32 -cAudioManager::GetMedicTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetFiremanTalkSfx(int16 sound) -{ - return GetGenericMaleTalkSfx(sound); -} - -uint32 -cAudioManager::GetNormalMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; - default: - return GetGenericMaleTalkSfx(sound); - } - return sfx; -} - -uint32 -cAudioManager::GetTaxiDriverTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetPimpTalkSfx(int16 sound) -{ - 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; -} - -uint32 -cAudioManager::GetMafiaTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - 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; -} - -uint32 -cAudioManager::GetDiabloTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - 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; -} - -uint32 -cAudioManager::GetYardieTalkSfx(int16 sound) -{ - 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; -} - -uint32 -cAudioManager::GetColumbianTalkSfx(int16 sound) -{ - 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); - } - 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) -{ - 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; - } - 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) -{ - 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; -} - -uint32 -cAudioManager::GetWhiteCriminalTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetMaleNo2TalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetBlackProjectMaleTalkSfx(int16 sound, int32 model) -{ - 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); - default: - return GetGenericMaleTalkSfx(sound); - } - - 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) -{ - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetBlackFatMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetBlackCasualFemaleTalkSfx(int16 sound) -{ - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetWhiteCasualFemaleTalkSfx(int16 sound) -{ - 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; -} - -uint32 -cAudioManager::GetFemaleNo3TalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetBlackFatFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetWhiteFatFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetBlackFemaleProstituteTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetWhiteFemaleProstituteTalkSfx(int16 sound) -{ - 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) -{ - 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; -} - -uint32 -cAudioManager::GetBlackProjectFemaleYoungTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetChinatownMaleOldTalkSfx(int16 sound) -{ - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetChinatownMaleYoungTalkSfx(int16 sound) -{ - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetChinatownFemaleOldTalkSfx(int16 sound) -{ - 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); - } - 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); - } - 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); - } - 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); - } - 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); - } - 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); - } - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetScumMaleTalkSfx(int16 sound) -{ - 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; -} - -uint32 -cAudioManager::GetScumFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetWhiteWorkerMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - 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; -} - -uint32 -cAudioManager::GetBusinessMaleYoungTalkSfx(int16 sound, int32 model) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - - 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); - } - - 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); - } - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetSupermodelFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetStewardMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - 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; -} - -uint32 -cAudioManager::GetFanMaleTalkSfx(int16 sound, int32 model) -{ - 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); - } - - if (model == MI_FAN_MAN2) - sfx += (SFX_FOOTBALL_MALE_VOICE_2_DRIVER_ABUSE_1 - SFX_FOOTBALL_MALE_VOICE_1_DRIVER_ABUSE_1); - return sfx; -} - -uint32 -cAudioManager::GetFanFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetHospitalFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetWhiteConstructionWorkerTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetBlackConstructionWorkerTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetShopperFemaleTalkSfx(int16 sound, int32 model) -{ - 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 (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) -{ - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetStudentFemaleTalkSfx(int16 sound) -{ - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetCasualMaleOldTalkSfx(int16 sound) -{ - return GetGenericMaleTalkSfx(sound); -} - -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); - } - - return GetGenericMaleTalkSfx(sound); -} -uint32 -cAudioManager::GetEightTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetFrankieTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetMistyTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; - } - 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; -} - -uint32 -cAudioManager::GetSecurityGuardTalkSfx(int16 sound) -{ - 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); -#endif - break; - default: - return GetGenericMaleTalkSfx(sound); - } - 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) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; - } - return sfx; -} - -uint32 -cAudioManager::GetGenericFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; - } - return sfx; -} - -void -cAudioManager::GenerateIntegerRandomNumberTable() -{ - 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(); - - return 0; -} - -int8 -cAudioManager::GetCurrent3DProviderIndex() const -{ - if (m_bIsInitialised) - return SampleManager.GetCurrent3DProviderIndex(); - - return -1; -} - -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); -} - -int32 -cAudioManager::GetJumboTaxiFreq() const -{ - return (60.833f * m_sQueueSample.m_fDistance) + 22050; -} - -bool -cAudioManager::GetMissionAudioLoadingStatus() const -{ - if (m_bIsInitialised) - return m_sMissionAudio.m_nLoadingStatus; - - return true; -} - -uint8 -cAudioManager::GetNum3DProvidersAvailable() const -{ - if (m_bIsInitialised) - return SampleManager.GetNum3DProvidersAvailable(); - return 0; -} - -int32 -cAudioManager::GetPedCommentSfx(CPed *ped, int32 sound) -{ - if (ped->IsPlayer()) - return GetPlayerTalkSfx(sound); - - 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); - } -} - -void -cAudioManager::GetPhrase(uint32 *phrase, uint32 *prevPhrase, uint32 sample, uint32 maxOffset) const -{ - *phrase = sample + m_anRandomTable[m_sQueueSample.m_nEntityIndex & 3] % maxOffset; - - // 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; -} - -bool -cAudioManager::IsMP3RadioChannelAvailable() const -{ - if (m_bIsInitialised) - return SampleManager.IsMP3RadioChannelAvailable(); - - return false; -} - -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: - 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}; - - 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; - } - } - } - } - } -} - -void -cAudioManager::PlayerJustGotInCar() const -{ - if (m_bIsInitialised) { - bPlayerJustEnteredCar = true; - } -} - -void -cAudioManager::PlayerJustLeftCar(void) const -{ - // UNUSED: This is a perfectly empty function. -} - -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() { @@ -3688,6088 +896,57 @@ cAudioManager::ProcessActiveQueues() } } -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; - 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(emittingVolume, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 0; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_bReverbFlag = true; - 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_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } -} - -void -cAudioManager::ProcessMissionAudio() -{ - float dist; - uint8 emittingVol; - uint8 pan; - float distSquared; - CVector vec; - - static uint8 nCheckPlayingDelay = 0; - static uint8 nFramesUntilFailedLoad = 0; - static uint8 nFramesForPretendPlaying = 0; - - if (m_bIsInitialised) { - if (m_sMissionAudio.m_nSampleIndex != NO_SAMPLE) { - switch (m_sMissionAudio.m_nLoadingStatus) { - case LOADING_STATUS_NOT_LOADED: - SampleManager.PreloadStreamedFile(m_sMissionAudio.m_nSampleIndex, 1); - m_sMissionAudio.m_nLoadingStatus = LOADING_STATUS_LOADED; - nFramesUntilFailedLoad = 0; - return; - case LOADING_STATUS_LOADED: - if (!m_sMissionAudio.m_bIsPlayed) - return; - if (g_bMissionAudioLoadFailed) { - if (m_bTimerJustReset) { - ClearMissionAudio(); - SampleManager.StopStreamedFile(1); - nFramesForPretendPlaying = 0; - nCheckPlayingDelay = 0; - nFramesUntilFailedLoad = 0; - } else if (!m_nUserPause) { - if (++nFramesForPretendPlaying < 120) { - m_sMissionAudio.m_nPlayStatus = PLAY_STATUS_PLAYING; - } else { - m_sMissionAudio.m_nPlayStatus = PLAY_STATUS_FINISHED; - m_sMissionAudio.m_nSampleIndex = NO_SAMPLE; - } - } - } else { - if (m_sMissionAudio.m_nPlayStatus) { - if (m_sMissionAudio.m_nPlayStatus != PLAY_STATUS_PLAYING) - return; - if (m_bTimerJustReset) { - ClearMissionAudio(); - SampleManager.StopStreamedFile(1); - return; - } - if (MissionScriptAudioUsesPoliceChannel(m_sMissionAudio.m_nSampleIndex)) { - if (!m_nUserPause) { - if (nCheckPlayingDelay) { - --nCheckPlayingDelay; - } else if (GetMissionScriptPoliceAudioPlayingStatus() == PLAY_STATUS_FINISHED || - m_sMissionAudio.m_nMissionAudioCounter-- == 0) { - m_sMissionAudio.m_nPlayStatus = PLAY_STATUS_FINISHED; - m_sMissionAudio.m_nSampleIndex = NO_SAMPLE; - SampleManager.StopStreamedFile(1); - m_sMissionAudio.m_nMissionAudioCounter = 0; - } - } - } else if (m_sMissionAudio.field_22) { - if (SampleManager.IsStreamPlaying(1) || m_nUserPause || m_nPreviousUserPause) { - if (m_nUserPause) - SampleManager.PauseStream(1, 1); - else - SampleManager.PauseStream(0, 1); - } else { - m_sMissionAudio.m_nPlayStatus = PLAY_STATUS_FINISHED; - m_sMissionAudio.m_nSampleIndex = NO_SAMPLE; - SampleManager.StopStreamedFile(1); - m_sMissionAudio.m_nMissionAudioCounter = 0; - } - } else { - if (m_nUserPause) - return; - if (nCheckPlayingDelay--) { - if (!SampleManager.IsStreamPlaying(1)) - return; - nCheckPlayingDelay = 0; - } - m_sMissionAudio.field_22 = 1; - } - } else { - if (MissionScriptAudioUsesPoliceChannel(m_sMissionAudio.m_nSampleIndex)) { - SetMissionScriptPoliceAudio(m_sMissionAudio.m_nSampleIndex); - } else { - if (m_nUserPause) - SampleManager.PauseStream(1, 1); - if (m_sMissionAudio.m_bPredefinedProperties) { - SampleManager.SetStreamedVolumeAndPan(80, 63, 1, 1); - } else { - distSquared = GetDistanceSquared(m_sMissionAudio.m_vecPos); - if (distSquared >= 2500.f) { - emittingVol = 0; - pan = 63; - } else { - dist = Sqrt(distSquared); - emittingVol = ComputeVolume(80, 50.0f, dist); - TranslateEntity(&m_sMissionAudio.m_vecPos, &vec); - pan = ComputePan(50.f, &vec); - } - SampleManager.SetStreamedVolumeAndPan(emittingVol, pan, 1, 1); - } - SampleManager.StartPreloadedStreamedFile(1); - } - m_sMissionAudio.m_nPlayStatus = PLAY_STATUS_PLAYING; - nCheckPlayingDelay = 30; - } - } - break; - case 2: - if (++nFramesUntilFailedLoad >= 90) { - nFramesForPretendPlaying = 0; - g_bMissionAudioLoadFailed = true; - nFramesUntilFailedLoad = 0; - m_sMissionAudio.m_nLoadingStatus = LOADING_STATUS_LOADED; - } - return; - default: - return; - } - } - } -} - -void -cAudioManager::ProcessModelCarEngine(cVehicleParams *params) -{ - CAutomobile *automobile; - float allowedVelocity; - int32 emittingVol; - float velocityChange; - - if (params->m_fDistance < 900.f) { - automobile = (CAutomobile *)params->m_pVehicle; - if (automobile->bEngineOn) { - if (automobile->m_nWheelsOnGround) { - velocityChange = Abs(params->m_fVelocityChange); - } else { - if (automobile->m_nDriveWheelsOnGround) - automobile->m_fGasPedalAudio = automobile->m_fGasPedalAudio * 0.4f; - velocityChange = automobile->m_fGasPedalAudio * params->m_pTransmission->fMaxVelocity; - } - if (velocityChange > 0.001f) { - allowedVelocity = 0.5f * params->m_pTransmission->fMaxVelocity; - if (velocityChange < allowedVelocity) - emittingVol = (90.f * velocityChange / allowedVelocity); - else - emittingVol = 90; - 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) { - m_sQueueSample.m_nCounter = 2; - m_sQueueSample.m_nSampleIndex = SFX_REMOTE_CONTROLLED_CAR; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_nFrequency = (11025.f * velocityChange / params->m_pTransmission->fMaxVelocity + 11025.f); - 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 = 3.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - } - } - } -} - -void -cAudioManager::ProcessOneShotScriptObject(uint8 sound) -{ - CPlayerPed *playerPed; - uint8 emittingVolume; - float distSquared; - - cPedParams male; - cPedParams female; - - static uint8 iSound = 0; - - switch (sound) { - case SCRIPT_SOUND_INJURED_PED_MALE_OUCH_S: - case SCRIPT_SOUND_INJURED_PED_MALE_OUCH_L: - male.m_pPed = nil; - male.m_bDistanceCalculated = false; - male.m_fDistance = GetDistanceSquared(m_sQueueSample.m_vecPos); - SetupPedComments(&male, SOUND_INJURED_PED_MALE_OUCH); - return; - case SCRIPT_SOUND_INJURED_PED_FEMALE_OUCH_S: - case SCRIPT_SOUND_INJURED_PED_FEMALE_OUCH_L: - female.m_pPed = nil; - female.m_bDistanceCalculated = false; - female.m_fDistance = GetDistanceSquared(m_sQueueSample.m_vecPos); - SetupPedComments(&female, SOUND_INJURED_PED_FEMALE); - return; - case SCRIPT_SOUND_GATE_START_CLUNK: - case SCRIPT_SOUND_GATE_STOP_CLUNK: - m_sQueueSample.m_fSoundIntensity = 40.0f; - m_sQueueSample.m_nSampleIndex = SFX_COL_GATE; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - if (sound == SCRIPT_SOUND_GATE_START_CLUNK) - m_sQueueSample.m_nFrequency = 10600; - else - m_sQueueSample.m_nFrequency = 9000; - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bRequireReflection = true; - emittingVolume = RandomDisplacement(10) + 50; - break; - case SCRIPT_SOUND_BULLET_HIT_GROUND_1: - case SCRIPT_SOUND_BULLET_HIT_GROUND_2: - case SCRIPT_SOUND_BULLET_HIT_GROUND_3: - m_sQueueSample.m_fSoundIntensity = 50.0f; - m_sQueueSample.m_nSampleIndex = m_anRandomTable[iSound % 5] % 3 + SFX_BULLET_WALL_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 / 32); - m_sQueueSample.m_nReleasingVolumeModificator = 9; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_bIs2D = false; - emittingVolume = m_anRandomTable[2] % 20 + 90; - break; - case SCRIPT_SOUND_110: - case SCRIPT_SOUND_111: - if (SampleManager.IsSampleBankLoaded(0) != 1) - return; - m_sQueueSample.m_fSoundIntensity = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_TRAIN_STATION_ANNOUNCE; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = maxVolume; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_TRAIN_STATION_ANNOUNCE); - m_sQueueSample.m_nReleasingVolumeModificator = 0; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_bIs2D = false; - break; - case SCRIPT_SOUND_PAYPHONE_RINGING: - m_sQueueSample.m_fSoundIntensity = 80.0f; - m_sQueueSample.m_nSampleIndex = SFX_PHONE_RING; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = 80; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_PHONE_RING); - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bRequireReflection = false; - break; - case SCRIPT_SOUND_GLASS_BREAK_L: - m_sQueueSample.m_fSoundIntensity = 60.0f; - m_sQueueSample.m_nSampleIndex = SFX_GLASS_SMASH; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = 70; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_GLASS_SMASH); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_bIs2D = false; - break; - case SCRIPT_SOUND_GLASS_BREAK_S: - m_sQueueSample.m_fSoundIntensity = 60.0f; - m_sQueueSample.m_nSampleIndex = SFX_GLASS_SMASH; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = 60; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_GLASS_SMASH); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_bIs2D = false; - break; - case SCRIPT_SOUND_GLASS_CRACK: - m_sQueueSample.m_fSoundIntensity = 60.0f; - m_sQueueSample.m_nSampleIndex = SFX_GLASS_CRACK; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - emittingVolume = 70; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_GLASS_CRACK); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bRequireReflection = true; - break; - case SCRIPT_SOUND_GLASS_LIGHT_BREAK: - m_sQueueSample.m_fSoundIntensity = 55.0f; - m_sQueueSample.m_nSampleIndex = (m_anRandomTable[4] & 3) + SFX_GLASS_SHARD_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nFrequency = RandomDisplacement(2000) + 19000; - m_sQueueSample.m_nReleasingVolumeModificator = 9; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_bIs2D = false; - emittingVolume = RandomDisplacement(11) + 25; - break; - case SCRIPT_SOUND_BOX_DESTROYED_1: - m_sQueueSample.m_fSoundIntensity = 60.0f; - m_sQueueSample.m_nSampleIndex = SFX_WOODEN_BOX_SMASH; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nFrequency = RandomDisplacement(1500) + 18600; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bRequireReflection = true; - emittingVolume = m_anRandomTable[2] % 20 + 80; - break; - case SCRIPT_SOUND_BOX_DESTROYED_2: - m_sQueueSample.m_fSoundIntensity = 60.0f; - m_sQueueSample.m_nSampleIndex = SFX_CARDBOARD_BOX_SMASH; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nFrequency = RandomDisplacement(1500) + 18600; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bRequireReflection = true; - emittingVolume = m_anRandomTable[2] % 20 + 80; - break; - case SCRIPT_SOUND_METAL_COLLISION: - m_sQueueSample.m_fSoundIntensity = 60.0f; - m_sQueueSample.m_nSampleIndex = m_anRandomTable[3] % 5 + SFX_COL_CAR_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_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bRequireReflection = true; - emittingVolume = m_anRandomTable[2] % 30 + 70; - break; - case SCRIPT_SOUND_TIRE_COLLISION: - m_sQueueSample.m_fSoundIntensity = 60.0f; - m_sQueueSample.m_nSampleIndex = SFX_TYRE_BUMP; - 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_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bRequireReflection = true; - emittingVolume = m_anRandomTable[2] % 30 + 60; - break; - case SCRIPT_SOUND_GUNSHELL_DROP: - playerPed = FindPlayerPed(); - if (playerPed) { - switch (playerPed->m_nSurfaceTouched) { - case SURFACE_GRASS: - case SURFACE_DIRT: - case SURFACE_DIRTTRACK: - case SURFACE_SCAFFOLD: - case SURFACE_FLESH: - case SURFACE_SAND: - case SURFACE_TIRE: - case SURFACE_HEDGE: - m_sQueueSample.m_nSampleIndex = SFX_BULLET_SHELL_HIT_GROUND_2; - m_sQueueSample.m_nFrequency = RandomDisplacement(500) + 11000; - m_sQueueSample.m_nReleasingVolumeModificator = 18; - m_sQueueSample.m_fSoundIntensity = 20.0f; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_bIs2D = false; - emittingVolume = m_anRandomTable[2] % 20 + 30; - distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); - if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { - m_sQueueSample.m_fDistance = Sqrt(distSquared); - m_sQueueSample.m_nVolume = ComputeVolume(emittingVolume, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = iSound++; - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_nEmittingVolume = emittingVolume; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = true; - AddSampleToRequestedQueue(); - } - } - return; - case SURFACE_PUDDLE: - return; - default: - break; - } - } - m_sQueueSample.m_nSampleIndex = SFX_BULLET_SHELL_HIT_GROUND_1; - m_sQueueSample.m_nFrequency = RandomDisplacement(750) + 18000; - m_sQueueSample.m_nReleasingVolumeModificator = 15; - m_sQueueSample.m_fSoundIntensity = 20.0f; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_bIs2D = false; - emittingVolume = m_anRandomTable[2] % 20 + 30; - break; - case SCRIPT_SOUND_GUNSHELL_DROP_SOFT: - m_sQueueSample.m_nSampleIndex = SFX_BULLET_SHELL_HIT_GROUND_2; - m_sQueueSample.m_nFrequency = RandomDisplacement(500) + 11000; - m_sQueueSample.m_nReleasingVolumeModificator = 18; - m_sQueueSample.m_fSoundIntensity = 20.0f; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_bIs2D = false; - emittingVolume = m_anRandomTable[2] % 20 + 30; - 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(emittingVolume, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = iSound++; - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_nEmittingVolume = emittingVolume; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = true; - AddSampleToRequestedQueue(); - } - } -} - -void -cAudioManager::ProcessPed(CPhysical *ped) -{ - cPedParams params; - - params.m_pPed = nil; - params.m_bDistanceCalculated = false; - params.m_fDistance = 0.0f; - - m_sQueueSample.m_vecPos = ped->GetPosition(); - - // params.m_bDistanceCalculated = false; - params.m_pPed = (CPed *)ped; - params.m_fDistance = GetDistanceSquared(m_sQueueSample.m_vecPos); - if (ped->GetModelIndex() == MI_FATMALE02) - ProcessPedHeadphones(¶ms); - ProcessPedOneShots(¶ms); -} - -void -cAudioManager::ProcessPedHeadphones(cPedParams *params) -{ - CPed *ped; - CAutomobile *veh; - uint8 emittingVol; - - if (params->m_fDistance < 49.f) { - ped = params->m_pPed; - if (!ped->bIsAimingGun || ped->m_bodyPartBleeding != PED_HEAD) { - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - if (ped->bInVehicle && ped->m_nPedState == PED_DRIVING) { - emittingVol = 10; - veh = (CAutomobile *)ped->m_pMyVehicle; - if (veh && veh->IsCar()) { - for (int32 i = 2; i < ARRAY_SIZE(veh->Doors); i++) { - if (!veh->IsDoorClosed((eDoors)i) || veh->IsDoorMissing((eDoors)i)) { - emittingVol = 42; - break; - } - } - } - } else { - emittingVol = 42; - } - - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, 7.f, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 64; - m_sQueueSample.m_nSampleIndex = SFX_HEADPHONES; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 5; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_HEADPHONES); - 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 = 4.0f; - m_sQueueSample.m_fSoundIntensity = 7.0f; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 5; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - return; - } - } -} - -void -cAudioManager::ProcessPedOneShots(cPedParams *params) -{ - uint8 emittingVol; - int32 sampleIndex; - - CPed *ped = params->m_pPed; - - bool stereo; - int16 sound; - bool noReflection; - CWeapon *weapon; - float maxDist = 0.f; // uninitialized variable - - static uint8 iSound = 21; - - weapon = params->m_pPed->GetWeapon(); - for (uint32 i = 0; i < m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_AudioEvents; i++) { - noReflection = false; - stereo = false; - m_sQueueSample.m_bRequireReflection = false; - sound = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i]; - switch (sound) { - case SOUND_STEP_START: - case SOUND_STEP_END: - if (!params->m_pPed->bIsLooking) { - emittingVol = m_anRandomTable[3] % 15 + 45; - if (FindPlayerPed() != m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_pEntity) - emittingVol /= 2; - maxDist = 400.f; - switch (params->m_pPed->m_nSurfaceTouched) { - case SURFACE_GRASS: - sampleIndex = m_anRandomTable[1] % 5 + SFX_FOOTSTEP_GRASS_1; - break; - case SURFACE_DIRT: - case SURFACE_DIRTTRACK: - sampleIndex = m_anRandomTable[4] % 5 + SFX_FOOTSTEP_GRAVEL_1; - break; - case SURFACE_METAL6: - case SURFACE_METAL_DOOR: - case SURFACE_BILLBOARD: - case SURFACE_STEEL: - case SURFACE_METAL_POLE: - case SURFACE_STREET_LIGHT: - case SURFACE_METAL14: - case SURFACE_METAL15: - case SURFACE_METAL_FENCE: - case SURFACE_METAL27: - case SURFACE_METAL28: - sampleIndex = m_anRandomTable[0] % 5 + SFX_FOOTSTEP_METAL_1; - break; - case SURFACE_SAND: - sampleIndex = (m_anRandomTable[4] & 3) + SFX_FOOTSTEP_SAND_1; - break; - case SURFACE_PUDDLE: - sampleIndex = (m_anRandomTable[3] & 3) + SFX_FOOTSTEP_WATER_1; - break; - case SURFACE_WOOD: - case SURFACE_WOOD_BOX: - case SURFACE_WOOD_PLANK: - sampleIndex = m_anRandomTable[2] % 5 + SFX_FOOTSTEP_WOOD_1; - break; - case SURFACE_HEDGE: - sampleIndex = m_anRandomTable[2] % 5 + SFX_COL_VEG_1; - break; - default: - sampleIndex = m_anRandomTable[2] % 5 + SFX_FOOTSTEP_CONCRETE_1; - break; - } - m_sQueueSample.m_nSampleIndex = sampleIndex; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i] - 28; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 17); - switch (params->m_pPed->m_nMoveState) { - case PEDMOVE_WALK: - emittingVol /= 4; - m_sQueueSample.m_nFrequency = 9 * m_sQueueSample.m_nFrequency / 10; - break; - case PEDMOVE_RUN: - emittingVol /= 2; - m_sQueueSample.m_nFrequency = 11 * m_sQueueSample.m_nFrequency / 10; - break; - case PEDMOVE_SPRINT: - m_sQueueSample.m_nFrequency = 12 * m_sQueueSample.m_nFrequency / 10; - break; - default: - break; - } - m_sQueueSample.m_nReleasingVolumeModificator = 5; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 20.0f; - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - } - break; - case SOUND_FALL_LAND: - case SOUND_FALL_COLLAPSE: - if (!ped->bIsLooking) { - maxDist = SQR(30); - emittingVol = m_anRandomTable[3] % 20 + 80; - if (ped->m_nSurfaceTouched == SURFACE_PUDDLE) { - m_sQueueSample.m_nSampleIndex = (m_anRandomTable[3] & 3) + SFX_FOOTSTEP_WATER_1; - } else if (sound == SOUND_FALL_LAND) { - m_sQueueSample.m_nSampleIndex = SFX_BODY_LAND; - } else { - m_sQueueSample.m_nSampleIndex = SFX_BODY_LAND_AND_FALL; - } - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 1; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 17); - m_sQueueSample.m_nReleasingVolumeModificator = 2; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - } - break; - case SOUND_FIGHT_PUNCH_33: - m_sQueueSample.m_nSampleIndex = SFX_FIGHT_1; - m_sQueueSample.m_nFrequency = 18000; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound; - stereo = true; - ++iSound; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - maxDist = SQR(30); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[3] % 26 + 100; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - break; - case SOUND_FIGHT_KICK_34: - m_sQueueSample.m_nSampleIndex = SFX_FIGHT_1; - m_sQueueSample.m_nFrequency = 16500; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound; - stereo = true; - ++iSound; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - maxDist = SQR(30); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[3] % 26 + 100; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - break; - case SOUND_FIGHT_HEADBUTT_35: - m_sQueueSample.m_nSampleIndex = SFX_FIGHT_1; - m_sQueueSample.m_nFrequency = 20000; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound; - stereo = true; - ++iSound; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - maxDist = SQR(30); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[3] % 26 + 100; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - break; - case SOUND_FIGHT_PUNCH_36: - m_sQueueSample.m_nSampleIndex = SFX_FIGHT_2; - m_sQueueSample.m_nFrequency = 18000; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound; - stereo = true; - ++iSound; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - maxDist = SQR(30); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[3] % 26 + 100; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - break; - case SOUND_FIGHT_PUNCH_37: - m_sQueueSample.m_nSampleIndex = SFX_FIGHT_2; - m_sQueueSample.m_nFrequency = 16500; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound; - stereo = true; - ++iSound; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - maxDist = SQR(30); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[3] % 26 + 100; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - break; - case SOUND_FIGHT_CLOSE_PUNCH_38: - m_sQueueSample.m_nSampleIndex = SFX_FIGHT_2; - m_sQueueSample.m_nFrequency = 20000; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound; - stereo = true; - ++iSound; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - maxDist = SQR(30); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[3] % 26 + 100; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - break; - case SOUND_FIGHT_PUNCH_39: - m_sQueueSample.m_nSampleIndex = SFX_FIGHT_4; - m_sQueueSample.m_nFrequency = 18000; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound; - stereo = true; - ++iSound; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - maxDist = SQR(30); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[3] % 26 + 100; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - break; - case SOUND_FIGHT_PUNCH_OR_KICK_BELOW_40: - m_sQueueSample.m_nSampleIndex = SFX_FIGHT_4; - m_sQueueSample.m_nFrequency = 16500; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound; - stereo = true; - ++iSound; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - maxDist = SQR(30); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[3] % 26 + 100; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - break; - case SOUND_FIGHT_PUNCH_41: - m_sQueueSample.m_nSampleIndex = SFX_FIGHT_4; - m_sQueueSample.m_nFrequency = 20000; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound; - stereo = true; - ++iSound; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - maxDist = SQR(30); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[3] % 26 + 100; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - break; - case SOUND_FIGHT_PUNCH_FROM_BEHIND_42: - m_sQueueSample.m_nSampleIndex = SFX_FIGHT_5; - m_sQueueSample.m_nFrequency = 18000; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound; - stereo = true; - ++iSound; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - maxDist = SQR(30); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[3] % 26 + 100; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - break; - case SOUND_FIGHT_KNEE_OR_KICK_43: - m_sQueueSample.m_nSampleIndex = SFX_FIGHT_5; - m_sQueueSample.m_nFrequency = 16500; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound; - stereo = true; - ++iSound; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - maxDist = SQR(30); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[3] % 26 + 100; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - break; - case SOUND_FIGHT_KICK_44: - m_sQueueSample.m_nSampleIndex = SFX_FIGHT_5; - m_sQueueSample.m_nFrequency = 20000; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound; - stereo = true; - ++iSound; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - maxDist = SQR(30); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[3] % 26 + 100; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - break; - case SOUND_WEAPON_BAT_ATTACK: - m_sQueueSample.m_nSampleIndex = SFX_BAT_HIT_LEFT; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound++; - stereo = true; - m_sQueueSample.m_nFrequency = RandomDisplacement(2000) + 22000; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - maxDist = SQR(30); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - emittingVol = m_anRandomTable[2] % 20 + 100; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - if (m_bDynamicAcousticModelingStatus) - m_sQueueSample.m_bRequireReflection = true; - else - noReflection = true; - break; - case SOUND_WEAPON_SHOT_FIRED: - weapon = &ped->m_weapons[ped->m_currentWeapon]; - switch (weapon->m_eWeaponType) { - case WEAPONTYPE_COLT45: - m_sQueueSample.m_nSampleIndex = SFX_COLT45_LEFT; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound++; - stereo = true; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_COLT45_LEFT); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 50.0f; - maxDist = SQR(50); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - emittingVol = m_anRandomTable[1] % 10 + 90; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - if (m_bDynamicAcousticModelingStatus) - m_sQueueSample.m_bRequireReflection = true; - else - noReflection = true; - break; - case WEAPONTYPE_UZI: - m_sQueueSample.m_nSampleIndex = SFX_UZI_LEFT; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound++; - stereo = true; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_UZI_LEFT); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 80.0f; - maxDist = SQR(80); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[3] % 15 + 70; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - break; - case WEAPONTYPE_SHOTGUN: - m_sQueueSample.m_nSampleIndex = SFX_SHOTGUN_LEFT; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound++; - stereo = true; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SHOTGUN_LEFT); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 60.0f; - maxDist = 3600.f; - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - emittingVol = m_anRandomTable[2] % 10 + 100; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - if (m_bDynamicAcousticModelingStatus) - m_sQueueSample.m_bRequireReflection = true; - else - noReflection = true; - break; - case WEAPONTYPE_AK47: - m_sQueueSample.m_nSampleIndex = SFX_AK47_LEFT; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound++; - stereo = true; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_AK47_LEFT); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 80.0f; - maxDist = SQR(80); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[1] % 15 + 70; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - break; - case WEAPONTYPE_M16: - m_sQueueSample.m_nSampleIndex = SFX_M16_LEFT; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound++; - stereo = true; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_M16_LEFT); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 80.0f; - maxDist = SQR(80); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[4] % 15 + 70; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - break; - case WEAPONTYPE_SNIPERRIFLE: - m_sQueueSample.m_nSampleIndex = SFX_SNIPER_LEFT; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound++; - stereo = true; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SNIPER_LEFT); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 60.0f; - maxDist = 3600.f; - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - emittingVol = m_anRandomTable[4] % 10 + 110; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - if (m_bDynamicAcousticModelingStatus) - m_sQueueSample.m_bRequireReflection = true; - else - noReflection = true; - break; - case WEAPONTYPE_ROCKETLAUNCHER: - m_sQueueSample.m_nSampleIndex = SFX_ROCKET_LEFT; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound++; - stereo = true; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_ROCKET_LEFT); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 90.0f; - maxDist = 8100.f; - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - emittingVol = m_anRandomTable[0] % 20 + 80; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - if (m_bDynamicAcousticModelingStatus) - m_sQueueSample.m_bRequireReflection = true; - else - noReflection = true; - break; - case WEAPONTYPE_FLAMETHROWER: - m_sQueueSample.m_nSampleIndex = SFX_FLAMETHROWER_LEFT; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 9; - emittingVol = 90; - m_sQueueSample.m_nFrequency = (10 * m_sQueueSample.m_nEntityIndex & 2047) + SampleManager.GetSampleBaseFrequency(SFX_FLAMETHROWER_LEFT); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 4.0f; - m_sQueueSample.m_fSoundIntensity = 60.0f; - maxDist = 3600.f; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nEmittingVolume = 90; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 6; - if (m_bDynamicAcousticModelingStatus) - m_sQueueSample.m_bRequireReflection = true; - else - noReflection = true; - break; - default: - continue; - } - - break; - case SOUND_WEAPON_RELOAD: - weapon = &ped->m_weapons[ped->m_currentWeapon]; - switch (weapon->m_eWeaponType) { - case WEAPONTYPE_COLT45: - m_sQueueSample.m_nSampleIndex = SFX_PISTOL_RELOAD; - 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; - break; - case WEAPONTYPE_SHOTGUN: - m_sQueueSample.m_nSampleIndex = SFX_AK47_RELOAD; - m_sQueueSample.m_nFrequency = 30290; - break; - case WEAPONTYPE_AK47: - m_sQueueSample.m_nSampleIndex = SFX_AK47_RELOAD; - 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; - case WEAPONTYPE_SNIPERRIFLE: - m_sQueueSample.m_nSampleIndex = SFX_RIFLE_RELOAD; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RIFLE_RELOAD); - break; - case WEAPONTYPE_ROCKETLAUNCHER: - m_sQueueSample.m_nSampleIndex = SFX_ROCKET_RELOAD; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_ROCKET_RELOAD); - break; - default: - continue; - } - emittingVol = 75; - m_sQueueSample.m_nCounter = iSound++; - stereo = true; - m_sQueueSample.m_nFrequency += RandomDisplacement(300); - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nReleasingVolumeModificator = 5; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - maxDist = SQR(30); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = 75; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - break; - case SOUND_WEAPON_AK47_BULLET_ECHO: - case SOUND_WEAPON_UZI_BULLET_ECHO: - case SOUND_WEAPON_M16_BULLET_ECHO: - m_sQueueSample.m_nSampleIndex = SFX_UZI_END_LEFT; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound++; - stereo = true; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_UZI_END_LEFT); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 80.0f; - maxDist = SQR(80); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - emittingVol = m_anRandomTable[4] % 10 + 40; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - if (m_bDynamicAcousticModelingStatus) - m_sQueueSample.m_bRequireReflection = true; - else - noReflection = true; - break; - case SOUND_WEAPON_FLAMETHROWER_FIRE: - m_sQueueSample.m_nSampleIndex = SFX_FLAMETHROWER_START_LEFT; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound++; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_FLAMETHROWER_START_LEFT); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 4.0f; - m_sQueueSample.m_fSoundIntensity = 60.0f; - maxDist = 3600.f; - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - emittingVol = 70; - m_sQueueSample.m_nEmittingVolume = 70; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - break; - case SOUND_WEAPON_HIT_PED: - m_sQueueSample.m_nSampleIndex = SFX_BULLET_PED; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound++; - stereo = true; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_BULLET_PED); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 8); - m_sQueueSample.m_nReleasingVolumeModificator = 7; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 30.0f; - maxDist = SQR(30); - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[0] % 20 + 90; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - break; - case SOUND_SPLASH: - m_sQueueSample.m_nSampleIndex = SFX_SPLASH_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iSound++; - stereo = true; - m_sQueueSample.m_nFrequency = RandomDisplacement(1400) + 20000; - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 40.0f; - maxDist = 1600.f; - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nLoopStart = 0; - emittingVol = m_anRandomTable[2] % 30 + 70; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bRequireReflection = true; - break; - default: - SetupPedComments(params, sound); - continue; - } - - if (stereo && iSound > 60) - iSound = 21; - if (params->m_fDistance < maxDist) { - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - if (noReflection) { - if (0.2f * m_sQueueSample.m_fSoundIntensity <= m_sQueueSample.m_fDistance) { - noReflection = 0; - } else { - m_sQueueSample.m_bIs2D = true; - m_sQueueSample.m_nOffset = 0; - } - } - m_sQueueSample.m_bReverbFlag = true; - AddSampleToRequestedQueue(); - if (noReflection) { - m_sQueueSample.m_nOffset = 127; - ++m_sQueueSample.m_nSampleIndex; - if (m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i] != SOUND_WEAPON_SHOT_FIRED || - weapon->m_eWeaponType != WEAPONTYPE_FLAMETHROWER) { - m_sQueueSample.m_nCounter = iSound++; - if (iSound > 60) - iSound = 21; - } else { - ++m_sQueueSample.m_nCounter; - } - AddSampleToRequestedQueue(); - } - } - } - } -} - -void -cAudioManager::ProcessPhysical(int32 id) -{ - CPhysical *entity = (CPhysical *)m_asAudioEntities[id].m_pEntity; - if (entity) { - switch (entity->GetType()) { - case ENTITY_TYPE_VEHICLE: - ProcessVehicle((CVehicle *)m_asAudioEntities[id].m_pEntity); - break; - case ENTITY_TYPE_PED: - ProcessPed((CPhysical *)m_asAudioEntities[id].m_pEntity); - break; - default: - return; - } - } -} - -void -cAudioManager::ProcessPlane(cVehicleParams *params) -{ - switch (params->m_nIndex) { - case AIRTRAIN: - ProcessJumbo(params); - break; - case DEADDODO: - ProcessCesna(params); - break; - default: - debug("Plane Model Id is %d\n, ", params->m_pVehicle->GetModelIndex()); - break; - } -} - -struct tVehicleSampleData { - eSfxSample m_nAccelerationSampleIndex; - uint8 m_bEngineSoundType; - eSfxSample m_nHornSample; - int32 m_nHornFrequency; - uint8 m_nSirenOrAlarmSample; - int32 m_nSirenOrAlarmFrequency; - uint8 m_bDoorType; -}; - -const tVehicleSampleData aVehicleSettings[70] = {{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}, - {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_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_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_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_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}}; - -void -cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *automobile) -{ - static int32 GearFreqAdj[] = {6000, 6000, 3400, 1200, 0, -1000}; - - cTransmission *transmission; - float velocityChange; - float relativeVelocityChange; - float accelerationMultipler; - uint8 wheelInUseCounter; - float time; - int baseFreq; - uint8 vol; - int gearNr; - int32 freq; - - int freqModifier; - int soundOffset; - uint8 engineSoundType; - int32 accelerateState; - bool channelUsed; - char lostTraction; - bool processedAccelSampleStopped; - uint8 currentGear; - float gasPedalAudio; - CVector pos; - - static int16 LastAccel = 0; - static int16 LastBrake = 0; - static uint8 CurrentPretendGear = 1; - static bool bLostTractionLastFrame = false; - static bool bHandbrakeOnLastFrame = 0; - static int32 nCruising = 0; - static bool bAccelSampleStopped = true; - - lostTraction = 0; - processedAccelSampleStopped = 0; - if (bPlayerJustEnteredCar) { - bAccelSampleStopped = true; - bPlayerJustEnteredCar = false; - nCruising = 0; - LastAccel = 0; - bLostTractionLastFrame = false; - LastBrake = 0; - bHandbrakeOnLastFrame = 0; - CurrentPretendGear = 1; - } - if (CReplay::IsPlayingBack()) { - accelerateState = 255.f * Max(0.0f, Min(1.0f, automobile->m_fGasPedal)); - } else { - accelerateState = Pads->GetAccelerate(); - } - channelUsed = SampleManager.GetChannelUsedFlag(m_nActiveSamples); - transmission = params->m_pTransmission; - velocityChange = params->m_fVelocityChange; - relativeVelocityChange = 2.0f * velocityChange / transmission->fMaxVelocity; - - accelerationMultipler = Min(Min(1.f, relativeVelocityChange), 0.f); - gasPedalAudio = accelerationMultipler; - currentGear = params->m_pVehicle->m_nCurrentGear; - - if (transmission->nDriveType == '4') { - wheelInUseCounter = 0; - for (uint8 i = 0; i < ARRAY_SIZE(automobile->m_aWheelState); i++) { - if (automobile->m_aWheelState[i]) - ++wheelInUseCounter; - } - if (wheelInUseCounter > 2) - lostTraction = 1; - } else if (transmission->nDriveType == 'F') { - if ((automobile->m_aWheelState[0] || automobile->m_aWheelState[2]) && (automobile->m_aWheelState[1] || automobile->m_aWheelState[3])) { - lostTraction = 1; - } - } else if (transmission->nDriveType == 'R' && (automobile->m_aWheelState[1] || automobile->m_aWheelState[3])) { - lostTraction = 1; - } - if (0.0f != velocityChange) { - time = params->m_pVehicle->m_vecMoveSpeed.z / velocityChange; - if (time <= 0.0f) { - freqModifier = Max(-0.2f, time) * -15000.f; - } else { - freqModifier = -(Min(0.2f, time) * 15000.f); - } - if (params->m_fVelocityChange < -0.001f) - freqModifier = -freqModifier; - } else { - freqModifier = 0; - } - engineSoundType = aVehicleSettings[params->m_nIndex].m_bEngineSoundType; - soundOffset = 3 * (engineSoundType - 1); - if (accelerateState <= 0) { - if (params->m_fVelocityChange < -0.001f) { - if (channelUsed) { - SampleManager.StopChannel(m_nActiveSamples); - bAccelSampleStopped = true; - } - if (!automobile->m_nWheelsOnGround || automobile->bIsHandbrakeOn || lostTraction) { - gasPedalAudio = automobile->m_fGasPedalAudio; - } else { - gasPedalAudio = Min(1.0f, params->m_fVelocityChange / params->m_pTransmission->fMaxReverseVelocity); - } - gasPedalAudio = Max(0.0f, gasPedalAudio); - automobile->m_fGasPedalAudio = gasPedalAudio; - } else if (LastAccel > 0) { - if (channelUsed) { - SampleManager.StopChannel(m_nActiveSamples); - bAccelSampleStopped = true; - } - nCruising = 0; - if (!automobile->m_nWheelsOnGround || automobile->bIsHandbrakeOn || lostTraction || - params->m_fVelocityChange >= 0.01f && automobile->m_fGasPedalAudio > 0.2f) { - automobile->m_fGasPedalAudio = automobile->m_fGasPedalAudio * 0.6f; - gasPedalAudio = automobile->m_fGasPedalAudio; - } - if (gasPedalAudio > 0.05f) { - freq = (5000.f * (gasPedalAudio - 0.05f) * 20.f / 19) + 19000; - if (engineSoundType == 6) - freq /= 2; - AddPlayerCarSample((25.f * (gasPedalAudio - 0.05f) * 20.f / 19) + 40, freq, (soundOffset + SFX_CAR_FINGER_OFF_ACCEL_1), engineSoundType, 63, 0); - } - } - freq = (10000.f * gasPedalAudio) + 22050; - if (engineSoundType == 6) - freq /= 2; - AddPlayerCarSample(110 - (40.f * gasPedalAudio), freq, (engineSoundType + SFX_CAR_REV_10), 0, 52, 1); - - CurrentPretendGear = Max(1, currentGear); - LastAccel = accelerateState; - - bHandbrakeOnLastFrame = automobile->bIsHandbrakeOn; - bLostTractionLastFrame = lostTraction; - return; - } - if (!nCruising) { - if (accelerateState < 150 || !automobile->m_nWheelsOnGround || automobile->bIsHandbrakeOn || lostTraction || - currentGear < 2 && velocityChange - automobile->m_fVelocityChangeForAudio < 0.01f) { // here could be used abs - if (!automobile->m_nWheelsOnGround || automobile->bIsHandbrakeOn || lostTraction) { - if (!automobile->m_nWheelsOnGround && automobile->m_nDriveWheelsOnGround || - (automobile->bIsHandbrakeOn && !bHandbrakeOnLastFrame || lostTraction && !bLostTractionLastFrame) && automobile->m_nWheelsOnGround) { - automobile->m_fGasPedalAudio = automobile->m_fGasPedalAudio * 0.6f; - } - freqModifier = 0; - baseFreq = (15000.f * automobile->m_fGasPedalAudio) + 14000; - vol = (25.0f * automobile->m_fGasPedalAudio) + 60; - } else { - baseFreq = (8000.f * accelerationMultipler) + 16000; - vol = (25.0f * accelerationMultipler) + 60; - automobile->m_fGasPedalAudio = accelerationMultipler; - } - freq = freqModifier + baseFreq; - if (engineSoundType == 6) - freq /= 2; - if (channelUsed) { - SampleManager.StopChannel(m_nActiveSamples); - bAccelSampleStopped = true; - } - AddPlayerCarSample(vol, freq, (engineSoundType + SFX_PHONE_RING), 0, 2, 1); - LastAccel = accelerateState; - - bHandbrakeOnLastFrame = automobile->bIsHandbrakeOn; - bLostTractionLastFrame = lostTraction; - return; - } - TranslateEntity(&m_sQueueSample.m_vecPos, &pos); - if (bAccelSampleStopped) { - if (CurrentPretendGear != 1 || currentGear != 2) { - gearNr = currentGear - 1; - if (gearNr < 1) - gearNr = 1; - CurrentPretendGear = gearNr; - } - processedAccelSampleStopped = 1; - bAccelSampleStopped = false; - } - if (channelUsed) { - SampleManager.SetChannelEmittingVolume(m_nActiveSamples, 85); - SampleManager.SetChannel3DPosition(m_nActiveSamples, pos.x, pos.y, pos.z); - SampleManager.SetChannel3DDistances(m_nActiveSamples, 50.f, 12.5f); - if (engineSoundType == 6) - freq = (GearFreqAdj[CurrentPretendGear] + freqModifier + 22050) / 2; - else - freq = GearFreqAdj[CurrentPretendGear] + freqModifier + 22050; - SampleManager.SetChannelFrequency(m_nActiveSamples, freq); - if (!channelUsed) { - SampleManager.SetChannelReverbFlag(m_nActiveSamples, m_bDynamicAcousticModelingStatus != 0); - SampleManager.StartChannel(m_nActiveSamples); - } - LastAccel = accelerateState; - - bHandbrakeOnLastFrame = automobile->bIsHandbrakeOn; - bLostTractionLastFrame = lostTraction; - return; - } - if (processedAccelSampleStopped) { - if (!SampleManager.InitialiseChannel(m_nActiveSamples, soundOffset + SFX_CAR_ACCEL_1, 0)) - return; - SampleManager.SetChannelLoopCount(m_nActiveSamples, 1); - SampleManager.SetChannelLoopPoints(m_nActiveSamples, 0, -1); - SampleManager.SetChannelEmittingVolume(m_nActiveSamples, 85); - SampleManager.SetChannel3DPosition(m_nActiveSamples, pos.x, pos.y, pos.z); - SampleManager.SetChannel3DDistances(m_nActiveSamples, 50.f, 12.5f); - freq = GearFreqAdj[CurrentPretendGear] + freqModifier + 22050; - if (engineSoundType == 6) - freq /= 2; - SampleManager.SetChannelFrequency(m_nActiveSamples, freq); - if (!channelUsed) { - SampleManager.SetChannelReverbFlag(m_nActiveSamples, m_bDynamicAcousticModelingStatus != 0); - SampleManager.StartChannel(m_nActiveSamples); - } - LastAccel = accelerateState; - - bHandbrakeOnLastFrame = automobile->bIsHandbrakeOn; - bLostTractionLastFrame = lostTraction; - return; - } - if (CurrentPretendGear < params->m_pTransmission->nNumberOfGears - 1) { - ++CurrentPretendGear; - if (!SampleManager.InitialiseChannel(m_nActiveSamples, soundOffset + SFX_CAR_ACCEL_1, 0)) - return; - SampleManager.SetChannelLoopCount(m_nActiveSamples, 1); - SampleManager.SetChannelLoopPoints(m_nActiveSamples, 0, -1); - SampleManager.SetChannelEmittingVolume(m_nActiveSamples, 85); - SampleManager.SetChannel3DPosition(m_nActiveSamples, pos.x, pos.y, pos.z); - SampleManager.SetChannel3DDistances(m_nActiveSamples, 50.f, 12.5f); - freq = GearFreqAdj[CurrentPretendGear] + freqModifier + 22050; - if (engineSoundType == 6) - freq /= 2; - SampleManager.SetChannelFrequency(m_nActiveSamples, freq); - if (!channelUsed) { - SampleManager.SetChannelReverbFlag(m_nActiveSamples, m_bDynamicAcousticModelingStatus != 0); - SampleManager.StartChannel(m_nActiveSamples); - } - LastAccel = accelerateState; - - bHandbrakeOnLastFrame = automobile->bIsHandbrakeOn; - bLostTractionLastFrame = lostTraction; - return; - } - nCruising = 1; - } - bAccelSampleStopped = true; - if (accelerateState < 150 || !automobile->m_nWheelsOnGround || automobile->bIsHandbrakeOn || lostTraction || - currentGear < params->m_pTransmission->nNumberOfGears - 1) { - nCruising = 0; - } else { - if (accelerateState >= 220 && 0.001f + params->m_fVelocityChange < automobile->m_fVelocityChangeForAudio) { - if (nCruising < 800) - ++nCruising; - } else if (nCruising > 3) { - --nCruising; - } - freq = 27 * nCruising + freqModifier + 22050; - if (engineSoundType == 6) - freq /= 2; - AddPlayerCarSample(85, freq, (soundOffset + SFX_CAR_AFTER_ACCEL_1), engineSoundType, 64, 1); - } - LastAccel = accelerateState; - - bHandbrakeOnLastFrame = automobile->bIsHandbrakeOn; - bLostTractionLastFrame = lostTraction; -} - -void -cAudioManager::ProcessPoliceCellBeatingScriptObject(uint8 sound) -{ - uint32 time = CTimer::GetTimeInMilliseconds(); - int32 sampleIndex; - uint8 emittingVol; - float distSquared; - cPedParams params; - - static uint8 counter = 0; - - if (time > gCellNextTime) { - switch (sound) { - case SCRIPT_SOUND_POLICE_CELL_BEATING_LOOP_S: - m_sQueueSample.m_fSoundIntensity = scriptObjectIntensityS; - break; - case SCRIPT_SOUND_POLICE_CELL_BEATING_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); - if (m_FrameCounter & 1) - sampleIndex = (m_anRandomTable[1] & 3) + SFX_FIGHT_1; - else - sampleIndex = (m_anRandomTable[3] & 1) + SFX_BAT_HIT_LEFT; - m_sQueueSample.m_nSampleIndex = sampleIndex; - emittingVol = m_anRandomTable[0] % 50 + 55; - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - 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 = emittingVol; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - params.m_bDistanceCalculated = true; - params.m_fDistance = distSquared; - params.m_pPed = nil; - SetupPedComments(¶ms, SOUND_INJURED_PED_MALE_PRISON); - } - gCellNextTime = time + 500 + m_anRandomTable[3] % 1500; - } - } -} - -void -cAudioManager::ProcessPornCinema(uint8 sound) -{ - - eSfxSample sample; - uint32 time; - int32 rand; - float distSquared; - - switch (sound) { - case SCRIPT_SOUND_PORN_CINEMA_1_S: - case SCRIPT_SOUND_MISTY_SEX_S: - m_sQueueSample.m_nSampleIndex = SFX_PORN_1_LOOP; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - sample = SFX_PORN_1_GROAN_1; - m_sQueueSample.m_fSoundIntensity = 20.0f; - break; - case SCRIPT_SOUND_PORN_CINEMA_1_L: - case SCRIPT_SOUND_MISTY_SEX_L: - m_sQueueSample.m_nSampleIndex = SFX_PORN_1_LOOP; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - sample = SFX_PORN_1_GROAN_1; - m_sQueueSample.m_fSoundIntensity = 80.0f; - break; - case SCRIPT_SOUND_PORN_CINEMA_2_S: - m_sQueueSample.m_nSampleIndex = SFX_PORN_2_LOOP; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - sample = SFX_PORN_2_GROAN_1; - m_sQueueSample.m_fSoundIntensity = 20.0f; - break; - case SCRIPT_SOUND_PORN_CINEMA_2_L: - m_sQueueSample.m_nSampleIndex = SFX_PORN_2_LOOP; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - sample = SFX_PORN_2_GROAN_1; - m_sQueueSample.m_fSoundIntensity = 80.0f; - break; - case SCRIPT_SOUND_PORN_CINEMA_3_S: - m_sQueueSample.m_nSampleIndex = SFX_PORN_3_LOOP; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_fSoundIntensity = 20.0f; - sample = SFX_PORN_3_GROAN_1; - break; - case SCRIPT_SOUND_PORN_CINEMA_3_L: - m_sQueueSample.m_nSampleIndex = SFX_PORN_3_LOOP; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_fSoundIntensity = 80.0f; - sample = SFX_PORN_3_GROAN_1; - break; - default: - return; - } - distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); - if (distSquared < SQR(m_sQueueSample.m_fSoundIntensity)) { - m_sQueueSample.m_fDistance = Sqrt(distSquared); - if (sound != SCRIPT_SOUND_MISTY_SEX_S && sound != SCRIPT_SOUND_MISTY_SEX_L) { - m_sQueueSample.m_nVolume = ComputeVolume(maxVolume, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nCounter = 0; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_nEmittingVolume = maxVolume; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - - time = CTimer::GetTimeInMilliseconds(); - if (time > gPornNextTime) { - m_sQueueSample.m_nVolume = ComputeVolume(90, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - rand = m_anRandomTable[1] & 1; - m_sQueueSample.m_nSampleIndex = rand + sample; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); - m_sQueueSample.m_nCounter = rand + 1; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_nReleasingVolumeModificator = 6; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - gPornNextTime = time + 2000 + m_anRandomTable[3] % 6000; - } - } - } -} - -void -cAudioManager::ProcessProjectiles() -{ - uint8 emittingVol; - - for (int32 i = 0; i < NUM_PROJECTILES; i++) { - if (CProjectileInfo::GetProjectileInfo(i)->m_bInUse) { - switch (CProjectileInfo::GetProjectileInfo(i)->m_eWeaponType) { - case WEAPONTYPE_ROCKETLAUNCHER: - emittingVol = maxVolume; - m_sQueueSample.m_fSoundIntensity = rocketLauncherIntensity; - m_sQueueSample.m_nSampleIndex = SFX_ROCKET_FLY; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_ROCKET_FLY); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - break; - case WEAPONTYPE_MOLOTOV: - emittingVol = molotovVolume; - m_sQueueSample.m_fSoundIntensity = molotovIntensity; - m_sQueueSample.m_nSampleIndex = SFX_PED_ON_FIRE; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nFrequency = 32 * SampleManager.GetSampleBaseFrequency(SFX_PED_ON_FIRE) / 25; - m_sQueueSample.m_nReleasingVolumeModificator = 7; - break; - default: - return; - } - m_sQueueSample.m_fSpeedMultiplier = 4.0f; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_vecPos = CProjectileInfo::ms_apProjectile[i]->GetPosition(); - 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(emittingVol, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = i; - m_sQueueSample.m_bIs2D = false; - 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_bReleasingSoundFlag = false; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - } - } -} - -void -cAudioManager::ProcessRainOnVehicle(cVehicleParams *params) -{ - if (params->m_fDistance < SQR(rainOnVehicleIntensity) && CWeather::Rain > 0.01f && (!CCullZones::CamNoRain() || !CCullZones::PlayerNoRain())) { - CVehicle *veh = params->m_pVehicle; - ++veh->m_bRainAudioCounter; - if (veh->m_bRainAudioCounter >= 2) { - veh->m_bRainAudioCounter = 0; - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - float emittingVol = 30.f * CWeather::Rain; - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, rainOnVehicleIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = veh->m_bRainSamplesCounter++; - if (veh->m_bRainSamplesCounter > 4) - veh->m_bRainSamplesCounter = 68; - m_sQueueSample.m_nSampleIndex = (m_anRandomTable[1] & 3) + SFX_CAR_RAIN_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 9; - m_sQueueSample.m_nFrequency = m_anRandomTable[1] % 4000 + 28000; - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_nEmittingVolume = (uint8)emittingVol; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = rainOnVehicleIntensity; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bReverbFlag = false; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - } -} - -void -cAudioManager::ProcessReverb() const -{ - if (SampleManager.UpdateReverb() && m_bDynamicAcousticModelingStatus) { - for (uint32 i = 0; i < -#ifdef FIX_BUGS - channels -#else - 28 -#endif - ; - i++) { - if (m_asActiveSamples[i].m_bReverbFlag) - SampleManager.SetChannelReverbFlag(i, 1); - } - } -} - -bool -cAudioManager::ProcessReverseGear(cVehicleParams *params) -{ - CVehicle *veh; - CAutomobile *automobile; - int32 emittingVol; - float modificator; - - if (params->m_fDistance >= SQR(reverseGearIntensity)) - return false; - veh = params->m_pVehicle; - if (veh->bEngineOn && (veh->m_fGasPedal < 0.0f || !veh->m_nCurrentGear)) { - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - automobile = (CAutomobile *)params->m_pVehicle; - if (automobile->m_nWheelsOnGround) { - modificator = params->m_fVelocityChange / params->m_pTransmission->fMaxReverseVelocity; - } else { - if (automobile->m_nDriveWheelsOnGround) - automobile->m_fGasPedalAudio = automobile->m_fGasPedalAudio * 0.4f; - modificator = automobile->m_fGasPedalAudio; - } - modificator = Abs(modificator); - emittingVol = (24.f * modificator); - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, reverseGearIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - if (params->m_pVehicle->m_fGasPedal >= 0.0f) { - m_sQueueSample.m_nCounter = 62; - m_sQueueSample.m_nSampleIndex = SFX_REVERSE_GEAR_2; - } else { - m_sQueueSample.m_nCounter = 61; - m_sQueueSample.m_nSampleIndex = SFX_REVERSE_GEAR; - } - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nFrequency = (6000.f * modificator) + 7000; - 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 = 3.0f; - m_sQueueSample.m_fSoundIntensity = reverseGearIntensity; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 5; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - 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) -{ - cAudioScriptObject *entity = (cAudioScriptObject *)m_asAudioEntities[id].m_pEntity; - if (entity) { - m_sQueueSample.m_vecPos = entity->Posn; - if (m_asAudioEntities[id].m_AudioEvents == 1) - ProcessOneShotScriptObject(m_asAudioEntities[id].m_awAudioEvent[0]); - else - ProcessLoopingScriptObject(entity->AudioId); - } -} - -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() -{ - if (m_nUserPause) { - if (!m_nPreviousUserPause) { - MusicManager.ChangeMusicMode(MUSICMODE_FRONTEND); - SampleManager.SetEffectsFadeVolume(maxVolume); - SampleManager.SetMusicFadeVolume(maxVolume); - } - } else { - if (m_nPreviousUserPause) { - MusicManager.StopFrontEndTrack(); - MusicManager.ChangeMusicMode(MUSICMODE_GAME); - } - CPlayerPed *playerPed = FindPlayerPed(); - if (playerPed) { - const PedState &state = playerPed->m_nPedState; - if (state != PED_ENTER_CAR && state != PED_STEAL_CAR && !playerPed->bInVehicle) - SampleManager.StopChannel(m_nActiveSamples); - } - } -} - -bool -cAudioManager::ProcessTrainNoise(cVehicleParams *params) -{ - const float SOUND_INTENSITY = 300.0f; - - CTrain *train; - uint8 emittingVol; - float speedMultipler; - - if (params->m_fDistance >= SQR(SOUND_INTENSITY)) - return false; - - if (params->m_fVelocityChange > 0.0f) { - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - train = (CTrain *)params->m_pVehicle; - speedMultipler = Min(1.0f, train->m_fSpeed * 250.f / 51.f); - emittingVol = (75.f * speedMultipler); - if (train->m_fWagonPosition == 0.0f) { - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume != 0) { - m_sQueueSample.m_nCounter = 32; - m_sQueueSample.m_nSampleIndex = SFX_TRAIN_FAR; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 2; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_TRAIN_FAR); - 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 = 3.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - const float SOUND_INTENSITY = 70.0f; - if (params->m_fDistance < SQR(SOUND_INTENSITY)) { - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume != 0) { - m_sQueueSample.m_nCounter = 33; - m_sQueueSample.m_nSampleIndex = SFX_TRAIN_NEAR; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 5; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_TRAIN_NEAR) + 100 * m_sQueueSample.m_nEntityIndex % 987; - 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 = SOUND_INTENSITY; - 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::ProcessVehicle(CVehicle *veh) -{ - tHandlingData *handling = veh->pHandling; - float velChange; - cVehicleParams params; - m_sQueueSample.m_vecPos = veh->GetPosition(); - - params.m_bDistanceCalculated = false; - params.m_fDistance = GetDistanceSquared(m_sQueueSample.m_vecPos); - params.m_pVehicle = veh; - params.m_pTransmission = nil; - params.m_nIndex = 0; - params.m_fVelocityChange = 0.0f; - - if (handling) - params.m_pTransmission = &handling->Transmission; - - params.m_nIndex = veh->GetModelIndex() - MI_FIRST_VEHICLE; - if (params.m_pVehicle->GetStatus() == STATUS_SIMPLE) - velChange = params.m_pVehicle->AutoPilot.m_fMaxTrafficSpeed * 0.02f; - else - velChange = DotProduct(params.m_pVehicle->m_vecMoveSpeed, params.m_pVehicle->GetForward()); - params.m_fVelocityChange = velChange; - switch (params.m_pVehicle->m_vehType) { - case VEHICLE_TYPE_CAR: - UpdateGasPedalAudio((CAutomobile *)veh); - if (params.m_nIndex == RCBANDIT) { - ProcessModelCarEngine(¶ms); - ProcessVehicleOneShots(¶ms); - ((CAutomobile *)veh)->m_fVelocityChangeForAudio = params.m_fVelocityChange; - ProcessRainOnVehicle(¶ms); - break; - } - if (params.m_nIndex == DODO) { - if (!ProcessVehicleRoadNoise(¶ms)) { - ProcessVehicleOneShots(¶ms); - ((CAutomobile *)veh)->m_fVelocityChangeForAudio = params.m_fVelocityChange; - ProcessRainOnVehicle(¶ms); - break; - } - if (CWeather::WetRoads > 0.f) - ProcessWetRoadNoise(¶ms); - ProcessVehicleSkidding(¶ms); - } else { - if (!ProcessVehicleRoadNoise(¶ms)) { - ProcessVehicleOneShots(¶ms); - ((CAutomobile *)veh)->m_fVelocityChangeForAudio = params.m_fVelocityChange; - ProcessRainOnVehicle(¶ms); - break; - } - ProcessReverseGear(¶ms); - if (CWeather::WetRoads > 0.f) - ProcessWetRoadNoise(¶ms); - ProcessVehicleSkidding(¶ms); - ProcessVehicleHorn(¶ms); - ProcessVehicleSirenOrAlarm(¶ms); - if (UsesReverseWarning(params.m_nIndex)) - ProcessVehicleReverseWarning(¶ms); - if (HasAirBrakes(params.m_nIndex)) - ProcessAirBrakes(¶ms); - } - ProcessCarBombTick(¶ms); - ProcessVehicleEngine(¶ms); - ProcessEngineDamage(¶ms); - ProcessVehicleDoors(¶ms); - ProcessVehicleOneShots(¶ms); - ((CAutomobile *)veh)->m_fVelocityChangeForAudio = params.m_fVelocityChange; - ProcessRainOnVehicle(¶ms); - break; - case VEHICLE_TYPE_BOAT: - ProcessBoatEngine(¶ms); - ProcessBoatMovingOverWater(¶ms); - ProcessVehicleOneShots(¶ms); - ProcessRainOnVehicle(¶ms); - break; - case VEHICLE_TYPE_TRAIN: - ProcessTrainNoise(¶ms); - ProcessVehicleOneShots(¶ms); - ProcessRainOnVehicle(¶ms); - break; - case VEHICLE_TYPE_HELI: - ProcessHelicopter(¶ms); - ProcessVehicleOneShots(¶ms); - ProcessRainOnVehicle(¶ms); - break; - case VEHICLE_TYPE_PLANE: - ProcessPlane(¶ms); - ProcessVehicleOneShots(¶ms); - ProcessRainOnVehicle(¶ms); - break; - default: - ProcessRainOnVehicle(¶ms); - break; - } -} - -bool -cAudioManager::ProcessVehicleDoors(cVehicleParams *params) -{ - const float SOUND_INTENSITY = 40.0f; - - CAutomobile *automobile; - int8 doorState; - int32 emittingVol; - float velocity; - - if (params->m_fDistance >= SQR(SOUND_INTENSITY)) - return false; - - automobile = (CAutomobile *)params->m_pVehicle; - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - for (int32 i = 0; i < ARRAY_SIZE(automobile->Doors); i++) { - if (automobile->Damage.GetDoorStatus(i) == DOOR_STATUS_SWINGING) { - doorState = automobile->Doors[i].m_nDoorState; - if (doorState == DOOR_STATUS_SMASHED || doorState == DOOR_STATUS_SWINGING) { - velocity = Min(0.3f, Abs(automobile->Doors[i].m_fAngVel)); - if (velocity > 0.0035f) { - emittingVol = (100.f * velocity * 10.f / 3.f); - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = i + 6; - m_sQueueSample.m_nSampleIndex = m_anRandomTable[1] % 6 + SFX_COL_CAR_PANEL_1; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex) + RandomDisplacement(1000); - 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 = emittingVol; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_fSpeedMultiplier = 1.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = true; - AddSampleToRequestedQueue(); - } - } - } - } - } - return true; -} - -void -cAudioManager::ProcessVehicleEngine(cVehicleParams *params) -{ - const float SOUND_INTENSITY = 50.0f; - - CVehicle *playerVeh; - CVehicle *veh; - CAutomobile *automobile; - float relativeGearChange; - float relativeChange; - uint8 volume; - int32 freq = 0; // uinitialized variable - uint8 emittingVol; - cTransmission *transmission; - uint8 currentGear; - float modificator; - float traction = 0.f; - - if (params->m_fDistance < SQR(SOUND_INTENSITY)) { - playerVeh = FindPlayerVehicle(); - veh = params->m_pVehicle; - if (playerVeh == veh && veh->GetStatus() == STATUS_WRECKED) { - SampleManager.StopChannel(m_nActiveSamples); - return; - } - if (veh->bEngineOn) { - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - automobile = (CAutomobile *)params->m_pVehicle; - if (params->m_nIndex == DODO) { - ProcessCesna(params); - return; - } - if (FindPlayerVehicle() == veh) { - ProcessPlayersVehicleEngine(params, automobile); - return; - } - transmission = params->m_pTransmission; - if (transmission) { - currentGear = params->m_pVehicle->m_nCurrentGear; - if (automobile->m_nWheelsOnGround) { - if (automobile->bIsHandbrakeOn) { - if (params->m_fVelocityChange == 0.0f) - traction = 0.9f; - } else if (params->m_pVehicle->GetStatus() == STATUS_SIMPLE) { - traction = 0.0f; - } else { - switch (transmission->nDriveType) { - case '4': - for (int32 i = 0; i < ARRAY_SIZE(automobile->m_aWheelState); i++) { - if (automobile->m_aWheelState[i] == WHEEL_STATE_SPINNING) - traction += 0.05f; - } - break; - case 'F': - if (automobile->m_aWheelState[0] == WHEEL_STATE_SPINNING) - traction += 0.1f; - if (automobile->m_aWheelState[2] == WHEEL_STATE_SPINNING) - traction += 0.1f; - break; - case 'R': - if (automobile->m_aWheelState[1] == WHEEL_STATE_SPINNING) - traction += 0.1f; - if (automobile->m_aWheelState[3] == WHEEL_STATE_SPINNING) - traction += 0.1f; - break; - } - } - if (transmission->fMaxVelocity <= 0.f) { - relativeChange = 0.f; - } else if (currentGear) { - relativeGearChange = - Min(1.0f, (params->m_fVelocityChange - transmission->Gears[currentGear].fShiftDownVelocity) / transmission->fMaxVelocity * 2.5f); - if (traction == 0.0f && automobile->GetStatus() != STATUS_SIMPLE && - params->m_fVelocityChange >= transmission->Gears[1].fShiftUpVelocity) { - traction = 0.7f; - } - relativeChange = traction * automobile->m_fGasPedalAudio * 0.95f + (1.0f - traction) * relativeGearChange; - } else - relativeChange = - Min(1.0f, 1.0f - Abs((params->m_fVelocityChange - transmission->Gears[0].fShiftDownVelocity) / transmission->fMaxReverseVelocity)); - } else { - if (automobile->m_nDriveWheelsOnGround) - automobile->m_fGasPedalAudio *= 0.4f; - relativeChange = automobile->m_fGasPedalAudio; - } - modificator = relativeChange; - if (currentGear || !automobile->m_nWheelsOnGround) - freq = 1200 * currentGear + 18000.f * modificator + 14000; - else - freq = 13000.f * modificator + 14000; - if (modificator >= 0.75f) { - emittingVol = 120; - volume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - } else { - emittingVol = modificator * 4.0f / 3.0f * 40.f + 80.f; - volume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - } - } else { - modificator = 0.f; - emittingVol = 80; - volume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - } - m_sQueueSample.m_nVolume = volume; - if (m_sQueueSample.m_nVolume) { - if (automobile->GetStatus() == STATUS_SIMPLE) { - if (modificator < 0.02f) { - m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_bEngineSoundType - 1 + SFX_CAR_IDLE_1; - freq = modificator * 10000 + 22050; - m_sQueueSample.m_nCounter = 52; - } else { - m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_nAccelerationSampleIndex; - m_sQueueSample.m_nCounter = 2; - } - } else { - if (automobile->m_fGasPedal < 0.05f) { - m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_bEngineSoundType - 1 + SFX_CAR_IDLE_1; - freq = modificator * 10000 + 22050; - m_sQueueSample.m_nCounter = 52; - } else { - m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_nAccelerationSampleIndex; - m_sQueueSample.m_nCounter = 2; - } - } - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_nFrequency = freq + 100 * m_sQueueSample.m_nEntityIndex % 1000; - if (m_sQueueSample.m_nSampleIndex == SFX_CAR_IDLE_6 || m_sQueueSample.m_nSampleIndex == SFX_CAR_REV_6) - m_sQueueSample.m_nFrequency /= 2; - 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 = SOUND_INTENSITY; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 8; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - } -} - -void -cAudioManager::ProcessVehicleHorn(cVehicleParams *params) -{ - const float SOUND_INTENSITY = 40.0f; - - CAutomobile *automobile; - - if (params->m_fDistance < SQR(SOUND_INTENSITY)) { - automobile = (CAutomobile *)params->m_pVehicle; - if ((!automobile->m_bSirenOrAlarm || !UsesSirenSwitching(params->m_nIndex)) && automobile->GetModelIndex() != MI_MRWHOOP) { - if (automobile->m_nCarHornTimer) { - if (params->m_pVehicle->GetStatus() != STATUS_PLAYER) { - automobile->m_nCarHornTimer = Min(44, automobile->m_nCarHornTimer); - if (automobile->m_nCarHornTimer == 44) - automobile->m_nCarHornPattern = (m_FrameCounter + m_sQueueSample.m_nEntityIndex) & 7; - if (!hornPatternsArray[automobile->m_nCarHornPattern][44 - automobile->m_nCarHornTimer]) - return; - } - - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - m_sQueueSample.m_nVolume = ComputeVolume(80, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 4; - m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_nHornSample; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 2; - m_sQueueSample.m_nFrequency = aVehicleSettings[params->m_nIndex].m_nHornFrequency; - 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 = 5.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - } - } -} - -void -cAudioManager::ProcessVehicleOneShots(cVehicleParams *params) -{ - int16 event; - uint8 emittingVol; - float relVol; - float vol; - bool noReflections; - float maxDist; - cPedParams pedParams; - - static uint8 WaveIndex = 41; - static uint8 GunIndex = 53; - static uint8 iWheelIndex = 82; - static uint8 CrunchOffset = 0; - - for (int i = 0; i < m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_AudioEvents; i++) { - noReflections = 0; - m_sQueueSample.m_bRequireReflection = false; - event = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i]; - switch (event) { - case SOUND_CAR_DOOR_CLOSE_BONNET: - case SOUND_CAR_DOOR_CLOSE_BUMPER: - case SOUND_CAR_DOOR_CLOSE_FRONT_LEFT: - case SOUND_CAR_DOOR_CLOSE_FRONT_RIGHT: - case SOUND_CAR_DOOR_CLOSE_BACK_LEFT: - case SOUND_CAR_DOOR_CLOSE_BACK_RIGHT: - { - const float SOUND_INTENSITY = 50.0f; - maxDist = SQR(SOUND_INTENSITY); - emittingVol = m_anRandomTable[2] % 5 + 122; - switch (aVehicleSettings[params->m_nIndex].m_bDoorType) { - case 0: - m_sQueueSample.m_nSampleIndex = SFX_OLD_CAR_DOOR_CLOSE; - break; - case 2: - m_sQueueSample.m_nSampleIndex = SFX_TRUCK_DOOR_CLOSE; - break; - case 3: - m_sQueueSample.m_nSampleIndex = SFX_AIR_BRAKES; - break; - default: - m_sQueueSample.m_nSampleIndex = SFX_NEW_CAR_DOOR_CLOSE; - break; - } - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i] + 22; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_bRequireReflection = true; - break; - } - case SOUND_CAR_DOOR_OPEN_BONNET: - case SOUND_CAR_DOOR_OPEN_BUMPER: - case SOUND_CAR_DOOR_OPEN_FRONT_LEFT: - case SOUND_CAR_DOOR_OPEN_FRONT_RIGHT: - case SOUND_CAR_DOOR_OPEN_BACK_LEFT: - case SOUND_CAR_DOOR_OPEN_BACK_RIGHT: - { - const float SOUND_INTENSITY = 50.0f; - maxDist = SQR(SOUND_INTENSITY); - emittingVol = m_anRandomTable[1] % 10 + 117; - switch (aVehicleSettings[params->m_nIndex].m_bDoorType) { - case 0: - m_sQueueSample.m_nSampleIndex = SFX_OLD_CAR_DOOR_OPEN; - break; - case 2: - m_sQueueSample.m_nSampleIndex = SFX_TRUCK_DOOR_OPEN; - break; - case 3: - m_sQueueSample.m_nSampleIndex = SFX_AIR_BRAKES; - break; - default: - m_sQueueSample.m_nSampleIndex = SFX_NEW_CAR_DOOR_OPEN; - break; - } - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i] + 10; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_bRequireReflection = true; - break; - } - case SOUND_CAR_WINDSHIELD_CRACK: - { - const float SOUND_INTENSITY = 30.0f; - maxDist = SQR(SOUND_INTENSITY); - m_sQueueSample.m_nSampleIndex = SFX_GLASS_CRACK; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 68; - emittingVol = m_anRandomTable[1] % 30 + 60; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_GLASS_CRACK); - m_sQueueSample.m_nReleasingVolumeModificator = 5; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - } break; - case SOUND_CAR_JUMP: - { - const float SOUND_INTENSITY = 35.0f; - emittingVol = Max(80.f, 2 * (100.f * m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i])); - maxDist = SQR(SOUND_INTENSITY); - m_sQueueSample.m_nSampleIndex = SFX_TYRE_BUMP; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = iWheelIndex++; - if (iWheelIndex > 85) - iWheelIndex = 82; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_TYRE_BUMP); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); - if (params->m_nIndex == 41) { - m_sQueueSample.m_nFrequency *= 2; - emittingVol /= 2; - } - m_sQueueSample.m_nReleasingVolumeModificator = 6; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - break; - } - case SOUND_CAR_ENGINE_START: - { - const float SOUND_INTENSITY = 40.0f; - emittingVol = 60; - maxDist = SQR(SOUND_INTENSITY); - m_sQueueSample.m_nSampleIndex = SFX_CAR_STARTER; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 33; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CAR_STARTER); - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_bRequireReflection = true; - break; - } - case SOUND_CAR_LIGHT_BREAK: - { - const float SOUND_INTENSITY = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_GLASS_SHARD_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 37; - m_sQueueSample.m_nFrequency = 9 * SampleManager.GetSampleBaseFrequency(SFX_GLASS_SHARD_1) / 10; - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 8); - m_sQueueSample.m_nReleasingVolumeModificator = 5; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - maxDist = SQR(SOUND_INTENSITY); - emittingVol = m_anRandomTable[4] % 10 + 30; - break; - } - case SOUND_CAR_HYDRAULIC_1: - case SOUND_CAR_HYDRAULIC_2: - { - const float SOUND_INTENSITY = 35.0f; - if (event == MOONBEAM) // todo check - m_sQueueSample.m_nFrequency = 15600; - else - m_sQueueSample.m_nFrequency = 13118; - m_sQueueSample.m_nSampleIndex = SFX_SUSPENSION_FAST_MOVE; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 51; - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 8); - m_sQueueSample.m_nReleasingVolumeModificator = 5; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - maxDist = SQR(SOUND_INTENSITY); - emittingVol = m_anRandomTable[0] % 15 + 55; - break; - } - case SOUND_CAR_HYDRAULIC_3: - { - const float SOUND_INTENSITY = 35.0f; - m_sQueueSample.m_nSampleIndex = SFX_SUSPENSION_SLOW_MOVE_LOOP; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 86; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SUSPENSION_SLOW_MOVE_LOOP); - m_sQueueSample.m_nReleasingVolumeModificator = 5; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_nReleasingVolumeDivider = 7; - noReflections = true; - maxDist = SQR(SOUND_INTENSITY); - emittingVol = m_anRandomTable[0] % 15 + 55; - break; - } - case SOUND_CAR_JERK: - { - const float SOUND_INTENSITY = 35.0f; - m_sQueueSample.m_nSampleIndex = SFX_SHAG_SUSPENSION; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 87; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SHAG_SUSPENSION); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 8); - m_sQueueSample.m_nReleasingVolumeModificator = 5; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - maxDist = SQR(SOUND_INTENSITY); - emittingVol = m_anRandomTable[1] % 15 + 55; - break; - } - case SOUND_CAR_SPLASH: - { - const float SOUND_INTENSITY = 40.0f; - vol = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i]; - if (vol <= 300.f) - continue; - if (vol > 1200.f) - m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i] = 1200.0f; - relVol = (m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i] - 300.f) / 900.f; - m_sQueueSample.m_nSampleIndex = (m_anRandomTable[0] & 1) + SFX_BOAT_SPLASH_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = WaveIndex++; - if (WaveIndex > 46) - WaveIndex = 41; - m_sQueueSample.m_nFrequency = (7000.f * relVol) + 6000; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - emittingVol = (55.f * relVol); - maxDist = SQR(SOUND_INTENSITY); - 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; - m_sQueueSample.m_nCounter = 47; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_POLICE_BOAT_THUMB_OFF) + RandomDisplacement(600); - m_sQueueSample.m_nReleasingVolumeModificator = 2; - 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); - break; - } - case SOUND_18: - case SOUND_19: - { - const float SOUND_INTENSITY = 35.0f; - m_sQueueSample.m_nSampleIndex = SFX_AIR_BRAKES; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 59; - m_sQueueSample.m_nFrequency = RandomDisplacement(1000) + 11025; - m_sQueueSample.m_nReleasingVolumeModificator = 5; - m_sQueueSample.m_fSpeedMultiplier = 5.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - maxDist = SQR(SOUND_INTENSITY); - emittingVol = m_anRandomTable[1] % 20 + 70; - break; - } - case SOUND_CAR_TANK_TURRET_ROTATE: - { - const float SOUND_INTENSITY = 40.0f; - vol = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i]; - if (vol > 96.0f / 2500.0f) - vol = 96.0f / 2500.0f; - m_sQueueSample.m_nSampleIndex = SFX_TANK_TURRET; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 79; - m_sQueueSample.m_nFrequency = (3000.f * vol * 2500.0f / 96.0f) + 9000; - m_sQueueSample.m_nReleasingVolumeModificator = 2; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - emittingVol = (37.f * vol * 2500.0f / 96.0f) + 90; - maxDist = SQR(SOUND_INTENSITY); - noReflections = true; - break; - } - case SOUND_CAR_BOMB_TICK: - { - const float SOUND_INTENSITY = 30.0f; - m_sQueueSample.m_nSampleIndex = SFX_BOMB_BEEP; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 80; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_BOMB_BEEP); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - maxDist = SQR(SOUND_INTENSITY); - m_sQueueSample.m_bRequireReflection = true; - emittingVol = 60; - break; - } - case SOUND_PLANE_ON_GROUND: - { - const float SOUND_INTENSITY = 180.0f; - m_sQueueSample.m_nSampleIndex = SFX_JUMBO_LAND_WHEELS; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 81; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_JUMBO_LAND_WHEELS); - m_sQueueSample.m_nReleasingVolumeModificator = 2; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - maxDist = SQR(SOUND_INTENSITY); - emittingVol = m_anRandomTable[4] % 25 + 75; - break; - } - case SOUND_WEAPON_SHOT_FIRED: - { - const float SOUND_INTENSITY = 120.0f; - emittingVol = m_anRandomTable[2]; - maxDist = SQR(SOUND_INTENSITY); - m_sQueueSample.m_nSampleIndex = SFX_UZI_LEFT; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = GunIndex++; - emittingVol = emittingVol % 15 + 65; - if (GunIndex > 58) - GunIndex = 53; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_UZI_LEFT); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); - m_sQueueSample.m_nReleasingVolumeModificator = 3; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - break; - } - case SOUND_WEAPON_HIT_VEHICLE: - { - const float SOUND_INTENSITY = 40.0f; - m_sQueueSample.m_nSampleIndex = m_anRandomTable[m_sQueueSample.m_nEntityIndex % ARRAY_SIZE(m_anRandomTable)] % 6 + SFX_BULLET_CAR_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 34; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 32); - m_sQueueSample.m_nReleasingVolumeModificator = 7; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - maxDist = SQR(SOUND_INTENSITY); - emittingVol = m_anRandomTable[3] % 20 + 90; - break; - } - case SOUND_BOMB_TIMED_ACTIVATED: - case SOUND_55: - case SOUND_BOMB_ONIGNITION_ACTIVATED: - case SOUND_BOMB_TICK: - { - const float SOUND_INTENSITY = 50.0f; - m_sQueueSample.m_nSampleIndex = SFX_ARM_BOMB; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 36; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_ARM_BOMB); - m_sQueueSample.m_nReleasingVolumeModificator = 0; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_bRequireReflection = true; - emittingVol = 50; - maxDist = SQR(SOUND_INTENSITY); - break; - } - case SOUND_PED_HELI_PLAYER_FOUND: - pedParams.m_pPed = nil; - pedParams.m_bDistanceCalculated = false; - pedParams.m_fDistance = 0.0f; - pedParams.m_bDistanceCalculated = params->m_bDistanceCalculated; - pedParams.m_fDistance = params->m_fDistance; - SetupPedComments(&pedParams, SOUND_PED_HELI_PLAYER_FOUND); - continue; - case SOUND_PED_BODYCAST_HIT: - pedParams.m_pPed = nil; - pedParams.m_bDistanceCalculated = false; - pedParams.m_fDistance = 0.0f; - pedParams.m_bDistanceCalculated = params->m_bDistanceCalculated; - pedParams.m_fDistance = params->m_fDistance; - SetupPedComments(&pedParams, SOUND_PED_BODYCAST_HIT); - continue; - case SOUND_WATER_FALL: - { - const float SOUND_INTENSITY = 40.0f; - m_sQueueSample.m_nSampleIndex = SFX_SPLASH_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 15; - m_sQueueSample.m_nFrequency = RandomDisplacement(1000) + 16000; - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - maxDist = SQR(SOUND_INTENSITY); - m_sQueueSample.m_bRequireReflection = true; - emittingVol = m_anRandomTable[4] % 20 + 90; - break; - } - case SOUND_SPLATTER: - { - const float SOUND_INTENSITY = 40.0f; - m_sQueueSample.m_nSampleIndex = CrunchOffset + SFX_PED_CRUNCH_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 48; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_PED_CRUNCH_1) + RandomDisplacement(600); - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = 40.0f; - ++CrunchOffset; - maxDist = SQR(SOUND_INTENSITY); - emittingVol = m_anRandomTable[4] % 20 + 55; - CrunchOffset %= 2; - m_sQueueSample.m_bRequireReflection = true; - break; - } - case SOUND_CAR_PED_COLLISION: - { - const float SOUND_INTENSITY = 40.0f; - vol = Min(20.0f, m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_afVolume[i]); - emittingVol = (vol / 20.0f * 127.f); - if (!emittingVol) - continue; - - m_sQueueSample.m_nSampleIndex = (m_anRandomTable[2] & 3) + SFX_FIGHT_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nCounter = 50; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex) / 2; - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_fSpeedMultiplier = 0.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - maxDist = SQR(SOUND_INTENSITY); - break; - } - default: - continue; - } - if (params->m_fDistance < maxDist) { - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume != 0) { - if (noReflections) { - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_bReleasingSoundFlag = false; - } else { - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_bReleasingSoundFlag = true; - } - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bIs2D = false; - AddSampleToRequestedQueue(); - } - } - } -} - -bool -cAudioManager::ProcessVehicleReverseWarning(cVehicleParams *params) -{ - const float SOUND_INTENSITY = 50.0f; - - CVehicle *veh = params->m_pVehicle; - - if (params->m_fDistance >= SQR(SOUND_INTENSITY)) - return false; - - if (veh->bEngineOn && veh->m_fGasPedal < 0.0f) { - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - m_sQueueSample.m_nVolume = ComputeVolume(60, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 12; - m_sQueueSample.m_nSampleIndex = SFX_REVERSE_WARNING; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 2; - m_sQueueSample.m_nFrequency = (100 * m_sQueueSample.m_nEntityIndex & 1023) + SampleManager.GetSampleBaseFrequency(SFX_REVERSE_WARNING); - 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 = 3.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - return true; -} - -bool -cAudioManager::ProcessVehicleRoadNoise(cVehicleParams *params) -{ - const float SOUND_INTENSITY = 95.0f; - - int32 emittingVol; - uint32 freq; - float modificator; - int sampleFreq; - float velocity; - - if (params->m_fDistance >= SQR(SOUND_INTENSITY)) - return false; - if (params->m_pTransmission) { - if (params->m_pVehicle->m_vecMoveSpeed.z) { - velocity = Abs(params->m_fVelocityChange); - if (velocity > 0.0f) { - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - emittingVol = 30.f * Min(1.f, velocity / (0.5f * params->m_pTransmission->fMaxVelocity)); - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 0; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - if (params->m_pVehicle->m_nSurfaceTouched == SURFACE_PUDDLE) { - m_sQueueSample.m_nSampleIndex = SFX_BOAT_WATER_LOOP; - freq = 6050 * emittingVol / 30 + 16000; - } else { - m_sQueueSample.m_nSampleIndex = SFX_ROAD_NOISE; - modificator = m_sQueueSample.m_fDistance / 190.f; - sampleFreq = SampleManager.GetSampleBaseFrequency(SFX_ROAD_NOISE); - freq = (sampleFreq * modificator) + ((3 * sampleFreq) / 4); - } - m_sQueueSample.m_nFrequency = freq; - 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 = SOUND_INTENSITY; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 4; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - } - } - return true; -} - -void -cAudioManager::ProcessVehicleSirenOrAlarm(cVehicleParams *params) -{ - const float SOUND_INTENSITY = 110.0f; - - if (params->m_fDistance < SQR(SOUND_INTENSITY)) { - CVehicle *veh = params->m_pVehicle; - if (veh->m_bSirenOrAlarm == 0 && veh->m_nAlarmState <= 0) - return; - -#ifdef FIX_BUGS - if (params->m_pVehicle->GetStatus() == STATUS_WRECKED) - return; -#endif - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - m_sQueueSample.m_nVolume = ComputeVolume(80, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 5; - if (UsesSiren(params->m_nIndex)) { - if (params->m_pVehicle->GetStatus() == STATUS_ABANDONED) - return; - if (veh->m_nCarHornTimer && params->m_nIndex != FIRETRUK) { - m_sQueueSample.m_nSampleIndex = SFX_SIREN_FAST; - if (params->m_nIndex == FBICAR) - m_sQueueSample.m_nFrequency = 16113; - else - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SIREN_FAST); - m_sQueueSample.m_nCounter = 60; - } else { - m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_nSirenOrAlarmSample; - m_sQueueSample.m_nFrequency = aVehicleSettings[params->m_nIndex].m_nSirenOrAlarmFrequency; - } - } else { - m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_nSirenOrAlarmSample; - m_sQueueSample.m_nFrequency = aVehicleSettings[params->m_nIndex].m_nSirenOrAlarmFrequency; - } - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 1; - 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 = 7.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 5; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - return; - } - } -} - -void -cAudioManager::ProcessVehicleSkidding(cVehicleParams *params) -{ - const float SOUND_INTENSITY = 40.0f; - - CAutomobile *automobile; - cTransmission *transmission; - int32 emittingVol; - float newSkidVal = 0.0f; - float skidVal = 0.0f; - - if (params->m_fDistance >= SQR(SOUND_INTENSITY)) - return; - automobile = (CAutomobile *)params->m_pVehicle; - if (!automobile->m_nWheelsOnGround) - return; - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - for (int32 i = 0; i < ARRAY_SIZE(automobile->m_aWheelState); i++) { - if (automobile->m_aWheelState[i] == WHEEL_STATE_NORMAL || automobile->Damage.GetWheelStatus(i) == WHEEL_STATUS_MISSING) - continue; - transmission = params->m_pTransmission; - switch (transmission->nDriveType) - { - case '4': - newSkidVal = GetVehicleDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange); - break; - case 'F': - if (i == CARWHEEL_FRONT_LEFT || i == CARWHEEL_FRONT_RIGHT) - newSkidVal = GetVehicleDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange); - else - newSkidVal = GetVehicleNonDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange); - break; - case 'R': - if (i == CARWHEEL_REAR_LEFT || i == CARWHEEL_REAR_RIGHT) - newSkidVal = GetVehicleDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange); - else - newSkidVal = GetVehicleNonDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange); - break; - default: - break; - } - skidVal = Max(skidVal, newSkidVal); - } - - if (skidVal > 0.0f) { - emittingVol = 50.f * skidVal; - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume != 0) { - m_sQueueSample.m_nCounter = 3; - switch (params->m_pVehicle->m_nSurfaceTouched) { - case SURFACE_GRASS: - case SURFACE_HEDGE: - m_sQueueSample.m_nSampleIndex = SFX_RAIN; - emittingVol /= 4; - m_sQueueSample.m_nFrequency = 13000.f * skidVal + 35000.f; - m_sQueueSample.m_nVolume /= 4; - break; - case SURFACE_DIRT: - case SURFACE_DIRTTRACK: - case SURFACE_SAND: - case SURFACE_PUDDLE: - m_sQueueSample.m_nSampleIndex = SFX_GRAVEL_SKID; - m_sQueueSample.m_nFrequency = 6000.f * skidVal + 10000.f; - break; - - default: - m_sQueueSample.m_nSampleIndex = SFX_SKID; - m_sQueueSample.m_nFrequency = 5000.f * skidVal + 11000.f; - break; - } - - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 8; - 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 = 3.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 3; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } -} - -void cAudioManager::ProcessWaterCannon(int32) -{ - const float SOUND_INTENSITY = 900.0f; - - for (int32 i = 0; i < NUM_WATERCANNONS; i++) { - if (CWaterCannons::aCannons[i].m_nId) { - m_sQueueSample.m_vecPos = CWaterCannons::aCannons[0].m_avecPos[CWaterCannons::aCannons[i].m_nCur]; - float distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos); - if (distSquared < SOUND_INTENSITY) { - m_sQueueSample.m_fDistance = Sqrt(distSquared); - m_sQueueSample.m_nVolume = ComputeVolume(50, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_nSampleIndex = SFX_JUMBO_TAXI; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nFrequency = 15591; - m_sQueueSample.m_nReleasingVolumeModificator = 5; - m_sQueueSample.m_nCounter = i; - m_sQueueSample.m_fSpeedMultiplier = 2.0f; - m_sQueueSample.m_nReleasingVolumeDivider = 8; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nEmittingVolume = 50; - 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::ProcessWeather(int32 id) -{ - uint8 vol; - static uint8 counter = 0; - - if (m_asAudioEntities[id].m_AudioEvents && m_asAudioEntities[id].m_awAudioEvent[0] == SOUND_LIGHTNING) { - if (m_asAudioEntities[id].m_afVolume[0] >= 10.f) { - m_sQueueSample.m_nSampleIndex = SFX_EXPLOSION_1; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nFrequency = RandomDisplacement(500) + 4000; - vol = (m_asAudioEntities[id].m_afVolume[0] - 10.f) + 40; - } else { - m_sQueueSample.m_nSampleIndex = SFX_EXPLOSION_2; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nFrequency = RandomDisplacement(500) + 4000; - vol = (m_asAudioEntities[id].m_afVolume[0]) + 35; - } - m_sQueueSample.m_nVolume = vol; - if (TheCamera.SoundDistUp < 20.f) - m_sQueueSample.m_nVolume /= 2; - if (counter == 4) - counter = 0; - m_sQueueSample.m_nCounter = counter++; - m_sQueueSample.m_nReleasingVolumeModificator = 0; - m_sQueueSample.m_nOffset = (m_anRandomTable[2] & 15) + 55; - m_sQueueSample.m_bIs2D = true; - m_sQueueSample.m_nLoopCount = 1; - m_sQueueSample.m_bReleasingSoundFlag = true; - m_sQueueSample.m_nEmittingVolume = m_sQueueSample.m_nVolume; - m_sQueueSample.m_nLoopStart = 0; - m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = false; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - if (CWeather::Rain > 0.0f && (!CCullZones::CamNoRain() || !CCullZones::PlayerNoRain())) { - m_sQueueSample.m_nSampleIndex = SFX_RAIN; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RAIN); - m_sQueueSample.m_nVolume = (int32)(25.f * CWeather::Rain); - m_sQueueSample.m_nCounter = 4; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_nReleasingVolumeModificator = 0; - m_sQueueSample.m_nOffset = 63; - m_sQueueSample.m_bIs2D = true; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 30; - m_sQueueSample.m_bReverbFlag = false; - m_sQueueSample.m_nEmittingVolume = m_sQueueSample.m_nVolume; - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } -} - -bool -cAudioManager::ProcessWetRoadNoise(cVehicleParams *params) -{ - const float SOUND_INTENSITY = 30.0f; - - float relativeVelocity; - int32 emittingVol; - float modificator; - int freq; - float velChange; - - if (params->m_fDistance >= SQR(SOUND_INTENSITY)) - return false; - if (params->m_pTransmission) { - if (params->m_pVehicle->m_vecMoveSpeed.z) { - velChange = Abs(params->m_fVelocityChange); - if (velChange > 0.f) { - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - relativeVelocity = Min(1.0f, velChange / (0.5f * params->m_pTransmission->fMaxVelocity)); - emittingVol = 23.0f * relativeVelocity * CWeather::WetRoads; - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 1; - m_sQueueSample.m_nSampleIndex = SFX_ROAD_NOISE; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 3; - modificator = m_sQueueSample.m_fDistance / 6.f; - freq = SampleManager.GetSampleBaseFrequency(SFX_ROAD_NOISE); - m_sQueueSample.m_nFrequency = freq + freq * modificator; - 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 = SOUND_INTENSITY; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 4; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - } - } - } - 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 -{ - int32 value; - - static bool bIsEven = true; - static uint32 base = 0; - - if (!seed) - return 0; - - value = m_anRandomTable[(base + seed) % 5] % seed; - base += value; - - if (value % 2) { - bIsEven = !bIsEven; - } - if (!bIsEven) - value = -value; - return value; -} - -void -cAudioManager::ReacquireDigitalHandle() const -{ - if (m_bIsInitialised) { - SampleManager.ReacquireDigitalHandle(); - } -} - -void -cAudioManager::ReleaseDigitalHandle() const -{ - if (m_bIsInitialised) { - SampleManager.ReleaseDigitalHandle(); - } -} - -void -cAudioManager::ResetAudioLogicTimers(uint32 timer) -{ - gPornNextTime = timer; - gNextCryTime = timer; - gSawMillNextTime = timer; - gCellNextTime = timer; - gShopNextTime = timer; - gHomeNextTime = timer; - gAirportNextTime = timer; - gDocksNextTime = timer; - gCinemaNextTime = timer; - for (int32 i = 0; i < m_nAudioEntitiesTotal; i++) { - if (m_asAudioEntities[m_anAudioEntityIndices[i]].m_nType == AUDIOTYPE_PHYSICAL) { - CPed *ped = (CPed *)m_asAudioEntities[m_anAudioEntityIndices[i]].m_pEntity; - if (ped->IsPed()) { - ped->m_lastSoundStart = timer; - ped->m_soundStart = timer + m_anRandomTable[0] % 3000; - } - } - } - ClearMissionAudio(); - SampleManager.StopChannel(policeChannel); -} - -void -cAudioManager::ResetTimers(uint32 time) -{ - if (m_bIsInitialised) { - m_bTimerJustReset = true; - m_nTimer = time; - ClearRequestedQueue(); - if (m_nActiveSampleQueue) { - m_nActiveSampleQueue = 0; - ClearRequestedQueue(); - m_nActiveSampleQueue = 1; - } else { - m_nActiveSampleQueue = 1; - ClearRequestedQueue(); - m_nActiveSampleQueue = 0; - } - ClearActiveSamples(); - ClearMissionAudio(); - SampleManager.StopChannel(policeChannel); - SampleManager.SetEffectsFadeVolume(0); - SampleManager.SetMusicFadeVolume(0); - MusicManager.ResetMusicAfterReload(); -#ifdef AUDIO_OAL - SampleManager.Service(); -#endif - } -} - -void -cAudioManager::Service() -{ - GenerateIntegerRandomNumberTable(); - if (m_bTimerJustReset) { - ResetAudioLogicTimers(m_nTimer); - MusicManager.ResetTimers(m_nTimer); - m_bTimerJustReset = false; - } - if (m_bIsInitialised) { - m_nPreviousUserPause = m_nUserPause; - m_nUserPause = CTimer::GetIsUserPaused(); - UpdateReflections(); - ServiceSoundEffects(); - MusicManager.Service(); - } -} - -void -cAudioManager::ServiceSoundEffects() -{ - m_bFifthFrameFlag = (m_FrameCounter++ % 5) == 0; - if (m_nUserPause && !m_nPreviousUserPause) { - for (int32 i = 0; i < allChannels; i++) - SampleManager.StopChannel(i); - - ClearRequestedQueue(); - if (m_nActiveSampleQueue) { - m_nActiveSampleQueue = 0; - ClearRequestedQueue(); - m_nActiveSampleQueue = 1; - } else { - m_nActiveSampleQueue = 1; - ClearRequestedQueue(); - m_nActiveSampleQueue = 0; - } - ClearActiveSamples(); - } - m_nActiveSampleQueue = m_nActiveSampleQueue != 1; - ProcessReverb(); - ProcessSpecial(); - ClearRequestedQueue(); - InterrogateAudioEntities(); - m_sPedComments.Process(); - ServicePoliceRadio(); - ServiceCollisions(); - AddReleasingSounds(); - ProcessMissionAudio(); - AdjustSamplesVolume(); - ProcessActiveQueues(); -#ifdef AUDIO_OAL - SampleManager.Service(); -#endif - for (int32 i = 0; i < m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal; ++i) { - cAudioScriptObject *object = (cAudioScriptObject *)m_asAudioEntities[m_sAudioScriptObjectManager.m_anScriptObjectEntityIndices[i]].m_pEntity; - delete object; - m_asAudioEntities[m_sAudioScriptObjectManager.m_anScriptObjectEntityIndices[i]].m_pEntity = nil; - DestroyEntity(m_sAudioScriptObjectManager.m_anScriptObjectEntityIndices[i]); - } - m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal = 0; -} - -int8 -cAudioManager::SetCurrent3DProvider(uint8 which) -{ - if (!m_bIsInitialised) - return -1; - for (uint8 i = 0; i < m_nActiveSamples + 1; ++i) - SampleManager.StopChannel(i); - ClearRequestedQueue(); - if (m_nActiveSampleQueue == 0) - m_nActiveSampleQueue = 1; - else - m_nActiveSampleQueue = 0; - ClearRequestedQueue(); - ClearActiveSamples(); - int8 current = SampleManager.SetCurrent3DProvider(which); - if (current > 0) { - m_nActiveSamples = SampleManager.GetMaximumSupportedChannels(); - if (m_nActiveSamples > 1) - --m_nActiveSamples; - } - return current; -} - -void -cAudioManager::SetDynamicAcousticModelingStatus(bool status) -{ - m_bDynamicAcousticModelingStatus = status; -} - -void -cAudioManager::SetEffectsFadeVolume(uint8 volume) const -{ - SampleManager.SetEffectsFadeVolume(volume); -} - -void -cAudioManager::SetEffectsMasterVolume(uint8 volume) const -{ - SampleManager.SetEffectsMasterVolume(volume); -} - -void -cAudioManager::SetEntityStatus(int32 id, uint8 status) -{ - if (m_bIsInitialised && id >= 0 && id < totalAudioEntitiesSlots && m_asAudioEntities[id].m_bIsUsed) - m_asAudioEntities[id].m_nStatus = status; -} - -void -cAudioManager::SetMissionAudioLocation(float x, float y, float z) -{ - if (m_bIsInitialised) { - m_sMissionAudio.m_bPredefinedProperties = false; - m_sMissionAudio.m_vecPos = CVector(x, y, z); - } -} - -void -cAudioManager::SetMusicFadeVolume(uint8 volume) const -{ - SampleManager.SetMusicFadeVolume(volume); -} - -void -cAudioManager::SetMusicMasterVolume(uint8 volume) const -{ - SampleManager.SetMusicMasterVolume(volume); -} - -void -cAudioManager::SetSpeakerConfig(int32 conf) const -{ - SampleManager.SetSpeakerConfig(conf); -} - -bool -cAudioManager::SetupJumboEngineSound(uint8 vol, int32 freq) -{ - const float SOUND_INTENSITY = 180.0f; - if (m_sQueueSample.m_fDistance >= SOUND_INTENSITY) - return false; - - uint8 emittingVol = vol - gJumboVolOffsetPercentage / 100; - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume != 0) { - m_sQueueSample.m_nCounter = 3; - m_sQueueSample.m_nSampleIndex = SFX_JUMBO_ENGINE; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_nFrequency = freq; - 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 = 4.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 4; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - return true; -} - -bool -cAudioManager::SetupJumboFlySound(uint8 emittingVol) -{ - const float SOUND_INTENSITY = 440.0f; - if (m_sQueueSample.m_fDistance >= SOUND_INTENSITY) - return false; - - int32 vol = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - m_sQueueSample.m_nVolume = vol; - if (m_sQueueSample.m_nVolume != 0) { - m_sQueueSample.m_nSampleIndex = SFX_JUMBO_DIST_FLY; - m_sQueueSample.m_nCounter = 0; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_nEmittingVolume = emittingVol; - m_sQueueSample.m_nLoopCount = 0; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_JUMBO_DIST_FLY); - m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_fSpeedMultiplier = 4.0f; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_nReleasingVolumeDivider = 5; - m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - AddSampleToRequestedQueue(); - } - return true; -} - -bool -cAudioManager::SetupJumboRumbleSound(uint8 emittingVol) -{ - const float SOUND_INTENSITY = 240.0f; - if (m_sQueueSample.m_fDistance >= SOUND_INTENSITY) - return false; - - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - - if (m_sQueueSample.m_nVolume != 0) { - m_sQueueSample.m_nCounter = 5; - m_sQueueSample.m_nSampleIndex = SFX_JUMBO_RUMBLE; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = true; - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_JUMBO_RUMBLE); - 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 = 4.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 12; - m_sQueueSample.m_nOffset = 0; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - m_sQueueSample.m_nCounter = 6; - m_sQueueSample.m_nSampleIndex = SFX_JUMBO_RUMBLE; - m_sQueueSample.m_nFrequency += 200; - m_sQueueSample.m_nOffset = maxVolume; - AddSampleToRequestedQueue(); - } - return true; -} - -bool -cAudioManager::SetupJumboTaxiSound(uint8 vol) -{ - const float SOUND_INTENSITY = 180.0f; - if (m_sQueueSample.m_fDistance >= SOUND_INTENSITY) - return false; - - uint8 emittingVol = (vol / 2) + ((vol / 2) * m_sQueueSample.m_fDistance / SOUND_INTENSITY); - - if (m_sQueueSample.m_fDistance / SOUND_INTENSITY < 0.7f) - emittingVol -= emittingVol * gJumboVolOffsetPercentage / 100; - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - - if (m_sQueueSample.m_nVolume != 0) { - m_sQueueSample.m_nCounter = 1; - m_sQueueSample.m_nSampleIndex = SFX_JUMBO_TAXI; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_nFrequency = GetJumboTaxiFreq(); - 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 = 4.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 4; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - return true; -} - -bool -cAudioManager::SetupJumboWhineSound(uint8 emittingVol, int32 freq) -{ - const float SOUND_INTENSITY = 170.0f; - - if (m_sQueueSample.m_fDistance >= SOUND_INTENSITY) - return false; - - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, SOUND_INTENSITY, m_sQueueSample.m_fDistance); - - if (m_sQueueSample.m_nVolume != 0) { - m_sQueueSample.m_nCounter = 2; - m_sQueueSample.m_nSampleIndex = SFX_JUMBO_WHINE; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 1; - m_sQueueSample.m_nFrequency = freq; - 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 = 4.0f; - m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 4; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - return true; -} - void -cAudioManager::SetupPedComments(cPedParams *params, uint32 sound) +cAudioManager::ClearRequestedQueue() { - CPed *ped = params->m_pPed; - uint8 emittingVol; - float soundIntensity; - tPedComment pedComment; - - if (ped != nil) { - switch (sound) { - case SOUND_AMMUNATION_WELCOME_1: - pedComment.m_nSampleIndex = SFX_AMMU_D; - break; - case SOUND_AMMUNATION_WELCOME_2: - pedComment.m_nSampleIndex = SFX_AMMU_E; - break; - case SOUND_AMMUNATION_WELCOME_3: - pedComment.m_nSampleIndex = SFX_AMMU_F; - break; - default: - pedComment.m_nSampleIndex = GetPedCommentSfx(ped, sound); - if (pedComment.m_nSampleIndex == NO_SAMPLE) - return; - break; - } - - soundIntensity = 50.0f; - } else { - switch (sound) { - 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; - case SOUND_PED_BODYCAST_HIT: - if (CTimer::GetTimeInMilliseconds() <= gNextCryTime) - return; - soundIntensity = 50.0f; - gNextCryTime = CTimer::GetTimeInMilliseconds() + 500; - pedComment.m_nSampleIndex = GetRandomNumberInRange(m_sQueueSample.m_nEntityIndex % 4, SFX_PLASTER_BLOKE_1, SFX_PLASTER_BLOKE_4); - break; - case SOUND_INJURED_PED_MALE_OUCH: - case SOUND_INJURED_PED_MALE_PRISON: - soundIntensity = 50.0f; - pedComment.m_nSampleIndex = GetRandomNumberInRange(m_sQueueSample.m_nEntityIndex % 4, SFX_GENERIC_MALE_GRUNT_1, SFX_GENERIC_MALE_GRUNT_15); - break; - 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; - default: - return; - } - } - - if (params->m_fDistance < SQR(soundIntensity)) { - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - if (sound != SOUND_PAGER) { - switch (sound) { - case SOUND_AMMUNATION_WELCOME_1: - case SOUND_AMMUNATION_WELCOME_2: - case SOUND_AMMUNATION_WELCOME_3: - emittingVol = maxVolume; - break; - default: - if (CWorld::GetIsLineOfSightClear(TheCamera.GetPosition(), m_sQueueSample.m_vecPos, true, false, false, false, false, false)) - emittingVol = maxVolume; - else - emittingVol = 31; - break; - } - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, soundIntensity, m_sQueueSample.m_fDistance); - pedComment.m_nProcess = 10; - if (m_sQueueSample.m_nVolume != 0) { - pedComment.m_nEntityIndex = m_sQueueSample.m_nEntityIndex; - pedComment.m_vecPos = m_sQueueSample.m_vecPos; - pedComment.m_fDistance = m_sQueueSample.m_fDistance; - pedComment.m_bVolume = m_sQueueSample.m_nVolume; - m_sPedComments.Add(&pedComment); - } - } - } -} - -void -cAudioManager::Terminate() -{ - if (m_bIsInitialised) { - MusicManager.Terminate(); - - for (uint32 i = 0; i < totalAudioEntitiesSlots; i++) { - m_asAudioEntities[i].m_bIsUsed = false; - m_anAudioEntityIndices[i] = ARRAY_SIZE(m_anAudioEntityIndices); - } - - m_nAudioEntitiesTotal = 0; - m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal = 0; - PreTerminateGameSpecificShutdown(); - - for (uint32 i = 0; i < MAX_SAMPLEBANKS; i++) { - if (SampleManager.IsSampleBankLoaded(i)) - SampleManager.UnloadSampleBank(i); - } - - SampleManager.Terminate(); - - m_bIsInitialised = false; - PostTerminateGameSpecificShutdown(); + for (int32 i = 0; i < m_nActiveSamples; i++) { + m_abSampleQueueIndexTable[m_nActiveSampleQueue][i] = m_nActiveSamples; } + m_SampleRequestQueuesStatus[m_nActiveSampleQueue] = 0; } void -cAudioManager::TranslateEntity(Const CVector *in, CVector *out) const -{ - *out = MultiplyInverse(TheCamera.GetMatrix(), *in); -} - -void -cAudioManager::UpdateGasPedalAudio(CAutomobile *automobile) +cAudioManager::ClearActiveSamples() { - float newGasPedalAudio; - - float gasPedal = Abs(automobile->m_fGasPedal); - float gasPedalAudio = automobile->m_fGasPedalAudio; - - if (gasPedalAudio < gasPedal) { - newGasPedalAudio = gasPedalAudio + 0.09f; - if (gasPedal <= newGasPedalAudio) - newGasPedalAudio = gasPedal; - } else { - newGasPedalAudio = gasPedalAudio - 0.07f; - if (gasPedal >= newGasPedalAudio) - newGasPedalAudio = gasPedal; + for (int32 i = 0; i < m_nActiveSamples; i++) { + m_asActiveSamples[i].m_nEntityIndex = AEHANDLE_NONE; + m_asActiveSamples[i].m_nCounter = 0; + m_asActiveSamples[i].m_nSampleIndex = NO_SAMPLE; + m_asActiveSamples[i].m_nBankIndex = SAMPLEBANK_INVALID; + m_asActiveSamples[i].m_bIs2D = false; + m_asActiveSamples[i].m_nReleasingVolumeModificator = 5; + m_asActiveSamples[i].m_nFrequency = 0; + m_asActiveSamples[i].m_nVolume = 0; + m_asActiveSamples[i].m_nEmittingVolume = 0; + m_asActiveSamples[i].m_fDistance = 0.0f; + m_asActiveSamples[i].m_bIsProcessed = false; + m_asActiveSamples[i].m_bLoopEnded = false; + m_asActiveSamples[i].m_nLoopCount = 1; + m_asActiveSamples[i].m_nLoopStart = 0; + m_asActiveSamples[i].m_nLoopEnd = -1; + m_asActiveSamples[i].m_fSpeedMultiplier = 0.0f; + m_asActiveSamples[i].m_fSoundIntensity = 200.0f; + m_asActiveSamples[i].m_nOffset = 63; + m_asActiveSamples[i].m_bReleasingSoundFlag = false; + m_asActiveSamples[i].m_nCalculatedVolume = 0; + m_asActiveSamples[i].m_nReleasingVolumeDivider = 0; + m_asActiveSamples[i].m_nVolumeChange = -1; + m_asActiveSamples[i].m_vecPos = {0.0f, 0.0f, 0.0f}; + m_asActiveSamples[i].m_bReverbFlag = false; + m_asActiveSamples[i].m_nLoopsRemaining = 0; + m_asActiveSamples[i].m_bRequireReflection = false; } - automobile->m_fGasPedalAudio = newGasPedalAudio; } void -cAudioManager::UpdateReflections() -{ - const CVector &camPos = TheCamera.GetPosition(); - CColPoint colpoint; - CEntity *ent; - - if (m_FrameCounter % 8 == 0) { - m_avecReflectionsPos[0] = camPos; - m_avecReflectionsPos[0].y += 50.f; - if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[0], colpoint, ent, true, false, false, true, false, true, true)) - m_afReflectionsDistances[0] = Distance(camPos, colpoint.point); - else - m_afReflectionsDistances[0] = 50.0f; - } else if ((m_FrameCounter + 1) % 8 == 0) { - m_avecReflectionsPos[1] = camPos; - m_avecReflectionsPos[1].y -= 50.0f; - if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[1], colpoint, ent, true, false, false, true, false, true, true)) - m_afReflectionsDistances[1] = Distance(camPos, colpoint.point); - else - m_afReflectionsDistances[1] = 50.0f; - } else if ((m_FrameCounter + 2) % 8 == 0) { - m_avecReflectionsPos[2] = camPos; - m_avecReflectionsPos[2].x -= 50.0f; - if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[2], colpoint, ent, true, false, false, true, false, true, true)) - m_afReflectionsDistances[2] = Distance(camPos, colpoint.point); - else - m_afReflectionsDistances[2] = 50.0f; - } else if ((m_FrameCounter + 3) % 8 == 0) { - m_avecReflectionsPos[3] = camPos; - m_avecReflectionsPos[3].x += 50.0f; - if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[3], colpoint, ent, true, false, false, true, false, true, true)) - m_afReflectionsDistances[3] = Distance(camPos, colpoint.point); - else - m_afReflectionsDistances[3] = 50.0f; - } else if ((m_FrameCounter + 4) % 8 == 0) { - m_avecReflectionsPos[4] = camPos; - m_avecReflectionsPos[4].z += 50.0f; - if (CWorld::ProcessVerticalLine(camPos, m_avecReflectionsPos[4].z, colpoint, ent, true, false, false, false, true, false, nil)) - m_afReflectionsDistances[4] = colpoint.point.z - camPos.z; - else - m_afReflectionsDistances[4] = 50.0f; - } -} - -bool -cAudioManager::UsesReverseWarning(int32 model) const -{ - return model == LINERUN || model == FIRETRUK || model == TRASH || model == BUS || model == COACH; -} - -bool -cAudioManager::UsesSiren(int32 model) const -{ - switch (model) { - case FIRETRUK: - case AMBULAN: - case FBICAR: - case POLICE: - case ENFORCER: - case PREDATOR: - return true; - default: - return false; - } -} - -bool -cAudioManager::UsesSirenSwitching(int32 model) const +cAudioManager::GenerateIntegerRandomNumberTable() { - switch (model) { - case AMBULAN: - case POLICE: - case ENFORCER: - case PREDATOR: - return true; - default: - return false; + for (int32 i = 0; i < ARRAY_SIZE(m_anRandomTable); i++) { + m_anRandomTable[i] = rand(); } } +#ifdef GTA_PC void cAudioManager::AdjustSamplesVolume() { @@ -9790,3 +967,4 @@ cAudioManager::ComputeEmittingVolume(uint8 emittingVolume, float intensity, floa return (quatIntensity - (dist - diffIntensity)) * (float)emittingVolume / quatIntensity; return emittingVolume; } +#endif diff --git a/src/audio/AudioManager.h b/src/audio/AudioManager.h index bbbc84bd..b2b44c07 100644 --- a/src/audio/AudioManager.h +++ b/src/audio/AudioManager.h @@ -75,7 +75,18 @@ public: uint8 m_nCommentsInBank[NUM_PED_COMMENTS_BANKS]; uint8 m_nActiveBank; - cPedComments(); + cPedComments() + { + for (int i = 0; i < NUM_PED_COMMENTS_SLOTS; i++) + for (int j = 0; j < NUM_PED_COMMENTS_BANKS; j++) { + m_asPedComments[j][i].m_nProcess = -1; + m_nIndexMap[j][i] = NUM_PED_COMMENTS_SLOTS; + } + + for (int i = 0; i < NUM_PED_COMMENTS_BANKS; i++) + m_nCommentsInBank[i] = 0; + m_nActiveBank = 0; + } void Add(tPedComment *com); void Process(); }; @@ -222,11 +233,10 @@ public: float speedMultiplier) const; int32 ComputePan(float, CVector *); uint8 ComputeVolume(uint8 emittingVolume, float soundIntensity, float distance) const; - int32 CreateEntity(int32 type, void *entity); + int32 CreateEntity(eAudioType type, void *entity); void DestroyAllGameCreatedEntities(); void DestroyEntity(int32 id); - void DoJumboVolOffset() const; void DoPoliceRadioCrackle(); // functions returning talk sfx, @@ -434,14 +444,14 @@ public: void ServiceSoundEffects(); int8 SetCurrent3DProvider(uint8 which); void SetDynamicAcousticModelingStatus(bool status); - void SetEffectsFadeVolume(uint8 volume) const; + void SetEffectsFadeVol(uint8 volume) const; void SetEffectsMasterVolume(uint8 volume) const; void SetEntityStatus(int32 id, uint8 status); uint32 SetLoopingCollisionRequestedSfxFreqAndGetVol(const cAudioCollision &audioCollision); void SetMissionAudioLocation(float x, float y, float z); void SetMissionScriptPoliceAudio(int32 sfx) const; void SetMonoMode(uint8); // todo (mobile) - void SetMusicFadeVolume(uint8 volume) const; + void SetMusicFadeVol(uint8 volume) const; void SetMusicMasterVolume(uint8 volume) const; void SetSpeakerConfig(int32 conf) const; void SetUpLoopingCollisionSound(const cAudioCollision &col, uint8 counter); @@ -464,9 +474,11 @@ public: bool UsesSiren(int32 model) const; bool UsesSirenSwitching(int32 model) const; +#ifdef GTA_PC // only used in pc void AdjustSamplesVolume(); uint8 ComputeEmittingVolume(uint8 emittingVolume, float intensity, float dist); +#endif }; #ifdef AUDIO_MSS diff --git a/src/audio/DMAudio.cpp b/src/audio/DMAudio.cpp index 888081b7..18d13c9d 100644 --- a/src/audio/DMAudio.cpp +++ b/src/audio/DMAudio.cpp @@ -29,7 +29,7 @@ cDMAudio::Service(void) } int32 -cDMAudio::CreateEntity(int32 type, void *UID) +cDMAudio::CreateEntity(eAudioType type, void *UID) { return AudioManager.CreateEntity(type, (CPhysical *)UID); } @@ -82,7 +82,7 @@ cDMAudio::SetEffectsFadeVol(uint8 volume) uint8 vol = volume; if ( vol > MAX_VOLUME ) vol = MAX_VOLUME; - AudioManager.SetEffectsFadeVolume(vol); + AudioManager.SetEffectsFadeVol(vol); } void @@ -91,7 +91,7 @@ cDMAudio::SetMusicFadeVol(uint8 volume) uint8 vol = volume; if ( vol > MAX_VOLUME ) vol = MAX_VOLUME; - AudioManager.SetMusicFadeVolume(vol); + AudioManager.SetMusicFadeVol(vol); } uint8 diff --git a/src/audio/DMAudio.h b/src/audio/DMAudio.h index 052fdb81..e1a18830 100644 --- a/src/audio/DMAudio.h +++ b/src/audio/DMAudio.h @@ -20,7 +20,7 @@ public: void Terminate(void); void Service(void); - int32 CreateEntity(int32 type, void *UID); + int32 CreateEntity(eAudioType type, void *UID); void DestroyEntity(int32 audioEntity); void SetEntityStatus(int32 audioEntity, uint8 status); void PlayOneShot(int32 audioEntity, uint16 oneShot, float volume); From 4ff0697b4d29144e6dfad4ca14a98aa1bce5bf5e Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Sat, 16 May 2020 21:00:27 +0300 Subject: [PATCH 2/7] More small audio fixes --- src/audio/AudioLogic.cpp | 13 ++++++------- src/audio/AudioManager.cpp | 14 +++++++------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/audio/AudioLogic.cpp b/src/audio/AudioLogic.cpp index 05483617..2a6581ee 100644 --- a/src/audio/AudioLogic.cpp +++ b/src/audio/AudioLogic.cpp @@ -1304,7 +1304,7 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile * freq = GearFreqAdj[CurrentPretendGear] + freqModifier + 22050; SampleManager.SetChannelFrequency(m_nActiveSamples, freq); if (!channelUsed) { - SampleManager.SetChannelReverbFlag(m_nActiveSamples, m_bDynamicAcousticModelingStatus != 0); + SampleManager.SetChannelReverbFlag(m_nActiveSamples, m_bDynamicAcousticModelingStatus != false); SampleManager.StartChannel(m_nActiveSamples); } LastAccel = accelerateState; @@ -1326,7 +1326,7 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile * freq /= 2; SampleManager.SetChannelFrequency(m_nActiveSamples, freq); if (!channelUsed) { - SampleManager.SetChannelReverbFlag(m_nActiveSamples, m_bDynamicAcousticModelingStatus != 0); + SampleManager.SetChannelReverbFlag(m_nActiveSamples, m_bDynamicAcousticModelingStatus != false); SampleManager.StartChannel(m_nActiveSamples); } LastAccel = accelerateState; @@ -1349,7 +1349,7 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile * freq /= 2; SampleManager.SetChannelFrequency(m_nActiveSamples, freq); if (!channelUsed) { - SampleManager.SetChannelReverbFlag(m_nActiveSamples, m_bDynamicAcousticModelingStatus != 0); + SampleManager.SetChannelReverbFlag(m_nActiveSamples, m_bDynamicAcousticModelingStatus != false); SampleManager.StartChannel(m_nActiveSamples); } LastAccel = accelerateState; @@ -1515,11 +1515,10 @@ cAudioManager::GetVehicleNonDriveWheelSkidValue(uint8 wheel, CAutomobile *automo { float relativeVelChange; - if (automobile->m_aWheelState[wheel] == 2) { + if (automobile->m_aWheelState[wheel] == WHEEL_STATE_SKIDDING) relativeVelChange = Min(1.0f, Abs(velocityChange) / transmission->fMaxVelocity); - } else { + else relativeVelChange = 0.0f; - } return Max(relativeVelChange, Min(1.0f, Abs(automobile->m_vecTurnSpeed.z) * 20.0f)); } @@ -1606,7 +1605,7 @@ cAudioManager::ProcessVehicleSirenOrAlarm(cVehicleParams *params) if (params->m_fDistance < SQR(SOUND_INTENSITY)) { CVehicle *veh = params->m_pVehicle; - if (veh->m_bSirenOrAlarm == 0 && veh->m_nAlarmState <= 0) + if (veh->m_bSirenOrAlarm == false && veh->m_nAlarmState <= 0) return; #ifdef FIX_BUGS diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp index eecc8e7d..458341b9 100644 --- a/src/audio/AudioManager.cpp +++ b/src/audio/AudioManager.cpp @@ -32,7 +32,7 @@ cAudioManager::cAudioManager() ClearActiveSamples(); GenerateIntegerRandomNumberTable(); field_4 = 0; - m_bDynamicAcousticModelingStatus = 1; + m_bDynamicAcousticModelingStatus = true; for (int i = 0; i < NUM_AUDIOENTITIES; i++) { m_asAudioEntities[i].m_bIsUsed = false; @@ -514,19 +514,19 @@ cAudioManager::RandomDisplacement(uint32 seed) const { int32 value; - static bool bIsEven = true; - static uint32 base = 0; + static bool bPos = true; + static uint32 Adjustment = 0; if (!seed) return 0; - value = m_anRandomTable[(base + seed) % 5] % seed; - base += value; + value = m_anRandomTable[(Adjustment + seed) % 5] % seed; + Adjustment += value; if (value % 2) { - bIsEven = !bIsEven; + bPos = !bPos; } - if (!bIsEven) + if (!bPos) value = -value; return value; } From ad0b99231e31c5374a822a3f2173958f6a0ce517 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Sat, 16 May 2020 23:54:44 +0300 Subject: [PATCH 3/7] Remove magic consts from ms_aAnimAssocDefinitions --- src/animation/AnimManager.cpp | 53 ++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/src/animation/AnimManager.cpp b/src/animation/AnimManager.cpp index 8fb1576c..444b6d45 100644 --- a/src/animation/AnimManager.cpp +++ b/src/animation/AnimManager.cpp @@ -530,33 +530,36 @@ char const *aRocketStrafeRightAnimations[] = { "idle_rocket", "walkst_rocket_right", }; + +#define awc(a) ARRAY_SIZE(a), a const AnimAssocDefinition CAnimManager::ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_GROUPS] = { - { "man", "ped", MI_COP, 173, aStdAnimations, aStdAnimDescs }, - { "player", "ped", MI_COP, 5, aPlayerAnimations, aStdAnimDescs }, - { "playerrocket", "ped", MI_COP, 5, aPlayerWithRocketAnimations, aStdAnimDescs }, - { "player1armed", "ped", MI_COP, 5, aPlayer1ArmedAnimations, aStdAnimDescs }, - { "player2armed", "ped", MI_COP, 5, aPlayer2ArmedAnimations, aStdAnimDescs }, - { "playerBBBat", "ped", MI_COP, 5, aPlayerBBBatAnimations, aStdAnimDescs }, - { "shuffle", "ped", MI_COP, 4, aShuffleAnimations, aStdAnimDescs }, - { "oldman", "ped", MI_COP, 4, aOldAnimations, aStdAnimDescs }, - { "gang1", "ped", MI_COP, 4, aGang1Animations, aStdAnimDescs }, - { "gang2", "ped", MI_COP, 4, aGang2Animations, aStdAnimDescs }, - { "fatman", "ped", MI_COP, 4, aFatAnimations, aStdAnimDescs }, - { "oldfatman", "ped", MI_COP, 4, aOldFatAnimations, aStdAnimDescs }, - { "woman", "ped", MI_COP, 4, aStdWomanAnimations, aStdAnimDescs }, - { "shopping", "ped", MI_COP, 4, aWomanShopAnimations, aStdAnimDescs }, - { "busywoman", "ped", MI_COP, 4, aBusyWomanAnimations, aStdAnimDescs }, - { "sexywoman", "ped", MI_COP, 4, aSexyWomanAnimations, aStdAnimDescs }, - { "oldwoman", "ped", MI_COP, 4, aOldWomanAnimations, aStdAnimDescs }, - { "fatwoman", "ped", MI_COP, 4, aFatWomanAnimations, aStdAnimDescs }, - { "panicchunky", "ped", MI_COP, 4, aPanicChunkyAnimations, aStdAnimDescs }, - { "playerback", "ped", MI_COP, 5, aPlayerStrafeBackAnimations, aStdAnimDescs }, - { "playerleft", "ped", MI_COP, 5, aPlayerStrafeLeftAnimations, aStdAnimDescsSide }, - { "playerright", "ped", MI_COP, 5, aPlayerStrafeRightAnimations, aStdAnimDescsSide }, - { "rocketback", "ped", MI_COP, 5, aRocketStrafeBackAnimations, aStdAnimDescs }, - { "rocketleft", "ped", MI_COP, 5, aRocketStrafeLeftAnimations, aStdAnimDescsSide }, - { "rocketright", "ped", MI_COP, 5, aRocketStrafeRightAnimations, aStdAnimDescsSide }, + { "man", "ped", MI_COP, awc(aStdAnimations), aStdAnimDescs }, + { "player", "ped", MI_COP, awc(aPlayerAnimations), aStdAnimDescs }, + { "playerrocket", "ped", MI_COP, awc(aPlayerWithRocketAnimations), aStdAnimDescs }, + { "player1armed", "ped", MI_COP, awc(aPlayer1ArmedAnimations), aStdAnimDescs }, + { "player2armed", "ped", MI_COP, awc(aPlayer2ArmedAnimations), aStdAnimDescs }, + { "playerBBBat", "ped", MI_COP, awc(aPlayerBBBatAnimations), aStdAnimDescs }, + { "shuffle", "ped", MI_COP, awc(aShuffleAnimations), aStdAnimDescs }, + { "oldman", "ped", MI_COP, awc(aOldAnimations), aStdAnimDescs }, + { "gang1", "ped", MI_COP, awc(aGang1Animations), aStdAnimDescs }, + { "gang2", "ped", MI_COP, awc(aGang2Animations), aStdAnimDescs }, + { "fatman", "ped", MI_COP, awc(aFatAnimations), aStdAnimDescs }, + { "oldfatman", "ped", MI_COP, awc(aOldFatAnimations), aStdAnimDescs }, + { "woman", "ped", MI_COP, awc(aStdWomanAnimations), aStdAnimDescs }, + { "shopping", "ped", MI_COP, awc(aWomanShopAnimations), aStdAnimDescs }, + { "busywoman", "ped", MI_COP, awc(aBusyWomanAnimations), aStdAnimDescs }, + { "sexywoman", "ped", MI_COP, awc(aSexyWomanAnimations), aStdAnimDescs }, + { "oldwoman", "ped", MI_COP, awc(aOldWomanAnimations), aStdAnimDescs }, + { "fatwoman", "ped", MI_COP, awc(aFatWomanAnimations), aStdAnimDescs }, + { "panicchunky", "ped", MI_COP, awc(aPanicChunkyAnimations), aStdAnimDescs }, + { "playerback", "ped", MI_COP, awc(aPlayerStrafeBackAnimations), aStdAnimDescs }, + { "playerleft", "ped", MI_COP, awc(aPlayerStrafeLeftAnimations), aStdAnimDescsSide }, + { "playerright", "ped", MI_COP, awc(aPlayerStrafeRightAnimations), aStdAnimDescsSide }, + { "rocketback", "ped", MI_COP, awc(aRocketStrafeBackAnimations), aStdAnimDescs }, + { "rocketleft", "ped", MI_COP, awc(aRocketStrafeLeftAnimations), aStdAnimDescsSide }, + { "rocketright", "ped", MI_COP, awc(aRocketStrafeRightAnimations), aStdAnimDescsSide }, }; +#undef awc void CAnimManager::Initialise(void) From 37480fb617a4b8ecd7203af53a1711aa5cdda19d Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Sun, 17 May 2020 00:33:52 +0300 Subject: [PATCH 4/7] Fix compilation errors --- src/animation/AnimManager.cpp | 122 +- src/audio/AudioLogic.cpp | 2705 +++------------------------------ src/audio/AudioManager.h | 78 +- 3 files changed, 247 insertions(+), 2658 deletions(-) diff --git a/src/animation/AnimManager.cpp b/src/animation/AnimManager.cpp index bf4bab53..ed98be1d 100644 --- a/src/animation/AnimManager.cpp +++ b/src/animation/AnimManager.cpp @@ -899,69 +899,69 @@ char const* aChainsawStrafeRightAnimations[] = { }; - +#define awc(a) ARRAY_SIZE(a), a const AnimAssocDefinition CAnimManager::ms_aAnimAssocDefinitions[NUM_ANIM_ASSOC_GROUPS] = { { "man", "ped", MI_COP, awc(aStdAnimations), aStdAnimDescs }, - { "van", "van", MI_COP, 8, aVanAnimations, aVanAnimDescs }, - { "coach", "coach", MI_COP, 5, aCoachAnimations, aCoachAnimDescs }, - { "bikes", "bikes", MI_COP, 18, aBikesAnimations, aBikeAnimDescs }, - { "bikev", "bikev", MI_COP, 18, aBikevAnimations, aBikeAnimDescs }, - { "bikeh", "bikeh", MI_COP, 18, aBikehAnimations, aBikeAnimDescs }, - { "biked", "biked", MI_COP, 18, aBikedAnimations, aBikeAnimDescs }, - { "unarmed", "ped", MI_COP, 3, aUnarmedAnimations, aMeleeAnimDescs }, - { "screwdrv", "ped", MI_COP, 5, aScrewdriverAnimations, aMeleeAnimDescs }, - { "knife", "knife", MI_COP, 5, aKnifeAnimations, aMeleeAnimDescs }, - { "baseball", "baseball", MI_COP, 5, aBaseballbatAnimations, aSwingAnimDescs }, - { "golfclub", "baseball", MI_COP, 5, aGolfclubAnimations, aSwingAnimDescs }, - { "chainsaw", "chainsaw", MI_COP, 3, aChainsawAnimations, aMeleeAnimDescs }, - { "python", "python", MI_COP, 4, aPythonAnimations, aWeaponAnimDescs }, - { "colt45", "colt45", MI_COP, 5, aColtAnimations, aWeaponAnimDescs }, - { "shotgun", "shotgun", MI_COP, 2, aShotgunAnimations, aWeaponAnimDescs }, - { "buddy", "buddy", MI_COP, 2, aBuddyAnimations, aWeaponAnimDescs }, - { "tec", "tec", MI_COP, 4, aTecAnimations, aWeaponAnimDescs }, - { "uzi", "uzi", MI_COP, 4, aUziAnimations, aWeaponAnimDescs }, - { "rifle", "rifle", MI_COP, 4, aRifleAnimations, aWeaponAnimDescs }, - { "m60", "m60", MI_COP, 3, aM60Animations, aWeaponAnimDescs }, - { "sniper", "sniper", MI_COP, 1, aSniperAnimations, aWeaponAnimDescs }, - { "grenade", "grenade", MI_COP, 3, aThrowAnimations, aWeaponAnimDescs }, - { "flame", "flame", MI_COP, 1, aFlamethrowerAnimations, aWeaponAnimDescs }, - { "medic", "medic", MI_COP, 1, aMedicAnimations, aMedicAnimDescs }, - { "sunbathe", "sunbathe", MI_COP, 1, aSunbatheAnimations, aSunbatheAnimDescs }, - { "playidles", "playidles", MI_COP, 4, aPlayerIdleAnimations, aPlayerIdleAnimDescs }, - { "riot", "riot", MI_COP, 7, aRiotAnimations, aRiotAnimDescs }, - { "strip", "strip", MI_COP, 7, aStripAnimations, aStripAnimDescs }, - { "lance", "lance", MI_COP, 1, aLanceAnimations, aSunbatheAnimDescs }, - { "player", "ped", MI_COP, 5, aPlayerAnimations, aStdAnimDescs }, - { "playerrocket", "ped", MI_COP, 5, aPlayerWithRocketAnimations, aStdAnimDescs }, - { "player1armed", "ped", MI_COP, 5, aPlayer1ArmedAnimations, aStdAnimDescs }, - { "player2armed", "ped", MI_COP, 5, aPlayer2ArmedAnimations, aStdAnimDescs }, - { "playerBBBat", "ped", MI_COP, 5, aPlayerBBBatAnimations, aStdAnimDescs }, - { "playercsaw", "ped", MI_COP, 5, aPlayerChainsawAnimations, aStdAnimDescs }, - { "shuffle", "ped", MI_COP, 4, aShuffleAnimations, aStdAnimDescs }, - { "oldman", "ped", MI_COP, 4, aOldAnimations, aStdAnimDescs }, - { "gang1", "ped", MI_COP, 4, aGang1Animations, aStdAnimDescs }, - { "gang2", "ped", MI_COP, 4, aGang2Animations, aStdAnimDescs }, - { "fatman", "ped", MI_COP, 4, aFatAnimations, aStdAnimDescs }, - { "oldfatman", "ped", MI_COP, 4, aOldFatAnimations, aStdAnimDescs }, - { "jogger", "ped", MI_COP, 4, aJoggerAnimations, aStdAnimDescs }, - { "woman", "ped", MI_COP, 4, aStdWomanAnimations, aStdAnimDescs }, - { "shopping", "ped", MI_COP, 4, aWomanShopAnimations, aStdAnimDescs }, - { "busywoman", "ped", MI_COP, 4, aBusyWomanAnimations, aStdAnimDescs }, - { "sexywoman", "ped", MI_COP, 4, aSexyWomanAnimations, aStdAnimDescs }, - { "fatwoman", "ped", MI_COP, 4, aFatWomanAnimations, aStdAnimDescs }, - { "oldwoman", "ped", MI_COP, 4, aOldWomanAnimations, aStdAnimDescs }, - { "jogwoman", "ped", MI_COP, 4, aJoggerWomanAnimations, aStdAnimDescs }, - { "panicchunky", "ped", MI_COP, 4, aPanicChunkyAnimations, aStdAnimDescs }, - { "skate", "skate", MI_COP, 4, aSkateAnimations, aStdAnimDescs }, - { "playerback", "ped", MI_COP, 5, aPlayerStrafeBackAnimations, aStdAnimDescs }, - { "playerleft", "ped", MI_COP, 5, aPlayerStrafeLeftAnimations, aStdAnimDescsSide }, - { "playerright", "ped", MI_COP, 5, aPlayerStrafeRightAnimations, aStdAnimDescsSide }, - { "rocketback", "ped", MI_COP, 5, aRocketStrafeBackAnimations, aStdAnimDescs }, - { "rocketleft", "ped", MI_COP, 5, aRocketStrafeLeftAnimations, aStdAnimDescsSide }, - { "rocketright", "ped", MI_COP, 5, aRocketStrafeRightAnimations, aStdAnimDescsSide }, - { "csawback", "ped", MI_COP, 5, aChainsawStrafeBackAnimations, aStdAnimDescs }, - { "csawleft", "ped", MI_COP, 5, aChainsawStrafeLeftAnimations, aStdAnimDescsSide }, - { "csawright", "ped", MI_COP, 5, aChainsawStrafeRightAnimations, aStdAnimDescsSide }, + { "van", "van", MI_COP, awc(aVanAnimations), aVanAnimDescs }, + { "coach", "coach", MI_COP, awc(aCoachAnimations), aCoachAnimDescs }, + { "bikes", "bikes", MI_COP, awc(aBikesAnimations), aBikeAnimDescs }, + { "bikev", "bikev", MI_COP, awc(aBikevAnimations), aBikeAnimDescs }, + { "bikeh", "bikeh", MI_COP, awc(aBikehAnimations), aBikeAnimDescs }, + { "biked", "biked", MI_COP, awc(aBikedAnimations), aBikeAnimDescs }, + { "unarmed", "ped", MI_COP, awc(aUnarmedAnimations), aMeleeAnimDescs }, + { "screwdrv", "ped", MI_COP, awc(aScrewdriverAnimations), aMeleeAnimDescs }, + { "knife", "knife", MI_COP, awc(aKnifeAnimations), aMeleeAnimDescs }, + { "baseball", "baseball", MI_COP, awc(aBaseballbatAnimations), aSwingAnimDescs }, + { "golfclub", "baseball", MI_COP, awc(aGolfclubAnimations), aSwingAnimDescs }, + { "chainsaw", "chainsaw", MI_COP, awc(aChainsawAnimations), aMeleeAnimDescs }, + { "python", "python", MI_COP, awc(aPythonAnimations), aWeaponAnimDescs }, + { "colt45", "colt45", MI_COP, awc(aColtAnimations), aWeaponAnimDescs }, + { "shotgun", "shotgun", MI_COP, awc(aShotgunAnimations), aWeaponAnimDescs }, + { "buddy", "buddy", MI_COP, awc(aBuddyAnimations), aWeaponAnimDescs }, + { "tec", "tec", MI_COP, awc(aTecAnimations), aWeaponAnimDescs }, + { "uzi", "uzi", MI_COP, awc(aUziAnimations), aWeaponAnimDescs }, + { "rifle", "rifle", MI_COP, awc(aRifleAnimations), aWeaponAnimDescs }, + { "m60", "m60", MI_COP, awc(aM60Animations), aWeaponAnimDescs }, + { "sniper", "sniper", MI_COP, awc(aSniperAnimations), aWeaponAnimDescs }, + { "grenade", "grenade", MI_COP, awc(aThrowAnimations), aWeaponAnimDescs }, + { "flame", "flame", MI_COP, awc(aFlamethrowerAnimations), aWeaponAnimDescs }, + { "medic", "medic", MI_COP, awc(aMedicAnimations), aMedicAnimDescs }, + { "sunbathe", "sunbathe", MI_COP, awc(aSunbatheAnimations), aSunbatheAnimDescs }, + { "playidles", "playidles", MI_COP, awc(aPlayerIdleAnimations), aPlayerIdleAnimDescs }, + { "riot", "riot", MI_COP, awc(aRiotAnimations), aRiotAnimDescs }, + { "strip", "strip", MI_COP, awc(aStripAnimations), aStripAnimDescs }, + { "lance", "lance", MI_COP, awc(aLanceAnimations), aSunbatheAnimDescs }, + { "player", "ped", MI_COP, awc(aPlayerAnimations), aStdAnimDescs }, + { "playerrocket", "ped", MI_COP, awc(aPlayerWithRocketAnimations), aStdAnimDescs }, + { "player1armed", "ped", MI_COP, awc(aPlayer1ArmedAnimations), aStdAnimDescs }, + { "player2armed", "ped", MI_COP, awc(aPlayer2ArmedAnimations), aStdAnimDescs }, + { "playerBBBat", "ped", MI_COP, awc(aPlayerBBBatAnimations), aStdAnimDescs }, + { "playercsaw", "ped", MI_COP, awc(aPlayerChainsawAnimations), aStdAnimDescs }, + { "shuffle", "ped", MI_COP, awc(aShuffleAnimations), aStdAnimDescs }, + { "oldman", "ped", MI_COP, awc(aOldAnimations), aStdAnimDescs }, + { "gang1", "ped", MI_COP, awc(aGang1Animations), aStdAnimDescs }, + { "gang2", "ped", MI_COP, awc(aGang2Animations), aStdAnimDescs }, + { "fatman", "ped", MI_COP, awc(aFatAnimations), aStdAnimDescs }, + { "oldfatman", "ped", MI_COP, awc(aOldFatAnimations), aStdAnimDescs }, + { "jogger", "ped", MI_COP, awc(aJoggerAnimations), aStdAnimDescs }, + { "woman", "ped", MI_COP, awc(aStdWomanAnimations), aStdAnimDescs }, + { "shopping", "ped", MI_COP, awc(aWomanShopAnimations), aStdAnimDescs }, + { "busywoman", "ped", MI_COP, awc(aBusyWomanAnimations), aStdAnimDescs }, + { "sexywoman", "ped", MI_COP, awc(aSexyWomanAnimations), aStdAnimDescs }, + { "fatwoman", "ped", MI_COP, awc(aFatWomanAnimations), aStdAnimDescs }, + { "oldwoman", "ped", MI_COP, awc(aOldWomanAnimations), aStdAnimDescs }, + { "jogwoman", "ped", MI_COP, awc(aJoggerWomanAnimations), aStdAnimDescs }, + { "panicchunky", "ped", MI_COP, awc(aPanicChunkyAnimations), aStdAnimDescs }, + { "skate", "skate", MI_COP, awc(aSkateAnimations), aStdAnimDescs }, + { "playerback", "ped", MI_COP, awc(aPlayerStrafeBackAnimations), aStdAnimDescs }, + { "playerleft", "ped", MI_COP, awc(aPlayerStrafeLeftAnimations), aStdAnimDescsSide }, + { "playerright", "ped", MI_COP, awc(aPlayerStrafeRightAnimations), aStdAnimDescsSide }, + { "rocketback", "ped", MI_COP, awc(aRocketStrafeBackAnimations), aStdAnimDescs }, + { "rocketleft", "ped", MI_COP, awc(aRocketStrafeLeftAnimations), aStdAnimDescsSide }, + { "rocketright", "ped", MI_COP, awc(aRocketStrafeRightAnimations), aStdAnimDescsSide }, + { "csawback", "ped", MI_COP, awc(aChainsawStrafeBackAnimations), aStdAnimDescs }, + { "csawleft", "ped", MI_COP, awc(aChainsawStrafeLeftAnimations), aStdAnimDescsSide }, + { "csawright", "ped", MI_COP, awc(aChainsawStrafeRightAnimations), aStdAnimDescsSide }, }; #undef awc diff --git a/src/audio/AudioLogic.cpp b/src/audio/AudioLogic.cpp index 2a6581ee..f92ad464 100644 --- a/src/audio/AudioLogic.cpp +++ b/src/audio/AudioLogic.cpp @@ -330,13 +330,13 @@ enum eVehicleModel { LINERUN, PEREN, SENTINEL, - PATRIOT, + RIO, FIRETRUK, TRASH, STRETCH, MANANA, INFERNUS, - BLISTA, + VOODOO, PONY, MULE, CHEETAH, @@ -345,11 +345,11 @@ enum eVehicleModel { MOONBEAM, ESPERANT, TAXI, - KURUMA, + WASHING, BOBCAT, MRWHOOP, BFINJECT, - CORPSE, + HUNTER, POLICE, ENFORCER, SECURICA, @@ -358,43 +358,83 @@ enum eVehicleModel { BUS, RHINO, BARRACKS, - TRAIN, + CUBAN, CHOPPER, - DODO, + ANGEL, COACH, CABBIE, STALLION, RUMPO, RCBANDIT, - BELLYUP, - MRWONGS, - MAFIA, - YARDIE, - YAKUZA, - DIABLOS, - COLUMB, - HOODS, + ROMERO, + PACKER, + SENTXS, + ADMIRAL, + SQUALO, + SEASPAR, + PIZZABOY, + GANGBUR, AIRTRAIN, DEADDODO, SPEEDER, REEFER, - PANLANT, + TROPIC, FLATBED, YANKEE, - ESCAPE, - BORGNINE, - TOYZ, - GHOST, - CAR151, - CAR152, - CAR153, - CAR154, - CAR155, - CAR156, - CAR157, - CAR158, - CAR159, - MAX_CARS + CADDY, + ZEBRA, + TOPFUN, + SKIMMER, + PCJ600, + FAGGIO, + FREEWAY, + RCBARON, + RCRAIDER, + GLENDALE, + OCEANIC, + SANCHEZ, + SPARROW, + PATRIOT, + LOVEFIST, + COASTG, + DINGHY, + HERMES, + SABRE, + SABRETUR, + PHEONIX, + WALTON, + REGINA, + COMET, + DELUXO, + BURRITO, + SPAND, + MARQUIS, + BAGGAGE, + KAUFMAN, + MAVERICK, + VCNMAV, + RANCHER, + FBIRANCH, + VIRGO, + GREENWOO, + JETMAX, + HOTRING, + SANDKING, + BLISTAC, + POLMAV, + BOXVILLE, + BENSON, + MESA, + RCGOBLIN, + HOTRINA, + HOTRINB, + BLOODRA, + BLOODRB, + VICECHEE, + + // HACK so this compiles + // TODO(MIAMI): check it out + DODO = -1 }; @@ -408,76 +448,116 @@ struct tVehicleSampleData { uint8 m_bDoorType; }; -const tVehicleSampleData aVehicleSettings[MAX_CARS] = {{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}, - {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_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_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_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_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}}; +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_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_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_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_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_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} }; bool bPlayerJustEnteredCar; @@ -2937,62 +3017,9 @@ cAudioManager::ProcessPed(CPhysical *ped) // params.m_bDistanceCalculated = false; params.m_pPed = (CPed *)ped; params.m_fDistance = GetDistanceSquared(m_sQueueSample.m_vecPos); - if (ped->GetModelIndex() == MI_FATMALE02) - ProcessPedHeadphones(¶ms); ProcessPedOneShots(¶ms); } -void -cAudioManager::ProcessPedHeadphones(cPedParams *params) -{ - CPed *ped; - CAutomobile *veh; - uint8 emittingVol; - - if (params->m_fDistance < 49.f) { - ped = params->m_pPed; - if (!ped->bIsAimingGun || ped->m_bodyPartBleeding != PED_HEAD) { - CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); - if (ped->bInVehicle && ped->m_nPedState == PED_DRIVING) { - emittingVol = 10; - veh = (CAutomobile *)ped->m_pMyVehicle; - if (veh && veh->IsCar()) { - for (int32 i = 2; i < ARRAY_SIZE(veh->Doors); i++) { - if (!veh->IsDoorClosed((eDoors)i) || veh->IsDoorMissing((eDoors)i)) { - emittingVol = 42; - break; - } - } - } - } else { - emittingVol = 42; - } - - m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, 7.f, m_sQueueSample.m_fDistance); - if (m_sQueueSample.m_nVolume) { - m_sQueueSample.m_nCounter = 64; - m_sQueueSample.m_nSampleIndex = SFX_HEADPHONES; - m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; - m_sQueueSample.m_bIs2D = false; - m_sQueueSample.m_nReleasingVolumeModificator = 5; - m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_HEADPHONES); - 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 = 4.0f; - m_sQueueSample.m_fSoundIntensity = 7.0f; - m_sQueueSample.m_bReleasingSoundFlag = false; - m_sQueueSample.m_nReleasingVolumeDivider = 5; - m_sQueueSample.m_bReverbFlag = true; - m_sQueueSample.m_bRequireReflection = false; - AddSampleToRequestedQueue(); - } - return; - } - } -} - void cAudioManager::ProcessPedOneShots(cPedParams *params) { @@ -3820,158 +3847,12 @@ cAudioManager::SetupPedComments(cPedParams *params, uint32 sound) int32 cAudioManager::GetPedCommentSfx(CPed *ped, int32 sound) { - if (ped->IsPlayer()) - return GetPlayerTalkSfx(sound); + //if (ped->IsPlayer()) + // return GetPlayerTalkSfx(sound); - 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); - } + // TODO: miami peds + + return TOTAL_AUDIO_SAMPLES; } void @@ -3987,2223 +3868,7 @@ cAudioManager::GetPhrase(uint32 *phrase, uint32 *prevPhrase, uint32 sample, uint } #pragma region PED_COMMENTS - -uint32 -cAudioManager::GetPlayerTalkSfx(int16 sound) -{ - 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; - } - return sfx; -} - -uint32 -cAudioManager::GetCopTalkSfx(int16 sound) -{ - 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; -} - -uint32 -cAudioManager::GetSwatTalkSfx(int16 sound) -{ - 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); - } - - return (SFX_SWAT_VOICE_2_CHASE_1 - SFX_SWAT_VOICE_1_CHASE_1) * (m_sQueueSample.m_nEntityIndex % 4) + sfx; -} - -uint32 -cAudioManager::GetFBITalkSfx(int16 sound) -{ - 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); - } - - return (SFX_FBI_VOICE_2_CHASE_1 - SFX_FBI_VOICE_1_CHASE_1) * (m_sQueueSample.m_nEntityIndex % 3) + sfx; -} - -uint32 -cAudioManager::GetArmyTalkSfx(int16 sound) -{ - 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); - - return (SFX_ARMY_VOICE_2_CHASE_1 - SFX_ARMY_VOICE_1_CHASE_1) * (m_sQueueSample.m_nEntityIndex % 2) + sfx; -} - -uint32 -cAudioManager::GetMedicTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetFiremanTalkSfx(int16 sound) -{ - return GetGenericMaleTalkSfx(sound); -} - -uint32 -cAudioManager::GetNormalMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; - default: - return GetGenericMaleTalkSfx(sound); - } - return sfx; -} - -uint32 -cAudioManager::GetTaxiDriverTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetPimpTalkSfx(int16 sound) -{ - 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; -} - -uint32 -cAudioManager::GetMafiaTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - 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; -} - -uint32 -cAudioManager::GetDiabloTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - 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; -} - -uint32 -cAudioManager::GetYardieTalkSfx(int16 sound) -{ - 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; -} - -uint32 -cAudioManager::GetColumbianTalkSfx(int16 sound) -{ - 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); - } - 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) -{ - 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; - } - 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) -{ - 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; -} - -uint32 -cAudioManager::GetWhiteCriminalTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetMaleNo2TalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetBlackProjectMaleTalkSfx(int16 sound, int32 model) -{ - 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); - default: - return GetGenericMaleTalkSfx(sound); - } - - 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) -{ - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetBlackFatMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetBlackCasualFemaleTalkSfx(int16 sound) -{ - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetWhiteCasualFemaleTalkSfx(int16 sound) -{ - 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; -} - -uint32 -cAudioManager::GetFemaleNo3TalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetBlackFatFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetWhiteFatFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetBlackFemaleProstituteTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetWhiteFemaleProstituteTalkSfx(int16 sound) -{ - 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) -{ - 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; -} - -uint32 -cAudioManager::GetBlackProjectFemaleYoungTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetChinatownMaleOldTalkSfx(int16 sound) -{ - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetChinatownMaleYoungTalkSfx(int16 sound) -{ - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetChinatownFemaleOldTalkSfx(int16 sound) -{ - 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); - } - 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); - } - 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); - } - 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); - } - 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); - } - 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); - } - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetScumMaleTalkSfx(int16 sound) -{ - 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; -} - -uint32 -cAudioManager::GetScumFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetWhiteWorkerMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - 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; -} - -uint32 -cAudioManager::GetBusinessMaleYoungTalkSfx(int16 sound, int32 model) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - - 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); - } - - 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); - } - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetSupermodelFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetStewardMaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - 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; -} - -uint32 -cAudioManager::GetFanMaleTalkSfx(int16 sound, int32 model) -{ - 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); - } - - if (model == MI_FAN_MAN2) - sfx += (SFX_FOOTBALL_MALE_VOICE_2_DRIVER_ABUSE_1 - SFX_FOOTBALL_MALE_VOICE_1_DRIVER_ABUSE_1); - return sfx; -} - -uint32 -cAudioManager::GetFanFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetHospitalFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; -} - -uint32 -cAudioManager::GetWhiteConstructionWorkerTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetBlackConstructionWorkerTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetShopperFemaleTalkSfx(int16 sound, int32 model) -{ - 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 (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) -{ - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetStudentFemaleTalkSfx(int16 sound) -{ - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetCasualMaleOldTalkSfx(int16 sound) -{ - return GetGenericMaleTalkSfx(sound); -} - -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); - } - - return GetGenericMaleTalkSfx(sound); -} -uint32 -cAudioManager::GetEightTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetFrankieTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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); - } - return sfx; -} - -uint32 -cAudioManager::GetMistyTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; - } - 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; -} - -uint32 -cAudioManager::GetSecurityGuardTalkSfx(int16 sound) -{ - 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); -#endif - break; - default: - return GetGenericMaleTalkSfx(sound); - } - 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) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; - } - return sfx; -} - -uint32 -cAudioManager::GetGenericFemaleTalkSfx(int16 sound) -{ - uint32 sfx; - static uint32 lastSfx = NO_SAMPLE; - - 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; - } - return sfx; -} - - +// TODO: all the ped comment funcs should follow here void cPedComments::Add(tPedComment *com) diff --git a/src/audio/AudioManager.h b/src/audio/AudioManager.h index b2b44c07..ba7db091 100644 --- a/src/audio/AudioManager.h +++ b/src/audio/AudioManager.h @@ -241,82 +241,7 @@ public: // 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(); @@ -397,7 +322,6 @@ public: void ProcessModelCarEngine(cVehicleParams *params); void ProcessOneShotScriptObject(uint8 sound); void ProcessPed(CPhysical *ped); - void ProcessPedHeadphones(cPedParams *params); void ProcessPedOneShots(cPedParams *params); void ProcessPhysical(int32 id); void ProcessPlane(cVehicleParams *params); From 3f2bdc096dcc6c4593e2825b64a47a9682927bfa Mon Sep 17 00:00:00 2001 From: aap Date: Sun, 17 May 2020 15:33:44 +0200 Subject: [PATCH 5/7] some HUD colors --- src/render/Hud.cpp | 67 +++++++++++++++++++++++++++++++--------------- 1 file changed, 46 insertions(+), 21 deletions(-) diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp index e06cc143..6a8e6f9a 100644 --- a/src/render/Hud.cpp +++ b/src/render/Hud.cpp @@ -21,6 +21,28 @@ #include "User.h" #include "World.h" +// Game has colors inlined in code. +// For easier modification we collect them here: +CRGBA MONEY_COLOR(0, 207, 133, 255); +CRGBA AMMO_COLOR(255, 150, 225, 255); +CRGBA HEALTH_COLOR(255, 150, 225, 255); +CRGBA ARMOUR_COLOR(185, 185, 185, 255); +CRGBA NOTWANTED_COLOR(27, 89, 130, 255); +CRGBA WANTED_COLOR_FLASH(62, 141, 181, 255); +CRGBA WANTED_COLOR(97, 194, 247, 255); +CRGBA ZONE_COLOR(45, 155, 90, 255); +CRGBA VEHICLE_COLOR(97, 194, 247, 255); +CRGBA CLOCK_COLOR(97, 194, 247, 255); +CRGBA TIMER_COLOR(97, 194, 247, 255); +CRGBA COUNTER_COLOR(97, 194, 247, 255); +CRGBA PAGER_COLOR(32, 162, 66, 205); +CRGBA RADARDISC_COLOR(255, 255, 255, 255); +CRGBA BIGMESSAGE_COLOR(85, 119, 133, 255); +CRGBA WASTEDBUSTED_COLOR(170, 123, 87, 255); +CRGBA ODDJOB_COLOR(89, 115, 150, 255); +CRGBA ODDJOB2_COLOR(156, 91, 40, 255); +CRGBA MISSIONTITLE_COLOR(220, 172, 2, 255); + wchar CHud::m_HelpMessage[256]; wchar CHud::m_LastHelpMessage[256]; uint32 CHud::m_HelpMessageState; @@ -252,7 +274,7 @@ void CHud::Draw() CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f - 2.0f), SCREEN_SCALE_Y(43.0f + 2.0f), sPrint); - CFont::SetColor(CRGBA(89, 115, 150, 255)); + CFont::SetColor(MONEY_COLOR); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f), SCREEN_SCALE_Y(43.0f), sPrint); /* @@ -335,7 +357,7 @@ void CHud::Draw() if (!CDarkel::FrenzyOnGoing() && weaponInfo->m_nWeaponSlot > 1 && weapon->m_eWeaponType != WEAPONTYPE_DETONATOR) { CFont::SetDropShadowPosition(2); CFont::SetDropColor(CRGBA(0, 0, 0, 255)); - CFont::SetColor(CRGBA(255, 150, 225, 255)); + CFont::SetColor(AMMO_COLOR); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(66.0f), SCREEN_SCALE_Y(90.0f), sPrint); CFont::SetDropShadowPosition(0); } @@ -373,7 +395,7 @@ void CHud::Draw() if (!CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastHealthLoss || CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastHealthLoss + 2000 || CTimer::GetFrameCounter() & 4) { CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(164.0f - 2.0f), SCREEN_SCALE_Y(65.0f + 2.0f), sPrintIcon); } - CFont::SetColor(CRGBA(186, 101, 50, 255)); + CFont::SetColor(HEALTH_COLOR); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f), SCREEN_SCALE_Y(65.0f), sPrint); @@ -404,7 +426,7 @@ void CHud::Draw() CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(234.0f - 2.0f), SCREEN_SCALE_Y(65.0f + 2.0f), sPrintIcon); } - CFont::SetColor(CRGBA(124, 140, 95, 255)); + CFont::SetColor(ARMOUR_COLOR); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(182.0f), SCREEN_SCALE_Y(65.0f), sPrint); @@ -434,7 +456,10 @@ void CHud::Draw() && (CTimer::GetTimeInMilliseconds() > FindPlayerPed()->m_pWanted->m_nLastWantedLevelChange + 2000 || CTimer::GetFrameCounter() & 4)) { - CFont::SetColor(CRGBA(193, 164, 120, 255)); + CFont::SetColor(WANTED_COLOR); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f + 23.0f * i), SCREEN_SCALE_Y(87.0f), sPrintIcon); + }else{ + CFont::SetColor(NOTWANTED_COLOR); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f + 23.0f * i), SCREEN_SCALE_Y(87.0f), sPrintIcon); } } @@ -528,7 +553,7 @@ void CHud::Draw() CFont::SetColor(CRGBA(0, 0, 0, fZoneAlpha)); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(32.0f) + SCREEN_SCALE_X(1.0f), SCREEN_SCALE_FROM_BOTTOM(30.0f) + SCREEN_SCALE_Y(1.0f), m_ZoneToPrint); - CFont::SetColor(CRGBA(152, 154, 82, fZoneAlpha)); + CFont::SetColor(CRGBA(ZONE_COLOR.r, ZONE_COLOR.g, ZONE_COLOR.b, fZoneAlpha)); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(32.0f), SCREEN_SCALE_FROM_BOTTOM(30.0f), m_ZoneToPrint); } } @@ -622,7 +647,7 @@ void CHud::Draw() CFont::SetColor(CRGBA(0, 0, 0, fVehicleAlpha)); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(32.0f) + SCREEN_SCALE_X(1.0f), SCREEN_SCALE_FROM_BOTTOM(55.0f) + SCREEN_SCALE_Y(1.0f), m_pVehicleNameToPrint); - CFont::SetColor(CRGBA(194, 165, 120, fVehicleAlpha)); + CFont::SetColor(CRGBA(VEHICLE_COLOR.r, VEHICLE_COLOR.g, VEHICLE_COLOR.b, fVehicleAlpha)); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(32.0f), SCREEN_SCALE_FROM_BOTTOM(55.0f), m_pVehicleNameToPrint); } } @@ -654,7 +679,7 @@ void CHud::Draw() CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(111.0f) + SCREEN_SCALE_X(2.0f), SCREEN_SCALE_Y(22.0f) + SCREEN_SCALE_Y(2.0f), sPrint); - CFont::SetColor(CRGBA(194, 165, 120, 255)); + CFont::SetColor(CLOCK_COLOR); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(111.0f), SCREEN_SCALE_Y(22.0f), sPrint); /* @@ -698,7 +723,7 @@ void CHud::Draw() CFont::SetColor(CRGBA(0, 0, 0, 255)); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) + SCREEN_SCALE_X(2.0f), SCREEN_SCALE_Y(110.0f) + SCREEN_SCALE_Y(2.0f), sTimer); CFont::SetScale(SCREEN_SCALE_X(0.8f), SCREEN_SCALE_Y(1.35f)); - CFont::SetColor(CRGBA(186, 101, 50, 255)); + CFont::SetColor(TIMER_COLOR); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET), SCREEN_SCALE_Y(110.0f), sTimer); if (CUserDisplay::OnscnTimer.m_sEntries[0].m_aTimerText[0]) { @@ -707,7 +732,7 @@ void CHud::Draw() CFont::SetScale(SCREEN_SCALE_X(0.64f), SCREEN_SCALE_Y(1.35f)); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) - SCREEN_SCALE_X(80.0f) + SCREEN_SCALE_X(2.0f), SCREEN_SCALE_Y(110.0f) + SCREEN_SCALE_Y(2.0f), TheText.Get(CUserDisplay::OnscnTimer.m_sEntries[0].m_aTimerText)); - CFont::SetColor(CRGBA(186, 101, 50, 255)); + CFont::SetColor(TIMER_COLOR); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) - SCREEN_SCALE_X(80.0f), SCREEN_SCALE_Y(110.0f), TheText.Get(CUserDisplay::OnscnTimer.m_sEntries[0].m_aTimerText)); } } @@ -742,7 +767,7 @@ void CHud::Draw() CFont::SetColor(CRGBA(0, 0, 0, 255)); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) + SCREEN_SCALE_X(2.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(2.0f), sTimer); - CFont::SetColor(CRGBA(0, 106, 164, 255)); + CFont::SetColor(COUNTER_COLOR); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET), SCREEN_SCALE_Y(132.0f), sTimer); } else { int counter = atoi(CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterBuffer); @@ -759,7 +784,7 @@ void CHud::Draw() CFont::SetColor(CRGBA(0, 0, 0, 255)); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) - SCREEN_SCALE_X(61.0f) + SCREEN_SCALE_Y(2.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(2.0f), TheText.Get(CUserDisplay::OnscnTimer.m_sEntries[0].m_aCounterText)); - CFont::SetColor(CRGBA(0, 106, 164, 255)); + CFont::SetColor(COUNTER_COLOR); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) - SCREEN_SCALE_X(61.0f), SCREEN_SCALE_Y(132.0f), TheText.Get(CUserDisplay::OnscnTimer.m_sEntries[0].m_aCounterText)); } } @@ -806,7 +831,7 @@ void CHud::Draw() CFont::SetBackgroundOff(); CFont::SetScale(SCREEN_SCALE_X(0.84f), SCREEN_SCALE_Y(1.0f)); - CFont::SetColor(CRGBA(32, 162, 66, 205)); + CFont::SetColor(PAGER_COLOR); CFont::SetRightJustifyOff(); CFont::SetBackgroundOff(); CFont::SetCentreOff(); @@ -828,7 +853,7 @@ void CHud::Draw() rect.Translate(RADAR_LEFT, SCREEN_SCALE_FROM_BOTTOM(RADAR_BOTTOM + RADAR_HEIGHT)); #endif rect.Grow(4.0f); - Sprites[HUD_RADARDISC].Draw(rect, CRGBA(0, 0, 0, 255)); + Sprites[HUD_RADARDISC].Draw(rect, RADARDISC_COLOR); CRadar::DrawBlips(); } } @@ -983,7 +1008,7 @@ void CHud::Draw() CFont::PrintString(SCREEN_WIDTH / 2 + SCREEN_SCALE_X(2.0f), (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(20.0f) + SCREEN_SCALE_Y(2.0f), m_BigMessage[0]); #endif - CFont::SetColor(CRGBA(85, 119, 133, BigMessageAlpha[0])); + CFont::SetColor(CRGBA(BIGMESSAGE_COLOR.r, BIGMESSAGE_COLOR.g, BIGMESSAGE_COLOR.b, BigMessageAlpha[0])); CFont::PrintString(SCREEN_WIDTH / 2, (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(18.0f), m_BigMessage[0]); } else { @@ -1018,7 +1043,7 @@ void CHud::Draw() CFont::SetColor(CRGBA(0, 0, 0, BigMessageAlpha[2])); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(20.0f - 4.0f), SCREEN_SCALE_FROM_BOTTOM(78.0f), m_BigMessage[2]); - CFont::SetColor(CRGBA(170, 123, 87, BigMessageAlpha[2])); + CFont::SetColor(CRGBA(WASTEDBUSTED_COLOR.r, WASTEDBUSTED_COLOR.g, WASTEDBUSTED_COLOR.b, BigMessageAlpha[2])); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(20.0f), SCREEN_SCALE_FROM_BOTTOM(82.0f), m_BigMessage[2]); } else { @@ -1210,7 +1235,7 @@ void CHud::DrawAfterFade() CFont::SetColor(CRGBA(0, 0, 0, 255)); CFont::PrintString((SCREEN_WIDTH / 2) + SCREEN_SCALE_X(2.0f), (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(84.0f) + SCREEN_SCALE_Y(2.0f), m_BigMessage[3]); - CFont::SetColor(CRGBA(89, 115, 150, 255)); + CFont::SetColor(ODDJOB_COLOR); CFont::PrintString((SCREEN_WIDTH / 2), (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(84.0f), m_BigMessage[3]); } @@ -1226,7 +1251,7 @@ void CHud::DrawAfterFade() CFont::PrintString((SCREEN_WIDTH / 2) - SCREEN_SCALE_X(2.0f), (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(84.0f) - SCREEN_SCALE_Y(2.0f), m_BigMessage[4]); - CFont::SetColor(CRGBA(89, 115, 150, 255)); + CFont::SetColor(ODDJOB_COLOR); CFont::PrintString((SCREEN_WIDTH / 2), (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(84.0f), m_BigMessage[4]); } @@ -1284,12 +1309,12 @@ void CHud::DrawAfterFade() #ifdef BETA_SLIDING_TEXT CFont::PrintString(SCREEN_WIDTH / 2 + SCREEN_SCALE_X(2.0f) - SCREEN_SCALE_X(OddJob2XOffset), SCREEN_HEIGHT / 2 - SCREEN_SCALE_Y(20.0f) + SCREEN_SCALE_Y(2.0f), m_BigMessage[5]); - CFont::SetColor(CRGBA(156, 91, 40, 255)); + CFont::SetColor(ODDJOB2_COLOR); CFont::PrintString(SCREEN_WIDTH / 2 - SCREEN_SCALE_X(OddJob2XOffset), SCREEN_HEIGHT / 2 - SCREEN_SCALE_Y(20.0f), m_BigMessage[5]); #else CFont::PrintString(SCREEN_WIDTH / 2 + SCREEN_SCALE_X(2.0f), SCREEN_HEIGHT / 2 - SCREEN_SCALE_Y(20.0f) + SCREEN_SCALE_Y(2.0f), m_BigMessage[5]); - CFont::SetColor(CRGBA(156, 91, 40, 255)); + CFont::SetColor(ODDJOB2_COLOR); CFont::PrintString(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2 - SCREEN_SCALE_Y(20.0f), m_BigMessage[5]); #endif } @@ -1334,7 +1359,7 @@ void CHud::DrawAfterFade() CFont::SetColor(CRGBA(40, 40, 40, BigMessageAlpha[1])); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(20.0f) + SCREEN_SCALE_X(2.0f), SCREEN_SCALE_FROM_BOTTOM(120.0f) + SCREEN_SCALE_Y(2.0f), m_BigMessage[1]); - CFont::SetColor(CRGBA(220, 172, 2, BigMessageAlpha[1])); + CFont::SetColor(CRGBA(MISSIONTITLE_COLOR.r, MISSIONTITLE_COLOR.g, MISSIONTITLE_COLOR.b, BigMessageAlpha[1])); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(20.0f), SCREEN_SCALE_FROM_BOTTOM(120.0f), m_BigMessage[1]); } else { From a0703fd9e1617b6841d8b491503dc0242c32b717 Mon Sep 17 00:00:00 2001 From: aap Date: Sun, 17 May 2020 19:45:21 +0200 Subject: [PATCH 6/7] loading screens --- src/core/main.cpp | 58 +++++++++++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/src/core/main.cpp b/src/core/main.cpp index dc61f03f..fa1f87b9 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -81,7 +81,7 @@ RwRGBA gColourTop; bool gameAlreadyInitialised; float NumberOfChunksLoaded; -#define TOTALNUMCHUNKS 73.0f +#define TOTALNUMCHUNKS 95.0f bool g_SlowMode = false; char version_name[64]; @@ -356,6 +356,7 @@ Terminate3D(void) CSprite2d splash; int splashTxdId = -1; +//--MIAMI: done CSprite2d* LoadSplash(const char *name) { @@ -401,22 +402,23 @@ DestroySplashScreen(void) splashTxdId = -1; } +//--MIAMI: done Const char* GetRandomSplashScreen(void) { int index; static int index2 = 0; static char splashName[128]; - static int splashIndex[24] = { - 25, 22, 4, 13, - 1, 21, 14, 16, - 10, 12, 5, 9, - 11, 18, 3, 2, - 19, 23, 7, 17, - 15, 6, 8, 20 + static int splashIndex[12] = { + 1, 2, + 3, 4, + 5, 11, + 6, 8, + 9, 10, + 7, 12 }; - index = splashIndex[4*index2 + CGeneral::GetRandomNumberInRange(0, 3)]; + index = splashIndex[2*index2 + CGeneral::GetRandomNumberInRange(0, 2)]; index2++; if(index2 == 6) index2 = 0; @@ -444,16 +446,14 @@ ResetLoadingScreenBar() } // TODO: compare with PS2 +//--MIAMI: done void LoadingScreen(const char *str1, const char *str2, const char *splashscreen) { CSprite2d *splash; #ifndef RANDOMSPLASH - if(CGame::frenchGame || CGame::germanGame || !CGame::nastyGame) - splashscreen = "mainsc2"; - else - splashscreen = "mainsc1"; + splashscreen = "LOADSC0"; #endif splash = LoadSplash(splashscreen); @@ -474,36 +474,50 @@ LoadingScreen(const char *str1, const char *str2, const char *splashscreen) if(str1){ NumberOfChunksLoaded += 1; +#ifndef RANDOMSPLASH float hpos = SCREEN_SCALE_X(40); - float length = SCREEN_WIDTH - SCREEN_SCALE_X(100); - float vpos = SCREEN_HEIGHT - SCREEN_SCALE_Y(13); - float height = SCREEN_SCALE_Y(7); - CSprite2d::DrawRect(CRect(hpos, vpos, hpos + length, vpos + height), CRGBA(40, 53, 68, 255)); + float length = SCREEN_WIDTH - SCREEN_SCALE_X(80); + float top = SCREEN_HEIGHT - SCREEN_SCALE_Y(14); + float bottom = top + SCREEN_SCALE_Y(5); +#else + float hpos = SCREEN_STRETCH_X(40); + float length = SCREEN_STRETCH_X(440); + // this is rather weird + float top = SCREEN_STRETCH_Y(407.4f - 7.0f/3.0f); + float bottom = SCREEN_STRETCH_Y(407.4f + 7.0f/3.0f); +#endif + + CSprite2d::DrawRect(CRect(hpos-1.0f, top-1.0f, hpos+length+1.0f, bottom+1.0f), CRGBA(40, 53, 68, 255)); + + CSprite2d::DrawRect(CRect(hpos, top, hpos+length, bottom), CRGBA(155, 50, 125, 255)); length *= NumberOfChunksLoaded/TOTALNUMCHUNKS; - CSprite2d::DrawRect(CRect(hpos, vpos, hpos + length, vpos + height), CRGBA(81, 106, 137, 255)); + CSprite2d::DrawRect(CRect(hpos, top, hpos+length, bottom), CRGBA(255, 150, 225, 255)); // this is done by the game but is unused + CFont::SetBackgroundOff(); CFont::SetScale(SCREEN_SCALE_X(2), SCREEN_SCALE_Y(2)); CFont::SetPropOn(); CFont::SetRightJustifyOn(); + CFont::SetDropShadowPosition(1); + CFont::SetDropColor(CRGBA(0, 0, 0, 255)); CFont::SetFontStyle(FONT_HEADING); #ifdef CHATTYSPLASH // my attempt static wchar tmpstr[80]; float yscale = SCREEN_SCALE_Y(0.9f); - vpos -= 45*yscale; + top -= 45*yscale; CFont::SetScale(SCREEN_SCALE_X(0.75f), yscale); CFont::SetPropOn(); CFont::SetRightJustifyOff(); CFont::SetFontStyle(FONT_BANK); CFont::SetColor(CRGBA(255, 255, 255, 255)); AsciiToUnicode(str1, tmpstr); - CFont::PrintString(hpos, vpos, tmpstr); - vpos += 22*yscale; + CFont::PrintString(hpos, top, tmpstr); + top += 22*yscale; AsciiToUnicode(str2, tmpstr); - CFont::PrintString(hpos, vpos, tmpstr); + CFont::PrintString(hpos, top, tmpstr); #endif } From 84f8312b8666b2774eafbbb0e6d034ba598fd69c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?eray=20or=C3=A7unus?= Date: Sun, 17 May 2020 20:36:48 +0300 Subject: [PATCH 7/7] Weapon fixes and thingies --- gamefiles/models/menu.txd | Bin 10244648 -> 8475176 bytes src/animation/AnimBlendAssociation.h | 3 +- src/animation/AnimManager.cpp | 6 +- src/animation/AnimationId.h | 6 +- src/control/CarCtrl.h | 1 + src/control/Pickups.cpp | 120 +++++---- src/control/Pickups.h | 5 +- src/control/Script.cpp | 31 ++- src/core/Frontend.cpp | 12 +- src/core/PlayerInfo.cpp | 1 + src/core/PlayerInfo.h | 1 + src/core/Radar.cpp | 18 +- src/core/Radar.h | 9 +- src/core/Stats.cpp | 8 + src/core/Stats.h | 1 + src/core/World.cpp | 15 -- src/entities/Entity.cpp | 33 ++- src/modelinfo/ModelIndices.h | 25 +- src/peds/CivilianPed.cpp | 2 +- src/peds/CopPed.cpp | 2 +- src/peds/EmergencyPed.cpp | 2 +- src/peds/Ped.cpp | 378 ++++++++++++++++++--------- src/peds/Ped.h | 24 +- src/peds/PlayerPed.cpp | 8 +- src/peds/Population.cpp | 26 +- src/peds/Population.h | 2 +- src/vehicles/Automobile.cpp | 41 +-- src/vehicles/Boat.cpp | 68 +++++ src/vehicles/Boat.h | 1 + src/vehicles/Vehicle.cpp | 4 +- src/vehicles/Vehicle.h | 1 - src/weapons/Weapon.cpp | 156 +++++++---- src/weapons/Weapon.h | 9 +- src/weapons/WeaponInfo.cpp | 12 +- src/weapons/WeaponType.h | 13 +- 35 files changed, 639 insertions(+), 405 deletions(-) diff --git a/gamefiles/models/menu.txd b/gamefiles/models/menu.txd index f617bcf80d98d50da75c36d48150a91b3eb65082..1ffe750e19af95facced8d79af0325af5523be46 100644 GIT binary patch delta 289578 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%0ABlp&HI)PjzN%TcK-*Nw-wf0 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 R%B#|&ubV38JL=qKtU^Zxp_@dH)IlB zAwx4fHJc2erZ2;R0{Ep8u)qh+Gw~OI3S0;V$7KEg5AdVd!2h;xBLG-_-rTWT=T9K zTJT6i=Yv`*-}ctsMtF=#RR=?e4FuI~;E6*1s7?Vyng zh8$zi64=mi&xc+JNBey_6*#psh51hI;U_ z+|baFaHMUrAn)!*9BB>CBw9#o2PBSh$f%l5g(n11^?yri-Cl6k3k?Si zXM>`wo&nT70xe+%@ffD3EfldaD+jaT#Q*;c-wXa1{I591zyP~n02I-n%OVcMhlWBj zA^0d-PH3MCRE;6;C#(~2G zX`3*p=t7R*a$ZM77F3J|e zPDQN$FL{nrCL#iH$|0z13=Krg7JwqLEFH1k3B<2UFGtCXY1_--g*j;EPF2+uWjQwT z(m-$|!t*9965#@nvJ_bZc%Oe9bdP00{ddqUvZ|tp<^Q14XYR#0%R#;cVNeLH=z9(C z2ZLI^h0@)LAUP0*guvNie(>QD?El$!o?~DLi-`#bjZqaq^A@N|3kYz4Z_}7MG!*`v5ip=Yw2zihL{-5~|KE@H`AW*tN?!tki#T0Q^J|r68)8XJE z6VZf)M+*)G{Gg5ZjvV1J5e47>gDyGw@E?>nri!w{`%j=~N#Ej*Qc0w3!_5bs$0fih0Tb|=oDF}e?0D-hCS0H6eP;}gzTMZwc2U&d<3|Ej1(9nvvB(CC4-ND$Eh6@cXu#2nep?~geW9vpbU@Sov3`*;5T zmB$zuknbu11up{wVkQdQ##)3ppac{m3RZ6Sin~g!eGUQGTs7?qJfj8IxN1k(JUZG?9~4npo(M4r>qLE&FJsm#EDe2EuG9SX>~1vX2Puh;9Q%2 zHw~VqK^8o_ipj_@4 z7yzEpgNAwrD3l-dJnDgY3KYt9&+Cw40kqE$aR6K7xqueXTm?)$XgPamcno}wF7lk0 z3L_&U1GtuAfTRRasDtw%_*?+wiz=(mRh;{5^4|n*8mMuEw4M)C&V`0HAej#8$Z){< zp!0n~LlJk!g2uW-Lv`Wuk>^fGBOUdb`5)wbQ1=dIA*kXB4GDo)fzVY zfLh535r_*xKxQ(sB5v!nyjFScedYY$FgJr5SiY03CxSB{|9^gv`hb9d0Psbo&}-8` z5f4>g{~x446tTk{(imbu&KXwc^d9LU#sjWZo?99z2Jg;;%O|9M1jqqLDs|eS7W@YV z%KrDi;j219>Q^m-jW1;V{|_nvV@pKg9TQNfZm--A=R^Aea0@{pwnOg`d~G3UWW|9Y z09yR;gGW*v0~kRgRiJrK22jEV6*tJC4iaNvV1oBiE6+KC>RU(^S&z8*9pVYhAw5u_ zF)$*Rv7j(z2ms$E&HtYtWIiaS!J*$vk=fp1w?Nz=0CVRyJ(jF6090LQeky&g;n<^ z7$4LmL2j~w9O!^Feg(D;TxY`%@dOL~2ltBSL5gil(6BYq^52el3$ zh9f-ppC9bAy-cFuAwHxL15l)wg9e9m6hPj9xeww*gaHf;5U&`>gH$1V7HkzFk%3A> zF>i!M&_FYiq2TfhgOA6&{~(Xcvx7S8Bp+Cu{ literal 10244648 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

!S|AW^0V;lE}wE^(e{UAA9^*?BTKdA13)kC2A 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�FuQ9EgVTk!ctkBoD$cJ~|DO17Vmrhz-LaF%Smv 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

lszeza`>N&}#>5tN2uX$O>sL3Jf){vWg_9$!5T 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%0Dh@;xZ+fX3fJ@kOn)1F{>GFG1x7C{Kgp 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ì@9U45`Lpn0b&6k4ubRhl2Vo+HQvK!RL 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

    1pf&=iYy#DZp!G_iJ^vs*;CdOf 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 z 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

    JCsCj$%mt4+;-(|2!bzKe+C< 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�O!x9?+RPSmq*NYCvTqhz+X0L1iVV>;r< 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�#I27s^5|A1dR`X#6jkOFvu*> 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

    wnOB>B#d7O#%!IpzRT0$1yN4K;>5v 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 z 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

    cHCe+9a}uQoIk+kHLf{@?w7 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 zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w zjfMv_AfVJ}ct8UJN{xmGG$5eVXm~&a0!odB2Q(m{)M$7>0|H8oh6gktpwwu1Km!6w ijfMv_AfVJ}ct8UJN{xmGG$5eVa0w4)xPO>totalLength - currentTime; } + float GetTimeLeft() { return hierarchy->totalLength - currentTime; } + float GetProgress() { return currentTime / hierarchy->totalLength; } static CAnimBlendAssociation *FromLink(CAnimBlendLink *l) { return (CAnimBlendAssociation*)((uint8*)l - offsetof(CAnimBlendAssociation, link)); diff --git a/src/animation/AnimManager.cpp b/src/animation/AnimManager.cpp index 55bd7d53..f2db86ec 100644 --- a/src/animation/AnimManager.cpp +++ b/src/animation/AnimManager.cpp @@ -134,13 +134,13 @@ AnimAssocDesc aStdAnimDescs[] = { { ANIM_DRIVE_LOW_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, { ANIM_DRIVEBY_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, { ANIM_DRIVEBY_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_DRIVEBY_L_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_DRIVEBY_L_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_DRIVEBY_LOW_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_DRIVEBY_LOW_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, { ANIM_CAR_LB, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, { ANIM_DRIVE_BOAT, ASSOC_DELETEFADEDOUT | ASSOC_DRIVING }, { ANIM_DRIVE_BOAT_L, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, { ANIM_DRIVE_BOAT_R, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, - { ANIM_DRIVE_BOAT_BACK, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, + { ANIM_BOAT_LB, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL | ASSOC_DRIVING }, { ANIM_BIKE_PICKUP_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_BIKE_PICKUP_L, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_BIKE_PULLUP_R, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, diff --git a/src/animation/AnimationId.h b/src/animation/AnimationId.h index 9fe0cb0e..a84aa3e8 100644 --- a/src/animation/AnimationId.h +++ b/src/animation/AnimationId.h @@ -118,13 +118,13 @@ enum AnimationId ANIM_DRIVE_LOW_R, ANIM_DRIVEBY_L, ANIM_DRIVEBY_R, - ANIM_DRIVEBY_L_L, // TODO: is this LOW? - ANIM_DRIVEBY_L_R, + ANIM_DRIVEBY_LOW_L, + ANIM_DRIVEBY_LOW_R, ANIM_CAR_LB, ANIM_DRIVE_BOAT, ANIM_DRIVE_BOAT_L, ANIM_DRIVE_BOAT_R, - ANIM_DRIVE_BOAT_BACK, + ANIM_BOAT_LB, ANIM_BIKE_PICKUP_R, ANIM_BIKE_PICKUP_L, diff --git a/src/control/CarCtrl.h b/src/control/CarCtrl.h index 8138266f..df4d9366 100644 --- a/src/control/CarCtrl.h +++ b/src/control/CarCtrl.h @@ -9,6 +9,7 @@ #define TIME_COPS_WAIT_TO_EXIT_AFTER_STOPPING 2500 class CZoneInfo; +class CAutomobile; enum{ MAX_CARS_TO_KEEP = 2, diff --git a/src/control/Pickups.cpp b/src/control/Pickups.cpp index 330b5788..eb772e13 100644 --- a/src/control/Pickups.cpp +++ b/src/control/Pickups.cpp @@ -44,15 +44,44 @@ uint32 CPickups::StaticCamStartTime; tPickupMessage CPickups::aMessages[NUMPICKUPMESSAGES]; -// 20 ?! Some Miami leftover? (Originally at 0x5ED8D4) +// TODO(Miami) uint16 AmmoForWeapon[20] = { 0, 1, 45, 125, 25, 150, 300, 25, 5, 250, 5, 5, 0, 500, 0, 100, 0, 0, 0, 0 }; -uint16 AmmoForWeapon_OnStreet[20] = { 0, 1, 9, 25, 5, 30, 60, 5, 1, 50, 1, 1, 0, 200, 0, 100, 0, 0, 0, 0 }; +uint16 AmmoForWeapon_OnStreet[WEAPONTYPE_TOTALWEAPONS] = { + 0, + 1, + 4, + 4, + 4, + 4, + 34, + 16, + 100, + 60, + 60, + 60, + 60, + 60, + 20, + 4, + 14, + 1, + 400, +}; uint16 CostOfWeapon[20] = { 0, 10, 250, 800, 1500, 3000, 5000, 10000, 25000, 25000, 2000, 2000, 0, 50000, 0, 3000, 0, 0, 0, 0 }; -uint8 aWeaponReds[] = { 255, 0, 128, 255, 255, 0, 255, 0, 128, 128, 255, 255, 128, 0, 255, 0 }; -uint8 aWeaponGreens[] = { 0, 255, 128, 255, 0, 255, 128, 255, 0, 255, 255, 0, 255, 0, 255, 0 }; -uint8 aWeaponBlues[] = { 0, 0, 255, 0, 255, 255, 0, 128, 255, 0, 255, 0, 128, 255, 0, 0 }; -float aWeaponScale[] = { 1.0f, 2.0f, 1.5f, 1.0f, 1.0f, 1.5f, 1.0f, 2.0f, 1.0f, 2.0f, 2.5f, 1.0f, 1.0f, 1.0f, 1.0f }; +// TODO(Miami): Those are all placeholders!! +uint8 aWeaponReds[] = { 0, 255, 0, 128, 255, 255, 0, 255, 0, 128, 128, 255, +255, 255, 255, 255, 255, 255, 255, 255, +255, 128, 0, 255, 0 }; +uint8 aWeaponGreens[] = { 0, 0, 255, 128, 255, 0, 255, 128, 255, 0, 255, 255, +255, 255, 255, 255, 255, 255, 255, 255, +0, 255, 0, 255, 0 }; +uint8 aWeaponBlues[] = { 0, 0, 0, 255, 0, 255, 255, 0, 128, 255, 0, 255, +255, 255, 255, 255, 255, 255, 255, 255, +0, 128, 255, 0, 0 }; +float aWeaponScale[] = { 1.0f, 1.0f, 2.0f, 1.5f, 1.0f, 1.0f, 1.5f, 1.0f, 2.0f, 1.0f, 2.0f, 2.5f, +1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, +1.0f, 1.0f, 1.0f, 1.0f }; void CPickup::RemoveKeepType() @@ -380,6 +409,30 @@ CPickups::Init(void) CollectedPickUpIndex = 0; } +// --MIAMI: Done +bool +CPickups::TestForPickupsInBubble(CVector pos, float range) +{ + for (int i = 0; i < NUMPICKUPS; i++) { + if ((aPickUps[i].m_vecPos - pos).Magnitude() < range) + return true; + } + return false; +} + +// --MIAMI: Done +bool +CPickups::TryToMerge_WeaponType(CVector pos, eWeaponType weapon, uint8 type, uint32 quantity, bool unused) { + for (int i = 0; i < NUMPICKUPS; i++) { + if (aPickUps[i].m_eType == type && aPickUps[i].m_eModelIndex == ModelForWeapon(weapon)) + if ((aPickUps[i].m_vecPos - pos).Magnitude() < 7.5f) { + aPickUps[i].m_nQuantity += quantity; + return true; + } + } + return false; +} + bool CPickups::IsPickUpPickedUp(int32 pickupId) { @@ -561,53 +614,22 @@ CPickups::GetNewUniquePickupIndex(int32 slot) return slot | (aPickUps[slot].m_nIndex << 16); } +// --MIAMI: Done int32 CPickups::ModelForWeapon(eWeaponType weaponType) { - switch (weaponType) - { - case WEAPONTYPE_BASEBALLBAT: return MI_BASEBALL_BAT; - case WEAPONTYPE_COLT45: return MI_COLT; - case WEAPONTYPE_UZI: return MI_UZI; - case WEAPONTYPE_SHOTGUN: return MI_SHOTGUN; - case WEAPONTYPE_AK47: return MI_AK47; - case WEAPONTYPE_M16: return MI_M16; - case WEAPONTYPE_SNIPERRIFLE: return MI_SNIPER; - case WEAPONTYPE_ROCKETLAUNCHER: return MI_ROCKETLAUNCHER; - case WEAPONTYPE_FLAMETHROWER: return MI_FLAMETHROWER; - case WEAPONTYPE_MOLOTOV: return MI_MOLOTOV; - case WEAPONTYPE_GRENADE: return MI_GRENADE; - default: break; - } - return 0; + return CWeaponInfo::GetWeaponInfo(weaponType)->m_nModelId; } +// --MIAMI: Done eWeaponType CPickups::WeaponForModel(int32 model) { if (model == MI_PICKUP_BODYARMOUR) return WEAPONTYPE_ARMOUR; - switch (model) - { - case MI_GRENADE: return WEAPONTYPE_GRENADE; - case MI_AK47: return WEAPONTYPE_AK47; - case MI_BASEBALL_BAT: return WEAPONTYPE_BASEBALLBAT; - case MI_COLT: return WEAPONTYPE_COLT45; - case MI_MOLOTOV: return WEAPONTYPE_MOLOTOV; - case MI_ROCKETLAUNCHER: return WEAPONTYPE_ROCKETLAUNCHER; - case MI_SHOTGUN: return WEAPONTYPE_SHOTGUN; - case MI_SNIPER: return WEAPONTYPE_SNIPERRIFLE; - case MI_UZI: return WEAPONTYPE_UZI; - case MI_MISSILE: return WEAPONTYPE_UNARMED; - case MI_M16: return WEAPONTYPE_M16; - case MI_FLAMETHROWER: return WEAPONTYPE_FLAMETHROWER; - } - return WEAPONTYPE_UNARMED; -} - -int32 -CPickups::FindColourIndexForWeaponMI(int32 model) -{ - return WeaponForModel(model) - 1; + if (model == MI_PICKUP_HEALTH) return WEAPONTYPE_HEALTH; + if (model == MI_PICKUP_ADRENALINE) return WEAPONTYPE_ARMOUR; + if (model == -1) return WEAPONTYPE_UNARMED; + return (eWeaponType)((CWeaponModelInfo*)CModelInfo::GetModelInfo(model))->GetWeaponInfo(); } void @@ -685,15 +707,15 @@ CPickups::DoPickUpEffects(CEntity *entity) int16 colorId; if (entity->GetModelIndex() == MI_PICKUP_ADRENALINE || entity->GetModelIndex() == MI_PICKUP_CAMERA) - colorId = 11; + colorId = WEAPONTYPE_LAST_WEAPONTYPE; else if (entity->GetModelIndex() == MI_PICKUP_BODYARMOUR || entity->GetModelIndex() == MI_PICKUP_BRIBE) - colorId = 12; + colorId = WEAPONTYPE_LAST_WEAPONTYPE + 1; else if (entity->GetModelIndex() == MI_PICKUP_INFO || entity->GetModelIndex() == MI_PICKUP_KILLFRENZY) - colorId = 13; + colorId = WEAPONTYPE_LAST_WEAPONTYPE + 2; else if (entity->GetModelIndex() == MI_PICKUP_HEALTH || entity->GetModelIndex() == MI_PICKUP_BONUS) - colorId = 14; + colorId = WEAPONTYPE_LAST_WEAPONTYPE + 3; else - colorId = FindColourIndexForWeaponMI(entity->GetModelIndex()); + colorId = WeaponForModel(entity->GetModelIndex()); assert(colorId >= 0); diff --git a/src/control/Pickups.h b/src/control/Pickups.h index 2842edfa..79f52a67 100644 --- a/src/control/Pickups.h +++ b/src/control/Pickups.h @@ -85,11 +85,12 @@ public: static bool IsPickUpPickedUp(int32 pickupId); static int32 ModelForWeapon(eWeaponType weaponType); static enum eWeaponType WeaponForModel(int32 model); - static int32 FindColourIndexForWeaponMI(int32 model); static int32 GetActualPickupIndex(int32 index); static int32 GetNewUniquePickupIndex(int32 slot); static void PassTime(uint32 time); static bool GivePlayerGoodiesWithPickUpMI(int16 modelIndex, int playerIndex); + static bool TestForPickupsInBubble(CVector pos, float range); + static bool TryToMerge_WeaponType(CVector pos, eWeaponType weapon, uint8 type, uint32 quantity, bool unused); static void Load(uint8 *buf, uint32 size); static void Save(uint8 *buf, uint32 *size); @@ -103,7 +104,7 @@ public: }; extern uint16 AmmoForWeapon[20]; -extern uint16 AmmoForWeapon_OnStreet[20]; +extern uint16 AmmoForWeapon_OnStreet[WEAPONTYPE_TOTALWEAPONS]; extern uint16 CostOfWeapon[20]; enum ePacmanPickupType diff --git a/src/control/Script.cpp b/src/control/Script.cpp index cd0ea5b3..88cfda84 100644 --- a/src/control/Script.cpp +++ b/src/control/Script.cpp @@ -2901,13 +2901,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command) pVehicle->AutoPilot.m_nCarMission = MISSION_CRUISE; pVehicle->bEngineOn = true; pPed->bUsesCollision = false; -#ifdef FIX_BUGS - AnimationId anim = pVehicle->GetDriverAnim(); -#else - AnimationId anim = pVehicle->bLowVehicle ? ANIM_CAR_LSIT : ANIM_CAR_SIT; -#endif - pPed->m_pVehicleAnim = CAnimManager::BlendAnimation(pPed->GetClump(), ASSOCGRP_STD, anim, 100.0f); - pPed->StopNonPartialAnims(); + pPed->AddInCarAnims(pVehicle, true); pPed->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pPed->GetPosition()); CWorld::Add(pPed); ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed); @@ -4080,13 +4074,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command) pPed->SetPedState(PED_DRIVING); pVehicle->SetStatus(STATUS_PHYSICS); pPed->bUsesCollision = false; -#ifdef FIX_BUGS - AnimationId anim = pVehicle->GetDriverAnim(); -#else - AnimationId anim = pVehicle->bLowVehicle ? ANIM_CAR_LSIT : ANIM_CAR_SIT; -#endif - pPed->m_pVehicleAnim = CAnimManager::BlendAnimation(pPed->GetClump(), ASSOCGRP_STD, anim, 100.0f); - pPed->StopNonPartialAnims(); + pPed->AddInCarAnims(pVehicle, false); pPed->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pPed->GetPosition()); CWorld::Add(pPed); ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed); @@ -9753,6 +9741,12 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) return 0; } case COMMAND_IS_ANY_PICKUP_AT_COORDS: + { + CollectParameters(&m_nIp, 3); + CVector pos = *(CVector*)&ScriptParams[0]; + CRunningScript::UpdateCompareFlag(CPickups::TestForPickupsInBubble(pos, 0.5f)); + return 0; + } case COMMAND_GET_FIRST_PICKUP_COORDS: case COMMAND_GET_NEXT_PICKUP_COORDS: case COMMAND_REMOVE_ALL_CHAR_WEAPONS: @@ -9778,6 +9772,15 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command) case COMMAND_IS_INT_VAR_EQUAL_TO_CONSTANT: case COMMAND_IS_INT_LVAR_EQUAL_TO_CONSTANT: case COMMAND_GET_DEAD_CHAR_PICKUP_COORDS: + { + CollectParameters(&m_nIp, 1); + CPed *pTarget = CPools::GetPedPool()->GetAt(ScriptParams[0]); + CVector pos; + pTarget->CreateDeadPedPickupCoors(&pos.x, &pos.y, &pos.z); + *(CVector*)&ScriptParams[0] = pos; + StoreParameters(&m_nIp, 3); + return 0; + } case COMMAND_CREATE_PROTECTION_PICKUP: case COMMAND_IS_CHAR_IN_ANY_BOAT: case COMMAND_IS_PLAYER_IN_ANY_BOAT: diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index d27a98ec..56c83337 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -5536,9 +5536,10 @@ CMenuManager::PrintMap(void) if (mapPoint.y > fMapCenterY - fMapSize && mapPoint.y < fMapCenterY + fMapSize && mapPoint.x > fMapCenterX - fMapSize && mapPoint.x < fMapCenterX + fMapSize) { + // Don't ask me the meanings, I don't know. Found them by trying float diffX = fMapCenterX - fMapSize, diffY = fMapCenterY - fMapSize; - float x = ((mapPoint.x - diffX) / (fMapSize * 2)) * 4000.0f - 2000.0f; - float y = 2000.0f - ((mapPoint.y - diffY) / (fMapSize * 2)) * 4000.0f; + float x = ((mapPoint.x - diffX) / (fMapSize * 2)) * (WORLD_SIZE_X / MENU_MAP_WIDTH_SCALE) - (WORLD_SIZE_X / 2 + MENU_MAP_LEFT_OFFSET * MENU_MAP_LENGTH_UNIT); + float y = (WORLD_SIZE_Y / 2 - MENU_MAP_TOP_OFFSET * MENU_MAP_LENGTH_UNIT) - ((mapPoint.y - diffY) / (fMapSize * 2)) * (WORLD_SIZE_Y / MENU_MAP_HEIGHT_SCALE); CRadar::ToggleTargetMarker(x, y); DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SUCCESS, 0); } @@ -5584,7 +5585,8 @@ CMenuManager::PrintMap(void) if (fMapCenterY + fMapSize < SCREEN_HEIGHT - MENU_Y(60.0f)) fMapCenterY = SCREEN_HEIGHT - MENU_Y(60.0f) - fMapSize; - fMapCenterY = Min(fMapCenterY, fMapSize); // To not show beyond north border + if (fMapCenterY - fMapSize > SCREEN_HEIGHT / 2) + fMapCenterY = SCREEN_HEIGHT / 2 + fMapSize; bMenuMapActive = false; @@ -5654,9 +5656,7 @@ CMenuManager::ConstructStatLine(int rowIdx) STAT_LINE("PL_STAT", nil, false, nil); - int percentCompleted = (CStats::TotalProgressInGame == 0 ? 0 : - CStats::ProgressMade * 100.0f / (CGame::nastyGame ? CStats::TotalProgressInGame : CStats::TotalProgressInGame - 1)); - percentCompleted = Min(percentCompleted, 100); + int percentCompleted = CStats::GetPercentageProgress(); STAT_LINE("PER_COM", &percentCompleted, false, nil); STAT_LINE("NMISON", &CStats::MissionsGiven, false, nil); diff --git a/src/core/PlayerInfo.cpp b/src/core/PlayerInfo.cpp index d7b3f0e5..adf98701 100644 --- a/src/core/PlayerInfo.cpp +++ b/src/core/PlayerInfo.cpp @@ -142,6 +142,7 @@ CPlayerInfo::Clear(void) m_bFastReload = false; m_bGetOutOfJailFree = false; m_bGetOutOfHospitalFree = false; + m_bDriveByAllowed = true; m_nPreviousTimeRewardedForExplosion = 0; m_nExplosionsSinceLastReward = 0; } diff --git a/src/core/PlayerInfo.h b/src/core/PlayerInfo.h index c649d49d..d72d6cfe 100644 --- a/src/core/PlayerInfo.h +++ b/src/core/PlayerInfo.h @@ -54,6 +54,7 @@ public: bool m_bFastReload; bool m_bGetOutOfJailFree; bool m_bGetOutOfHospitalFree; + bool m_bDriveByAllowed; char m_aSkinName[32]; RwTexture *m_pSkinTexture; diff --git a/src/core/Radar.cpp b/src/core/Radar.cpp index 5b0d38e8..94536b28 100644 --- a/src/core/Radar.cpp +++ b/src/core/Radar.cpp @@ -87,12 +87,11 @@ static_assert(RADAR_TILE_SIZE == (RADAR_SIZE_Y / RADAR_NUM_TILES), "CRadar: not CRGBA CRadar::ArrowBlipColour1; CRGBA CRadar::ArrowBlipColour2; uint16 CRadar::MapLegendCounter; -uint16 CRadar::MapLegendList[NUM_MAP_LEGENDS]; +int16 CRadar::MapLegendList[NUM_MAP_LEGENDS]; int CRadar::TargetMarkerId = -1; CVector CRadar::TargetMarkerPos; #endif -// taken from VC float CRadar::cachedCos; float CRadar::cachedSin; @@ -273,12 +272,9 @@ void CRadar::ClearBlip(int32 i) if (index != -1) { SetRadarMarkerState(index, false); ms_RadarTrace[index].m_bInUse = false; -#ifndef MENU_MAP - // Ssshhh ms_RadarTrace[index].m_eBlipType = BLIP_NONE; ms_RadarTrace[index].m_eBlipDisplay = BLIP_DISPLAY_NEITHER; ms_RadarTrace[index].m_eRadarSprite = RADAR_SPRITE_NONE; -#endif } } @@ -481,11 +477,6 @@ void CRadar::DrawBlips() CEntity *blipEntity = nil; for(int blipId = 0; blipId < NUMRADARBLIPS; blipId++) { -#ifdef MENU_MAP - // A little hack to reuse cleared blips in menu map. hehe - if (!CMenuManager::bMenuMapActive || ms_RadarTrace[blipId].m_eBlipType == BLIP_CAR || - ms_RadarTrace[blipId].m_eBlipType == BLIP_CHAR || ms_RadarTrace[blipId].m_eBlipType == BLIP_OBJECT) -#endif if (!ms_RadarTrace[blipId].m_bInUse) continue; @@ -1338,9 +1329,8 @@ void CRadar::TransformRadarPointToScreenSpace(CVector2D &out, const CVector2D &i { #ifdef MENU_MAP if (CMenuManager::bMenuMapActive) { - // fMapSize is actually half map size. Radar range is 1000, so if x is -2000, in.x + 2.0f is 0. - out.x = (CMenuManager::fMapCenterX - CMenuManager::fMapSize) + (in.x + 2.0f) * CMenuManager::fMapSize * 2.0f / 4.0f; - out.y = (CMenuManager::fMapCenterY - CMenuManager::fMapSize) + (2.0f - in.y) * CMenuManager::fMapSize * 2.0f / 4.0f; + out.x = (CMenuManager::fMapCenterX - CMenuManager::fMapSize) + (MENU_MAP_LENGTH / 2 + MENU_MAP_LEFT_OFFSET + in.x) * CMenuManager::fMapSize * MENU_MAP_WIDTH_SCALE * 2.0f / MENU_MAP_LENGTH; + out.y = (CMenuManager::fMapCenterY - CMenuManager::fMapSize) + (MENU_MAP_LENGTH / 2 - MENU_MAP_TOP_OFFSET - in.y) * CMenuManager::fMapSize * MENU_MAP_HEIGHT_SCALE * 2.0f / MENU_MAP_LENGTH; } else #endif { @@ -1428,7 +1418,7 @@ CRadar::InitFrontEndMap() CalculateCachedSinCos(); vec2DRadarOrigin.x = 0.0f; vec2DRadarOrigin.y = 0.0f; - m_radarRange = 1000.0f; // doesn't mean anything, just affects the calculation in TransformRadarPointToScreenSpace + m_radarRange = MENU_MAP_LENGTH_UNIT; // just affects the multiplier in TransformRadarPointToScreenSpace for (int i = 0; i < NUM_MAP_LEGENDS; i++) { MapLegendList[i] = RADAR_SPRITE_NONE; } diff --git a/src/core/Radar.h b/src/core/Radar.h index 43c9766a..aa24296a 100644 --- a/src/core/Radar.h +++ b/src/core/Radar.h @@ -1,6 +1,13 @@ #pragma once #include "Sprite2d.h" +#define MENU_MAP_LENGTH_UNIT 1190.0f // in game unit +#define MENU_MAP_WIDTH_SCALE 1.112f // in game unit (originally 1.112494151260504f) +#define MENU_MAP_HEIGHT_SCALE 1.119f // in game unit (originally 1.118714268907563f) +#define MENU_MAP_TOP_OFFSET 0.28f // in length unit defined above - ~333 game unit +#define MENU_MAP_LEFT_OFFSET 0.185f // in length unit defined above - ~220 game unit +#define MENU_MAP_LENGTH (4000.f / MENU_MAP_LENGTH_UNIT) + enum eBlipType { BLIP_NONE, @@ -111,7 +118,7 @@ public: #define NUM_MAP_LEGENDS 75 static CRGBA ArrowBlipColour1; static CRGBA ArrowBlipColour2; - static uint16 MapLegendList[NUM_MAP_LEGENDS]; + static int16 MapLegendList[NUM_MAP_LEGENDS]; static uint16 MapLegendCounter; static int TargetMarkerId; static CVector TargetMarkerPos; diff --git a/src/core/Stats.cpp b/src/core/Stats.cpp index d50be0d5..ed3943c9 100644 --- a/src/core/Stats.cpp +++ b/src/core/Stats.cpp @@ -249,6 +249,14 @@ int32 CStats::FindCriminalRatingNumber() return rating; } +float CStats::GetPercentageProgress() +{ + float percentCompleted = (CStats::TotalProgressInGame == 0 ? 0 : + CStats::ProgressMade * 100.0f / (CGame::nastyGame ? CStats::TotalProgressInGame : CStats::TotalProgressInGame - 1.0f)); + + return Min(percentCompleted, 100.0f); +} + void CStats::SaveStats(uint8 *buf, uint32 *size) { CheckPointReachedSuccessfully(); diff --git a/src/core/Stats.h b/src/core/Stats.h index bf40a5a6..bf5450aa 100644 --- a/src/core/Stats.h +++ b/src/core/Stats.h @@ -90,4 +90,5 @@ public: static int32 FindCriminalRatingNumber(); static void SaveStats(uint8 *buf, uint32 *size); static void LoadStats(uint8 *buf, uint32 size); + static float GetPercentageProgress(); }; diff --git a/src/core/World.cpp b/src/core/World.cpp index ef124c07..f6817f8b 100644 --- a/src/core/World.cpp +++ b/src/core/World.cpp @@ -340,21 +340,6 @@ CWorld::ProcessLineOfSightSectorList(CPtrList &list, const CColLine &line, CColP if(e->IsPed()) { if(e->bUsesCollision || deadPeds && ((CPed *)e)->m_nPedState == PED_DEAD) { colmodel = ((CPedModelInfo *)CModelInfo::GetModelInfo(e->GetModelIndex()))->AnimatePedColModelSkinned(e->GetClump()); -/* this should all be gone, right? - if(((CPed *)e)->UseGroundColModel()) - colmodel = &CTempColModels::ms_colModelPedGroundHit; - else -#ifdef ANIMATE_PED_COL_MODEL - colmodel = CPedModelInfo::AnimatePedColModel( - ((CPedModelInfo *)CModelInfo::GetModelInfo(e->GetModelIndex())) - ->GetHitColModel(), - RpClumpGetFrame(e->GetClump())); -#else - colmodel = - ((CPedModelInfo *)CModelInfo::GetModelInfo(e->GetModelIndex())) - ->GetHitColModel(); -#endif -*/ } else colmodel = nil; diff --git a/src/entities/Entity.cpp b/src/entities/Entity.cpp index 6f8ebcb4..b35ddb25 100644 --- a/src/entities/Entity.cpp +++ b/src/entities/Entity.cpp @@ -400,22 +400,6 @@ CEntity::PreRender(void) GetMatrix().UpdateRW(); UpdateRwFrame(); } - }else if(IsPickupModel(GetModelIndex())){ - if(((CObject*)this)->bIsPickup){ - CPickups::DoPickUpEffects(this); - GetMatrix().UpdateRW(); - UpdateRwFrame(); - }else if(GetModelIndex() == MI_GRENADE){ - CMotionBlurStreaks::RegisterStreak((uintptr)this, - 100, 100, 100, - GetPosition() - 0.07f*TheCamera.GetRight(), - GetPosition() + 0.07f*TheCamera.GetRight()); - }else if(GetModelIndex() == MI_MOLOTOV){ - CMotionBlurStreaks::RegisterStreak((uintptr)this, - 0, 100, 0, - GetPosition() - 0.07f*TheCamera.GetRight(), - GetPosition() + 0.07f*TheCamera.GetRight()); - } }else if(GetModelIndex() == MI_MISSILE){ CVector pos = GetPosition(); float flicker = (CGeneral::GetRandomNumber() & 0xF)/(float)0x10; @@ -437,7 +421,22 @@ CEntity::PreRender(void) CCoronas::FLARE_NONE, CCoronas::REFLECTION_ON, CCoronas::LOSCHECK_OFF, CCoronas::STREAK_OFF, 0.0f); }else if(IsGlass(GetModelIndex())){ - PreRenderForGlassWindow(); + if(!((CSimpleModelInfo*)CModelInfo::GetModelInfo(GetModelIndex()))->m_isArtistGlass) + PreRenderForGlassWindow(); + }else if (((CObject*)this)->bIsPickup) { + CPickups::DoPickUpEffects(this); + GetMatrix().UpdateRW(); + UpdateRwFrame(); + } else if (GetModelIndex() == MI_GRENADE) { + CMotionBlurStreaks::RegisterStreak((uintptr)this, + 100, 100, 100, + GetPosition() - 0.07f * TheCamera.GetRight(), + GetPosition() + 0.07f * TheCamera.GetRight()); + } else if (GetModelIndex() == MI_MOLOTOV) { + CMotionBlurStreaks::RegisterStreak((uintptr)this, + 0, 100, 0, + GetPosition() - 0.07f * TheCamera.GetRight(), + GetPosition() + 0.07f * TheCamera.GetRight()); } // fall through case ENTITY_TYPE_DUMMY: diff --git a/src/modelinfo/ModelIndices.h b/src/modelinfo/ModelIndices.h index a21da7d3..56956787 100644 --- a/src/modelinfo/ModelIndices.h +++ b/src/modelinfo/ModelIndices.h @@ -395,7 +395,9 @@ enum MI_AK47 = 276, MI_SHOTGUN = 279, MI_M16 = 280, + MI_TEC9 = 281, MI_UZI = 282, + MI_SILENCEDINGRAM = 283, MI_MP5 = 284, MI_SNIPER = 285, MI_ROCKETLAUNCHER = 287, @@ -511,29 +513,6 @@ IsBannerModel(int16 id) id == MI_ITALYBANNER1 || id == MI_CHINALANTERN; } -inline bool -IsPickupModel(int16 id) -{ - return id == MI_GRENADE || - id == MI_AK47 || - id == MI_BASEBALL_BAT || - id == MI_COLT || - id == MI_MOLOTOV || - id == MI_ROCKETLAUNCHER || - id == MI_SHOTGUN || - id == MI_SNIPER || - id == MI_UZI || - id == MI_M16 || - id == MI_FLAMETHROWER || - id == MI_PICKUP_ADRENALINE || - id == MI_PICKUP_BODYARMOUR || - id == MI_PICKUP_INFO || - id == MI_PICKUP_HEALTH || - id == MI_PICKUP_BONUS || - id == MI_PICKUP_BRIBE || - id == MI_PICKUP_KILLFRENZY || - id == MI_PICKUP_CAMERA; -} inline bool IsPolicePedModel(int16 id) diff --git a/src/peds/CivilianPed.cpp b/src/peds/CivilianPed.cpp index 48785025..b68b96c0 100644 --- a/src/peds/CivilianPed.cpp +++ b/src/peds/CivilianPed.cpp @@ -200,7 +200,7 @@ CCivilianPed::ProcessControl(void) if (DyingOrDead()) return; - GetWeapon()->Update(m_audioEntityId); + GetWeapon()->Update(m_audioEntityId, nil); switch (m_nPedState) { case PED_WANDER_RANGE: case PED_WANDER_PATH: diff --git a/src/peds/CopPed.cpp b/src/peds/CopPed.cpp index 1affb64d..578f2454 100644 --- a/src/peds/CopPed.cpp +++ b/src/peds/CopPed.cpp @@ -589,7 +589,7 @@ CCopPed::ProcessControl(void) ArrestPlayer(); return; } - GetWeapon()->Update(m_audioEntityId); + GetWeapon()->Update(m_audioEntityId, nil); if (m_moved.Magnitude() > 0.0f) Avoid(); diff --git a/src/peds/EmergencyPed.cpp b/src/peds/EmergencyPed.cpp index 04e5dd6a..a62ac76d 100644 --- a/src/peds/EmergencyPed.cpp +++ b/src/peds/EmergencyPed.cpp @@ -49,7 +49,7 @@ CEmergencyPed::ProcessControl(void) return; if(!DyingOrDead()) { - GetWeapon()->Update(m_audioEntityId); + GetWeapon()->Update(m_audioEntityId, nil); if (IsPedInControl() && m_moved.Magnitude() > 0.0f) Avoid(); diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index 8da8249e..6514dda5 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -67,6 +67,9 @@ uint16 gnNumTempPedList; CColPoint aTempPedColPts[MAX_COLLISION_POINTS]; +// TODO(Miami) +#define AUDIO_NOT_READY + // Corresponds to ped sounds (from SOUND_PED_DEATH to SOUND_PED_TAXI_CALL) PedAudioData CommentWaitTime[39] = { {500, 800, 500, 2}, @@ -645,6 +648,7 @@ CPed::CPed(uint32 pedType) : m_pedIK(this) m_maxWeaponTypeAllowed = WEAPONTYPE_UNARMED; m_currentWeapon = WEAPONTYPE_UNARMED; m_storedWeapon = WEAPONTYPE_UNIDENTIFIED; + m_delayedWeapon = WEAPONTYPE_UNIDENTIFIED; for(int i = 0; i < TOTAL_WEAPON_SLOTS; i++) { CWeapon &weapon = GetWeapon(i); @@ -656,7 +660,7 @@ CPed::CPed(uint32 pedType) : m_pedIK(this) } m_lastFightMove = FIGHTMOVE_NULL; - GiveWeapon(WEAPONTYPE_UNARMED, 0); + GiveWeapon(WEAPONTYPE_UNARMED, 0, true); m_wepAccuracy = 60; m_lastWepDam = -1; m_collPoly.valid = false; @@ -1179,7 +1183,7 @@ CPed::FinishedReloadCB(CAnimBlendAssociation *reloadAssoc, void *arg) crouchFireAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_WEAPON_CROUCHFIRE); } if (!!weapon->m_bReload && reloadAssoc) { - if (reloadAssoc->animId == ANIM_WEAPON_CROUCHRELOAD && !crouchFireAssoc) { + if (reloadAssoc->animId == GetCrouchReloadAnim(weapon) && !crouchFireAssoc) { CAnimBlendAssociation *crouchAssoc = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_WEAPON_CROUCH, 8.0f); crouchAssoc->SetCurrentTime(crouchAssoc->hierarchy->totalLength); crouchAssoc->flags &= ~ASSOC_RUNNING; @@ -1212,7 +1216,7 @@ CPed::FinishedAttackCB(CAnimBlendAssociation *attackAssoc, void *arg) if (ped->m_nPedState != PED_ATTACK) { if (ped->bIsDucking && ped->IsPedInControl()) { if (currentWeapon->m_bReload) { - reloadAnimAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_WEAPON_CROUCHRELOAD); + reloadAnimAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), GetCrouchReloadAnim(currentWeapon)); } if (currentWeapon->m_bCrouchFire && attackAssoc) { if (attackAssoc->animId == ANIM_WEAPON_CROUCHFIRE && !reloadAnimAssoc) { @@ -1238,7 +1242,7 @@ CPed::FinishedAttackCB(CAnimBlendAssociation *attackAssoc, void *arg) if (ped->bIsDucking && ped->bCrouchWhenShooting) { if (currentWeapon->m_bReload) { - reloadAnimAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), ANIM_WEAPON_CROUCHRELOAD); + reloadAnimAssoc = RpAnimBlendClumpGetAssociation(ped->GetClump(), GetCrouchReloadAnim(currentWeapon)); } if (currentWeapon->m_bCrouchFire && attackAssoc) { if (attackAssoc->animId == ANIM_WEAPON_CROUCHFIRE && !reloadAnimAssoc) { @@ -1302,7 +1306,7 @@ CPed::FinishedAttackCB(CAnimBlendAssociation *attackAssoc, void *arg) } } -// --MIAMI: Done +// --MIAMI: Done except melee weapons void CPed::Attack(void) { @@ -1354,11 +1358,11 @@ CPed::Attack(void) } if (ourWeapon->m_bReload) { - reloadAnimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_RELOAD); + reloadAnimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), GetReloadAnim(ourWeapon)); } if (!!ourWeapon->m_bReload && !reloadAnimAssoc) { - reloadAnimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_CROUCHRELOAD); + reloadAnimAssoc = RpAnimBlendClumpGetAssociation(GetClump(), GetCrouchReloadAnim(ourWeapon)); } if ( reloadAnimAssoc && reloadAnimAssoc->IsRunning() ) { @@ -1518,14 +1522,22 @@ CPed::Attack(void) case ASSOCGRP_UNARMED: if (weaponAnimAssoc->animId == ANIM_FIGHT_PPUNCH || // TODO(Miami): Remove after fighting done weaponAnimAssoc->animId == ANIM_MELEE_ATTACK || weaponAnimAssoc->animId == ANIM_MELEE_ATTACK_START) { +#ifdef AUDIO_NOT_READY + DMAudio.PlayOneShot(m_audioEntityId, SOUND_FIGHT_PUNCH_39, 0.0f); +#else DMAudio.PlayOneShot(m_audioEntityId, SOUND_FIGHT_PUNCH_39, (damagerType | (ourWeaponType << 8))); +#endif } break; case ASSOCGRP_KNIFE: case ASSOCGRP_BASEBALLBAT: case ASSOCGRP_GOLFCLUB: case ASSOCGRP_CHAINSAW: +#ifdef AUDIO_NOT_READY + DMAudio.PlayOneShot(m_audioEntityId, SOUND_WEAPON_BAT_ATTACK, 1.0f); +#else DMAudio.PlayOneShot(m_audioEntityId, SOUND_WEAPON_BAT_ATTACK, (damagerType | (ourWeaponType << 8))); +#endif break; default: break; @@ -1587,12 +1599,12 @@ CPed::Attack(void) if (bIsDucking) { newReloadAssoc = CAnimManager::BlendAnimation( GetClump(), ourWeapon->m_AnimToPlay, - ANIM_WEAPON_CROUCHRELOAD, + GetCrouchReloadAnim(ourWeapon), 8.0f); } else { newReloadAssoc = CAnimManager::BlendAnimation( GetClump(), ourWeapon->m_AnimToPlay, - ANIM_WEAPON_RELOAD, + GetReloadAnim(ourWeapon), 8.0f); } newReloadAssoc->SetFinishCallback(FinishedReloadCB, this); @@ -1602,7 +1614,26 @@ CPed::Attack(void) bIsAttacking = false; bIsPointingGunAt = false; m_shootTimer = CTimer::GetTimeInMilliseconds(); +#ifdef AUDIO_NOT_READY + switch (ourWeaponType) { + case WEAPONTYPE_UZI: + case WEAPONTYPE_TEC9: + case WEAPONTYPE_SILENCED_INGRAM: + case WEAPONTYPE_MP5: + DMAudio.PlayOneShot(m_audioEntityId, SOUND_WEAPON_UZI_BULLET_ECHO, 0.0f); + break; + case WEAPONTYPE_AK47: + DMAudio.PlayOneShot(m_audioEntityId, SOUND_WEAPON_AK47_BULLET_ECHO, 0.0f); + break; + case WEAPONTYPE_M16: + DMAudio.PlayOneShot(m_audioEntityId, SOUND_WEAPON_M16_BULLET_ECHO, 0.0f); + break; + default: + break; + } +#else DMAudio.PlayOneShot(m_audioEntityId, SOUND_WEAPON_AK47_BULLET_ECHO, GetWeapon()->m_eWeaponType); +#endif return; } } @@ -1647,10 +1678,28 @@ CPed::Attack(void) ClearAimFlag(); // Echoes of bullets, at the end of the attack. (Bug: doesn't play while reloading) - if (weaponAnimAssoc->currentTime - weaponAnimAssoc->timeStep < ourWeapon->m_fAnimLoopEnd) { + if (weaponAnimAssoc->currentTime - weaponAnimAssoc->timeStep < animLoopEnd) { - // What?! Weapon id as volume?? +#ifdef AUDIO_NOT_READY + switch (ourWeaponType) { + case WEAPONTYPE_UZI: + case WEAPONTYPE_TEC9: + case WEAPONTYPE_SILENCED_INGRAM: + case WEAPONTYPE_MP5: + DMAudio.PlayOneShot(m_audioEntityId, SOUND_WEAPON_UZI_BULLET_ECHO, 0.0f); + break; + case WEAPONTYPE_AK47: + DMAudio.PlayOneShot(m_audioEntityId, SOUND_WEAPON_AK47_BULLET_ECHO, 0.0f); + break; + case WEAPONTYPE_M16: + DMAudio.PlayOneShot(m_audioEntityId, SOUND_WEAPON_M16_BULLET_ECHO, 0.0f); + break; + default: + break; + } +#else DMAudio.PlayOneShot(m_audioEntityId, SOUND_WEAPON_AK47_BULLET_ECHO, GetWeapon()->m_eWeaponType); +#endif } // Fun fact: removing this part leds to reloading flamethrower @@ -2133,7 +2182,7 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) case ANIM_VAN_GETIN: #ifdef VC_PED_PORTS multExtractedFromAnim = true; - zBlend = Max(m_pVehicleAnim->currentTime / m_pVehicleAnim->hierarchy->totalLength - 0.3f, 0.0f) / (1.0f - 0.3f); + zBlend = Max(m_pVehicleAnim->GetProgress() - 0.3f, 0.0f) / (1.0f - 0.3f); // fall through #endif case ANIM_CAR_QJACKED: @@ -2144,7 +2193,7 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) #ifdef VC_PED_PORTS if (!multExtractedFromAnim) { multExtractedFromAnim = true; - zBlend = Max(m_pVehicleAnim->currentTime / m_pVehicleAnim->hierarchy->totalLength - 0.5f, 0.0f) / (1.0f - 0.5f); + zBlend = Max(m_pVehicleAnim->GetProgress() - 0.5f, 0.0f) / (1.0f - 0.5f); } // fall through #endif @@ -2152,14 +2201,14 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) case ANIM_CAR_CRAWLOUT_RHS2: case ANIM_VAN_GETOUT_L: case ANIM_VAN_GETOUT: - seatPosMult = m_pVehicleAnim->currentTime / m_pVehicleAnim->hierarchy->totalLength; + seatPosMult = m_pVehicleAnim->GetProgress(); break; case ANIM_CAR_GETIN_RHS: case ANIM_CAR_GETIN_LHS: #ifdef VC_PED_PORTS if (veh && veh->IsCar() && veh->bIsBus) { multExtractedFromAnimBus = true; - zBlend = Min(m_pVehicleAnim->currentTime / m_pVehicleAnim->hierarchy->totalLength, 0.5f) / 0.5f; + zBlend = Min(m_pVehicleAnim->GetProgress(), 0.5f) / 0.5f; } // fall through #endif @@ -4520,6 +4569,9 @@ CPed::SetGetUp(void) } if (m_nPedState != PED_GETUP) { SetStoredState(); + if (m_nPedState == PED_FOLLOW_PATH) + ClearFollowPath(); + m_nPedState = PED_GETUP; } @@ -5119,7 +5171,7 @@ CPed::SetAttack(CEntity *victim) return; if (curWeapon->m_bReload && - (RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_RELOAD) || RpAnimBlendClumpGetAssociation(GetClump(), ANIM_WEAPON_CROUCHRELOAD))) { + (RpAnimBlendClumpGetAssociation(GetClump(), GetReloadAnim(curWeapon)) || RpAnimBlendClumpGetAssociation(GetClump(), GetCrouchReloadAnim(curWeapon)))) { if (!IsPlayer() || m_nPedState != PED_ATTACK || ((CPlayerPed*)this)->m_bHaveTargetSelected) bIsAttacking = false; else @@ -5511,13 +5563,13 @@ CPed::FightStrike(CVector &touchedNodePos) for (int j = 0; j < hisCol->numSpheres; j++) { attackDistance = hisCol->spheres[j].center; attackDistance -= touchedNodePos; - CColSphere *ourPieces = hisCol->spheres; - float maxDistanceToBeat = ourPieces[j].radius + tFightMoves[m_lastFightMove].strikeRadius; + CColSphere *hisPieces = hisCol->spheres; + float maxDistanceToBeat = hisPieces[j].radius + tFightMoves[m_lastFightMove].strikeRadius; // We can beat him too if (sq(maxDistanceToBeat) > attackDistance.MagnitudeSqr()) { pedFound = true; - closestPedPiece = (ePedPieceTypes) ourPieces[j].piece; + closestPedPiece = (ePedPieceTypes) hisPieces[j].piece; break; } } @@ -6324,10 +6376,59 @@ CPed::CreateDeadPedMoney(void) } void -CPed::CreateDeadPedWeaponPickups(void) +CPed::CreateDeadPedPickupCoors(float *x, float *y, float *z) { bool found = false; - float angleToPed; + CVector pickupPos; + +#define NUMBER_OF_ATTEMPTS 32 + for (int i = 0; i < NUMBER_OF_ATTEMPTS; i++) { + + pickupPos = GetPosition(); + pickupPos.x = 1.5f * Sin((CGeneral::GetRandomNumber() % 256) * PI / 128) + GetPosition().x; + pickupPos.y = 1.5f * Cos((CGeneral::GetRandomNumber() % 256) * PI / 128) + GetPosition().y; + pickupPos.z = CWorld::FindGroundZFor3DCoord(pickupPos.x, pickupPos.y, pickupPos.z, &found) + 0.5f; + + if (!found) + continue; + + CVector pedPos = GetPosition(); + pedPos.z += 0.3f; + + CVector pedToPickup = pickupPos - pedPos; + float distance = pedToPickup.Magnitude(); + + // outer edge of pickup + distance = (distance + 0.4f) / distance; + CVector pickupPos2 = pedPos; + pickupPos2 += distance * pedToPickup; + + if ((pickupPos - FindPlayerCoors()).Magnitude2D() > 2.0f || i > NUMBER_OF_ATTEMPTS / 2) { + + if (i > NUMBER_OF_ATTEMPTS / 2 || !CPickups::TestForPickupsInBubble(pickupPos, 1.3f)) { + + if (CWorld::GetIsLineOfSightClear(pickupPos2, pedPos, + true, i < NUMBER_OF_ATTEMPTS / 2, false, i < NUMBER_OF_ATTEMPTS / 2, false, false, false)) { + + if (i > NUMBER_OF_ATTEMPTS / 2 || !CWorld::TestSphereAgainstWorld(pickupPos, 1.2f, nil, false, true, false, false, false, false)) { + *x = pickupPos.x; + *y = pickupPos.y; + *z = pickupPos.z; + return; + } + } + } + } + } + *x = GetPosition().x; + *y = GetPosition().y; + *z = GetPosition().z + 0.4f; +#undef NUMBER_OF_ATTEMPTS +} + +void +CPed::CreateDeadPedWeaponPickups(void) +{ CVector pickupPos; if (bInVehicle) @@ -6340,34 +6441,11 @@ CPed::CreateDeadPedWeaponPickups(void) if (weapon == WEAPONTYPE_UNARMED || weapon == WEAPONTYPE_DETONATOR || (weaponAmmo == 0 && !GetWeapon(i).IsTypeMelee())) continue; - angleToPed = i * 1.75f; - pickupPos = GetPosition(); - pickupPos.x += 1.5f * Sin(angleToPed); - pickupPos.y += 1.5f * Cos(angleToPed); - pickupPos.z = CWorld::FindGroundZFor3DCoord(pickupPos.x, pickupPos.y, pickupPos.z, &found) + 0.5f; - - CVector pedPos = GetPosition(); - pedPos.z += 0.3f; - - CVector pedToPickup = pickupPos - pedPos; - float distance = pedToPickup.Magnitude(); - - // outer edge of pickup - distance = (distance + 0.3f) / distance; - CVector pickupPos2 = pedPos; - pickupPos2 += distance * pedToPickup; - - // pickup must be on ground and line to its edge must be clear - if (!found || CWorld::GetIsLineOfSightClear(pickupPos2, pedPos, true, false, false, false, false, false, false)) { - // otherwise try another position (but disregard second check apparently) - angleToPed += 3.14f; - pickupPos = GetPosition(); - pickupPos.x += 1.5f * Sin(angleToPed); - pickupPos.y += 1.5f * Cos(angleToPed); - pickupPos.z = CWorld::FindGroundZFor3DCoord(pickupPos.x, pickupPos.y, pickupPos.z, &found) + 0.5f; + int quantity = Min(weaponAmmo, AmmoForWeapon_OnStreet[weapon] / 2); + CreateDeadPedPickupCoors(&pickupPos.x, &pickupPos.y, &pickupPos.z); + if (!CPickups::TryToMerge_WeaponType(pickupPos, weapon, PICKUP_ONCE_TIMEOUT, quantity, false)) { + CPickups::GenerateNewOne_WeaponType(pickupPos, weapon, PICKUP_ONCE_TIMEOUT, Min(weaponAmmo, quantity)); } - if (found) - CPickups::GenerateNewOne_WeaponType(pickupPos, weapon, PICKUP_ONCE_TIMEOUT, Min(weaponAmmo, AmmoForWeapon_OnStreet[weapon])); } ClearWeapons(); } @@ -8945,7 +9023,11 @@ CPed::InvestigateEvent(void) bool CPed::IsPedDoingDriveByShooting(void) { +#ifdef FIX_BUGS if (FindPlayerPed() == this && CWeaponInfo::GetWeaponInfo(GetWeapon()->m_eWeaponType)->m_nWeaponSlot == 5) { +#else + if (FindPlayerPed() == this && GetWeapon()->m_eWeaponType == WEAPONTYPE_UZI) { +#endif if (TheCamera.Cams[TheCamera.ActiveCam].LookingLeft || TheCamera.Cams[TheCamera.ActiveCam].LookingRight) return true; } @@ -9982,11 +10064,8 @@ CPed::ProcessControl(void) if (m_nPedState == PED_FOLLOW_PATH) { if (DotProduct(m_vecDamageNormal, GetForward()) < -0.866f && CanPedJumpThis(collidingEnt, &m_vecDamageNormal)) { SetJump(); - - // Moved break into here, for compatibility with III - break; } - // break; + break; } #endif if (m_pedInObjective && @@ -10957,15 +11036,13 @@ CPed::ProcessControl(void) return; } - if (m_pMyVehicle->pDriver != this || m_pMyVehicle->IsBoat()) { + if (m_pMyVehicle->pDriver != this) { LookForSexyPeds(); LookForSexyCars(); break; } - if (m_pMyVehicle->m_vehType == VEHICLE_TYPE_BIKE || !m_pMyVehicle->pDriver->IsPlayer()) { - break; - } + // TODO(Miami): Start KILL_CHAR_ON_BOAT objective CPad* pad = CPad::GetPad(0); @@ -10995,12 +11072,24 @@ CPed::ProcessControl(void) } } #endif + + // TODO(Miami): This part moved to DriveVehicle in VC float steerAngle = m_pMyVehicle->m_fSteerAngle; CAnimBlendAssociation *lDriveAssoc; CAnimBlendAssociation *rDriveAssoc; CAnimBlendAssociation *lbAssoc; CAnimBlendAssociation *sitAssoc; - if (m_pMyVehicle->bLowVehicle) { + if (m_pMyVehicle->IsBoat() && !(m_pMyVehicle->pHandling->Flags & HANDLING_SIT_IN_BOAT)) { + sitAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_BOAT); + + if (!sitAssoc || sitAssoc->blendAmount < 1.0f) { + break; + } + + lDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_BOAT_L); + rDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_BOAT_R); + lbAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_BOAT_LB); + } else if (m_pMyVehicle->bLowVehicle) { sitAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_LSIT); if (!sitAssoc || sitAssoc->blendAmount < 1.0f) { @@ -11020,18 +11109,21 @@ CPed::ProcessControl(void) lDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_L); rDriveAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVE_R); lbAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_LB); + } - if (lbAssoc && - TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_1STPERSON - && TheCamera.Cams[TheCamera.ActiveCam].DirectionWasLooking == LOOKING_LEFT) { - lbAssoc->blendDelta = -1000.0f; - } + if (lbAssoc && + TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_1STPERSON + && TheCamera.Cams[TheCamera.ActiveCam].DirectionWasLooking == LOOKING_LEFT) { + lbAssoc->blendDelta = -1000.0f; } CAnimBlendAssociation *driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVEBY_L); - if (!driveByAssoc) driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVEBY_R); + if (!driveByAssoc) + driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVEBY_LOW_L); + if (!driveByAssoc) + driveByAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_DRIVEBY_LOW_R); if (m_pMyVehicle->bLowVehicle || m_pMyVehicle->m_fGasPedal >= 0.0f || driveByAssoc) { if (steerAngle == 0.0f || driveByAssoc) { @@ -11046,6 +11138,8 @@ CPed::ProcessControl(void) if (rDriveAssoc) rDriveAssoc->blendAmount = clamp(steerAngle * -100.0f / 61.0f, 0.0f, 1.0f); + else if (m_pMyVehicle->IsBoat() && !(m_pMyVehicle->pHandling->Flags & HANDLING_SIT_IN_BOAT)) + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_BOAT_R); else if (m_pMyVehicle->bLowVehicle) CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_LOW_R); else @@ -11057,6 +11151,8 @@ CPed::ProcessControl(void) if (lDriveAssoc) lDriveAssoc->blendAmount = clamp(steerAngle * 100.0f / 61.0f, 0.0f, 1.0f); + else if (m_pMyVehicle->IsBoat() && !(m_pMyVehicle->pHandling->Flags & HANDLING_SIT_IN_BOAT)) + CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_BOAT_L); else if (m_pMyVehicle->bLowVehicle) CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_LOW_L); else @@ -11069,10 +11165,18 @@ CPed::ProcessControl(void) if ((TheCamera.Cams[TheCamera.ActiveCam].Mode != CCam::MODE_1STPERSON || TheCamera.Cams[TheCamera.ActiveCam].DirectionWasLooking != LOOKING_LEFT) - && (!lbAssoc || lbAssoc->blendAmount < 1.0f)) { - CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_LB, 4.0f); + && (!lbAssoc || lbAssoc->blendAmount < 1.0f && lbAssoc->blendDelta <= 0.0f)) { + + if(m_pMyVehicle->IsBoat() && !(m_pMyVehicle->pHandling->Flags & HANDLING_SIT_IN_BOAT)) + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_BOAT_LB, 4.0f); + else + CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_LB, 4.0f); } } + + // TODO(Miami): This part belongs to DriveVehicle + if (!m_pMyVehicle) + return; break; } case PED_DIE: @@ -11124,7 +11228,8 @@ CPed::ProcessControl(void) } m_pCurrentPhysSurface = nil; } - } + } else + ServiceTalking(); } void @@ -11145,11 +11250,27 @@ CPed::SetInTheAir(void) } +// --MIAMI: Done void CPed::RestoreHeadPosition(void) { + bool canUseMyBody = false; + if (m_nPedState != PED_DRIVING && m_nPedState != PED_DRAG_FROM_CAR && !bIsDucking) { + if (m_animGroup != ASSOCGRP_SEXYWOMAN && m_animGroup != ASSOCGRP_WOMAN) + canUseMyBody = true; + } + if (!canUseMyBody) + m_pedIK.m_flags |= CPedIK::LOOKAROUND_HEAD_ONLY; + if (m_pedIK.RestoreLookAt()) { bIsRestoringLook = false; + canUseMyBody = false; + if (m_nPedState != PED_DRIVING && m_nPedState != PED_DRAG_FROM_CAR && !bIsDucking) { + if (m_animGroup != ASSOCGRP_SEXYWOMAN && m_animGroup != ASSOCGRP_WOMAN) + canUseMyBody = true; + } + if(canUseMyBody) + m_pedIK.m_flags &= ~CPedIK::LOOKAROUND_HEAD_ONLY; } } @@ -12234,19 +12355,7 @@ CPed::PedSetInCarCB(CAnimBlendAssociation *animAssoc, void *arg) ped->SetObjective(OBJECTIVE_NONE); } - if (veh->pDriver == ped) { - if (veh->bLowVehicle) { - ped->m_pVehicleAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_LSIT, 100.0f); - } else { - ped->m_pVehicleAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_SIT, 100.0f); - } - } else if (veh->bLowVehicle) { - ped->m_pVehicleAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_SITPLO, 100.0f); - } else { - ped->m_pVehicleAnim = CAnimManager::BlendAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_CAR_SITP, 100.0f); - } - - ped->StopNonPartialAnims(); + ped->AddInCarAnims(veh, veh->pDriver == ped); if (veh->bIsBus) ped->bRenderPedInCar = false; @@ -12651,11 +12760,11 @@ CPed::ReplaceWeaponWhenExitingVehicle(void) } } -// --MIAMI: Add driveby check, enumarate weapon slots +// --MIAMI: Done inline void CPed::RemoveWeaponWhenEnteringVehicle(void) { - if (IsPlayer() && GetWeapon(5).m_eWeaponType && GetWeapon(5).m_nAmmoTotal > 0) { + if (IsPlayer() && HasWeaponSlot(5) && GetWeapon(5).m_nAmmoTotal > 0 && ((CPlayerPed*)this)->GetPlayerInfoForThisPlayerPed()->m_bDriveByAllowed) { if (m_storedWeapon == WEAPONTYPE_UNIDENTIFIED) m_storedWeapon = GetWeapon()->m_eWeaponType; SetCurrentWeapon(GetWeapon(5).m_eWeaponType); @@ -14190,7 +14299,7 @@ CPed::ProcessObjective(void) if (reloadAssoc || !m_pedInObjective->IsPedShootable()) { if (reloadAssoc && - (!reloadAssoc->IsRunning() || reloadAssoc->currentTime / reloadAssoc->hierarchy->totalLength > 0.8f)) { + (!reloadAssoc->IsRunning() || reloadAssoc->GetProgress() > 0.8f)) { CAnimBlendAssociation *punchAssoc = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_FIGHT_PPUNCH, 8.0f); punchAssoc->flags |= ASSOC_DELETEFADEDOUT; punchAssoc->flags |= ASSOC_FADEOUTWHENDONE; @@ -17529,33 +17638,11 @@ CPed::WarpPedIntoCar(CVehicle *car) DMAudio.PlayOneShot(car->m_audioEntityId, SOUND_CAR_ENGINE_START, 1.0f); } -#ifdef VC_PED_PORTS RpAnimBlendClumpSetBlendDeltas(GetClump(), ASSOC_PARTIAL, -1000.0f); - // VC uses AddInCarAnims but we don't have that - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, car->GetDriverAnim(), 100.0f); + AddInCarAnims(car, car->pDriver == this); RemoveWeaponWhenEnteringVehicle(); -#else - if (car->IsBoat()) { -#ifndef FIX_BUGS - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_BOAT, 100.0f); -#else - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, car->GetDriverAnim(), 100.0f); -#endif - CWeaponInfo *ourWeapon = CWeaponInfo::GetWeaponInfo(GetWeapon()->m_eWeaponType); - RemoveWeaponModel(ourWeapon->m_nModelId); - } else { - // Because we can use Uzi for drive by - RemoveWeaponWhenEnteringVehicle(); - if (car->bLowVehicle) - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_LSIT, 100.0f); - else - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_SIT, 100.0f); - } -#endif - - StopNonPartialAnims(); if (car->bIsBus) bRenderPedInCar = false; @@ -17837,25 +17924,13 @@ CPed::SetEnterCar_AllClear(CVehicle *car, uint32 doorNode, uint32 doorFlag) m_vecOffsetSeek = doorOpenPos - GetPosition(); m_nPedStateTimer = CTimer::GetTimeInMilliseconds() + 600; if (car->IsBoat()) { -#ifdef VC_PED_PORTS - // VC checks for handling flag, but we can't do that - if(car->GetModelIndex() == MI_SPEEDER) + if(car->pHandling->Flags & HANDLING_SIT_IN_BOAT) m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_SIT, 100.0f); else m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_BOAT, 100.0f); PedSetInCarCB(nil, this); bVehExitWillBeInstant = true; -#else - -#ifndef FIX_BUGS - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, ANIM_DRIVE_BOAT, 100.0f); -#else - m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), ASSOCGRP_STD, car->GetDriverAnim(), 100.0f); -#endif - - m_pVehicleAnim->SetFinishCallback(PedSetInCarCB, this); -#endif if (IsPlayer()) CWaterLevel::AllocateBoatWakeArray(); } else { @@ -18418,14 +18493,15 @@ CPed::Load(uint8*& buf) #undef CopyToBuf #endif +// --MIAMI: Done void CPed::GiveDelayedWeapon(eWeaponType weapon, uint32 ammo) { - m_storedWeapon = weapon; - m_storedWeaponAmmo = ammo; - if (m_storedWeapon != WEAPONTYPE_UNIDENTIFIED) { - int modelId1 = CWeaponInfo::GetWeaponInfo(m_storedWeapon)->m_nModelId; - int modelId2 = CWeaponInfo::GetWeaponInfo(m_storedWeapon)->m_nModel2Id; + m_delayedWeapon = weapon; + m_delayedWeaponAmmo = ammo; + if (m_delayedWeapon != WEAPONTYPE_UNIDENTIFIED) { + int modelId1 = CWeaponInfo::GetWeaponInfo(m_delayedWeapon)->m_nModelId; + int modelId2 = CWeaponInfo::GetWeaponInfo(m_delayedWeapon)->m_nModel2Id; if (modelId1 != -1) CStreaming::RequestModel(modelId1, STREAMFLAGS_DEPENDENCY); if (modelId2 != -1) @@ -18433,18 +18509,19 @@ CPed::GiveDelayedWeapon(eWeaponType weapon, uint32 ammo) if ((modelId1 == -1 || CStreaming::HasModelLoaded(modelId1)) && (modelId2 == -1 || CStreaming::HasModelLoaded(modelId2))) { - GiveWeapon(m_storedWeapon, m_storedWeaponAmmo, 1); - m_storedWeapon = WEAPONTYPE_UNIDENTIFIED; + GiveWeapon(m_delayedWeapon, m_delayedWeaponAmmo, true); + m_delayedWeapon = WEAPONTYPE_UNIDENTIFIED; } } } +// --MIAMI: Done void CPed::RequestDelayedWeapon() { - if (m_storedWeapon != WEAPONTYPE_UNIDENTIFIED) { - int modelId1 = CWeaponInfo::GetWeaponInfo(m_storedWeapon)->m_nModelId; - int modelId2 = CWeaponInfo::GetWeaponInfo(m_storedWeapon)->m_nModel2Id; + if (m_delayedWeapon != WEAPONTYPE_UNIDENTIFIED) { + int modelId1 = CWeaponInfo::GetWeaponInfo(m_delayedWeapon)->m_nModelId; + int modelId2 = CWeaponInfo::GetWeaponInfo(m_delayedWeapon)->m_nModel2Id; if (modelId1 != -1) CStreaming::RequestModel(modelId1, STREAMFLAGS_DEPENDENCY); if (modelId2 != -1) @@ -18452,12 +18529,13 @@ CPed::RequestDelayedWeapon() if ((modelId1 == -1 || CStreaming::HasModelLoaded(modelId1)) && (modelId2 == -1 || CStreaming::HasModelLoaded(modelId2))) { - GiveWeapon(m_storedWeapon, m_storedWeaponAmmo, 1); - m_storedWeapon = WEAPONTYPE_UNIDENTIFIED; + GiveWeapon(m_delayedWeapon, m_delayedWeaponAmmo, 1); + m_delayedWeapon = WEAPONTYPE_UNIDENTIFIED; } } } +// --MIAMI: Done void CPed::ClearFollowPath() { @@ -18466,4 +18544,44 @@ CPed::ClearFollowPath() } m_nPathNodes = 0; m_nCurPathNode = 0; +} + +// --MIAMI: Done +void +CPed::AddInCarAnims(CVehicle* car, bool isDriver) +{ + AnimationId anim; + AssocGroupId group; + if (car->IsBoat()) { + if (car->pHandling->Flags & HANDLING_SIT_IN_BOAT) { + anim = ANIM_CAR_SIT; + } else { + anim = ANIM_DRIVE_BOAT; + } + group = ASSOCGRP_STD; + } else if (car->IsBike()) { + if (isDriver) { + // TODO(Miami): Bikes + } else { + // TODO(Miami): Bikes + } + } else { + if (isDriver) { + if (car->bLowVehicle) { + anim = ANIM_CAR_LSIT; + } else { + anim = ANIM_CAR_SIT; + } + } else { + if (car->bLowVehicle) { + anim = ANIM_CAR_SITPLO; + } else { + anim = ANIM_CAR_SITP; + } + } + group = ASSOCGRP_STD; + } + m_pVehicleAnim = CAnimManager::BlendAnimation(GetClump(), group, anim, 100.0f); + + StopNonPartialAnims(); } \ No newline at end of file diff --git a/src/peds/Ped.h b/src/peds/Ped.h index 32557cb6..42fec06c 100644 --- a/src/peds/Ped.h +++ b/src/peds/Ped.h @@ -523,7 +523,8 @@ public: CVector2D *m_wanderRangeBounds; // array with 2 CVector2D (actually unused CRange2D class) - unused CWeapon m_weapons[TOTAL_WEAPON_SLOTS]; eWeaponType m_storedWeapon; - uint32 m_storedWeaponAmmo; + eWeaponType m_delayedWeapon; + uint32 m_delayedWeaponAmmo; uint8 m_currentWeapon; // eWeaponType uint8 m_maxWeaponTypeAllowed; // eWeaponType uint8 m_wepSkills; @@ -704,7 +705,7 @@ public: void RemoveWeaponAnims(int, float); void CreateDeadPedMoney(void); void CreateDeadPedWeaponPickups(void); -// void CreateDeadPedPickupCoors(float *x, float *y, float *z); + void CreateDeadPedPickupCoors(float *x, float *y, float *z); void SetAttackTimer(uint32); void SetBeingDraggedFromCar(CVehicle*, uint32, bool); void SetRadioStation(void); @@ -775,6 +776,7 @@ public: void ClearFollowPath(); void GiveDelayedWeapon(eWeaponType weapon, uint32 ammo); void RequestDelayedWeapon(); + void AddInCarAnims(CVehicle* car, bool isDriver); // Static methods static CVector GetLocalPositionToOpenCarDoor(CVehicle *veh, uint32 component, float offset); @@ -875,7 +877,7 @@ public: bool Dead(void) { return m_nPedState == PED_DEAD; } bool Dying(void) { return m_nPedState == PED_DIE; } bool DyingOrDead(void) { return m_nPedState == PED_DIE || m_nPedState == PED_DEAD; } - bool OnGround(void) { return m_nPedState == PED_FALL || m_nPedState == PED_DIE || m_nPedState == PED_DEAD; } + bool OnGround(void) { return m_nPedState == PED_FALL || m_nPedState == PED_DIE || m_nPedState == PED_DEAD || m_nWaitState == WAITSTATE_SUN_BATHE_IDLE; } bool Driving(void) { return m_nPedState == PED_DRIVING; } bool InVehicle(void) { return bInVehicle && m_pMyVehicle; } // True when ped is sitting/standing in vehicle, not in enter/exit state. @@ -891,7 +893,7 @@ public: void RemoveWeaponWhenEnteringVehicle(void); bool IsNotInWreckedVehicle(); - // My addons. Maybe inlined in VC? + // My names. Inlined in VC AnimationId GetFireAnimNotDucking(CWeaponInfo* weapon) { // TODO(Miami): Revert that when weapons got ported if (weapon->m_AnimToPlay == ASSOCGRP_STD) @@ -928,6 +930,20 @@ public: else return ANIM_WEAPON_FIRE; } + + static AnimationId GetCrouchReloadAnim(CWeaponInfo* weapon) { + if (!!weapon->m_bReload) + return ANIM_WEAPON_CROUCHRELOAD; + else + return (AnimationId)0; + } + + static AnimationId GetReloadAnim(CWeaponInfo* weapon) { + if (!!weapon->m_bReload) + return ANIM_WEAPON_RELOAD; + else + return (AnimationId)0; + } // -- // My additions, because there were many, many instances of that. diff --git a/src/peds/PlayerPed.cpp b/src/peds/PlayerPed.cpp index 826cc9e9..69a6d211 100644 --- a/src/peds/PlayerPed.cpp +++ b/src/peds/PlayerPed.cpp @@ -451,7 +451,7 @@ CPlayerPed::SetRealMoveAnim(void) } else if (curSprintAssoc->blendDelta >= 0.0f || curSprintAssoc->blendAmount >= 0.8f) { if (m_fMoveSpeed < 0.4f) { AnimationId runStopAnim; - if (curSprintAssoc->currentTime / curSprintAssoc->hierarchy->totalLength < 0.5) // double + if (curSprintAssoc->GetProgress() < 0.5) // double runStopAnim = ANIM_RUN_STOP; else runStopAnim = ANIM_RUN_STOP_R; @@ -638,7 +638,7 @@ CPlayerPed::PlayerControlSniper(CPad *padUsed) firePos = GetMatrix() * firePos; GetWeapon()->Fire(this, &firePos); } - GetWeapon()->Update(m_audioEntityId); + GetWeapon()->Update(m_audioEntityId, nil); } // --MIAMI: Made compatible with slots, but still TODO @@ -742,7 +742,7 @@ CPlayerPed::PlayerControlM16(CPad *padUsed) firePos = GetMatrix() * firePos; GetWeapon()->Fire(this, &firePos); } - GetWeapon()->Update(m_audioEntityId); + GetWeapon()->Update(m_audioEntityId, nil); } void @@ -1561,7 +1561,7 @@ CPlayerPed::ProcessControl(void) } if (padUsed && IsPedShootable()) { ProcessWeaponSwitch(padUsed); - GetWeapon()->Update(m_audioEntityId); + GetWeapon()->Update(m_audioEntityId, this); } ProcessAnimGroups(); if (padUsed) { diff --git a/src/peds/Population.cpp b/src/peds/Population.cpp index 567f9c0f..edaa2aa3 100644 --- a/src/peds/Population.cpp +++ b/src/peds/Population.cpp @@ -734,7 +734,7 @@ CPopulation::AddToPopulation(float minDist, float maxDist, float minDistOffScree } CPed* -CPopulation::AddPedInCar(CVehicle* car, bool isPassenger) +CPopulation::AddPedInCar(CVehicle* car, bool isDriver) { int defaultModel = MI_MALE01; int miamiViceIndex = 0; @@ -777,7 +777,7 @@ CPopulation::AddPedInCar(CVehicle* car, bool isPassenger) case MI_VICECHEE: // TODO(MIAMI): figure out new structure of the function preferredModel = COP_MIAMIVICE; pedType = PEDTYPE_COP; - miamiViceIndex = (isPassenger ? 2 * CCarCtrl::MiamiViceCycle : 2 * CCarCtrl::MiamiViceCycle + 1); + miamiViceIndex = (isDriver ? 2 * CCarCtrl::MiamiViceCycle : 2 * CCarCtrl::MiamiViceCycle + 1); break; case MI_TAXI: case MI_CABBIE: @@ -828,29 +828,11 @@ CPopulation::AddPedInCar(CVehicle* car, bool isPassenger) CPed *newPed = CPopulation::AddPed((ePedType)pedType, preferredModel, car->GetPosition(), miamiViceIndex); newPed->bUsesCollision = false; - // what?? - if (pedType != PEDTYPE_COP) { - newPed->SetCurrentWeapon(WEAPONTYPE_COLT45); + if (newPed->GetWeapon()->m_eWeaponType != WEAPONTYPE_UNARMED) { newPed->RemoveWeaponModel(CWeaponInfo::GetWeaponInfo(newPed->GetWeapon()->m_eWeaponType)->m_nModelId); } - /* - // Miami leftover - if (car->m_vehType == VEHICLE_TYPE_BIKE) { - newPed->m_pVehicleAnim = CAnimManager::BlendAnimation(newPed->GetClump(), ASSOCGRP_STD, *((CBike*)car + 308h), 100.0f); - } else */ - // FIX: Make peds comfortable while driving car/boat -#ifdef FIX_BUGS - { - newPed->m_pVehicleAnim = CAnimManager::BlendAnimation(newPed->GetClump(), ASSOCGRP_STD, car->GetDriverAnim(), 100.0f); - } -#else - { - newPed->m_pVehicleAnim = CAnimManager::BlendAnimation(newPed->GetClump(), ASSOCGRP_STD, ANIM_CAR_SIT, 100.0f); - } -#endif - - newPed->StopNonPartialAnims(); + newPed->AddInCarAnims(car, isDriver); return newPed; } diff --git a/src/peds/Population.h b/src/peds/Population.h index 20d6e567..ae4aa44c 100644 --- a/src/peds/Population.h +++ b/src/peds/Population.h @@ -70,7 +70,7 @@ public: static void LoadPedGroups(); static void UpdatePedCount(ePedType, bool); static void DealWithZoneChange(eLevelName oldLevel, eLevelName newLevel, bool); - static CPed *AddPedInCar(CVehicle *car, bool isPassenger); + static CPed *AddPedInCar(CVehicle *car, bool isDriver); static bool IsPointInSafeZone(CVector *coors); static void RemovePed(CPed *ent); static int32 ChooseCivilianOccupation(int32); diff --git a/src/vehicles/Automobile.cpp b/src/vehicles/Automobile.cpp index d1f2faaa..5f78e2a9 100644 --- a/src/vehicles/Automobile.cpp +++ b/src/vehicles/Automobile.cpp @@ -3017,11 +3017,15 @@ void CAutomobile::DoDriveByShootings(void) { CAnimBlendAssociation *anim; + CPlayerInfo* playerInfo = ((CPlayerPed*)this)->GetPlayerInfoForThisPlayerPed(); + if (playerInfo && !playerInfo->m_bDriveByAllowed) + return; + CWeapon *weapon = pDriver->GetWeapon(); if(CWeaponInfo::GetWeaponInfo(weapon->m_eWeaponType)->m_nWeaponSlot != 5) return; - weapon->Update(pDriver->m_audioEntityId); + weapon->Update(pDriver->m_audioEntityId, nil); bool lookingLeft = false; bool lookingRight = false; @@ -3037,37 +3041,42 @@ CAutomobile::DoDriveByShootings(void) lookingRight = true; } + AnimationId rightAnim = ANIM_DRIVEBY_R; + AnimationId leftAnim = ANIM_DRIVEBY_L; + if (pDriver->m_pMyVehicle->bLowVehicle) { + rightAnim = ANIM_DRIVEBY_LOW_R; + leftAnim = ANIM_DRIVEBY_LOW_L; + } + if(lookingLeft || lookingRight){ if(lookingLeft){ - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_R); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), rightAnim); if(anim) anim->blendDelta = -1000.0f; - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_L); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), leftAnim); if(anim == nil || anim->blendDelta < 0.0f) - CAnimManager::AddAnimation(pDriver->GetClump(), ASSOCGRP_STD, ANIM_DRIVEBY_L); - else - anim->SetRun(); + anim = CAnimManager::AddAnimation(pDriver->GetClump(), ASSOCGRP_STD, leftAnim); }else if(pDriver->m_pMyVehicle->pPassengers[0] == nil || TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_1STPERSON){ - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_L); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), leftAnim); if(anim) anim->blendDelta = -1000.0f; - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_R); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), rightAnim); if(anim == nil || anim->blendDelta < 0.0f) - CAnimManager::AddAnimation(pDriver->GetClump(), ASSOCGRP_STD, ANIM_DRIVEBY_R); - else - anim->SetRun(); + anim = CAnimManager::AddAnimation(pDriver->GetClump(), ASSOCGRP_STD, rightAnim); } - if(CPad::GetPad(0)->GetCarGunFired() && CTimer::GetTimeInMilliseconds() > weapon->m_nTimer){ - weapon->FireFromCar(this, lookingLeft); - weapon->m_nTimer = CTimer::GetTimeInMilliseconds() + 70; + if (!anim || !anim->IsRunning()) { + if (CPad::GetPad(0)->GetCarGunFired() && CTimer::GetTimeInMilliseconds() > weapon->m_nTimer) { + weapon->FireFromCar(this, lookingLeft); + weapon->m_nTimer = CTimer::GetTimeInMilliseconds() + 70; + } } }else{ weapon->Reload(); - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_L); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), leftAnim); if(anim) anim->blendDelta = -1000.0f; - anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_R); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), rightAnim); if(anim) anim->blendDelta = -1000.0f; } diff --git a/src/vehicles/Boat.cpp b/src/vehicles/Boat.cpp index 784d859f..1e7f8ecf 100644 --- a/src/vehicles/Boat.cpp +++ b/src/vehicles/Boat.cpp @@ -19,6 +19,9 @@ #include "Pools.h" #include "Pad.h" #include "Boat.h" +#include "AnimBlendAssociation.h" +#include "RpAnimBlend.h" +#include "Record.h" #define INVALID_ORIENTATION (-9999.99f) @@ -149,6 +152,9 @@ CBoat::ProcessControl(void) ProcessControlInputs(0); if(GetModelIndex() == MI_PREDATOR) DoFixedMachineGuns(); + + if (!CRecordDataForChase::IsRecording()) + DoDriveByShootings(); break; case STATUS_SIMPLE: m_bIsAnchored = false; @@ -912,6 +918,68 @@ CBoat::AddWakePoint(CVector point) } } +void +CBoat::DoDriveByShootings(void) +{ + CAnimBlendAssociation *anim; + CPlayerInfo* playerInfo = ((CPlayerPed*)this)->GetPlayerInfoForThisPlayerPed(); + if (playerInfo && !playerInfo->m_bDriveByAllowed) + return; + + CWeapon *weapon = pDriver->GetWeapon(); + if(CWeaponInfo::GetWeaponInfo(weapon->m_eWeaponType)->m_nWeaponSlot != 5) + return; + + weapon->Update(pDriver->m_audioEntityId, nil); + + bool lookingLeft = false; + bool lookingRight = false; + if(TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_TOPDOWN){ + if(CPad::GetPad(0)->GetLookLeft()) + lookingLeft = true; + if(CPad::GetPad(0)->GetLookRight()) + lookingRight = true; + }else{ + if(TheCamera.Cams[TheCamera.ActiveCam].LookingLeft) + lookingLeft = true; + if(TheCamera.Cams[TheCamera.ActiveCam].LookingRight) + lookingRight = true; + } + + if(lookingLeft || lookingRight){ + if(lookingLeft){ + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_R); + if(anim) + anim->blendDelta = -1000.0f; + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_L); + if(anim == nil || anim->blendDelta < 0.0f) + anim = CAnimManager::AddAnimation(pDriver->GetClump(), ASSOCGRP_STD, ANIM_DRIVEBY_L); + }else if(pDriver->m_pMyVehicle->pPassengers[0] == nil || TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_1STPERSON){ + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_L); + if(anim) + anim->blendDelta = -1000.0f; + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_R); + if(anim == nil || anim->blendDelta < 0.0f) + anim = CAnimManager::AddAnimation(pDriver->GetClump(), ASSOCGRP_STD, ANIM_DRIVEBY_R); + } + + if (!anim || !anim->IsRunning()) { + if (CPad::GetPad(0)->GetCarGunFired() && CTimer::GetTimeInMilliseconds() > weapon->m_nTimer) { + weapon->FireFromCar(this, lookingLeft); + weapon->m_nTimer = CTimer::GetTimeInMilliseconds() + 70; + } + } + }else{ + weapon->Reload(); + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_L); + if(anim) + anim->blendDelta = -1000.0f; + anim = RpAnimBlendClumpGetAssociation(pDriver->GetClump(), ANIM_DRIVEBY_R); + if(anim) + anim->blendDelta = -1000.0f; + } +} + #ifdef COMPATIBLE_SAVES void CBoat::Save(uint8*& buf) diff --git a/src/vehicles/Boat.h b/src/vehicles/Boat.h index 7a0a9be4..c8168db0 100644 --- a/src/vehicles/Boat.h +++ b/src/vehicles/Boat.h @@ -61,6 +61,7 @@ public: void SetupModelNodes(); void PruneWakeTrail(void); void AddWakePoint(CVector point); + void DoDriveByShootings(void); static CBoat *apFrameWakeGeneratingBoats[4]; diff --git a/src/vehicles/Vehicle.cpp b/src/vehicles/Vehicle.cpp index e457f964..a4c6f3f3 100644 --- a/src/vehicles/Vehicle.cpp +++ b/src/vehicles/Vehicle.cpp @@ -1045,7 +1045,7 @@ CVehicle::SetUpDriver(void) if(VehicleCreatedBy != RANDOM_VEHICLE) return nil; - pDriver = CPopulation::AddPedInCar(this, false); + pDriver = CPopulation::AddPedInCar(this, true); pDriver->m_pMyVehicle = this; pDriver->m_pMyVehicle->RegisterReference((CEntity**)&pDriver->m_pMyVehicle); pDriver->bInVehicle = true; @@ -1061,7 +1061,7 @@ CVehicle::SetupPassenger(int n) if(pPassengers[n]) return pPassengers[n]; - pPassengers[n] = CPopulation::AddPedInCar(this, true); + pPassengers[n] = CPopulation::AddPedInCar(this, false); pPassengers[n]->m_pMyVehicle = this; pPassengers[n]->m_pMyVehicle->RegisterReference((CEntity**)&pPassengers[n]->m_pMyVehicle); pPassengers[n]->bInVehicle = true; diff --git a/src/vehicles/Vehicle.h b/src/vehicles/Vehicle.h index c9e6bf93..666a26a2 100644 --- a/src/vehicles/Vehicle.h +++ b/src/vehicles/Vehicle.h @@ -300,7 +300,6 @@ public: CVehicleModelInfo* GetModelInfo() { return (CVehicleModelInfo*)CModelInfo::GetModelInfo(GetModelIndex()); } bool IsTaxi(void) { return GetModelIndex() == MI_TAXI || GetModelIndex() == MI_CABBIE || GetModelIndex() == MI_ZEBRA || GetModelIndex() == MI_KAUFMAN; } bool IsRealHeli(void) { return !!(pHandling->Flags & HANDLING_IS_HELI); } - AnimationId GetDriverAnim(void) { return IsCar() && bLowVehicle ? ANIM_CAR_LSIT : (IsBoat() && GetModelIndex() != MI_SPEEDER ? ANIM_DRIVE_BOAT : ANIM_CAR_SIT); } static bool bWheelsOnlyCheat; static bool bAllDodosCheat; diff --git a/src/weapons/Weapon.cpp b/src/weapons/Weapon.cpp index 1ae26106..1f901f88 100644 --- a/src/weapons/Weapon.cpp +++ b/src/weapons/Weapon.cpp @@ -30,25 +30,28 @@ #include "WeaponInfo.h" #include "World.h" +// TODO(Miami) +#define AUDIO_NOT_READY + uint16 gReloadSampleTime[WEAPONTYPE_LAST_WEAPONTYPE] = { 0, // UNARMED 0, // BASEBALLBAT + 0, // GRENADE + 0, // DETONATEGRENADE + 0, // MOLOTOV + 0, // ROCKET 250, // COLT45 + 650, // SHOTGUN 400, // TEC9 400, // UZIhec 400, // SILENCED_INGRAM 400, // MP5 - 650, // SHOTGUN - 300, // AK47 300, // M16 + 300, // AK47 423, // SNIPERRIFLE 400, // ROCKETLAUNCHER 0, // FLAMETHROWER - 0, // MOLOTOV - 0, // ROCKET - 0, // GRENADE - 0, // DETONATEGRENADE 0, // DETONATOR 0 // HELICANNON }; @@ -96,10 +99,7 @@ CWeapon::Initialise(eWeaponType type, int32 ammo) { m_eWeaponType = type; m_eWeaponState = WEAPONSTATE_READY; - if (ammo > 99999) - m_nAmmoTotal = 99999; - else - m_nAmmoTotal = ammo; + m_nAmmoTotal = Min(ammo, 99999); m_nAmmoInClip = 0; Reload(); m_nTimer = 0; @@ -283,8 +283,11 @@ CWeapon::Fire(CEntity *shooter, CVector *fireSource) DMAudio.PlayOneShot(shooterPed->m_audioEntityId, SOUND_WEAPON_SHOT_FIRED, 0.0f); } - if ( m_nAmmoInClip > 0 ) m_nAmmoInClip--; - if ( m_nAmmoTotal > 0 && (m_nAmmoTotal < 25000 || isPlayer) ) m_nAmmoTotal--; + if ( m_nAmmoInClip > 0 ) + m_nAmmoInClip--; + + if ( m_nAmmoTotal > 0 && (m_nAmmoTotal < 25000 || isPlayer) && (!isPlayer || CStats::GetPercentageProgress() < 100.0f || m_eWeaponType == WEAPONTYPE_DETONATOR)) + m_nAmmoTotal--; if ( m_eWeaponState == WEAPONSTATE_READY && m_eWeaponType == WEAPONTYPE_FLAMETHROWER ) DMAudio.PlayOneShot(((CPhysical*)shooter)->m_audioEntityId, SOUND_WEAPON_FLAMETHROWER_FIRE, 0.0f); @@ -331,7 +334,7 @@ CWeapon::Fire(CEntity *shooter, CVector *fireSource) } bool -CWeapon::FireFromCar(CAutomobile *shooter, bool left) +CWeapon::FireFromCar(CVehicle *shooter, bool left) { ASSERT(shooter!=nil); @@ -393,10 +396,10 @@ CWeapon::FireMelee(CEntity *shooter, CVector &fireSource) { bool collided = false; - CColModel *victimPedCol = &CTempColModels::ms_colModelPed1; - if ( victimPed->OnGround() || !victimPed->IsPedHeadAbovePos(-0.3f) ) - victimPedCol = &CTempColModels::ms_colModelPedGroundHit; - + // TODO(Miami) + if (victimPed->m_nPedState == PED_DRIVING && (m_eWeaponType == WEAPONTYPE_UNARMED /*|| m_eWeaponType == WEAPONTYPE_BRASSKNUCKLES*/ + || info->m_bFightMode)) + continue; float victimPedRadius = victimPed->GetBoundRadius() + info->m_fRadius; if ( victimPed->bUsesCollision || victimPed->Dead() || victimPed->Driving() ) @@ -405,12 +408,29 @@ CWeapon::FireMelee(CEntity *shooter, CVector &fireSource) if ( SQR(victimPedRadius) > (victimPedPos-(*fireSource)).MagnitudeSqr() ) { CVector collisionDist; + CColModel* victimPedCol = &CTempColModels::ms_colModelPed1; + bool useLocalPos = false; + if (victimPed->m_nPedState == PED_FALL + || victimPed->m_nPedState == PED_DIE && victimPed->bIsPedDieAnimPlaying + || victimPed->m_nWaitState == WAITSTATE_SIT_IDLE + || victimPed->m_nWaitState == WAITSTATE_SUN_BATHE_IDLE) + { + useLocalPos = true; + victimPedCol = ((CPedModelInfo*)CModelInfo::GetModelInfo(victimPed->GetModelIndex()))->AnimatePedColModelSkinnedWorld(victimPed->GetClump()); + } else if (victimPed->DyingOrDead()) { + victimPedCol = &CTempColModels::ms_colModelPedGroundHit; + } int32 s = 0; while ( s < victimPedCol->numSpheres ) { CColSphere *sphere = &victimPedCol->spheres[s]; - collisionDist = victimPedPos+sphere->center-(*fireSource); + + if (useLocalPos) { + collisionDist = sphere->center - (*fireSource); + } else { + collisionDist = victimPedPos + sphere->center - (*fireSource); + } if ( SQR(sphere->radius + info->m_fRadius) > collisionDist.MagnitudeSqr() ) { @@ -659,45 +679,15 @@ CWeapon::FireInstantHit(CEntity *shooter, CVector *fireSource) switch ( m_eWeaponType ) { - case WEAPONTYPE_AK47: - { - static uint8 counter = 0; - - if ( !(++counter & 1) ) - { - CPointLights::AddLight(CPointLights::LIGHT_POINT, - *fireSource, CVector(0.0f, 0.0f, 0.0f), 5.0f, - 1.0f, 0.8f, 0.0f, CPointLights::FOG_NONE, false); - - CVector gunflashPos = *fireSource; - gunflashPos += CVector(0.06f*ahead.x, 0.06f*ahead.y, 0.0f); - CParticle::AddParticle(PARTICLE_GUNFLASH_NOANIM, gunflashPos, CVector(0.0f, 0.0f, 0.0f), nil, 0.10f); - gunflashPos += CVector(0.06f*ahead.x, 0.06f*ahead.y, 0.0f); - CParticle::AddParticle(PARTICLE_GUNFLASH_NOANIM, gunflashPos, CVector(0.0f, 0.0f, 0.0f), nil, 0.08f); - gunflashPos += CVector(0.05f*ahead.x, 0.05f*ahead.y, 0.0f); - CParticle::AddParticle(PARTICLE_GUNFLASH_NOANIM, gunflashPos, CVector(0.0f, 0.0f, 0.0f), nil, 0.06f); - gunflashPos += CVector(0.04f*ahead.x, 0.04f*ahead.y, 0.0f); - CParticle::AddParticle(PARTICLE_GUNFLASH_NOANIM, gunflashPos, CVector(0.0f, 0.0f, 0.0f), nil, 0.04f); - - CVector gunsmokePos = *fireSource; - float rnd = CGeneral::GetRandomNumberInRange(0.05f, 0.25f); - CParticle::AddParticle(PARTICLE_GUNSMOKE2, gunsmokePos, CVector(ahead.x*rnd, ahead.y*rnd, 0.0f)); - - CVector gunshellPos = *fireSource; - gunshellPos -= CVector(0.5f*ahead.x, 0.5f*ahead.y, 0.0f); - CVector dir = CrossProduct(CVector(ahead.x, ahead.y, 0.0f), CVector(0.0f, 0.0f, 5.0f)); - dir.Normalise2D(); - AddGunshell(shooter, gunshellPos, CVector2D(dir.x, dir.y), 0.018f); - } - - break; - } - case WEAPONTYPE_M16: + case WEAPONTYPE_AK47: + // case WEAPONTYPE_M60: + // case WEAPONTYPE_MINIGUN: + case WEAPONTYPE_HELICANNON: { static uint8 counter = 0; - if ( !(++counter & 1) ) + if ( info->m_nFiringRate >= 50 && !(++counter & 1) ) { CPointLights::AddLight(CPointLights::LIGHT_POINT, *fireSource, CVector(0.0f, 0.0f, 0.0f), 5.0f, @@ -1669,7 +1659,7 @@ CWeapon::FireM16_1stPerson(CEntity *shooter) } bool -CWeapon::FireInstantHitFromCar(CAutomobile *shooter, bool left) +CWeapon::FireInstantHitFromCar(CVehicle *shooter, bool left) { CWeaponInfo *info = GetInfo(); @@ -2040,8 +2030,10 @@ CWeapon::Reload(void) } void -CWeapon::Update(int32 audioEntity) +CWeapon::Update(int32 audioEntity, CPed *pedToAdjustSound) { + CWeaponInfo *info = GetInfo(); + switch ( m_eWeaponState ) { case WEAPONSTATE_MELEE_MADECONTACT: @@ -2074,9 +2066,57 @@ CWeapon::Update(int32 audioEntity) { if ( AEHANDLE_IS_OK(audioEntity) && m_eWeaponType < WEAPONTYPE_LAST_WEAPONTYPE ) { - uint32 timePassed = m_nTimer - gReloadSampleTime[m_eWeaponType]; - if ( CTimer::GetPreviousTimeInMilliseconds() < timePassed && CTimer::GetTimeInMilliseconds() >= timePassed ) - DMAudio.PlayOneShot(audioEntity, SOUND_WEAPON_RELOAD, 0.0f); + CAnimBlendAssociation *reloadAssoc = nil; + if (pedToAdjustSound) { + if (CPed::GetReloadAnim(info) && (!CWorld::Players[CWorld::PlayerInFocus].m_bFastReload || !pedToAdjustSound->IsPlayer())) { + reloadAssoc = RpAnimBlendClumpGetAssociation(pedToAdjustSound->GetClump(), CPed::GetReloadAnim(info)); + if (!reloadAssoc) { + reloadAssoc = RpAnimBlendClumpGetAssociation(pedToAdjustSound->GetClump(), CPed::GetCrouchReloadAnim(info)); + } + } + } + if (reloadAssoc && reloadAssoc->IsRunning() && reloadAssoc->blendAmount > 0.2f) { + float soundStart = 0.75f; + switch (info->m_AnimToPlay) { + case ASSOCGRP_PYTHON: + soundStart = 0.5f; + break; + case ASSOCGRP_COLT: + case ASSOCGRP_TEC: + soundStart = 0.7f; + break; + case ASSOCGRP_UZI: + soundStart = 0.75f; + break; + case ASSOCGRP_RIFLE: + soundStart = 0.75f; + break; + case ASSOCGRP_M60: + soundStart = 0.7f; + break; + default: + break; + } + if (reloadAssoc->GetProgress() >= soundStart && (reloadAssoc->currentTime - reloadAssoc->timeStep) / reloadAssoc->hierarchy->totalLength < soundStart) { +#ifdef AUDIO_NOT_READY + DMAudio.PlayOneShot(audioEntity, SOUND_WEAPON_RELOAD, 0.0f); +#else + DMAudio.PlayOneShot(audioEntity, SOUND_WEAPON_RELOAD, m_eWeaponType); +#endif + } + if (CTimer::GetTimeInMilliseconds() > m_nTimer && reloadAssoc->GetProgress() < 0.9f) { + m_nTimer = CTimer::GetTimeInMilliseconds(); + } + } else { + uint32 timePassed = m_nTimer - gReloadSampleTime[m_eWeaponType]; + if (CTimer::GetPreviousTimeInMilliseconds() < timePassed && CTimer::GetTimeInMilliseconds() >= timePassed) { +#ifdef AUDIO_NOT_READY + DMAudio.PlayOneShot(audioEntity, SOUND_WEAPON_RELOAD, 0.0f); +#else + DMAudio.PlayOneShot(audioEntity, SOUND_WEAPON_RELOAD, m_eWeaponType); +#endif + } + } } if ( CTimer::GetTimeInMilliseconds() > m_nTimer ) diff --git a/src/weapons/Weapon.h b/src/weapons/Weapon.h index 5c62a74b..f6228b32 100644 --- a/src/weapons/Weapon.h +++ b/src/weapons/Weapon.h @@ -7,7 +7,8 @@ class CEntity; class CPhysical; -class CAutomobile; +class CVehicle; +class CPed; struct CColPoint; class CWeaponInfo; @@ -35,7 +36,7 @@ public: void Shutdown(); bool Fire (CEntity *shooter, CVector *fireSource); - bool FireFromCar (CAutomobile *shooter, bool left); + bool FireFromCar (CVehicle *shooter, bool left); bool FireMelee (CEntity *shooter, CVector &fireSource); bool FireInstantHit(CEntity *shooter, CVector *fireSource); @@ -50,14 +51,14 @@ public: bool FireAreaEffect (CEntity *shooter, CVector *fireSource); bool FireSniper (CEntity *shooter); bool FireM16_1stPerson (CEntity *shooter); - bool FireInstantHitFromCar(CAutomobile *shooter, bool left); + bool FireInstantHitFromCar(CVehicle *shooter, bool left); static void DoDoomAiming (CEntity *shooter, CVector *source, CVector *target); static void DoTankDoomAiming (CEntity *shooter, CEntity *driver, CVector *source, CVector *target); static void DoDriveByAutoAiming(CEntity *shooter, CVector *source, CVector *target); void Reload(void); - void Update(int32 audioEntity); + void Update(int32 audioEntity, CPed *pedToAdjustSound); bool IsTypeMelee (void); bool IsType2Handed(void); diff --git a/src/weapons/WeaponInfo.cpp b/src/weapons/WeaponInfo.cpp index 7128a04f..420171f2 100644 --- a/src/weapons/WeaponInfo.cpp +++ b/src/weapons/WeaponInfo.cpp @@ -20,21 +20,21 @@ CWeaponInfo CWeaponInfo::ms_apWeaponInfos[WEAPONTYPE_TOTALWEAPONS]; static char ms_aWeaponNames[][32] = { "Unarmed", "BaseballBat", + "Grenade", + "DetonateGrenade", + "Molotov", + "Rocket", "Colt45", + "Shotgun", "Tec9", "Uzi", "SilencedIngram", "Mp5", - "Shotgun", - "AK47", "M16", + "AK47", "SniperRifle", "RocketLauncher", "FlameThrower", - "Molotov", - "Rocket", - "Grenade", - "DetonateGrenade", "Detonator", "HeliCannon", }; diff --git a/src/weapons/WeaponType.h b/src/weapons/WeaponType.h index 61d03ad3..8c1f598d 100644 --- a/src/weapons/WeaponType.h +++ b/src/weapons/WeaponType.h @@ -5,24 +5,25 @@ enum eWeaponType { WEAPONTYPE_UNARMED, WEAPONTYPE_BASEBALLBAT, + WEAPONTYPE_GRENADE, + WEAPONTYPE_DETONATOR_GRENADE, + WEAPONTYPE_MOLOTOV, + WEAPONTYPE_ROCKET, WEAPONTYPE_COLT45, + WEAPONTYPE_SHOTGUN, WEAPONTYPE_TEC9, WEAPONTYPE_UZI, WEAPONTYPE_SILENCED_INGRAM, WEAPONTYPE_MP5, - WEAPONTYPE_SHOTGUN, - WEAPONTYPE_AK47, WEAPONTYPE_M16, + WEAPONTYPE_AK47, WEAPONTYPE_SNIPERRIFLE, WEAPONTYPE_ROCKETLAUNCHER, WEAPONTYPE_FLAMETHROWER, - WEAPONTYPE_MOLOTOV, - WEAPONTYPE_ROCKET, - WEAPONTYPE_GRENADE, - WEAPONTYPE_DETONATOR_GRENADE, WEAPONTYPE_DETONATOR, WEAPONTYPE_HELICANNON, WEAPONTYPE_LAST_WEAPONTYPE, + WEAPONTYPE_HEALTH, WEAPONTYPE_ARMOUR, WEAPONTYPE_RAMMEDBYCAR, WEAPONTYPE_RUNOVERBYCAR,

    as1%(BuZuPXb{trs?pfMCsKN%F}AoqgY4)OyCgZlNL z_6x|*ATvR208sxQWF9CFfa+;b{SRvAfZ`v7LGcRO0|1)q0@arwH-X0TKx_U$=77=* zsGSBXFF@`G#R;fw28$oi7z4Cw7!IHmzmyBJiyf$}px3@UFxWdf)yfR%lqIssH3f-o{0#0S+UATdz=0OAMP+k@|f z1K9h;9(g3K80nKlN$~aJZCkBJ|(}T(xP}vMR{{&P%fH0_RfYBf} z2!qN~kQk_M1lkh~>f?a&7AQ}G`rn{+O&~QOvq0)WYC$vz!`L7ihCyXM$ShFa2F*Q# z%);kpkUVHl0jT^0t>*!?89@0PR33opPEdIYDr-RT32GmJ=2}7R6Hwg*8VdxiVStsb zpt66UFsRM}^?5<{6sYY4@)u}~0_0v$odc?yL29tM4-|H=dLK?h*NlVYKzeZLg~@^9 z12i@aI)ed}RzT$1|UCz`oEyCf?-ho1;a2gP(K&s2T;2R zWGAS;1epPv&j+OiQ22t<0%*P))Xo6Ofz*NA0_t0X!X4Be289KP4{|5S9iX->sGi4# zLG?fAoIhm5CjUWWVxW2-hQalJZZ5e052~AxF{qvb)!`tupl}1FeNdQy)(3#{ z1t>4U`t+c?F+pnwL25wtKPZjE>ON4L0n|1Cja9(v|E~P}|DbUg&^iE6od=3%P}>XS zXHeLI+J+#rLE}%LcmuUtK<0z$eNcV^#UadmkegxkD~N{ivC$wgm_AUvg6svgbzt>B zOg~5+HVl#nVUQe*2C+f+5rW3_LGvV_umY7ipm_z5-$C-o7^Dy67f@V-$_h{$1Qc!{ z3>upRh21C~t@npr8VCpgpOFp98=$mK2!rwwNDZiu3@STdt6o#O33{*yg>H|<251MBLtAqCc(Al81;-Iz6pgtI=-w7&nLFFC@!`uXN7di&X zf%-9^{0*xALFGDVKQO4g0`*-$XZnEFS%KUHk^{8~KxTmIe^9vw+7|_KBd9JKNDQiT zKy?dftsSU*1i2B^jscaEptcjJ{sF1Ma3gg5A2eq0+{2$bg0@XL5Gnhc`A_*51K+gV;i~A3%V?p&f$UmU42h}y8F$Iuapfmt- zAEY-Y`2>(zpgIuLb^_h=4GR-c8UpzXGzI`_ zUxV@pD1U(JeUO=;@GOgo0k3rcnF$)h0iE*!@&iaMD4&7aCZIMw$PN$&*$=`XHVA{* zFbv~^Xi)tR3P(_W2Kfav768J?YC-DIF|s^}4Uz}bK|$cPJ|KU9+9jZ{0>vr%90go` zU?4bbKlaX(O51}dLHWgn<~1eMt!3@TrdF{oSy$%Dr3LH#U{dXPTQI%<$Qm>w7n5`$ro z7^tiUl~17j3@RT$ZE{dq11i@*`5KqoLGA>p1(kguzk)EVKL8p>1+7m6mHD9f1koV# zKzcwJRE~k>b3tYPV8Ebyz9cFNd_D`vzo2pr)Q$p)gTe+>hhcLkNF3CD0%1^?g2EGo zLE_ldBa4C5gZjCkb{?pn1=V+;`U<2M)Q<<%$>d;=d7%C>=)4(Fdj{490IdrF)m@;w z1VDa*yE7-}KRE5==Y!`eKx^_rYC-M+#TBSe3RM|Gx)m0!2suw}|02Kcqw}R3F zhz5lLs7?p9ML_Wes;@zF{xCUEdIr_AAoD==KdAo?3Ik9$fyO~V`4beUp!y%w7IHK- z{ST`1Kw$-{|3Ur+=>ypZiZhToptbX0cYyZH+1rEHEQ0I-xf3K0!su*dK1?2DE+`Lz z))Ij7Ajpp(IS>Y^$A@8RKr{%0)WT>`IDy78KyC)56VR9w= z4+6~@!|HNeZU^OgP zkK|&Ie?V(1K;thu?gG^-pf(Gr{s7gPAa{Z=C=U><|6^kQgXaH1^IxF3 zDNsEF@;?m2>wnN)mC$)~P#y!-X&?+@gX{;5!GQbh3*xe4TUP*{S* zL1RUr`VE9ZW`OEBkUCH}gT_Tb7?eLj?HJHm4IqDl(io^+1Zo$6{hpQeAGBWwWFBY@ z1}H2+>j*)1fbtBe{RA3w2Zag9jW7(d55xx1APi!oV~{zZxq6U4Kx<23?gXjBr3WMj z!^moo*&uU3R}Bg)P@N4LX9n2|s`Dtp zpfLcDd7!a-P~ROiw*ab(LG>7@Z3B`6VUXWI{cM;&L3JBwTmlq7pmYZc7f|~Yq!)BX zFUTBFI}sG0pmYN&|6v%!2c;uedjr&t0_g{(Cy@D|d2^7TKy4ooAA~_^6x0s}txo`@ zN6?x&P`?+{mYrBw2tMZ+qz9B{2-g46(cm#0P#p?dX9uhIVKjRE4@&DGj9k}&_@Me1 zwEiE|CIk5sgh74=orM9a+d<CP9#rpw`~q@6Xgm_c2g!jjNFE;ssR3b-8W;^@gZQBO9JIz5TvmYY1a@}^kM)D@ z00#BxL25u4)E)r&2V^&>oejEQ0aOma^nuDrQ27TcLqPdp6pyw6hH@H64GaX&{e$LU zL1hO%465@%d+k8|DRgz9ybmf9K;;>zOaPUSpt=gwR|Bz;F{m6x#vnNmA4J12Xp9w9 z{(#DN&{!~N{0_9w2xJe~ZVQY5p!^A%OLaCj##--#)j`_?pzZ|ufZ8#jauQVLg4S?@`q0?i26i`rd3|j9 zU}B(sU!XoDs4WMYGX>TCpne{x9su?IsZsZX`~$+EHUK!Rv$DW*wxGVMoskiEe>;bs})ZPNEfdH)w1hqRrdlo=`fMH_m zf6$m4sBVST`N%Z9{)e7d0SW^UMy}I9Y*<|dY72tuC{VfuVNiV!YCnO}HKk)_aGa9^p1TJ1yFg>{ zpgIoJ{sGm|INb<6uMg&SP}suQ_-Ii33sm2M>Uq$Z38+2+&C7z;f`jIU!S!T8!GBO3 zQ453GF`za8sQv+sNrU1YR2P6SXssJ)%|6KP2?YiJLH+=_5$7GML7@3# zP&xt4S%BOF(u*7hpfnGvFF|(W!k{(>D2*Z4`N(W={SV#$52}|y?nkCUY!C*CgX$^J z{uR&|94K#q(lrQ!(lIE{g4#MDKBx@`ss};i93Z`*wg9OA532t`VFd~gQ2h_edoX{2 z>PS$&1Fb6rt#<&`^Pq7R(EcA#y$CV~RR4qS(*W54%9o(@f?ofF)PdXzqCps)4dR3R z0UCz^#W$#Z3*v*sVd_C_Y#1aD!XP+{+f$9QWYC&}cs2l>7Hz2j3eiW#D1eLWQHn?1cuJH%4LFFq9gVcb^ACNdG z-+{&xK=~D99>_kBJ3;1y%5l)%Yf%0KwK+g?gfPg>u(m#^tOfZ8)CK~bIRwhfpz#5a z8K80#6rZ5F2;^Q+U4pN!q?;VHjsw+WpfVd22B5uopt=bZUg+)s)m@;q6UgGAa7N~1 zutDtw(71ngHhA10RL6nB3Dm{{wfjK*LXdr+I0DtPpm?P=295QD`qUuzgUVu1T!HQc z290Th)@6a}S5Vx5Xiz^LkY~s`Ef*!0LaHUqJOgs67qZ z4++YHAish94qE#Uihoc$02D@`b~DIKP(A|H{~&Wfa-g;|$PQ2&1hke0WHv|+-MuhA zOb*5ewMjsFKw}gj^Fi%BP~HZ~gD^-vE)0?fVURqC24N5zgkfxu`5Gp!y$lej`X8qz60(5FGp; z1ZzX7r1*kj+iNWLv(V)5yR5yagV?cdWP~8g}O9qL9`oN(24ZY5zW*Y!x zHmF_&)j^;-95g2nN~@ss0E!#XdX@U*WbmDjpt>1UPl3`8$d91-0%4F_LG3nB-404$ zAT=Ni@)u}~069!R`ao*odUA5W=T?K-Iv}@z(i*6)0HrI?cs*z>1jub5vq19beg}mQ zq52=xF7~yv`;WK&2d)3dvi=WLM}g`!7>3nXpn4rNHUUb*Ah)7p*qAqH-VCG{G|mmG z`$267i;s(?= z28}6#@+HV!AbUV+Ko}PrBnPgagM-0&8&)@i%mv92!XR^zF-$#748{k|m4U{TU}uJa z*r56y)YbsyC6J$BYC$ye7yu~DKN{fVPFNcO zwC4&`)`I#$#OMW$<$=l!&|EBN4K}E(X@H(L4(e}!>L<|LE2#egDvLmQ7Bs&Gs`o+p z47m&g)%~D#d!VutbWa(m`~~$-K<)rxWVP7XAT^+R3{=;H>VJ?LP`L&26R3O#wP`?O z3m~_G`ih`(9aJZP%EQ5cL3KK)o&uGNpzs2fXP|y5s80(Lhq)0{pMly5pgOWPF%jG^ zg~<`3L49seod&8SL1jLu-w!J5Kx?5v_rieMT%h>|P}tBKgVx}I>LE~@12pywZu9u~ z{0G%Pps@f@JyV^K0KNkfkQ|5x zxdp@q#Vu$*186)Rl+HnN#9)wKkU9{JjzQue49YJscY?|SP#OZc6V#6f`3>X-kUEfl zko_P&$e*A#0!STb{0F2KlpjE02^#AFr3p}ZG8D`IQ8$m=whL&yi`Y6GRDOWU6HvMb z?fU|i3#7IkK=mp(&)M7m2aQvL>K0Jm0hL#v@i)*KTTq=0D!V{s49HGo4AKiK7eM(C z)Gq_AJqPtqK;sc0Js^2x_1M@THK1|~)Mf|uYe8y2Yl1*y+#vUW_@I0Z%KsocKy@Xk zZUE7P0fXu^P@M&ug9i1@L1i_luETH}be;gzZwC1Vqz2TU0ksP-)FO>-faP;?{)6gL zP#X&rUZD0HsDA|NhlBdOp!yhu@zsCm^&usE(D)E2o<6ViP}>L8ZUf!T0veA7 zr6Z7gL3J~z-2p*~ zy$f0k1IpLLU{G2IeGYj6i^+Hj6v-KkQ_EMLHa=D z0%*JvRPTVwVNe+k>Z5}CrJyngn?9JmFdC!=R9}GN3^eu!;)BMOLFFIl3>MJ%0%!~X zGzJPP`#^OqzWQ7ceK z$i1MoBA~VasNV=Gr$J-dpfiSHVFs$}LG?Vi?$65upCbVBJ7|0Wq!zTc095XS`hKAC zUXU2bUXb5G7?dVJ;Yi4@cw)4L6t19j0P-)W{s)CI zDF1=#JW&1s)r%l8kbNLGfG{Y`Kysiq2FQMpJCNl;YLNLLHVDJSLFR$-B}hN0Uk(~m z0J#~Y1|J6LhhdO9bT&u~ghApU^FV0>-afLh_z&942dei$`y4^)K=y)Ykb2OV3aFg~ z3MWuI0OTjo7yyV38ixdhEojUGv@T$D3}Cbk07}0@0fXA=pn4B9eg!Hch{2$=4odT& zzUTCcivOUpk{Er|Py=eGfaVTBbq#1t7*w8v%5l&b0BHR(sH_9IkC0s;HK65YSjMsDB3P+kxsNP@IGMf1r8*)RqMCLF-IFc@|WEfy#AIoezq8P~8W@ zpl}1VIYIs>){l7Wf9PF6MAiRD{eMuM1j3+t35JpRFgD0vpn3{4&JW5Durv?yA1IxJ z!Uoib2eq|9YCvNtpn4y41|w+v1cX6h3Gyqb%>!yPf%^L(vq1GfXdVPqC!)InWIt#; z5u^?@rUvRSgX&L^I*=SXjVuOYgX(2aT?}$BsLcwp0~AjnIb0ZKCP*H{24NT*M#IEl ze2}|9^Y$QnKo}Grpzs2X3xdi85F4fzT7nEO#!Ju>w+LH|`8$k6xsGKB5A0=u)c7oa{pmG3I9)bE^ zpt1^7|AG2tp!x^o4p6@XR5lS~7s$_`Iv!LWg8DRIc3>d*EEbS`p!^M*;|A4(lweSO z3c{3_L5W^aSb^59f!a=>^^KsuJFfme$eo}t1=Vw)@)8sdpzs9MrJ#BiR0n|Sd02f5 zqd|2eDfJ>K4rzfw?gqI9R9}NI$PQ3F2AUfJmEWMU8FZFAc$~oA{y%682!ugpKd7Do z&GUo83uFcegV-Q5z?h6Zj_CD2Xzv`TZ34p}KB!#<8neKK!R!C=tp9`6Q7{@5Zy+`Z zgVHd_-=MZ1EKh*ia-cReXuS-`-ym_&xEiP&0G+!8N-H1?>idJ*1fVzvjq`!#NI-Qy zsBH|=1L`+`+DV`>0GOR18iYahAjnM6TslY%sQv`G2P6lgkugjRMuX~IkUmhm6Euzk ziWit1vOW+SBo4yZ*dQ?w#wHIE2e}K>J^_^jpf(UF{6TFG(7GVd7yziQ2dM+=4+;X0 zy@1>X(g(sIwV=2I^?zVzE`ZDe?FSs}<^HJqM%yN!GytmqL1)K+@-wj*R40JO%|Pq* zKMsICIn{{;pALGA#x-9dSoSUW)FAE;~s z^$$U8&=>&7f1tJos67E1TgFvaQc@?=LocW<2iXIv6G34GE8jr%KS&%K2Kg0K&x7WG zL2V*X-4D_S(hm{`&3%L709NlK)1dkiTu&nHe;X)1sEq=0C&!; zA5<5CFsNQa#>iqYHi!mc(EJ6cKMPtL1IibmdKom|0IF9(^%yAKgT>9vzI`~<2qk=4N1AayVd5(BY8 zG)O&2A85`A)FubOkcc=xjpJSS-jc(3&JrJp>-ZhOTb|m*=^;;PMMp zZV+QW$RD8o3@Cqt@;hkFAqa!o4i>hg2DrYLE{df z^}nEY7${so7^DWK4@AT2eh>|6n}GZWid&FhL1uu$5mY{c+7hF6=*Xx;hip6t1pEi} z|3Uq0P`N-12BmS(nVg{V5>%do%2H6C1)T*(jDAwofXWb182~DSKxH$i9}23cKp4~p z0M%ijatee&ZUN2h!pb;8_JI5Ws`o+tf6&@)(Ap@_STIOGsQ&?~=RkGgP_O?%{s7f^ zpl}4O^#av{pmlGcu!GhApzs8>=RkELs9y&PJ5YRr`i-DE4Ak}lsR8K$g)^+)M5jUa zfZ_?1HU=XGxeXb^+z1kbv8hRe!Vb3oA5=%+s{cXt4K57s|D(254*&v=<3fK7;CeP#pxrptahd{wSz#3#$J? zYtuk`kzi#QA@f1%K;;~$z60%H0Ig{Njci;yf{y(Tr!i7Qg6bOUl!E|u&f6#n3 zxQ}XX4sQd1@-e8s1=WS1It{cw0yGW|s>48e4|HZE=&T=5eFn-GpgaYV2d$R`)q^0j zK^SHahz&9iw5|@6e?j#rsQyQm2dM$^VHm^*VHh9O1^~@3g7PA0-3drPOddodV~`#Y zA4G#Nj18kfVjv9SgD{K@rh|gO=lX%h`$7H!`43bEfcEu+{0nL?gTe&1z5%Q!Fc3Tz z0df;a4u(N|Q2P#a-XW-50htAASAgn|(Q$y$b_6IL3`Pt}o3Qi`$^*n;P}&Cd6+mOc zpuPd9ZwTu5f#$(LX&;pDi7^MC8ju;FzBz0?7O3tAVNgAVj=^ICd3oS<;GlD1Ky@6* zjrhz5$%D!_KOZz^1R4_niGk7&$gLnfAbUU< zq!&hm*dRGjnF6u{q!&~-!sM~hFfou`kQ+dJP(2J9Z%Fj>1K-UDk^_l@Xc&g^K{N=1 z#6dI+!}uT?ghApk8pZ~tanOAQps)b>5o9N*F92G<2pWR`$-~rwXb=XO0h&7ig%vUe z#UrQ;1hsiUVFxk`G_D9LV+Ui|KkBB@b_wWCFi>6v1iL4IP_XPDlKz&hAy#%UvaMk^wx(hT$52|lK;}M{`4YZaI zPS$%H&igl?I5>;#za7V0AbL%d7w4t zpg2Kp+kpHBia*f&E@*rJRAz(1A2cTfYS)3{7Zk=I^FV4rG@<$*BoDH4wEjn{|6^kQ zgU(?9&jEnyekcaj8=yKBly9(MaQzRx{|A&-VRaBXjaM!x=s&0p0J00z#|QPTLF4$K zIek$54AKk2pm6|Dod@d2g6d#UdI04eP+kGm|Dd^T&>T6ozCX-8p!y#)e+Eixpgu6D zt_0QVAoD?LKo}Prq!;8)kX@j5Jb0WTBm}(n9;62ugUkV8m>4=6#s|?L3{nT9L2Qsc zAismd!_pFR9)h_!_zu)?XXpQ*J&fpX2k8T0kbl5+e|R`}A0UVgG7FT)Kz{JHvic8d z1Ay)r7_DbV>)FAa20&#!D3241LG5Hvz5vz#pmH8m|ANMeL2Up~odc?0KyzQ9JPgVM z#MH$wyFuzfWAdPL*Fg0LsJ_8h_k-j>{albc!2Qm=y#Ju~H!*gC)PTkrL2Vi2aZym8 z2vmoG>P1*x3UbF#z%ciM>+bw~@Ew7mI03EG1jP%e%m>9CXiOiZ7BqhX@+)Y)7bw0! z?KaT(2WajWG?ovm^Fe-xu|eu#eSK^+Xbl0V-3E#iP#lhAj6VJko&$)Af{*=!+5(_D z8Pq4oR`-L%VD&$!E(FzIFbt}PKx||h#D-yz92`T>&I9p5_JP{hpu865>I$yEKzcxX z0>L!&z8lcpn4oqEtPKE4JD_#|s4N4eA&^=a2AKPwJ3NF4~n z*f1I-2Erh{AoD@?fYKvK9^EdG7z~5-fY=}!hCzH728n^#AR2^WY!D5?IUyncLH%=3 zng^9Zpt22A?}OStATf{{nEmMbLG2_^Sb}I!{SU$*HfSCIG=>5)57egs^{+s7fc!Oz zN818}DGh+qC1|ZGD6Nu$LFpb;|AXooQ2h()cZ2F;P+bF>9|p}Eg2uu?Z3|Fd2K6aH z^(`(tKysk+2sCd9+ItMDKR|U3$V^cG6Bh=_gX$$vT?4|Px(VbbT=pP~gX{$5Ptcfm zkdqU5y)j50G(L-7_kr9p*fFR+2VwAf2&B3n6i1-`J?K7HP?-uk!v(|##Sv(J0OVKD z{0A(KK;;~$eE^aJg)PkAAhSViP#9yY_mRaW6c_&o#m7jl`$2xkR{w+gh@dnE!=SuG zu>Q}@1=mxc`Un(1AR2~Yd=L%8$Z{Yt5FbQ?+Pa{ADrim{lrKRT)UE*4yP*CsSPgWJ z8{{sK7^sa5$`_#e97KcW{$Txokb0QeFgB>J2dM$61^EkPHVA{%fiOrN2!q%ljLZhr zwV?huNH3@!2Cc&ZiJ_|l@j)1*7lc7<7>4mdGz`P!Kr~1UM1yd4a4>j2A3SDgZVny; z0ND*H8$ja^ptS(t@PdX3NG}M3^n&~e3L{XR55l1O9~3U2b%3C=0YUu`P}>Qd=X`zt zgTi?*mHne`8EuPz>PpZ&J1ET)i$P@u=o}eP{SR744yv0$^)Lv7#sNV0r+~)dK^S!Q z3MlV`#sNWXYj7Qdmd`+W1eD)EcL9LTAO+Pgpt=TR9>{EBa8GV7xUUQ9dxFMTL3R=2 zACNlGxj3LTZyN%Ji5Dmg0bs!9?7n6K^z-mEjNI`s1 z833{uSsjRtjzM)jsOP~Dq_w!aWv56DhrF%TbyLE<1bh{lFNZUfl~$`_!r z09Iyz><9G?KyCru6$H`?G6#l1d=LhO8>|fgVuRFz%mdZ`ptFQQZ3s}i36$qRZLiTf zceKtOY-s?L_F?Is5Dm%~ptHn4Xa9oAc+i+XsGbI4P<;WSVPgTHekiD}0QEmXcLjjf z@_^d(ATvPa4yeBm%5$K$H)#GHGzJZ-mq7Ios2u?^j~EQv2ha^V2Ou{Wyao_de}nQa z$SLib!!U6WAH+t-AaNK*mO~Z;u|a)z zP`(G*iCj*A_@F)ss0{*A2g4wsLlsrKu?hWU~mdL3V@2szLQOsLTb` z-Jm`Ss9Xc}KS1ur|1e85I@ad1z4hfXXOP8w?Z&pfCi5IlBKraRU+qg%5gNkBbj84`k*@ z#MtV8&^=Wk3_6n-H2)9kV}t5{&>6CR_V)ilbu2Q5*Z%Yj& z)Pd4DsGb7VNuYcJ%G01a3sj$hxyu#8ez1cBc+UjLPaw4*vyf>J8x#(p@f46bAoqeWNDOqx0!SYy z96OmMZJ^)(VUze2hza=yCKWL3P2!qT5sl{a$E^&|^P}>4j&w=WGP+bRV zQ-Ipsp!^0J(*}<_C18)v=&(fR6!y z+5&lb|3P5_>W_ogdxQG=pl|_=6@boZ1Mxxi4QNaNG^Ya!Pi+1M*#QyZ2TXzRvfer1+?Z46dy1QuK$Tx|Bqfbf%q^C zs;6LV5Dnvl>MBsZ1gh&m?LUxPK=nObO<*8+-vFpy2DQ~e=M;d-0FWM#UYJ_A`khFNe0_`^j zwVOcY?qIABM%^^R+9m-3|3Up^P})RJ_t@B=x)hW?K>YO@Y>;`Nx{g##u0B%jL01p57Ze|$dKO&&BlZ13d{93eG_DU? zTLo$hf%6}|okjn{$dA{YkMLof^z1JNKc5RHz}#X)?~c>tic zAgG=O&Fg{cIZ)pfBnQ$DqCprmE&!^>LG>YM&H&^#kQi7^P!M=r0>p-4kRH$)dQjd1 z?WadJ6Ql+t55pin41>%BjYWX;f!3*l>Qj(9kUWTnVGtjNL1MVrFgX~FtPUgw!XUSS z&JFcIT9*VWA3$XSD1U&;J&+oZT9AHZ8pH-+P`H8G0LWti*cyIx+D-=ZUpsxL1G|z7zUXK!k}>h&^QJt zZ-MG@kR32JAR4R&x~3k+2Z@2&q#%8uJPN8KLG>w29z?@1NG&=WBnHADaS#o|$b57* zh!64u$S`am=YgV-Sdg4BS@NsybtY|tISp`rgl>i|Gy zEoclCRNjEv+91D;;?Xw1K&1iD7!+t+3X~qPrFob*sI3p`zktemP~8kVzZ6`C7Zm&l z@yV^bLHa-#WCpb`sICIJ4OIVwXwaGi&>lokeFnO}3{<~??l%SPbp!Qvz;&R71$a&X zls7?jBWR2qv@U)q)&C&3g2qrleg?H&Ky@t&otO6?R0o6N5Y*QL`4v>Yf#y6waS!T~ zfXo236F}o1pm+g=CHfcuNDWAw)cSv7Vd03~3rMj32b~EN9sM6v|Ldx#{MS}e`fseM z`5&~_9yAUBiW^XUSPQEEq3i!(bqWIj!c94+@LxT)TamKd(b@r zu=*OL4~9W?8fd-{G>!(UD?#-bNDO2aG6ty!wHH8b1yC9T%`0Ft52Ox;LHa>@Kzva9 z0+csFV#xYHd>96)1F>N=j1A(0Fg89&41{6wAT|ht_#pp-+zZPap!@;Cp!@-vj{x}- zqzTar-lbsD-&km~l zKy?|Y&I8qjpnfZ;ZUnh|a%t)R?)?1!74h-^!R-KBTku)vpuR9@Pa~*~gw=DPx^Ado zP@4thSCHSq7}Wmk%URD|3Pg45Y|^!{qJaE@*mU&2zGYKx_~Ot?>u7e?jE|=*(VFKNh4GghBEk3`#qoaYInu48pK_ z5!CkusRLnj9v>tQ!^mnuY!C+3pCEZq+Z;3(2QmZHHUWuY!yr8% zaTpC_!}uT?gptKTd}Iug17T2I4Z5ocK9ObJ?QHHtSs=D1gtIuw*jDaAjs{o{Q)5VfX>4M`2p4@ z2d!%c)%&3G8YB*?=Y|Rfxf|v;P~3p(SuhQ)`$23_{DJCf(3)gW`wkShpt23LKMU07 z2i4D@ITFxV2`FB{en%hwht30l!VhE?DHwDf5XcQ94TI7XX#5OR{^P=+@nKm1A5{0l zFi6bN*!VxFo^32F{14hw2disAbq%Qgfng9IhCyQJY?v5`24Rpqj0UkmbsH#cfY$Ya z$^lT_1nRqj#*1L;Ks2Z>1C0rS)PQJMy$CV`BoD$MHb@+_=N(j^g6cX@JqQwq$-~&l zd|3StT4xM08?-JD(9Kr|Df_4R5yU?2v9va*f7jpAUA^Qe^A{AqG9d_ z(I5<}??7i5fbuqIOb&ELCvw{cq<^Sjl=>gq-T}7((Ac1OtcZ*I4~lD0+=JHrgXVof zbrk4qV9=SrAU}iJ03aGy{~t6S1Tu?M3<_UR`WZ%F`U}`{hGAOTr(hsPw02&Vf)txXkFm<515~L0^z62^$KxVH<)j1YywlKPcUU$}Uh}8B}M2%5Bg*GpvpsY;`}fdq8dk)r%l^ zgX_Y)Jn%Vqptb<0uMBDzfW|yQZGBLF2aR)p<_17x2e5H&P#ri_Fvw4!_yPF~j$!pb zbQ}N_kDxjpRBnUHWstv%A|wBU#{5BP4^-cS&Qb#1w+!|-djCHw3%m}H-1>hcjsXx` z|AYFwc7}%F`X9X=V4$Y(Lr<9pfMy+*#Vj#1l4gMIS>Y!0m7iR3P=u=#z18Ys15{)BdY=NK^PS*;}BqFhFvkHUMZ(IA{+SsNMvfu?t$S zk6h0VW;VDDkd^fxR5ya_#Qc2l`T!Uo6xN{eRnV9pDDQ*%v!J>k)NTORf6(#np}+?F z30B{OXb=X~`yd*G^YXy+^`P^WL3=qtV;-RK9?)J6PHKs11#4>>nf!8vh6F`vKbb5(kNa><5*9p#C{}{SO<%0I3CGka`e}4TI!B zVFs%2L16>JAiscU(D|C6u<*CF1-G$4W$x%0z-YY>s*7leVQCC>zYb{38+5-l=xj>R z+#IO<2jw@=cpZoarAbiw2erXL{bx}9528WkKcV^_ROiAlA+^+y2aQ#O&JzM*5F2DS zy1Ae_9kgB%JPrV@3qkD|kUv3V;Gq5n=!^i6KS6qjLVb_!MsWKK;LEE{3o~m2eq$2^DZE}M(h8W z|Dd`bghBN`Xg(NJ|AY4Yf$AS)4Gr*K0MI-DsQ!=g_XnR(30fNu>WhN<${>th|A6Wq zkQj^xu|XKbN5&vAY#5{lR1bpe0HqO7*#PRtg2X`>qz7a#s2l;cRX}A4s80+MgUN%` zfa-tHSyP~L1T>ZplE+s6gVe$>NDZhw0_g#@13>j8%uEms!!Y&ee3&?hMwSDyVPYT} z7Y4Z*bRH_GJOH@?8H4-)Ix7L>2bg}4xiAb81F=Cg2!q(5aD>(S$TVoo4dg#i_=3U@ zboKx(%l=WbM`rs1)Yk{q`=GIHP`(1y=b&^9>i>i4K2V<@Bn}$)2aN%M>VJ?JXb&)G zd*3R?39>i>fL30iLqsuw|i1?dCnA8Hs>zk}ilj6roj41?ML zAPnvQgZlSAR#uQb4;B{xL1Q1Fb7(?ufAPlk-G&caMA3^B{w7(Bjzk%dHYC#xO zm%_&KLHP{C2bl{~1EWD|VQi2ZP+JsaCg_|hQ2h@ozhG)W>X0!=9E4$FFgAz=VVF3G z2JvAS7a!z4kbR)A2h9tD{0G7yHb@LxI|pPY%sdc{j6rgsaDib^{~zQh(3xbQHWg?s zAZQE)R34Ak(Ic~trbWDi#t1>_7H=ixE`cfWi>ue^A>1)LsL%0l@x8 z>;Hqo6cm@Bcm?(4$;F^}1BEpRgWNovF{$-Gs0{!b3jo!2T|xC1Xss|z9;60@L3KH3KOsmz$WI_Wpf&}_Y!C*iL8n1_KzR{V|AYE2pt=&I z1{=nvAEXXh9L9!;gZRi8Bo4yJVxaTQKy5KlI3r_FSpja7goJ?4MuO>q>4(uEaTps! zgZu=l>p|fI!k{()hz8vO2?`U?SOW-y`dT1A)1p2YHFIRNEkN}(sNM&y&jHo%puNMO zas-rrLF09xJ_AS`M8oQP5DntPaIB{%_zY4|+6SdwQ2h<6H$i1TE(~fPfX0nMYsf+C zTR`a=w0{`1)(lkNg4TV3FsPm(WEL(vK;oc&J_v*Eu?L;&18R?h#?e4y7NESD78LX! zbcb1Gd^~ua8tAM7kUluh%mnWb1i1;c_77Bcf$D$IxCh9eAoqdlM{wPTW&V3Gi-Y?A zpn4Qu_k-$vGz@CXf$Ch)7&FM&35q`u4Vp6m#UW^}8C1W5 z@;|8F0o6kw3}d6yFgcJo41>f#7{t#A4EztuBcS;}kUgNj1Sn5~4jk!A4DT#P<@Zm1_%xP z5878%9v26`gBjEg2gM^Oyg(QfpQCtW)Y;UEXHdR_kMp~_g3t8_?Hh*I`|j@lL3KZ< zt^;FGpWn?5oc>^SKZpk9cTk=MrG3yi6{x<2*Pqb+_2_(1eF_>o2AvHEs*gc=7_`O= zw5J|4-T*pZ2DH}>)OQEfAL#mt;e+g`OGyE*fd;uBlt)4R4$v3|Xr2+|e^40$Dx<*l ze@@PSjQStyeo+4wH0K5?yFleAsQmyMQvlWPpgImj4=D_~`xsQ$L;LxldKBCafbMyK zu|f4eXzl~F<`Y!+gW?!;E*Z%0puRsSTwoZ~rb7<{P}qRt57b^Dx9<41?oeR0n}*Y#3P%#zv<>bs?xd4Kg3JM+h_r0IJtP=7Hou^&!X&p#6Fvy`cU& zC?A5@Fm<50H4p}ig@pVE=>@UTX;9t;l@lPlK;sG^e}MYp$m&3BWQ@%mWO)!9qy~i1 z+30+j8j!u9@&)8CWDE*((A)&5E(fVa#<`~hm8f%Jkfs0{%MOVGLxP4R9sj2^AeO8bgKVHt(3abA>Z6DAYZ%~|p z#tuMX0;~H$G-#X#!``f{|J17g;q8Fp;{Txb1PFuXCqVRYsry0xptSx6jRkB zz~}#f=8Qpg1t{IZ>L*ZJ4m76&nr{c?3s5}_t9yu{L25u4R9As8m>m=ZzV{E*2LR;{ z(3m`^ya1UG8XExB|Ddu5v_1fok3em3Q2PUI;L)3YZ*792ujF!}z#pm|mDXh!0|eXb?tbgWL!ji-(0Rj0S}_DC~34 z#{WTj(J{zO5C(~ZXi!-Q3NKJy5Aqi%3_)=OYFm}Z#{LKGlK_PwXx;}jX95cEQ9S(X zZc5@9l%GKQL1`7##|HJeVf}4Ty$`~m{0geu(J@FIhCzD4*wq!h=LS?Sg7P|O3;;Af z1*-o+bpfur6j>ZpUx4Zo5C)Bi7H|x$`@wt|J1_4)sGkptPf+_1X1jYA0jG_V)kl^YZ?K`jDW0HK>gas&_$k z60Cj##V2U49hC1ueM?Xs1FL_q(I7Dp2Gvh68pek60|LNv-JtvdN;9B70cg$*RF{F& zfa*%n`Vo-bpz%16`(X7rhz8gHwzmI4_v(ShwL$7Zbs?kTbuh@Uu&@Qups)s&i6Hlb+zL|< z(gR|HFo=zeVPYT}ghBN`C|+O~6duKqk^e#a0YGMh))|7vR6yYXD%(f#Xd3`q8UUpa z(D*f|UI*3rpmrlD|AE%=gT}I9bvsBN8Ka21x%~%?1%T^*H@E+wG6ht2AlLt({xzt+ z0M!qmdW;whuA6dl!2Lu}8vu0HK4|sJAgp_3{aj1m6@QmfS|e&q!;8)YGIK3Ky@ay%)@04D4ap{B&f~=g*6Hd8V>+r zX#Edb=KvZ*0hMW>atBmD!RmW>{hywWI0FD_4Is!bps)w^(`ixf!^{NDQ-Jmefc!Mn zF(`Z~t^Yym0IRdJ|EKx;gXiQy^#^Ed4K%I}ibqg72GO8#01yqz%bU>cD z7^EM>24PUU2GpMb)v2I%2}llxLFR+lAR1Jsg8B!bwQ!&^31l`%93+p9LE`8bml}{b zNG*&8u|XKdhtV)GkefklQ277~OBe?E5mZ)y{ed)(0a6RXFmqruNDLW+!VwgPpfM6q z{DCmYkD%}Z?L7wd<3M9_pne=E9I%!9qhcewJpiirL1_cjMg)!Bg654v938>^c2M07 z%8MWjs@Gu{#7D+3aS#nECqQ`(hCy@xpuGa1J~1f$gYM4-&C7!7UQpdg4hGeM;C>{u zO#tGPV-83UNH3@k0%*0j44rX!C_y@So2i5Z+ z4C?cPXb^_6k?Ma?yo1U$P=5_nzoOUwuyz1A-jLQog2J92^*?BB0B9cx$WI{m4P{KN z`oA_O=YOi7A9(&8RBwRl5zu%)s2l*rB{Bx}BSC9_!F6<4*nbcWtCv7D2qV``$ZVJ# zG7YM`K=y&k5m4CxDu+OIIjBAZl}Dg<0Z1G)o&<6mOmAjL$bV3M267w7tsp%hIS>Zf z38G;b)E5S=9RjHZm2WV$=;}b~L1G{bVuLV@4WeNfBo4wLK0X><4x}E0LGA{X4*fTgX((_29^D=`W}S_jsJUi zfXCiI=^a!rg8IdvvX_$jA5^CfCJd_oLGx~)@(R>n0G}k?VaJ8(RN^_TGWoilFigR4#$)SoHcI#z(Oaw4O363w(Yet^5C=aR87VAh&_i z-%!R>tN)?*|HA4NP~8ivlRTXay1Bz>qUKkBxgD{8> z!XP#XgV^X8Bo6AIgX(iozW`(|s2&6Ll|dLZ{s^)cH2w%48-Sim2&&sa`3ocm8m|QD z0ht9dA4bF2p!yzE?}OBW))Jtr1*wN&kRD_V5{L0YY!C+VVKj&h!!R)r4Z<*S5Dnvl z!WPu80_72qdteyUt^$>%Ah*KQ5=$eS4~jQXoPaRMpCAlc3kWLTL3V-KblA%OQL&NR zCIGdc!FkET0(>?IsBQ=47f^Zxu|ah^moU{s*lm8m{#}D9?iO8L0jT&6j}2#6f*sQ2!RC&O_?^4rXzz^*>U*52{B&?HkY> z2MB}48bS2~XigR+4(sp3XwY~Fh>hZBI@kZ8HUKDIKyIgX{ZC6fs9pbq>JbnIrD0Ir z3#vOnbu%chgVx!B(lrc&>MvMbk{c26AGE$6)LsDT2VsyIAR2^0Y!C*qK^Vk_VK5)G zw>B*7Kj_>aP}>=lhG6v<$Zk-20`-|ebw0>lAPi!I<|RSyi1YOPkK8r@n+a_vfb0R) zsUUMecM5>^8iM#BahN&~8-_t*gfK`gNDVrTEQZWRRtKv8LF1qxcf-OGM8o_D(ua&e zdO;Xj44Dm*17VODhz5lVs0{!L4_Fw2)>(qqS%B7hg2pC6ZFJB$%V?cHa_f9p+=JTA z;ISbyGw_)kptJ$1`$2U%a-9$2gYpmvgTAq!uI&qCprmE&wtYG;Rn=>%+GG z&&v7_YDtM-$X_Rc+MZx_lMX2NOS+7Z~={vfYx7t>SlUi&=>%%>wa3BPqq3# zCkH(L52`<4^$3U!!l3#D)D8f}E2w`CO531348x$gdC=H8X#E+eZUgB7VURg64C5oy z$ZU{0(0V?QJ)k-YWDm$J&=~=s`Wj>xXgva`&H{;p)Pw49(EejkzZuld2I&ROMS$c$ zW+P*eAHZtO%>IM=!5}`eJTe=kA030_k;Pzq5RHsMYG8a28-zi85Dmj1yFq0ks4W8W z7Yu{^0UBok`4`l_LDmOiBV&+RAU=pj#xOBZSb*XKxeWlS|3U3D&>9HPx(QhMKT40x zHUOx62Gv!tx*v3B1SlVY>wZu_AJn%8(Rlj%pgJCe!F4>SJpj@Jr9t8#43>lT|6%n% zD1TF9{vT9l3?>Y!GeLb9P#Forpt%6hd^1QKRL2b^40AKM-iOxn;C29r4Z^VcAG!|^ zRG)${s5}Ar9n^0G=>_%mVHjNhXJq^b&G~@FM3BP+be;mJy+Dt;A7%%w#{fXPv#g`$7G1Se*rY@Ey{ivIA6Sf!YP$Ha7o3;{u>|2F!erU7)@Q$PJ+W2*`cN^*_u`kbR&! z7c}M$G6U9z0EuJ6AblVVk^|A`7?(Im9ZU{HgD^-88H2uzHVA|GAPi%}Xpk64Kk^s=C~QC&v83?O@Pc8z{|z_5p+HeNg=ms;@!$34}rU3xq*zkT|Fx56YJyHVA{*FpSOziG##I z7^Dx><^|0qg3=ynZDCnl9Qb?|P+c&X>TpWj0vh87g%_yr4=QUa;^O{;>O_z@a$Pr6 z*r0t7pgJ6kVRb%Iy$^2>JktQ!k{_@RJVfb-r!*H+8|K+2K8A%`5A;k ze9*WysP77@n_>EpXG50eAYFbvWI!XQ3~24N5zgh6Z&hOt332!q5x z7{mr)5F3P%+30*w-T;-opmGA_eq;=47l7(xWH+Mg2k~JTWDg93#9(Yt_<-5~pn4yM zLG?dqd;w%HC_F%Qz-Sv_WYztkv;`WMhV{ikWAUK68H7Rk4qVrx_4z^h4pfJOXpkBZ zjf`PpFdA77#s--WO7oz!4jShI?Y9S&kCfE6gGn!_zYIDb2()ezl)pfIBGCCapgtzZ zokOM0M|LM@?;ogsgkw+}0ER*B01(d0``?$J55E5wGzS2>uLV^9gX#-d{ST_|LG?er z{y(^lMB)8^uzH;o8dQgZ{0G{LLW??@mS%$7PL2J4wb1$>R)4@~P+bCIBV$lK3tFoO z+9L>R$AjV;l&3)$RA*7Iq3bY>? zBnL7VIRZ}7MPXiq|H$l(VHLl6d)nV|X`rXEDYFi1a$4WdC9oekrI!U$IH z!|CvF@E%W4xPsy;+SBtts4obr6Grg}X$ScE{Rg$DLFo)M_76$};C?^aSU;#A3rdIJ zdLOjD4{2Npmr6g zuL87DToKf#2DuAl z9tgwC1gQn_LH%mb8fTC?m>ftP8H2<@7+nm;2g$)Ox)?Ga#70&JV#CBhG^h;%nu`a` zYoLc6sC)#is|3xTf!aDCbs+u77-R+vgTz5>WE#W<=>ypV8v_8X1pwi~hzR%?9cXU_ zC_G2;@UQzp?Y!iG0Pq@oP`eY9N5OT!rziNV9#Fp@ROf>*hz+Z^Vf8pR8mtC7=MQ6J zQwM58fc6oB<_VHt%3RM4t{0yoaL1XCXb=^>@|3U5t)rX+E z5mc9hF>)IKIu-yL#{t#Xp#6WKJ)@xdAC%re`ax|7kbgmEGlAMiAPi~;U<(saS^$lg zfXt#N2H6SnBgn5q3B&6D(%9Jlp!2j!eKj{895C+x#AR1TQ4-yC0|Iq$FtR4Z? zAJ{NV9z=ukFQ`5Nu|ad|pgawVcTm3qw6+aYzJSJpK<#``oeP@t2C0Ra3uB|xAbC)o z4XV39Z3_@CjfwdWDpx>b0HE<}kUYpt&|PGp^=z6=)m)#0K3D1X>3GYHNVzP)6(j zkx~DH?(6}jHBeg^RL_I^{h<0AI^GYe!$BBScY*R7m<^K0()S0+gD^}Dh>eaxa$xN0 z3O@fIH2wxE7eHwqly^b>Mo^z`xYYlkIu4YlLG?dqz5`S*g6luDweFz$a42Bpx)5IX zgX(`62G#%h`Ts%n=akY?Fbz6G0u;ZXau=irbRHt84FtjsX=(pK^*^@$KPWsv=>QaF z^sM_qc7fI|fZC!U_kz+SvcCtC4Qi8sFw6}g_kr3}AUDFqD-#p{gX(zDJOJnptE!}= z|Dd}vD-sg^gW3b2c{Wfzj|;==|9}AS`9I*g18MIZG9Q@@s%t>?FsMEO)v1xLuK(RF zE&s#X0H8DgDrZ3R1fY5cR1bmlfH1l_AU-k%sR8MMj{*4kfyX95Wf!R20@({nU!Zym zG|vXA%Rv2QkT^&$$Se>I!k~H11gJ<-2swE#>o0$;vg{)2JvAuj1A+%XqY&N z#)Uy@K^WveP#FQLgF*g6#vr$X#t}htD4=>AWEMydjE1q1`5-YEhKYmfe^8i!;t13Z z1K9~`2NXs{{Rg$9Kz5Ig0Sy1TACyl(jRYv3LGg|rCLnQ8T?eX@>5V6rl>7(z2joYPpFr*aW6=6N5Qg3* z3>Jg2v5159L*$vK>UINh+9DCDis!j;{jCfgZlfR^`x-23MhTmr=@}G zf6(4}(0DOu%pcSy0JQ~bQ&PZf0Z^Ra!tnYZY5X5lkHG2>5F3O+d=Q4Qk!es|gW3R~ zG!M$(p!f&XEg%{+W)CV;K=m_79jHD6nFGQwGhl2GAA~`Cka|$v4R*J!E%=;45F0eF z1~LOA2ddvd^*?C+GDtm09KF5-)%T!%10c76+7lpmg6sfckUi)aB#w+h@-RL!8zu&# zNf8IB1-TK_egUyTZ6r`wfyzV}2Ju1X0fXd0?g#l3#0J@g3nR;e*dPp23(^aks{z&j zpt>J~L3t81Hv?J|0SXt;7yxLD1XNFq;^EaE0FA@OczOK?)%&1y1zIZu8lwf(`ydRe z_rWw$A0JeQ!|HAj8yTaEgZLnftOl74k^^D%`X6L3Xnh&zZXHm$Kh!a({s;B{L35Fy z{(rKs?|)GJhhE1G6+WoG2G>tWbrr0BM5aM?5oiv5T3OkDQ2Pf|-hi+!v{~&#!agZq`CI3P96@c0!pn89Lc{zB`42Tbsn^92#9!~+4 z@iqnq|3MhECJ)pG1O;`j0I1%?g^}xjP@Mt7pn3yDgD{8<86lps@f@{Q_cx(g4Vvpgt|gT_8Om3^EHwgV=B!82BHQhCpQ%$Q)1` z0<^XkG-nPn2UP!q)PnpA5(Bk;vV()c?F5i{Fbt|cLG>G`?*keK0J#&S4}@WAU^Gk& zM8hyh4#Wo0AdJk0@j+rRj7`p!@;~BV-H;H&DL`R8ND{qv(f@ z&w$K;iNk1^7>o}JE0BIrJ_KQqogfUle-+dR1I?*`=4Dg-{Qi&D{lly72gN67oE;Ru zpgaUxe+TOKgX&&T9Sx#E7*zj*@)t;q5C+xdFf|}H48z2*(I7S8`rp>}Kd65Io{MvF z`46fyyP;>lfy(}&j6r?@ooy5B;PBts%$Q1R7fbnE`5Ff#&%^;-I(yjirFrz=6`6o{GwUEhVM@x+*IF z4b;^Bn`mnOw=*;ZpXZ6I?gxpZ*Z;`%2doZ3r$K6vF-RVSLG?PQp9!jSK=m4EZ62r| z1C>1>3>s?&?KuP0L!kaTNDm03n+4*7#6fj6$V^Zl8B}I~*4BXf``~&UdRH!}4-0B@ zg6ssT2kC?92eCnRfyy{g{|8hag4+mzf#A6gkUTPm=>yTo7^Vg$2IIqMba5CTM#I#B zXk;-^Jq#L~K(6;;Y*2WC=1M`~1ZwM`>xJ=QG|XHO4HE;?fq~$=mO*_31Qdp#FdD_fqa6Sm(*d2!0a|kh%0r;}rdSUT@OnSc`46Cc0m7hm zCUX4`s;^=7I5Hb12BJaYAPi%JXj~Yi4pjex>VD810I1Cl>LY;4Hc)>LM1#uyp^QOw zCaC@g-TezH^FVzUP<_#nmGvK6T{oD;Kz;$$(V#jBR3E}HsLp|7X#EeWyFhgusEz`a zDWI|hRR4q6ApM}WC1@`fs67B$16Cd%{~uI;f$YEtgRHFo?E|m}5LEZWFvu^Ux)wx( z)--_X;b|2W|EHCg{|EUIBnHDEJuo&%Jt)56xUdjhw}Z?AwF5vHSv{!#4pIvWKhPKo zC`^#|QP!uV{0D_$Rbt}*#?(~s{5L4ig2E8gcLVjaLHpj#b#?!1D=9&+vhsgz7*0HFApm# z@IE$>c_4itb3hox2G#$db${MgR{ud^2XYrk92W-Z17VOnhz4O~Hi(amL2@7r5(Cj7 z3}S;YjEzhqvq511@*^yaV0Aw-4eFzV#!Nu!Kzfle$PN$&iGgSk2C+dH#s<-#z6eMR z6c(`hAH)W&8wH)~2#Oof*a|3oM(h6JQ}=_~$)LR?p!K+*_BbdXf$Cxq2IWl<2G{#o z_VkT?jViy`wtY>*ld2H6G5`=I&}be1P*OafG2g6{AgF7-cX{2$~$ zP#FbUdkyL{g2uWr>bW6s_Ah7*8dmS4)1bNv)D8gkjX`JrOfD@2kJp3FZUdF^pf&(# z9vW1)f!d&;aVJoD4Jz+IYq>%Cu-5>o6YXL$21^E%yHmy%h{SR8l z2wGQH9vAl?hC$^g2!rZlP#F!H(*@N@pfVR!-hyb57})Qjq5nbsFYw%JL- z_2)t9A7m$}jR4v&3DN^vn+qzNLE#6g=Rtj6P#YRlmV^3?pm}gmooKA7`QK1o9gac$ ze^7e>M1!ynvGqT6{U6NTAh(0qAPi$;qhVqob#NRI@E9wQPs1=+3~em{Ob#23tR9^W z~36%n6j{Kx4t6au!tn4duQ+$nBu|tSK$+Ke+z4u=o$E7eMtNNPJk= z|HZ}sr40J^wqIn*Ilk_k+gzL49J-{4;1y1XM)e0bF4Ms{cW4 zkAbNBLH+>s=RxTaG)@633qknMvKus(4tATP<9|>+2pV4p&2yV+YlFuDK=T2l*8i}&0u)~`3=%`fAUTj2G7VzG zFs$wd?KMje2>1_jC#YQv3Lj87fx-n;E`aJHP}>RJEEpdY4xly@XdV-!2c#bq_OQAP zw5|X&whsz7PGv@7>EX8kX{%KVuLU!j6nVe)wiA&7V!OlAb-Lz$Zw!{2DJe|{d15$5QdqBjfRPV z)WI-F4Ajm7ji-R@1ceo-4FGD(g3f_=HZl1RS|gqk5HPw9V2G~)1eIH$I0eB##ZF%YpbH`#@zLsB8n3qo6Ub zy5wZ=+GbFB3#vnhG6vQ2u>L6gr>XV{lPk-^sNMvr2bIN6CMMuHXHb0w8aoHkp#B=DZvhGuQ27I@=RouPAbZfm095~j)*gcT z!nAG!fa-b>hK=ik#vMRzt4&J!52|lK^_8Qs@qf^IP7nsy@usHWJ#L^rEU0b?@LsLcu z_%11sT2R=6+ETrFdEh&eLHhte;RnK?F$r+H3VQYrs67$wF&n z2Rwd`QddCNn1TF&j*-=Y*dTcjjf_EJAPnkngXVrfcVR@hxPZ_02i4)Au?r9ejm?AV zXwcXQNIysq2!q%l45}kR;R#ANp!N+Y4nXZEkQ&hV38>BjwW~no9Vo0o;vjt>8e}&J zgXW(=X%J)&NDhQS^5_^@9L5IGAWV!}kQ$g;5Dmg0F&IYYgZu_^A1G`jSGY1K^T<2Ky?JD zj|}QJfyO>TeZkTCKYP%u5rEanpgJDC?g#Nf;$Vzi|Cg14@Am_h&!Bz;sC)*k1q97~ zgT_QaaSxii2Hp7pDvv<%4Kf2%*JITGpt%vy8UPyZ0RYwcAPlNgL3Js}U!b}e)DH!X zxr4^rLG4pe*$XO*K{TjrhGCExXefbzwL3uh0MzyXg$qawRJViX0zl@0p`8a2o)$h99~<52PQ2L2@Adpm`5aT@TU=8qWmP zU7)lD5(CMB`n4dnFg>7l1BeaU9{}nDf%>~3KC&7R8-_u0Fboodu|YJ952ImX$b6U> zh=yTgd2}|255ge7fy!f0`U3e48H2(Iv|b7{h61XuLFz$fgJ=+ju|YHp!^A;+5F3PH zY*3hh>;u*Rp!O07gT~}Q;R9;pg3=7AtvXu&58e77G!_QxV}r)oK=(<3>VHr^0i`ie z-4Daa^)*Ny#>d5m$%AN^8W0V_=wcu~48!C>^*_ixptd+Dt%LT3gUVk}eK3^!{vfx5 z>doQM{|EU4RQG`DL~IyTKY`}{K^Rmof%@p6{y(TK2Wr!S`)8Jx;Q4J(c?Ih8gUWqS zKMyq42pWT|PE7m{TJwgj{s*-OK;mGtq3a4jc2E<8>S0iy8Z?#;Dhok<9#ESURF8n# zFCagF(kBRm%3_eeKy?Gp9w-bz?gYgNC|uAns4W1h??GeiAPfp;P#p>y0|13JXbuC! z##Q%&#KHAH(*3{4bp4u|ebgAPmw6D%U{$8c=%;bmjoa3{ZOjWHu;$f$Rcdkb2N~ z3MlSC?G8|Ufy80vg4oCyBo5<)*dUC|2eCn7$QUFB!XPmi4P&G8Vd5YfhCzM;9oz z_k-dN)HeZ*U4qIg5F3O+bug^{2h&J>e~=ugu7=SdHa-kfhmA%SLuZ59;h_FMXgmwl z)&!Nkp#BZ0{v7HUR7QjPkf8hn8~+Ed{{!`BhZx4T_8(SPf$Awx-4DY3MMdE8e^8$m zRL+9xPEdaZjsUFgX&6984T(-gW?^%J_GZi`$0kV9;gnbCIUvPQ2}-XZw}bjipn4b7j)9$J3^Etg z@5kp}u>H{Sevo=tn4;65x*wFDz~KQ(J2=jd1gQhL161#Wab)CwFdY#Ara^T-DC|LX zCN2!F|B=rBMXxVld=L%7pm0FPAaM`|iNk0R8-zi85Qecqbuy^#0oBu>yn-C&pz;dT z{{;2pL2Uq-KA2umT?JYf35zSxTnnhY1DOG;A3^#+YC#yJ7u5a))vKU*1epusgTz7d zAPiz7V~`jKgTz2I48!;^8YYg52B`yKba{{%2!q6tX^>w*a{!=qiZH){`~<@wG0sE79vD7#~z`f$Dw`292MC`nI64Yfya;n)`>9S)jXC zL38AwJ`Je72O3ic)&HRJa!|PhG7nUL!Rt6sJqN|0dy_!oAoKCnr^LvC>SPcGwI@L1 zPJy`CfUE{&4k!#k zVFn5VbPSUR`5zP)@GwGe1LWj@*8+g+e^9*-!k~H|M1wGBk3mEPc+UZ@x*sGCuK%&j z|0CBQAT|tx;trh+6GNtv*&y{GJ`98Spu7*N_dw+aD7;~D07^5Uv;?Y;Ky5{s9uN&$ zzYo$28h-(oZ+3S7L2WaTUQqf1)oCDkkXlf`8e|5jUkgfupfLxKogjG_2B|~FAaM{M zMkBL9V#pXIhm2uzATbadM1wFg8^lM(FgcK0L2d_?)yQE1@)rn$(kiGw2Wm@${Df`> z$Q%#`iGyflj4TFXgD^-QRPTe#0@({1GXk}1!(3hegW4LPI03brKy9m0Jha*Yptc*R zd;_H;(ApT}v42oK48oxJ#Z~`<<LdUeN0%P`w4J_dysW2kQ5O z>VHrj30emSic?T|g%w*^{0EiAZ5bK=L46odT!Y#fSi>bJ=YMNf7WkY1Naz8@R~kQKM~YM29<>%_ksHB#M()$I#3$|9FDLv|FF>D zHb7q9f6zPtC_cbp1gif*7}Q3B(x7z!;QAj_@1tX+HUOxe$A!W5KdAo?-Tw!w8$cLV zPk?9;28qEiEg3=;#3@Wcd@ee9vKz%V#-32lWJbsQ;r-AGTVbB@?P`V(d4hFdav<3l0gYn0biG$9?0*&i~>;=UesBHuCA2J4+59;%S>Stte5E~>1+V225 z!w1yv1Bv0npm`HmSc1bAOIU;K0EG{z4FeAkv~U8opHS+5Xq^ul&&>z1BO}4)t2aP2h!4XsK8%KmgJ@(i5F3O+;vfuSgD|Kr%MJ_s52~L*`zS!^ z1eBIQ@det`2vP%@=LhxuL2S?+e<1xJw}aviqzOk`gpuR0A4S@PX zAbUUV7*9kFfkAf!yq-tY;-SLGz=a^oWi@egu{2 zp#6Cubue>aG|UVb4H5@o5FeQau|XIl4hkO-2G#$dwg89?F25`-|AW?3g4!jZdSw(3 zowfj|J_e-~P?`swdksqep!ybs!E8|99&PR)SG^4~3mp@q7N!Q72C+eI0?qk>=J4Ds zE&qeu2P(rrW!zA&|3PK+u&DoYa=`s=to?u3+%@!!TF@GIP#p(4n*_9;1HH_`#s`h> zg3agv3GeAdE{Ns9z6~1C8T@+Rvak0`==bWBs80@1QmSs7(hl14M(y%0coVb)fPN z)UN>5iy$*V7*_v-%mdYFAUz;)bPO^NBnF~E7{mr)bT*8SOoP}U3{sB`gXBOMBu5Ml z3IkA|2sGA@E8T+9H>jRQHxp()x;QRANIj_D2bl$;K^U|S5L8Ei>;{b;gW6=Hb^p+* z`$72x)P@GdA80%lG!_8bcLl2Z;TT%~gVGTUqu24|@IhuF>qF*)>;}!dg7PwGoi)f^ zpz;}%#z18msQd=i0ig1JsA7;mVD&$!-T~DGp!x*8%m%3&tQh20P@Mv0CX-6h!5+F zgZ9jU>ig*x72vxDL1znq)=h!Z6KKp5GdeW3XbklMnC2=Ey^AivM7tOTD23_8OCRCa>;N}&B{pmYq9hnazo z28}a-+CLzFgD@yukuj(Z29_@<0N)7&3JcIaLs0mDFeu-^>wj3?k4%H=|A>hHp!N`` zzl;qd_y0k40;s+~#vm~e28qFF5F3WEiGk#>iNnOuX^?u*`cY8*2Wm@#`Ujx$0W==~ zs@p;1M&P;curS27)4CWb5rY9E9A1WKpq7$gT8#{jiwVCPA|^ulPE`S|#t z^a=_uSic`M1_N3z3fgA~%0r;C8g$0=Xd7VY)c>HdRZw0Br5VsZJ5U)1s)s=s)UE^3 zgvR~BYLMmxKy^Ay48#UubUsK78KcXC>VMEY1Ssu-=Ep&OE)W}3W`pi90hME*auZbM z4^<2*k3sbjsILLaKcM;_G|meW2h}k{0fXEMiVIM^1FDbEF{rKw)&C%QP@N2_k3nl5 zK=m#t&5?>hVFhZlg7)Eo>NVtg7*vOX>ORm~yBU?0|7Vn!gV(!(&btAXeW0`rTAL3# z*Bunzpz;!gvAF>x4m!sNRF{C#9_YLrP&xzI0jl#s7`dJX@j>-FC@esAI%s_qC~iS} z?m_nefZPO%U(om!C|`m4P@sN4Xzl@ICbC(C*dVh&a~z=Y08qGs!@Qv2KWJYpC_F&s zfoPC8sBHiWe~`OCaRq7*!0UfdpC5+N+5n(30bAV<5(C%&1lIq7>JbQ5&qrvwJfa+9``#~7Feg^SDa}ppi(7rj)*eA$6ptb_2{Q;_ni=(3cgT~ZAWh7{h z6f_?Is)s>!I7lCCP6Wgz1%ujCAa{Yx0b``|k3jY!#|3EK0Mr%%*;^VH2j1%kpYw;+ z{YY&Ag7rUv^?#sx0)}Dr2aFG*VPeQMhz-N&YGC3p8YBC5UrCs#&4B~_G8mQa^&2@p)g7kqf z%q(;oBnQGEaS#TvK^W8)0`Wol3e*Mw(V($3P`eh?R|D|1eJH7c!bscAU>!r2G#9g8d~?m*{-hOdjUcD3zX+Tbv8&Xm_}ENgO98h z#0FuI`5+o(KWP0wsD1>M^`P<-v@Q!&XM*Y!P#HUvF{nQVYRiD;T|i|LsQv(r?}EfZ z_3BW-Ah+VH|3Pvf4DuIfY#dZif#MQZSp_Pu2w{+3Q27li*FfP08W#ffNZfl1geujYcoM*1!#>4D4l@D^g;SSZ7*0~8I7(PiGlba4C5oyAT|ht0A3<&I(Yk+d*ZrXQ0i|_N zSqzFZP#Fa(H$i=FSp5&8LG?MP?81sc^}oCOe^C7onoEPJ2bFnP)g!e5U~2HuDD}UW z*MCr%4qE2}8aD-%Wkb2{2e}K0HP4k|Aw!5}k07*uzI>Uap*OCs7a{{vR|Z z2Fg>Q@n(>jpml&CJ)rpykQpF0Eip#@550RCT>r<${s-6jpf&)g&PSv3A|naU|AXp( zfB*lWavz34bp?nGqCuD#Ho7_xAB1t~1<8RhNFIhkd=LilK{RYk8q^j9^+!SJ02I%l z`W{sOf!Yb6GyzJ7pt=l%L3%-Qpnf!H%m7qAg6e-zpBH2%41?5xFft#+hKYe_5Qd3? z*dPq!BhxT8vOJ6plLOHp3=#)n5F3O+Y!C*qK^WvtP(KOeSCHS(F(@B^+CZSR2=XsT z4+z7|0MQ@}6N9lqd=Q55LG?d~4Vou`wE;jhsBH^7%NvyDLHo);VK|BhZ#w`~|AXpZ zP~8I>9|Ef-Vr)HesKcXtQRxe-(UgX{)jkXjfGVuLV< z4>B9nw*#eX(D*-S?iQ4;LHp!Dbqc5s9m*I~cOuvSMUj#JiLL)ZdI!3V0CNMVz6Zqz z=&l*~d^D)O0pYy7{~$3?T?eZFL384uv3O8<1d2;)W01M9{tiB~L25vC0w{ff+Q6W( zVbHt*sBey~js}gp-^a+~t zz-A^WOlXBc?JZEeAY)J)4YUpbv@Q{)zYl8zfZ73|^?%{vgzJCM_&>D%2h|TC45}Ak z7{-Uugv3Ge=xWi$K=L4rEDqv>FiZ^8Uk71O{RF!25LCv2)(nB-1T;Pk8Ycp^3qWZQ z6!#!~pgaCRG^qXum3N?iG>8vsCm@@R%m&G$W0*Wl9K?rVm>7tLiGgTjK8Ov%AaM`| zv5_%I42D7CFgAz=jbnh)Bfk0{qxJvbt@n}JWT0{iRAz$OZlH1yROf;)s4fR#P<{Z_$G9*^EoeLq zR7Zo z7O2ewqS4Ky2Om`5gW>=b7a$DcgU%WNt^b3a{SR*kfa-o|I{;L!gZjpxzB4wAzWxun zz5vw^APf>irm?YMYCv)zjE#>h24aISNG%M5_#h18!)Q>Pfa-nFd^cz;095CJ#$!P7 z18VbuXiypi)$^dT5Y*2H=?B$|pt=jx7XsC9pm>Ct38Fz5qz*=d*!VC=9SEbV0f~Vy zOdP}pVQhS4ahN=e2FZaih!1ivs4NAwYjNc%P@V&o&!GAmrVpeS86%6s*yuDUd_j6Z zZ7eVj4gC+wN1*c-K;yHZ@CA*Bfx>na5AJpV=)4S2x&V!>gZkK@^Z~=L`X5vmgVGi< z4Q7MJ|3PE=uCCyHHK6(#q!*+XhQaDUYS1vcI5s}4{)er{0jUAyTTtExm203f7Sv}0 z(L)iV)c@w@;5-Bxw*`q0bl;vB`$6sm^(R4b0jm2!G^m~dVGtWEmY4S*G#?JD13~=) zTzwQ=t&EQs7(M`HwU^i4|Gl@sB8oEBSHJfL1`Rx zmkg+m1g#kdt$PBcLy$h$909U<^k#$75-1)(@d3l2b(o;N6QFt@)CK@y5F3VJe1i2q zsQ(`j@E=qUpkr8lfi8~DM^^{pgD^-PIt>y7VURcogV-PpV}ocA28n?%hz-IZHmHsQ z)sLWgX;7ODl>R_z0Mv#9t$zm9`=EIo(0)SDm;k6B4H5(C1!0gmAPiy?!Z39(8kc%x zd2}{1AEY0d4`ZX#F#mzdM_l;@lAag+Z2BZ%p4wi@N0m*|fx)_L$E)Eg{V^`Pzp!Hm!_Bd!B6~qShyF4u{{)5~J zDw9F=&uINWaQ6U%!XMPX2h}mKx*o&^)iod*CI=c*2i32j{b``I0a}-htBj(hI4GTi z%m<})&^!dlO(2Y3FN4P_N=w0a<$~4%fXXm%yPOJJKv0?I zZ)^J>6n~()60{}`RF8qi3P5!lXzd>;je_blm>J0CgV-Q(5XQy^iGeUo9+{0S1`-Eh zLSis^7>!L2NDkyb(7Xm{&m%0IgZzk$!D9m!7U262K=n3AAILlqMrMQfFpN(eWG85y zEU0}2G7pq)K;<;Ze$dz&DBq0YL0bO@1c1+02bF7}Gy+<`52{x|buXw62eseO>t+}q zMuYMRhz(K?G6z&wgW?|~4l)NM2cnTNNDPEwV%XSVF;M;Q?*1P%o(fx=1)5(1?cD~s z6|{~F)JLUt{ST_+Kz%w|V366MdIQuK1)bjo8bbs1*+AkTzYPTptK&iSJq&~D8ZbLA z548YYfTgZu<)zkteNSQ-WS4;_Q#Kx-gC{)3r;Y&M7u z!Z0~x8k;yMJVA9o$UIQ_1#$yuTm{sQ0_KtRBj?;kUB6QT2F)8)P6QL;66K84v${2KIqs0J~pT=0je88X$j;e zP+kSCw*rk}fy!A>84aRoQ8$Ck1l7Z!xnU5S78qncto{d$Cxgb%h+Y3TDB1>~bALhS z`+_iRtsjU6;k-QX`E#K545;n{jfsQq&;|9mKxGgp&Cv^k>;skSpz&W&ngPw_gWQCS zVf8eq&Iax01D!nyaw}-87}=emv% zCXX%-<0H$1*dTEbjgDdBFd8I}%m%G*0F`y1b||Qv1Jzw13@UFxaSdt*fYt4H+d=6aGZ#dI_~;lW4x>Txpl|}$|6yU^GbKP_3tF=UvKy2aK<$Ci`hRfN|Dd@q zQ2h@|51{oipgaMpyFqyZgkk-7SRD zm=A4NfYLLl%ms;o+U20SALM4x8FHY$Cuq+VE$U{FnV_*>(7JBWSObVpZ49daL48rs zya_1347K_nRF{Is{Xz9T2!q!8gJ=+jwh2IeY0!8&sD1^lQ67k~f6zKFQ27X&e*ld` zV5^Hk?gZ80DSm$cLE}x}u~Kt$@HjCjZa^3`#|0|yKyyzZKY`BQ0i_X8y8_hj0@0v! z2@(gb`Nw9@K#76;2U>>-Y72nQC;+uzK|Iqn=P(1*` zpn3rr!^B`TNDjmXVHg{kMrMQ5fG|i5hCzG~2Jt~O2!q%l3}eG+kQfMq_~;l^*MrIu zQ2h_;_kj2y3~JYb${Nr*08n~?>4TYrj|RzsFh~zFjm(D0A&bG-FgXwn!XR-FMrXtL zAR2~2>OdG&pM%O{P+BE~L3>s~^)^T!2!qT*r;)`#Y!F6Q0}3aQIWP<=!$4sQYJ-5* zmV^44qxJtFtpEM}!S^+R#xX(THK2MMG`|k2XF>Hh2!qlRdR-0UgVe#;Aibct2IU=) z9uOZygXEFbf%w=kNDTV@h zizKT4hxY$Lbpi;3>IWDG@j)2GN2ig+U~F_XAU+Jk)PQIhhRGq*AUO~pnTD}J;xG)V zCqZpB(0Vvf+Z$B(gZj>(eg$Y=05q=+Qj4q?#)i=_c^Dr=!!S$^nFg^z7+npBk1P)2 zgD^-8hLQO&HjGAA1M&xG%pKI9Lr=rVd{EmKREC1at3Y7^GXq4!%tfa`a_AVO282QO zg6eW8*8B}M3#=k&yFNh7I zVf8VLhKa#wusEomc6SG#cLFjC)D8fd1FEmV@&v~DQOrUcTL8HOWDcl525JX@>VJ^= zpgks_{nwy6h1zv8$UIQ}531KdXUc-w9+mO&|3Q6SkQ_BJs15=3IYH|gK=~7tcfj?3 zR@VPPF}@GFI~EUyulO znT2dVHP|3KL1`Qmjvx%0X8@f`M2Xq3`X5%`P=7>g5r&satRa`|aav*tRj4TIZ!)TB?7#o=erB{&OKygPXpMm@eYTJRvIza6m zP~_>e?Y*0P<;yO z_khYk(AYny-Uh`NsB8n(>7Y6oRR7||&@%u)dO-C*C{2OP0-1xZ51Sae8WcWsYyp%< zL1+Jg&2@JN=UdQOg`mC>s9z51uT!&L2AK!y(}DW^p!y#)?n|>Z09je!I}||q5j3U& znxh4^X$DI@kIx;T`U!OAA1JKAY|!2GNc9w~jslIbgUVRYd@HC-palknA821bsO$sH zUxVC)UJrxzVHtX7Zi@5yo?QF z>;Hr517r-U8$cK&2BKjY#s|?L3=)UY$ZU`p45N!9^U>KLJ~9TG0po+%APlOnKyeJ) zzX__hK=V7GbO~w)fa))hI*>ke8d(e<8(9uy2FN~89SEaAY*1evRPTb+g2v847^D^? z2BJaYAPi!IFpQ0j28n?%sO2WDck;0Wue?54r~c%qDUk09`G}T+p09Xg?{)To4AG0RS2^2aP{><>mdS zcK;t#|AW?e)u*QZ2d!lVt&0M+GpO0dfSCpAUxM0Np!#d5)c+tigW3h4dI(-WLHC!z z_@FurRxg3ZX+UF5=xgbTDW3?b0fif=-Uf}ugUT0BT@C7!BiGBIy$7Ir9JKBYl%7EC zRFFOp2AL0X7pUz3x}y&i*Pyx;q#i_r_Kbtl07xCEZUBuN(4yW4g%!wLQ2!oY_rvOY zQ2!rf6#gPpgt-nEr9r-aYYatWDckw4Wf}T%p8~) zj1Qt=VjvpC2VoE!gh6bOTR>?ORQDre(D)N*Y#dZ~g6eHhI|SB$2DJ@9`au|E1~Ls} zV-p9N0V+>G>6H)$rGHQx7?dYK`al@uRuBf+0mA5ZAoG#gu(}^K2LReX0_v-Q@)RiV zfcy#a|0o_@^*^Y84@x7Tv&%r^UZA=cly>0tKeYbFS@(nLbZGq#TB`@D|3PDFAag-x zfM}4J*z{u)M;3#zLFRzkkf3w~VuRW#AbUXTbU4H5&@`Jnm; zv`!v$_bhDO9F*RufkENrWNZu`3j&?N2dcM0Z9&+a1ITVrT?eYiL2Wls`3g!iAiF{J zJ%|RG;b>$8ZsUQ6>ZACxzc>j4-a zBnHCBd>9*W^&s zkonj!%v_iph!1MFfcD^n>;R>2VlXHVfZEQW`BjjeApIaWfy@KB1!O*m4Z|=#h(^Ys z`XA(O5Dl8g1cg1weo%i9)NTg3X%r8>`X3bkps_yC_$H{%1=X=23}S=oZ5WNthV!9q z1W>;mR8E4*OVHjD5Fb>2g4BU9%p4dE5<|xra-i{lH@E+wwSS;GA7mb=odU84l&(Pg zv_X9|TGaobIs;TsgUUQmS_X~DgZR|Opt=+kR-kwQ*Z)ODL!))s;GuYtl4)ZT#E4XXb@WBs7H6wsauP`Uz@ z^Pu?$*myt84A7arp!0A*b@0rJivOVT15kMk>KlUkMxZhdR9}MXS5VskWHz-hsJ{<# zHz*Cm!wy=fgZ)AR8>Am(7RVp?+()(gA4~rq6jrc$0z{+pL1HkBEC*v_qhVqoeIPan z!`L7i8H40N^(=Bd1FFN&)qu{a2laJ9+TRs$L%0AXl50YwZX4qfvPDx*PiFdD=LVUT-3bMT;i0cr<;>VHr^1?3me`6Zw- zj~4Yms4ocWPlEgbI?sh(^*^W|2(k-g|6s+S`WAG)4XB=n*HfUj00`&hfzO8 zA5;f}(iySk5iWJ0HWH|u0?qw^`s1KB8fcyYRQG}018SRr!VlEv2kpZLt?>e#NdYe3 z%*?=h`9WrY>V8n!4{C3L{4k@k@;`_M&4Yr(L25v0547G7l)gabf&2mU6E$d1djjNc zSoneZ{V)s@1JNKc7!6{BFpLkPVHhM1!XWp8+5jMo&7Jh9|3P&G2!rYj5Qec~G&V7i z90;S!!Nfq~APnNeFo+MsATe0I3ZlXFZ9u?(5F1$yhz+i%LPP(9`uw2!Db&g7Kd3wb z)w`fN6l4|%gVe$>h!4UbJ~9nsgT!GNBnHATK8Oa@tH^a9X#4@R9uU;-0F7;e_FRJM zP*{2e^>ILD59n-ZP~8uzk3sGRsR7l`ATbaPaxbW^1=Ov*7=}%8g%b3$PCc@5h$&K`u!mDKz(KqKN6}R zq!y$OOhfB@P?`Yov0<1Tn1;4VK=nUpT??rG2bKSzbPGzGpfg=S^%1D-rzQrO30m_9 zO3$FNWl)_=P4i)9f$RZ=6{yYutxE&dUm&{%bKMVe8>p@U)tTV>2R8Q)t^YxF5V-Cs zEd`H9gZk4T|AEp5B^X?mxVnPR+6VWY3ktydGC^Sony&%b3vyFQbo75vUj|g~gD}WW zPp!5kEM+cb+Y6F1$0a}{^s#igBpm+kU#>Q2QB#L3sg`CqQ*QX#4{-4gs2n1eLL%JK;cfg8E&cc@&VHFbt~aVRI@l zF;Mt}#KCR~3;PdhtAO?ag4R@k`~b28Ao97YDIHV@{y-4BDFys;fa_$n`&%k5u==%m9gl*dUCJ z4H5&n2UISD+bN!&|3T)0+zraFpmGvaAHnKVYSEzj1hi)jw2ur_SJ1)^kXu3Z%uuZV zLE#Rn!(cSHFAJ^zL3`Igbs?y(0jU9%DWI|ky*wg?4=S@jX#f-_p!0h{@dFz70mTbw z{2YWq=QV)JF;M>pRPMmc2bGB+3@V2}V>uu<&8n&b&$EEaVNm}Il%7EI381+EP+1I` zKLD*=0QrMj7*r2~>Sd5yK^VlQCkC|#Kz?aVO9P+%gKh2~BnF!QC#U`g)d#Tp4#r02 zgT!DMBo4wLK8!|ZgZLl}l80dsABI6oREeE&sy{(#02Fqhbm(AY^dD4K!t4Q+i=a7P zP~8q{$IYy){6D$4_&=zh1xkaUb^_>JB2XNI>SWMd0LTuI`>BmVaSO5oyfy+fHUh$g z#uZ>{Kr{>!(gT$Tjgi3Y1g#MS#StjHK;s={@$vsbXZ?Zddvr`x{hyQbKMk$_53dWL z>+QkyLQoL6t^mn_FuE9s55mZD*w`R7APkZN)kmQIG{}DB`UF(B!uX&%48#V}pn46I zc0m0FP(K+|CxO$2r6qX%D5xI{Y6F7I2K8e>G|Vm#8-|g^Kx`OBmj{W1#9%ax4RQ|% zgZQ9w4P-B9tvqN?Nm)z`I8B1e98i7&wV^@n0#LdHtw#iv&!G8LP+Eq$ALIwn8dy+z z2jvftd9ZYkjRy6bVEzNS0o2w3VGtXHL3KN*-2nuE@+XK5(g&{pLqq?A`v0Ku7f^iwYLA1)7(nKX;=xt_gVG7S{)djWgX(Qq{SQi~ zpmGu$28|bi>UmK7g5*JI1C%~N=@8WCi}v*V52~ZVW`O1bpmPTxwJ;2pgN_S;*f0!| z2eCo=LGufsbA>?l2uKVxRsm`YfabbdGcx{z>H$!j8CIuKg9gwi$*0hQN-z5WN)zp#Ekhz8XwpfU^0E-3g9>gR&$PSDsnXe}_Pp93nNKxvH} z3@Yb9X%cKlem=P04ys2%VFg;72O1Xzr8!Vt4l^HQ9|(ie2q;`ZZUoi+ZQ0r2yP(6tY;~W16)disX0Y<~v$b66(2qTN3vq5|i2B|~F>7X-oK-k|OJhu<3 z^HDH#&L33IfW$%d8K{l}l~tg!30zm2n}gRBgZj9jJ~b#Efcn+h!NLDQbuG+3ko_Qx z%m=ZN#nAcqeV}p|w1)|Fha@P>LFbKt)|`OO9S5}uKyd|1FQB#ns4N1d zbx>Lcm9wC75u_i~F9Pjb0Qn6x{trt3Apd~c2p}4SL1G{bYCnL=Qczfc)(e2z%%HG= z)!`s_f!q(`gV>-tA0!WAgD~j+4v@W|G9OgeXN87>_gRAUfa-rxScAtB!ovQ8*4BXd zpnL|(|M6a4;P?W?%P1ZkZ2)lp-`xB^XiNw+uMVnPLG?bUtOe1axCV)V>SAmd)Sd+G z^90Qofzlwz3{X27l;%KX2e|%+uI~$Xc1E-XpkgpHk?jDnK^P_nqCxHfxfN9ZgVG+T z{s;B-Kz4%qbf9{N+VwxEo(A>#OJiffWd+C{P+biYrzQrO32I}2!VHvmKzV(z*Z-jQ z7OXBtp^@(Uh4rC9bN`_F8&v*~gF)c}ifhoAHK;5Eg$<|=3n~vmWhQ7Xh@-JFcx@ld ze2^Z{+G9|<0gdO+sHpf4s(V3o8z^mo+ygQbRF;D3#px9l;B^YP>d#>#4jMlwDfwTQ znhHMSA5`~)?g0Yf@`Qx{pzr}IP690HR?S#0Oy*A4Y@3 zU>GEZiw%brtdI6OyAoU>oKp12fHX0-b!yq*v4B~@m5XQy^iGeVv{|s^;NFAu&2Bk$%zXFs- zLE#R0rEd6?SuRa5(Aa-pz#3E_z1{NAUA?&WDF7mVUQRod_Zjgkoll6 z1+@V{;R}-ou|atXG&TTQ{|9PcfYgHQ1^E>;W&?_&Q9SVVKPVl7(mW_#faaM%bvG!E zKxHNfRrtw3!lkQ+hc`Jl7`Dx*MsJy0JB zG+qE|Pk`3`(YntM3X8#nLGc3WM}q1a5C+vXpt%50TL8odVNe}Ju>Oah{|~AcKw%5R zAU+5q^FeHo7z~5>APnMzXb=XmK^VjaVHg`k!|F{?nFXplKr{$rumb|Xa}A)nAGB^B z)b<38|A6Z}bMyb8G72KITwg5qox4}AR(iUUxe8dP3_;s#d#gW?q220$8<2c;iu7+goYy8Z`^ z0f6!us7(pVV<0m@Y>>I2aUak)6{t)GnG0$&U^5Gw7}$L1SOMs4Hqe+qXsiL`)(96D z@Z25fyb91b87Pl{>QicAP`wN?3snDuXc!;FrX~iN3u+^Q@*`->40M(oNDP#h2O|c# z4b=Ar)vYKPx*h=3M+en+pn4TFt_kXggUVk}njjT}#`HmD2FN^6SqCcfKxHIo-w9}} z-^bP#e4aXJZV^!AH?pnL@?i$LQTpz&x>n;tag4obtIb3;Mp5-5Fw$|g`<2C^4~ zVeUd^!^A)|41?rB7?}@ZBa6ZLK|$d33X%ia2U^2a9vk}~Vl)%(ch4yY{v%8Q_W3P=vrHU_oDL3eI~#tJ|flwUydAoD?a5!99d&C7$@1faG6 zs2u>Rn?damP#q4M{{Xoagh6fu(I5+5@E( zP`eK_<^x*$2&z*-bth;X3)DXawGBc2VDR{Ma4>j%2*^B`x!Bk+IdmGN7KCBqAT|iY z_@MSIsLTTS1(cRSYZ5`_3@B}b{0i#3!`umSE2u3C5(DKsP?`p%VUXM5I4kQvSS%~+ zKd9UQiG$RF%mkf@0csb3@(w5;fiQTSASdU4ZAuEbEdrWD1(n&LZ~)cYp!yr+RuBfc z8-!tO5Dmg0F;E)-R6c{k7dCbRk^_Yy$Q%#`o%;bAg8{X_K=Toxy*c1G8$AaA9QFel z7NGP8TCWevE1-Tls80>5hv5BxT>Jl#+618Z2bH-X8dSc5`sSdt1TqtpE52RpFeGQ6lkbR)K9MpdSm6M<}1sZpZ_w)q!l|bVqpz$V9-yhT; z0hQ;Vx)M}wg8TfYrr^2I!ib3fpz#Bc+Xe!I+ytuMLG?Nu7Zv>njZc8W44DS8VHhR{ z<`)-(_lAM=gUo_qQvE}<`X4m@k97YZs7?Tt|1b>WgJ>8A$)U4hVjvoXVe+6l5>!5d z$|(>=XM^~l@c~et0qFykAE5daIh}#h3uxUisBaCbQ$ckpsBHsUUk6$T3hFn2+6J75?l4&sB@AR2^0Y-Efq24jQV401cD&kP!;0Ns%b8q)%eMS#j< zP(2KqivhV8G*1DdL3?OGbw4N#gUUKkIRwfZ#9)wGIL^-g56UCR<949D0xC~I;RY(3 zLG?Ch{vPBHkegu`#D`&!7-+lz6jq@21L$5XP<(;f4j?r!GeGTskbgn>6O>Ouc^K6G z0r`Iv5BxX)D84~$GtihRsH_I%Ay8TX^}9ecNFH7XL+gEz8kiWI4H^UR@Br`22jxLf zz5}Hvkl7#%se2~@qu(k-uy`Vk?y!-&w{V<%L z53Zj;^%1E42l)%sK7*wNP{R&W+ zf$RY7p#s?p8t(*+@q*F>NIj?x0V?M~=78ksjY0K3sJ;f*-)QwcSPWFBgT&EkWHAsM zgkfrmiok0b!TMq1AUPxqYa4)R=w3jW-)UL@gUWso2GtMf7+D;|24RpI5Dmg0HVA{* zpgIGT7ho7v|HCj$45SV;z60We`URkJ29&-)@eaeF@y+Ulg#Vzu^`N{A!l1ez)CK^p z{{zJh=qzARp9NHpfy@Ne%ODzrVeSF3K^VqIrjgkoH82bkhhdl)j0U+Gv|k=n7lO)5 z(B4!~+69eEfa*!m7$@l55m229>Su#6s9y~#i$L+%h14ejjNBYm5(6* zf@si~CMXYq@)+ohY*79N_02$Sb?gImrDmH>1-aIZ*h6=H5WUd$zjEyeS_}q|3PUKR0qJ^ z3tH<6YI}mx7^uGqO4C#s1IWz$56Tmub!VWqH;4@~8ySQ09B3UC=sX$_8(EH6HppC1 z+XYnifG{XefXV?-TOTAh*f7YS@csj+-Usdf2Vu~ezlDV;Yv@5^^Pq86SUMnv2F*o+ z>V8oB0#r|d!UiL6Sgw*DWq{~lBifH0_jfYBf}Aq-Osqmk8v>UvOK z0MRfE;)5~t&Kywv1S)Sp?LSZ%07_q=Gy&p+${h;x0o0cP*$=Aw zLGcBuQ$cklXx<9sCeV645C*9MrF+m=0VobZc?4FEgYqQ|gYp3kgU0(oegvg`5F1oh zf%@#AetAc3E_fd;NG+@l0Lo*aHUKF6K;ZzwFu%ZPWIut-0@d@N@k@}KL36#ZwhBlb zRR4o$(AYmHen9<6P`rTrKZ*yo{s*N$PA-4AMif$|vWOjuBR z9c1R9!?3Y`P~DG)L1h=HoB?6bdSp;~0+q+0d`}Dp)!U%711iTrbM&CP9~3SianKr4 zP(KFLmjli9gVGeJtO12HsBaHiCk+z^_4z<;f{BHN|3T#>$UU^gusR=9&LY?O;CdIS zJ_hqabuhXZhz}A6VGtXJL3|KK=3`@n#6apm7{mr)WHyM8ghB2EwP`{7{XqNvVHi~B zgW3aNoRIJzSKSX12iO15@qbX71=R`2G>i=shw(u)48!C=Gzf#lK{RsTA5=!c>Iu-? zIH*4isxv`qLGcVKyFh6Rl+Hlu1XLz~_UnS`dr-X(S_==V>p^}3ojgCQbU>p$eALIv+pFsWr?E?Ub zgZu$%2Y}lC?KwIBL1`J}ACSLLu(>%{4%9CJxgC_xKzRTigUS$4x&);;P#XwTkAuty zt-%B38&Ez1_5DG44OG^FXpniJb%vnw6=XN4%mvluAisdz2%9%SKBx^2+S3FouR(bhG>$h~{|{`v4@!F=49Z)e`~n(p0<|ka^$)1t1=X`~ z464_m7$gTu6EGUY#=xL{I_SPWXJ_zUKTtaWls`f74yvm`m4D$Dymk#|N1U%F7`Cfc7ha${tX=16=>-mx1D*7!2y)gXTU#`atvjpt=auegu`tpfUv1j|asssGJ0) zSJ2*KP}v6(2bCuvyFh9|Wf91Yp!5Ae?f|)mmKfw`P`d|)LFFw92GzqL46A=(Y#0p_ zN2XzNAR2^Wav(McgZMBSoeko{Fh~sugZM}^C~QFWKd9Xas{286&0se4JV1~bh);0+ zAGH35)d?UPgh6!y48!;!8X1G+vGGCTpmGTrgX&38c?GIhKz(D-cyoZA9eD2#sBQ#} z8G+ImsQd!;Z$W7Y)VHrsPW}&C?+!{!pn4yML3tJ=4r(8O(gtWA8)ObB{lxqDfa`yd zJ3tuSjW96~4Z_Is80^46@LohveGl>v%pah0e?k5MrCU&2CqFFgKd7w?>MMcf-9dFT zs2&B?mmq&3V~`lgzo2$8D6NC)ZBTjx)%Tz>0=5PRR1SjLKA`pmXsi@ezJS)lfb@Xo zLO^49AoU>qAPg$+K;;=IJV50g$St5Y5ok>fs2&IT6@)>4gwY^27zYOa2d(u7KTyVNAbY70YK>w)D{Glv!HkZ=xl8q_`j^)*0jba`Uq|yiG$(-)E)rM z1%So`K>BEjL3KZAA~{W4D1}$Nkv8fLG%Bhc>qw@fcyk%H-OqIAU}irfKG$L z4CFtMn?U6~C=5XJf1vsw)D{4Z|APDhY6pPg6eJIdvr#;7?Ep}Gf!1S!>K;(}i(LPM z>S|D40L|%x>RFt1GPG>~QUk}(emaN`N)Mp)2Q~}Z&j*R4W0?6c8eJa72g!rlm!NzC zO5dP128a)`2Q&r%N^hWi07~1$)W5jYfbt5c9RaG3LFpZoN07|~u|fF`bpIBpd;zg> znT1arl<#2mKgcXl*#)u-WFAOvFkz6pVC^eV*nlvo?gwE|{})sSf$C*Y{SR832g>iD z@(UjZm1Cgs9MCx|png9nEJ5WvC~iSv3^F%0Fz`R9&jX5k&{{xH8v)c-0IgF3)%~D4 z0W`)5s*6E&Kgb=l!l1ey^Q!|Goc8%Be~L2M8P zu|XJ_4dR0^OpFi>Qj3n!^q|!Lpgunq3~Ij-tp7p%f9RfjP<;Txpu7UZAU+6#_%IsA z#>NMUf$9TL-2lQMHmI%u*De13|3Pz2I0pn4G`4=P7t?ghCS zv>y>92CFYY^*juN>V1$nXdfJC%^#>-1oc}$dze6VHOMWXvn)Y=1D)#+qCsgNRK9`A zJWv>b%2SXy?4ApdIiR*LXwD0?-ww7$3Z%x)&=7o|J1DJ!{0qvfpfUxNw?O$BhGAl$ zau1ZYLFz#6ax^gk-=hf{mjL+}v}O^6LH-7Z0d$N5#0JF!D35~N3mS6()%&3G7}O2` zmC>N^1+~*bWdkUDz+r{fP8t=XUwZ%)2cWp{wYCP&DS_IOp!fsT{V)vT!|GlTjm`&& zfiQ|Vw4V-&b5NQFrCZQ>)1Ywy5C*9QVURu;M(4xCVKlNlD9?cMJ!m`&RQ7`~Xr2L7 z7l7&n(3%)fdIzOte048AIgnmZTN!jG2dIq!Y8!*jidH*^v+sPKMGX;fyx)qy?mfORiJnP z<#$lIiVMT!LFbf#&gucx;h=gS)FuVBe?Z|6YLkNWgZhOaF_1b?`3{PI(3&XFdRniU4C8}n5Qd4P)5vnjY<%jF zzI+9@h59wj2%0ICN-Y!C*qVHm^* zVPrmx4WmJE3@ZO&bt$aw2g!r_C!llyOEaLl4OGW~=FUKEK~Vh<%7^InKCBG@qd{{4 zAisgqENHv{l|W6dJB}UKy@{8JrA-UhCy{8sN96P5k!OdFu#H7cToEQWCmzW zGDtnBi~!Zqps`BO96ZPlkiDR`49HGUeGkH*@eEMi4yq$T^*pG|1C4Ki+6$n%71S32 zt%(8cbpe&tpgaaL1LSs)9#Go_G%gA%2OXg2VS~nZL4F6-=b$nLRIY)_7f@ctilKW3 zKxr8imZ0(*6y~sb08ku(!UE=BWEzwgLE#4S1E{?M3JXx(55ge7gUkW-H9`3s6lS2f z9>w&l@6p2=ly*UR3{*dZ(hVq0fzlkP{YXmv57Gm|pt>4HgX&~ZT@Ok>ptOmt{)edr z>BEI#YCtpygVcfC1}YCg<76NCjYU9zCG04l3s7*vLX$^}q=8C2eY!WvYDfa+6F zIDpa*C|p2&8ju=LzaJDvpfUthK7z_ZkT}RrP}>7!28gCM2AKU_{RKtclePC!sN6IK61_y2?P90-Hz1`vj^k!fsfkXjH1)p4-$2~;kD*r56Ybk;m5 zpM&a2P`Ux7DG(dfP6X9YpnM9-f1r9D#0RwjU>H>Iq2Pps{~&ds_5!G#4Kf2%SAxt1 zVUW3?v;}e}XuKQbE>Qgq;)CivFb)ia+;;=L-w@N(7nYVb3uLq(V(^j$ZU|iKA>SyB{{|Bi9#WjpZX2a@#P`(1q`GCxW$-~scXplGz zBa4C9Fbt9hu|YJ*EKt4yxf{d=xf#?K0NDk~TcG>^nj;3~8BqBEO7o;*kUmgf544sT zR0o0j3ZOgzGY7QS0MsS`*$XOvs8Roe%3@Ic0m_?$t?mc82jnhz{STV^&&vbfy8tSa zV0A92js}$zpu7&o=H~xFbAO<61iAhP$${qg!Q-%{rQq|GK;<&1pAD*OL3IG=ObSq0 z4yxZl;-K&WnFT68K=Ztyu>jC~14s^pVQ!!n4Kfo{27=N7xZcmr{SPXOLG40Noe#qx zIS?CEE`#b;Pl7AUlc0p!5X_A5a?&6rL~)S_25e zuyFuT{STV^#f6dA|AWeX5C+u&APi%}XqXr>A0`H)LFEuK2GzSD^`JBWN-Ho7s-r>W z5-2}{(j%x12&&Uz^*kuOfG~&;qCptM24RpoP@M|Gp!G>krluHoMuFC_gZf0Ex)bC! z5C*vehCy{a2!rZCP#p$Zn*gfYK;;mq{|zdWKy@6Q80A;AJl&X&B=rM>LBw#YCvX#Xj~Xs9>#{zFg+l%Ky7zWyBZ`1 z%FCc}HBg%xl*T}9V36BEfGLKx@uH{UA_z3Cc$>{h<0DR0e_C zO`!2;&{{#594RztOaV0R4{Bq8%3n~v2IWgo9vo~KPQ#Kd8I` z-$I$i*Xnh4}odc*{1PUL}+y{sc#-*j;J&z!DFbq-; ziW?9Hshv??{=Ydh^FL_K1*rZ6^)*4bDk%wkrXr{x4QdyF>MT;~e^A_jFsNQYr(t3s zaTtb)f$CCF+=4Ku-3RJJgVccL_h4xTMuW-}&>9&~dI8lY(}z)E@_>MHmLz0ji%s^*M6=4|boQ-+$0tDX8rUDt|!jeo$QxO2;5QATvN^ z9jF`yiG$=p^(AOLyeK;QKPWsw{RB`w3`*yqd;^aE;$rYwP9QcYU4z;Hpgac36QKML z%5$K0F=)*`2!q-Rpm{RT`aaP7DyZ%U-)m@U`X5vtg60}PYh*y_7-SFVOhHgsfy^NV zgY&vMuXxD+$IPL`VX4_0IeMWmB*lZ9yFc-ic^q& zP#A;a5ERd#_#VXrSMS5Z9+Xx=aRaJfk?Vg@I)~N&AURwZR0qT4z-(y!4@#dPb3x|A z$N!;g072?N7^V-M#wG_71J&&yHYmM=+Pa{82I7O}gF*QahC%aW{l&%Lz9lRlfYLQF z7*zj*<_JM)8I;FBbrPtqhUo?6Pf$4t%KMW`fQ^1&!%|%1uzc2CEOLL4(RlFb37bPz>tJ zgWLx4C&&$83|;d8W+T`CP;ro2P&tmZ4FED1G;R;0LF}R;NdLX0??@!TKM|`TwB$0E9vH0SLp`FdA75#s;mI1C>Rf zIssH)fW$#_kf8Jf!l3j5y2l4p9)a2`p!yKxP7nsU6I928Xb=Xm;TWks1IoW3y`VGo zz;(Zw8A{(DWDf{~>;lzKAUA>PdQiCnD!)ME-{|EFsB8m`v%~r~AU}Zm#~^os;saEF zg7OL|&OqrFgh6=*6n`KLiU*JyP?`s&anQIsI4(0X{)6gpP~3sy66AK!UPcfN>Pv&# z*C4lo>SPcGl|djkg7(D1(jdrekXfMg0X9E7`#;DoPv!|!`Ps<6R52Oau=u$0HrU`S_n|N0198wI0-1MM)APc{h&Ai z#Rn*^Kz(XhT?(pWLHP~6{s-j;5Qf#)$ZVJxDF1-cC@Ahh=?2sm1lRxA_6k7T10cOv z&4S9K%YoV{pz$Tp7&53X0r5d>SeqV{&Ol?upz;n>kHhi;C`}WKLFGTFO$#y$bVnCB z??Bhbfbth8zk%{0=feLvG*Gz*3Ii~Pj!lB>0F{}b zvJ%vH0JXC~;R^~IaCur#0AFtavX@*8u5&^CFHoHf!qC1q$R1GKgZv4`(E1%@HynfN zf0#Ik4IKjjxf>KNpmrRXhMEg96NEwHV0)o;J*b{XuH!-FEy!-rcoHZ~Ky?7f|DgIA zR9}P2UQizlG^PSd^Ps#2!l1kh%EurK8VdvGTj<_hP~HONMQ}cJcmEI43(6~?Iu$hT z1ggKl`rO?9gW?D@rVWZ8g7rUW{Xca6A5`|kFsLp7VPrlwHb@NAF9elAAPlPiLHo`U zy}jZ0h=I}&s2>Tci$V1_s0{-O4-f{`OIUG2!hcX+0@arwJs=vS4rB%>{ejE`(bzCZ z4py&&>;^)3j5 z;uDmoL1`Y8$3bNis4WAk>p^WakU5~Sjq2p&{~-T?+z$3fa`Jyr83PI{P@f01ZU*E| zko!S(D(K7tkUEf^pnL+Z-;u}qv$Fn!_WObI703;sd`t`mxe?@UkeQ$~1`Z1|v;Q$( zUjISk51{yi#WRQoVUQRoje_uI zWd|rNf##<`^R%G47F7R(F|_^#l_4N;5DmlVe3&>Wtzgvupu2>S%z~>$6GJx>nGa_} z_ZNch$pE!4K;ocw3y2TOry#$8FsQu>>Q8{mT~OKw_Ep*qjz<{2!F}VREFhI2@()xmfoM>@ z2F6Nm=!L4E?+0g7*My_T5xAJi5EwK+lkR8YDG)y<%K z2NZ6gv<<40K=l)d4@xtjxhar5s2>Vy4};W$_L70>dQjMb&c*tQD0o9$L_ym<_p!fs14^)?e`uw1J80?OM0&xEx)V2WI2W?A(_@F!s!l3;FpfCcp zt3iBFxKDMukHJEN$_bFaKxF}_{|c(ZkTIxU1J(1Oum_b9uoB))#o7pf#M5AU%}S{~)tKW`OEtIEK!*gX(LL|3GCs z97F4MP@4cO2I7M-sP0Fmp=^+TnE4>PU||GegUv4}_z!Bwfa)z!yo37NpmYqnqYhM` zgVGu({6Ognly*V&Iw=2u&OZj#kD$2}P=5-vb^=tMgX$!ZIpDH4DCj?^9tD-HptdOp zgY<#g#-MvLKx<|}Z2?fdW}>P2Uq?mdzpjc3nATBN{tv?1%F6$>m6X63qz+UjV8ihB zf6)DZAp4OqtR4V~A+tez7zVY?L3KNb29-siF$d5%A*hZ6g#jo$K>h`#1yEfGt{W2* z|AWE~8H4g4h!2|c0QILqG^qXo*N@@h;4}C@=@A`++Cv}=3Tu#EpnfSRtU&Go)w!U$ z88qJxig!@@1*I2IeGjVZLHQk=CZY3IAT|ht&h7=JX;3)>ngamU^`N>OxvmGTu>|=A zjG=oHK=nVeA3*v*d+tHyCTN@n6ds`T0P+(k%s}%tAUi;54dgzMouIlNluzL}D+}Bv z0J#gaE*}*Cp!H0k@C2o2kT_T$Qhg8C3l#&&gUULPUqEFPC=5Yv0hO~LGePYDQ2fF$ zC~iS)Q22w~2?}3O+=9|9C_RDFHz=$@=^i9LiU+<80P3%U)~tipy-FGD2;&9ET|m_G7nuJiXLcN044^aK^R>Rj1Q6nxf9eD1@%)v zY><0FZFSJNKgd6zv~rrS)G=RTYdu z{eFElwf|rY6$8nE@)fqaA0!5^|DogmAU7jpSUms|1F=CEnGH%8=w&}>tsE%MLFoqM z2hiFZP+WlOPtf=`sD4DopnL~v+k?bF^(Cl%32G04$_CJyIFK2jd<82DK>i1bfyNX- z_JHbAP`Lp*cN^3{1+_6i_JPv|Xx^r{7@XcgVxasEiU&{{1z}Kn1*KcCSXLJJ-f_@+ zRgf8=x*p^vklR3YJgDpd(J%~lcVZ%Btz}~3f6%%XkRL&16i7d4Jus*p0*W^f2Dukh zeuCy3L3V)BF=$OFD6N6q0LnukH(|q|Gzqd7)Q$$Vxk2qlP&)t=PM|yq(t}SwNFLO# z0JUpD?IKX03KWi@Gz)59g4&+Q@roSJpf&&~4T0(ukiDR`Cn#<~bpmJ(3O)Wu`SfoK zfcguddJ~*4tgQZn(ix~94H5&fL3s&O|0CDCU@>TY4HE~^$l@R~K=}()9)ZL`W+9sc zQjd;7>d?h-@}X@EP(B9j_XG7CKx#qufbtG#o(_~wK^T-~LG1!iUI67~P~8Jc^SCgm zt^wtDP@5Ojz5tcYpmGLE#3<-=MJqT;|~u2bDFTavanr2AL1a(;)RA zI|dsDl?9;s6I8#UV^CcOia${P28B7O{sEN{pm7tB9H{&Nl|i7r#Gv*Ws7?geX`p+K zp?xTj`Ji?LsD1<0QJ^&!AbUXd9;gh$Wj9C-J`A!S6wV+FG6Ph8g4iG$ELU6%-p2@X z4+w+O2so{P`uHFWt>?jFNNkW=Q2Px;gW4$|H-PGWSR8`Nc~Bn?RQ`e5JfO4!@)s!G zfX3B8{iA~LaPZu2b6OgB9XQDUAag(%WFM$b1NHSlWg{qjL3KQ+J_FSYAPfp?WDK^$ z((*qjJ%Q3K$SzRZ0MxbsqGae~>y*JRpZHs6GeP@gNL} zTM!1tJqUx?ps^cJngz8tK=nV!Z=mu4f)PURs zs`EkfVxTe=l(#``c~D;nM1%YUDz`xS2!ugp04SY;@;NAPgVH`I?_k5Ad<9DHpnMG~ zk3jhlRL+3vXOMbOUIeYD2DM{Bc7yT-s6GS95sN`~fcDma$`jBS1IR2;zJt{r;QR}! z8wUvnxebItH{2P#q77b7TxELqX!8x*rtYptcFf zd{CT&%1Jmzulu2E{9tN9{(`v!WEaS0W2B-`Il|7(3AH)XrBSHBZw00Df-$3C6>I;M11F9=wbtkA! z1+6BO2<@BoDisD1;bMNqv1>Su!1>4EA#P#p`3J5awD)LsL{0VvIZ z;vbYgLFED{kAuPogh6Q%M1$fLq!;8K(3lL|J@N67`-Nb1LISu?4{|Fy2E{AP?I3eN zZ4Z!{p!fmBHz=+_aSOsAzku3FptcVvEyCOh$_pSjf!qV4L2d)bDXffu*7qPkfX*iY z#Wl!JAa$U21gNZnr6$p0YqgxUZgyFuoG_FI9*R6*_pg)u12fyQaj;~c~X z?E?UVJFt|KR%H-5orx08@iZW9UU{2f)-JtAUAu(h_Kl0#w(7>P}Ey1L|ji#6cM3 zb`S=&0bu1NDD8vhp+My>C_RJn5G*f&*f0z#he2fms0|M)Q$THIP+kPpS0MEu8kBEA za-cjwYW)v019WE&C=Y`26DXWO`E*c^|7T}|`>3!w3r2(1u!Hh3sO$x$ArJN}8s!R1$07FZtCwgA-$pl}71?I1Ovx*wzt#D>{Nhz7+k z2!rZ;kUmgd4`RbHbj%-Au7cbL!k}^%UjM`DeGrXY=jZ2x$Adv*udseP$o-(Q9W59sdW_^Pn;xM8hzM54yVn6sIU+{{G-~3ZOIts{cXtA1EJy{0Q0jjQkI3ql4-;P`rZX{y=pd zhz9XN`5(L{9<=5pI~%e`7-@YTsJ##B+k@-_)#V`jLGA(d@j)0A=U|LwJpxEQ41@H+ z)Pv$06i*-;VU##^pNF5Re^?yKV12p~*s)s=sq!)xi`e7Kx2hlK$ zO%5amlZVr;uKz)GKB$fdwE;kF0hl^a`w}DvatG*s15jE8VNl-!lpjH7)_}?bP+tsG zAA{0A41@TfJ_4v;0ZOZ&^{Sw9092NMC6pz;+| z4}#JvsGJ1VXP~)XQ2)FsH5I&<3zT+2^#jZfko!Ow6mGEfkuVw*w#XQyu0Aadd?pRZ zOi&*ihCy{K2!qGNzBwq|KSIve1GRaAot?q=|AOj%P&xzE zH6U@28cU zCWGWbWicp@L3%-B9H6!z$nT?g;MxG7ya?*=gX(`!A2h(x5!_b?)z_eW1&TX(eM`dr zeNbG3+M1wr4l)abLH%-MvtVqP9q2Sn9!A6DL3}V9I?e!U$AZdFP&o{@2h?T(wGTW! z!Q)P#_BANIg3=zyU7#^iP#F&@KSB5Ufbu3NpTXJ#pmGD$J_nV@f%f+QLHP%iPe5uw zXu*#Hs)`3+Qdfy!r4 zT?QHh1*I2IIRpy_P<(*OLy&!hFvxA7F$7TfVqoZcE>JxPvI`XVU<|7BK^R)^gUUk? zhPeskM-T?ZJ*Z3tjbp;{40vogBm_Kv5AqAhogjNb>OtWGI%f~mW&n*XgVGOZtQ}O= zf%-$B_9`eWKTVDQjfH^fd5~YRVUQeXjs(7^DszgX&mh zF=Rf-9MBp7P#y=_3vxH8Jp=MHs7(d(E9jhI5Fexlx5C)Yqp!N+&z9lOQe5MnqZvt`)*zKUX2qgD|+yWX)0l5cM=Yz@_P+19@a|E@! zLG2=tSs;7x;;bz28W~Xdf!c$h@dHpCfa-Hlc?_!GLHQaK{~#KSgM$8p`u(7G2dM1_ z+KU28^B@dz3uyfyw)8P7M!)s|sH_2vJ%akNpf~~LMNk<8>r2DxSx_89?|d>E__x(^UE9tv_lZ0rJN4`@6Vqz=>;0jUAa zLxK7Wpnbp~cY*pJpmsB;oCM_qP+kR<5up4A%Cn%b0F76J##}+;xS)Iqs*gbR188m) zmi|F)Y)~Es}i2fK%}uKx>*oVxaN@R7QZq0ou+1nFA^(K=Pol1l8jp zzk}=qg$XErknP3B2B`tn?I3eOG#G=<^MReQ2d)1>eL_(Df&2o-pgukb=jMXTH&Fcn zvL95xg3JKbJD@rW)D{GlW1zAL)OQE<|3UEyG6UpCP#+(JLG}I2%1ZDZdmz0a|A5*- zpfCcpZ9smsH#7vV%LkRCptK39FG2l#xS4r*;CU91pFr*awIx6_2xId*x){j)AidzQ z0EGd_?;skALF#eV|Iju7sNV`|CxhIG4a58Y(D{E*oPscDydM-sAPlPK(P@wvsNV-t z3u=Rd{0~Yyp!5%_t3Y7}qCxd3hz7X>ynZ1&`#)&?D5&lN%`1W0N1(I^@+T<#L2V>Z zyn^aTPjVwN96h*T-U?uNl;x0#UMLD^(Z>VCJqyW(J(!r_7tcd2HD+_ zn+vX=LE}WA{w}D_1o;(|9zgXmC~bqu3PVsk02J1sau1ZxKw(A*gWLcr zyFhDNK>h&bb&#JxbH<>y94Jmf^*)RSjpKpx4k*q+@}O}7Q2Gby1GRraYXd;(V-(Y` zzDEyhQ2h_;|AXpJP?`YMN1*x>R%e6ODWliJU^Pf%{UCXCF;Kn+^=Ck13LvvU7^Dsz zqw537V-o|3LpmYpM|DduPRQ7=KCMYkVV~{uq zgUkoj7oheQ$Xrl=7sLjI5vYs>nE`SKD4&DMg8{{$HTfV6Dumzo($!Kd9de zDjz|0Fvtv$I$Ri52Y~7Uka{qN)^#8@sJ{y`7Zk6cFb2gR2!qTAVUWK-W`OE%kR71% z7}Q?}t$_pO4^TM;D#JnLDyWPE^)12Xg3ji2-^K2Z4#G7pp{z-}lh`40+H5C+xtAPjO3sTkxoa9F^?0F4HP2e|$R z_4z>;^N44MlAwZ%bU0t!D62GwhzJ}M~Bf$|Bci~{wUL3s(}M^Ko7+5jLvs7?gM z8K`d$s_#K@1u_GKLFRz#d{{jX9m5CN1yV-|2AKiJ2?_r};R?#PAoqa$2%3j6v{{YqFAisg!3i1;;o}g_Q zko_QWbPN**g$HPE1T+>8nok0?!9i{Tl{2951Gxv34hdmU+6Ikffy#1F`2~tQP<{sW z^FZ}GC|;54f6%-R$iJYx1Bzcz`xz7tAbp@Q98kUjrH4^Gfb~Cg{vVXLe5|bggZllT z_yv_yFdCFr@L`Zz6nSX>A2gl-s@p*IF1Sv{(Plu_kIV*{iOvU!!7x}3WS6Jse^4JC zl&(PQfk5p6P#XrM4yFb~gZu+>3#dK^mCK+s49W|jaRE^O6O_I|c@k6?fXXw_8d;DU zkeRUhACy->>Okool=ea61E72b5(AY(AbE5QYEyvP*`Rs_R4#(*OHh9h)E)+nOMu)0 z%0nP|P(20G56X+6a%7+|xa@(JL!dGkBKQCWr>L6+q(_APjORs4oR-FM!H8P(2SC;|2K@G`0h(=Rkf2mE)i^0smnWL&2c%0F42FFzBx4;$m<;1&SXqhP45p?Evsv06gRW;QHUe z;eSnb_J7b?4p5qgmEj;ZI!2ZQuN4al`VY#Rp!pzBUI2wPD9wY$!a;R4s2&5=aiBUB zRCj^e?x1o6q!*MALGcJu52_DQ`t{KI9b^V59zkt*5F2C`$V_|~R#&2{!6gn-2a*Gw zM+l-p=@c|Z2y!#%Y)epi1B!o89|JU=3RfeLT7It+7-{%1n+TRiKs2cQ0rzLk&B15ggX%U=y#mT3 zAbA)DmGz*0EJ!`5j|bZ03`+l?u};uAFQ9M%g%zm&2hGQU$^}q8266+)EKr?0P#CmE z3T8K`{s;L1x&8swRiOF|Tip*T8$j_6DhomNB`9n_d;UP>4k%1PkATvSzeUKO^d_Z9U>d%A5cR~IJmG_{2 zKd5g5>f?jTW{^6toh2pz!S#Jv8TgJqP}>AtPlM(tpm!*N%q10r+ypZR_taL0#1b|A~6^I>u@aTpC3hmIkD>V43-1BeFA3xUc~P<{rLr=a`| zN&}#F0Vw`K`5TlDLG>yqPl3`GN5f#MKk9>~9- z_y(=b0L3q;?g!zVkdXhN`~>R%gTe;X&IjoO=>dfgC~iUeK<*pG^soCtVGe2+g4Sh# z;sZ1W0IK&v{bvvjsw*+-QKUXRNDhQS`5A=aY*3%v-5q@PJE$H2LE~F zfZR3!wOc`HACx~peN#}K0cz8N%6d@U1a3A`3bK3OG~ld z`2()kVEtPV4Z^TB{)L6$v;0A3!RmdGdq8dniGj*bP}u}(_kr4GpuQC-&Om#vK=A;o zpF#cxxeG*t+ySCNZUn_YD2;)}u0icb(0UTkSPsZVHji=NS+)FG7}sQP=6!yLEgF(2bJM43@cMW^#BNi#6j%Sn}OmUG>;8xBZJ%m zs+zpCn(3l0N zy$DJ}pmqwVZ3M~}p!Er$G!4r8pmYvOf1rE>N?)Mz0kq~ARR4l8bes()4{A?<%m?`u z)J_A1Ate%j z2e}WFXF+8TDBO|dKxGuD%?s))g7P`YJWw70wF5!zdQhB$Fetu3c?-Gz2Za%6?iHj5 zY#(?q*NE}%&oDCW?aB~CqJwRfh zF$0j_L1U4iwg9M(2AKoGpt2n_#tF&`pnL(V|3P#9pfn8915yvlo1nZ5R+E_tKF1zZ z2Y~VmsC)pK531)t?t<6-pzv^a{}0j+ayzJ=0o4nz{06cU9fRaRVjvoZVSE@369>`Q z#6aT2Vo*N?R2G2h3|QR+s>?ur1-Tm(M(7w+E`Y`wL3V)FH-Tu-S`b+M4;m+*URL%W zR5pR;#X)r`=zc&@IRq*vLH2;k3Q(UKGVJX8jX`s>pfU&4)&rH5Aa!6hrKSHtaR6$AfXZ%=x!`)gun@dg3{=K} z%2H4n2AUrN#T&>R&^Rz?d=%tH&^iFHo1twMka=Kt78QZl^}*O6agg~SKG<#?V*sGG z5-7|;?f{t!YEQs0$S!0I69pf)Wi zFM-N9PSY<2G7TU;s%tC zLHQQcF9p?Ap!yNH9tHD3^%hdS4H5%kkX|qb_5VFQz-Rw}(h0~M5C+M?)PZOa28qEi zIv*yEjfSZO)1ZBR9vR{~KgKsI3616F_+pl>b09HVn$2$l~aHbUBbbsTgcV zP7e576p&wF^#-Wi0M#j=ybkg^D2&iCNF20A8&v**>NZf@2s9o53Rh5Af%-L|@C4NX zpgtg|odl|DL2V6?`Jj3M)K37_0U*0TbtFg}8H4J6kT}SE5DhvT734-x_<`IDDuY4c z50VF|1@S?38)%&esC)vIO&~tVjiCAwqz2?B(Aq7(j1C_a;x#vJfM{wEz zwR=Eu3EEc;>H~t}4OG{H>Rzx}&^8Fj43K+3Zh&DB9|J?xgY<$h$j>0NU>H>YgUkZ? z3*;wQy#Y!ip!sl+8$e|}sDBJ9n?W?F-T* z;SK6ng8T_;*MizNpnCv8`)NS^Sr7)b6P{SPX;LFG88%m-mmeFMr{p!0Y@`5)BY z1?5Rl`wxUc=XHb5xdEj~ko~aw4CEddhSgu7I0A`*_{bO}2Exc<$ZU`t2qTNZ*f4Qi zG`czzep1qZP{sHwBKxGEVpP)DcGL1PJ^{T8770BQrk!V4r1!!W;q_#ieYEn4ss(l49XKAb3pk7WERNXAU}Zo0@4S{&!BT%K=~Y$_d#R&puMo5 zG6AFqghA;5)NTP`P+kLt7f2jd#)9;L+J>OCGl~bM?gxcCDBptCVZg`#k^04;G7eN% zq1U0<#6W7m;-I?K%?-Sc5LD)a;u}=Yf#!cfWdaz(>S3gI1XwSUILJH@#w8AtgJV#C z-rfB_s4fT19%L2iXT=!_^|$36cYegY?CEc>D*|S)j5VlutnQ6ex{?@(XCK zA1K{}@&%|o1?30OSSd&yNDZh=1ND1AYC!Ymp#CN(Z-df1$UUHZ0&)Xro&`jMvAg?! zP`H5X2bGbadJt4@fa);NnjBDm1NBKk^q|pt1zyM^OC_ zDvLn%6{t)DwXHyXJdoL-aZ!-{ps@9`u>s#hKe@CNJbn)Pv&hbV2zR)OH1>Cr~;9?bQLLWsn;|wi!> z2iXInL3s|;UI2v`C>?;}9aIK@*r0R*5(kf`<>Y|xxCezXD1Ct31EN6~#s<+K3=)H3 z5FdtNV%TVq8jv`MhG7sN8H2=;`7kyvanKkKDD8sc0~8jZHA0{`no&{lACwkA?SD}J z9b^tDeSqqDa6X3aqXDh!0i8JnYM+7Bfa+(E|3NeeBijpNgVGsDEl3X3egf5@p!5I| z2g!rXK&D}AkQ+eyK=BC*dr%n$3VTqw2udfQ`~d31fa-H>^*^W#1GO_iZ4^-114=KT zwj(ItgVHCc%?XNQSe%0Df6zDxXiN>120$28|AXp%c>Nz01>PqDN)Ir7p!y$_MnU;< z6c0=r02Kb9@&Z=>gX%VHsq4-x~FOCYns7^)wn z9vcR!hl%52gXEFrKzz`=I%quB)zlQc9{_GA9{a#%K*uXU;Q(?UD6fIs4NBLb@(RQU zm7$>g3@V#J^#v#&g2D`xuRv-*X&Kaq1<8T(G^lO|=Q|4v@cD4?em^W+k?Ma?9tDl> z!RiH2-UPJ)KxGIh-+?eF4<3}cyf}yklIsE-L+^8l)=L1u!&7F73w#*#th6sX(;=>^dsaZud|qCxd0xPArIr_j0;ROf=! zg6edT97qkQ+ydDHTBiweFR0!JtsMi|2WnS<)PdB4!WtB3AoD@t57Gx3%ZY&AT@CUd zXq*C6rh&?RkRDJQ2vlE#>TZxe5C-W5VUV9eW`k*HzaAtHY9oL!Ob zgS8C+s{d<1_y0iG^?}+Xp!fvEJqUxs4TM2$WLR4oBo1;vsQm@1UqEBiAV0$}sQv9}@mj_{xxyW|I_#hgDL1`G2?m%%4O2eQ$333Or9vB;> z9)v-9Ky^H5ogOGoKzR?8en9C36y~5j0LoXOG6EY0rA1J_0HsY(83bzAfXW1rI4G}x zXwcXYC_X`P48kC@L2YbMJ^^8H{T~_%UjGMb1Ay8tpmYs#3rru#O`!Y^3eQnIu=PKv zz5`)U{Rb)wK=l`>Ef4BbfXW(hJ&C6t1*w5!P<`s|{vWiq4wU~vWhv2hG1Lx1_94rI z*&sVTJpO~qOwb%YsC^1*$AJ6;cNf%b7$2+;IvxOGgZfgSaR3kvDyKkZfa)Sp{SFEn z&{`x=UIf(F2m9?s9g&xXF+XVPc8lxghgEaSHP{ zDDQ*XL7=b#u|XIl2kLu(`u?DB0`)sVVF3z9P?&+_Kz(XZnEVFVMo>MO_2A`V_T0aIVe?VabDtka}HBj3Oq#rc? z4J+3`G)N3&HmIBf)tR7l0P-IwPC#WYDEvWXA4mI`4!YR1J${p@)9&Y3reG)b}J~qfWi?pwgO5Ipg08i12nD*D$7CX z3xq-K6EKGM-$C^VsICX~@j)1*7UXV_-?PKQ{)6lR@j-PzC@w&4gtVZb|DZMiXpJ4H zO=h5~`d?Q?<-e7_{(sOs2dK>h>f>U?wzmI4eklA1is)NwX#A+5)4N-E?F$d6^Qc!&a>bryN0{H<%qqq@jE?5kv4^%Hh`{p43 zgD@yhgUVr0-45~xsQ(Ho!$5so(D*-S{124&L2@7rn%4w{AxI2FgXBSFILHkkKY;3c zFb4S_WS_e`c+CPRPk_{d>NU{5G*JEpR3129P?K7-+v1sNMtB|DbXJCJssypgILqhJwl#P#+1@P5{*j zp!K4ldJt3>gZe0-dKV-Qs%JrA12PXr!`QI40jMqqm3^S_0qv~>l{cVzA7npBKdAl( z)xRLKK{Tjd28o000o9ox_khw2sO<;}Q&8CpD(66IKz%$AjgDbl zdqMg^{XS6L3@Yb9Z9&jFNRU547&JEo3Xcfr{eYmd5>!`!#wkF3I1mQ))j@FqDmy`O z3aVQ`=^2z>KyC)jL4(pH$UIP+3S=fI?SU{TAAm4O3?v5{kAt->Kxbfr)Hs@${MS)d z{tp`O2c>h6TR?GYtf~3m3%T!aZ4F+h3R?dUYA=BL|GDw;|3P5}QV)t>d>CXuD4ap# zPar>nFer>^fkEj2W-c-tSqxnqoexqA5(Bvtj1v?8gX(@zA0CuOL3J`HzCmLupl}4m z4=AodeSJ`w3MyMc>jXgkZBSbtWERLwWDFAn(I5U zI4IwM#6cL8mf`VkVF7LjV$}a(Vc`BhNH3_Z4{8^H(j!bCsN4gUWw7u9h1n>kZ(9Hq z_MoyGl!ig&H>hj@)hnR-3RL!k`huW(62u45AdJig@j)0_45SYv1~L=0-WN0m1v3+5 zKC)UE8%BflA!C?0jE2d9_{bO}4&sB-IjBqpr7^I*9vH)K2RA8O0S?i4631(i9VvIkT~fcgiZasu4f0IefVOa%8IK;;5x zj1q)FYC(EHV~L=3V4yM?R91o3EP(6=jrW1dH&A{Bjq`!(1(5%d{Rv}(`s*M$&{{Z< zzd_*+k^}W`LGA~YA)qt{QU?+TVbItJXe<-tACNq#Tmg+cfb@dKu|ef3$X_4~ato+V z1z}J)fG}vhAEX9U=Ysg4vJh17gTfG`ALI{^dXO4WSoMJBNOE(*YxzLxLE<19G@lEK z15liS+yyE#LF>#xZ32+lAa%rGkX;}QYFmKn2T*wjN;{ys78G`%_yySkYWINb1D(YR zYTJS00u%=zeW0)c^(R4X4N$uQROf@*A)s^w3RhS?3+hLM+)4@t=>^#jatEm21{!BD z*3bag``XIN|1EWO;cHQB4GsV6sj2K#yf4is0gIt*NA;W%R-BnMIp!pLk8AB16IFd8I=j*;b%*~scZ;vftY1F=D4 z6Cey?gYpe1zku43pu7QU%Yw=QkUVI84yb$p^#?$C4`c>NEhuh5c?YByBnC1EM8hyT zA102E2IWVPJo5Mf$Q%#`xdkK#vKy3_L3KVT4T9Q}pnL@?gF$5#XsicRw}a9bhz4O$ z9z({U`3+DXACxyieF0Fu1)UiTN}r%M1E|aawI4ubA}GIt;vST~Ky6b{ng#hAgh71= zko_PGato+E4k`ygX%MClG$sg2;~??TdY``aJ}kUJVGl~fptt~)5uo}RRBwUmQczh1 ztN%gq4ZV6)NceUKPvtOBGSlqW!Tfa)4hJp!7W1NDbN z7*rpD`hcLZThO>JsQdxtFHo5SYPW&h2x>!s`huXb3J?Z`J!lRB9fRBm5(D+$Kx#l` zIVh|^VFOzG2x`-V%mdXqV70ck;5Ct;adeR1Kw$~;8z^jH7*sxh%mmf0Wy`ZuLl%7C!K1dH(y{#>HUjb+i9aOG>`oQ+#>4H5_ID=YgCDkDMd1yDH- zs+&OJ2kN7N+94owL2Uz2y98t(Xgmg_4;h2hfH25RP`e4VrvQ|`LE#GWJ19OueQi)2 zC;IvQ2enB+bpfcY1!~WL%*Se8Q4#naWY9P-$bF!`Jt$s5^))E$aAA-iK=}-YLH2{v zJ}7QMaR%CV4;l{!wKYKfQBeFELF<1|e1Q6ips=^l(E+y!K=S|~4C?=b%mK9lL2(P} z`-9pChH7g6^;A{=!|H#Ky|~;4+CK|QGobb+sBH?Wzd&^rG6vOQ$b1kRT@0NMQUk)+ z#6e;pj4Ti1gT!DMBnGNiL2(1BLqTo>r329X5h(A0(g~=|0%C*GHzi)LG4aZ{DRB?)tMl3K^UYKW+#XS@kzxXw}IOAAUi*S z2{H?056FBlMjnGlV#Ccs5`)=?PY$LAWDn@xACO-_egf5LaC>29VypYz-NE%WC|!fx z2ckh{fy!_Y2Ju1WfbtTE4N?QDyFnOaH^^{YazDr~Ft>x|3qX26_Jhm@#TBR?29UmIE z1hNZM9)ap_P<;-R3@B}Z+Mb|#7PO8M6fdCg1&t+w{0NE*P`HD} z13+Wrps)drVT0;mkQtzUE+|ewVFJn%pm+e))u6D4VNhEG#s<;Id=MKQgY<*K5ac${ zI0MLBP+I_$$3S@nR9=AUXHcF6wbMay0CFd&e*nr;pf(98ZG+a*fYgK1HYiPk>Uz)` z1<<|(ke@;M1(aVwX$e&Bfcy?x=KyN|gVGzw4p2G_+bYgYp5W z`~YE4I{*|`pl|}Ihhb3q2AKn@gGTFq`q%y7Fb@a-uM+{qAqa!&4^V#%R)=8g|AXW} zbsjPXi-G#zpmTm)T>gXVCs;g#XiyyhG8a_-fa)I%z0kTDWDX32)PUH?G>8quFgXw( z#D-x|ngaDnLH#07{sh(6AUTja7zXh{Zh>JCA2j|8npXvtzaTb94pd(vV~`lgJdhpW zy57SByw?#V29g6|kXc}iRM#V$0b_&Ig31a|{R@fd{DgsDyu>LR!}_$avMkwsB8e$bD+Aw#l!@BhaD)4LG2MxnFOj^L2{t- z5mbJH>K%|fKxHSWE&!zi5Dh9PK=nAtPoQ!J)Sdvv3&>3%J3#&i)mtDMWG^U8Ky@#u z9tPE|puRC^EE80=g5^s}z~}0K>TXbd530XG;-E4QWDiIjWEZGx1l6CQIe5@~B*=VF zIS6Vufa+;b-w31^qz_cif!YkyD=NVE0)p%Xm4l$ZI4GZh+7O_;0rE4bTm+T>?KwH% zb`99QrKSHtc7rg;Y*1MZ8pi?6lYqh$6z-s~1htbvVE{4{6qcay0l5)GgX$Yl-y38P zDDQy!@t|@QRF;C`2UI73;tJGG0=XUJ_X!0B;PZ<>{sQ>{WIw2U2gM;MFE|<*{Rf$s z8xipzw1*I67pOlEs?$Mh|3Pa3Ky3|By8yHf5VVKiQb*^%ftnh)Z2(dS!=U;fl$VqI z{lVj5Aoqjf7=%G=5C)A`f#MQ0js;4uxaww5-H9#-5(8n7I5LgS2Jt}{mpW|XAoZa7 z9+a0rZUohfptK5dBPgwa+G3#a0@ZtkQ zbgnU|T?ne9L2XV@Jb~JSV4Ri)Zf}6{2PiLsXpkCYHi!?(n;;sDGcv&AWuWmtP>+%gOl<%7dVM1@a#ZgW>|TE(l}?sJ#qIKOi|! zy$)(?fbtiJ2BmpWc?hcKLG3uuxCkg+fzlbM`~!)DFer>bYxqEE6Oh)x&rv)uZ2(YN1S)?(aRW*_pt1%e2C5H0G^lJQgu&`S z^*?AIy^|BTJ^{rs2!qlHsH_8xD}eF~SS_@^hnWi!17R2+8;wsMSq@|ms166&3+mf| z>;(A*Y$no}KS&H*7lZod?(X3806}#FC=5XTFpwNv4XiE)(NOiE{ysymFGvr_Y*61C6h@#t1FGLZbq}cD2*RK`3{=K|@;WGQf-tBq1GU>hbqc7@3&&`C z{lW4D1^;0*xLzwP{14iz46*~%w*j^FKz4)5a8MlvswY7C8-zh+1E@|1m4~3aaX@k) zw}Q$z(0Dg!EDtn30SaSKeF0JnGQ+{x7<_L$sB8k+16s=l(gRWhvJ0dhl;=Tfg+S#7 zsO|X$jM#ibqna+AdntVx&oy|a9v_%2EI1} z)K&t87w9f{Q2qeL2dLfwjfaBz@t`;Ywe3K411S7Keg?$_s7wd>9prvc+XZAl$lV|e zT0a1yLFX%i+LNHL0>v-L{h+!F6n>yE0+qEk`uhKMRaL=z{;$z7L2d-4EpU6(&JMgD7Zi7(^a*kw zsLcQ>GeCBN+J~U{2IU`6`T>c9+zW~ykXu3N7j(WKD8GWr8&KK>u|eq%H0J}(H&#~v zL1_YH4k(|2%m9T2$P7>zf%;mYumfRGegR=n{sy@jRQH2uQ2mddPC#J{s%t>u1xk;j znEv%YsNDu?LE~^fZFMxF#^z>AE+Jy z)rTMqYgd5kHBfl~8oLAaJwSOJR8NA;2I&Qr0iganXq*w$#|4#_pt=lXFUTBF`30(X zLFz#90mGp7705hLodl|%L1u#d2C7p*{s&=@9ia9PsN4kA{h&4isJ{ei|A4{?P`d>bMxgWv@;9hl2H6AB59(Kg>U)qIK=lBq{R65?K;sgibOX{03S&^%fXZx8 zA0K2ED84~y4pjDn%1O{T4=C(F=fHu=YmomzcSVBAWsti-aRSDrrQkb*Kye7Flb^9LOCYKB(OWy8mw~$RC-R|3PjB*$Eoo0l5b>ZUCwWK;t?#1_uAt6%_u%>V44q z4^Wv6YIA`4t)O}m)aQrQ`=GiXq!zSK0HhbRma!o}|9^g1*nd#`p~o*MO@q=0DD8mi zI#Ae=i$QJy=|!etY>+rMj87gW2Z}S$`VCOp292|T;s}%;LG3b7A0FfABo0a|AoIX=cwF3nkY7P(HG$$4l>R_%xs-qa@I6VO`Wn<%2jzQE+6UF+ zAQ~Bi%11bMaRHwl0!mMycm%lzgh6c)P}>=l*X)gqz+*2UvqA0y#V;togWA2IbOmak zfZC6syaXy6K;EZfz}#~*8TLa`(a@Ys{cW0 z9~2j$auSrTL1h#OgV;pXyP*C&wEhQ`aiIJGi(?QCssljj8Z-tAO8=nx6vT&_52LZ! zg-;GcJ*a*M&88bbq>Wgz#1@)(E)wHrWg z#fj1Dd6>C`Xpp_`?*Bn{fWik9&6s7(PXQ$cot%m?k?2i3W-dLLBhgXT3sc7fU|pz;k=K7-nzpz;y4E&|k70+|c0 zAB&6sgZj{*@er_{vNG`80Vpg$Wf#cpAPnl4fXXybnF?|XC_H9WRe{G-LG2Mx*$Ub} z32IA$>;knHLG27sdIQZ3fXZ~xcqgbV1jQ{V96Uxkk$lsuH9aL9?{09nuP+bEmOF`v3D7}N?22?+Q@*Ak# z1ZrP^<{m)epn4qCzX#Fscz9S2iPe64SsQ%9m z4*n1FD=2P3=@^X7%)omEL1709E6_d*kl%^HAiI&(f%qT{5`)noHaZ5$fiO%Q#)i=_ zabz0gM^G4o*4BdD4T?ihpBL0$0Ob!*zZ8_-LFz#M0L}4$XwVvYP*{Wf49dTtdAcMY zAMhSHQ27Ze*Fb3qREL7w}bKw zsO|^(3*>K5eGhUs$ekbz%D?Fq^cAoGwhNG~YO!s?z1=X=gYS87tc0<*G<)C8#pfn3Q z3lNl+LE@nN0;1u5gX#g5^`I~aa&r0)VuSJ*C~brC7)o0KR;PpX!PqbwNepBUTpvgr zgkkECXi&KfDnCGdCD7a+s9Xot2cWtNghBZghCzH%FsLj5)t{iV?m+n+lqW&feRKA1qKvrnze^5OE zs`Ej01gNfrVNksR>+^%g0YK~iL2Wxw9s$jV1UNeW2c7=|G9R=~02IF<`#=~J{-81d zGzS7|SApswkh#cpFNh5i17R2&Mk9;C*dRG%3=#)nWHDqmHaT=LkRL&A1of3cbw6m$ z1IVqQwjC%uKysjP1J(N=HK02ZKyeEa1J!|`@Bp0+eS!=?&y& z&^QFh56EEwiepf_1ymk@)PvF^C@q294NCW*G6s|r0#wG}tN%fH2jnM^nIH_ZA5?aO+ESzSKK<)`SeS#_yr8%M zm0`&BKd5{Gm5HD@LdKwS1ep(KL+gK#IiNNpD2|aaC=G$sg3=C14XCaK@sZmAxXeZt zhp}Na$P5r0hC$|m@(PFsm4~3b2^!x7*#}kwtAjz~{?L7Tp!5zJ^9AKIP@4f%ri0Xi z!vLlpMq{hbp<*CALHa;>0)#Hy^WAC%w7!Jsi$P~8JE z50tk-eLhef4Jxld^)aYE1l2j9dIeN}g6l%iTti+Sc)b8fAE+(|^$kGz8B~XX>Lif4 zpfVI>Ca8V~^Aa{Y>2PzXmZA;KxEhx;(Vq)NH z@j&t*Kf?5bXpk7_4qQ;34JwyF^PQmb6jc9${137NR7Qf_4~j=n{Qxo>G%f^c!+`7n zg)69U1FA1TVF5B1RJMZjgUkV85F6Ca0{Ib)p=Sbv;sB%;G+qx<18Tp(`~vbbXq*6K zE@NnkXfMf|LXJe!TY^H=?bIw)3~RF{J0)j?$j$lq{`Hnt554-gFsdyqO%9stD`D2!kj zBo4|8pl}5BSwMLSwoAOz@Tyml#f7qKxTq4C>?{!#?ktJ;Oc%*8vryu4vGsT&3uL7;LK)L#MV2ZaMD zje^?6p!ABO9$LqP!UhAw3aSSvt^Yyu z-k|jWpt`3qJsrHa1JvgO_1QpW1E~ED%ERFLFh3u>wjIpQ%li*H-yc+8fH0`u1C`;R zasgB?fy6-d7^r*ziGeVvz5|63s2l@@Ge`_H-w3KJL1hi7{s)y|pgIXu{(;*5puRS! z&j?BvpuRe2-2q4+sB8n3Kj;`#7lP~ol|3K~D)&Gb)Ybrv_k-Fbpng8cJW!bhVuQ{t z1&3u(5qLfWqz`OHUfzGudIFGrpf&|)OdM3Mg3JP~mjkH*m6f1!3>0UeGzu#FKJrfUK#<=-c>&bU1F=DNf-tE52aW%O$`6qF zpfn6}0|Xk?5m z2J$Cp&kU&k0);oIJpgJO!R9QG)q>a{49a7mcml-@$iK)K6b>K^iZ5gg5(B9Rg%!vi zPxF0Vp0pX#|vxLHPreWKxr1l z2k8Z27#l`|#6apmX$;h60GSOk6BI|Fyb6jZP`&`!2a*SshamUD`~~s{$bFzZ19Ar_ z9f8V8kT_^w7jza0C_F&<29)1HY*4!xG+qWOM?f@a{SGJ(f%L%41+}F?<>YAnKQQ$_ zXzd^9{Bckk0L3SI{SU6Qp!F-bUd6%&m6LEeXuS)n^FV0`WF|bWL1Sa)=Kn(+9l>i_ zK;oc1G9Wua>OplO+$@kep!NV3``~t=$$|8OFkBuw2LN&h$SzR12$Bc4Z=m%*$WG9F zKgbOrzk=p%LHQHZt_R71@+L?ej-mB7oDVeznGf;{sH_E*k)S>kh!4UbyW#4f=78*g z*Z*;G;PqXg{0_?Fp!yR;lY&9z5~zF!)hnPp4Jx-meL+y40@P;#)%~D64k|}Lbv_J( z>OBw!l?k9a6;!{0+V`MwPf*wi$a55l0e`5+7$?*z5mK<0zO5!8kP z`4QxQP&oxsi;O{j1okxKj6Y3KZE-EpgIbaA3$gSfYLM!!|H#~7zijXLH2;$2g0E6 z1GxiaC&+wI{R5+s+2~@(e2_YP7^D`2k=20sAdD^sP@NCLpmqSLy#T@>yFg}v%miUjyB1VNf!ge#uo=blZ3lqj8PxU! z)&HP!4^#$$$_h{&3Mvc1^%aTrFsN(-=>?^EP@M~kXBY;>J*bQW)vKWWP@wb!Dmy@B z45)qtiGwhR4ZSa)Q1IExbe;|87^U@%@ zL3KIE51_ILR8N7*1yEfLDuX~{qM$k+R1SjbUr^lus{cXZ1u7pv{Z3FjA9UUe$R1E% z6jVPWrvXr11xj}yH-YSH&&&j$dx!2fP#A#x1ac?H4Imn%2Q;n#nlAyxE66NRID*PZ zP~RI=$AZ*?>OT+-uJiNr!Q-8vumQDiK>h;R3vxfGyaM?Flny~<8K^x2Dz`v#AiF{K zfx-Y(Z-Uq$GeG)5bu73phxX?|eh1kNtMkEZP+I_WM-g<)AEX~-KgcYQ+dykRKy5Qn zISBFx2!rwnEZ>0mptJ$1M?mob%CDfcUZAiCjYEUN8PqNS)igWGtZ{0VAzgYpC@uYuAF2!q(5HYrFBl-@vT9yA^S zau3KpP#q5%ZwFyeoeyfSfZPIhQ$hmx{67#I8N=j3VlXyHABYb!AA~{f0L>49@(!ra z02(s`(V%n-N?V|LCQw|0FsLj8=>@qLl=eXFOpyOUa-i}H)P4ok`5+ALQ~LRV@2Upn zBT)JS&8>lGP}%|M0fid~gV>-sB~Tt5t^4U)_k+S4RGxs=ynx!WurdTx{(;IGQ27DE z$n*aoapXD|oeh!)&9j5bA`k}kO+fLCj6rb@D)T_~JSbg(_#nGMZUChvSbYz&8-_vV z!tElWJpxk?ayuw}gZi8xdq8O#WG_ezTyI0y{e$XgP#y-21%Tv0_JZYM^);xjhpyKL z%YpbXIiz+3NDoLJ6o#O_6R2DVwE;l>0+kD3v!UjI+z2X1Kw$xDOM~(^sC)+HOHlqq zuM6?Ji27$);L1zU($NoX(4yX)**$wVf zT3Uk7$OX9tROf^8G-xaX6n>!nbf9(;sC@w{^FZMWieFH@1hOCGPLMxA?f~frjq!up z2Ou>d464sSWhO`-)ZYP>ryxDpFen^A?grJBAhSUA7O36^jTeH#7BqeYO2?o&9#p4- z)PU>#++6UuKd8L`D$hXrKs2a)1Jy~Ou}F{`LH+^tb3kboR7Qd7M39?6>OtWFG80r^ z!s~iaT@I?#kuglHxEQ>T0AvrST>#PtG6Piag3JSngTfl*Cy?JkeI8J~2?`HT{DZ;~ z6knh=2q-Ur!V1(51Eon&9D>{qibs%JKxqY(UO{*GfZ_wx2M5J1$Uaax4eC>Y(jmwm zkRL$ygWLndAU?>ipt=DU2GtkneST2+4a2bdAC#^^`4{AVkefj?D1Jfd0c1bOe2|-P zVVFFK24P(4(8WP&K^R?}6h2Hphz9kILE#Jc|Dd!As^>xJ8kFWi@dnBRAhSVrE2!-O z>eGYl1C2L;>U@wJKp5m65C*Y9ZUng%)Q1PPUqIr>7^DV-VPYUQ2!q<^pfm__8%QrK z|A5>B+FJuM7Zk^!Gzp4NP#Oc3Q6M*h`~hkkfZ`XFZb9;(^a)z?3JM2M9SWuj`O~dLW5Dh9nKr{%$ z>t1MI8^p&DhxWHYWe+I5fYgA}2`sK*G$_tNdjmlFLHP$H4iW=l5F1n;gX$HKIiPYG z%F;4Jrpf;RkAefXo8*BS2{i zw5|_S4ubrQT>pd22ek=6S|q#W9!M`JOu!hq zz6Y_Pbw0=spn4so1{D6F@dr@d3epcMD?#o6xd&uFsD1$DH&D6;wVy!k7f|?tXi)wG z`3JPd3Y0Ej^**Sq1>Ic)au=u`2ekn}ZFW#P2Bj-d{~Tm4D9wPz6+m$YG6U3y1@-ws zdO&Uhxd$18+(@nZACxyi?tx*DyFgGvbM37L)TMo@l*)w3WwKxq@?N0|RW?ghz% z>t#@19@;+#i-GnAfH3GxV>dVOx&=_%7GyriK2Tc$;?G;RDXin1t7aY=7Z`okT}TCp!^Oh=RtW9R9=AUJrIo#!_mra@r=O3$En6)5~cc^y=@gTfdT=AbkR!k{z-O1Gf=21=ixJ~JrZ zKzS2176QsQ;Cddqp8#YJDBpwn_%I9-1KEuagVccPe^C1nG|vDs1C*z*=>e$)iG%V2 zhz8|(PB z7zl&wVoy)-UAmyO01`vTpmYY(2kLWz@*QYQA8a4eSOmx&=wdKFs67hu6UaRvJ3wVF z$Zw!@3{nH~BM8I9KLGA<9-=Ojvl&(Q;0M&&ccYxG@^nlo)`X5$Cg4#47 zH-g$LpnDKO=7H=6g#}1ID11O+4zeF)F35i%cY*RIs5}AH%bXD4aq2@<44f zP&|QXP#+mo&w%0O<$Gf&7UJgUU}(T?!hT0QDh3<3gZ19MtXr=?B%jps)hj2`bY-bv~%R1o;tE z=78FaptuIv3u-rj`Y0ebgY<&T1o;~jMxeS9qz|Reht~1f#6fKau%4nK@cu%O8$snd zsJsKMw*!R*C|p2c39=iMw?JtK6yKoo4HW+%F|eCLLjHsL@1TAdXj}y}ZwwmG0htLZ z(?R|Mxf4`pfaF1AEueG+@*k+32nqv`A4tVS)&Gf!|B0&q-Q50z(l98VL2YeNS_b(W zG$stHTVVAMD19Sim^h3^mV>cjav&OnLE^Y*kQ@x7tAUAwXpkJJJ_petJ~9T0fiOr6 zM1yfc!hcZP6VzS;l?R}>1J#wFu@zAJ78LiOx){U;)%T#h0+I*mfz`<%`#|+Os162U z5F3m^=ly~(v^@Z_7luK0!`R3)vN$M>fXso}15<~hCNU9w#sg^mKgfNcv;s=2p!5ma z8v;t>pu7kgj{unkDl0+p2g0!Q2193&4)!=Sn!)CK{K?}PFtD35~D z0;miE)&C$2s{cXdB1jK12Dt%L27}rVpu91P>0AGU!W&eFf#LyFR)W}|atahDAU3F8 z1l4mOJ_v*AS!4_o1Jls@A5;c_%mS5xpf&|)juq5b0NDXbFQE1%avA{5D}&M;sEkAw zM`nZSNst{N3~~>;8^Gdd?E$zN=o|n@4Jhw|+yP3TAUi=~Ab*0`APg#-LG?VS4h5+L zVURySWjf4WP?&)9AY)LNf!eVk^&r23`lld0ptb@i-Glfr^&mSz>Oppa!UyC}kUmh} z0+sckIt^Ey2ond@*Pwb2w091a*FohHC{Kdi4cfaqsk9W_4+YhQAhj?I>YIb=evlm? z45~jsbqvUTuyPwTuL)Yi0U9p{m2IGU9F)I7Z5mLS2GS3*8&sBn>;={Bpm+t9As}%O z28}&{$_!AM2nq*~8j$&*_5`S`0@bx3H^KaaPJ`+|kUgL}4pcUP>K9P^3RK>K^n&Vo zP&)?H<^ZV!)#sr00;oL;iZ4)@g6c_-UeH}9Aa{VuIZ)jVD*r%iFoyN-k?VUjHcSsl zAE@33xd~L>gZf0Ev;RQ;1KA0RLy)~73}S=!xq!+>P&k0<1W4C?4w@SWm9?<; z0;ulVJ24@R@+1 zbPa01fYJ}ht)OvYSp5%5qaX~cpI|gd42EH1*l3U%WN{cDM#JPld}NF)4z7ct>*YY{ z7!-#f8Z>SW(gRZqqCtER2D1|q{)5swsQn1aW1zSKjm?1ite|`h8oP<}^aP*p3sMiV z2UN#{Fer{;G$`$Y%miVOI&=&Y$A+<~1Brpm1GybEX94CXCjJNM2eCmI#D=*Al#fAq z43tOG0|LNj5@m#hfcp-hya8Ho2+CKWbPCF&p!fr&V^F>Y^$S31K*rb zgUV1)JqfDkVPYT}lwLq}HpqUEJjkseHpmP!#@wZ%boAgFB(s^>uFfbuLTzk$w^ z0o9A3x*wG1K^UY5gh6#PsO$pO`Jj3YRKI}AF<6-mG6z&{gY<&RMi3j6w?X{{ke@+q zBT#=8G+qem=Y#wU%I~214^(!5$_UUp0MJ+;sC)vs12!%Jav!KH0f~Xy9w0kFZbQc) zcY^!}G7B_z4;pI(r616|CCI&?`X1yDkU5|*0EHQ79269uAUi-~EIHxf;PDQSIiPY4 zR8NBHOgM(s`)D-CJdhfYdJqP+k3ek;kbSj@iT^?20ghK|Yw(%tpzs1=kiDRI0Hrrj zJpt+~g4_u*3sld5(l=# z0htdf8$o^s#V^Qhlwd;jKggY+a0K=BK<>nbLG4`F_&>;fpu7Sq$3gA|r3p~F0;LI9 zT?C@BVNg8CFMV8J_wYaK>Le8c@b2`f!eO1JPb zR8SfRwFy9F2WUJH6n>!c9AqvGgVGA9TmhvUP?(Nl`q%%UGz^L}Q27OlKM)3$OQ3iG z)o-9W7sLmZZRi*-4%)8|njd#{{SWFpg31Qa_%R5B%5G4)1I0OLYyecIgX&gL+=J>$ zkT{49s((TCEU2smrBRTZKyn}q8XExBH8A&p+ySy1gh6b47^DW&=K}c)Ol|9Du=)tp)&}K4 zkb6P%>!7>?s&hbf1V}AN9}I)_XJ`Kh<#&)8P~8tY?*_Ej859(*Xpmk|{DI0HP<;oo6O?8^W`Oz)AU}f23{ZT6 z^n%<6YJY&-1X7EPL1G|tLFEmojRevI>QjRBfXoJ!y&w!~dw}?$`Wdul5ggv;=Kn!u z6=;nhsLltKXP|L(kbgmH!5FE&2iXHs2g0E6fYqm0#>nCzHmLpu zVUWK-<5!?M5LEAj^nmIm&>nn{TS0AEkUEe!E)3F_=I;;gGlTlFpmr^&tOB*oKzc## zH;_G`F*Hz`2d$w4sezdXau19RqCtEZ2Jy+kF!MqEdQjQ}`2%Do$UPtoN>`x1J_v)< zg2t&pWe_OcfySOdbvY;xg5*IMlovqbWT1QmO5Y$1%6lL^ptJ`n6F_ZLP&*JL2TGTq zJPryEP&x+X5m37ql-EIJ0qC48(6|-IZJ@FObcO~fAAs~CV~~BIa089ofy%E@O#k{H zRQG_&XHePzmARlg7*yAR${$d@2a0E0^(#mnSPnY&4^j(C1E78)C>?+>sB8m`dxF@Y zx(`%uf!Z3N{t&3_1l=zVN^2l_kT|IR1og4}?Cs(8Cn(K;+y}A`jIpc*1iJ%T4};Z! z*5Y}1fbTj7nFsO@2!qNekbR(X6=WvJUXb}93}S=kjX~~&g##!IK>A=9nGa%vFh~wW zgX{(A#oE?2HwXI%G&TbAC#Wq9Y8Qjb50Jf}x&~CAf$BFP(Q`pzsEjqhPf~Mc{J`LFz!}f%Jmh1;QYI!)VZ00>}(dn1lD|m6d_dLIjna zpmGfqpP=#%)INfRHK@-ADziXw3@Yogn?7zA{KZsJsJ>$AZ!T$nBsxWspBWeMwNffWi?}|A6LsK<)*#EkJIj6ocx2 zP&|U#BOpJ3`syIRTIlNj2c7k=tD^EBboMW(EdUb7hGF$T$bX=?0<9YXmHD8w4T^8j zxeuVa7vvvM-2|dR7?};?mH zzXhE~1xi<-dJUupq#lGpW`JlI2Jt~@0i*^LZ=kXYw3i>0E!A1qe&2%s?lP#q3R@1SxO)V2ck`$05l?jIEHAid}q)V=_fGa$X7yfBLC zU;l&B52&mG<#AAY0rk<5>oZurij4-9(;y70_d)3k#0KRRP?`h9H7wnM+RGp|s2vKb zt3YW4R8D~M3}{RkR2PCUNDnAYfXo2pH&A^68V>;RL1uv50CpR4J&()=t>5?X0I$0T zxdoJ_LFG5d43Iuh`vx>N0ZQAjbPlo;gh70eI#AvQjTL~@!!U>s!{BiPs2wmd5Dilc zk_Uw$s2u^y4mJ3(wv83bzgfcnfJwV?I|s1FY^57Z_AxgVqt)D8lL z2dE4O&0B!fg2S$~6ukc)q!u(@016LKoe6R;$Xy@|D#u`TD5%Z{-LV5Q4^)PO#zaAJ z2Wq>5(k3{b%*_6S{02I|2$YUMsjT1d4x< z7$_Zs&bX@Z&Mc+@!iJIMU~CwTO+B(0NF4}+;sn%|0o941dLP6FIuN7> z0Kyom%VKgXDf${<sL2(JfpmYI>YmgYI9D`wWK1>a$`~;PM;Ih-){6A>z zAE>VcD*r+KZg5-&1pEi3D^QsMvI8U!%2OacpmYH$H$ieB^&oYib^yp7AhmD|-IE9B zgX(?In7o_Ye^7e@WFAOA$Q)343QE@?H-qYFP#pv+mqF2x*OylkRCAY z;sT!20J#Iy4+de-90zDD848e8x(e+JPnE~keQ%8{-ClKRL_CxFi<`PVOX6Cqd{$a zP<;h53#1lgFUUSnegt7qo&(J(fa)($`3>reg8Hf;J)rs@WDcmT0F{HFG6XaZ0IHin zYC!!EkY7OMBZv=bTY&0oP=5fF??L0Cpt=)eC#akNg$c+Fpn472tspi?3{+-<+ynA2 zsICUN0c1ZYoIn^<=7IXiAag9 zy7w03M^OC%iWiXkLG?eV{R^wZK=l&1P6gF<(0UM5*MTrd97Mw~h!4WZd>9)>gXBRN zlpaBLfZ`J5Cy*FuJsv2Xf#L%+Mgi(`fa)qx{DIVh>Q@*BsfU>fqCtFQ3~D2R$|ulS zTA(@#ln+2<63A>&egNH-2Wk_5>N!w*2b3>BeOZuyLHP(|AE<2!%15BK5D0_PD+q(! zj17b8XwbSzWI2#}FiuVV4_dnbY72ncil8zs+}Rm?)*h(L0hLFfz7@!gp!NvJJs`h= z^nm6i>XVb<`-wn)0p%6Y_#UVp2g!rVQ&`#s(I7KG>rFuRf$Rd67ohSK)aM8J8I-3% z;Q$&-1eN=syS+i>ILIxau>nvS0BWa$@(@TbC{G|`kXu1@5Gc=&V*1wopzsFODSkFK z;JGbO{~A{R!|Gd5oe8V+VKhh#hGAkb8dSf6=F>s_GEh8&(gdiD3W|SlThG_`KPZ2I z>RFIHD4&AlLHa=B#2_&k2Bkkxc?e2(ApM{^9h9y?X&j^W9I0BXBpm|b|8$e>9IuMlCL4E_VLHm6`kQycblT zf$DcqI|7uJK=mT1?gNbzfZ7D0ItMhz0IJtPZU)uuFbr}ZsEh--8PuKu@j+}54XP_a zbuXx01mc6j7F5@Q+y<`uLHq9W^1$mGK;s0UdLLGAg6ioRm6iWN;RGsEOJZaHgUT;Z zT*1--sJ;TZ6I9=W&N>3cHQ0~A!T&+?q98j#_JHbrkpDpO0}3CI8c_NK#SJJtLGgo( zLE@mg1C)+HQqph6jWD%(gmoT0Hsk-y#h*yAUA>3 zfYgKPIG8yw^FcJS7>EtZ6Cm{<49eg3Mn?ZZc@UJBK1%`IuewQKs2bH2gNt2 zOu&Xg@*oUT14^5qvJMv4AU3F;0;N&VTr+6g8C3Ry^nlU}D9wV#r$G8Z`3IE#KyHEQ z2hkut7@M1e&!PdPOHjQ9qCxdG41?-5P?`d%1*KDv8c0_tZDwZRv#&tz z1KA0x13~2$s4fS&1=M~3=>dfW$UUI=0JSebat_AE|3PA)wi2kV08$64H$Zh7C_jVp zF^G?hL1jIt-U8JnpmGwV2NpgcGePbE*##<>Kx5IMauDPu(0XD}-42>31&uF&@+GKk z04n!Dn&^S71`~XzWg8T$h0~UkcO$-_v0fiZ;z6Ql3sBaHyD}dY$8b1KF5kTgH>N`+h zAKdQA&HWEr`wa32C=5aF0>wM1z6W7Y84ALn@p(`ff%+|=J{!o5p!N*N3{X7{G8;Sb{Kz4${4U|SfbGINjgXZ}`M(2aX(ZyhV5Dluo zKy@;xeg(x5D6N9}Fd(;s$`Vj|293vn>N}9VptcmK9t81WW`oQDv0)g4pOEk$RPTZ6 zMNmA0;s%t)L2(VL^FVbsC|*Hn29yp#eg&~X^NOHy1C+i%`aty`Xl@(SrUR7=ps)v( zFQ9Y-YNx>53@U#?;RgzP5C+wqu(Sj&H=y^Xf$Rs#f!qU92hsy-e}Kw2P#p?tOMt=$ z6gHrE0EH9C-yr{iFvw3Jc~G7Lo*}J=g>pNIH zgVGQvPlDnaRF{F;k)Zk?)Xo5{`vbKJKywBl^FZoA=(AogdnLr>vfz*Qh2de);aSf`6LG?eV+=cZ| zKz4!L4k{Bt;SQhFO1 z${@2r_JQ00>cfHh`=Is@s9y=Hvq5nNG806@Fo+LoQ-I6`wF5!n2r6Ge^)SfaAa{b| z9b^ZnYy{O6pfMs)`wOH7WGATX2Gu4O>a!cd)&M9f{?}Gg!r%Y5xBp+4m-io32Y~zls>eWM@SwB`O4Fb)0EIuO%>=4{ zK=mz*2C;ErbTuG8sNMp#Q$cAJqz_~+Xj~suW`QuMEehI)2Wk_5!VXjig3>)mFQ~r_ zqCxtQF-Q!Ck;OsvBq;5GFerXNc?XpKL2W~jpFm|5C@eww7&MOtDn~%&8<=ly{vRX< z5<^ZCpn4UALFoe~4pIZcp!OK3UIpbR(6|%GKcKP;R91oVI;gw?l{KJt4k(?1@)4+w z3d(z+Iv?a`P?`Z@P+biQCy>8D{s7T1zk&FmFafPO0@eGVc|lN`1cepI9iX%Ua~o)U z1Jq^*rBhIT1IdB>2r4H*c^T9O0F5(%@&hPsfx-pFZ&p_SL4632T9E&c!hXFzH|=7ZY1p!y%w-UF36p!O>$O@Y!mc+TC;4ZLm-v>pkRS3r75#h^S0vKv&U zgYpc>evtVfH-Ov=!yq|OnFX4s0J#fPPlNpnYV+X3ptXj`^5}e+97r6BL17B28$s>@ z`3F?yg7OroZUN;zPL zT?xaWIt)~2g35kS{s*lpqg3sFn#VM%%2bDXZIv*4kpfPn28)Pr2OazTdgVHm| z&!D;p6uuxgg4!aWumFwGg6a=YJp!uRL3%-TKB(;giWg8Ag33)$Sqk=dbo75vegVxp zf&2*yLr_`+nFYciKFDkk4Qd;J%mw)aR1bs91GiD~^Z$e51T>cc>g$8jKPc=#ZgI?3gmxK8x7<}PLF)lP81MQ&X#EfBJA&*0#WQF;2-GeE*#im-P?$AkWT4zp2TGHmu!Uh{ zJ~A6752HctFHo8V)fu2V85F-DHmE%c3PVsj1=W8bGeC76u6iG49!MPsgZMBS#0FuI zd7yF%6t|$d78HLV8kC+veg&mtP~63Md4bafsBQ-39njbZXpA0|=RsniGz!9?Z~$RY zegWklP}qaw22_87_OF8Ka!_9Yw4MOuPmudTeRoj$t4mG&4{G;-{07RWptdzA--2;^ zI(UsGDBXbk3%)N1w0{7)&I05Y7zVXPL1uvJeo)!~&>5Fo+F`Com0a3*f_`J%An_|3P&usEz~O zu>#5yAibbC2eoTK`4!YZ0F8}-)^35t9UZ~-KB%4s*$K+mpmH0zdpQJaucYm1g(Px)%l?DaZs3o+9cpMPkj7;P=6dWX8Jm^q!DtX08^$IN8k+&d11QWu;RlLqkUgMu2CDZ#VGfE@P`wGl*vus)2C^4~L3Jd^ z3{XA=rCm^c3rg#tv;#T^08}S~(mAMY3{nrOlR@)4AblXeg7~2J14thnXJq^b)z_f5 z5XikCHi(8{(D{2XHb@UhKL~^7??GmQ%m%enK^Qa^0csn-!W3NR$H#-u{sXxOgkgR~ zW`q0$DnCGZsxvPSyjKR47eM7d2!rAeM1%4SDE)xi#GpMLptd8Z907$nsND*x`#~5~ zK7ir_Ge2htD1ApM{+57eFkjh`UPf#g9LG}i_yXFzq(C?2@_A5^b^;s;b_g6lv} z&;KAAR0o2}QV<(d|AW*K#Gv{gTK9p{1PFubSx~zI6z8z|9~9r9HUO;50HrNZzZPZ> zsN4e8g`hGOq>mH~8iNF-JrD+!Juowo-3}55`46N9H1`3j8$fjxD1U>*sfj^h2(kxM zcYwkf)_(xi<)C^HJVskm@*k9!L1i2$Pl49Tfyx)qSTSg96;y76#6fKZkRDL}1z}J< zfs8@rKB%7pQU@vzLE#E&3xV3;pm`RM{h+!FRBwXT9fH(@%2W^rm7Sn+9Mty&wMRgC z6Xb4CeGjVpL46cZ83-!-KxHndj}NN5KxGrC-2kc=LE#80i$L{1$bF!-10a8Z;vEzY zAhSSm3u^a(>O_$J$nM9+2B`tfDS+$(=>yeop#CK&O~CvDax2KMpfy^cJ}#*I0r?fA z22_TF#$G`EuCkaI@Y-ikeLt(J>OZKy1epo415{pu>P1l4gX(-xKNi%d0?loL#*#o~ zAjn*hnJ^5p1B5~C9#9y7_J)JTB0ysZpm|e}yFnOK*MjPDPU$2AK_FgJ>8A z@sTmIIH>;4kBkJbH3FquP+A403s5=&f=Mzf&2l|3!|~ILHa;( z03Q3#&IYe90p(}V7%g%+3(ChJe}d|MP#XZ0?m^`RDDQ&G08qUT!daoA|3T#hXw3sC zAA-^u41>%Bl^LLN9$gNk29!=fjer0~E)gv<@osL1h$(4Xy`4 z{e84PG;&=EQVZup>wi!g4=NKu7*sBT#!NwWfa(EIIs(Nvs5}Dc1EmL0{}gN=)GiPk zgh6FDNS+uBs(V0nKgi9XdK`4;56FC67*t+?+9sg%3vwH*ZwRs%WCjXG>dO-)4r&8| zFlaslM7z3z#~48V0F9M_+C89f2GtRuavOv}{ZJ4F^$|hix1jt7>Vt#&AE2^gMtS*v zP#+jn_k!vxP#J`bL1N&#zo-a2)(R?jL3KZ!b1oewSbr`6w1nC3S?VvGsP#Xqh2Po`8^C+Nt4OC8o>VJ?P zP#X_aMuO^3Q2PorHVX1L$Q+P7$j!)pKxc#Hp=TC>`u(7`52!2#jh%wR5)^MBj9%x1 z+MS^C1ym1$+yg3~L3Jr;j2%?Bg6cm|*n|2)pt2HFrh_mjoI&P;+y*KeL2XCa7y`&X zWDK$w?fcj9NeN-T`L2d-q`5+9ck3r!EvKv%afz*QB25Mu?tf&B=H3SMr&{`PK z7!RmD0*ZT(dSWmr-GDGCPC)G}P_ zBo4wLHV7lLLH6UqAoqbVNFGKbvysJM;vg{)289#IUmdx*;C?@-EedL*!O8_t+6KiR zs6Pa1uYvLas9XlM4M62NsQ&?4^8-p_ptdS#9tJdj1{&i5>4jmC8K8Y+AbC)F2k~KY z$TTROfzrw-9=N(6R2PHlB2XFt#XG1E4yp@4bvlR!VGtXX2SD)!!eBnAo<_nTF%X8y zgUWbN+5wpfuK%5!!21h9bpXgtP@IG6e^8kLDyKkW4`98Z@p_QCuCCzwT|sp;s0{$h zhafe`=?9q&G6PiKf!qr!OF{ZT^*_i>APh1a8H2w4S-Dyq!tN->;Q!^$h{!Hfa*X{e;(BC0`+M@1gOjdjnjkrrl5KP)W-sq10Xv<wi3V{(|a#5C*vq)J6fh733CB9SItT2ZbZD zogg+i4cOWJ2iXDY>zBvJgWF4>zCNg428A;yj6wA=$Sp^WfkQivZ1(aq%^%$t_2XZ4QEf9-AeR)t^g5nF*-U00q0fhr7y@B!L^gWfzk%3eE{+Y=!{?38o*d@@Bg6quS!b#4+=X_y#{L6;GO?>aQI&f9sdWl1wr8g z@(;*9P`U%v|DZM@$e$p0g6cX@Izz^wdJ2Y-#nIUyzktL*;RnMYJ|PS;8>9wIL(kX& z^}|7J2@nl37gRTb<)P;ifco&DHX5jn1S&T`>)1f)3S=*6Eec2vXuKX2UZ6Ay3R`6T zAp2k#CJy5hqCx6G7+oDMF_<`v2DuG{VfsPhpl}DJF;E+(=7Z8ds2l;UdjR$4L3tY_51NGR*=lYMZa0GTf-tB(0LtT_HUel3 zHYlBe#9V*2GwKG`WTd6 z@L`Z15C)|i5C)kCDyKp53`#?w_y^Ui$Z-uSBS7;&p!5f-BS7sBkY2DoptXdcwFIuN z|3PjHa&r0)TB8K2r$Opr7}Ul9^>aY=HYnYJ^n>y$*bI={kucbOFh2CY0??TqpmG_M zE55zA4Y@12!vsL7!BG3;O-9IM*wP@fbs>XPXrpP2Gt#)um0NDxB3o7?OV*#M@8B}k9Xiy#pm3N@D0a6PZ^8<;4+HIh?1hwZtZ7fi@ zgTf4CA1IzdG>8wXpF!n6sQv@3{{fYmAU}iVb3khxK>9&$1=$C312zou6G%TOd_e6X zP@N2lJ5YH9s#8Gr!2APB53sQtP+1Hz57duFuTMc`8mP_%&FO>cHcK>3?p!5z}gAHmAfa+;tF=(wLD2zaE0L3+E`~wvJpnL#o%YnwPL1_x)F3|Wh zDEvY028ACe>_B-AmZv~vFsK~_>SKe_4`|#QRNjNmZUkYx^}oISe^CD)R5yUq2gnT| zb3tJMavNw&2$b$Y{X|e33sxtg)8IM^%X&4KI+#2%jVuRa!)UlV=v{xH`Vcg}1aT;+HfU@TWDdxmptJ%?v!L_@DhEL20;o<0%}0X90zmZx zM%@nD`(SMiULOoH3lwG`bCEGf4AfQyttA4bJ>>deluh4u0H~}6#Xl%cKy@IfKMpEq zL3JM}enB*d4=Srb^(mMQt3RPMvKWXB!k{sAP}%~O`Jl7}if>R_0o8fPaSU3E1WIEd zIZ(L)vJ++(j0V^1o}T|)-+yinuGKPtP)PwYa z>Sa(G1-S)eAE;ag`yIJn2eFYcQauk>i!2YldjMoFC@etrCCDz2-Jp39P`(1y?VxfR zRPKZN%%Hjs)b9n=VW6=AP&o>!AHZVJ{xX=Ioee*`161dL>LE~n1=QC9_5DERfXaPv z`y1)Z0Z?55>c4=>08qadl$SweAgJ8|8e0IJj|z$}aDER8`VZ>UfyxR{yn*TvFyG(* zKj^%AkUv1-1+ouR{)5_kpmro^d;?@YsE+|Eqd?_8Y)k?a1|ai6?!{OCgY<&>>7aTa z6n>z%0hL!E8iqk;fzlZ$4T0)%keT3qcxfs4oIg<5g2EL32aq0+T_E$j^Yj0M+Fzjh9)v;d77zy2y&!SWzEM#7 z4-{`8J)kxhhz|-skQ$H}$Q)uY$h{ytK>h`V3#e`d&9#E^7bsuB+84crh2Z&OPX3V#Cye>OxRi59;fK_H^V$MuO*aLFoY$P9U5c5rKdFAJqTP$pP>G1C`|<^FjF% z)aC)X1(YU0?I}>+28}0y>QqoXfYJpajIIuy57Lh;1_~1pAA~`2Aisg^1o;!Rh7QCB zwGTmQ9@HKIr9)7?4r-@>>PV0t7_Lc71m6(|Dsw>PBBkGY}sXcc8okY8!y+ zT#(r?dtqk4XplI$7-j~DhS>uOLs0t>Sr2i^mTO&+8kRAz(H3&{LYOy4>mIlMt-C#Wm}#SgL3Il#UxCUo(E2Sx+zAQ`(Am4-{yymLgTg{^UlcU=1xj-uyFltd7!>}X^arZj zKxqaPR-k$TbWbuUtU>iX2!rAnlukfwV(WjrkZe2auT{GeG@&P}qUO9F#XebtZ@p!k{t>RQ7=KA}BwB;sB%v zhC%jUDU2DuX*gX(lpn;nc(Q^9v_g7m@6Yl5Ep3vw%HoCX|6;o<*5`4;3C&=>|N z&w|>Qpl}2E0YroHAgEjcwedma5y;)3GzprQ1J&!GFah}oR5pX=fI#U66knkH1!^yW z+OHsgg4BZg1)#A&SeXXWhmJwz8))1FWDdF-!n4Tuk;L2Q^BP#Oc(`=E3NN(-Pe2V@7Regd_- zVRpl4kQ$KvpgIv`9teZYL#xZd=0n>8Ah&@qSgoroc+MBZhGCd~WEvy~;)7@q2C+dH z#0Iq`K=lA9eS*eNL41(k$-*FaL&yF>ZUp5eP`Lp%)6ES$mjMbNP@N4b|3UQ;s4NE6 z8=!m&sw+VCH>g~JVHh9Op9IydpgJB@zJl1GHFltS9$cps7J};}(0&V$7|1^$3}S=q z2k8gxEdrGxpz;#L2e&(Na=`QUpfVqn&q3{cklmm*KPbsF8 z)pa1fpmG~zC#YNlja7ic3|41?>SR!T3KIjF4+>9E8wFH`gYzAUA;G3l!dXgvZbpCS7PxIdFXv5%C{1{tv28KRP7e4iWl;MH6!##zLHa>y8 zfWjVl7^sd0*#)9OZ6DA$3&>nh+6Lu4kl8Q{vI|u2gYpT;4AjC2A#79 zr6o|`1GI+-R0e|V0HrI?*b>NIWDGJJWIrg)faZ+Ac0%iUxVfM@6=o-NOaL@?57LXQ z2E;~j4@?hKKe`;44|OxBj0Cv@bXFDUOaxF~2ZaOC7-k1_ya3b=0@Ya{GeKbs3I|ZV z3>q^8Kst5vZI2^%p>F(0+7~S)e!pl}(^J9pp|>e*-js z4-x~J52{B&^(iP0LG1w0{vS}E0aR{+`UIf>9#po2#*IMk0I3JL0W>B6y8{;#ZlEv&nFGeqyL~`npfV2> zMlkn+>N-%J4Vvc%wGlx629@cs@WDx&nf(WiiGs`lt!D?>2^voTnFqq4xPoC2A5_nS z>;c&iN}Hhi0%RYk90r96C_jMW9OPb*S@htB(40U1M263 z*4lvl4dN53|3UNrpgr-RH3Ojh1hN~{ZUng>R5yXzAE0&*sN4tDxuEa>)lZ;wgAIe^ zKp0sL#s|?b3`)_zC@+D^Dp2@>(mcpM(AW?NgV-<(iZd7+l-@vm z5C)Y6pz;xfLFE7lgZeRpfCiL5uknuNFS)}0ZNA;vq0)VegxI=ptJ+B4}?K&2#^?POaasm0)-7|Oc3M`5C-`P6mFn$0Mvd0t%U;dL2@7r zs@Fm74p4sv#3u)X#`8eo3F@>0%a+YSKb4Ol#a(jj{N532h>bt<-c7Ay{}UqNXW z%!k#bp!NRd=HPxgXl@>qjzH-L)ZRdkbC8{|d1_Fa1Jz$J`{3q6?E%?=E{4trslkOo zYC#x99@^FbwL4&W8?-hbRDXlig2DifL3KQ+euvQ@HV7m0-Q50z%mVoflz&0xAIKb# z7${$Z>;~mWQ27cf=Rx&0sQv}jhoCh8p#B-Cz5&%IAPicw1FC00YCz?xueCL}F9|9? zKJR3?DRHBdbODi=ZZJ*Zv)^~*tHhoHR& zpmYJM7eM7DNG+&-0hRBdd0o)DUywY=9FSfR4eA?!%3F|KpfVDq2UJ&r{Zvr!A5>VC@}nyqeK>bgUITH&D!TLaR?4UXibjB?x9m2u}8x3m1fXaJNT!G3~uw6w(;JpN(ctFM= zJ3$!aSCBhE^&3bZsH_FK8x%I6I0A(WXdDI9{(|`dM5AMn86dZU(g7$gKHk4%4PkW^sJ?}e6L1PP` zb}ML10F;+NV+5eQ2?__0f52{rtqV*_0-pl}$_JqI1Bw^WJRc}8g2wzoZEBF+p!5Q= z8ySPr5vYC!l~16y0lFGc7$d7Eg$?o-C@p~UKYAT7%BO!j0F*yKZAn<1g6n?|50tZi zK=lcz?t<0Fpt=i&!Qx2uGFTi||2sQ__tb&(fzH$e*#XK2pgs|LT!Z$Tfzll)kAccE zP}u>}2R0Agd{8}$MGU4E<|Y`8E{=;2vJVs%pmYyPr=YersQw50A5_1Sg5BJ}^)tu~ zpt>K_<_DP#%6Fjg0Fap=^TG9hX({*~T2Ox%R2PHFYj7Ezl?6W26I4Ef#6k5ps9ph; z7ohc2pmGjWMu5r!P@Msq2M759lwU#ahviEU8&vLq%05sX4;q&Ql_j9DVo+Zd)E5Jd zO@iuUP@M^i8&Ew7>cfJ{6i^=n)OQ5c9UvNHA4m_VYys76ptA!&?gRM|RPKZ91C5`6 z%2`l522{6$+A^Rr7&I0Oayw{_5hMp%hX|^NKx!~>P7X?a3vw$6gWL(Kk74yb$nPM3 z!Pa7f`YoVx5mfhrJ{9|{UTP&x#;5mwg1!U;x$!WGn~1BEvz3_yKYP@Roj z=fl{bdLLvrsIHz;RtDZP2eJdyJ_5C&K;<0BTu|BuwWUCA2i5l=e}HIY400=|P6ycq zs?$L2WKi7!3R94qK=b*aG9T2=0r?*kH=uGFlpa9-0jUFFQ2heZ3#unT?F3LbgW6f3 zaE9ZoEbtu*Ah(0mf%^EMvRL1M`DKd7DptpfnH zLE~?r z@&JTE`3FRUFerV4@)xq(L2d?}GXN?_K;j@fKv*V-a%y-sLu*23qbu{kQ|5&t}{Vn?$Ejy zE(WcKQTWjMA7mD&Yy!!FFeuG|(jI7iIl4PQYsx`+7*s}p${J8U2GwOCePFwx_JY{R zVjw;YV-v?F22+ntgVH6)?;vqdSb)lGQ27dS3&Q{im2s8!JDpz;GWb`PqDK;;mK53097^*N{<1=R(hG85!BP`L%_$AZiU zm1Cgt3sf(GFsR-K*$om0m0O^BLQuN~l!ibUWFM#;1l6~o`VLgDgX#cKT?#6rLH#38 z7=!wT-Dv9@L28jP$bL{;2s9P|sx!fLA9S1_R9AxPcu=_xas$X+pz<2z4^Z0xwD%8G zPlDt@Z7)z82o!c8w}HYGM1$N5!=SneBo7KlP@4zTW&zm;qCxdMtj>qgATiK*3&;+T zI#3vb+Rvb{1(nU9_y*P6pm+wk0TdRXwgk){u(}^KZUfp62;zg{1XMqQ^nmgU=-eSt zI}y|e1ohoOegf6ypfm!iUqNmM*#T-(fy!)9`URao2nsLISU)IyK;Z#u&w;}dx@QCw z#-O$r=$t-Kegw@+gT|FWduu^vSm@~d2i5x^Y^|^VACxCS_F==|`ad`KKWO|PG$swI zyFl>_N(Z2@0L29;en5N>29*n-GzSV3P@M%zyC4i>!)RnN5F3VJ@}RL1Q2qhMJ18xJ z>Nk*?pfLeZ9SN$pLH2<3f$Bg|{R^T&d~^&m6C@5}gVclK12ldB3R_TE)E)x0M?h`^xe<)h)BmIJ)6&4}{y<_N_k-Gkpfj35egn08 zK<)$i12ldDawC`z?e~M!gW6Ugb3t;T{0wSefa-lv+=0R$l*aM-10)Ah2coHoL1u!= zR8U!jUjC2r2d*sus`o%~1FEY*Y;b)C?dyWdFi^b)s<*%xTHk}pZ=4u<{vW8H3(7Yj zGeGqN$PQ4s3##kU;~TUt2-NogmBFBN3ep3%7tKD97zkst8zc_G=yKS^(AB{BAhn?K z4>UdpO8cO(GfS9pc4=VdX zG^m~g<#$lO5mcsw&ej37A3$XsXp9pSHlX?e)Yk{;0bx)d0%R5_>_A}*ayJZv_@FQc z^#wq6S^;#eFsQBql~bTP3DlPdl@Fl48>kKdmDM0VXgnX(7Xg)DpuRAu?EorsKw_Zs z79p|r?XzUVX7bx67aSn1bsLTVI53097Z5z-YM$ninsQw4dt$^xJP+bbDmq7Iq zE)1%>K=m1@js=AgsGkk0LqTOJ$Q_`t0{I7|4pbL|+6AC+0ktL_!V#24K4g`f0$PADg5C*Yf7-T1m zjg1D$gY=ZJ;_FghB3s_3c4?kQ@ku^nmUK0{I)1pFw^HwO2sxbI?2t zsQ&`$bAieR5C)}nTz;UnI4F!jc@b3BqnH1q{DG_gL1hOhZb11GR6l|8E~tJ2VNe|g z5(Cv)#9**mX#EeW??B}V$P7?h0AvR!AArW^u*Ek_4Jf^W^hAK_Tj-br%xxIHNUg4_$LyFuXrat|mxFfgdE4{|4rhO$9=K;a51^FVq)`a$Ej zVEaL94cy(qbE=@RYEXRzssljv0;qlfVNm`B)uW*H2dFOr>c@fF2B3Tn>Vt#o0#I23 zs+U1y)u8$dTmA+40TkAtassq(4b&e4VNhKGDlb8OM9{n-sN4p%b3hohCKyzPf%Jje z0H8TYP@I9*m4n7ML1hu>{2Wj|2Du+ppMvUEko}-`9%u~{$X-yL0&**;?g7CVq>Uq%E0;pUCwLd`pDv&wT%gVs_>Vd)% z#0R+#RNjI1F@xrvK=A?cAIJ@$um!mnf3`b$ZnAPVHhL^ zQU~tK7Zv>n_3=RMFHl_vaudibP<(*+pgtU^&kkxMfY$1P>UVHt$1%*AxeW1JyN?)M%8)#h*C|p3{4QdaA+zgtx2Gz5mx{MqQO4p#iF^C4414^49 z3~Hx>XqcHGIc#j07&;BAV?pBxpt>5=t^>Il6h^o(NFFq=4Qi)@(if=R25L`%%mA4M zYFmQSLwY*+TyButh{2%n0ksoA?f~@*K<0tU08rS0=JP;&kl#W5d{FuTDqBYJz}5M%um{y2pfUv%H=uF{R0o3U zE)Wf?w?J%A84t$Lx)&^l#D?*~G*bN!Di=Xz8z@bJ(jvJ1=jR8$D--4h5DjW8gVce_ z4A7h>sJ?{Pl~8-Yd?*`i52((C^3mmB^628od>9)=t&0m}?Sq@!f6#b4C`>^92DuFs z9w4=F46W<2@nK^Kp#CPPtOJ#+aCOl7A5`{&+yE-4L3ISEJ^_u1gUV`9od)VNf!g$- zx&m~5EvQ}t)gz$2^q?{pbe1eAZ-dHIZ21l(2eJcHHh}6FP+b6OOMvQsP=6KF2LYAK zpnf8#o&u=@sR8w;LFR+lp!yXwE&!rIZ2*uyP+18w57cG=)tL!iUf{DoLH2>_El`^Q zV1&CpfVja zh7GD8LH%n`y9pFVpn4TlR)WSNK<)swM?h^CP&|UtAE;aerFW2fLFF1~tOHceg7ky* zg4zxsyFeJ^W@HR<3y2S@!$ImmbuXx&4vJ?`ng#U%LFR+nPar>m#`QsN2bm4h19Km! zeE|wb&^$e;O$Kahl4?5QfWCy7J z2e}R8ZV($}AE-V6?e7J-8)PO7gVq9q+Gn74E-0OY>U_{x04R(=?IqCuKhSs+sGSBH z#{k6_XzU3a29N)P_WyzQ4+IAO2k8T0P`wFitANrBXwM`lpM&B9253^$ei; z5fm1rVo?0!!^q}=)RDwbNC4l{2TEt4I0d;GTONanf#gB)2r4H)=?OG$0IHiodow}x zHz@8v;-E1wkT@uPg7P@1zm64y_W7rzfad`~VFar4LFzz$0FC2;@-S%Z3si1`(l)HG z1#%B4%)x0Jdgd2M3>ky`gUrXr2B`&=#~>P?I%4ENWhtmE1i2ZM7Dn;lsQ*Ff7LUq@eT$(hqVA z$Se>I!eFzZ^*uTtn;g0tbUsWEvN)LS>I!xIM)Ex~B$oHyo%A0IjI@*XHYLE@k>M^O0#s>?y`2~fQaDmy@BGN>$p)&HP+17t6V4{D!- z#ymmw1E_uj^(#Q-AZT3|NFB%=5FaE5>RW>9FpyoKvK>^{fXaRl8{}7zdRYArYUhB& zK=nVUuLLRwL3Se7|FHTARCj{fL7;E}VNlrz3MWuH0nPJ*CG7=;Y>aTN1(6(g%>DpLF>T4?A%=N-OV6(gX(`90|RhBALJKMy9rb$gW7|jwg{-rL`wY+ zY8Qg)CeYY3$jzX<1Bw?=x&gI~z;R$|`XA&r(EXF3b||PX3`&orU{IY7!ua%n_Vm0Hrlhyu#uL zM1$IJAPmZF<=1`20VssGSJf3xHQG+8qGMYC+)xN^7970r>;H{2%2HOj`gHAD}V|6hENy5mfJj z@++v`f@5f%3o1uQ!JxbVs{24`78LiO^a&bk0NIHi-=H)Bsyjew8q`(>*#j!GL35oj zHi(8{kQ|JSizY@5NH0tshz4Phn?Yd!az7{ygZe5UJ}7M9VFIe_v0*p2{~-T@#@|4F zG>}=K_5)ZiQaFO_0qs);mHQw+gTe$SoYbF~~kpKN3WPU>aqfzAd4jeUd0IzjFLl|!I8Y>+;X{h;x7kl7$RKy^9DU!ZXj zko!S(45+*V)e9gyK^Rmvf-tBa1J}cOdEj+Xp!N!=EdnwdJRVY3_8(N2g6ckydqC|b zP@N2_J3(y}PK;ufFFax;@EK2e}ngCxF5WlqNu71&T{h zIsxScQ27sPBY^G$1lbQ7n+Js-$Xw7GKu|jaR1bsF0;o;_nFn$YC~QG)2CWAH#Tlqg z0!n|Na0a;%l)gdf0Myn3`3Y42gYc{Q2WBh(C|NK%|FO4(D)DNTp-Y# zGw2)ug7rUi{2vtFp!y$_RzNhU?E=~h0&+9Ry&%7X;s6wGAbUaW1d!W7Z39r92TH5R z7?f^7d=L%7AT~0_CWb5zVuRFxFo=x}qsxK#p#C<92BjsCdqHl+he2rzRBnOtJSe(2i4`Eb~z}nKyeQmZv&-O&{z#9?m!q6H=r~3KxTo`2*_-Z z{h;&!YA=G)4=4;l_JYJ|g+XZnl)ph`Gbj&{YY)hsAisdh4UnHl@xavg=;013+d*|R zD1Ja`9hB}s?NpR{4q9)4>MT%sf{d|=!R4Xz0H87kWCti8fyzj9H-Pw{bOFi(AUA;e z2p}`SW)qnI2dTq{L1ut3J~bdYkQxvMu|Z`N$p4@-3qW;0D9wY!V0Ac14h4heAwX>b z&^^DPyNW>P2wPbE2h}^EJ|5_9L9p4Naeru7g6si_f!Y9|wmc|bgTe@u_d($S3Nuhx zfx-in&p~wsDEvTfAqIo`iJ<;DxF49F{vXtr0oDJYzB8yi0<{4^{bW#G1{y;L)t#XF z38V&8K7s0EP~8P8FG1xKsE-fo$AJ2jpfVm5U!Z<9s0;&*Nr1{IP#OZ2nV>Qc%267X~UXWivZ7Wb88`O3H_31%h`# zCm05`VL@zAdjb@$AU&YC0L3dPEjj@2z9xVNW>M@YpK;t2xF>X*>7vwGw z2Bjky2JvASBnD%{Xl!CIIdW)FI|Q_D5_E4RD84`#=4L`PsJ;YYQ2P_qPY0Eyptci8 zAE;adwTD1y6qIH_Vj#7k{0)j{P&k3g0b~pk1IdHj0KyP@M(Bp!y4j z(fKfOSe*%qcTj!+rDITk7hCv)$_`Ll1e8}mX$7ViL}N1_n;6_)kbBWENIeLH)WB#E z8-%g(L2LCu2A%T@JMYKK3%srmJ(gUUou-4E*Df!b@JJ|?KV z2h}s6{sE{Q2ldfGaR}<;gX%NTTr;SR0h*HrwHZKV9cXR@RQG}U-JrS*)V~JRlb|*L zsQd-h`Jg@$sEq&;2aWB6=lF|?!1tDe>Pk@E3K}l~*$*n4K-x)Md0-9?Dg%>Cc zK{P1sf#$hD{bx}94yublbt%YfP`wBeL&qRF5C*v$)Ybsiv!JyEptu2<3Cc5|vK$m% zpfCoF+k@IAAagj%{Vp!pk6*n{fs8I_g)L4E_d0TdpfbOtgX z6he}KzSENgVG=nGeb*pmYpwyO@}O*S3J%N(u(~59Bvc8wVDbApIb56pUxg9Hf4* zU{E}Q)`EcY5jk!GomU1bFF<7nC_jv1L>)YkVF4<;KzSaNCPDo*P`v@G^Fd_@jE!D@ zf$J``Iu=ykfG}JRbPfRM{yTT~|Df_2WCy5E3o37L`59D(f$9!WeFADXfXqY3aPvX^ zZX`Fr#9=hLJ`f*W4w;Y42H6kdgWLdeJE+|bs>ea+(Sq6qVC>-m9_t6O!E)Z-;66X7 ztOu3Dpl}7*2?|4$@PoFcki|fG3lu)&#KHo6&pc?{9#p4+N!xKA0!XzBZKNcQ2h$3vp{tTsD1*4EvOC#?O_M?zd`;6r7=*s3u*^}!W85VP`wIj z$AH=mpz(f?c_9CS%m(AUy#Js&2!=s&p!yP2mxJsA`5#m#g4$-F@CKO+@-Jv!0_4AG z(0g}4ZUnVcKw}D^um|mPgw^MubOiDnXbb@~jsa>TfXoMl8ED=DWFB~|-^>iWzYkRZ zfZ_?{XOJ5};R*^95C*vo#0SL(D6BzhL1_*|gD~hEKhWG6D11O|7LYoSKG56>sI3RW zAU??LMKLk|?Tn26gX($E-FBe*8Ps+Ijs1i63o$_-K$?Z1VWT zamj(knLur2P~3si6|y@)ZXKx@w3ZiC7J~CG8EqC&8XT?r2S=R`DuX~6lwU#RH>g|! zrE5^R398>feOpl7532t_XBIYN6`@L2d!L2{aY}4jX6~fXY{p zIuHhh4=AiaWihC)1nNV9%1ThV3z7rd1FH8y7}{n5>4Ra=8UfJQD<~c)!Jse(g&SzB z9yEpyD$hW52&f+p>R*D!UqN*~2!rMTK=mxBTn5z(pgIq5(AX`g zt_QUXK=nK*&4A8p1dDll{|E6w;-K^c>c4~P7EoIfRPTZMn4o?tsD204b)b1=kQ+gD zGe{0pAAss@(3%2J9SCY;fcT(x0Z2V)-D68u)_+hR98`CMFo+FO59-f@>SR!z53(23 zo&lBFp!MspFa*ULDC|N02le?ubu*~$2iNoY`6zWhSPa?@0QFNr^)AQ_pgIX;52!x} zGZz%kAisd>Wso00>Of|L_@F*Ns9gXW;|GNS$W5U77!=+hb)dQ*3uAa{YrnL%k2tl(AYodt{4k#ZNlgOKNkMOB2ak&uKz*f+R%AzP?-V}2hl`hr1~FJ27>Yvs9z1T z7hAl8(if=w0`*@({U%V^1+P1ybuPNyxZH#;PKXaO7p4YAgX{*?@u0CwP+uNgHd|SN z@3aQBXJ8oAeuA+D1$Y@)G;tqsC z;R{-?0IKIfbtq^I6Vyir^?O0*3WDl<7zWivptWeAvKCawg6ad%xG<=G0oCiEIu+FS z2CZQOjopLhi9!7$P~Q+V)&WujN-Lmt0;rq^wTnPwNud5D$Q+P=Kz(IUKM>Rx2AK=0 z8$s<4P&k6z3epFvmqG0Z(0D(n`~}$us`EhgIjp_|(I7KGbqA>41FcU0l_{V)62u3o z1(i=A`#|9U!k{t=l#W1VgX%j_{~V+rG%pX*gAaq;54u+XRR4q8M<8=x{T`6JL49IS z{}9~Q2c6vvJ&zF7&H;rrsErG1D}dC3_IH5NHK=X_uQwOqiN zkefjmG!6u67lFnkK;Z@Q8_544KY+pz#0I$!)HVR68&I1IghAsmAUA>Pcu?Gd`q-c} z2WoeK(izBH(4Ia}oewexgh6J3;vG~Mg5<4qb^qHL8iM!!gX&|DKS1pgkQiuw0o0zw zhQa-RwDEsX+=AM2pf(C9U4X&@)D8go2NZ6gbc5_~kl#UiKz;+I1CX0QGzf#(APi%J zXlxj!h7>tuJ)rh3Xx%@kJq*hGus8>~ZKPw+xG<t;`=4 z8yxjNXbcWio`A}BP`!nMq5V}*d4i5XWeZFUnGF_$*8doq@_* zP=5uqb_SFWL3+?J%q|#>E{~6oOAm%PZ2h8#2W0-j+#GzL0jT~0VUT~2F(|Er>R(WL z2bHIw`VmyugZ4RrXb=YZ2UItL+FCFSvKNFwZ48hZ$Yzql2F){q)(nH{8c@9oY6pPE ztwC)8&=@|b?giEVAR2^0V*{Wu0#F?Qst-W@c2NBQnl}Ko3qWH6AaPLr59+sq=Bq*e z0=X4bZi2=GK3gX%HV&AA{;&P@4c`4yZl_)lHzZ0P-iOegU-) zK<)&o0oD5;8svUZ-2`$ENFT^ept>6*4l)na=LL;Pfa+6FeFq9Rkl&HR3e=VY)iI#4 z0?>Q`NI%GaaJ`SG-w*O5sI39=FQ~i&nFDew$ZSx30BZk$!W3pE$Xrl;2C6eabucLH zg4BchNuV?g@*Aif1yTpYpgIs#KZDvZAhjT~LFoyUK0t8=QU_`ufWiROHUotL9A{+pg951x&UJ9e^4C`ic=T{wd+6_G+qMoBWOJdC~QG(Q&2vE#TzJW zL2V0Ae1h($0=Ws4#?b3>Tw=Jy(e=alAoU;&u^4;bLa?AJjJ(t>*`>p2rpTpnf>0JO#DsK;;~$`~mg9LFGHR{s;BBp?y|R zy#*>qKo}$sqH$rcysInt-ak-#0#x6D@;)fdfaE~+JT^Ch#6jakpfVJc&OmNKwin$# zkXaxx7!6{BFghP32Ey3Hv5A4y!Z64Up!x>ncF;HpsLlrU*+G5+^^rh*K~UKUIv*7j zjv#fQ`UsR?Kzc#u!__)C{0Ei8ATvN>pzsET4`}Qhq!v^j!s-K%Iiz5aK2R8g*5`rh zWKbOrD$hW5GiXc|w2lrm4*;t7Vf}tkUkg+p!0G}}9}`rMfa(`ey#T6zKyn}&Bo0y! zax17G2dX1M>k2@1GKdZ8dxFk70ks)Gbq{FmJ*fT%`4LoqgUkb!`=Bxx6u+RpA1M4l zRixT0gzcBzr(@`#0G^U zs1FUQ??Geop!yWlmj?L@IJt!T6+5{jqV6`PB|3NfJKPawYW`o8lKi##^*8UHoL3J}O4DSDGzI|bTY$zA zK=}e>e@AZae~=nb{SUGa6n3CA0g?x$2~Zjar4>-UjEr%KVG{@GgNegvkQfNV_%Irj zS3rG#P?&()wV-qaa?>a_2d_T{jrW1tMWFmlY?y$;5R?}{;R#Bwqj+$&0pRsNbW9sm zE`j>0;JP1F@53;t|Bp0p4JuF2F{qwH7X#&aP?-%XH$nX&P`UxB1C@2y(gH{vRGxwA zQBc1Ij=y)fb>L4;h2n1fVh+)Ejba@bxpkUVJJ7O3A0s((Q1(n0kRs2u{T|3P&;NDat5P@fi5|AFEcv_20MwxGHU z)II>&1*(fcW`Jmr9*{VQ4e|%5zYMC=LFz%~gZ2@?(iAMbKw$uydjXa2pt>Ja--0lx zE(G}%WFA;QbdDdH4RRky9<(M8WGBeopz;f3HppC1-3e;nfa+&Zn*y|EA5=Gk(kv+6 zKx#o4WIrgJL2d-u3$h=i2h>IawY^|%NwB%5rvE`>_aOBkdC>YuP&k9@{;Vu;eGjV3 zLGA*D2MB}MAoqdN9jKiH@++wB2g!ll1Hz!N1kLM%;tCW_ptK2^2LRaxY6pVM0I31# z0oezNOVB=iP(2J91AxUFXe}Tp-GjzyKxqqa{f}k*A5_1CFlZbGl;1&p3=jsn85H)Q zzCLK33@Cg-;Q_KAl-EGx7N9mONF6o|O4}feO%7cQpE{Tvhz5lVsBHuqp91+AoEvD&4HS={I3mUjP`rZr3ZQxhq;C`tuKFJoAD}To zPrQNJuo!e-8>pND)o-Bm0!lZa_9Ljw1lf&_LFoiE z9s!yY1=X9NIucZ;g3JS95E~i8#9%bC9Ec4QhtVK05Qgz#G)N2^2G#GNG7og_6{yb- znwtQPWr6Af5C+xppnHu$;RZS@0Hhw&)&cnyRL6nJdQiO%suMu@094`3qKy@vs3h@s z?*fts)rlZ^(AqLk{SWdxsLusb4>AL!A5^!2Fi1V9jsn%0pnYVZJ|Vbn&dCAa&j1Q9 zke^}U1S+RMX$@o-xXy+4w?Sj?ps@u|od?1oHzQ+^7|1S=+d%91K<)#jJGi-KX5h0R zL1PXeb3ye!s9p!vGobb@$Q>ZNL2(D_BZ0>2L1PUdwV-+*W+tc)1RARVnF}iCL16<* zbD;JRsNM&iy#xva&=?3PtU-LxdIHcnf}r>W)uEtp0r>?~Pl3`Ss9p!D1=aPSumb4^ zVUQRoEJ0&1pf(dIpMlaJC?A5#agcvO>OdHz7G!=wRMdY^dIhcZ2hI0`)-8b2Cukib zD9sRC|AW#741?-^7#oxxKzRc+1^~L329$0<{sFa7K;Z$4OArl8GoX4HH0A?JyP&WJ zVGtXHL2M94W`p>oV31xA2I&Fi2hciK5C+95sNMp_6Db&!4oFcCQw#DhC?9~zU{D$Y ziG$J;NF0Pg{DHtAyFuXqDkDL01R84tjT?g4pmYI>Gkop>=?ATW0s2NAQ~ixFK?mC zf%RKi{Rh?gpt=oISAzOhpgJ04A80>3sEo^thydR+1}b+!7*zffi$V1SsBQ$610Z`q z{sqn9g6dCXGeBxUbt!0m8dQ#f)NQY(2{HpzXMx-W z!XR~^HEtkxgT@v>^(bgvHYnUd;REtBC>+4yXKwx1Ju?6wK+iJ z;GlXF6y6|rfaV)O;R$L>g7OhaEhyYT;RnMYb)c{S#Xo30J1EXT;~5}xKw=>EAT=QM zAR1KvgVu+F@;s>i2hIC~+A5%N4N&D&5327$^*%ZV)f=F`1}Hs( z@)XEjpmqz$kDxLElvY6D3Bn*XpmrZi7bqQp(imv%2xtuks4M}MmmqOangO{1lny}{q#lGpVzkB} z`#^aC)ZPcRAwgq?APmaapz#1gVFYp~XuJuOen#=Y)$#bk9#npS`X!)x2~<~s>Ml?@ z11bklFsSZF>i>hvGlCe_|M&0!_bWi@0aUkv>;Tz|%UvKj&|YoO+$N|#1?2~jT`(HN z#)q+~!zPB!47fVz*gvSQ0o75Uau37?m4_fVfx-yHN5&w%APj2nfYgBMdyrmG9tM@A zpfL?l7=!!;%G;ni12ldMs`EkhA*g=_%5R{ukx<@3&-nhhk1v7Wi&CP@fUxE|A|r zeO!>8APnmFf&2>^_XUkjfa(cQ9SAZ5WIm|gf?-g73^E_IZx7TL1oe4AW`Zy%3_yKJ zP?&=1W02XPdKZL2bub8n%ms;qFs{0PLP5cQ&^kg;-wzajAhSXH2SM=wn!^CO2~_Wc z+6SPz7&Jc(id&G~pgIdwcY*35P&)&p22|&R)Pw8<)w`hh1(^xLpf&|4J%G|asICX; z0fj55%>=6NL3KH(eh1C7g4#2n`Vy3$Kxqb)PeE!yZ48iFP*{N0)q%zdK;Z=nKNtpu zF({rvc@0#@f#!ce<4&M911Qac+Et)50#XAq6IB0$?id2u2fFLeMqeL%_Z28?L3%** zFQ7FppnQN0!|VTmfd8QSABI733u1%m;NbtDIR;Rj017uy`f1O}`44IXfWj4I7f2iw zPN4h)if?eeosjS!OeZFS>ugY1!}vI9kRA|DO#BZ@^B_H-aVAh$fabkG^*tyIKxh1c z(k94$P+WoXD5%~8r7c=xP`(8D8I%@4c?#4H2JJZn(V%^>pmGr09&mRDuR8&SJ1E_O z(ho>4D4gJ!f;~gH{0S=KK=nQdgWLy-J6Qb>k^{K`mtK&#hn3ZT(0D1xA0R)D;=$Jj z0L2X`AA-^pDD8v#B%ruOuKPiJa9s(l&%tc8F#%j+Aag+FBPi{H(kiG-C6p#WZUU86 zAoqam29?Pm^I2@pt29-7f?8X#sENd z0BD^(sGI`15rjeh1eLciF;KY)QV%M-L3KOKK9Kn!vtSsc7lc9jL25u_4WRr(EC#s` zRAzz7FHrpfE7L*s52#K9g(Jwlpt=xL)`RK_5Qfzi#L_UmpgIRsW`f3%L1hBi&YT?Z zTs7D%Q2n2m_aD^11D$68>dS%3UeKNZP@Mx(59)`4`VgQ#9;mJZ)$t&`pt=@>L2Qse zK$h1Gx)c?*|2e+XNsn(D*T^T?1+t zgXSASaR&+mP}>Y-KS&&O{t?KpAa{Y!)@+2sqfZ_=hzqH1nx)YQyKyA9burTm_iJ}7AP;k>LwTsN^hXL z2_y%iVHlYYVuLVD4n%{>98i4-sslmk3e`!G)NBAmj&qo=?9q!!XWcN z7?};?nvvs<%NH z#0H7M!V1I(jeUdqX|Q$yNF69VKp3PJ8H3&B>I$}#P~HN`gX$AdSq)-?%mI~apz<74 z#)0ZjQ27q3S3z+Is;fZj@<8*Hv@&hz6MhawDkj2i47>x(ZYt zf$AfWUqR-9`iY>h1oh=$^)9U52hpJUc~G4V3IkBxf{a1+K1dv-22@{z>JU)<3JOaQ z2E{Sx>|@Zn0Z`o!nvVy~ql4N6pfCrmjRUCxm4l$V7-R;>4WN1-)b|IO2dc9{U~gK2Q)SUP7`i!;5CAvdK07$gh74- zaQP@4i2Z=f&%=>df~sQw4l@t`^w zlt)2l0fX)W0Qnizh69}g1j+-T`UV>Y*Z-jLe=PlfSiJ_KL3JCb4FHQz&|Cz_y`b?7 zkpDsT94M?n;R|XPg2qTd{s4^yfH0_D2Vsz(Ky6A88zc@on*yW`RM&(1^%)ueL1x1G z_aOD4GzbcR(3lRWp95+Kf!qN~qo8;KVNhJr1B2>+kRL&HDroN}C~QD=KZpilQ2c=S zAPj0}gD^-fsI35^LG>{xtU&1!GkKx#o|f!6xL z>;lms466S@V~HSlfYLKQGeK!LZ4lRep!_q^F>?J6N{^tn04Ux-^$DonfMHNMf{a0G zKztaD%!Z3W_s)arI#5{;N>`w=1yqlM>JVIE4{{TzTm$I=nFV$OX#N3;!D3K0vb``i zNFKxnVQg%W7z~5dV8zh-A5?#X+zoOIXssWpeFQ2KL37t28dN5N$`CNNxBm|+w?Xwi zIQ-n){)6;`%m?`a)TRNq4WRoXVQdf$(gUJF?gGUFEMI}_2Gx6@ybKcq(I9b9JppQC zfXWI`e+E>Jg6d^Z{ST^3L3IMCo&e2hg7kpOK2ZM>q>da6s{cXdF(}?ZX9R-kZczCR z5(C)w@Y|kT|Fw0@0v42~QYdd z4GLRO7=Zi$qd{dJ$X-zU0HhyO=fg0lt^@fSR4;-ssGfsiP~8uz8$opqNFQk59=z^1 zHU^Kgg6fLtWo7?CYCvpIS_IXBpn4zFmj}fYsE!APC9KW|(I7iPeI}53pmqYtf1r2+ zxfvt|YA=Dz1g+@3aHNt>f?gU1(^v7JCKKA=1b3L|6;77q;k59;@W!VM$` zs`Ekf10a2%`WRFXgTe^J2g!lzTadXR|AN|jp!flevw+$-Ape2<3QEHu8iYY&=olmp z3MZJ^pfejm^*%BNts@4NRUor4^qZT5`!Jw111ifw<;5r-oMQl>_yN@+p!5NXb5Pm= z#Vfe)0b2VHJ^v3>j)2k>n1+u1gVe$J$TVCWTm4VOoDj%Opgaqzb3uI-Q2PPdd=MLM z2h=SfF%Slc!!U@CjzMxDF%S*HAT}}viGeW4ub?s#)W!wn2T*$&RMvvR3M_7C2Oj?g zrG1b*2!rYfP~8ox`$6FdD)T{lKuZ6^YET~>G>4099>^Y0Sq%ygP&o@K^Fj4LXbb{W#)HZ(P}vLWlY;6l z(EdS?eo&nb>QjU2a!~&d6n-H8!u$;?yFuk5s2&8(v4hm1W6-z($UUIC9^_YW-JhTT zAH)Xv0c1a@jQ}$rRIh`=8Wb;}{e7Ud0HAsiRL+9j4{|4HOd3=Vg67AY)6)Kf+72)b z>i>h>4ssVL&BELZG80rjg6eWmI|9`10oB`}dKZL2aRbr^au=x23Q8j&{h&4^DD8mG z;028%fYK6Zya{9uD2_ql19BfoFQ^R&Y72qw1}Hs)XplQWZUluRXxs|aRs_{?ps{*T8w%uZ(7XYt z?FQP@3K9pI0ZL1tG!81eKy@D|-@w|RpfLqdIs};siW5+~43ws5g+bwZwYfZ_;LMu6fE)Yky@Z$W%8My~%sYyUtPN531n4u!L! zeQ1zbp!5bx8=x{2WCzGzko~wYsO<7K_It-FsMBMaz6-z)PTYaR7ZfyMvz-U`ayD_au(!%ka|%04I1wT zV-Ju2pz;+Y4^j*A7swnC2JO!VmCK;=9~2)T`#|bIeHoA*Q2PQ@j)B^0ATdzA3992k z^#G{;0G0EgdKuJT0*Qg@6;OQ&DhohsyFm7V`s|>7DoCDG4608-^&=>5K=y&m2KfzC z9)s)xnFp#%Ks31i&CB}_3Lj9p3o7$LWjmMD@` zK;;z3zo4)HmD`{)2~@s;%mMYc(d&H>A2hcBawo`4aJ>(j_lMT~AaPJV2{Ip4Z-C+l zw00jfcM2NE0M(hGx*t?mgW?L*1_QMXKz4)T7gYX%%mlSNKy^Q;-k(xd_8+vy0u&A~ zcYi1f9e`+1pB|JxL3JSL>_3qIL2Uz2y$;d~vLD0;g$<~!2;zg%G^jlRsvkgc z0Xl~VH2x2&|3PaWQUe43Tj}fncQ7&epA#PbA9N2UC@etrDYm*FBnGbkLF51a{_uJU zWIm|gLZO3#!2MZJ-x8EhKw%4N*hP0L4FOYy#Ae z2i0Yuwhy>Iv#|l6$qC9YAhn?M2ErgVC>}uZK@SY7H$iRyVNiI1$~=(YK;Z_e6Or8j z;)DDL%A2q-0)-O{gT!DMBnD!GXb=Xmkuj`I01^Yq!`cJjdOJM)KPbES9=>^sMFbv8Ep!5bR!@=s2+BP7+gVHKU z4y1n+58k>T6gQxF0@XR7vnpmGmX?}0J&K3h<|0ZJ>Nx)RLBQUAi^U^GY%D4l`I z4^W*2N*l!1{~))4$~#d00hL)GyU{V+9;7hMD>L zP@f3Yw*vKDLFR$Ve2_dz7<%R`Xp9rGogZlFz zJ3-?Pptc9d?=TFicR}Kyx*t?ugVqv)>Jm`h4q9&pTB8JNcYxYcpfLeZc?jy4g6a@Z znGT9SP+ba=2el7Cbt$OspIBH3-b)F}H=uS3$UmTb1gdvHaSF;ypz&#tpFrUQ8lMOG z6%=l;umaKG`aeD%yhjEUo}lp*P&|Uvg6eco`3|c0K<)yS@31-^Y)IJ8q1E@_2iXTwB5|q|Kb0i@D zgT?|uc>|OdK<)t1$QTsXAaPLGgW?Jl{`AHmyFqq>>U5A>L3tmvei>Buf#MV7e^A_k z)F5L}+Za?QgTe%)21X;ZL1HkBE{@Cxv9V#0UQjrL>;cu=;5s}s^gpOh2VsyrC~tzw z7El=pstZ763~0^(lwLq{C?ItpeIWfX3>wb^wdq0m6y|?W_=CzXQ279=S3u^D;=y14 zgVG@=U4rHtL1h9c9e^>c{|~JXLG>m`97Gd?LFG)erzdz$71T}yr4vvc2dXcLNgtqc z6;ywK>RM1;jLlAD_rTaN8d*I|4CE$ooeym@fX2nZ7J6AbK=}mZMvxki9uNlgtw3r({sqyXJ#HZVpt1oJ#vpM}-U5}OV7<^b7Dz9s ztOnc7#yfP2i0Goem!VR7qq4cRIh{T2~fEXs`p_S#0T}!LF4S8`VUkW zgUkl?t3YKts80#1Z_w)?P(6eXgZk~DIucYKfXXyb*$irffXZ@ESpceIK>9)Ug8K3x zyFuqTf&30CpFw^D)ny=gkQ}J}07?s>HV~*S0BRe6>MT(I78Gu~2c=a|ID^_8pn4o+28af!2eqX@^(n}$ptuELkb6OX0)-1GJV0X&pl||( zABc|)gW?x-p8#mg8q`h$wJktl4Qg+I^nu0$KzS3?4gsY#P&xqF50V45c|dIpkhq_X z&3{n(0ku^??FUeq4{|@KJ_pHz{0+)WAPmX}p!5e?qX`Oo&{_h}{6B0BAn2?g&^dr0 z4B86-Iu8hxW^rNU`X3aIAPlNoU^Ix0j6vd{zAvb}0o5Czd;uDF0l5X#o&~ud)FuRB zkXle&fWj6O#)Ace+zoOIsLltqV?bjnptu6Hvok_M!0Yxw;~bzhm7w?osfA&XUQn3= z@*5}(f@oOyAhSVY)%L{Q!ZsRQvrbw4r& zsRxZIfH3IJQczw2`3scSL1_!rUInGYQ9QWoeo*{?(kduVgZe?BG69r+L3JglzJ<}C z`Vm~0qK*H9#h`5ikXjHQMuXU(G6!THXgmm%K0x^wl#fAW5;65Z$ShEK45C5q0htFj z7iuR~Hpq=23{?Zt3swge1Mxv=6yz=#2Gx(CF$S1FL3KDNzk_$W3aFd|^?5)T zRHuXbW1#v1)NTUxZ9r?jKy@uh9jNXA)n%Y^AGH1sBnGSZVQg^ypO*F?qy|*~fy@N? z57ci5^{YT(0jhgJ^&-eTqA|4p589UuDhohv1Yyv+a8Nl8au=*k0jf_yWdo>e2iXm( zA3^m$sICIp2T}{dpgt0)>;TnQp!yY5_k+S0q#l-DKy@By&H_~Dg6dLG{fmN&i^2Qo zK=nQdgZvD`AU}e{KEBKz%b<-4Ajj$SiQUxVruag*OO;>;~19pz;x92CUBy z8hZe_1LOx#83&3}m|H=5KxH~iAE>!2KCuNWAmW2334N--Up=v zP`dy$#|;Wc&{%PViwk&79H>44$$`=Z2!p~E6yKn}GAPY~+MJ-Y3rgppv<&hys6NjO z3i=Q7D=7bg#6j&U(3k-zY(VGxfaZumZ5q%T0FZtQ9UbspfS@}8Kzji|W`NQ%HVm)- zq4Uz9x(8H$z-Vl2P`w8d2lb6XeR@z_gVGcz%t7u1rDafffy6-SV0jA^)&q?}?G;e` zgX(=yxd2KJApd~+%Ah(Gly*RT&|U*jegWlYWH*D-3dld8G8m*5UpRsM4wDDbAdD^s zDKjb67x`JlQ5gkfqx zH=cY2q<5H^n&emcmEGE8-zjT!!U>sk_Ta!7~IXEv-P28 z7J$S+=7GvmkUCKP4yv0$We=!41BC%7Ke}65g69%Jbv_7#=D|Sa5~$1s`3EEq_6zcy z7ii6lnHl(w3{XA*`4d!Dg34IXm?>!f17ruN4-Oi;1(offIto2Gxn6{tl?l z0+lDAddLL9rfb@al0CY|Ys2l~2?}6$V&>A^VodGIe ziNzrOptu9|RY7Kh#%Muh1gH!F$${!PP`wATA2edS)03PANOD6fO+VNiVqQVZ(e zg2EJ3e}d{AQ2pm)X9uo>LE#I+ptWzH`3+FL3knm^y@H_n8X1H90SiA+m?C3Pc!I|0 zLFz&4+d%CzP(1@Gw?XwBXxspFE+Qz6f!qO#H;}y`w}ZwxKfE9*Zfd_ZxJ9^Rnv0QKiVWiu#Ug7ks?o0s<= z)OQEvQBXe;l%7E24WMuXnG5nChz6MpvJ<4IG&=f!qMsjljR~j@2c>n;S-YU|eUN%k zT@OlIpmYW5uY%$Sq!%=<1gfj@A|t_T06}d7&>BE{L&N`|F#r$-rD;$)#)jebzrR0t zuRkbFfcyi(AT}~a76Y{%LH+@iKcMsu8aDyC2h>Idr6Ujqg$F2KfXo2pQBZgf6b88y zR4#z#tw7_0pmqD8dJ*IgQ2hzQAa{cN2*aQ{6tvGDq!-!Upmdnv>-!(17p4b9!!S%g zhz5zlXc!yDN2k%{L3|JfsRLmc8$`n}NF0PgZUOlR)HVju$QaZP0AY|Ahz7MoL1`0I zMuPGVs0;=9lbEs{R341tfvx{R@dWCVg6d>YKNeJ%g6c?6nE|T%;TTlEL;KGlHP|pn z4~jT+?LVmA1(my?bPq}+p#B}mPLSP%;vba1KxHb(T##Epbv&32at{bY_tAmu2Duwv zx4XLj2bH6s@()y2gUkWdfuQ;xG`9}QcOdtG@*{{1%FiG-g2wkjWh}@%P+A7L7i2%k z4!m?;E@-?5gh6cddI%REXodZp#Pvc3}hdu9s`9rs4M~1%b+?2G>;7GsYD4s!n0QLDnW`o_3pZ_0J2ZQQ!5C)AEgX{pg4IP8R7}Wm;g*Rwy z8#LAms$W2H2P(fnZUwmslm47LN>wg8z6G6!TfsGR~Ti$Q&UP&*T3H%J~7XP|WfAb)_;ItYW# za0ZS2gU}s%5ojI&U?mTZu{Aa{bs!N5-H!6;#%N^dq|ul-@w)3TV6lqz{H+dO>^;8=1z%Mpg%7!_=bl zVd5YfhGA+zZUyBJkl#QwHVmr!K^WBk2elx1{~$J~&Ik36 zKxqV&zd`MNkllpb2dcM0^)JYLkUKzb0GS7(K^WvlkQxvMiG$kYuzDQU9ssR#0@dZ9 zavwCu0ir?e0FWL~ng{J;1+8BLjemmr=b*V&(40A_tObP&sGJ0u4GI@fSqDn%pgszy z-wSHTfcPN4f$}xTe<1gQ#uPw&kX}$f3sh!++z*lim0zHJV4(gDsQkx5FLr|Frs_T(4ObkSW`qQ8?AEXE5evtn_buMWB8#L|?G6z&2fa(uW zeF3r)8wSnSgWL$}H-g$Epzs9cc~BgJ`aYoXK2TVI>RM3w3@T4R@dc{8Kw}OdKY+@0 zP`LuH|Fg5fWA>mn2`J29;RjO-8e;&t1w0N8x_=0I4-u%%0;~T)c7f^$Y#6lu0OTI9 zn8s^>xB1u_Q|t{^r@4Ah1JjcJ40G@x(?`32Oc1<8Zdfz*T4f#L%s24aK!0ZON! zyaLh#+8YXLPl3`oDBMB%LFR(=z%a-xkXlgOgVt|>)^CHt0i+fbmmoP%ngFG5P#yxM z(L`_W|DZVnP(B5XlO*{0{kPE7{cmSv^dFSRK>Gne^H!j?EGQ3P!?5}vRQ7}N6*2~e zD+q(cKr{%0*dPpIgX$WPA3d$D|AX3tp!5oMZ&ucSP+Wm9D7}K>1;hr0Hz+<~aX@R@ z)xrY2HWL({p!y!up!HCowkn}= zeN=w%v6R3O!)ytqd3RKU5@*gPQgD^-8#0Qn>FpR=S8(#;h2bC)z3}(Bz{Rh{P zpz(2YbMV+Y=o}qTekYU;Ky?hL&V-uU)9OFCev`@(koYP#FpG z6Uc5*x&)Q?*ps!UfhI z0QG%AIHBZT3dt9Q32%%P(BB>13>yfZULDCax19r1(o%nej2DQ0GRH4Iux3>K9P{1J$P>F;F>(Ugv|#M05;N2eJd?SCAV(?Fo=SLFRzs5tNTXbtEVp zK<>eYLG=YFj6i*8P`e1!?*#b^)Q$qtAPn+1$b695ps{LDScCeip!yl)Zm=3Nv;QDA zsQ!of6C@9^6BI`vKf=_-czOK?)mUyFqOyP&xwj9YOU0D84}LF;F@J=>ho8^M1$Iipf;YVmKHdiK>4L4HWoZ5015+abw5Z9T>nG&|AFcg zP+dZZhN%Im1C2j`(h(>idAkZb0=tD6NCa91t5+Hh^j9SUafv0@WR$asz}xY>;|T z9|fcb)Rq8^vxDS7WfVvbqz7a^tn38Up&)ZX{RCX@f{BC71@%inW`N8G(V%`kNIxjw zfa-RTxuCilWFN?0P#Of4$sm7$#-a+s!@+lkfa)($c?v53Kp50-0`WoRB&d#oVNf{( zvLBQ;L1hid{~!#q6XbSK-yc+_gY<*?XQ1*LG#?Hc+XvM*pfU@zt`Ai2fG{WwK;Z%! zX9cYR0@dlDa0k_4AUko51AyvpkUr3SHK_at*#lZ9530{Wbq8`A0LF%igJ=*2mHQy| zAh(0+e^6Zy5(DLLPV8ldgTf!w?g6#E zK;;=Ien4>#>Jxy>1YuBp1zR5s+Is*BTaX(-c7f_x&^jZKUJwSAA0RV8aRX|Dfz*I7 zJdU!n|AYF>pt>DY=V8?Sd3oTvA5^D;_UD7&^SBDzc6z^`al?z?m!q+HiGJYkb6Mk1g?9bbw9|xlZ%VNch`W@ z5~%$I3NsJ}r3;YRAbUIW^1y8cWWAtp0EHFEy`XUx(3lZu9b~Yh<9|?E0+|I0YfyZG z!U>MEvi^h8C8%u)vI8{60!lj|d5~IA_<=B}oCoC*P@IAC8R#4YP)KK?&w{R3#; zA5V6On!i4Jo>XgL)Nv=-+Q{7$uXL!2)PxpY(AT|tx#6TFv2hkvYwvWgE9AD4> z{-%ci9ko>ddl~BfuZjryKQS})e{Wji|FU5J{{iO4|6O!7{=4YV9(x$*{13M_|DWpS z^gkEmHXnDepE5jLQ2YgQI|yfby8Z`Y5F6wt7zXh{;yFGZ|3j?I{yS@{!`%;J`xxv0 z&-8KwV~`$@S`ZD=2ckh3#74&GVlY082B`(HVHm~-(IE3dG&%;U1&M*=^L#!3qvKpO zF%UoB-}`@IfY1LRbL0O`+Uoy(jrIR0xjOz&adR5QLm&(iobAE+%-6&KobMuREdEE? zTK)&o5y&)@9cFF*KitORf25t&|7d&b|1tK~|08WJ{s)>HgUxZ%)%@>mr1wA2)bM|Z zr72iVn3dUokhn86&${Yr{*Sb^1m`P4=_K0L^1r8{&i_y=Gq4_zouSs||2++K{)5c% z(ANg%DUf?XMYn}zJI_N3VVi7xj4 z?KM>X$J$$i%fY_%uknHYe>$Vp4>f0Ui&|BjS||5I`@z;V_IjyFi0^`s_(#X#W>st-W^>d#2|560=q z|3Q3^nu%Fy|EJ|;{x1y)0H;S#`3iCuD19WkIDpG3P~8C%ch}eYpXToTALLe07);O0 z`j3o3W`W8$P?-i&57LK>LFVT9dHwItO#R;nO%LF3OGyBS0m!eQ_$mtU0q3V+3lnhO z0o5sCmZso51Ii{t^c%X3|(AhwsejYCD@8I~qZ`alT6StrLU%%=6|AMs_ z{%5Q_|37o(1u)Kl)91nBFg{2=eI-cj!vCz*7yqX$JNrL=;feooi%$FpsVUlc5PK9COdG|7L1120g^|>AbF5mLGqcaFZ?G4gW@Y|^`-yGV1J$X5AsXe@^k;wSDYWk zLm&)5c`9M?ssBk!PJ=NheS-2I3cdU+I8UOApZ%W-5?_AifAZ2Z|3Uc$lAe$MPgr#F zf8vr;VDZ#tXaA=xJp)efptKHB1HvG)h)E+LJ3#IO*#TmwEami`0c_2HJmYn(z zaw|w4WG9H9zWn_E+_hK!7jC%zzi1-@7jC%rA0N)&aP@!jrW^nB)?EerCvovfsK3wr zPXYNA>JLypMmGoD9uOZCwjjSIFFg%52joVOzd<;D@yY+7d{PW5+csYRUx34Hpu8Bn z@HjXO3pd{Q4=xKgTnGCtfBm)p1?#W=&tHcdgWLg<2icju<}%nGkX;~iQkS0tyP;$g z$lPmSIZ&8^Fh~u^kD%}X=?BFr$ju-?Ta5IHi=##hY$oNmn2@LDCW^ zOhEYyIsQR;B5CPqa9RfCgF;X`1;;BQje`6KN|PXc87nS;-3f9VDE)!-g2X{|{<Z4l#W69uVDSP|KK>@aQ%Po+RNa&CS~~X^no&6uV=*)k=nTP+|_3iqf z9Uk!?G!FtA?*R4nLG?eV-Us#lK{QAlSN$L0==i_;{FncpJHGz+*zxth^Y*X*9k(K| z0}>k~j?4$KA^6LGr)^*VJ8b>(-+s%d|F)Yx{{u6~k?uLdD%wM3eg86lnhNPdt8V;bi0>v9L z4Pv8XkQxvMiGygnEua2_@n#4O5(8n7JT?rHL&hLA#Dob*9Y`ODcG&V6Y$u!#E+atY z#Ak3Gb>9B{zw6E)|J`=}{O_{k`+w){-~KzHVUQS3yyH7qAE*ofl{26`3AT6Z7jT*2 zuoY77fZUC42FMEX8XOR6nzJtptkXfkaK+FS)gZu(=D_9TItsrw?7$go-0}5+f zP*`sUxdEadq{d~(xBno!K&c2ARG6+kZQ# zoiM$i@)=|n7{ki+ZC}CVHps1@as%Wphb@q@+;RIia5#YUf$Rmzf%JmPc941y2H6XW zJFuPGzWxW(+rNS15TplgH&_f5x2V_!6!$y6gVO=XTo4AC3&S8kK*I0Se}`>f!2SiL z6W1L-z-*W8-~PifDBiYyfz&xz>KjnJf&2n;F9?I{3b4B%=?xrqP(Oq01i1lQ{KLdR z=7H3J_3eO~0XFaZf2SSa!D-Ka^Jj4Qg2D}^4@M*F1;sT4e}}6Fg)JyfK=moiE>OIK z^tn z(>D-eAa@drP1e5uZ@l&$Jgz`tI1p|gwUhKb2Z}3DdIZrZc-5Q#hO6HEH-O=lum2l> zFesnEXb>BuZuOi0D0)}F#o(joV~~1c;tQk>q!;EE!_{y8gYpW9hUHh&b?^V1t^Wwd z=3x56f75lOV~`mjeGostM)3pK&Q))~X&jU<%+}*K-)!9nuzTR{#}XzWIgni-J3;OS z(I9;w8iq~QeE`P+C=5VqL4F3&VE3$k``>8I+y5XvF#Rxn$TY}bps+Sx`yL)HAoU<| zlQr+a@eGm!gZLo3L4F3Q0b^+S3>Jg3!RCX^g1X6k-Ft96f!qdC z2QmX>7RXKzhKYg1L2Qs1C`=I;6rYeV1j(WM2PB4!L2d=P8x*D>GqGV%`UQvA+V}rK z{zu0kGeBm7{0LHu%?ywj*o^fb!DfK`2gd6^fa3wAAA~`E1;rD{J)pP(v5_%I90jj> z^B-g{NG}M3{0pK%7^EMR-a%mu!YKMc>1x#*aJ+)lg2NA*_CRg`xfMi%^rPro^#+`F zz+tfA<9~~dU;Z0UKmR{BBJw|I-2`Y~3+N0)P`@9v9}w0CAk_aaJoN6r!RmMaP1jO} z&DOsAZ?fj?f1_2e>4R6l`ELr!OKac#2iZ-j`?2W3t1;E8nAly7^C+T?(6jvY&N`Kg}F(?m0;}xD4SHA}5O>F9MiJ_-?kUC=G z3*+VJr|sEq_N z2P6lw%N*2xK`Ud8S3~kH$b67pAhlpSR=@dg25Ms=V`w=E3JVYhsfS^ZJz%jlZ~uer z2C+fz2fGm(S0FVYF_YDA{zKdi3V#p=#U+RaVF(-K4rB~+KQac{0rHRWnm0J>3Xq>b z?f~fnsmF#v?f|I)xeFHtx!VHj2atMDoPjYk>_O&&%z(uUNIl4I5DmuAFbAbCWN{c9 zckFenbdde^*#r%7ZnkY13TAhjS2(+i3-m_Cpi7zT-f{0EW;sR#MPYV()> zhLcYG2leqm^*v}!Bj`*Q&|U@58~|vIH%Ja|{qNxTKW!hR?+;50l+Ymef!&Iwz680S zS{Rh>LGA>FAqa!mw89|s!G1z(*MP)8aSk)qxPw4WXIvkWXU>GD%jQc_M8bRCUAU!ZXa$N%I zw}Hw$N-($_-0%@xzJlBcvI`x9?S{5HKOX+fl-1_1|Mk1~ z{?84M_z&yzgU+P`?d1mTX#t55Q~$^9fs8@I?4X1Or5{k*0p%TR@k%W*kQ+gH3uG6F zO-l^20~817ZU>2hK<0umYzza`cG>XZKdAoKZP@~^|3P;EfzD(G)%!3^sQw47|Bt0+{SQrB zAV0(6f!Z|4Y*4s?(jz@EC>}s|V)F+`jvj6x#tx8MNWq{q3NjbuFHo8Tu}AU1)$7EB zJvbdg$9zF-T4GR|0HqBW2H8c>jcXwF5KJ$q9J5&W;lDMw?82-Yz~vf_I+>6hsGJ3< z0l5q0Mi7mT;qCyHzc}iDkU5}o7L<2D{sWl_VuR{Gbn{?*kiS4?gVcibgJ@(7*AMEy zuX_(}1AxpnTJz>Vs80#1hd}B<>R@Jp>Jg9_xUO9P0bEyt+y(L*$Sx2DnE}!R$H?RR z>)wOsa6xVam5+Eaw44T+2g0B_4P+*$ZUyoL3I`? z2D=|AK0*EjVURf3?DZf1o2&(`Ux18Pfc%DxL2d!np&+%mFi0NcM^OAA>qTaR!U|+3 z$gLn6ghB2AW2pOJ=78F#AoDbgAaq;h}?$<>4TUL8T)|g1*rkafy@SlFUUTS z{UC9W7)TCe7EC>e2E_qLEvRe;@i8$Xysfr;{jb}+2~qz?MEnQM1Ay8A16BWn`~&g> zC>%k4M2-_`ut8>m%_n2t6y!E?Fvvd8*bjPt2;?7-90-$RF17W5+(8Nkr7@5jK>h$> zP}qX_qj>PP0YGsCN{1kt))-VifzkyGgX|-eHb81XeSVM|LHa@EBCH$-v8jncWh2Nu zkewjAKr}iAiNoE3qy7h(0rD59%mS$gnE}chAb-R7ATe|dk^}XVVeSB#1H;JrL2R&^ z4Ijbd$Dn#1R1d(^f@o0r0%`|<%6?G&2yzcdA1FVA+ySy1#Kwxz+5jMb5QUM-P?)_S zJHc*U|KUF<9zpiO_#hgB5p@vA9}o8_tgQlb3y2202h?r>VbJ=DweP_30WuGaL2D+~z60A2YlDIG zK=gvfHXs-jHy}H}dZ6uHklR6F16B()9~71#H88bcGdFw$uYm!HfiTD{ke@($K^Vk` zg*k|iic!NIQvYv;*Z;6OADO0i{~zRj5C(+@h(?YVO4*>W1ceOWfITx|hxTtUayLGeXP47Llp<^{wiCM|&61FmmZ zy#~))gUWAM83rmFsfl6cg6ssj4@9G5kT|Fw1JNM6L1it7hGCEypnL$rX5c25Ar9d-UgY0ZZ4?)f#^r;Lxa}bfW`o@v_(LAKw%83i$Qup7*^hZ#6fu# zM1wGh4aVfw{UCkNF#wP`AiF^R0@3DcA!`;ueh0~c{09mT5Dlsi@nMiU7zU|FW`o=f zTe|@B7l;PixeikAg3=2v3<_gV-x=gCkUne})RzZ^BeLCaH-PJ9=(q|f9+2`8$ZeoB z0BVDQ)PwZHFsLpAg#$<&RELAqg5n4iULXu|Kcr0uX&->pfx`&A-{8Z4P#OWL1L*~s z36cl#!TLa94ILW;$$`uPxdX(8n1Nd7gT-Lu|KR@r;H&>ZVFd~^kRP$d5jkQYv%uye zwOK*&Kralk8RFH-Aa{c5UXULU7!;?Vx(P&sFq92)KNN%1g8T;34;m*i#IhzF6ow!>L1_ga2AKm3 zPf(a*!(g+(bv))+1V}%~9Uu&{52O}^L17ERAismufXa9fAEXY1L1G{|u-dh6;qxmX zGeBVkQVYhbLGwC@FaY@-q#uMqeg~;kC+r3sKe zkQhEZ*!usVv;t0p(Df>y_A$12B2^5Ohe3N`K<0zuVjwWcZcyByxPA3&@OTzTZXn!* zZYRhcBw8E8iZkW8pux|H-j*!tOl70 z!l1ka5(DW)HygxPlMbE z!XR-lrljr%>4lmLG7IDv5Dl^y<~~sU4=Q&d@d&EhNWq{uhxWDCe*llOgTewCgX{!_ z0mx2}9k?(^9u}6!`jOe7y`>h=br#sd6C?&Q2ej87WERM7aJ>S}%OF0;-yjU~H_Tli zeV}?CBo9&#qCprW4pIwZ!^{KmL3V)B7y?7q^nvDdKxTq4NG~WJLFQS2`|{BC3TRGZ z&0FyLR7`U)!+tQ<{~&*X!UR@sAjc7@Y>+viumz<{5C)k&P#9!C$Svr80EvO*2FhLN z_JZ6(3I?TFkQpFq>`^?p>U>yyfYKT$Ux8?PU{L-8*#}7*Z@_&Ym|L*Y(78}h z`3WlHK;=2490Sz_&@v9%Hw4L31B1;+s$Z~$3&ygD^-vG6tCk3OkT~_+ zlLyIx*dTo%`#^O#Obir9AU$9V9*2O01t=^*YCz_|XpkA$)Pu|gVMJJi%)pKZOZ^WD zdk_Zs4V2b##Stmuu~ z12boo9(-*8P+9}!FHk& ze~?>H!Vsyg3Gy#;{DJ%i3LB6fg!miqSpgt%kUY#RkUWSFqCpsxFF^fxklR7=fGh`U zKY-i~G8aOF&KGzOo(lr$g<+5$kUbDJpm2j>NcchY!^E)D16}`v{0_q)f1$?-xqMLA zm_g6=1Es&gg3Z>x1Z{SPX$L1iPPYy*{N5DY6%sZB%5%8&m+bGIP3qK6Gg41_`Ug4BX& z7zXiS?u3cKXplIl-T>tbkbZ3Dg2X`TKp3VEnFiIXApJ0P$a0{33NjZ~4R*sv zP~R6h+(CNa7@BuMZbZi*Gm$Y!56BH546+j)gTztn2aTzK&Qn|q>;Hq|5PLlY@;f3N zL25v1A?F2w{EmX5Z5~kiz=uKYN06IP^rDR)pv!^60NoETJ}3;4`|66d*ZJc!6jb2AK=i4{E1D&(H#?0htF9M}!BY{)g#<)5z-uz;ghga3c*9 zUH{wL|HpOz54rpQLFow+Mv(o!=y5?7AG#hBWG>u%==c;!Y@jj7O`teN_8W)~au-Mr zL=Q9uxq~DOT>}8}2gqNb^f}Oe7_}d>4FHN4Q2c=63B;xs2H6M0gyIF{CXgFJ=?_%4 zL&`x&T>xT(%1l~ekolnc4rD*by&$*1Fo+MrkiHqB4^GG}ATvQ~Kw~Z-b7AJeXpos8 zHb@-^gVds9P+JJ37t}UEmjm&^@wZx9gTfY$vDE*dFo0o@I*|Lo?uVWk z0dq4*92tYeVfMmkNPP)8zX;?%NS%hejsocesRPA5s4fQi8y$nz6TsAf)M3LQdq8%h z>m|eo`2ke_g4}@(!@>nbgXBT(0MU?efYkjUGeF@6QUekP`2!S3AaPK?A4G%NWgvYZ z{h)RVC|*F~APlk}EDo;IA!#4f)&ThjWF82E)PeLM)Zq?OP*~u?15y8j!Ul#xej*en zq{xH924*%WdyUG}L2)n`{4weV)HVPtuYuAZ zD30ifL3V;Lp*R7l0gcsy(i5m$hm>!SG7!WDm6^1}AUi57H09 zAbC)G17s%1Y!C+3VIVoM`5O>zAW(e;!XUdq`oQwgxoc3G1J!w;aD!m{^%SUm1&Vi& z8K5u+*^i7tc7WvZVOV_%N=L|giDiTQ05SvQ25cDO4_KN6`R5~eT?;6TK=BO1AT}th zKxTpXAPi!I>TyuGg2EEn98enpqz8mSVF{6gmZYO}$l8%Y3 z|8e#GLE@zJ{~=+3IAe;~I3cJG6egf?A?W#4pmZ`AG06X*w1Dm(kQhjAu(%oI7Eqc5 z(@1N4aq^*KSRj9a{4!YlG3pLP8vs;(z~ToKNA$!XyFr*xe1Oz|FsR%GmGPjm4;h2R zX^BC0fy!Sa(7kM+G6gy=3#vA)}?t}KOfy#d5a0i;S0;nFaDQhz-G@Ito;Gf@m0q@ImH);~aFpA84N{+E_iz zOo%ykIwu!{<}pEbf!u=&gWLd;1GN)CY;))x63F2XGXvCa1i1+m zh9I|s&Ta&SDY$J2ZYP266ol+=0I3C=3tsO63Lj9|AkOR95UMg zgzA6L9RP*V(f>hr0)y&$Y?zq(9~2f~3`%dXy?to$OKyCD@&+h;L3sl`tq(RnC=5Vu z1?4Yf|ANvDNN%vW7vvUDc!FsX>wieOfv9%|i=RfiJ7DPzl>X?ALFpTW@x=kiO&~Xd zXi%97Dl0)W0%NZqLFFYiG00v}y$8ypAh&=p$X#Y@LG>Qy8a+aGgWL}}3m0;y639Fl z289WzZ2(e(&m2%43UUJ|{BWrS)kUEE3NagWuPOFC2vP&bpz;_xe+Lo+xd&tq$PAEs zKz4yJsJ;R5K{Ut>=4;=B>w8cc0T+kflLKmpfcmK*IgqTgWml0zi!j!|2g5|;5z_8 z_x*v-{tFNPpC1wNzc?o5e?e3f&bfb3dw@{=4{|#UgVGKtT*!?V41J)zt)O*&pmaQl z=J`SX#D+oP01`(J0}vl32a+FX3~~!74}fVR>wi!>2gMJ_F9YrVQTs8=eo)+iFsK}% zHwL8%P~Qe$ynx&Uavvxify#DB83-%qAblNB`A2IEvKvxgL+`xOxebDG)lram z2DiJ=`h}oy0);zRKe)dPG6S{$4+>vwdO=}E4hH!b>=)=93_2SWrw|P3yMz1=3JX;H z2E6YAq!$#fAR6Qc2o3TB3`6`5(+lzoNFBs{keZMGLFXxgAT^*m7*W=N$~)5g-Jmj#Tnw@sRDXfo1PV8hn?Pceng=oqWF`oM z$^Z~ejJcqE2+|AE1F9czxdT#XKB)#o4#asxPi))zu(2$Zik@`4NJ#)mf1E1-S|24v;@#7^D|u z4k$f8x)@8!~-rpAoD=&J{up%!s2v75pAnSi zKxvPj7?f8b_ToAJ2Wh?+)OUoGagZ_!#s-yv^ui!JL1it>?I1Qtj9mLcdO`b-4CtzL1G~PgTz5~B*?umJ=CN@egydgWFIyRasx;W$eo}$ zPmnt>F=Pw?qz)tp3OkTKka-}tgK6+wKV+{XqW=E?p4*4WL&6CbZy^03cae`l@c`LV zXtwe5f33!i|3h3{{(IZl{P(uD{_kpT{y)gk@qd`B>wk9(i~q4+UjO~=>~PKjAdmlp z(gX~H+zT4>qh_3d%mRfq$ZTYLK>VSAVQvPc1#n#n8|xaa|A%eAdvK)7K~VqW8{b;< z_CM@ydPw;ODWj0tpt6u&7;G=7{z4nSCf9zDd7yjSL3JEB?}O__9OwSy7;^^IGobMi zeDy!5d;zHgr8!7l16ijBDmOv)g5*K{C6F1Qauha(Y5}@u2D%Oaq!(15gVcibfYz&l z`dOel4DNrZT96$ewIDlT@{oE7c}+b2`X6K_$Soi@!Z6G{$equSu^))Jkp4L3bw6Y+ z2FyNeG$@QfZo`Ekarz#7E-@&auw%#?OpqC%a000T=>z)(+MWUNLGqw^4p5kb_+WYD zHGS(LVE~E?tn$ceaj~KHf$Rds8^|rD8$SKlXxQ-I!Po>`?}NtrLG1ug{qJXM`#;ph z1w0-=O#N@X2C4rFYCA&D{lXTuNJp9p!y%A4iqjR3^K=R1LPiG zR6UTsFv!gy`#|9VQcnnj#)?506b4|m&~_b|4eNuU(I7W~+>Hx^{fKl2ASkS`hY@sM z1*#UL2Ba6{FObjD!}2i5FChLX293QBJO;%FD7}ID zdmuJFF*r@&nG*uJ1*`_NzkLJbz86UO2&(rX7*tNu8>6~`vi1k4+y>Q$Ab)}|C|`ig zC&f?TyM^K72AJ*v$1P|tA$0rzWFH8F?bra>p9e|;j3Ma(G)_)z-4AMS!R!U;1K9y;`+)oc@)MYkrCtKL2^@CN z@I+^W+z1i_nFDgO)y7ZYdmKUG2GR>!?*a-R5C(+@XeXirsRr)+zU=ygRnmj3P(~f%pd4s z0rMj%X3mcm{P#pxr5H%nEBkzp^!Vpt=TuLHa@ZK--FF{nKPGY4b_*e)W*ra^55ka~O=6o(-9fWii(4#WpxP`e7f{s*}o=2u9)4;ecF z=>@q7WDY3YLHZ#yD4dAFh_DCg1=)>^L1G{b3I~u~D0uzH|LXPYz~ld*`rp>T;J>|* z5xCw5)%_rBkJkSO?F9hgKu5>_fesG;y=-m&N9}y`Uw`Fm@Lkiy#tTvEp#26=Is#!( z7!7p{@&^cm;v6{)K=A?+A1wX@xrHPQ8sCDh;{w$)gT)`C?trxUL1_&XFQ9ZrPYkMG zKxrLYJb=nbu)9#kK2ggvP}vPCTZcLZmBFAo8Wi@Rx&Xu{)lZ;s1YuA;0@4o)8<3eG zF_3wn`WJ@5eCXU9sQm}Rpm+d@gY<*+fy@Jmf$}=Y43Id828n~!gZ5X0_5i`={6YB~ zS}udsLNH{#8iWmLuffa&nFBHp;%88O_VGWcegfGIIsen z*#q(?NDib9WF|-qgh6Q^BnQGEJ}CSldLe!W#VsaA&l`}i2AL1SATvOAAY;%R4@ex; zo&ni~j6w7N>hB*$S;G%AEWL-uKyw9 zt)P5GFAS>xL3Uxr1L)olNS^^zc7e)wNco3a#(~Ps;ebJ9IVcQ3{V$r-!%$QfGn81YwXlAR6RfP(2IM2l6vSEodD2!+(%|kT^&l zWHv+|6!#FbAZiiq3Xq>bX$j_IZe0dgZKUxI0< zyYR9{>woYX&cT>gL46HSS_7pydSXzT29?<$JJG`hBnER6sN6%8|B$i{BnB!6L1pW3 z!yvzr<0nx5Lk=^LIiPY9ghA$k>I4vmu|eSv!l3bFkQj&!iU$xIR9}H;aQy&XHvlsq zqz)tx!r(Fhv|n)TJMi7Mptc5RP90=7$Xrkyp<|G_AbAiCG7DrbBz}?WcF24P=xiI1 z90+4K50V~W=>_C}VlXI7U~T}p1B5~A$3g84V)TRBC+PY?W}st`8U#l5A1JIr?gqI9 z6b>LZItGb@*@JF!PobHoR1H99{^}C0BCKXrLOLOT~*cp zx+*GQtglYp`XA&UkQ+g121E}>4E7tSU5>Wy1QbVLxxvx~faZIUn+Rg0`X5y0gZwfa z<8CPW30D7u%5CH_f!1tLUIt-E9fP`N0X+T%>X)v2{~uiT52AU0P!18l(mk-yl0d;R{j+5(CkodL5(=hC%f=C|!f?H+* z%!Zi@vKNFw{)b__?Es|tD3CsU7~y}ATcPd-*WsXX4*dHAVQvA1EzGST^Fa22_#h0D z1Nk51ACP)bUWVYe;4uZ{au%cprWVA8se`cJ{s-kbkQp!x8~?X9F!&Fe`v=Vdfad%` z*vZ7?zpI7Ce=i#w@cKVnBcuNY>gxY>p!Gg2>VHsr1*I(*2Ki+;Vvzqp{sP4Va+(Ik z6HE>yKhPMQ_lfEIgVez089{9t==|V7yMNSvNSzBxSD~I*{MV>o4?gG5N>2}b#t&#sA875rg|6;@4=XG1dO%}M&Hs8x zeSTQo52C5k|A*ay3+-=$+%^(0dK!eq&tUO8IIV!{c49C}{r~zu=)SbU;*XK;4p6!R zm31JRo*1-V9b_Ly_=Cs3AooR^u6s9P`v0K%fKm(!OHf>b>M)R5AU=qO)#sr422}1t z>J!M>dZ2O!l$Sy3Kp3*gA{Rtfl0_g+01JtJ=2BYmc2k8g<2fA+(#0FuI-JtyxIL#)Z z{|_4Wo|KG3yJkRfAWAi`O+xvf#pWpvz4-fFzKS&HT zCIG7EabZg9e^7jY+y!crAiEXh-r} zREL7x1M)XW4x|R&gTfnTFDT7}*dTv_#6f05Fl>z@R4;fe z1r%`$O9UAhSSj1^ESJ2MmMa5ae!9y$Yg1YG7g@J_v*Af9z}5E$wFxMx|3UQ~$Uh)Ag4_mTj}#2@FDR~% z(;X;%fW$#~FoXlh9VFp(@BhQf6p-HrgC9oSfT;gL^#CYd=!HS)8B{Kz#{ozjUhYEs zTA=Y^NO=e;|3T%`D8}9f0)-z4gYqV*{0D^-s0;;_ryv?u7lF!rP<{ld1BrpuA@F<1 zeDIpL;IrnD!ye3D4{2+F#uGqxfyyaRJi_Ea<`Kq_dJLo=+-`uLL5Eu(BBEI#@}T$!`3uHJRu2*f@j>>2`~!18h!19O`~p7z zKi=0De9mv2xA%Y0`ajrOf6)Fu(EdM~)c>G3fsQMK+&0oMC=NhzgP!g{;vhU2!UN0M-4VIsjC!fiOrMH2(q<1M!hDsQv-P4QP%Tq#lHk z;{eWI|KUF()>vB-NMG$`k>jlL(NUs&H`hPv-+((f8pz;NlEkp?eD?+7eMI}6egfC08n2Xqz}Z0w?~oY89?p;g)4Y301@dCWIs53z~KT} z{|9mp$b3*+0wxc#6Rr+c_e1AAKx#npAUz;=gW?E+A>$|@aS$IS2Wn4%_#knR7%~RA zAH)aKtKWeA4^j)`o38)#U%hS}_{=}hnm-T*&HaP={MLGU;Bx@%4GnS5{ZrEa2e}s< zHiKlXJ1AV}iD7<6Pv0Onz~n&efy5wpkc3g{e?0fSjnFtBsJH}`0if~?RQ7?`^uVBU z6I9Ni`x!JJ3UUjm%m$SKAT=Nis#8GaKdk%%m4Txev+f6l38+2>oqr1oH_+L(AinXc zH{gBY;PBf3xlax(53XMz>&ZZRVHi{&f#L?#c7W)CoDC0RgW>@s2Qt?Zdaf-k=@X{G*}Mm zcQ6~$-$#}Q=>fS3WG~3gAT}tkfcRkcT1cB7qz?zeaFfV7BHRcy0=j-avIG z*yM{}EI#gZ2f0%mn3k5FZpD2tKI3B6iLnq!xxD?GCV8 zVEa75bsj<<+&>6ngW?~g24oM+?N(d9{?}{S{69T71U&8! zy8j1+{cLUj2RJzV2d)3}w6>;N{~zQwkbgiJCXuNF9iV zse|y*!wcenP*{W3E`rpx;eXIwexNh` z-7PKuJDHh*?*MW#HT@6b6RQ71x8XnkAJkR_xe1g8K_G{C=zJHfTm#9Y zV#pjNs15?<3y@w=*##-LKy?NLgUYgzieX^^3L8)ugX(C|*gZ%b6qca63`8U5Ss?4a zKyv_~u!MyhD11Tr8l(?|L3Ig842D7aL2Qs&Aa$T~dO_+y^$A8@2JXv4>opWMB)&jq zfZU5(|3m6akR2d5lY>EZH^@yeKOxhgdK6?Q$b1k6nQyrA75M&Jkbl7Xpz8oYa>Qb| zUT9kiV&{AC9tsE>GDZV3A5>Q(t49epX#Ec>S3%(q(hs^538V*K9vp6~A^QSAY*4-hsRz}&AUz-q z;)7_AJctb%ZwA#Hp!x^YJ_Ly)V~{-{3~FnD)PUUquDh_+_t?ZBXZV540M*GLJ3)02 z$Q+RSV16Kn2I&Wx12PjGgX{wN6KpPY3?Iw}^-Z968iLw5Ffn{I@|r}DKj3yj&pZc( z8z`;A#lhi&SpNreBiP?yIaoMB)quukp!X|+%mKA)K=y#xFbwi5NDPF*^8w(z3~AfJ z)PUqb@d;B4a}P)!6n7v#xP1X#KL|emuX;InuHRN)|Gy=4%|ECe;0ziAFfszK1q7}0 z$A$IO)c<>Ic>dpD)!Y9@t3hWBzx!{r=G}keweSC%t_Phz_3^*i`caH649wSm{BOGM z!+&GYom-$V1K~jyZXh=jjW>LP`v;T;OhD^jM&o|K(?2YYnSjn{TK54QM<6j;VUxA* z|AR1kng^8$AaP>t1*r$+4WqU1!Q}}oJ(+L#^xtyR=l_VhI29f6I--2ygm~ zWfIDz8AV#6n}d8VK~ z;rfsNtu}xCZ?@qhxV(mleE`QBhz&9eWEV&uD84{(0OEtpvI4scak23;m~FKg;!luT)NuI%mbcjW2^^>9 z8$W^hps)s+53&=4VfKR9pt=<19uOObL3%)JxZJuA|3Pd}S^?z^kXym*&5*QU4%!<6 zEdwmK|N5_5H2Xj3E7j{Wnc9Td zr~ma9J^Zh?@cw^;C6E3aL9yYINB>7LjxbpK@W0-o2mke<7!-bniyscn@LKx#zro^% z|MeF``~zZ-#ygI9r(>P~#e@DLP`o?@#}9~4OANMa(F2S$3=t>A4UfR(2uL3&Ux3OL zP+kFHgT;^j8!dbC-(>mI|E6&K?7zvfC;yE>c#!DZgVUQRMqst8hADdes?nn6P zDcC2ikN$(g1%yHVG+72w2lBhg@+bene0Uf<0hh%Pbx*+Mjp5SA;BYfs z3^NBgz8?QKS_;9S@CBz8Q2JT)5EAB~a9{TLzX=S3>|6d69M+)l2k8N0u>2FSS)lR_ z?6zf3AoebO{9kV&q?`cBk%GbDu=v4$W00T0euRbNlm8|l{<0^K@)TUQK7_CrJplU~ zq!-05s2Z>zLF|PO!0rO61Jz$JH-p$9H6R)kjv#TEIUq4mJb-8uaGHa-2OJjQw1^Z| z;IMlF&W9lNAag+G87+AX&MzP_c$v8vl2<_W0myDhcp>})iX(kcc?*gg5Djua)Sn>W z|JzSJ`rn{s^M9SHrT=w{X8hOBpYq=ze+rleu}3lXurMf?@?S4+@_)^&{{I@8eQ>Ok zJMlkAZcv0SL1ydZ zO#H76!r2r5Yi0NU*8t_4tp5MnIUs*c{BMvy^}liP^#7)%Gyj{H&i-#+Itz+t{x>Tb z+}IrKW{`Vl|2He0`QNZ;8aS>rv-|&RX7&Bo%9;T7J17jmVUY_8iwWR(1@X;FW`X@^ zS~BB544ah90E-zHO$V37Aaix|CjZyXoAe)MpHa~?aQJCvPXLE0hz~Lk99KCL|AX}E zivmt(j_}L8VUr^cunGXs#bhFXLw6Z7s*UOvoA4G%v z3i3Nh4XEq|nQvM=<3HSv(wX3}1^LmaaO!`M9s2o`!D68F2oeMN8>Ai<2OzcJa6nFf zrL(|k)Ua?GIDEnKr86PnS~d%89>@%kdrXRF{5LNLrRACbjfKT-kpE4JrvC@g zpmN!;VCsK3hMH?sIPE_uK0(-^VCsKR+5yD_C_m|CcKufiDfq7(TKM0_$mqYLvGIS< zdjCi_H^_YewzmIW&CUN4+W!w)8xZT|{@=|&_kW1B<^ObFum1(X0snIXe8D)|-v>;? z_#hf2hKxaCFbon$X2bX(8ibMMKx||&5FdnLVlWz648(?EkUR*3_#hgDL2MXC<|DIV z@-P}%4w;Qj9$73m(C>eizt4YP3)BA|#)fbl?d*55)Aa=Bq16VBD*%5;Vi4nw34*z3a zo&QHT+Wq%7GXa~C>E{jhbB3Sy|0rjN|L(?y|HJI8!EV519@s6;j{m{(P7eP;?gFu6 zT^#?%yE=pQg4`Y9VE5nO%KX2liP3*AQ=|XB=BEF{>}~#o(rj&9^#AURwEq)xv;I%a z%l0mcb%FFrRo1O8$E-w0iqKE5$ zKMT|Uo+gI>z08dNhuPcy2gM^O3_xK43X=#&dvIO@g$2l8-I?kCTT_$%x1}ciZ%<1G zvq9ld8ygKSPdd_4{)gGw{Lc#x_&*^h6YT%iCzCoAKBe@@o_`uN!YpfI0YkoUhWHTi$8 zzwiIXgt-3`bF=^VWoQ2H&&v28nV#~$DJlMcb8^D}wv@#G-5II>LE+VzkqWNU+>H(XmxhJ>Z%&E_ zn_UwV2~KBVH$me8q!yI+db2XX;RT8#5FeB-OTt6`S44$_!?Qm-^M7AX)_+jAHYUdZ zua1fOUl|n+#vn5$%VKlNlObnUE#s=vDVSI8h`K*wT|LH+N|3T+1fZAGa z=H~xFIMmtse|Bi-f0#OCvtVK%8it9L2dT%U7F`@!ZEjfDe`E~0F9O7e(J*#lWaR%8 zKR@uE5mz&_{~=CJ|5N<^NAUoML5zn7I9&xfI)d-^0=4lY-QE9#a1@AkbNe6R>iQof z9syz#z#w%n3{nqbgY<*$4FlN$I!7$l%jy}kc?TU&$U%frIre~^O% zIJ`h%3ko-o|3P65@*fC$Sy}xD;j-A+{~$9O)6)JoL2*NB>i_oa?EfV(G5;BW)k2QnX2UV-+Hfx@pcKK{S6i3vC@f#kY!a=_sZDqleEtxQPx4~ipD zT#kkkcghApU3}T~WY~nC67!A^c%tq#e#6cKc3>zONhOQna4x+JPn0k;Lj18he7$gS5 zAT|i2vq5|q2FZgk=&mIY2IVtQ8U>|A5C-u<;R%uhsRQXlreSP!ab!M>jjk5N2Vs~z zh(^cA@*p-Sy@2utG6tnlbUrBEfy#PNxdrkEDBXg}meDrAz_x)v^*^Z01?6WD8&rRS zFt|QJs{cXdGpM`((dZbLII_BEPfzeUqM$k>!N&()|0ntSg3l5ImAxQyKz1Y7VaR6S zVuSR79CZ50q3BnI*WdRqWwKPdfqT3P+~v9vN3KRg^UdBc z;csX6KiJU`yeAA)uLnCh{m+kx0GkI2H&~c~?5j;qhPxZoz5vxVAhSSrmBz+`>nTwE zR2&@*RtNGI$dBY=P(KOOMgi5K$o>TR2jthHs3>qzS5C+)?YOjIv5Xg>j7Z-574Jt=LZfs6V`wvP> zu(lOQEF(DhKPaDp(h+DsALtw(Q2GG1T!RE(!dj1E8gPYrbkeMJ1N>iYFe^LVj z|AWeJP+Wu5fG{ZUfXo1m@q^a-A!8jC74W(M&_032!ovTVfq~%r17URusNMi!5FbW^ z*ytE02ckh3T^^Z_ERW1aR)fq2sR3bRF=RHf95yzx7)T#7AH)V>kT^DsPY$FWCJ!0| z0QHlR>wjMx8*rNplvhD&VHl=|SQ=R$x*lXX5E~{BV#6><4Ahxo&c3QpmaNm2d)hOs`Ei*9;hz~>PLdgK@<$CPtfWWP`(G14KNy= z4da95p?z~ueFaLppuPj>9&uQlgUT^bn((r=2KQxQdO&92!(er8Zs4*HrVbM~Gxf!qnIQ$THhPyU=_@M9xwMjsI)k($0 z;C?Qst%6+6fzl+Y7}OsHl{29D0{Ic-evp4b^(?4<1=X9N_7k$XptJ|_4=C+}$|_Kq z1Zo?C+yYVy>H~xP2xgxK`)c>HmA2gN#8lMG=r=@}0XrS^CWQLQ8$$!uo7pT1i zGAF^?8(gn9rl-TlUqJ2xxew$vP#q6)GsumgbWod=1n#4Q+5n)jo1*CG|Dbvt6c?cJ zl}RNf;BgaBy8~3ugW?esw;*|tdJqi~2gM1fuMY})FH1}C*efUvfznliukU}5`#|!b zI0M!Hpm7~g-hibkP+1QOA5fkF<L_1lOma`X7|%K^R=0LhFAp8?BzfCI+f|kTJ*{P`%}C zWd$DVM~-Vyp9Ew-s9y+D2i6C*56p(vZN#!s+=FZmv>gI+2gn{!djwR@fyS*teHl=j z6jaB8=G#DZRI0x}c&ryxwu0(pP^`Jf_SdW9l|CE4$|Dd`GBps`o+h02+${)%~D&0f~d`2DN`c{d!Q|2d6a; z5AZxc$d9153@Gn{%6m|I5#$!oI0C56j@T z1Vn={hz-KH*dRF&2Fc^XFnMGenGMs2ECymDV~`qTK8TGjhRg@CVHl(qgkgLTjm(F! zK{PT(R);PQl7nGT-3rRfp!PW^J%TVOY(eQ2H0};k2htCsK^Vpc(I5;G17R2&L?dIE z983%sA101WgV-Pp$}6yX9z=ucdJqP&K^VjaxfL`<2x5c!GoZF1hz6|(K&}f$+4OG% zfXXg6=v*?W3;@*|pfUi2LG>hv4=N8p=@86Ds*hoO7!6W`jKSiruHdJnI7gVck{OHf$^vL7T55`$ro88D1224aK6K{Ux2)E01e2ah*^{0PFJ{x7I+3o6G! z?g7;cpfVifZqRz0ii8C47&oYX1C`I9^#Y(a0jzBRs>i_?I#&xS??L@J5C)a$AQ~hF zQUlWiG6z)ufyTu_ZDUZ~4w{1pg%hZq3~~=BJV5RPVX%Lp^*+eYU_MfOV2HW8{`Y~d z7Xa5mxw+tZYf!xbD)T}8Sy0^u%AX)Nf#%FX{td9R`wyC{2i51G`U+H+fYgA>oEnOsr= zUh4!Z7eHkkIT%!@gUko@r9tZ#K=m}p?XWr)#BR^Y0k3la_0K_efb@X;QU_fN0a6R9 z+d*v~&^Q3dzo2y&pfPI0D%TDhELAGjN)6bp?+NfZ8sg zya4LQgW6W0b|h%;A4m)|F91rPu=-z1N$J0drY3lO3MdVMDCkL25u4CJti5FtQkk4H8GD(b*tA2*cDNvteQ&8iqmjKPaDo z(h(>Mt1Ea70Lbq!`$2UgsO$oj{~))4`f;Fi3laypAJh*5rESpKIZ)XSsy9Jp zG^or5)q&u)K|uj{ejC)c1&xJ+Xi$3rRPWX#CjKvsi1-hhR|UBPWEZHc1?6v0z5vyg zpn4zVCU6|MyTjKtfYihMg-&CW1GyVi-+{^ukQ+hu0<7)<%>jVwG|+f9s2>Tc`#|=B z+yJ6MbseY<0b!6@P`M6jmw@Ut5C)B#fck)-G63XvP(9L}pAVjY2Hg<{ic?Vi4yp@4 zZ7EQh5$EX%?pK1uL2VsS`vepopn3^Zwt>PM6b__fP}>32rv-qAwcc|jlqE20x}C3gTz2>08ki%!V#2CK>hy&7nlFuZeIVrJbeE< zIk^5eF|+z_3dYu8Hi&OxYV{wC!Qxi`&CIR;n_Jlax3seRZ*A@H-`3XgzoWg&e`hDR z|L!gx|2l0;MMq2Bj}h+Y3~u!qlPDAak){ zkUEe!j0Uk`7$gS5$b1kRCI+HG7$gS6Abw_05O{nFR33urdaQJ4=>NR1Fz}ofsJsW| zRZuws@*Auk7^MfO{`c~N&kKU;8&JN6)&F1`RM#T)Ig#rabT$SbRKL2pf&1B@vI8T| z{rte|qd@5!)TaU24>ALULGHjtgT&A=x>}GtOpGWt$ekbzaw`Z!#|A)kASk_p#wI{@ zBB(t8%738t0EiFj6M^b#kX@kq3^X`nP&k0(L3%)ZkXu3J9H|&o zpM%^EYJ-64R#2S^!yrBkgWL(Kk3sblXkR<1-wPUp0m*~fJD~Z4`sC#Qp!OQ5`~{6& zfZ8XZumjcKptb>M%_JzjqPr2aP6JsCt^--*K6MPU$ndQe^}iQ3SV&j4;uf6_Wwck z2B^*e(I53f%;4! zdq8y&D6GKlA))R^_7gfAWHzWCb~7^r*DIjDE~u^t(V%)b*4rDrcMVi`gX%U=8wFIp zgYqq?jsw*Jpt=fF2ZH7SK=l}?uMS!h2&&IOZ3fUh0Z1>14H`QK^^ZYoDM9`RVUQW1 zxqeU@1GNW0Z6eTkI>`T^`UKRL0M*N&J}0Pb0Hp^~F(^zy-Q52{l^7~}_#dqH(Q zsEq>J^8spyf!qgb4}kjKpl|`V0g{rydk8`E2%xY?_Voq#kwNPkKy@={%)-go_&+|k zg4_e@=YZN@ps)qm3v&m^EieocgJDqEru+N{Wqc( zhMEa7-(c32|N72>;CUQSx&vWQ8Un480mTg{jzD!isLu%+_Xqh4ly*VmNuclpodF1H z7l7gwl-5D&L16~M;QBu|7d-zDsy9IK1EOI#KR)Tds+92mLJNlf6MY%}cYx|?cZUD% zAdJig@d;sk>OC0#_job<@AhQ)Zzjq3-`C9>T>pdI0do_G24R>OG8-laqVZv5J?Lz7 zK0b3mav=4f`X5wQg31%*v<8YFQ2h_;XMofqV~{>{K1d9NVd5}0hz4PhI5LgQMwf%} zL25vlQ2h^X2ZV-##|R3eqQHAgKz;$WX+U)k$bX}FVEX=`a0jjJ0o7gb@qcLD2dala z7+fBJ>P1j}goMH3NPJM5gkfYkuo>>|;C<+zx)Wq441>xLP}&BSC!l%?q!wldj7ByK znGKRh=flL%#X)=!2FZgkjEzns%YphrUTpmqVMt^}2b zpl}40eW3aaH0}U_|c0LUz`eW0+0jzxgngN$MB zMHYjxamj(&bD(k=)b0SS-v-sQpn4FrJ{(lUoe` zi=(2z`{_Y?Kx5OOb^r{6)||oWeo*}n!V`*${)6WGKy?AA?f|(FRF;AHc6Q+P1E9VD zC=5a20%{k4>;|<*KxG3c>`28Re}Kv(%pl|}URX||?s=q;FA>gnyF#+F+3u^CSb0^3TptuJ44OB0J z^nvPjkl7#%s{27S2!q%l3}S=YATD+;|MjPz{cp7I|9_($|Nk3q{YNtlG9P4*-qh3o z&5SL;b4;Lg1j3;72ntisIsaZZHvd6&4Jhq`=6pbHUeI_KXf6O09-#06#WN_~BV$tijgXCctCWnuYt_GwQpBPLIM1%4SXv_@M zmjIyK1d&^KMN`cLFFWa|Fey~~(4{&<|rXC~?wgbs* zkU3y+q&6117>p01K^R>hF46hW|Ad4F7A9u_Z*T z#+>1Qtu@2{7FUMmAz*uv_6Q2GMpSy0;mBo9-IOe3?A%>#+UFi0GP zL3|Jm!XP#-j7=US2Acl^rFBq#0AZARAKE4WiGlI~sQw3)f8hGx%Ig1U{XcN^KCB)F z)xn^A4l0{LWi%+CgD|KJ0MX!j1zInG>Jw}jqy~oJ@*q8+I^DwqeAXkVtOVHwvlmpq zfa*L@`3b5IK>9&;g2X^amH##9%ZoGeP25)j<6PawiOf+Bcvv08qOe z)UOBC{~$4tJjhR=a0Qj8AR5&E1)Gaz4oD1yaoUR|9Eed5Rs&i`W^D}~uLk8s(0o6r zE(eW+gZ9gV<_AFPKO+I-d}Is~ z2ek`8W`p{Op!p3@`2Y$NP#Oc3T_EgdWAh(W?}Nq|Kzcyq3Lt%;`D0KS2TB*DU{HMo z3S*ENpgJ40)*jTJ0oCiExeIU`AT<@dhocE}b|3T%B(Pf0xIk(ucx^wZ9tODw6b~T# zLE~c}_k!9;pmr*V4QfAu!U5Fxg_X-7wIB>?hk(j8kpDsEfWio5H^?0zvte~Th=yU1 zI0*YXy8hRjeHq;MC$8@Q``>UAF8qhM_QS?M|BVm)|F1jc)PGxjga4qm4k+z{(gUcR zwlg&R4;ljio%IhI>$f#9_z$Z0Ep>Il_y2C`$L2VAu_$(-_L2VRJ-36-OL3IwO&kM?vpz;MY=3f*U30|)WY9D~o z1}Kg|c@;E11L`w_`qv=+$aOwC8&vOs>)y1q|Dd@8P(K({SAy2vgXT#Ot)hFbzF_8N`OU14M(cl~?$GgVi7Y8*TqjxbEKk@4wOB|No8m z@=Z>FvN-%3vpT=#?81qADV(EdN9_5a9qhnghc|5_)=ygYK94`a8uF#PXuXZgRV zKJ5Rr_KN@gH5vaW)@Q--r23ryQyX*t&udEhKR3(lf2#}ge^7e?rXQUK)&HRWzn?A- zc>W*e77z`?pgIm08=oAy9++AX4Z|QcAU22wVHg`mBa6Y|~yKw=;o)V>GR^B@fBUw~*3MrVWSe^40% zZr_`kf%jd3^3W(An7SVn?w~RrR{w+QD^NWGtN%ge7>JKtSAqFxbrm)-m>y6$3Yzx? zmG>a~U>H=+gTz4PCaAv&QU@~!M1wG>?gC+CHi%COM%IgsjVy-ET$ntJ#-#=%kBs5! z(CdAqumh=wtAmPT6GK-6`2o;bf1tJos67H=gX{&_iH|n%Px^1L;pczDEueZE&$$0)P@n(z zf4x~(|LaXY`Co798B{#w^nbmX=l>h5d;i~P*Z=>9VD-4oGurz9zrnh1{|&ri!RIi5 z#%(}tHqhJ*$lsu`574|nDE)x^4{8^H+617s0m1qoY5X5lSAfzIjMk76{9ogUyZ&!> zV)#ETT=f6Mro#Uwc7FeLjjaD0n%Vz1FtPh@U~2c@(A4g~nU%}`fRLE~6Iv?%&rZ|( z-{gR_ZUAjA09OC|>Oks$WVe9WAPjRGG8-fY!pLICY>*rXgT%05kQ@kuq+9I&}9#-eWXplGzgX(`!9}raLgYpche1g>nqx8VE0Wj)+XrCX{1^|_vpg026 z1+Y2=od(N8>n;>ISYH@=XDF!tL5X9~-alJg@cHzhavD_sR zv0*e!97H3F!PqbwBoD(NF%Sm39aPt2aR*o)O&psT%uHM~E}=l)UO1!0YKyYp!y#q1}Z;5X#->*Xgm>A&w$DYQZcAs z0V;PU78k?MuK~4LKyCoJ3ABF^G{*s|he7iMpf&=i90RRU0qsWwhet*R_#6OGy989$ zg4_oxgF$H&6m}pC>f^)edypGJV&HLxgoOW~_6MjP0kQ*xLG?Wd!`LtyT?`~{?w9c2 zVEy<1hFb~L|2zKwH(2rFzlv+*e?>j>|4OEg|CLOg{wtY5v5EbEMN`NBYN18{^%vd) z_wOO|1UT9Np!$FP_y1;oiT^=kAt1Mb(gi3?KxqMlbHc;_rw0dv&w&P&3m`v(+6ACC zA}$Ob{|EK|q5J9vw2B`&MWHlf@2!q7XX^=op(gNDPEwYLVG6F?=*gJqRPKLFOZ~VQN5PAPnQfXqXs`hKYk{m>7%(iDAQp z{L2k8aX1)x4W z=qv-!c}Af69aN{{!=S!DXbk}fcnXxxCg~MsBHnNZ$Rz@*##Pd0;vPl zFQBwRDh9P5K zz~>@>+y|=TL1QGKb^^%Vure6rCXoAJ7$goV>p){8APgGE0O2 zR}0GdZ@3v`=0DtP2|@M$x^Mq2{S(3SFrYB&FDUq5m6-UyI3@;yqoctzC>%lSxUxb+ z|7V7Vg3s^3TmNI({|`!Ip!$QD`hQV@&Ht>l5TmSd=@c!@Z;q~9f z+Wxl&Oh?e>f8aDv%2S8g72&?~nbWrF2VeTP@hN%I$ABJIK z$TTt=rVd8KU_|cDad?K-3%I+0QFfwWhy9) zKz&`%J^|1iJ!tM9ROf@nCP3*Dq!!dh0<{G|>e1Z;>H~w^3fdb7@)KyR05rb>I!_T4 zM)3K6=z2p?T@S1CVKhvP==y)(|Nq+UTmQ>TO8l3Tk@+t#ulQeHR_?#Nto(mDIr;x` zGP3{W6_x(WNr-^e=uW=~nFqkN1^`3BKzQRE~q< z2^43b_$0Re2h|s#x&np?)&H%|4F4CEx&03fi~27hDE41kTIqjhZOQ*N-C6&aG^hNZ z-(C9O)5H6}u#m)mDLJ+Ol{tz3XU41iZ*qdJ1H@7P!^Z!S-Gk1C@zH6J+hJlLHVoqu zgNb9Kk;QPaLH%Y>-w2lOKxq(^7D44Gdi@VF1B7920@3*RFgbJ@qz{B);vhB*gT!DM zCI+HG^*aa?s{cWG5abuoSRE*@g6aa0Uq^kRA{l8H3CQVRSKU zd~|ilYCvpU@-T52jjk4193)392I&J~n0jP3J~3oDkRA|57K5>2G*)@oTm*=Q&c%S# zgW>`-ehrFia6dRN??0%F0j>G2PD%pT*PwDAl#fATpz(81eF$3n4=V3LW`M?sL3Jz6 z`ad)CKS&xSNU3u-HX+yWXa0Oe+3Qw{~BqX|1}Gz|JTf$_Fu&%;=i1< z^nZC!TR>FszfR|VqUwKhX#EdzD=1D%jb=qj+HIeo(lB$|+EM zfa-tb{y(Vh2VrpC0;)rh>UWSB2!rYZ7{=g3$NxcPA*hT1jr)Mc{Xuqu>VHt17L<-b zWhkhf09vC4tN%e}!7$8xQfZKWY}xK3#!jS?J-a}0y@_gR0n~^sX_f*P&|O*A2crm;)Ci=5F1plf$DG2xHzcZ z0*woRXwWz}sGdN_pm_mMT@I@AKxF~QOpyJcele(?1&tkm>)DC&K?Lz@)neiLH$usxeHPcG6P0~*w`?#Jctd#aCIPe zf-q8B1uO>>gVE^nNPHCYpkV#l;4NIT(Zd0&RPN>TM7P z)%&2l2CCOV7&NvGT4SFX5&}N^7gUCW))Rs5=mxddKyw73aeq)942mDncn~P=K=l^L zKcMjd(E348y^V}PbvdZt2&%t9;{~9-^Puzv!l1MOYEyvfe^A>2qzwxy)W!jc!!W3Q08#^*rvR06pm0TY2WTt-)Sd;+ zpMcsdpf&)g-7>ML=s$=C`2iG`pzs5web9OaP#A#L27=}VKzcwJwD$s3_rum6nEA$o z*Wu$^|7W!A|9_+HKmIFw#Q&ESfV$|2J6j2HKm6um4X}{SWH@qpkk~)fXU)ul@&(;ZN`v z`rliX`d?MU@V@}B5coc$89mMaXLVNmpV3kIzqBCdzp9GHe>M(*|6wty|CcvK{qJyP z0-ps0>hFWs03eM6!0LbW@qdt8K=BNsK^VqHreSP!d6+neM#jkMU~G^)G8@E4#vnNm zMiv9rtDt@pC`}@#LD0AwsQyP*3(|{@LGmy$WHv|)7at^!4I}G8mIsN0#v(xVJgCk` zra^2F28n~_5Ho^l?Is z6C?)0pt=AZgT-Ov&91KS`#?c`epnoX*q}NIRK|k(4#@RCx_QWau-PE@f$BIU3=)T7 zWc66tAisbxNI!^%VPrmt4Z|RL5F18=*k~AJH^?p+4Pt{Zj1QwhV#H#Q9vH@}2j(tl zn1kwBP@fwXrl9%_v|b2Q|AXVx-5q?^JE(6B8e<3bOF`%3fa+>c9~6{VLG>GGJP&mK z9jM#^_4z^V0MI@0HrTbUj^hQP?-hl zBe!K|{|C)4gX{*G0UDDB)%~EmcR*tfpguWhoj!Q1!psc3M+B5s2w_lr0o1kurDsrC ziHr&9#U>9j2V@?|Tx5Ar*#%m=1Zo3-)cv(B46i8qgU5;PnW3dEoO2i0S`>&IT}8{rbO>xhtgqFDdq4Exzu*!MczC z^_RZ-ufOc^fAxfh|8kPz|7H2u|0@_;|2J6m5^|;hf%$*r`X3Z8gvS4gs{fJp|AFcZ zP*}lel=>fSuD;2U;s4Y~ss9Znng1oFmH*4i$o*GTRQ|86ZS>#J#OA+|sm*^`IhFr% za!UV`Qqun~>M8y|C0q(}1`tx64{irQ`RMgO%pJ%yhz-Lqw}SY{Y#1L|48(?EkUR{7 z#6WC9G)N5$gVcgBh!09vpguDw4};P(EFFUK7Dx`J4n%`6NDm0Z*!XCe985io528UB zn>a`egwf@Z>wi#P55u7H1k4T%{SV3?pmjH(G6j@}KxNZt{Xa1EKCCVVmCvB^4PO6) z*8CHw|3P&CsBQw$xG<<50`)aP^#-Wi2i5s7J3(~=NDh>iLHnvebrq{~jLTJ2pUL-JrS)G;RnQ(*}+IgUkS7 z(0L-Dx(yWmp!x|^?}OT5pm}o8c|D+dA5>3)&g}*Dfk9&h@!sC>d2!G<9;nX?8nXvs zP#XY7gVqp$$^uZFgY<*$nFnKUZ}9#?kT@tUfcm|laRN|(c~VKqe~=qM_krhzhyTwA z3dJ_ET26z(7z6n~&G7f^cv zv_=pVo|XZLg!}(H|NqyUbL+o?x(=j&FDL(BQP=dplC{@=C2Plr7%ge}u z*8*x)ul#Sc`|p3l%{co0pf&-Ce34#F@#j0V+5p!x(fPYN0b1(o@*_)YWo2j2k$ zDpx^u5pw+x(@zWyvKKUt0BTEs+z4WW%3cr~B!_{a?HZ8VKy@W(4gy4@W0*W>T>^?6 zl75gHa2SEY1lsoo+Y4fYFtmQha065v-G3l;ATbyXVuLV<55pin7=!A4kR3?l{GhrL z4C2KCuNVG3%~fx-qfrU23d!k{()$esun7x11? z(B3joyP+mI89a9mD$7813TUl9XuJ~??w~$4sH_9|g%}JfS3qe2gh6^iZ2=GljbDJr z;qC3g^VRS+fu$vQKLn^w2Kf;*CIZ5saDmwe7B@5d52j5`!DlFg+yvr-Xlxjy7i1Op%3Kzz`+3@DsHV=5*-u|(DXy8S2q%SlQ8mzS0OFE1zeUrvzc zzbt6apD^!#c}a2boPdIw)_?8lW&aI#e1+T}1ght8VOag|m+&7nKLNs^xG9c}{SVsr z4=%&Q!~cWg2UNy`<^(`xd46OhI6T2^Ejzpa=rnl$KU)7ER(F7CT=hR_?O(Ga!~cba zw*O;d6aMq^3jUXuSN;KLwwAbCPGObtjK2!r^@7$gS5FfkY#M1wFk zanK%rP~8eDpFwE{l(s-LsGI}k8IT^BUJwn!=wcu~I!0CpV#6>@9X38p4xI+61-TJa z&x0^Hy+F_Y2k}7|l)gc8Vjwqz+A^U011f_+3i2DMege50nFg^z7$hD88iRn|^8*qC)r%m#APh1GY(CUn7#m$2#0O!p zJjg9b7$god7lc7!2dbAr^$Dna0AY~7LHa;-F33($eGbwC5(C9AXwDm?4pc9K)PU+B z(E58&J_VKWpmYIR3lAEX2jyRo9LNlieW0;z(D*fS{SO+?2d!rVl>;F2K=yzzhz%M` z0O@x*C*DKyD?3LG>*tK0$3B zP<(>g0N5}{4wN=QVFpSEps)g!ufYxu;Ik1xbvMXPka?iA0>YrQ15ytPV^H}8!XR~^ zatzdF0AY|GoY>qPWgY|6#(=2>nFC6i@ssd3>$v)!=n~;C{Zm{C@>yt^e|B zTHrB%IdKt4yFftV*t?l-vVv_KWHomw9l_3HWobgQyw4x zAGDvMA|c^F2!r^rumOb+ItJJOp#DFW`+q=n2Cn+Q*_Gixc<*0z;D1*SzyDmEy#FhmmBl{CKrbP4K9q}b^xf( zN5-)FAJqQ`*$=A6Kr}MOCkB#(VUQjW8$=^xkQfNV#L(FwJ_v*4K{PssiGyem2IVJE zoe4^>p!5RD1E919O4lH9n0}C2bT&*3MuX&Wu|aYm43kHuL2MWXsR3aSA4Y@NAa{cD zG^p+eVGtXJL3~iT0=jb>RJMT1Vvrv|YmPzVW1u`gis@hXgTfqC&SR_pL3IYGo&eVw zpn3;OT?LkdiX*c@vxCfoVNgE7hC$=MU~FLl?)!oK4l3ti7}SmcmGPjo38F#eG6;kCpfVp+ zUx4aNnBPF>8-V-(YLA2JM-UC-BiBK&`Uce20f~duVfY0ajws@wa7V(RumHsisC@wo zGmtw#?gRN1R6c;%Ap1b${h)dmM1#UM9L;=?yFv91sDBE|pP)7xD35~bbxReD=4>Au_w}AWwN|T`eC1_n7s4W1BTaf>V!JzsGR5pUz0id)8rlIEz zgTe)bLGmCB3ImWlC=5Y%g4_j4r=U0h_0K_J2`Zmp7h0A~4{zL!u zCLH^(U9z7|NH6?UjGksBgmcTY#1M%2B`&Mm^g@y4a4MNG)xVM55gcmh=yTM zz69k(So#5_D^NNF)wv)HQU}t53xniA7$gs(K^Vk_VGtjNafzYJBdY_kLGA$6_n@)_ zgh6Z=2Ju0D0M-AXG67VEg8Tp~Q$hI%l&?nd(5U}GWj3hX1JNK1VuLV<4ZtN+7D2_pFQ27DsbAjq%P~8OTPlIS={V+C+2APS0q2u2mHJ~ghA~AP#p1XSOE+ykmRK=y+2706sr z9Sv$DfY>0lAQ}`#$TUbCG)4l_3##iueb7 zcToM`486w&G)@ev|G{)l4tU=`XimQ~Hy3<<9H_nrt@i+x51=vx6!$QuRF z?T3K56C7{W*8f572kq~Ntw{j28$j^@>U)9YKxrD(#sRq#)P?}H&p>TFkeQ%<4k#^v z+L$1Bg33HFhNeZ37&6v&4JT0l|NC#W^VfeBuf+dyB7ERBfLdt5f8%5S!FTw9`ueIN z1>kdkg^9QMiVQ~Eq9sdW#J*b`l(J+j&{&!~h-{-^e ze{yZ=e>ny9|Ga#{{{w@<|1Yle`QKp0@W0cA;s5OF(Ek?JPXBrNMgRNy1^-`O?f1Xe zjq$%KAH#n)RmT6l-k5g^BiH{RH^AHjqCprY24lncAR2^W;>a{I8=o4GIv57217R2+ zMuWsa7{mwBFbt|YLFo#XRzP_cG=2w4m!NopsRQW)VGtjkMixV6gVcdANDPEQY!C*q zVHlYYVuLV94xI+o^PoB(MuXTe4Dti4{s;B_K=}ZaH$ZtEl!r#~;H&>ZX%19IgX#(} zjbrW_RIh+AvKmmo6IA|z%mCH-u=oYBL1iVVP6XBepfllM^*_uEm^mOmJ`7gp>iQql zM+DgeZUaEaS;2Kalnu)_pmG>gpM&ZMP~8S9r$A{DRF{J53MVJ<8dUbd`thJW z+@LxIOi!k|0}qCsr}kUKziF{pk4*F8>7;CTg*d7!!<=57?ff$Du2 zhSvWeb)a?>sJ;RD4^;Pn%mvMxfy!f$ogn*Q?JSTwP<;(j3pN{M9+Fug^FSCR2cki4 z1GyR0b^!IYL3tHq9!MNCUk|DiL48}0eIOcS4=4|V>U+@oJ?sJ#Hv56a)5dJ$CTgJ@7&0MvH`nGY%xK<5jA%mLNCpmPU7>kL5U3g{jp&=>%S z4~h@a8bnao6T+bQ1&y5=wgK4-N}r&42~gaD z(g}zU5(l{(bZ!vHY*6@t%3YWoXdNG@JOp778>BYH&+k9T@1Xbqg*CiQU}pzj%LNK& zP&xvYgP?c>#RI|qKj>bdji3K3S-AZN)$ej*!v8h$ra|uc1Dy+S@c(~}tO?+80XZ>& z|0>?e|Ba9S|F6+^_`ix*5_o?g)-eER{jcL14zA}xVGK%NpgaF`RaE}#C@X`pwvy6+ zEhVM@njoyG_#eav+5~~XB#s7S69{e@2)EVuKz*n z0NULd{S?GyKyn~;VD%mz;JbK1 zbs4CP1=$I!GeCBN{0OS!KyC;5AEXa%9;~efG8?H40Jak<2WpFe;=$3_7<4%E|DZSr z)rlYs8si7m>!A7_RQH3-1NEapZUMO+)HVd2GYB#RR9=AA6@c0Xpn4MIXF?cMuY%$U z6lS1y3@Ch1u%qLDSlth+|3T>j)K&qNV<5MJ%2bdX$j_iO3vxGTO(Ljn2i4;s3@YzH zav=2}3|i9)QU}5yb3kfAYCsso2Kf=B9^^mJ*a|2fK<SF%c>HgxtN1@BS?hm;9mD@VU$+0V z>l6Q5*}44}6O;Mx>lgBWXqCps0Er<`oATeAtvK)+!O)W?ahC%9J7$yd)PeJ(`RK|ePKd7w;%A=rk z1xl+hb;$Y%u|e`6eIOc!VSEq`!XR-%G)xW19iTi5!XWpe)1dkvwEhp&wg#njkRL|t z|3Ogydwc%}m6@PC3@Wcd^$)22f@4tK0j)zoa-ebxhSB+8anOD|clZAwHYlD!=@wLW zg33M+29=ed@()y(fyx<>8KAlbRQ7}Ppkt6cx)=r@T6ec>J*UqAUO~Q)s=AU z>G>bT28n~zfH2r>ko!S?M#7-*0N346IZzz~sz*Ti5LEAj%5jh%z~+J43!r_J(0Uf+ z2V@Mk0~)TN@ehz3$Zn83U>IZ;Xv_g*E-0Kp`2~bQW8ok^NF3xpkbR&w7RU^c9yo@X z4|M}r93+N@LH%FQ{5r@VpgJ8?mxJd2L1u&E3p5u1niBx^k3n{V@-RpZNG%M5_Wpy` z1a{@*fX@#G=>@Ix0iE>=s_#JNf%f--#`Hn;KWLmEbSExoKQPGsps)n30|b>DAblV^ zKr~2CPk#P?(D(poEQ#1Q0LY!7Gytk!(J`p52gMr*gX(yY|3U2pPOpLfS~&Li{|{0F#{mK0b`MA%WG)E9%2JSC5C-u<=7anW zYKQB4MByI)-}nc7hM#WVk^iznJpbi{c)|6&-i*ut4R`$iZwTuD@B05=Eimi9tfgoNr(9!u18uy1`kQfMq!WvX|V8ihGAA0@|$j`_arT&NZ(Lw9=Kz00# zWS#%ZC)NG$tI7U9t*!F^@~*7^-G03PLHh#R-5CDQDf9oIm0S2fFgW~wYHG&+l9b5* z3E^S?pT2zi-_=Cxe}X#0|8g6a|HZb9|I6(ez-I!1#sWa=|3UqKP}qaq0;54}7zT-f zFghPu3?>JnLEd{CYN)%hR{axXFsW<&S?gWL0!XUMv zIt)~If#Mldt|7-Qs5}I%_XgErpuQ)_4iERg01U^*6|>DkRDK726h`# zy8)yh8wS<;F!Nx01weX1#oc2%0wl>8(#mfs89;Xa5J?QwZ`esGR}|2YeV5R-kYL_5VSB1J!59Z2(yP z4+>)t2G#$d^ASMf_36+$8???5T>snJg6nXQn?dzDXucH`XCN~{VFgOdAaN87H3K9D zOZOl)7zYIW2b~23(g!LtK^SBXs7wTf2WbA?0N45dp!$F3|NlCz+y5(S8i4QpRdx*e zZ?N>mf5UCi`hWNT|7wwC;B^5~qJsa0jNSihr?mgSbM5l~b(^;Q7cX7$Uw75B{{{>0 z{x?|p=09l60Ne(E)&Fi0;IR=<*n#5E$<*|}wZ1+W+ZY)9hhbYJHo^KII{y#yD+q)9 z3!*_7rT$0i|AW^5wR>^?pPi`re`&VK|7AI5|EEUE{BLrG&gr`_{O=Ew{GS}|{XaG# z^?y}m)&J1&sQ=4XuKo`Ki80ateJphTyPK;0R}*FVAEpc07YM8WVf+7JZUNEQFvyL_ z;xImphRMPB$TW-%Q-e&ywi$*1f?lZ+JUJ>r$J`H#E{t_F%U); z1F=CEBo4zMJ_sZ8k=e*{p!5sM*B}gXF9^ffU>dalKOzFWz69iUP(B6Gpz;KkPey6_ zw*f%)GidxD)c*t5C!jhFia})^sC-7RTR>$zSR7iXAhSVopt2fNwu0&~P}zP%1>2g0E84z32dT>xT3+YIRDgUo?pWOG60fHBm)aD5=RLCpf`1Nj?-LGA+emqF{` zL2&>I6HxsI${!#MVuQj8w8s%tSAqNm8dCx3g_#Yu4`jZZ+kem)1;~7m9LSF_4B~?@ zNI!^%VURp%Tpv`og2DoHHXm#*AC%WYc@$(G=$>9s9~m@G4(k7d_6dOMdk_Y-1z`Pj zkbgjJKhRu1XnY@Zryi&c0pf$&njm+B$_-F`3ko+-Umw&?0L>|Y&I|^vs{@?_2x?=1 z#tlGg&p~E@)*XP-DJVRM!5}|@`~!+xP<;(*1Ay91u=*cVzk|{!Xzm{ruAp)Vp|*34YKgbS4 zuNd6@fAHS@zyA%_eEx5+;>~}96|esruK5J1!#9KW_Wk`28voa9-u7QhOXq)VWW;~} z;L!h_T|NK*{QC9(-1+nWBXTPKr#DUfZ{Zp8U!!^rcy9oD{SP{m6%MtN(w)rY-*u9y;{@^OrB6>i_?(yLbPu-?9I{jcd?<1p&tY z1)w#9?vOSBsQ(YD|3PlRhC%KEi6he>HVnh$KztY*L?dHlIT#xz58@+ZWN}<<(AYVs z?F}jiKxrRTE`ZwXpmnFn^*_3Pm_0CYQfQD~boDSX5DmgGc^Dg`&WD}>01^jb(0Ctc z&H_}%f&2g}TR`~^l($AP{p)^Em?PK!pz;`0e#0=R+y}8i^$V=tK&N5#2r>;a2UISA z%3#p^F~}Ym29=K>GeGGW)II>I1@V#XKsF1+MwbWm>p=Au*nOaO0|>+FTM!!=L&ZUL zET~Ka)dirjWKbFeVNhQYbS@mIeg%nx>H?4&&^$h9o)=^{vKv9}M8UA}3S>J$Y>>U6 z{Rz-I8C36q+E<`;1Ryg(W`pV=kewiRfWiZmCqVsu5F3O+^L?Ov4hl<<`$2UN2*ct8 z<_-`aZoZovc&#C*t^?J7APiOqb0-!WRG)#$7Et{P+Jg_O|3Q2EKy&X!k&)ni3*d0F zu=o$U`xR6-gX(=42G!r7`+-2?1fX$yP+tY)M^HZ=RG)*!dq8^(KxqKvR#2S}n%f8M zB?H+5+FuA78vwOyK=mqUJ^^&z0H|CEcXs{{>RW)?0HFFB6h@%1AqIo$Z%{ac!U7bh zFd7u@APh1OM1#T?)II^(4N9NL^*^Xy24RrfLFFCDZy-G&bs%wgoe!$VVf8wU4WdC9 zBo3mnVUQdY8+t_(sQ>?f`}#(^{)6WNK>PaOeRy#D;NO4!UH|{<=1uv(XU7(BU5HK` z+q~+(c}VJijpd{6H8KuON)G{)dhQfYmE1VbIz>&=~<9>H_~~&6$tl z&7Z%1|8MK){qL$H`oG43;eVeuWG^7{{6EYcFdF0@5QgzVGzi1Q(Amg*m>Lj`jFHu# zvq5|ihN%a!K^U12V}t5{&^S3Lf5Or|sB8e0t)M&xQwO3!X5hjwc^C~-2jYV;h!3M- zY;-=lI7l9ZLE@k~9^BW5*83nf2!q5y7_^oblwUw)4JaRj#xh6i|ADFZLFE|;gW8p# zvK>@cgX$1a`HX@=^%xX`%5+eD48!PrkT^&$sJ;Z%?V!31J$^y)52}wq^&F^t2Gxlm zeIPLqjnzyf`$6)cx*t@YgX=^OkN+^eApPhVq#o2x0F_gqbO*{mptJ{~(J{zPFgZ|O zgM|yoF1Q__x*Z9F+ycVL@*q1wVF?NckpDn+K1d!^7lZ0rP`H5Vb&y>kJJH<%;)CQt z;R9;3fZPu@2ekG8dgc+xJdizLIZsdU*}9;*4&+Zz*$ZKsts2IZ|$JTUD5P#Y3f*MQ1u zQ27k1!{HcO_oCMs*!ZCG8&r;h%mDRiL49d#@d_%BLGceNGeCBN%mV2J(@6bO7$2Pm znGY(@L3JId?gjOU!D^sm;2<_g4VZRy1+NDHxdoPYNTEUQ1ceXCeV{rD>5Xc-@8w8gdK=Pn`0n!ID17s$M2KfbK9teZjpf&}_ z9*{g}yd6}}fy@WBEkI>A$p6R~qz8mSV%TUAdMx!gxZcNB=i?I#2%xgwQi0I>QWRQH3}1nYm$ z_&+i0|3UqHXuls+S7Tr-@}PcwyavPnoQ(AUfB*mg|K|NCuzwdVUiRNzp5gxlP~GnV z>HCAsgVq1A^M62f7AQ_(G>8qtAU+Hu^U>MZ_#iPDhM57QLE?R33w9 zP~8WrGe8(5k50qHKip4yXoS3B#baDrhVK)VBut4P*|82GzST4Dthr4e|r1-UihxAhSSiAW(e{Gm8)n@(ZXg z2bm8t6GVgT1J#Y7H4mWp0p)oR2C+eP8b}W)EJ1ZYsGR}wE66P%eIUPs+ytUwd=L%7 zC}QsJ|3UVG+zJ|31dZW?#^jOfcu>6$>Vt#oVPtVoTLH!g$${qaL4A5qI{?(r2iXNG zzd&dFfcykvm&L__+hm~n6SNNylm0w8-pch7>#2GF=X$XrmH0i+((1|xPK z04%&g{sP54$d9132de+U*wGQ(&j-nY)2g2zc$^yK1`r>VPC#PpvB-$+9PUjKvY ze$aXVP@4c0Mxb^)HVp3nW2yf^;RdQhDCz&h)&PX)3;y4<7>tiB2V=u%m>Lj` zECynOFi0GRVSEq`$}^xgG$@b5(lluQJS=a4^nlbM)5vU)90-HNkTEtfba|K>5Dmk~ zYG7=T9LSxZx*paJ0I`uVsQw47SpfL~RAzzF4yauN%3Gs&VA=tovKN%DK>brtodQZz zpgIIZ!|ESUU4adQ)S!ri=DXe9!S~OB%3M%gh#s$?_y*NepfVg(?t;pFP#uMA7KjbQ zDCWc32B3aEbZs8U3{ag7G6PgMfb@atOArm$3snzV8wU~xVPrO#4_fo+<_12)50pNU zF{n-i)#act0`;>&WgW;~kUu~eTvyoJgY|;iJs`h>^dOsoiw(*LAhSVZ${_cG!UGiU zApd~;0TKi8L3KU|gW?8MHiPOQkUb!CLGA*LlY{C{kXq2*0+2qC86dxbFqjW*MhFX4^`QD4R?ov|m>4o2BnI054_XTVY6F1kZP0i*s5}6j2Mlr> z=p0#4`vT-vP+9=VfyMdkm_+TA6CEPqd|H=7^;S-`F~iQjg5wm|En&1`oCxT{Qu9dp86k}QSv`5HUIzH zyO;mhOGELe=B``aNTdBsR^$CVRb*KO#nI@$QR4KKcM^p!tnYZ zy8aJVSAb|x*pXZRx41F<@AhQ)Uv0zi-`-gJe`Zn5e}60O|AER3|2<7q{uflV{P!}D z_}}Kj@V^~L{~zWC7!7g{2*daw8X1G+Ko}+lVq?QFc^C~+17gEybT)_&!^moo#Xw{H zpmYXK_s}!VKl58{K^pu7yq zzvwhrEHo562MEf;pgtAI{hJXIrAG%f@R4;(aWmug7 z=0odY7#k)BqCw-*p!Ip6x(PI9x*b^z%CnFDe=s9pi}`$1s?V#6>< z4i|>0!AFDAJq&~F0=XSjFTvaf4r^#T3RFje!Usfy+y-iMfX?CrxeH_m$Q___Ktc5? zNDasgn0}DoNyVUc49IPuF$K_mJWw4DtN%fDJFKpU(I7Dx28n^xg8J^DxdYHR0B8&V z)aD1(r=U6%6waXgg+cvmkefk$XwaHq(3lX24^ji#_XpYo2uhbA^FVC@aJ}pA51u~& ziG$q+V>UL1w25Q%U z$~{oIjDlhHIgEzZ?O-(^F%U);gRw#5|HQ2SgVovCXwZEA?*IR_ie~*Uj1Kr8Qr`bx zY4Yj+iakgErxjNI&(6*NuR8z1f5V;7b$>83(CdHDIhfAQ|3TybpfP?!b#?H0zo0%p z2!qxGfX)LVs{Tis{|AK^sGfk)8d8Gb^?9JW95g(RCj{X zJ1C!m%2|*cNDWLaj1A+%Xk>Ai7&aOt2Es7)AR2^0VlWKjgJ=+jiG%VDxUNT9|A#CF zDhoj4v>>;G`~WJuK>2DE)33fq4{K0)3QAYt`rpF?Tz7)%PY?!`$)GYDRHuMxEd57N z9fK?f(gPZ21=VdJadi7YWj?5%3F`lY#>qkT8^{b02B`wtc>{C|@()xD_5DC@1JwZ_x5DxqD9uuWLGA<9t)Th? zWHu;VL4EodFE8-f3m`XuFh~rPPe64#$W5SjGH8qdq#tBIDF1-`3kqjYn+>E6?njWH z&@f02hC$&0!XQ3~24NT*)P4fl0~!MW)qCJ|fN5#}L2K_p^*gAphtVK5GKPtR=KVo+ zKL~f_<$>>w1J(C&o}T|fZGDg)&^~*RKS6#3oiPY1!$9ZffyN6!=Lv$=2!O^jKw|)) zbpxPz1dtgZe}d90sEr9qU!ZURg$E%F3U5$a0F6h1!VJ{j0UJ27RJViL4RCcJahMtyO^x+`p!$60|Nk0M zrT-1%YyK-uzxH2m*MBfpZQ1o7G`^ra^%Ug1U{G5Dq#lGp_5b=G|8+g0z~}#f=14%{ z1gif*bv@{uKXYB(|2ELG06^yggU$p7%?S|f|0C7^pn3unW-zQS$@jn35z?0j?fFBg z=ke74ps|0@{XRiDjQ^dK82(q;K+gFC)$O1&|6+9+{yV8K{BLk({NIVC|L?EI13rTo zKPXVuLU?Igl7k4n~8-kTFag8;vdo(}yk&;)5_KJ%Z8?C~v~bB2d}~l_8+E zHAp{59f$^Dd~A>$41?67V~`w748#UuLVTDSSX~cm1HfpII0%F4e^A*Bayux`j@JJJ zSMS5>Wl(tvN>`xz1XP!R>U|gnmC+zJsE$C!p!x!Yk;PzakRDLF1nsEpdWU}&8MG8cql=3%2@@?aX;R|csAtqlY9jX~u*XuKHY7Erkl9}h>e z1Ed}WgWLceQvjI@(hH(NbuXx{L9Tm2ZU?1bQZOjrg2EW&HjufXIv!Mqfbs)q>;V)G zp!y9&gTfqC{(|ZmP~3p*2I&WlnSk1Apn3|_b^y5%gh6aDhWZcWFOVG|8ibMAAU-|} zvJ+JQgW?8s#}8;PAZ)Eatd0lO;UG2)BlAIhcFzH3y)1e~|w{;Q*>@L3aXx%mas#L>1g^V5`}6|?!Rtjp z@dw(=3=;>H&u}(!{SIQoFs!Zz(I5;H2hjlm{|&t3{u^xg0p5=X-j@%mn@Po+|NhsV zczvcgb15o|%83SHZ0}2yR z7=h}4(7Au0bALf+{ekO$Jw5Olz`DxH;4=Yh=B)&E`${|VOr zNbLd8zCh3%K#>h2SRZH|AV@z*4AeI0@n!&<+X%V`7+Iei!~Y&H#{XVgkoq6w7HsYU ziGeUo9+?djL#C10Fts2t5C-u<7@ZB{!)TZqbUsKNRR4q0A?Un3P&oi9cR*<$RDXin z#UMQ(3{nfi_}Cyh7)DkL5(Du;7{&(CAdF88BoD$MHK4f&Se=hfgVqKh*Z&~*gUT9E zp8!@jjMDUP4}j`_P@Mv*n?Ut7sEh?;Xuld(zktM$>kV{1NDd?hQV%LaL3JkR{#o=m z1=$Cx(?Dq$RQ`g>c~IR2(hD*J851i8(hsUTLFz$fgXZ2r^;e+a57)Gx1L1HjIj0U$A($oKg_5p(00HFQ}$gQAw2h9zD&IAI*2`Jt{^(ttr zA5<=Y&I1PRF#ydwfYt|q&I|&z9YEy@NDS1j0M*MNy`Xjjh=zp^D2(u7POc;j#IIY21;`#|dgw*LQbyyrjU zydX3)jCTD0Z?NLke?wb$Nc|68{|{;hg6{bP_5VTh{-AUJK<5B}`u<=sJ-z<~>wnPt zKj`_tps)jl84PPHEB?b>AaM{I8H28uG6B>#0oDH?3{r<~4!Rgf9)w}yAT|tx#6TFv2hlJ-hz4Ph z7%~QlfiOr6M1$&hP`wYrp!Pb524NT*l+R;5JmB}Rg2q-sc^Q<4Mlt>Ceo&Z$%4JYp z1Fru;*AUlvTs7?lz#h`Qys>?w2 z0LWYzMmGx;akXfKL2VnCpEWl%#pne*tt^n2l$o>H7N5&xiV0l=53LOgo z`3E%K46k!tUBTz;fa?e7+9y!G3|fN-sy9LY0_9B*2C>ft)MmlD9)fXSR9EB@)roBi=*?A)qwIP=)OHr+=J?5P`wSS z>tQskzK8KaGzf#lL3K4~3;;BL04f(iW`oX|s7^}y5318aVF^kbptJ|t?+2RW2cPv9 z74;uv7w8N^ki8&rP}u@f1LA|y5hyM}`ao>~Q27UHe}Te_5C(-MD9qg~EdGPqQXn=c zor2qUp!y#PgW5o#b^_?`DA0Mm;QAk0kAwRBpmrcAEH! zMyH`-w&phf^%mUzZ?yOSf5Q#Xz4>T$HBsXNpz{Ec$M<1oZ2tG(5QJfT5WV5gf1?Bc z|Le^-_uo?A5S(Y={eM%_|EAj7{|(jDz-#|N^*?AGptiCycugRPPgMPnwEqtjW-#pT z;QHT1j^Y2*0K^@Apn94p3~CR!BhCaw*8>_0K(7Bm?S+Xx4F5}P82-zO2*T@sQ2GS9 z2S$U~AdJk%#)gT3Xb?u%gUkoXgD^-8gz>S_d%7W0#vqw;s=bOZ2(Xm04nQ1^#xcQscu0L zgVseLH6XJ*t*ycLpMvZ_#vnUDWiKclqu2i+y)X#vDNN z*x-8B+#GzKImk{>y$MnWo)19s14s`@9881!fP_I}U<_R^2Mbr+~T0AhpmfiP&S z7}R$JwFy9DTA*<{Q2PhuM^Ie@%B!ICj)Kk2;q71)aWk|3AblV`AQ}{wpz;{Bo&n?! z1BDwXOfw>5|Eq}c{jacvi~)ew>VfKPYGcrx0BCJMpBKY_8ySZG zUd|rieV!mUfH2%WK|x?~WIi$*n_8F{NF6$c$$@APhRLI|VSEq`!Z39p8pH?H{~$J~ zO$sX)Ks1OC5{K3QAhjSqItGb@FtRv^55q8VbUsKNT@1uW7l(wj=P2ki@k>Jd=P}FfA5;U!mK;yNbdK)AT)(5KNp?zkUUJwn! zV0ow<$XzHH)NTOTfz%!V`3Gb+hz4Ph8KCwDsLlqp1wdoSpmYvuW5LD3`6CJE-pss>@;ZJBWs1P<;<#!)Op2q!u*K59;fK>S_>%)%Tz{0I@+B)Gh#(ZJ;xN zU}Xb{57Gx3O9WvMA9NlNsQv}H7vvtWdEVatL2Ur!F#yn<1*lvkwk-gP2TPH!K>O^VemgZW$lPuJ{~PW5|6hOJ_5Vi3*8hX-?IGj; zp!NUI`X5yHgUg;Ury@;SX0)#e8>x0?>)WV?ke;^DpFGQ2!zov@n|HAl0aGZkN0CNk7 z24R>OIvbe}Qv;$w7$gV7=zN$sj7FA+v9Zy}VxT+#(ho|L$mtuj7YH;qg{%GtnE}Ee zz1T2F4unB+AR2^0Y-|`N2ckh3Sq+SjT-Sr@dl(-^gU0_sc^Fi_fiS3C#8yXu^4Tb+ zPrCqAhJwmDP+WleQ=s?()d3(3s?R_eRNsKaQR)d;9SN<2U}`|>K>bEgy$9OshaQh0 zb)Ym1stZAOfb0Z`f%GApkIaV2!Dw_jxHzbO1l7-=eSy&Pfk0(E$UabA3i1o6{sGws zs^j4LpngE+gV`YSKyn}&gkfxC8pH;L1yY*;+#Z0=rGVTD8Xo}l7eQ?TP~Q>c7Et{P z3U^Rgf!qkHvq0_y(I9cqeLx`hg3JQD1!ND*4InlWhRLJTAiL2qHZ?FYm|9T0fX28% zc@z|npgDU`9Sy46v0+f%55gch&>DV_T2OrsDw{xi`#|+I2!rZ-5DlvPK{N=1)&zpq z3V`POL1_iF&Iv?=$`p`ZP&oo>OMuD=Pq=6{0GsXeE^_v!dL%SWMqKvPz2Q%pg0B5APi!IaCSuG ze;qB||5~CP|Kkmr{^#2;{?E5&{GW%8ZLo-;tHHuAuwne4Vb1v9QHk}xFfZT#w8$9n z*gvuxKx_~Oxd()?u|Z-Wj4Y4L2eDxoqy~gxd>9Q9L&hL+5FeR_u|eW6j9mXCr)f|* z0ZNmgF*1-^kX{%D@nIMw24Z8QL1M@lqz;6U#n9Oxc@PGPgJ>9rt^Wh%Sy-Kq%m(fC z1?4SJxdOtVdhC^V?vg`Q6j zDpNsg+_0_f1l5C}dJa^!g6sj+Z=m`Z#Vn+{4Otx7ZV(%Uk>%lRkXt})08h{VpnZIx zJOk<*g4)j@J)kuxAR3ew;d-EUg2d6qu=0_@1SAjB2ckh3R7Zg7D-Z_x5fru{HmENT zk_Y)26c(Ve7StvHxee4N0MW2{5s-SAT96&o#9(uA_!(p`$ZeoH6%=-$@&{B$!|Qm^ zoO7u+6PdbnD`&W2bCwFGk-zr z072ykXx#v4o(dF($a+Cyp!oz)n1Rw9$R5xf3@Ckp+)WGysRflqpfM>>c?xPnfcy?> zqk+r>CBq9*}+z2JvAS zosTRIk^^Co7>tIoVSHp7#0FuI8e|L-L$3cp`4)yj<9MJsyn^s>a2pep-$4EVtuq4U zFZ4QTluy650J#5eZ4F*q0xDlYbut)(&e(;m0f5%0cI%N60#uG*i$_rZ z3KajKvKC|ysBQ$+g&?z$>m+18vN$puqy`%Xs{!o`^zZ=hGXs^?pnf69UQjy+BoFF~ zg7t#j4eGx`>q4*?4mL<1NFGLm*f=q?eE?F6j6roP41>ZO)E)rw!RA2qfW$#z0}B_h z9Fm(r=AnzB^O4mcvys)Ii=*>FK08}4<#`Hn`dQcsYj6roj2!q5x>-9kE_dxLu zsv|+;_@Fu&hLP)TkQj&$_N$v4xLgK}9e~UNjW>X3(Aon~xdJl}v|kdW2c#Eoc5Fdm=VjvnB!^Dtj7@LqfkUU5&2*cPQ8iqmQAdHO<5(i{dAPmwE!Z0?B28p3# zm>h@(VURqC24N5zgpt`GJ~D>MfoKp0)$^b_AJ+E=(J%~Z%Y(`TaQhszU&`G4Kd5{G z^$$RKb`;aE&PNVwP#+3Z7lZ0WSXm6Jdq5aeu7YULekkO611lR;-@3bl=SD&0Ca4dE zY!8eLum7#B|AWj2VNg8>t9xKHRy&aDK!Wnnx)fwS$X}pw08oDxRK|nGJ3wRdptT1e z`#|*uhz6Mnqd{zBj7uC@4F((J24oC!KZp-)Z-C5%VURmv7$gP?6Abe}`k@%4283a1 zkl8RXVrZB?7!A?`V}t4gPS!1nM1#%>0QLPr;R(9i7gX+p z+F78w8oAy^W`pEF@c_~T>c@cW0IeSco%;hSQ$Xz_P#Y1X4yF%AgT=hP!RHEr>KahG z1J$u0J3;XbayvN~q!-jb0qF&;IRy9fLG?2999z)51SmZruMI@0`=M$ovq5yBv~Fbq=*;=|bJG)NAFNfAd@i>?>M2Vs~RbT*6+qQN*Q z2z(zEXbcWCM+HigFbqoXp#B@E{)d?dqQUwC1Ho--7#~C%P_yoy=;vd}JfZ9P!T?exRMkCt~V#6>@9!x{) zTF_WLsEz@ZouD=|DF1-Q&OqbrpzkOnXVJxAd}JC~FGw832VoE! z1w-8g@-wnLj18t?YLMIkG6O6Jbr*;a!XPmahOt3348z1>d}JD34#tPkAhn<{0kxGt z^S~f+(4IcfH~^@w2i5%`3}b`N3IdG}fX2teot^)K*6V}X{Gk3b2!rctFR%X~8iYZ0 zI2e0-gZtB6n*$yw^?fXi@DJ&z58=4C+VE@ekV{0E)+2nt7Z4608+VjvnDMwWxI z(P@}IWN{E1gkf^XG_p8|4Z<*a5F3VJV#qW|4i_ILhl>X31Id9fHa18M9fQ<@+R>nV z0ZP-LctOUXyaB3TLF%ySMHWY9gVdt)L1G|`ERM_u$-yv49EL$+AU3T2ht>VaG^i{9 z_5VTROrU%T!k~0LTL06(&IgrKFbpa?LF1*MJ?xKp4hHr$KT!G01Gt7(eK~ zAP3{nH5VQd&5Mq?8P$$>CP4u)ZT7!49fX2baC zVjyuC2FZaixc(0fg|B5oPRF4156WjCJs`C(8pH-+5Fds~4niCIS?C!VQhT$ zKd9~pjRAnh=|E*K2!qlzD4mbufolVR%1uxo4_yDl=KG;EsP6%83xN8Zpn4QUS1y)8k>G}F?6-)e3*Ke zIE)5~BeOw#Y#3P$G8xNKgL{+V2k<-viCjgZd+& zxqDE#1gZ}~@eHcNLG?QbgV>;Q3skp*(gdvj2Z@0&NF0p4yuf$FCyYU$S&lvk{mWDEI@TUxXy;w)u8!UP~8s-7f=}n8tVeN3zXhr}8&;Qt*f0zeL#9D&5C*A%(V#Pu zot*xI@+hdT2i^Sx>gR*%d(d8gP<;;)1D^$GXb5f-5UT${W`(%8{0D_0s2&6P2RV#D zd=N$!1F=CEBo4wLHVDJm_-K$E2&1b9i6LW{JU%gy8W4u50kL5iCI+K%i6hISvq5?Y ziGkFB!VQ#{Ky&BlX&7|QIY-+I8-zh@7>4nYY4rLZ zJoXR03kX#IgU<2>mHVK&AA~{U8KAU1iU+>_2aN%M>TghejDex`9;htDR(F8Kpm*`W z>VHt%0aRup$1SK|1}d9D^*^ZG0F~EZGtuf>uo%=%u-Qm#d~z_gIMsmGC_wv{Ap2o? z3DjokUWe=XM^}K zjI0JGhK&ZDn+PhyLHQMwcR_VOXbb>U|AW{d3|jLCTDu3T>+>Tc|7QdT{|Dv$^0>JF zpgD5T*gmL!1l7?X3}VCTZ4euTVSI4C51JD|>g%J(V-bhx1+`^CWhChALQq_S)+~VP zXOP=raSftD?Nbm2wf#UCB!&xv>UmHZ2TIEz3`)T(bU z)$7oG{GdDu(u0DXoxy8$Kx6&L7}OSbwXlGn?+2>?LE`|R^Z!BZ0MMEMkQk_aV4|f3 zz6$}AF7RPc`T@1YK@DV#6@VTo6X*;}Qdj!!S$_hz8ZIp!h>hb09V-Z-C@LdO+$x7{&(C z=olss6G!I5*f1KV21LWeU^KEAhz-IZcYyLeItKLzK=nU*{~wetLFpTm&PVaUv;jb6 zCaC`puKz)M)}eiWP#XYLhJrA1U4hI-uP;DlA}CHlWh+QOdYr=Qe^7Z0DwlE9|LEr8 zvlCq{Iv=JNMuW;Xn4ds>Do`E*VNe?Yv>p|t4m2Nt;x_2m0kYX3b;$goz=pXQMkBi! zBnHCBVjwn13^a!eswYA52Fk~vI{`rTKCJ%_n)k0uN%;>-OQ3!~s15^_1)z2TsP6(w z7ohM2l>?x%0mKH?2e5h@REB{tj1O)DK>PkMakw0kIIR=dD&w|P}ke@&pWG1K{1J%c% zFafKxu=o$s3uc>}{|BWdSbG3eUxVxcg#pN3(0M|jG7r=r29>2?92oc?cE_!{k8bgW?F(?g6!DKw%2@dr%O3of?P_ z5=X``F&GV!1F=CE#0Fsy8-$VBAU+7Ai-Gtcj7ttA4#FTcAPi%JXc&fxCm|$V_Z}kT^1isX-P4u|eW68pMWSkQfNV z_#hg@2VqdV7?i(3ZUxaG3}S;YsN4Ye|7~p{=boCI{|BW-P+kD#sZl&|^*^ZW17T3V z1yp{5>TVbY^Fe)EXnz=1CxGe&5F3s`{eKUS|Df^&R4#(_p~oqxegLie1C7yw${tWX z0M?JCeg%tz>_x*cdto#-bwtU5)*iaK{Rfqwpm}0YxeqG0L2V(>xD?1-a67=m13ae< zYBzwyuwi`mVN*YlV(4x~=fm8FEDkDnKn+MNE}-m03?nJgT@&^Wf7>o0g5Y7 z8Uv*@P+bFRcY@LzsBH?mhX6Ew530jKbt+61{1R8N7@FQ|M4nE^@*pgIeL zVf8;qA86hJw1yNECZIM2NG~YtKjRTyS)e=#N=L{Tlpa89>tO0&`e8Io z97dyy!}wqt=8xcDc$mZVA=6;BNZ}2V1Brpo`vA=Wf-uOvAR2^0Y|wdNp!NW$tqr;x z7KB0h6r>NH&Ozrdk7Dp#8NI>;RHlLA1XNan>pM@+|IttkN?RZd;)C{KfiS3?1JTGB zEavVGo?8d?H9+MHNFTZ%K;4c2%mcGMJpO~&$QUM$i-xHM$%8O5 zAI1jJ$a0|e38?G^xf3J~>idApLJN!kp!I>E@Bq~pAURN94-_^aGeG)4G)Npo4`qz( z2V^$PPcSi19|Kf>g6c6){QCk1|T-54nW4BwFMvy5(CjN4C7;^eSN`c4x|>;*67N~`QMqH{U0

Pk?b5|+k66(5|3P61awDunkS*H|$8uSLd|5V0C_hX1wJ4F6kP8UD9{+5%{LVP=BNZ}(vM-|fZl-%y$xT>r!B z96~gxK0;OlVk2XaJP3otKy@@|EC`e)^1{RagZi)_IS>ZPBh%?E@+MvR4;?f2BkM@)c+v2fZ70{zCFlXSp5$2E2v!nvl~Ric2^aoDT>D|;pZ~@O{{PpVa_YZ{h9$31cen0%Zc#*uX2El&4cP^SY3@wH#;-@ zpAaJPe^Hj{|AiTb{}-e~F^HXE^nXE`;s0r2QvX{V82&dp;vWZSb7T157Fd8NX;v-{_ zUeGzhpzs2vZ{+oaAax*pAdJig@nIMwj*LO#Fg}b8qCprW4x(WgoevTRiNP?852Hci z$ZQZFhLOc#Y!D5?AT=Nwgkfw@c!B&5s#`#QCxk)$ReIEkgzNyhmskv{|3U2qTz(^D z7p>)~RsVzL1VDWzP?S$2i0ul%HGeLDMIT%#`g6epfxv+5s zP(2MY8ze`Lx#)U8^*^W_2bl}2<3Z~eK=}`5H>iILk_Y(9$f!}$|jIsLG3nJJ&%h9o&N`_|G|3zbanrO=l)^+f6)AYL3pXV( z?*Fw;ka>CJIv>Vvabfu1;m-1ZQGM9|Y3&vN`)e}(Ppr>^<4N^7|ED(Q{-4*B^nY%a z+5c7-=KrAf0!%+T4XXb^{r?~X0q`CGSe*l_cR+k(j4qDO2dPCD1JzxiIsoKHP`?z! z2Vs~x5Dmg0y~r3@48{ia_d#O_AhST}8&>~=^nuiXFghE=hhdmJj1Qw>;xHN{j*X2^ z3?_$*Mm7_d8jv^$gVcgBj1B7hgXT^^{w9P$=?at=2O5)9UxLO1pz{PE_oMr9py&Q! zVF^mdL}5Jre^41RTJMj%dLI_&pmGa2eS^e7^&O~=2KB4a>sw;^pm77__A_W50my7n zJq$9Nn)N?u>=jfWf-tC_2G#$dIv?gQkX;~qLH+{C!)RnSObkSWFiZ}at?w20-(bVf z|At#Y^){Yy|IMI2|L^~Lv#$Qvn|$)W-qbUwc*^PjdNa@eH(2-nztOJ${|&+Fahqqf z_5Xi^b>IGLyG4TQe~{lmekG>=4?6!JRR4q80iZMg!D|3O^*;zB)&JPm0H}!b{jYJv zUH>;bG5ntvF8Y6BQ{jITJHP+BM%Mog&FudhnArU{Ftz({XlnQ0%*y3|KuFC02`v@> zXQ%1?Z*o9dH-I)50IUB4^-=48P~8K=usR6DM`nZgAPf?NVPrmt4a1K~Q@cWEQypk2d}fG6z`?Ha18NHVjh>l7q29Gz`PUk@+w& z7!8txv0*ew3>m}3K{PT(Rs&*# zGA+!-g`|7`VCq5re^CDlW;Q6Tg3Jch!yvOkbuvsXB{Zo2k6izQ>P1kQjC`IkYYCtpygVY&#M*lZh|NXz=Rs!|^j{pA+R=oJH;u`s1QP2FplBwf=B~z#W zN@h@OV*g*!)bYPsXwiTDh4;Yyd&oQijy3?O{$Kz7zqV@xxc&!)Dabvbyo;;f4-+@l z*8UHw|3MgB_e011VdDU)(EdNDO#w0&8H4KoY6sl)Kd3IBm#Y20GC%!4x1jWYK0cBE z`~u?t`30r^^9xD;=j9Xo&o3bMpOZ)Qznxpi{{_t{|9iYS|AWR2(EI)%KCJ!^fY$$@ z`UX_*fG~&+!yrB`3{wN5L25uW2!q%l463`3{R-Oy0G5N^c?@F1Fi0;5W8;JBLQpyf zg&8P5VEun&^)P)P8YGU4(ZxV~7zU{Wu|YHl!`LtySq#QTmjm%Z7$y&*(J@FKhCy;5 zHi!mc7#l`|#z{aJlpjETCI%0=x)N0PLoujq0p&4te}cq@T>bCp2roO3{R8sLXuUu3 z>U~(8gT|6!=>fE+1=JPuzHVEV6gXBOMq|U%I3fvDTRR4p<{q<&?`7bXa{$GZR;lC_D$A4KahW|30 z3=lpq>wj5ZmjAMB4FA=Fa{e1`{s!4YfNKr_RR4qe|E`F=`k*!qD12e{JT4kk=Y#5g z5C)wCjIstmTl+t({s)z3ps+&5#MJ+b3T*yor6vCt5|#chEhYQk(%kyLw}5C-u<7{&(C zAPf?NVHh7ogVyVV>Li#ybHc*@gU0bea>(jId=LhSq0=BSP(27b?*}$+0!kyG@c@`w zkQxvhgwfd`J}wMW55gdMWE#Xq#xQx17>EtR=xi7tM1wF)4TufGxcDG(5Jp!6YTtnF zIEIBCF*In51(dcx{ndfQp#BF*{eMSC@SV=cZAF-WL1o!M`UPe;(S8E;|3~Zp(X)TC z?EMGjO<1}Hr6*AR59*(T>i#M1O#{fY0{et+Q zHUV<~A5@-z%malLEZjgeq58konc@GUGPnPsVNw4D1jYVKODp~FtS$M!raSBZlIE2E z^Sev`dwO{P7Z#HEFD0k;zcMHB|IB!m|4mNNb%1#4e^A{6!r1B|kT?i~kyu zKztAl!XS1-YAVV(XlVff@bQ0;JWL&o4dWxzAU3G)4_o^W3M)`s8P<*f=|#sNJuop4 z8-~%vKzwvLkQfMq#6dJN28qEiHgT93x*B9Yh>ffc#0H5WW02n}6B4lYAwmAfg+Xmp zP}%~ev4O-OH;`KYgZlrVatqmSpgb~={y?@HR9+M1Cs6&5WBebqHxpFm!}^1x^vD_u z0Hr5b`UchWp!f&X{h&4gXwIIJaeDOnA7nPDE(V!RiMb$m!Z0Y0!pHx8e86oy(7FYf zpFnGmL3V=bb7Tyv&p~`-8pKA&Ff|}?qU!(6f5GeiG>aGfmlGBIFDEVeUqM6vzeZZ; zf6c<_|26Zb{a0~`_%A0d{a+r`77!KuuhY4oOt%GKy^7tEeM0u!7z-EjRw_+u(ki7@B+mJXgmO92S_~#gUmsv zL1G{b6Nj;3d~7r}F=Txpd31~{4`PEbvKkN{hC$*WHi!mc5F3O+Y!HU|33;p#R>Qs<_LHdyWIb`d99Q}XLIl`cFc@&SVdLIo6t_0Q3;JtsYu4K*q!|Gf#Y@){hxBLUwiM$RSd>02hz}A6$%E8^Fo+GpAT~M%iGwg`tiLc4vK|u_UZA!G z$SjZ^kQ!tR5(8n77>I^pWIl)u!pL&Se3&?l2FZaih>uLe*dTEbhVel(I)=%E#9?d@ z4Zx{~K-p z@n6{^{=cjs&wn`y(f?|}+5e3X|Njq?Gd}qLzrm6x{}t4<|I0~;{g;=K{;xOTByU-ohfFL%gO@M9uA5^Y@%!Ofm^*?9~e}ccz|K6(9|Ed~> z{{?u3{##o+{GZX&{C`$w#s3){mH$f%a{jBTX#8j65cnS!llp&oQ`G+sS0?aTK%o9U zcntv3H~_BtA5<41V^Ez08X1G+(fOcytRMohh7#n@inut8@qdtB5Qgaou|XKd z2hpJVAKk2KwDW{P>d^HO!w0E>VUQUhjLrv%!7#EMhz%15(I7quBeOw#bPSS5#vpkR zAJq2;-ERyED_j^<4}r#`u*naW`X7|G@z#;hHGddtoSgoH`uxa#1NCJ<<_$Ck_1!`J z8w@w2`(?EL2agMb>Yq`JXy<_HMdWrnXum%QgX%pHO>Vsp(uZ6JgYph&Jw9l>0apKm z)KCK>kN<HkZL{a1^x`){!B4mdGz^2} zKx|O`51KoGg%yY{jfwdWS|bNigN{LZKw>Z�FsyABJIk5Dmg0aS)A+L1G{b5`)no zHVA|GAdJq&#fOQ5Xc$J;532j?Q&MoA4+ZiwD6fI~kRUcT3`$p^zBh;-Xbftn5UeZF z>Q0c~(AzekzRY0o6UYrj`3F@0V;RQ)#TUqbqje&pP8>;L0jk$vX&Xexdwc%}_5DFK zC42us^*X3s3QAwd7*s!l$Kt)bD4JIQnGeGl^}oMAN_!pTM-T@234~#6WEz%Wq<=YK_GyZ`d?^8e*!WWj3z zwW?SCH`@L8zu{&aeSc7!0LS=0s4jOlHT~~~rwstA`$6?RNG)jmAJh&2iGeY6{XeW+ z29+nsb2cdTKeUd9)z_f0=<(;zkogVZ3?$ZU`tsO|@0(Apa0@Iq#T(h8{l0Hqsbabz|uZ4Cw* zT>ld@UXIiT0F^JG`X1R&pt2I==YjSU$PL8S{~)!@+YW_0*z&W#uq>|%sx=Q1@S@t!iGV0I!GKw zgV-Pp<0I1`HnH`;ZvTn@a#E82Jp_dI*Hk>n4yG2*bo-Y!DxW zL3|iS=7akGp!5y%ABav148%JA57H0Pi;Q7nAR5$W0JV`pX239d{~uW|hz-(*4I|5e z*dPp22cyy1AU+6VlSdWORoiJctJEXQHHD#+Kedbup~}4=Oh(F(0NERR4qa!h_5P)&C&3 z!~6s)b3o!CF;M*tqhV}hK1d9P(ZykW!u9`O@I1a&^=k0CK5#!@UjDy=vetijH7)R% zznr)Tq+K8*{a>qc$$z7RpuL2k^8!H_#~1*#{|~YswAKpdKT!P-s?S0Fe-Osj1_0IZ z;JRK%2R!}{QV-GxY7>Cukn4X?cpHisR zh5uJpxc*;W>HEL8F6Y07mf?RsKGFZKZr=YFR0aI+a%2AAhe2vV@-Q02hG9_s4@xVr@B`7H@)M>O8x0c!nE_*i`o&G@>Hk6POOP2b zjH~|-(uWO$%tXc@H6T8W2C>mGNDhQy;>c`}7>tjL2C0EzkQ!tR5(n`?Z5z$x4JwC0 zb-^eed2ImXvJf;j2CC;k{UZ6XfH2{&J{p*3#j~o_5VR> z802VHtZ4iZPk$YL-yj7C=n5(i;|^Z%f|e>?yES5IpGFDD}KA5_;XS-AYy z?LYKiZ^E(v+BIwcE9e-5_XL9W2CDj|g6|Lp%^85s3?j7tA5{M%pVthk$3gYEgRwDq zPdmQ)A9VIFX#XEbJ!lR9T>nGQ|3xm#klSr2^*_@5Kj{3v4mali^BWStbN!(Hzpaz^ z|HX|_|NGpS|4;Vi{J*p<@xQs1(|=w*(f=M^{{I(N2mhbs#qvL1pW%O^F~k2ZPt0?G zvDN>eIthe9^%4w&_#h18!)RnSNDPG0#X$8oD4oO72aK*uN%;?w1L=Wbm|hScoeioV zvF(Kitp^0n3xM>%FibCqhGCE#j18kFs{!#r?E;WF$mwe!*&w&T+)XSE@*l{} zApam^(7HyD_&{P}{R8p?C@zrQ4`YMmK;`Br9(naY?CerdS^%X3aJ}c{^&d0_09rSX zT+foi2AKiZ+z@O_zpi%Utcw(0DSI`oT$KmWryJZ#=HLi z*WdKxzvjfV|Bbf%!+xJIQvV<1W>_5!tN%g!`$1(gq59uQT^&9K0Ga~;wE@uk|DbXW z7JfMEe`kjOeLfujC)cL_ms3#x&&wzLKQJi#|KduY{|#0Q|2th6{?D!s{cmCI^q-es z^uMoP@c-r2e*b&j82_vCG5mK^W&Gdkjd`aqdi{@HH-Y#d463VO7@ZFi2Z@0&G8uU98-!tO7!48wVGth~ z!^A)|2!rH6G%^N>fiOr6Mq^`x1 zM1$l;>;92f_k-db6!)Ms0K%X;6jTR-FsOb8)t&h2U3_vNy`cICWG*rW)y*J#LG25C z`bm+4)&HQi1)#nEAiXd_OOT&HGz^3I=olo2EC%AkFi0H42KB!|_we96{}*&G z(8kaIl`P!;gX(uVG2#CjdD9^G{DIB|IQaj+M%D!IxPY9Pz<(9*+5~~ zXB#s7S69{e@2)EVuKz*n0NULd{*hJ{s-;P1BDwp z2CZ=i)&C$p$QYy#nGa)w%)&M|4r&vC`u{L}FdC!}#zv<>av%&7$HzvO1Mxu^rWZzo z#9$aC2Ergdj0Ukm7{rHR5WgcQ=YJ{M`3UG?1*-Qzc@9+XfXWZhoI1K17$4M@91L|N zsNRQRkh@93IM&XC>eIpCH=_LF)G%u|aJNP#sO}`X5x!gZlX(vqA2K*#~OJfa+}+2Kf!d#zlkVKp0&f zCPuLTzy1Gz{l!oID`@Hemjj*sD=zw9yKN_UO#tYQKcn6M|EtG0g3kn!7Zdug9$EHZ zbI-s3E~S0{10!Pp>#Y9t-)JkAF#x3cALJ*{JPK$W8&rpb>V6Og)#acz7y1|gsO|@0 zP+uR^=Le|;Vb~l1di@V7Cqd;lX#57H|Btl(ztN82|GYHa|E*2+|8)$^|C`u&{BNtP z_&+CE>wkkC!~Z^Cw*Ry16aQP;x&0RtllkxK7xI5;UD$tbP5%F_JyZVsTPXc+abWo0 zVL3*2#sgptN)#xM)$^JITwEk*77lYOfz|2LaVf8<#4kOoWbbX*Q2xKm({s+YwsH_3m3Cf?KdK(#o{08E~ zXk<3B7)Tt1VPY^EZ~uSeAMhD|x_w9f%L?)QmlNUz*YkQaF8?>&@&CUesQ ztpBp2LjNTNc>XH}7ycLTx$=MV^x6NX&s+RocIx&2dVBu=H`oC=D+oRofL8y5+yja) z5}KOsEq|I?Rm|GS!K{ZCM5_+M_r^1s-Y@qf8J1NclJ&{zQa`hQT}gj`QyV}rzC z>R>cT3>ky!H_%=`P})GopgaIt%Lh}7OFu{+Sq{|qMK%Y-My~&1>Op!y7{o`%AaQgI zQv(wR@j+~48pH-+kT?i~*f0#@BV%N75E~>1qG1@s2aRWd_@KH3Z5?{1uiLcczj*12|GKN5{Wn-}_rJl)H~&Fn2H-XTTKx|SKaks1V5twN9zBB*8jD8asHp3 zsQG_sw#olxIcEQ-M#}tea)!?7yD8AsR50Rfbt5mU(ng0a6+#8L2Up~KF2k#45}|dX$X{-1`{T#zC^1}LG?eZ ztV9l%!7#o-lz;H_|3Uge<>n|JS>ykpdJQ(F1*$Va^$AD}ghAu!q}2E5YC+`!az25v zL1_(iJ|C$5Lf1nsA5 zzu}tC{|#2W`ERh|^?$=PpCEPkX3*ZgzyCqw|C-I){%dLJ{Ev-{`0pPa`oFWQ=l`Ey zzy6;)fBt_&PR0N9riuS8JVX9#RIdT=4Zv0ZgW77KvKLhE!!T$}A7A|sY6~Er0|43& zfUW-zE3a|Y|Dbbwo1Gc{*H}PswK>E8IvYqI9yC4xs>eHA82-CUG5j~s)&IX?)0Y1S z4;}jd`O6nj_5c6Y-MjzS@7Vv}#x>}_f&kj-XkbV#wM8hyLpAZ`+kBx?jfy_l_fc%AwL2aUe_9LiFB{-ger~U`c0gu-GBdhKQ#W$#r4@=9S zbPTHBK=mUCgVz3o>Tq)EWYD?+P#FO;8<__6nLzigQoa6nbNdfER{%6G4zmx`hJn@p z$bLg+gZv7@Ffn8roekm>uK)jl`}#(^{)6WNK>PaOeRy#D;NO4!UH|{<=1uv(XU7(B zU5HK`+q~+(c}VJijp1Dg9szV{bq4v4OdkN*#GC@!Z1EA z8eI*D55gez$TTt=T@J*DVURkITS03dL2k!~L3Ip9{SP`v56{|vP}&^mx)GL+VKk_% z2XYgrd?E#d{Eltk$YAgzC~hdJ|3Uk-L47h%oiK_=PCEd(ECl5RQ2hp~3qkb?Xq=wx z`rp;{KPaDJD^EcA1yuio`mW@(EwJeU^+7=M|De7<$XuAcp!sq1`XA&+5C-`ZM8hyK ze2^M~>;J%YJdQJbKysip0^9%pS6li1zkNc<{|7g(qSTA~c5L}?8dLmVW$}~$#=HOj zH{1v{3(NRFD4sxl5_e0>|Hxzdmb$v&^N(Tc06~3zaQ%-o2LS5#gX(?|P6`VH?{9*Y zk;pX8{y((-ht>7iXwVr!6Z{zdXXrBiceSzk|M=M}xL=nnTm9cun)`o+732SYZ%Dr% zWCpJKAGywgu|YJb4nwA4Y?wHV52~|4Vj#c4(g%zNm7gFvm|75xjM3#lX5l&;2YLP< zrVpE0xWr(3Kr{#=s{^q?VlWKi!!Sq;#73u)#gN$`bs&G>Y7@c221JAU2B5M4R7N0U zP@M>BJAu?-!=Stl3h%*$LFE#;^*^ZZg6>aH{sWmekbVTk0dl-xW#j4pgW5Ht_5R4I z_hE4jI`GI`qe0>@Hi!mckQl}FKeP>?zvJJ3*`me&m(HC9uMHA}= z|B>q~5F3O+br%eS_~;l}4#Wn@gX%e4{any^6-W&_hUtaTAbAiQWEQq{1fX;Wx(^sO z{|{0N(*t9J_%I9-17Q#!M1wFo8=a4=1||ohv0-GjAT|uc)Pnqhet!YT56Bo)H-PJY zP+uQ?PTbiUXFDHc2B-`e$a)c*-IUb-AoD=}LdKvupnUq1a0sp$K! zuLRUjI~2VoE!9|oyG$Dna;Z0GfX(h4Zufa*eIGhzBcVkqqNbnsmP zpt&ZHUUZxv9*%PV4@fV_3{o&i4-6yg1Brq7FdD>$VUQRI!}u^7CI+HG7$gp&LE(XI zF9foGKzS9^FTgdn3~G0S+VjYIklCQR7Ck);G#}(9qUuZJx)XYS4yd1v>^~SAWZppf z3uHf``X3aJ_{wBZ-wBitM)AlQ2LO$G!qPBk{T!%%1J!k)adS|6093DnXi_n#{|_@4 zod%UDpt&Yc{}p5|xpsi`!Z64TSp5&m2Ov8^`5d&?3+5*f4ZIv#{U^}VH@9=Hu)qNN2t4;a+vhqnQs^*@NOr=kK@3#$J?@d7GG(91D$ z>;D!vhX3834F9Wb82;NEYyZzIs`>A4rTsrpnc=^uiOTM2-#1!99Rh!4UbHVnh~AR2^0;vgD?L2MAlSKooox?Y_JCnt=%Dqwy9<$X|lcC_vvIdwlMu0d%BmIgrk{Xz8`2!qDZVRb9H zG|XId8kE+kJ^v3Xr$A@ogZu=_3m`i|?grKWApgMXau5x}FmYr)NDPKS;vhCUP1O27 zSe=cH2F>U1{{LUAXx9J2=z#wr<^BJaCZGPV*mLB6T4Ck??A-kSs`DTGH{1zb_Xjfr zss9hE`$6p|5C)agpt>J~VdMSia{!>a9^3{%s{2860I)Rxp!y#)UIGd`^fF9Mf)Bht z4^)?f#^+HmQokKV9MqS0hpg#~HDLTNDkS{hQ(qi>_8(|ZK!y>+e;q~X|GKig|65%d z{)5*Eg7mmS)&YRl{|6cffY;-L>NOAs)o~yUV#6>xA6*j1Ln7@j>%@=x&GcLF@TJ^*b1&^@HK{40JvKRL{foA=4ff7FhR`qNlHc;=}!c z%YW$Nc>D_*1HqPe=;1d|84j|WpnnL||D*l?kyZDD;u}i%x_33!r)$RCkeMJ~lm|`X98G5o9i?Ee^61v>p&t|0CDmAT|tx{0U;i zXk<1_3>!^x{ST_ocmDsc5mox%Fuvx$()4Tp^>+OSW7U>j{|&vO|LaaY1vxJm)K&ng z2VqeCzy8O6ea{&1-3*}c1GNJ{aR{pWVHnf~us1UL4?5!qbSDsq53c_~WB(uwY6C#e z0RZj&2elPI^*<=gu$5OT;ynLr9U*;r(4Ie(dLB>x4;uRi-R~2m!}#AxiQ#{h4dk3Z zP~8qX^DkDH;lGm#!~X_n#{ZpI`v1X(0{@ZgD^Q&U;)5`V4Z_H55Fdm=Vjv7+gD{K@ zs{cXfPJsN0jzQz#u=*dS2c!>#vGGA-pfVTT91tH?|AX|xFi1U&jZA~YVHhM1VuNTH zhVgOHAax))7)IxV#9?9}8iYY>6Y$OXgW7?hx&)MmK{PH5lE*b34hjd5IiN7YmZk=S z7%qR|6bIG+PEJ_IOh9>Xp#6%|-LQ5Hp86l;eo)ytibqZx05mraYUhLUDhPw>Iv56x zZG!4lY;`RmF;Kq(loml|;=-V|2goi$W)Uk7aw}-g0c0*{3>;)Hs67Cy|IzDqkli2* z5=X`$F=Pyr1Bt=d`d+dB4L1A$@5cl0%LmoXq~gtg|LaaX^rpteDeHv`z* zM$kRL$okwE{`Yt>{`b>^)c>G53sjGRFfKMo4urAE!^A-KKd6lhN*m}nJ2VtLrw=j% z8H4nqV~{*Z4A#y>Hw&~b5LCy4)PXQaEjAim3|$>a9)z)pgTz1>B#(}f#X)QkhN%Ia zOHh@Vh;UK~b#)m;_K=n9CA2tk1mjhiVg4~A-m`>Ds{cWHLFR(|1Hzy&3{V>fu!RG*>?C%4u3)uSqzww^`kn@7j%rM&V|G&YCSN~1zJyGg^*!n+E zJrBd6`X6)`5a=vmkQliC53Tp%Y|vPMjt+eO9~5TT$}v@W+5b7_4F4ziGW>6bj?trx z0U(PZ)#D&FAobmzjQ@MQ82*Fy0)oU~7&PY(I`<#cPJoGlXpnff7vq0ZIUbbpe^?y` zqLJ$~WIjwBnTD}JWA?DMp&-8^W6(W5p!NaGESMe;4Z|=w5Dhx}2NYJwX2966^?x9B zFpO*lNDRcsMq?9$sRhY_Fg`v=4unDKKp2?~@*fC;>UWr1k!g^BKyrA;{9%1b=z2I@ z^$EyakQ}bMcQA;<>P1p$P#p@IzXbUY8H4K2f%X$2e}LQ$iW6jaBeOyE!D#(Ia_WCj z{Rm38pfmv5*9xxxLHGW8d;bURrGwR}pn8=Q466S@kK6`;-UVQ!uKpj^ z{|Chvs9%fRZ?m}%miT&8-!tO5RHsMav%&7gRwz02xAk6iGgUC8W;@{gJF=HKxr7} zPGlN1R}adwpgMw3Jpz*lsm0b8hM5bRmj;FRV8tN+!u&!k4chMjDl1`rM5aOcW+44a z$UmU?!dL%;%FfaHf8^Bvp!soF`URz1t?Au*Z< zpmqo794nZ8Fgrl@z%Z!%LuRA%VR9fEBnQJFJ_v*OJ{Fe$wae!IH#!J9&;Kv#7(J-2 zrZxt(5w`pV*ZBF{K0xI9A2b$(T>ppr z`2SZH<^5k_3mF3dtNU zL3|Jf@nJNK4XU$2eRf>+74rIjm>!TBAPnMzFo+GpAhU4YAq+};$n`%+JxDJMBlBTw z5DmgGH6R+qhhbzsjEzhqvq5@bd=MLiLG2#UoxXYD;W)?rLGcZ$+lZ|PVd`N02avy! zF-RO#rVM6GsJ?{x5t#;s5y(%-euc3?bt@V8l= z4^+Ry(g0}84_v>2`u|>D|3TxVAbE1?V^IAM$_p^FvC$yAKkeV% zJ7_EuG#3D}2UKT+Fo=x}gXBOMSq{br(J%~>2eCozWK(Om|N4s`{5J-T0f6@DZ-MsN zLH%}WVvxDp{{J`H_y52CyzBqX%qC5;H*p0=l?-^u$hM}jw}yj z!)R>kKyn}ql7nFoABN##>FMCT2>9A7pt=fFuOZiS1ldkb;PawDVTTQa))ft8T?q0M zAxyBoM4Ib>g$Jk)4e}Q@Kclys3E59=d4m2SQ2&GWe1qzRQ9Lr*0ig5(OUIx(7+k-3 zd4cwk#3JAVAv zU;gO7j#un|ki8&(!7$17KWzLTMuX-6baej51_q+kXQ1&L<68d@G8<+dhz8aFxXuv*nVTIF0M7sLmZc?0QZkh@^+#7YyW|3T&FXx%?D>V8l> zBj;aG-3qGLK=lczZULnQkQliblppY6(E379|D0U&vFQW38PxB9*$Yww>MMi%1;U{E z8<~c&LEA(KeizH#asTco)Fjjrj zE`jBADwqD(cMAOPXKe*;o5A7;6i*-wYV&}``0-)*nm<^*k3@s!03v*RQ0jls_zgx` z=H&d})WGz=r~vFe`^!-|2dH{;JP1Hhrwu2eTEIg zS4TulIAU>!L1jQdLZJ^Wm_W!}m0GR{A)TsYK=AfGk;)5_q4jTr^fiOr8nTD}J z;xG&n1Gy74?hk5bqx%=c2hC%H`~9GOZCLucSnCj|I*>k49S<@G8wS<+80p8}eo&nU zK(M}q`V~1GK=nU}kIm2M<7S{RpeH8i9|B`GAisg?g;6~G+W?@mo{;k|Xe|J!d<4~R zpz&=`-AM_?mOqfiKyw73y?P)!$Q@?@=|#q%`X7`BVfKL1GYEs$GJyPsj6wc{@j+}5 z#>NMU!!Sr5nGNEHIy(KgHZuONZ{z;oz}Dlx0f;7mL27j@UH)rZID@gCl`B?#`nDcm zbFKCD|A#s{!s~wI`X9u`SMS5*!1Mp0Iv+aT4{i@2v4h>+QR;tCJBrfs8>Ao9j)27n zAsVC>bap~3+jezW4WHzWxH(K`(|GFO($Dq0kv~CO*|DgUjtZoDKnUU*NQrVz#1!gWT z8dO(Pz5aJ`K`E0#?f|8CP@V;yZ4B}s$ltIz0T3G|24cf7NDPFL`5-n(41_^!5GKS1 z$%8Pc{{^xW6prX+Cdh3dc~CtL>dOm;Y;FIe zyNw!U8K_JGnFAUd#g!J&#X(^OTB`@DLqYX6s4fH5bJ#FQ4unB+FdD=LVHh7|2Ix*+ zbbFBbp!ytCufz0!Xk?6R9%!Bb-QoP+k+gY+Zo1Mxu^BnHADHV7lLVSJDn41>gw zF-#mrgXBPL5Dmg0HpqTla}=QQB2eA{)ng>rf1o}wfqDcK*F&NH2f2}C|2sMT2ZbAY zUV)`0(3lFyTx!(kq?!TBYk2)bAl^pn|B+GmgX(`!8HJpNL4AIZ7zl&f0-(BzTntJ_ zu>63F2ANIm`X6K_vVE{J4%7w!VURp%EC96c5me8D>Tqlr6b8uRFg}O|VVE2`8<`KP z!$9*JAbUV#E1)_M*=-;;D6fLlf%JjYp<__p4ibaWFgA=2qe1ul;Hvjw;^_T-aC-pO z2GG|2Z>6vQ-^b1lrTqk|C#X@Dfy@A5*xF2x-w9z*y9ji@E~rihVNjh0s@q@~#z&_? z@*pt~2C+dH)Q$k%H-XR2^0+wg`9C0i*f7W(5C+MC>Q;Q`=YiJFg4_&hcfj<3Xb=YJ z2hqqFT@1zt(I5;`i%cW4VRFb~AiF{BCr}?B-Or#n0Oe0m9R^B&+}bgWAU+8dUbd+5(_<54c|S_Wlp6*Rj!{aKR=H69dVEFo+MT z_d#rs9iZ|SxqN`JL2}@JzqdDdTp#QP=-NvV8-&4ef+Pmw!^A-}2>aUD{3p8q5328x z=Kw%#5C)0s==^uJv_z@@LFofjrckRa1DORXA7NoY3=LXK58A&5s?$Jq9XbZpdms!F zN2Wn+5C+x3APn*YKKnpt;(_b{=>eGq!XP#XgV@LzRR4qa3*s^l)W!sv1+o{U51Sbv zabyfq1HvFNbQ)O<#Kwg|`at%AFsRLm?mkez9F!M8=^sRsi$U#bY;6meeW123D6T%*BU6^)R*j|Db${Y$vFnf?n2v>;<(0KzRkk2FZi`30jW; z@;9hm1PcdHSb#97PRE5o@*oV7hxO$_WiPIJ4kQj5e}Jh4+XdZo31Y)Awz?iBhOEX) zPwzjhkB^VW=>LQ2d{EsF!XUPe&VNf?U9efmVMy(=92DmG>JDVPVQf%)sy;Op+&_oa zeW1Dy#0JqI3}b_6WDKec@$J=v*#SDw2c#CH7iJzdHb@Rs|AXfEVS3SNPb5RFd^BnMK1jzMD`*v2M6c^s54L3sj1Q-VQx22{_X`y0lG)vbfI z?uWSxR0fa}4xlgu1P+bPHtt$1K9zpw?Q-|7}V|n)h)>Of$}LRy@T>N zNDf3JV~`lEEda_pAU?<~AhSSYxS%xyps)a~hXB>tVC>=XAJldNwG}{eAT=O)Q22rP z$a^Y~-2!5R%m%3ihclLbJxClE##Z-(`g4xP#^5>|U)>LqL#h8^bv}p&VQBpi+6Q25 zVDR7B%nUvb07@I6umQy>wJ<2mah0E-aKeT`aRS=Ek6zz__{eo3G8-fZst-YX`>>gb zEC#FpLHa=$q!&cPFft!xCaC>}tRI;TN=G2|u=*dwhM5DRL40Hk5`$roIE;-qwN|<{DSIQSlolkVo<#gs(U~*sBHkMt3YZ<#i05h zWFE|HTr?;RQoH^KgKz;zFcl0~~D!*VDSq?1b-~c|?1XMPF>M4*INDasw5C*Y9 zV#pYz7KD-QMrMQLKw%1MAAs5ppfCo7H4I~`+mXeP*&sb2K4|SGv3-A(`X5x+!|HrA z8dU#-?gO&a*GFjsfWnp97!)QTGeP|&t$Yvm$1!IF~m>L)j6GP^M#9$aC zj*LO#ptc6CHIATgqek5iO8X#lK=Fpn-ykv2eIg+Fp@2bY5acIPF{m5>=>_>08wQPk z43z%~`32;5&=@2(cZ0@sKxOi19SNx;hjTc9>MvLt0I@-J5~yAQ(V)5tRKAf~_k+}f z`f2$3z%V;OX$=&n_Aa(dK$ZTAB z31mM=4iuK4Iv+Gn0AhpY7eHYQs*~_xP+TC(gZLl}69d)Npn9EHjMD!n&;|hA2W+9M z`yX_75Xc{(u^Lc$N9{5VWG1Mr1l1WJdx*uLwS1uUZJ;_2RQG`}tUg3$gX(ioy-vtn zP#dH!B?W7J4Kf#GCJe*u#FxfFX&dA|ko_=yAR1&A2!q(zFuEKvAH;@XkX{fQM1wHM zO(1__a}%g70!pW_G)*ZD%2Vk13^{y3?RrqWQai2C!aR^W$qEkw>*zsgnilRQ#!OIo zh0jl*v;ZoXkmC%-2IYe|Z}0!0a(NUF?>0byg9Ch=5R_hEbrPtK0oA4C*8iY-98~7O z(iAQlG9`awhx&NvKKT*0IT;wbw7v?3SSV0)#ET4Sq#R8(J(b28We68+S){|`9p3S zfYPsexWAIv;Zoz)2Kufxm&nSqQ!;vfvFYe8y3WhG2MHX3x^F1Gp~ zWCl70*#i@Uu|YHpgXCar5DnvlXpkMCwgxC((A@#b53uw~EgF=rLE(jN7mN>z7f^hH z+%ps~+2Mj`9UW-=bD;c=Tt;E@8z}zpwj0*|Dd{*T)U9Tg&W!)TBg48z1gGzi1QK{Ti=2aV0!7#I*W-;Z4PgV^x? zKT=%}s@uWhpmqRM95k)~vIjH<0K-~JO8-qXH2#}tYW_FU(D)B(9~gpY5LQ>m&L>tJ zWQK+Y*jznT)&J`9@=oK7|aK;af!jiK{N;xs}`gVgh6^h7{-Rt$YLNi6ob+-x#0o| z3sAnm77jSW0Aw%7O&|F>gjL2*y?(aTT#Tdwf}?a ze^9uA>NjL;tf2vx1FJ`BFM!Q}wjJPXbUsWyE^(+l$Zk-4A=^s~8#L~n7ZLFvgtJ0J z|ATN&SQxneHBeInk7eL92NcF2_1U4J|3Mg}A156a23CVDjF9aB_5X6i!@+7{=E2N_ z@j)~Q!^A-}48z1>d=L#21JNM&g8U1bqd~S8#sg z7=Y|T#vps~VUSvoJd7rW4N{AQL3?=c`3dB1e0dDizW|jrqZm>?565t@H8A+Er=kKc z7eV8@ZWb2*K^U}`93)RJ2BjZR9v}vT>M~IHg7lDUA4nglegvg?bUQ(59V8BFV}LM- zjgHa9@$o@&ATvSr6uMn7J}4|fenQ5eb`Hp|1Bv0~EvQTZVNjU?qLDF@7;^dm`3*D| z0P;6RxrVGC#6~g$tQI5&!XR-F2C+dH#D-xQA9@!NzVZp=7Hk+4-k|<)eq9aNF7WcOfNc(EDw{zCI*s&VURq? zy`V86WIJJOQ22q;DSBF`ln<)^L1_SH4>}EMYk}m!X$=&oAdDQx$b67Eh!4UrHZl!j zgD^-Qgh6a%3=@OVAUO~lgh6Z&MrMQfAPf=%VJMs2Fad=xsIQG41|UAD{)dMH$Q}?z zvJ)OYFmYr#7#o`$NDPM2)j`EU=@OrxK<);m50E>tVUW8)d1(|6-})bv29V<(RQ`d= zD^UFp>Q8{`RI;$4A%@w=_Mo#}%*?=jU~1I=pt=U#e2_muWfrdd0IJVna_DSiK1>aW z2AQd^stRvAA=?QO2Zbei-T{e$!gnAsD15*eR8D}(4iJX1K{N9rKw*q4EI?!IpgaW5AISE?>_!)ZiNk1gc@Q5Y2f{Emj0TAzVM^20<@j+}D4Pt}L1LbLSdyx4cw}8SB1gT2C^G8 z|DO$=F94Yb(+{IzV#s`u7&->YgD|K)Q4kdcK7Rsc4>ApEe}d8}tuQDrf&7JRCo&rp zU*Plwic541idPs0$${7~8pH-+5Fdm=Y#4^|VKlNhNDPEQVjvoXL2M9)v5{#I8-}53 z$PFt{Sb*wzWdFn1AaPLo1?LlxJs=FT7e<4`U>GEZiw%>5(dg`qU{Rk?zM)B~f^O55dlt*Fl4k}+k^**SM0MVfO3RI_(g$)hCYX@Lv6QV(L z;-I-#vh0G^{UE)dvKW-#(Cq`&-JtZ2oF719$b5WkbhV&%3c4NWd{Cbi6xN_{1o;ir z_XmY5D0~MJgUcdVIRT=hQGhuvOav*sS2FZgk zhz-KfaR5+S1@$Y@!^CJ_v)@APi!IFpP~vgYqXn|A5j5D2}kX z8zcsr=L3~ppfYR}56?CLa{CWdPQvOZ5Dhv{4ph&9>Q$1lp&@vE94H+TgF)#KRCkkX z4^rI^(hD*Jl;+Xx1m!_cdPlCuk=YxO7>2F`1l1|%{sW~QusPWD!SsV@kUTPt%*G`L5(iP>Ubo?*1QE|HJBA7!9h6kugXdq!u)GMaX{87(Hm79;P3p7sQ6qFgA=2qe0@x z7$gpw&j7g-o1LIKnI3gNDBiKz4-x~73xM()NDUmr;u1uIFf>lV@*qA4Ba0!kk>y}) zba{|C2*bodY#0WKfiQ>uPAbA*u@j-sl)y3PU0hNcK@JDwuj1OwZf$D(Kx_@}q{h)XSjpM@N z8&sad>L(BllBcBp2bl*mn-C4EPeJ<)Ky^4J7*scd@+`W2ATf|%Ky^4W28qKkNF1Gw zE(S9L-F$p}P&k0X6NCq{-iO%@%JV1~RAwM!P+0=vLupX?g>4Q1)E5WU$KY}esus=$ z@sTmeJP<|~1M#tmgTz1>BoD$MHVA{p0(5o3ZA(!3gfHC5k&E*1z&ieqUI&Bt;JP>> z;yZ1CxV^gJ_r-h=yTo;zZPygu)Tj=0Xn# z5FeCp;9&u>8-!tQ0nso%jE0GU_#h18!!V4GOoP}U3{wN5wYC3)${dir_}mSON01tj zJF#In%|DZA)7WbgE0;{7yG^or1)pz97$Dn!`G@bx6n-C33uOL0-*oCYI zWCp0tMz;^-Pf$M`;u(7pfVklW@(8*c7XhY%?%(iaC(5n6)3(y7{&+DFbon0 zVPrmt4HAQ45Fdn*`MB6Hbs!psL26-a5DnskFfyAO^}n7T%04PkIDjx{UjR6dfb2xa z$Zo*JhUtOHgJ=*2iGyem2C+dH#0Fsy8{{Vfa~hy{1mz=;J8@x9c{*DE58wJ9IUj@4 z1E}7I)lZ%UAbUY|I5s;#VxTq&sNMjj zdywBi802pdjSYk3Ko}$k%EurxNX4Lb2XeT=!gru(aQO@>BVc6(hz4Ph7!1SsAR5%? z*3tP7T2qGZcf8}9AhSUFVKj^l;)5_UAH+t+AbAi*7X$G@;-K1BbyDHXTatT&^!^yEf{GG6lbuw1JNLiO$;Os!XP;q zM&@HA*Q2qk-b73@y4XazQ#Qf zki?h|S_1%557Gz2$Yz7sAPkZN(I5c z45K{=i$_rWA+tez5JndR@j)0Qhm1jDAdD;qV}ry&7{td#gXBOMCJ$o6F!a7_O2Y_S z``Acb9ej2iD2~8+3S>VFBiWB42NDOVfzilpkQfMq#6TFv#zBMnLWKMUDg!}rht2(< zxE`o_5L7=6l-(o2UQqZV$2rK)pn3{~L3I|WydkEphpU10-=Q=pO%aPhMivGId3gp!1qB8* zRaJ8%L&N`CnwtL=I(l=l$E`klhpqo>D2|91=2Su&O_z@&kcqk zbKFgJ75_h8sQ*9FOBJNHW@VN3|2HcP{s-7A|Np$k;D2w121vYTPrJ_l-y01uW0ff3QIRe~6O`NR39g zv&#R9C^e8f{@28+|DT$x@n2t0@BgMo?f=_bbpCs|yZ=AXr3*6Se^_Yf|5RVq|KTnw z|BJ)a{`X~S{6Es8`(IC2_kToq`2U9s^#6y3g#6djQ25^vum0cDTIqjDaq<6;A3y$I zy?XV35C{nl{@>Kt_}|6Z`Ty0cSO3qQJNN(bHPQd^!&fIS?B+R z{{H`Isj2_BHS7G}xpU|LU2Qu5_jc%j{QLhUmFeoudLDnxkF`k zq2~YZ>ka>}tkwdBtAnC~f`u{7V)Ii}H zqaZJzWv-|Azbab&|JG*h|BhygAU{?p$jkdFDkxN_s;Ge6tD>x=#GsR(=6NAz>N;5m7O5R#t8aNvyU@adAn@$kNDaxUnK~@~qqnSRA0p z#j2zXS4K;QoC-I$Dw+$_xVY3cXlW_3*&<4;+?ps3(Bfj%Mpi** zZ6&JtdivZ32nTSn8lp;`*dtX@CR-c;}^E5Q|tGpMVo2CW(<`l(4XH zGHXgIN%p6K8?ktZcsXKy0#YZ+8cmx0f_SWkO39ND2%@a%q}iVYwFECkd=QATrjllV z0$z(@l0-XzWcxE{CiaUU+rWxZ#v#iRSpbn1 z{wT>W12ravg@uvr7sHUnDnOe3D3xD4x`8NFGm%4Bq}h*>#n6+VFmn2rM|T_!K56!& zRDS5K43xmZa2z%4M{Rqd)-b5WPX?+a4$Fmwg-P;1N(5(!!a-6}B3iwGku`C-fF%1- zLKr!*qqB)_{*dN>2cI}QgVh>>DDY3YxM zwpToQro`iQuoNlj52fl%YCrrB!)j)9>d`RA`5<~14!{d4hzwQF{>r0Rahw! z>_@Hq;GJNUG8yC+l9B)k_M^1DkjnQov|mHjAfFVy-4 zC1)VnPq-Q&-v20VFSP0%rDQ_bFG6@EfOz{+k{^282bAt$7-4@BE5Vw8c>7UO8G0s% z*$txM_NQgA!r3T^4v9m&{V0_mO7cT%dBW|CXJthXCnTF8OyccF$>$Kw2omIP7>3yo zim)t%66`FZ?MG>QVHgXu8$`qGmuJmpWyNkQLX>FxQSvxOB?Gb-hN1Q+v8Lptuo7y9 z6Ky}rzyn6IhS?3GA@-+bu;%6w9@-LR%_pn~6kI6D58YQNWdp?iMAp>2yaIw5K$NwR zIQv09gJY0`kTEE!!6m`=i?Xs7<>eI_=&PVK#B$kq=@B2`92vfNakroB=9{v>)Er0x@8YN6;v3gLpYs z))I*Q*{qo$4G4^$bD~&TiSj?fDy%Fal+u|MocKU4r~-ut63#%cI4Y@Qzc9!F6{&Cl zN_-&uOW-1@Y^pi+n-a-%9?ZJury4!kTmR@Pc1yYupL zDzN1`gc*&jO;q$hsNjc|d{9^9u;OonClgu!AzX}?mBh*hwHQXF;IDy1S(~Zpe^8?f zW;28)V7e%43jq~){fj0khvEIaY*zHX3W^@;+Aq(V3-NVc2`m{_;V5{ZuAr*@a*$R} zUS3W%D{BG7CAIjQU{tj~i?s@DX>kgu%1s4Vf+ehIePyV}p_C|VE7js(6yp7o3Rc!E zQMnA(6mV9=-vp$l{RyBjFRNySRJ1}_kirmuABc+f3$e16Xkoz z)qmg~0(w0w0_ry6>jRZjtNsUdL6L$U?$abzycv*c?Vlu8d5mrm*b$-`_y!>=S!44_ zTK@w!6O$0hNW#^`NyF9l0+|xU8r#N--Qgf0m2LGH%TO;(}jV7VQS|zbQ${alRBq^R^T&s5*#O` ziF?v!bj}2=KWCWLi7}!~6ARG{o!vPHY&`?x+|GGua&+L%2PJ-p0~U0$E?h(hE0L{O z%-Y!tv7Lc|VM!{> z0|UeQPS!44)pb0Q+{;jyrxvs2nbk5;xq%{AM&NuRZIGu%=X#+J@b)~(xg z&__w3S}CVQw=3;n?d;r%#q&^itmy3Q1oa+ig*!VtcR{VfMXlbjyOTy>&z!xuY(*Dm zWMp&!L6?2|UG}*!G9F-LWCT?fAa#rkj0|8dR1u>Kh{xyxlLx68#iJoG8UmvsFd6~` zLIC6Z5e62-`6Ey^XwyFE{E_sML|jLYfNe=HNyK^d2v`9tYLFJ7`7px#K6F?oq>VjKb7!f1_p+Z zVH;Yb9vcmT;S&P7RL=XbGUO2h14GPcJ7D-Elu@4yyAWVxU|^U^r8*y$?~&=t3=9nN z!!FcDJv15u!y^P(7#J89(lGzuW?*2@93DY6>Wk4370q3Zk@3Hvpx}Q+MaBPyhKB!bZEgSC+uQ$lb#?vk>+Ad9-{1d#(xgfMo12>c^K-Bv z*Zm;&P3TzSunV|R4~>SvFbDx=1_lO{{LjX~@PGA^MgL#Ccmc+5-@g6-@#Dw;U%q_# z|KrDx|G$3y0^`4b|Nj5?@85qI`1Sq!e;Gb5P@YG|qxpXrB$81t4BHUEsQ=j+82+zY zzV!c}KYzd&l+QsJIj_U=JTm?K$&>$5yrcPl*rt?Gj}6BVz^MOW`5!rN6T^P-^eL|V zuQ410Zq!esAutR=0Bio=uyQ#uSsq0Vp8OA5Pc#gIYSas(Au#Mh0F?h{A&>uYFfjb5 zV*bC%z`y`nFF5Q1Zq!4gAuvorU?w&4KaT!CDF1`j4G)u`qPaIfYo zK^U10T34;Wz`y{*Ahj?yjK(GglY`M9b3kUpFo+L|CoKjB22g(uG-r#9L2@8>pwloh zm^g?J!pM9O8?;6o8wS-4AoU=32@x5(9MCl-AiW?AG9QFNY!C*qVg4e92H6k8AiW?q z$Q&6gYu5xA7#MV*bK0Qr0fiL^gV-Q_APh1Cgh6a%j4TFXgY@x1{S2yy1sNC^IqS73=9lX(788I`x}NqaR6e2{0DLy$Q_f>^Z&+GD^S|@#Bjj*A9MWw+Gzbx zD5}8nptuiUU|?9lz`$^Zfq~%y0|Uc(Bn;!9V_;x7i-eK+FgA=vR|gUYVUReo*)aAc z1_lPud<_WSLSlpXpmkgq85kHq7^DuF2C-onCWp?y!oa`)steFDNF1aV!)XQv29REmyI>f`2bl-*6DZ6;7{&(CAPf_Ov0-k8 z(IEXG_9+GihD8hv3{4CS44`t6mw|zyoq>VjE?U@t!Uq&yAU!Y)G6Nlhh8E}?+zuRZ4{|36gWP?Xfq?;3Uq>-8Fz_RV4U7pYGin$Z7#1@yFdWAb=AbwL zg&D{#Aag-!0zPL4YX6g+|1rn^L3V-47?}G;Y19w^)%U>+3=G>C7#Q9om%}5N{fdEs zVHtFf87Q>aq4^G!U*PGK&fx>fvzr+h7+%xaUR?hD%)r2~g@J*=1Qb9}Tmr2ZaOojR zd^G<?GwYW+o z|5c^Lz+tZ-F8p6sMDV|?h`@h&F`@s;5+Y!6B@u!Dle*gffBEv6m@JQ?22cGD8f!$& z0VA82fUDjY5D@q;CnxuR^{Q3>A3uH!#?PKT`wzm;pFjVPjIoKqj{qhBzjVumglO_i-_w}on|6jd${vVWX?%clpKgiwXzc3rd z{t*Q7cXA? zzjNo#|K{fA|5;gB;QB%Cz=l;MMgFf`yzu|q*RTG+ef|3XySH!tzkmDo|C`sZ{)6J` z$)kt=Z{NK6|IV$O{~zAJ_y5JSr~hBQc=7-3o7ewAYkg5NHjx}0_5W!5AGNFljUj`^ za53UgMn>lUojZ5Hdn*X7wI(u3h*AbhYv^fc^O{ve>7|w;kbi&w{{4U6^r`<1)s+4- zW2t-DSXlnYM?`?rDo8!G?8avf$W2a8P8e|o3a^x@ z@Zo=u9XJ*L{}0ZOAT^*pIG{Z_6T3S9tEsB~XTTChJd6zg!#rI6KY927pOIiQLHQhH zE{Mjfm`F)*{>MK5H`@M3lmVbQUySsmp`r2r%9SfbhBS4R-M@by!#(7z|DuMgKxy&Z zsT2RjI56wDsL+uAAKtzNr(J5;MXVX1JYr>Oi4jKArcEQ(2&$+9g$)RU_TN2!`V_-G zpfbtd-R1wQXHThOAE}0b^FL<)A5{O3w*L|N-wa#Zf8Dxuqy{(D)DNco5AxKvFQ5Ng z8|a{N*#UA=MzC5*I`75|?r^gN4!l z2c4rfV3GF!|NqhaPdN04LjL#laR2}6*)zhPp^=Kw`X5J*M-?8;|3rY%`k!zhq1XSO zt}g$dKY2`8BaKwx$^WDMe?%F8k^eh8J82Xn#2GtU{}T?Up-}&OxH$cP_V^KD&(KK4 zX#PiJay%@I{7-5BA5;&#dHsg$SfzIUzjx=(e~_C#efmVUo2Xs?KYjG*|A%*P$#xI5 z^Z&1(KmXsmee3_XuV2V^6DW*fV}Br;()H?(N(EWkrSmIT;xKrzOV!e@W(g9Z-G+ z<$D+=H~)ju(X83C!RZKOR%u@L|95X*5gRmcb))lt;QUR9pj!UFbmB!B+<^RiP&xwgD6gAY!|J2GOAjhHS|HAy-|3~-j{l9DTrvH0)Z2Nz7 z|K9%xckTSYd&_1p-nC`(|GnF{{Xev4*Z)1+w*KF@WBdR8JGTE{yK*^77%9uj{6Br{ z2*?VOFtz;l=lAdb6~%=pZtCmnC&?`^#pwB;-0?qb@jqqCRG2kH(|GFt(fNNo`M-)N<{d-w21J3B{>L2u8(sg4 zS{PvDe{$>ps~4}Lq@#h(|De0!rcRv-cT-?M0Cr zpKwr(*8iv(9S091|C2lackbLdcwPh5i36SgVJYOynKS=SojCFT&Fj}NA(Clg^1lQ( z`~UKy{QqZ9pZgCA3u5qBGS0ODIes+%gF*p6#*_a?`~Qf-03-kR_L4XLd*9F%BlG{jfdhm!(n!T<{wEx;IO_k=^S=>!AH_HU&&Ggyo_}*=BjE%{LlvX>pK##f$p54Bf1q5Cz!>?T-1>j8 z&HoclA%s<$sPZ{aQ*^H8+ka?|DaU% z=hyH5wg$Q=ej|4s5y(7h;L-d~I27^Z|Iz+GqClWp{vXc$|H*x*dt^rQKW6?zU;jHg z|A)wAgP29N{D1!3d6YVGxYYlkl)h=*dKABn=6_JApyI)n|MArSqw{}=0*Pw*e>m6w z=<9z*^FM0d2k{15{vVzHLu7J1ER6h5?)cwet^Xh1zYjiB^vAcapkzuGre^+s_vX$2 z&1=_!_x*nU_?|5H42Ayx=>9)Exo+@CVdQ^u$NvUf{SR7;yK(hO@VPdiIm!I=l>eZ- zM^1*LR{nqg?%n^2;v#roB0V+v|C=|YpOrS6{|Uz;p7#If_#dMD!N~u^rTz!C|M(eE z=j|8HApIN(P)eg#{@=J}4Lt9I$|Mk;HER~g3X{wEw<;QWt${r_nG$CLlbt^coH z8eIE-Up{;GUxEv9))pwQf$k9}oN_Q#P%HoM-?bAX|IeE@57R;dBBS}AKmh&!{~w(H zv9JFf9si?2{zq^B2l)E^fB)tk;fO+0fo=a6Ip=>2%KX23H2|z| zudk0#vcZrat^cuScr;O}<^R{OU;j@|Oa_+$tjx^+d%HUSfBF0wBVGsz4Cnm+{Mpn0 zIhpC;FaqWMpaB2>j~-*f6!U?ATd($aL)grumIirv1;j({~OkVGdc*Z(h`KB2bPi8c>U`+qe5@Msymzl(|CglE z{y$h)fx;-*%l-e`*RTGA?i(e=k)V7J3e!)YKK+07>J|7LfX|;lgTtASIWJ$n#K>zi zX3QX@4Xb=tYb%Ob6UiLg#I|l96iym4lK;cK-T%LO@#6olpFgp>ftrG#a0TI~j~@LO z=ixx{8v_FaDF1`%JVXu{*(^o|1_m!sJmJE^!ovSWMMeK>X=?tD3J&`3YHRa9(97$8 zfQJVP_IG#x9}yV%-^Iq}e?wK({~u(=HMaaesk`I<-P^bSU%hnc|Fz4P3F139Z~Z@h z=+J*LPF9ror`G;o^so{U7XB|MC;Pv>sqX*&J$wFd+qCKbjxAgM@7b~A|A9Sw{_oqh z>;K-JJK=cu_U->SuV4Rv+2Y0jC-(OKZ>q2V-`dple_~(X|HTUyfaO4XLFzy>2=Cjy z`~Q9@-n1U|JVKCrvNAHjc7oruieGb01+PLMoE@7k3sQS`y|gJ_VMAT`@JZ~i}f`g9a?KyE_DYEokVt#vj3_qMhE zzi{U4|1&2}{6BsC`2TaKPW``d`ZO4yId$s)`O~NWgXq&IPyUBt5FaFd_VnrhV0`M- z|BGkNz}21uiG%cl#Lk@gf9}kg|ErfR`!B?ay8j!R|3};Zh%!%>fq`KQay(IsU0qd0 zR9%K%_M_*2kb9VznEo>}Gn0%#dXX`?`G4gS%=^EP%|&K|+{(zv_@4=cnV9~A__#1g z9X5Gc!2+vA6@&*VRNM{}Io^I{t?x-0+s|*wkyQtN*`y^Co)sCdkK@ z|FM}*ju^T5A5>S9W8bJA)bp1HL3lhE9sffq^FZ@||7Z~}dD+?j-@JN7Fu$WK7>xP< z)5j103o=vxD@aTI*HlyaucoZ@Uqw;jzp4^$43bw@QU0%?s`6h|N%6m~w&s5w4YmI~ z>=*@Xf>BC3# ztW6Xj*EkY2(&v)dGl_BoHbtQGL=WuR@&D|}3=9nI3=9m_3=9nQXt)lE-^jqg(7?dJ&;niS zg_7nL%$NqUV!$w{9pP+kj^ZY0{+-Rhz)--zz)*q(7c($0fG|j|6iFV$24R>uhz-La zF_<0@8y&;c5u!o*U}`{Y5QdoxqLJlb>@o%h1{c?GpvS<#kOy@;NFT@?n0gqE zO$;Ol5(i;)Hi(Z4BdZ6gNoHVR;6-xNC=(I_82P`WqhrAG2gu?(ckW=zAIljS7+4`r zCYoFc&0BEu7EGV|A2c@vvS%Rhs~6AzJ6W2+-Gk&lL!x~(s&F&}s22hl`M76=wa<$jInSy(k?uX*2|g4uL_J|8cbc zH#0CW2omipNLv9T|1X+3eL(AfQ2uwZwg8t!Xl2uA{wE=FN0m}71O{FHfB5hrw*0Y? zjQ$%&{$D(cyft$0#tDTCQ2uwup8p-F7NesEjfMd6Au#Cj|CK9Ou;u^l3=9mQbsNGA z3=AMF#K6FS4U0hKB^ekPKz#-jvsNu2{jLoPvpkA+aQ?^A{%2rd@L*tI0QFfwV;smB zBu0E}qN-$pj+wAAFfhO{JCqHx10;^l28n^xfiN-~#s`UkFi0P&jre(>wWc6FAiXdQ zG7}kt#L@X6F&GBP!Pp=gnGa&)!ywl&F)%Q2GB7Z3V8JlGAUPNtM8o(n8YBk7AU?>< zp^P!||3IJrl@uS3l4qgqSVi*`0;u#ni0vQ+> z6rp7WwsZ$78>69P?OhBE4AU4G7^XvM5E~hT=H@_iVlW!U2Jw;A!SsV@5C+MC=*bKW z3>6Fv45p=AsV3=5!mJ_7>-41?5w^nhp>hVfxENF2rnnPH3W;UUHc z<$sj*KLdIG=jzp~!Ruww^DVXb+G=Y5pWeSm#~hDp6*&K6Z~w!~C?foNk%57sgMono z`5a47od(K>+lbIlie03roy)+$fIN<2z`(!&S_ANF0Nq52`^iyzjDdkcpMik^)V3L7 zSs(0Ntofhbb7Y`>gP?ox=#fsc$VPIfDS;s|> zu*71=PiAK3YG!8UQbtC`hgjrcZXZtcaWclHz?p9l5TN{zl5RlvQT_e<_dg87$^sA# z5`)n&HYn>Li-Gn9gZ8z8_5mYf(EfH12I+(0BL@!rFE20u9~~V{*Yu#Hs{FsHqU`^< zlgB{LryG9p?Ad>FZT0`G4AfZ{&&bGlnSp@;v^L`B2+3=7O(!ITDQFKpsBbWbfq?Q1VZ z<)F5b8v_FaXnc~M1*8XrLHa;p1qut~Fam`Sh@YO0xWAFgY3nfq1A{j`Gd}|Z z!;r}TpgaxAH~2894+836fchUG3}RzDlZqN~#>39?f8UO+_?$y^xd(Ue{NKNG=YLHZ z{CO@rJ^laQy?g(E{P^+z*RNl}XN!TthUyOb|NsBJTetr2+qdt(kdP40d?qO<@PE_# zb^jmSy-N!x;5GB{RekN?KUp|FHw)xBrpdMh^Sltvml2(Z&!#=d|tFvxgkxsG_I6 zsR1R7KxI;I_rUHYLC*h0MMeK%X@F7>gVH3(EKnN@bU*Qn7cc&U+7mDu#0FsyA9S`O zi2dZrlmDP|TS06P?&|8o2(JOm|6I`dWMu{h1|=wlu@x8?7_eb^EaKS2koCgM2GJn% zL2{sZ;wzx^0>h@Jrr`MpO5=%I`mbNVjuKZgB0~R992&T@?cctB{a;Z;0L4w9b}6;| zOO83%_H8U)w2&O5sHO)w|5sI2QO#UrgFtO87zT-h$_7y16GS76gXEAgD869n9f=;O z`XAN~7zi4)o(;5q51yV)OiTt<{zpznptzC};{Si_z&_;Yq$~T=hY$bV?QG!T1#%N; ztdFjaK(h?g2LQPP8LwKr08JHrxybQWQBgr(%L&+qV{8(%hHD`5;6U05YBO9zPB+HJ z#{WTmcLG63H)-T_1ajxV=l}Qr-E1sT@;_+Z2HgS#i$&P-|FZdWv8be<5OTZ?k^G-9 zkQs4+>=tKWU_fdA8yFaX&(jCBpXirbaNC5Ojs`>i|M>phe+M(8L7)FuE*h=>aiuC8 z^*?Cu#sFo*0kamgR}XYABRoCp>FI&*92w33*i+BP_wWBZS(w7Z3sfcz#`=HdqWRc8 zKqpb;a(l4V|DgB+#Ty!q8n9eAa2A8|KT7?ttE>C}%a<>MW()v19f9I&pxgi8{BMbR zjtD3{(J5PDwFX=JfB69Kx4v@qD!hywZ22EY{Xd%j85sV9@;_+)4>X2~HL=lIaPZ~- zcmEyDP2g!86lSCOA2U&08^rk^6knitL&Knb-UC+?4~)&AJBU!m|3G^XK=uD{Z2y1# z^7a4vl`Huu|EV$I|6jj+iIJBG2~actKfHhMzq*nFIG?bwu>4=Kco8A%vC2~`|Ns5- z=l}9Wi~h5-qTbzzR!@T6i%$%Febivf|2XRZ*nz2n2h>(M=-EE-I0cRWf$~47Zo-<_ z=q!l7j-1^7|LYge|Jxer!~Mz4%=mxjrVS+fhMM{R^5x5L_ki*fx#vGoEB}A_^yzAYUY3Rv5o%zev;h-(m<{J z4>AjMPD(;l_|3PUBlrBicZ{EE5pBSHrEu1M5lNBXz{qNgXul~E)TEXp>5f%A=bU*3q2#0(A zCpDgNsYh?O!O|6IKRIaaJ}!Ou#6jhyovj@_4q;|ei5`jdKWHz&Q+(kEs(NIx5J3!5Cnq8HUsVw@J_d_tSurx}|JSen54QaO{@vUE6-7nha0>A8{(t4- zMZ95(OLC~?e~^1|`30XisDA`Y2O!$U!u-FJjn#i^Gn4-|=B9YDt%cctM;ojE9?nkx z^|ZCYVGc3_36I43A2j#~I;*~jfq?<*SwwT^lDCc=J^$BKRsO$x?%e;gCr|!AcZx6u zsk?CI^#3iJHloCpytvqZa?Su7jO~9|THm*0`+t!8V0=<(P<}#6$Kdc9%=JIWy`=gP zq#iy0AKbt1|I>#L{y)5Tmmq$0|K5Ml`3*0gKK8gD~h$1YcYeE-*AX#bNOs5mr$@)KHG z{y!4(|Lr?>aD)hc;n}liqogTl*p1ZsAC&)L7<4~0O4v{<|C4*SIcUrW8b4rnkvso4 zn*Z_V32Mut#~X4Sg32p$>_e~rL3WU1&glF)Lc z6DY2b@kpruNAo{M{-s0!bdL%~{s*;{$Vr*#?f=pGpPW!6PS0rmCoY^|sz&R7ti=Q< z|AX$71GlqbbqVOKBv`nSLXYNuQbLO|wWIl;wD23v|2XqMM*R=U|KzL%9&Gs^G`{X` zJGkcmNlUf3RgdO>++l-F2DGLHR=*+9BYpf2RR3e-f6&=>!y^9=!ufw}X_FkW!I=L+ z=kFrrEtEDT$i3wFb9DR7)K(&A&Gu;hPfiLaPY)fY~rUj0VYpFi0Or4Bx$yAor5vQ)=aZ9QFT5p8p4x zAz1VOaH;>_y?*`Q+YzxRWpw@@GY5k1FKKVYyh{MRY@w7t(D@%!r(yBKX#Qtlz!?7n zg%xH>AuKZ3>VMGuzbn$Yy~8R0-@kt!rF{)b+vL>$-@bnRpG=4Qpa(ktS5;M|2rDR{?vWrj|Ns2){eMY*4n|o5 zGLM>gH2=f0+@PZ|#{WR$|CqU(u*hJ`|Dg82r@bvaZ4ZX}|Hh3Q|3P=vQ8RDB%p#}$ z2j%~wT#UW(pnW0V85kHoBjGO$3=Cfw85ut_GBUzw7#k!9Qu_&{hJk_M56n$4dNltJ zx_l3E5Z3yC)~s2CGdmU)gDwAq=KtJm2G{<7^z(mU`GXqtiiM<~{|(Cj1=$(!G7{!s6Itc&*b+1^Rm*x?m;pS)c+?p|7$QXFg!pq3v4#X zy%-Tqga9afG&D58W>{NW{|AL15!x`6jMo3i*&fcun*Yfi{{sd3o40TOgVtD6(lNF2KWP5X*~%Q8c0lQIFpU3!LgVY#ui!8`dh{rWOBM#@Cy<|zF}e9aA2a_C zn))9UIOorw2Zz_AM~^^UvhZmA56|<+3{d{ZnExlY{wFJ9uxO%I{s;H}?Gg8O50?Co z#mgiMQ7ixd`2OwxU~d1D956UE;K=_Yz5fr&|JBHK2#8Hd{f{H~NfM@7{vU+>f06ifdM1`510BM)czlA>wic}w0IO#Gymsh zrosD2pz@!AfdSP1CpZ67b^H%c5RfD_n*Xtu;7kmo`JZ4q8qVkcfX4r^jQ@f1Ke^+7 zdJGH<&!FW9yj%g5R|Er^h6-@x|IzjTqxqj;svFMvAJqTHQU8;h|8*G{7+wsK{6E_M zXJDv8kE?-h|6fJAM;hcdve*C6u>U_}=1hX+1}znU>QhkIAY*dZ|4}*rgX;h1$nFBM zLGGnxcn~rhNBuw2^FP-1|MKO_2?ZxjP~QUyyO{GKOO*5SWks{?C!#{>PgC z!@|P;KYR9!g3zW+YZ3H*99X)R7Z?41^6(*&4F!$=Ia$+Y{@>Bw{{KLx=^2wIV&wmo zix!X^MtJf+CGCHV`hVt>NhG_CS{lB8{rW#WIT<6o7#JAhv5tz3EWr#|K0~Iv$XvTi zX`D^z>&1vCO7g!mRr3G)|4tUB819OXiv0io?_Wy2OtSvFH*fyuWoN^14>{|9@Z^7T z>whB#28NHwX$iy@;O6{)@Ahqy{YniDv!+b?&(6$*5nc=o4E`f4t7G-86DWSrv9zS* z|IDQL|9}7drbZMHWkyj^A=Y>T-T!y;@Ij)?Kvo2*|EV?q=U`@xE&crW^6>co`t@sM zYiY`!)YbXl+!V7c0>vLW`Tytl@Ba&^yZ%p*fq`K)wmra>78d_EtX)mh@Ig1cBq!^? zn20dexMN^ou)>-nMwXx`DDB|Fpf%T_0RjI{Qm|GPJx-AMhxYFI9~>C)-__L>R~-EZ z-T!<3x1yB9|MMqL5TzGc(Z4@`{znJ-<8+^~vGIRDPtX7BSFQa2 z{~wu)o}m{0{{8zu`q_)GU%vcboRt9%BOLV@*linDkv?t%vJcDtU(oy?XfH3hIl&v( z-IAcZ=_}!{VBmw=FV4Wgu#|y;;XE3? zz`(!&!Z2|V8-!teWco6eumPthWN{fOssDO zvb}n`y8n5(x#8xsv$FnIS5qU|90LP`|DwV;>kzp4!h(Wig%QYneSLkfUR_|Si?4-`hA@B(2_8kLoif!hQ14?6z{0|SE+G!KzOaWXJ4WHB%> z+-6{4_y%q3fXYnJxhEiu%m(q1F+MqDb-36+7#J8{GB7YaWnf@fFiL#yCdv;%FWlO#_2E4S@2#7AO;w zi6s~q7^XtcM59I7G-@XCb<}8BjfNGmX#lhzX+8r3gAked9;6M_=LY3{P~V7Hd+DZ* zhnxGqh#>!e9!`$`-0bZCx!BnLbAT`_>wi$cmxGn{KL~TOvHj;_XZtV2$M>I)i}ODp zH|Kv&HdeShS(zCBiwf}n7vbms&&$d2pO2H1AO_jX&&BzlotY7C4st!n%f<0uMne3* zxQOt7F(E;MSXx}{zqqi_e??iD|56eXSj|K>pIU5oCdU7o>T3VhRFwa#Dl3tV)s&U~ zYpJXK*HBgcuc4;;UtLv&SU((NU|`tEz`(GNfq`K=6BE-#YWZ!rn8V7z@ShR2+;LT=*Z<$JeCdA|r1N`0X3+wBI6M6>%gp>gXY$1V z*DqiEf9dR*{})c5A{$>kbL#(%%a{INJ%9fH)k_!tU%qhee@AWA|NNB1|7@sf7as0V zf2pIT(J-huTwPjh)c@MT-2XLH##Q;*{|nNR{-;Do{15l{{U7S<^*=Jm|9@&s0n%*oB6*iC*wbeuE@;<(;$9nR{H-^s2Y%XbwLi*-3aotj*P^ACPtKc<~Rcb z120;*QJV`o(-3sNF+3h%@e&yk@&D+-ga5yO{|?4Ke*F0V^XE@68zctegD{MZEQihp z@sZWS^nk=ba@Q_h{NG$(kKqQ8TZ#(v|AXc}U>G!q1e)6c=>?hd>({UUAU;SOHctYg zKfHVQUzimoJi&PnBu5JV_T|fe2^{%fM^5@b$R1M61F3!W{KbFd`#VAYq$cKIWcWX^ zz2*Pw7tcY~(FM<&Hu=A+Irg;#Sk|MZp!@g9Q`)V|1f>s9T6y#4&Hq=gUi}Brp!D(_$I9=s00A_+=Ud$(`_DTyurA3c1So=(89i^%+s(f=Rm z^*@&U4{HC@J^xRiG6f?}=_xRn^Z!t&{}1dV{X7wB#xJ?~f27y{PT1>zT95ya*8c<& zKg#$&2iyOZi%7qVl7JOtOJl452WkFqAMO9+k7g|OKRw$282$gz_CIPojpl#U@F2v) zQU8P1m@y;uJ2Be-Bfb8|k^d=K*NYU~IGIJreQgkXH2TZCo&A2k0jhBN02J==T6j2L;`QH z_y3p8pF@IgXseXk?f=7v4};?m6o>ELy(7!1&{Eu-q+ejV%1Lb|t`b1j;UGR7} zC=WvMIR*v>Y3gKioTijO?Sk7qgN*ZE-@bkO-`?69Zib|U#Q#kjHjtHmM)N=M!S?s} zZ;bgra_j%yyLbNw-P;RG52mK3|DQa4O1xvBD)HohA&*xt7|0Gh(o&%6|nBL6r0Zx+|NU zm>kUcpNF0GzqOv`e=l3h{{gNJ|8HEq@*fn3r1}%2=jOF*|5KwQ|2vx+{`a!8BpG|# zS^f91wfwJ)w*H^o{6BBrJe2s;Q&#x@?8#$Nz4jkR{s*=H@z(#kN^<`#wbcGwK(V%h z!vCD4g#Yi!?1zB%?3_Av>c4`50vLC7b&<8F1r%2oE?fYc0Wzz(xtT0;Kmqyd=db@W zCiMR|R8oNWQ&aW7nxg!FDJiM{EG*0@;m^RpK#%-i4yrR~fkEL7@-wM;Fz0_pq&==& z3=IF>ER6rZcuxAhwWm)W|BnmuLyvE&@TrymHRPoJKYjF&)ab*P|B>te9AeX4Q$^|j z|709J`taey|2#ZA@GxazVfjCIF6nDGpFe;8UqCz8H&HA9>r%J=M{oa!GB7ZFM|V3meol54S#7L)_wHeY=M*y5 zwmp6N6vLd}-d>X99He2{!i5-SVe>OoY%>D`1FhHpfyNg>d$aJm%hJ*Ud`2_qENfyg zC3i>-rTnidDf<7(!v~>yzkmNe+zgnRA=d?hJ;Q=)jJ=6_Iom7H+vY-elqe`-<^DZx!OwIenEU%7IHtT3#vu0e^rA(a0?X&ZFj zJSeS$+PR?nbwKA){e+ceAUZXbyt8NqWBy;hcri*`f&2$OZ=VMg7z2PY_F;nD)L2p82{~J{Kf9|YV#3w)+s2t7z#0Tnd%>PVGOepz3FE^X`06|hY zRNDWHjEpgKsONE6QHWgkgV;04T-$&Y^b|2i^FQ&yH^lNkQSJYcmj4+T7zVQbAI<*+ zvK#XLUr_mojHx;QPtN%NaLoVc?SD}HPwLnoC`t!o{l66Z`k#TU|1tXiqxC;1^&s#_ z&Hp+|aaLj7#LKbcXxyC@KvBg zzK2LBao9Hg85GR1#RD`Jec}8e;h$dHg?wn7j|l3mF;1Xa0ZTT+}lbK>ovn zw=gg;(E9vOs?`7Q-@g5Cs-+Ik{~$lL55x0+K>k9;!+HFl2K7I3{?A1YM||wo`WoU3 zL?o5i_Ww?wJQ+y^aZL34s6cM*A@h#Bom)5m=VvE+|39c-BuUH4pMimaD*6BO$B+O0 zU7b<#Ke>A(M?(Go;Lh#;4%U_^;WhZ?|Kw>o{+|iTN61)3Ugp2Hvci7@Ew%sV`r7~X zR22T_rltIU|Mm@W85KF<8Yu5Y+?cD|8qMV%n@7}&eQ$?5yI-7Ij#*J`u($dnv z_lFbKiK*iIw{QPJ_oG_rYyY=4)ctR1p#9(4NbkR$so{Sqejb$b^PqbnL3^WUSp-le z|9^P*?!T?EAxe7g?&`t}03t-FmH!_f#E+RBLsue+N#A1iEsg`5?YM^-MV_^ zzq!5+N_br+Mwu#_~Ae3+)Ob2{{4SD z1Jv|Dr~FTq{{PFDFaN74DZ$eZ==`5W^U1p>hg$g`l#Yy*<^D56&+HQC;rYL9<9d=~ zj28L-?5UIgEwq&3;iV!i`TyRXTO_-Un)x48SMu^A?p{}xmj3_f0qJL(5Sjlm&i}r8 z^&0qGJy3m1&U_!qfj5XWfW|km-2VYO|9?o-|Dd3J^7!$8J3Bito;!#9GxDjG|3PlL zcjxwhUwga%E_QbR*DhZI5+WJXBL9ONas2S1|3U7K|DEjY{@=WQ4J1S|re^*JS-yPv za&Y{C;t>=NATd%gp8Sv8|HsJx)H2*U&{4dDQMGGnVa)(;|fB4`*`UVi1Z5vlDhtF%k#&8%I7)J9yS~wwdan%2y z_P+?M!9*h(qy0a7#tdYq(VdN6|HsEh|Nr^@8{ORjvk+hYml5Fk|LFcbm{R)FfB*hR zzyI&_sZ;cK2a=6A+W&LV>i^O9KT??C$p4`FpVs*wqy0a1;zY8}TSM{=MNIVkFD}UU z|KyQF6q!kh=C`k2{g>oo!&ayL=VxX7|Ln;lN{pvS@7tHJ{s;N`qPVRewC?I385d?z z7_I*iL4?5q=YP!kKT!Us_4psg`9H?GI{%-LvF-!IQ)CLD=YLT8 zA!pqlnbu=ydvyQ)e^E|WY-t)ScId!93_bJ`*uP`@e->ucdm}A$HUEG6LcjZ3ko^iu z#~pRG;BW!O8xmeHTK^-56e=4OZdm&N^jQA`I(rBszIwX52doW%E&qEu+5bOra6f9G z(Si5$;e-DfanTszgOslS3vsdhKXI7;eeTa6Km4yM&c|?@04vk~^~;z3|3QVdv!n*` z!kN?mGeOr|B8L$J1H)882b2b#=j)3$eudHhfAW;{dz8s?>>$(x z%1_Sb#^~`$kNTgTfq|iqfq?<#%oS+7f!*V1XZwF*U*G@!-d->bVo&Pt2eT(nnDBqf z#EJhwd=T#M>G|K&)%71lgYd-u{{NGpYNk$_1Xeq3^5p+;eOTn`YEbX9LUs#?9Tye; zf8Nx||L0Ge`hVe!X<&NM%<2EQ?Iha0>97sPlxrH;Q{ZERC zA}Zg5+=Glm{Cxf|oH^zH+^G})&zm;s|C}ik!1Vm-lmE}1HtGL@8B@SCNDd^nVCK~S zi)Kyxzi{SMFb45K7$gVM3o>W+y1V|*oY4D! z{>6kj0wLGFNHsJ&1(g5*GI=1!gb zfA*va|3P{|W`OjA#9(Z6IZzq_sRgNbjLI(ogrh4`kzMjBj=|<%?91M$%vW%#gPMzhHQQY z28J2<+5sayexT=4mNPIgfX=N0oy`QguXa$UsR52N(4Dr}@;)dTW98QV1_lN{ z1_lOD8yDmTa@|iYefOaEBZI~$KaVY}>1E`#u%)r0^$_F4C zgh6a{j7=OS2BVSn%w}L<0ND@nIvWE61L$mY(74e=1_lP0dJql6Fufo?Ha4;tNDV$b zg@J(qRNosiFff3^0^|l<7}O>Jxh;`_fdS+;kUcQ7VQgd?#74&;^&l}24ZDzz87NnkfdOQ0149D?2O|rEsj)GGxv43GnTZLTnTd(2xv6Qi znW<@qxvA++GZT~l#)gLf%}q`JTUl8Aw=gq1YHn)UV{U31U~XzEWo~N9Vrp#6WNvE8 zYi?>9WNvD@#oW~No2jw!Uo#Vvf99s9|18YRKAD@E&NnwTH8D3e288~%bocsi z*E;pT{q$A;&z?Q|zrVNle{6L0{{TO~|64Y1{=Z`R^8d4E&HCTe*!ch8fdl_toSgob zm6ZGkfoIR2{m;zE_&HtZ2eFE8c-rUsmr@5(Vfw`$^p}DE)UvpE_hvufHM&_ob zhs{k*OU+G9IW5f0n9WU1^)1ZIu9%yeel<5W?Kd|y6*4z91&J$}o0`rtH#L1_Zfg3= z+|=}oxvA+jb5qj0sfwT)lFI;o7xp4A-w;XSj0tGQ*AQ z*BN&1+{rL|)+~m#t5-9uUAvay$dMxqM~@s~IC1m5|RweBTy+VEwCg+IX?S2IbA>*1jT+%WWyYh zEaBvY7znY%30cMkB8DJ|wx82kOG^vYe&hf^bv&~DC;`KX5;IyP_@5KxT~zy#3`3JZ zvLD6!oSd!*uY*~{`=8Su-Tz32p?V)V{Ly5Pr9ciK!G0GE`{4m#j2y?D$nlRBFr1tU zpmYSX8G^CdkH{~Iii)lXqcQD=8HS_?tQ-;k=-%h#gk*Mz?bzcVCI_M2z$StSO#7js ziBJMkhU|Ytz_>uAI5|At}YM8Y18b3VrP5KSTirX^dnjxCle!JWfbWh-^Qy z<1mckG$CRvC=u^Nn92|uXvl&mAO&y;(9kBV zMkAMCuJ$O!E*&`bkhlk@(otgIL%;(BJUP8Qyg_d9@#W;?^aBwfo-atwkJAf8`EvSu zcz6VOar$}%`hWz2IDJ9tyg&peCz$m2=k)LgY4rEt^!Ep;_weun8{!4#_ymF^QE@OQ zC#QFaS7=BWCnu+8xCbYvS4dbWM2!bX&LcDwM00WmdvkL7dvJP$1_cCia(ahzdW3}q zazZ7+O8opdgG0PIIlaPzIsN=NA#xsI!$4e4KOcy>ATk0(aB^~j?C10g4fPA~k8yy)H9Rp@S?Dq)`^$QI53iA*3;Pemo^9%O_OG51T3=Inn4fWy-4Gj$q z0{P$1k2BQIFPPIKl+!0H2&{+`OoIH+>EY)az=>?XC&;Z}|3lr%$;lZTryCEpf-^WY zG}JTPJJgReC^&#K)FUw5&(F^f6pEaj9$+~ysQuwVp`o52`$NM(tPqg>oIao!s)t(?5{Y+us|UfP%o0 z<`0te;`9bl{vbd5`FV5tdvk)t!7NTrPq2DUkP@&zIXOeUI63_|Lqj<^!Dc}ehk_IY zfh^?Y;KtkNkdt**&nWUK`_ z0EBCiL0uh!S67G3tF5c8t*eELfYpHskOW8uN`v)7mDPd8Ktvss36cd_%E-uA-_Y39 z)Y#n8+ScCQ4#910?QQLCV0K4aduLl)XIn>SdwW|)TSt3mJD3Sl($)%A*3sF~(Fx*r zcC>f2b%IT4YikEFK=Pe!9ql00-VQPeWNaJQq^@qpy1MS}p5DIx3H=i%Oz7{QG^u~` zgb5QTPna~NzkhQ7lu7;l6DCZW&_8j~#EFyo`}_MR^iKh+n$SNH1Sf(d`}-$Om^5)h z|AfgCCrp?yani*8$rC1m)lTZ4IC0{H{{H?+V0zM|i4&$wm^2Aw^(FexyC4j>R@6$0A{n9LSs~50C#5 zZf^fWU0nVLIXV6Jv$Ol}Wo`Z6)!h8Qy^+y>D?PpcrdnG64b|1bZUMOmhV@ld{~K#) z{I}HA{qJIC1~wza+4+Bfg9F?gHw%mZjwUAmt@ZW)n`&$SH__7iZ>Fsc#uhp{|2?d% z{>ONE{g3waB2FrosF(BZ7ytnuNcpsnt2~Z4T!!WWKjEzo%)FO+a^O5C1 zY-D*D8$`n}Obv(+VuLU;8^#BTfzl)>4S~{vo~kN1jz`O^(K2f^4UDFN(KJAvG+?Z$ z39fS!eSQDuL+k%EX#EeW3&C|JavhI_4X@+f-T#NXx`ONIKnI8a-ZnP>oz2Yt+ZY&t z>vvE&PAoQ1QvkF>` zLG>x9ZUtc&8=VHpfiO%Q#s=|`F-RPQi4_B>1!0hS7>&%vCI*rR)&HROBq+W?@j063 zsgvhN!*MhmN7KM)8UUpMSp5&GC-NgB!F67GP!PCZ531L}^*_>B0H|(^gx2#xj*j3y zIH(^FuAjBE{)5VCPy zB!`S)axfZQ4lEuT3Le)1)upgH7MTXIVHl(agpv6mHcSjggTz1>#0OzyHaZ_BhfIUm zAPiEAjzQuu43bOq^8=43fzk;mU4hc;C>|}hM$^D(8W>Fj)JX%Nv2sxP3K}Oah>H53 z8y@~2)NcgU`=Bv<&{#WYydE^h4hnM%U0v{ayq<~*c-#P_7aInR=fmpcU?(T=_i>Whs;LjBg=uO4^W>uzBIo@)p7 zt3my6P`?XAgZks3el}<sQ&aF7Jj`Le~$%`tu+fG&TXM4?uMTnD+Jk4_dDPs@G63sGsZW3m!8@aVN6f zM6yBpLG#a`d2|ql)vKU77KD-cFg7|3QU}5yaS#TvK^VqHr$KVKFib77JWLFoMppy! z2P_Q1;RgyQA0PO-0GJqzhJ`bX528UBCXS7UiGkFCFo+MrAT|ht*f0#^gJ>9r$$@B) z7>EYB8#E3BYM+AIprG-jp_s=;-8@=1jHZFnG%y&`0BrsrRL+9>yP&oIAPlOPL3JRw zUiR|(52}Y@7^D`4!F_yaeGXC!6Njk(6|H$gVrU0+y!ciZvAJi@d#rG&4 zEk{Swz-Ss6O#{?P1F-rZR38^Y=l?O&9)@sTm8?go|DAT^-+ z8&r3K=ITLn`k?Ux(E0(;_yTBd0W_`v>c@fVY0z8(Xifn%?qGyv?;oh#CkKPfhmCuK z+ytsaNUi^2>Otm!!UI;nf@ly%u47?*kQg!si6diVIS?BphfKrRAaM`|@j)2IhSBI^ z=;FwHklR7)IY9A)5@$I2{~$FWwJ;3g!!S$?M#IEmG)x>ugT(Q%Ve&8 zU>LN<5ER!SH-OIf0o4QO7-TP~jRJC`rJmk@J3~Y8xk8|E0FYgv^$Q^Xfa-KoFsS|q z)kUB_G^kz$VNlqBFpLeOk;Ty2AU+7=Qj1LvrWQtn)POLE55gceHVl#jVRSiAI|fw$ zgW?&4LH>ea7#~K1#6fHj2C+dH#)i?zVlXzk9EcCYAT=-y5(BaE(IB~GfB*lWxg1dX z1f3BDN(ZBuI{BX5a18VE`kxUS`#&`*>VHZ^#Q&tQu>Xmnp`&;-3`Wzy5KIFBZf^fw ztgZi-rKkUID=q!sSXlVKp`hS@Xi^R8bg-G_85#cx;>^tdH2gt)xI9QaJsl+uL3%*)Aa!7zkpVFqO+QE-7(?}g*kFBF)Pcld7;I*G`v2;j z9B`T9W^4ODJ~$Z69;tOrLP*H}_@JQwv4MgA16*9_z7L`(J^lZN<;(w1ZEO1vYDkhJspfI;^O|7#KeHbL2~7BasNTMB0l~< z2v94hQP?0c zm|S%9|KjNA|Fy}<|64LL{0k^CJ7gLp z2jU~s$ZT{u5FdnLYH+c!$s>!Q>uXF)`wxmUQ22r33&cjoFfkAf!XP;i4Z|=#G7Vyb zFh~uECI!Rvz-VN>ATbcGPf7V7>*@L5%gXA1dSKvac?&IXi{j(|=f%bS4|a8>OFLlZ zgbDv=c6X14KQ#P@dYM1!{?T>|EDeCp;{nzGp!yM1r-AAX5C)aUpt=tv4#uE5kpzrY zFQ{&XVUSrcHjKt629hIy!FFO(gKj=Z4NMFhjU*2;6BHJpumRQol?e&pb`6LIwJn;` z(*AcKwE;kNFbIRf5E&zj!PqbwrVhr3(J*mj8YTy$VR9foG6so*_#hgFLG2h&y^4%M zenZ9}IT#I5h zZ<@9NruX&zpWfLy8va_7bA5_nQ>Nr?k0V&-gWEcwv5VMP@OTHP z9;!}E1hZp2JpOxHT7t(*KViaR5*o0W?+st9xNIC|p5oWDFAn(I5EVPk{zVZ$)BAUQBQE$u(Ztu;wW|Em%bz~eZeaUM`yqu0N<_~>ep`5-n7BkKo= z!T88*bTOD5hz7Y46!xGn2CWSNg*|93ASk>eTwVXCj+V!eIyo@#f0%~{P1*pR_4WU! zb#y@N84d5za2QPk!!8ZL>i?psDDapzxSjyb`NqbA$G*Y!Kd9aW)sr9^gh6a{j7uC{ z9X>uTGjNIHGYee~W(GP9RR`+JgX$Yl-2=iPKFIGNG0<8%&>BWiU4#vT`l!tr8UNd} zvf%RopgOlTGxI-49K?o&D>54-hKylyATbadgwfd`J_y6)kl7$H5XL125(l+SKy*WD zDtKN4G>!rCFEWPJ%cRmEGqCAF7Dr~Is|Cq{Fi0Hak4QH+a9ax$=AgZ!AR2~2=R(AJ zc@4Y#NKQW@IUwM_zoR2n+W??-epB1qN5glt&Kpew!#EAV%2-fc2kZZX=88dmVQ~K+ zR6oM%Oc0w8CPgjCEK=2j^nft2`q0&(^Py`Ta>ByEcjSWV`V8p(N1%NJu<(J^JGkha z&`|Jt0MJpDPnFbKoyV`Mh67)Tr!CRQD~{<@SD@Ei-Su!f0))&+p} zbBvA!_=C^Gq~`g^Q%2|eN9(;|TqTJoVeJs$pH>~~#jS+*|1MvEvl=>E= z79C@$b3yh|1;fmS(dc&L;v=cAN=*C@>Py1v6>@0MxO854I5;dpd)B)1^1y4>K;tT) zaRB6c8C?HD*9?NhK^P79vHQ3lNF&GUR4*+3UI{-8u0IH8cbvFou*vJ^0 z7_vMeHcUT^MpqA-YXPlO0Np78iw98OKP?~tycQLdWQ2PXK9!NbtGoqux{mIhU*#GDlWCm=E9~2JM!k{)3$SlyA%Ahp? zp!ybsLG?O}2C+dHoevWOiNi3u7>JLK(basgr5(D-9L3JJ|>_8aQ4giVu#X!^QE{w@|g9x|L{5ig_fc1+{Bn7~~d^`$6X%7eq#a+c=>10H`eis_#H! z|Dd{rQVd!f2r~;*r-Azapm0U0Z*lbhVQR3c2Z@0&Obv(zVPr9EY?vBkIgl6(gT&D> zsBQ(d13>cv$aOc!KgfJsY;5X~#gN&cum|%&dn;mN!DA?(H~^gi1#%a7E(I;TKyC-E zxddTY8vry{Gt%=mtPZDyZYVAut^Y^s|Isus%+mm9OcitvAE>MamBFBL7F6DX#=}A5 z)}ZW%#HaQL_~s0{?Gw?XpcV$gbZ(D*c{?+WTugT~iE;R>p=Kr{$rV`CEo zsl|nn)q~W)_%IqK2IGTh7)F)@iGlba3}S;Yhz-K9b^s`Sfa~b^c8qtp!t5# zx(QI6g3c!fg)gWs2i57Ix*g^Qm>Xd2f#fel0au2932e}Q@rw8%DV-wK1eNg=Y8p{XCf$DOQI#Sm3fzFu&)lDG%AiW^F zJS;5WW6_{6A{K+{{bWBs@cuf`*gq&tVf7d`8d)C32GPhET^~peSqv8+Bo4wLwYX@I z90-HtVHlYY8p8ms4+Mn|D4ihFAT~ONsey^3^FiVuF;LwPipT7bkpG}G1qxqK{RL`k zz}8HF+yTQNw}IH8`W{sOgVH0Y?FQPf0TKtrJIIV62Zs?`e}TsHD5?8FdYg)hMr`W8Y2hQlW;Y# zIv<^e=_i5))dL_mfaV@xW`o2)bukQs(j;h&6G$GU4yGQ&2F+80#6k54XkG)fHw@%2 zQZQ(K091#7&cp$k1)3WmRzIlT0;vU=0jirobLXHs34~$w7Kn|ELE-HudugUVgdxhtTy1E@^L zrUtARqzBd(0I`X{puT&OukU{l2H68zg9xe%KzqGF{X9@#5w=$WbOs-&jtBMoKx4+B zbzh+R10;@IACSWawQoS}4p5y0YIlJ8^2p|Z#uPwq1lbKblODA093&4qn=ZuJ8GNQ5 zC>%j;08sq}3Re&f!pLkGA0!6C*!UnZ5QfQv*w`>Od0b-1;vhCMhM5f#gRx;WNDLGQ zpt>7`LGe!vMpp~tgVGsjj07|X1qw${7=q@PK=nIlya8k%41?SNI!6IC#t%vxAhj^; zZ)XQiGawo!2BJanG!o0W(fWVnmg^%iy^s2t^z;rY8)5xbP+19Ds|G7~LFF>I4hPlW zAPlX$L3JXiJ_MDspt=s!=LXmRNNT`*sCpDOObizt9SvRs20BL%IZ|y^kEpp2i1$9u@O)^1y=8a>n!M+ zbr>5&w9Y_s`528UB8yi^+qy~gRVjv7+W5dXDFg7k4n|@H63|4=WQuo93fM^f~ zr7=)n9dvdNC|!ZV7SxUc?dt=DAIwc4H-Ok63<_^hy9(P{4$#?6pgWmB>jpq(fiNh& zjKs2GwEic(JRFJXWYo_iH=TgSs6k~U41>yK*g7@P_&>bytfK+&K&1Qb4?`XAKS1o;ux1^}%I z0M$XDx(J3rd{Em7RBwU$t)My!gh6!{HX2zB#)hed@j)~Q!^B}UNDLh#%YoP+3{nH5 zL2M8P@j)2I#zrHHp|e4J(3}P+t$^YlMx(Pqd|Vi$2h@fDg)3;R1eB&g<1L{5lA!Pd zg(b+1APlk(gh6bO9B98kXxs%kT_BJ5fZY}s2OrY{?Q0#0W!z}}KXS|Uk(k~`{Y-j# z2bGP;i=r$A*#RL2P^&rXQ{*BLjSQ5Gc+;^*e|L zVGtV`V-thPgXBPGOM&K(Kx6)(IeJh!1kLk++E6e%K{Uu-7!69BpmiM}wICes;sS0j zg3=3U{s$xm!l1S*Xzm}x2F-7c#Ij+u{wKXW9Es^<)XyU`oq*^5?d`#JIH;TiVbGc> z&|WH7{|i*lW2^r`{WjQGc&wM#e^B`guKPiCIx+^;?=U`y4Z<)!h(_l_&)^4{4Vv!< z)yE)r(Hev1F+lc#`~{lN0IzS0ivynr0B!?-+zQ2@@BpcU)kz>4gpunh5Fdn*#gN$` zIS>YkfiN-~nGX{O(I5epKz(#j8w*tbgW6f3_yx5iLG?Sx9uNk(2ZTXv5C-i@0qFy& z1!2$}45$qT8t(_`1C3k3=7m6J!}hd*=BYqweWaChqxJvDEZ0X`Iv@2f`RN=~HiF7h zWDM$y_2lRO2ekn}^*X40M(+cI*64x6LHa=bEYP?(s7?f{gVpJ{XlOl(wY>oCUxVBL zD!)MH(;9=;K!ECekY7Q50M+-PIv#{k{DbW7=;;6Tsj2_b`}v@H3K_%dFA$9j!_*_o zgTz357>&+`@j>z+4C8}nWDJu7iJ`O6`RHoU`6%ks(*A?`>ae;Vokp(jk>x<*ps)t% z1WQIETHrVnj?Uv2ap-aV+9~KXe$Y#nLoZPdR*FRg&eUQl_7jzM)hs5}Oh#UM7Q&ju=Q zK^Rs?f@o0P57G+7?};@!^A)|2!q5y7{mr) z5F3P%*&seL2FbxNvN$N*K=nCt{SIS;#S;?1WAiXJn2wJJpM?Obr$O^Op#DE-&L32_ zgD}V*WII575C+xlpnVpwv;gYg!_p^6JxC3x{||~sm>Q5BAU0^60MwowY30*s{Xg`| zA?pe^!gN?4;=#lwL3s%H^_WiV9?q=P#p&H3%Krw*6pCS2a0=P;z%?|J*cjO)jgp4 z2gF9kATbbziGkQ44C8}nbUsK7gwe%ed~_OFEl3U-gXBOMBnF~E7@dvI2dM#JWN{cD zCI+KH?H^E_gTes=CnSLPKZ54!L2X7bj*kb=6M^CtG#(G4LF4tH@JFu8VfKOPw6y=A zdL1-o080a)aRbnpKWIz<qtv)qy8OQ z=`Gpc|3AL^A5@Nl=1^hfG>8wvu(}>p=EKTZ(E4joIS!f^AXInalLytSAag)%3sC(G zvX536WEaRD5KT;-kL+%c9*{dhbq}bX0%2TibU7Fwq#lGpd~^&F2VrdDFfouk2!r?_ z8iYY?7)IyA#9=f@9)v-B5DmgGHaZQHLly_M3t{y?G7Vyb+Et*ld_nC-5F3MLX*6{p{U9?z=kCMiZ(-(BlLoDG1l9eZu?(#4 z0=W$z2Dux{8URo|1j4X72_FrT17URaATbaIiGwhVjZDMX_~b!qU>K$j#D}p#Gzg=M z!T2CK5C-u<7?};?gZ4mx>UvP!4x>SAP(2UggXV8Q;R{M9AU;SO6y~5f28|_rL30WqcY)@I zNp%;o>OpP>)kC2A38nr=cNZ>xbToLMB4`X8)b9kKPXni~Sw_el2ug3<)&%zn^W{Gjvz z3LlUdNF9gSATiL| zL6AJG-w!%R2&4~$LF|!M#*NnhBeP5&Y3Y2_zvQQLP#Fz6V-HkDl8Qm=13=|FYz_c4 zmH?{1!Sz3=e+;TSVKj)1jIoG=%6d?}L8?2*Q4i`Hg4~L={s*}YgmJkSDhC?F2JI6> zum3@H5vUFWVGtXHL2P6U5`$roIEW3SL2M9)@nJNw7&;roN5&vMAPf?N(I7T528p9% zm^?@v#D>uzHaZ5)wS)W*s@FmFI~XSRZ^@KTICf*9T$HdOy&aKcM}5pgJ35 zF1kISF@BI7C{2Ol7c^D?5(8mu>cRRmGQjNv(0z*_J)k`Wu(S<2Ct#$N6QlJ%`Q_qB zODm)P9l2=*G@lPDD?nu?DHzm82bKAtIe(ZwP@M>_Q=xSvF@0;0dQe>q(hD<()-m+b}l%9?;Mhz23r$PEb7$y#4!!S$?M1wF$97Mw~h>wgx z;>dg$8zc_GAU=!+v0)e_2ErgdIt>y7VVF3K4XV#UVF1IRH36Xc8_?W7s67W7^9RX+ z(g{co)aM7qEl3||t{&Mun3*6kkR0;-52)`C8V`V}L8jsCjEw)FHU+4z2iXBi*RcI5 zAoq;4G7gldDVh5R=^dT_AG!6yNXsuH*}tH&60{Z@RBn=jL393~xm?g$z#x5~F? z4ju!5^`Ft}Q6xTS3?5V`fa+sdxeYRhmKfwuki8&`QvV~l3q>5}4-k!{22}rp%m9sF zgT??r^%lG?!g1a|ObtvOG9M%c!ys`O28n^#$TWzJ4a3wS%i$A4m&3(J7l)Y-8vlXS z@1Qy!G$#P6w?XGAf$Dfr{SOicVNm@KTK5l<1NGyP!whB~$R1GL4@yJGX#kY2K;kfU zAR43=M8h!1Owid?u(g69cfjrl0L@p8wER6<|Bu$)BQ4F3`j`AP4=OJ~bMLS*Q{?g& z7aMeD9;i$Qji-aufaYF7Wj#v$52`nDU{E;^8Yc#g?}GHx1B2QcpgIfgMx;6&E(UWi zvK&kdL__EQLFz&4;6Qa5tR6zImtcGt4O0iAVPd#wkQxvM$%8P6jf`PpAR2~|LQV@HeK0*BbujypX^>tJAJo1B=>_dGfbDMq-Bmf#%7)SUpZv0L zq@|Tn|Bj{=SQ<$1_Wlo=qXm_rgfOVB02=QFVbGbqpmTsg^8xVwGkX1r&X0-t4^j{6 z-x0El8uFm^4xn*q(3}I@jiCA*hGFi5(J*mj8c7Z`1_0{k!s>rm-2|dR7*rpDXb=Xm zkukCuhz-LaH6S)J4Pql>ba@aTgt4gsi6P4&vq5qo3=#uj7#l=`Fh~r9L2MXC=7ZWk zu=*dw2GzNscmj=!fa-f#-4CKc;gsa(_a8J~1RKi-nF%rvgh650o1gz5ww?rJ4h)0# zg2L)|kXn#FWDF7mwHrWgfaw9PGlZRQIa>c4{|AldlZr>j|3~WuSiLYxkDRmsswY8p zJFG0lM}yAj0hRZlv0kioDy;5=)tfLHBo1Bo57G~s2MBaVHss0#+A+>LC~gtwjfoNrUDGK=Lqg5E~Z;sR7BsXb>A6 zgXBOMCXUPoi6Qfm*&sO>MixhA!{pIvm>L)jme0ue4;t?W)$O3T2i5nWI04PIgX&?B z7+4OvKLAw!gUS$4{f<)qr=@|pQ{9Q+zb2-UjspLG?IB-3qHeVKlVv zgw?;GIuukdgUV}=7-%g5KD$Vj1FazkjZ1*cM{ys_Jun*0T_Cp*!Z5dk>LySf1gh&n zbw22hT2MHE>;>^bav%(7zl&d$QUFB!XPmi z4Pt{ZG9Si<(`jkobN)c}J*a&JiW`uhL3~hp0M*AZ466S@b48&13#zL@W`Hng%^nDY z*7$++ z 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�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