From 9b5392d3a13e00d880e895522c19ef1e453804b0 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sat, 29 Jun 2019 14:38:37 +0300 Subject: [PATCH 01/17] ProcessPedUpdate --- src/World.cpp | 1 + src/World.h | 3 +++ src/control/Replay.cpp | 43 +++++++++++++++++++++++++++++++++++--- src/control/Replay.h | 5 ++--- src/entities/PlayerPed.cpp | 5 +++++ src/entities/PlayerPed.h | 2 ++ src/math/Matrix.h | 20 ++++++++++++++++++ 7 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 src/entities/PlayerPed.cpp diff --git a/src/World.cpp b/src/World.cpp index 0a83c595..05791525 100644 --- a/src/World.cpp +++ b/src/World.cpp @@ -8,6 +8,7 @@ #include "World.h" WRAPPER void CWorld::Add(CEntity *entity) { EAXJMP(0x4AE930); } +WRAPPER void CWorld::Remove(CEntity *entity) { EAXJMP(0x4AE9D0); } CPtrList *CWorld::ms_bigBuildingsList = (CPtrList*)0x6FAB60; CPtrList &CWorld::ms_listMovingEntityPtrs = *(CPtrList*)0x8F433C; diff --git a/src/World.h b/src/World.h index e3a6a8f2..d88448fb 100644 --- a/src/World.h +++ b/src/World.h @@ -67,6 +67,7 @@ public: static bool &bForceProcessControl; static bool &bProcessCutsceneOnly; + static void Remove(CEntity *entity); static void Add(CEntity *entity); static CSector *GetSector(int x, int y) { return &ms_aSectors[y][x]; } @@ -103,6 +104,8 @@ public: static int GetSectorIndexY(float f) { return (int)GetSectorY(f); } static float GetWorldX(int x) { return x*SECTOR_SIZE_X + WORLD_MIN_X; } static float GetWorldY(int y) { return y*SECTOR_SIZE_Y + WORLD_MIN_Y; } + + static void Remove(void); }; class CPlayerPed; diff --git a/src/control/Replay.cpp b/src/control/Replay.cpp index 2e0f07ee..a2a47295 100644 --- a/src/control/Replay.cpp +++ b/src/control/Replay.cpp @@ -165,8 +165,6 @@ void CReplay::Init(void) bDoLoadSceneWhenDone = false; } -WRAPPER void CReplay::EmptyReplayBuffer(void) { EAXJMP(0x595BD0); } - void CReplay::DisableReplays(void) { bReplayEnabled = false; @@ -406,7 +404,46 @@ void CReplay::StoreDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState } } #endif +#if 0 WRAPPER void CReplay::ProcessPedUpdate(CPed *ped, float interpolation, CAddressInReplayBuffer *buffer) { EAXJMP(0x594050); } +#else +void CReplay::ProcessPedUpdate(CPed *ped, float interpolation, CAddressInReplayBuffer *buffer) +{ + tPedUpdatePacket *pp = (tPedUpdatePacket*)&buffer->m_pBase[buffer->m_nOffset]; + if (ped){ + ped->m_fRotationCur = pp->heading * M_PI / 128.0f; + ped->m_fRotationDest = pp->heading * M_PI / 128.0f; + CMatrix ped_matrix; + float coeff = 1.0f - interpolation; + pp->matrix.DecompressIntoFullMatrix(ped_matrix); + ped->GetMatrix() = ped->GetMatrix() * CMatrix(coeff); + *ped->GetMatrix().GetPosition() *= coeff; + ped->GetMatrix() += CMatrix(coeff) * ped_matrix; + if (pp->vehicle_index) { + ped->m_pMyVehicle = CPools::GetVehiclePool()->GetSlot(pp->vehicle_index - 1); + ped->bInVehicle = pp->vehicle_index; + } + else { + ped->m_pMyVehicle = nil; + ped->bInVehicle = false; + } + if (pp->assoc_group_id != ped->m_animGroup) { + ped->m_animGroup = (AssocGroupId)pp->assoc_group_id; + if (ped->IsPlayer()) + ((CPlayerPed*)ped)->ReApplyMoveAnims(); + } + RetrievePedAnimation(ped, &pp->anim_state); + ped->RemoveWeaponModel(-1); + if (pp->weapon_model != -1) + ped->AddWeaponModel(pp->weapon_model); + CWorld::Remove(ped); + CWorld::Add(ped); + }else{ + debug("Replay:Ped wasn't there\n"); + } + buffer->m_nOffset += sizeof(tPedUpdatePacket); +} +#endif WRAPPER void CReplay::RetrievePedAnimation(CPed *ped, CStoredAnimationState *state) { EAXJMP(0x5942A0); } WRAPPER void CReplay::RetrieveDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState *state) { EAXJMP(0x5944B0); } WRAPPER void CReplay::PlaybackThisFrame(void) { EAXJMP(0x5946B0); } @@ -453,7 +490,7 @@ void CReplay::StoreCarUpdate(CVehicle *vehicle, int id) WRAPPER void CReplay::ProcessCarUpdate(CVehicle *vehicle, float interpolation, CAddressInReplayBuffer *buffer) { EAXJMP(0x594D10); } WRAPPER bool CReplay::PlayBackThisFrameInterpolation(CAddressInReplayBuffer *buffer, float interpolation, uint32 *pTimer) { EAXJMP(0x595240); } WRAPPER void CReplay::FinishPlayback(void) { EAXJMP(0x595B20); } -WRAPPER void CReplay::Shutdown(void) { EAXJMP(0x595BD0); } +WRAPPER void CReplay::EmptyReplayBuffer(void) { EAXJMP(0x595BD0); } WRAPPER void CReplay::ProcessReplayCamera(void) { EAXJMP(0x595C40); } #if 0 diff --git a/src/control/Replay.h b/src/control/Replay.h index c4f3b1a2..0a65c638 100644 --- a/src/control/Replay.h +++ b/src/control/Replay.h @@ -155,7 +155,7 @@ class CReplay int8 vehicle_index; CStoredAnimationState anim_state; CCompressedMatrixNotAligned matrix; - uint8 assoc_group_id; + int8 assoc_group_id; uint8 weapon_model; }; static_assert(sizeof(tPedUpdatePacket) == 40, "tPedUpdatePacket: error"); @@ -244,12 +244,11 @@ private: public: static void Init(void); - static void EmptyReplayBuffer(void); static void DisableReplays(void); static void EnableReplays(void); static void Update(void); static void FinishPlayback(void); - static void Shutdown(void); + static void EmptyReplayBuffer(void); static void Display(void); static void TriggerPlayback(uint8 cam_mode, float cam_x, float cam_y, float cam_z, bool load_scene); static void StreamAllNecessaryCarsAndPeds(void); diff --git a/src/entities/PlayerPed.cpp b/src/entities/PlayerPed.cpp new file mode 100644 index 00000000..2136d3ad --- /dev/null +++ b/src/entities/PlayerPed.cpp @@ -0,0 +1,5 @@ +#include "common.h" +#include "patcher.h" +#include "PlayerPed.h" + +WRAPPER void CPlayerPed::ReApplyMoveAnims(void) { EAXJMP(0x4F07C0); } \ No newline at end of file diff --git a/src/entities/PlayerPed.h b/src/entities/PlayerPed.h index 23e7dae5..d268f61b 100644 --- a/src/entities/PlayerPed.h +++ b/src/entities/PlayerPed.h @@ -38,6 +38,8 @@ public: int32 field_1488[6]; float field_1512; float m_fFPSMoveHeading; + + void ReApplyMoveAnims(void); }; static_assert(sizeof(CPlayerPed) == 0x5F0, "CPlayerPed: error"); diff --git a/src/math/Matrix.h b/src/math/Matrix.h index e2e5394e..bbdc6a70 100644 --- a/src/math/Matrix.h +++ b/src/math/Matrix.h @@ -20,6 +20,11 @@ public: m_attachment = nil; Attach(matrix, owner); } + CMatrix(float scale){ + m_attachment = nil; + m_hasRwMatrix = false; + SetScale(scale); + } ~CMatrix(void){ if(m_hasRwMatrix && m_attachment) RwMatrixDestroy(m_attachment); @@ -57,6 +62,21 @@ public: if(m_attachment) UpdateRW(); } + CMatrix& operator+=(CMatrix const &rhs){ + m_matrix.right.x += rhs.m_matrix.right.x; + m_matrix.up.x += rhs.m_matrix.up.x; + m_matrix.at.x += rhs.m_matrix.at.x; + m_matrix.right.y += rhs.m_matrix.right.y; + m_matrix.up.y += rhs.m_matrix.up.y; + m_matrix.at.y += rhs.m_matrix.at.y; + m_matrix.right.z += rhs.m_matrix.right.z; + m_matrix.up.z += rhs.m_matrix.up.z; + m_matrix.at.z += rhs.m_matrix.at.z; + m_matrix.pos.x += rhs.m_matrix.pos.x; + m_matrix.pos.y += rhs.m_matrix.pos.y; + m_matrix.pos.y += rhs.m_matrix.pos.z; + return *this; + } CVector *GetPosition(void){ return (CVector*)&m_matrix.pos; } CVector *GetRight(void) { return (CVector*)&m_matrix.right; } From d4b566ecb28084ccb37f5bee9e023b968e12c1c9 Mon Sep 17 00:00:00 2001 From: Filip Gawin Date: Wed, 12 Jun 2019 19:56:45 +0200 Subject: [PATCH 02/17] AudioManager::GetPhrase --- src/audio/AudioManager.cpp | 15 +- src/audio/AudioManager.h | 220 ++- src/audio/AudioSamples.h | 3040 ++++++++++++++++++++++++++++++++++++ 3 files changed, 3270 insertions(+), 5 deletions(-) create mode 100644 src/audio/AudioSamples.h diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp index 757ffa79..5a290d28 100644 --- a/src/audio/AudioManager.cpp +++ b/src/audio/AudioManager.cpp @@ -10,8 +10,21 @@ cAudioManager::PlayerJustLeftCar(void) // UNUSED: This is a perfectly empty function. } +void +cAudioManager::GetPhrase(uint32 *phrase, uint32 *prevPhrase, + eAudioSamples sample, uint32 maxOffset) +{ + *phrase = (uint32)sample + + (uint32)m_anRandomTable[m_sQueueSample.m_nEntityIndex & 3] % + maxOffset; + if(*phrase == *prevPhrase && ++*phrase >= (uint32)sample + maxOffset) + *phrase = (uint32)sample; + *prevPhrase = *phrase; +} + WRAPPER void cAudioManager::Service() { EAXJMP(0x57A2A0); } STARTPATCHES InjectHook(0x56AD20, &cAudioManager::PlayerJustLeftCar, PATCH_JUMP); -ENDPATCHES \ No newline at end of file + InjectHook(0x570DB0, &cAudioManager::GetPhrase, PATCH_JUMP); +ENDPATCHES diff --git a/src/audio/AudioManager.h b/src/audio/AudioManager.h index 9e25b0a3..d6d831f1 100644 --- a/src/audio/AudioManager.h +++ b/src/audio/AudioManager.h @@ -1,9 +1,221 @@ #pragma once -class cAudioManager { +#include "AudioSamples.h" +#include "common.h" + +class tActiveSample +{ public: - void PlayerJustLeftCar(void); - void Service(); + int m_nEntityIndex; + int field_4; + int m_nSampleIndex; + char m_bBankIndex; + char m_bIsDistant; + char field_14; + char field_15; + int field_16; + int m_nFrequency; + uint8 m_bVolume; + char field_25; + char field_26; + char field_27; + float m_fDistance; + int m_nLoopCount; + int m_nLoopStart; + int m_nLoopEnd; + uint8 m_bEmittingVolume; + char field_45; + char field_46; + char field_47; + float field_48; + float m_fSoundIntensity; + char field_56; + char field_57; + char field_58; + char field_59; + CVector m_vecPos; + char m_bReverbFlag; + char m_bLoopsRemaining; + char m_bRequireReflection; + uint8 m_bOffset; + int field_76; + char m_bIsProcessed; + char m_bLoopEnded; + char field_82; + char field_83; + int field_84; + char field_88; + char field_89; + char field_90; + char field_91; }; -extern cAudioManager &AudioManager; \ No newline at end of file +static_assert(sizeof(tActiveSample) == 0x5c, "tActiveSample: error"); + +enum eAudioType : int32 { + AUDIOTYPE_PHYSICAL = 0, + AUDIOTYPE_EXPLOSION = 1, + AUDIOTYPE_FIRE = 2, + AUDIOTYPE_WEATHER = 3, + AUDIOTYPE_CRANE = 4, + AUDIOTYPE_ONE_SHOT = 5, + AUDIOTYPE_BRIDGE = 6, + AUDIOTYPE_COLLISION = 7, + AUDIOTYPE_FRONTEND = 8, + AUDIOTYPE_PROJECTILE = 9, + AUDIOTYPE_GARAGE = 10, + AUDIOTYPE_HYDRANT = 11, + AUDIOTYPE_WATER_CANNON = 12, + AUDIOTYPE_D = 13, + TOTAL_AUDIO_TYPES = 14, +}; + +class tAudioEntity +{ +public: + eAudioType m_nType; + void *m_pEntity; + char m_bIsUsed; + char m_bStatus; + __int16 m_awAudioEvent[4]; + char gap_18[2]; + float m_afVolume[4]; + char field_24; + char field_25[3]; +}; + +static_assert(sizeof(tAudioEntity) == 0x28, "tAudioEntity: error"); + +class tPedComment +{ +public: + int m_nSampleIndex; + int field_4; + CVector m_vecPos; + float m_fDistance; + char m_bVolume; + char field_25; + char gap_26[2]; +}; + +static_assert(sizeof(tPedComment) == 0x1c, "tPedComment: error"); + +class cPedComments { +public: + tPedComment m_asPedComments[40]; + char field_1120[40]; + char field_1160[2]; + char field_1162; + char gap_1163[1]; +}; + +static_assert(sizeof(cPedComments) == 0x48c, "cPedComments: error"); + +class CEntity; + +class cAudioCollision { +public: + CEntity *m_pEntity1; + CEntity *m_pEntity2; + char m_bSurface1; + char m_bSurface2; + char field_10; + char field_11; + float m_fIntensity1; + float m_fIntensity2; + CVector m_vecPosition; + float m_fDistance; + int m_nBaseVolume; +}; + +static_assert(sizeof(cAudioCollision) == 0x28, "cAudioCollision: error"); + +class cAudioCollisionManager { +public: + cAudioCollision m_asCollisions1[10]; + cAudioCollision m_asCollisions2[10]; + char m_bIndicesTable[10]; + char m_bCollisionsInQueue; + char gap_811; + cAudioCollision m_sQueue; +}; + +static_assert(sizeof(cAudioCollisionManager) == 0x354, + "cAudioCollisionManager: error"); + +struct cMissionAudio { + CVector m_vecPos; + char field_12; + char gap_13[3]; + int m_nSampleIndex; + char m_bLoadingStatus; + char m_bPlayStatus; + char field_22; + char field_23; + int field_24; + char m_bIsPlayed; + char field_29; + char field_30; + char field_31; +}; + +static_assert(sizeof(cMissionAudio) == 0x20, "cMissionAudio: error"); + +class cAudioManager +{ +public: + bool m_bIsInitialised; + char field_1; + char field_2; + char m_bActiveSamples; + char field_4; + char m_bDynamicAcousticModelingStatus; + char field_6; + char field_7; + float field_8; + bool m_bTimerJustReset; + char field_13; + char field_14; + char field_15; + int m_nTimer; + tActiveSample m_sQueueSample; + char m_bActiveSampleQueue; + char gap_109[3]; + tActiveSample m_asSamples[54]; + char m_abSampleQueueIndexTable[54]; + char m_bSampleRequestQueuesStatus[2]; + tActiveSample m_asActiveSamples[27]; + tAudioEntity m_asAudioEntities[200]; + int m_anAudioEntityIndices[200]; + int m_nAudioEntitiesTotal; + CVector m_avecReflectionsPos[5]; + float m_afReflectionsDistances[5]; + int m_anScriptObjectEntityIndices[40]; + int m_nScriptObjectEntityTotal; + cPedComments m_sPedComments; + int m_nFireAudioEntity; + int m_nWaterCannonEntity; + int m_nPoliceChannelEntity; + char gap45B8[444]; + int m_nFrontEndEntity; + int m_nCollisionEntity; + cAudioCollisionManager m_sCollisionManager; + int m_nProjectileEntity; + int m_nBridgeEntity; + cMissionAudio m_sMissionAudio; + int m_anRandomTable[5]; + char field_19192; + char m_bUserPause; + char m_bPreviousUserPause; + char field_19195; + int m_nTimeOfRecentCrime; + + void PlayerJustLeftCar(void); + void Service(); + void GetPhrase(uint32 *a2, uint32 *a3, eAudioSamples sample, + uint32 maxOffset); +}; + +static_assert(sizeof(cAudioManager) == 0x4B14, "cAudioManager: error"); + +extern cAudioManager &AudioManager; diff --git a/src/audio/AudioSamples.h b/src/audio/AudioSamples.h new file mode 100644 index 00000000..49d21ff6 --- /dev/null +++ b/src/audio/AudioSamples.h @@ -0,0 +1,3040 @@ +#pragma once + +#include "common.h" + +enum eAudioSamples : int32 { + AUDIO_SAMPLE_VEHICLE_HORN_0 = 0, + AUDIO_SAMPLE_VEHICLE_HORN_1 = 1, + AUDIO_SAMPLE_VEHICLE_HORN_2 = 2, + AUDIO_SAMPLE_VEHICLE_HORN_3 = 3, + AUDIO_SAMPLE_VEHICLE_HORN_4 = 4, + AUDIO_SAMPLE_VEHICLE_HORN_5 = 5, + AUDIO_SAMPLE_VEHICLE_HORN_6 = 6, + AUDIO_SAMPLE_VEHICLE_HORN_7 = 7, + AUDIO_SAMPLE_VEHICLE_OPEN_DOOR_TYPE_1 = 8, + AUDIO_SAMPLE_VEHICLE_CLOSE_DOOR_TYPE_1 = 9, + AUDIO_SAMPLE_VEHICLE_OPEN_DOOR_TYPE_2 = 10, + AUDIO_SAMPLE_VEHICLE_CLOSE_DOOR_TYPE_2 = 11, + AUDIO_SAMPLE_VEHICLE_OPEN_DOOR_TYPE_3 = 12, + AUDIO_SAMPLE_VEHICLE_CLOSE_DOOR_TYPE_3 = 13, + AUDIO_SAMPLE_MODEL_VEHICLE_ACCELERATING = 14, + AUDIO_SAMPLE_REVERSE_GEAR_ACCELERATING = 15, + AUDIO_SAMPLE_REVERSE_GEAR_CONSTANT = 16, + AUDIO_SAMPLE_VEHICLE_ENGINE_START = 17, + AUDIO_SAMPLE_VEHICLE_ROAD_NOISE = 18, + AUDIO_SAMPLE_VEHICLE_SKIDDING = 19, + AUDIO_SAMPLE_COLLISION_LOOPING_SOFT = 20, + AUDIO_SAMPLE_VEHICLE_SIREN = 21, + AUDIO_SAMPLE_VEHICLE_SIREN_HORN = 22, + AUDIO_SAMPLE_VEHICLE_AMBULANCE_SIREN = 23, + AUDIO_SAMPLE_VEHICLE_REVERSE_WARNING = 24, + AUDIO_SAMPLE_VEHICLE_ICE_CREAM_JINGLE = 25, + AUDIO_SAMPLE_VEHICLE_ALARM = 26, + AUDIO_SAMPLE_VEHICLE_AIR_BRAKES = 27, + AUDIO_SAMPLE_28_EMPTY = 28, + AUDIO_SAMPLE_COLLISION_RUBBER = 29, + AUDIO_SAMPLE_TRAIN_FAR = 30, + AUDIO_SAMPLE_TRAIN_CLOSE = 31, + AUDIO_SAMPLE_PED_FALL_PAVEMENT_1 = 32, + AUDIO_SAMPLE_PED_FALL_PAVEMENT_2 = 33, + AUDIO_SAMPLE_PED_FALL_PAVEMENT_3 = 34, + AUDIO_SAMPLE_PED_FALL_PAVEMENT_4 = 35, + AUDIO_SAMPLE_PED_FALL_PAVEMENT_5 = 36, + AUDIO_SAMPLE_PED_FALL_GRASS_1 = 37, + AUDIO_SAMPLE_PED_FALL_GRASS_2 = 38, + AUDIO_SAMPLE_PED_FALL_GRASS_3 = 39, + AUDIO_SAMPLE_PED_FALL_GRASS_4 = 40, + AUDIO_SAMPLE_PED_FALL_GRASS_5 = 41, + AUDIO_SAMPLE_PED_FALL_DIRT_1 = 42, + AUDIO_SAMPLE_PED_FALL_DIRT_2 = 43, + AUDIO_SAMPLE_PED_FALL_DIRT_3 = 44, + AUDIO_SAMPLE_PED_FALL_DIRT_4 = 45, + AUDIO_SAMPLE_PED_FALL_DIRT_5 = 46, + AUDIO_SAMPLE_PED_FALL_WOOD_1 = 47, + AUDIO_SAMPLE_PED_FALL_WOOD_2 = 48, + AUDIO_SAMPLE_PED_FALL_WOOD_3 = 49, + AUDIO_SAMPLE_PED_FALL_WOOD_4 = 50, + AUDIO_SAMPLE_PED_FALL_WOOD_5 = 51, + AUDIO_SAMPLE_PED_FALL_METAL_1 = 52, + AUDIO_SAMPLE_PED_FALL_METAL_2 = 53, + AUDIO_SAMPLE_PED_FALL_METAL_3 = 54, + AUDIO_SAMPLE_PED_FALL_METAL_4 = 55, + AUDIO_SAMPLE_PED_FALL_METAL_5 = 56, + AUDIO_SAMPLE_PED_FALL_IN_WATER_1 = 57, + AUDIO_SAMPLE_PED_FALL_IN_WATER_2 = 58, + AUDIO_SAMPLE_PED_FALL_IN_WATER_3 = 59, + AUDIO_SAMPLE_PED_FALL_IN_WATER_4 = 60, + AUDIO_SAMPLE_PED_FALL_SAND_1 = 61, + AUDIO_SAMPLE_PED_FALL_SAND_2 = 62, + AUDIO_SAMPLE_PED_FALL_SAND_3 = 63, + AUDIO_SAMPLE_64 = 64, + AUDIO_SAMPLE_WEAPON_GRENADE_EXPLOSION = 65, + AUDIO_SAMPLE_WEAPON_MOLOTOV_EXPLOSION = 66, + AUDIO_SAMPLE_WEAPON_PISTOL_SHOT = 67, + AUDIO_SAMPLE_68 = 68, + AUDIO_SAMPLE_WEAPON_M16_SHOT = 69, + AUDIO_SAMPLE_70 = 70, + AUDIO_SAMPLE_WEAPON_CHAINGUN_SHOT = 71, + AUDIO_SAMPLE_72 = 72, + AUDIO_SAMPLE_WEAPON_UZI_SHOT = 73, + AUDIO_SAMPLE_74 = 74, + AUDIO_SAMPLE_75 = 75, + AUDIO_SAMPLE_76 = 76, + AUDIO_SAMPLE_WEAPON_SNIPER_SHOT = 77, + AUDIO_SAMPLE_78 = 78, + AUDIO_SAMPLE_WEAPON_ROCKET_SHOT = 79, + AUDIO_SAMPLE_80 = 80, + AUDIO_SAMPLE_WEAPON_ROCKET_PROCESS = 81, + AUDIO_SAMPLE_WEAPON_FLAMETHROWER_SHOT = 82, + AUDIO_SAMPLE_83 = 83, + AUDIO_SAMPLE_WEAPON_FLAMETHROWER_FIRE = 84, + AUDIO_SAMPLE_85 = 85, + AUDIO_SAMPLE_WEAPON_SHOTGUN_SHOT = 86, + AUDIO_SAMPLE_87 = 87, + AUDIO_SAMPLE_WEAPON_PISTOL_RELOAD = 88, + AUDIO_SAMPLE_WEAPON_CHAINGUN_RELOAD = 89, + AUDIO_SAMPLE_WEAPON_UZI_RELOAD = 90, + AUDIO_SAMPLE_WEAPON_ROCKET_RELOAD = 91, + AUDIO_SAMPLE_WEAPON_SNIPER_RELOAD = 92, + AUDIO_SAMPLE_COLLISION_PAVEMENT = 93, + AUDIO_SAMPLE_94 = 94, + AUDIO_SAMPLE_95 = 95, + AUDIO_SAMPLE_96 = 96, + AUDIO_SAMPLE_97 = 97, + AUDIO_SAMPLE_COLLISION_MUFFLED = 98, + AUDIO_SAMPLE_COLLISION_DIRT = 99, + AUDIO_SAMPLE_COLLISION_MUD = 100, + AUDIO_SAMPLE_COLLISION_METAL_DOOR = 101, + AUDIO_SAMPLE_CAR_DOOR_MOVEMENT_1 = 102, + AUDIO_SAMPLE_CAR_DOOR_MOVEMENT_2 = 103, + AUDIO_SAMPLE_CAR_DOOR_MOVEMENT_3 = 104, + AUDIO_SAMPLE_CAR_DOOR_MOVEMENT_4 = 105, + AUDIO_SAMPLE_CAR_DOOR_MOVEMENT_5 = 106, + AUDIO_SAMPLE_CAR_DOOR_MOVEMENT_6 = 107, + AUDIO_SAMPLE_COLLISION_METAL_11 = 108, + AUDIO_SAMPLE_COLLISION_HARD = 109, + AUDIO_SAMPLE_COLLISION_METAL_13 = 110, + AUDIO_SAMPLE_COLLISION_METAL_14 = 111, + AUDIO_SAMPLE_COLLISION_FENCE = 112, + AUDIO_SAMPLE_113 = 113, + AUDIO_SAMPLE_114 = 114, + AUDIO_SAMPLE_115 = 115, + AUDIO_SAMPLE_COLLISION_FLESH = 116, + AUDIO_SAMPLE_117 = 117, + AUDIO_SAMPLE_118 = 118, + AUDIO_SAMPLE_119 = 119, + AUDIO_SAMPLE_120 = 120, + AUDIO_SAMPLE_COLLISION_SAND = 121, + AUDIO_SAMPLE_COLLISION_WOOD = 122, + AUDIO_SAMPLE_123 = 123, + AUDIO_SAMPLE_124 = 124, + AUDIO_SAMPLE_125 = 125, + AUDIO_SAMPLE_COLLISION_WOOD_BOX = 126, + AUDIO_SAMPLE_127 = 127, + AUDIO_SAMPLE_128 = 128, + AUDIO_SAMPLE_129 = 129, + AUDIO_SAMPLE_COLLISION_WOOD_PLANK = 130, + AUDIO_SAMPLE_COLLISION_HEDGE = 131, + AUDIO_SAMPLE_PED_FALL_HEDGE_2 = 132, + AUDIO_SAMPLE_PED_FALL_HEDGE_3 = 133, + AUDIO_SAMPLE_PED_FALL_HEDGE_4 = 134, + AUDIO_SAMPLE_PED_FALL_HEDGE_5 = 135, + AUDIO_SAMPLE_COLLISION_METAL_27 = 136, + AUDIO_SAMPLE_COLLISION_METAL_28 = 137, + AUDIO_SAMPLE_138 = 138, + AUDIO_SAMPLE_139 = 139, + AUDIO_SAMPLE_COLLISION_METAL = 140, + AUDIO_SAMPLE_COLLISION_CRANE = 141, + AUDIO_SAMPLE_142 = 142, + AUDIO_SAMPLE_143 = 143, + AUDIO_SAMPLE_144 = 144, + AUDIO_SAMPLE_COLLISION_LOOSE = 145, + AUDIO_SAMPLE_146 = 146, + AUDIO_SAMPLE_COLLISION_GATE = 147, + AUDIO_SAMPLE_COLLISION_LOOPING_GENERIC = 148, + AUDIO_SAMPLE_149 = 149, + AUDIO_SAMPLE_GLASS_WINDSHIELD_CRACK = 150, + AUDIO_SAMPLE_GLASS_GENERIC_BREAK = 151, + AUDIO_SAMPLE_GLASS_LIGHT_BREAK_1 = 152, + AUDIO_SAMPLE_GLASS_LIGHT_BREAK_2 = 153, + AUDIO_SAMPLE_GLASS_LIGHT_BREAK_3 = 154, + AUDIO_SAMPLE_GLASS_LIGHT_BREAK_4 = 155, + AUDIO_SAMPLE_FIRE_PED = 156, + AUDIO_SAMPLE_FIRE_ENTITY = 157, + AUDIO_SAMPLE_COLLISION_LOOPING_GRASS = 158, + AUDIO_SAMPLE_PICKUP_NEUTRAL_1 = 159, + AUDIO_SAMPLE_PICKUP_NEUTRAL_2 = 160, + AUDIO_SAMPLE_PICKUP_SUCCESS_1 = 161, + AUDIO_SAMPLE_PICKUP_SUCCESS_2 = 162, + AUDIO_SAMPLE_PICKUP_SUCCESS_3 = 163, + AUDIO_SAMPLE_PICKUP_SUCCESS_4 = 164, + AUDIO_SAMPLE_PICKUP_FAIL_1 = 165, + AUDIO_SAMPLE_PICKUP_FAIL_2 = 166, + AUDIO_SAMPLE_BULLET_GUNSHELL_HARD_DROP = 167, + AUDIO_SAMPLE_BULLET_GUNSHELL_SOFT_DROP = 168, + AUDIO_SAMPLE_BULLET_HIT_PED = 169, + AUDIO_SAMPLE_BULLET_HIT_VEHICLE_1 = 170, + AUDIO_SAMPLE_BULLET_HIT_VEHICLE_2 = 171, + AUDIO_SAMPLE_BULLET_HIT_VEHICLE_3 = 172, + AUDIO_SAMPLE_BULLET_HIT_VEHICLE_4 = 173, + AUDIO_SAMPLE_BULLET_HIT_VEHICLE_5 = 174, + AUDIO_SAMPLE_BULLET_HIT_VEHICLE_6 = 175, + AUDIO_SAMPLE_BULLET_HIT_GROUND_1 = 176, + AUDIO_SAMPLE_BULLET_HIT_GROUND_2 = 177, + AUDIO_SAMPLE_BULLET_HIT_GROUND_3 = 178, + AUDIO_SAMPLE_PED_HIT_BY_BAT = 179, + AUDIO_SAMPLE_180 = 180, + AUDIO_SAMPLE_PED_HIT_1 = 181, + AUDIO_SAMPLE_PED_HIT_2 = 182, + AUDIO_SAMPLE_PED_HIT_3 = 183, + AUDIO_SAMPLE_PED_HIT_4 = 184, + AUDIO_SAMPLE_GARAGE_DOOR_PROCESS = 185, + AUDIO_SAMPLE_CAR_BOMB_TICK = 186, + AUDIO_SAMPLE_CAR_BOMB_ACTIVATED = 187, + AUDIO_SAMPLE_POLICE_SCANNER_CRACKLE = 188, + AUDIO_SAMPLE_POLICE_SCANNER_WE_GOT_1 = 189, + AUDIO_SAMPLE_POLICE_SCANNER_WE_GOT_2 = 190, + AUDIO_SAMPLE_POLICE_SCANNER_WE_GOT_3 = 191, + AUDIO_SAMPLE_POLICE_SCANNER_TEN_1 = 192, + AUDIO_SAMPLE_POLICE_SCANNER_TEN_2 = 193, + AUDIO_SAMPLE_POLICE_SCANNER_CODE_CRIME_1 = 194, + AUDIO_SAMPLE_POLICE_SCANNER_CODE_CRIME_2 = 195, + AUDIO_SAMPLE_POLICE_SCANNER_CODE_CRIME_3 = 196, + AUDIO_SAMPLE_POLICE_SCANNER_CODE_CRIME_4 = 197, + AUDIO_SAMPLE_POLICE_SCANNER_CODE_CRIME_5 = 198, + AUDIO_SAMPLE_POLICE_SCANNER_CODE_CRIME_6 = 199, + AUDIO_SAMPLE_POLICE_SCANNER_CODE_CRIME_7 = 200, + AUDIO_SAMPLE_POLICE_SCANNER_CODE_CRIME_8 = 201, + AUDIO_SAMPLE_POLICE_SCANNER_CODE_CRIME_9 = 202, + AUDIO_SAMPLE_POLICE_SCANNER_CODE_CRIME_10 = 203, + AUDIO_SAMPLE_POLICE_SCANNER_CODE_CRIME_11 = 204, + AUDIO_SAMPLE_POLICE_SCANNER_CODE_CRIME_12 = 205, + AUDIO_SAMPLE_POLICE_SCANNER_IN = 206, + AUDIO_SAMPLE_POLICE_SCANNER_NORTH = 207, + AUDIO_SAMPLE_POLICE_SCANNER_EAST = 208, + AUDIO_SAMPLE_POLICE_SCANNER_SOUTH = 209, + AUDIO_SAMPLE_POLICE_SCANNER_WEST = 210, + AUDIO_SAMPLE_POLICE_SCANNER_CENTRAL = 211, + AUDIO_SAMPLE_POLICE_SCANNER_SMALL_CRACKLE_1 = 212, + AUDIO_SAMPLE_POLICE_SCANNER_SMALL_CRACKLE_2 = 213, + AUDIO_SAMPLE_POLICE_SCANNER_SMALL_CRACKLE_3 = 214, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_LIBERTY_CITY = 215, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_PORTLAND = 216, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_STAUNTON = 217, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_SHORESIDE = 218, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_ROCKFORD = 219, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_FORT_STAUNTON = 220, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_ASPATRIA = 221, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_TORRINGTON = 222, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_BEDFORD_POINT = 223, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_NEWPORT = 224, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_BELLEVILLE = 225, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_LIBERTY_CAMPUS = 226, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_COCHRANE = 227, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_PIKE_CREEK = 228, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_CEDAR_GROVE = 229, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_WICHITA_GARDEN = 230, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_FRANCIS_INTNL = 231, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_CALLAHAN_POINT = 232, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_ATLANTIC_QUAYS = 233, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_PORTLAND_HARBOUR = 234, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_TRENTON = 235, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_CHINATOWN = 236, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_REDLIGHT = 237, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_HEPBURN_HEIGHTS = 238, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_ST_MARKS = 239, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_HARWOOD = 240, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_PORTLAND_BEACH = 241, + AUDIO_SAMPLE_POLICE_SCANNER_ZONE_PORTLAND_VIEW = 242, + AUDIO_SAMPLE_POLICE_SCANNER_SUSPECT = 243, + AUDIO_SAMPLE_POLICE_SCANNER_LAST_SEEN = 244, + AUDIO_SAMPLE_POLICE_SCANNER_ON_FOOT = 245, + AUDIO_SAMPLE_POLICE_SCANNER_IN_A = 246, + AUDIO_SAMPLE_POLICE_SCANNER_IN_AN = 247, + AUDIO_SAMPLE_POLICE_SCANNER_COLOR_BLACK = 248, + AUDIO_SAMPLE_POLICE_SCANNER_COLOR_WHITE = 249, + AUDIO_SAMPLE_POLICE_SCANNER_COLOR_BLUE = 250, + AUDIO_SAMPLE_POLICE_SCANNER_COLOR_RED = 251, + AUDIO_SAMPLE_POLICE_SCANNER_COLOR_PURPLE = 252, + AUDIO_SAMPLE_POLICE_SCANNER_COLOR_YELLOW = 253, + AUDIO_SAMPLE_POLICE_SCANNER_COLOR_GREY = 254, + AUDIO_SAMPLE_POLICE_SCANNER_COLOR_ORANGE = 255, + AUDIO_SAMPLE_POLICE_SCANNER_COLOR_GREEN = 256, + AUDIO_SAMPLE_POLICE_SCANNER_COLOR_SILVER = 257, + AUDIO_SAMPLE_POLICE_SCANNER_COLOR_DARK = 258, + AUDIO_SAMPLE_POLICE_SCANNER_COLOR_LIGHT = 259, + AUDIO_SAMPLE_POLICE_SCANNER_COLOR_BRIGHT = 260, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_AMBULANCE = 261, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_VAN = 262, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_TRUCK = 263, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_ECONOMY = 264, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_SPORTS_CAR = 265, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_BUGGY = 266, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_TAXI = 267, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_CRUISER = 268, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_BUS = 269, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_COUPE = 270, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_FIRETRUCK = 271, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_BOAT = 272, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_PICKUP = 273, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_ICE_CREAM_TRUCK = 274, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_LIMO = 275, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_POLICE_CAR = 276, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_CONVERTIBLE = 277, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_SUBWAY_CAR = 278, + AUDIO_SAMPLE_POLICE_SCANNER_CAR_TANK = 279, + AUDIO_SAMPLE_HELI_FAR = 280, + AUDIO_SAMPLE_HELI_AVERAGE = 281, + AUDIO_SAMPLE_HELI_CLOSE = 282, + AUDIO_SAMPLE_PAYPHONE_RINGING = 283, + AUDIO_SAMPLE_VEHICLE_ENGINE_GENERIC = 284, + AUDIO_SAMPLE_VEHICLE_ENGINE_PICKUPS = 285, + AUDIO_SAMPLE_VEHICLE_ENGINE_SPORTS_1 = 286, + AUDIO_SAMPLE_VEHICLE_ENGINE_VANS = 287, + AUDIO_SAMPLE_VEHICLE_ENGINE_CEDANS = 288, + AUDIO_SAMPLE_VEHICLE_ENGINE_BIG = 289, + AUDIO_SAMPLE_VEHICLE_ENGINE_TUNED = 290, + AUDIO_SAMPLE_VEHICLE_ENGINE_SPORTS_2 = 291, + AUDIO_SAMPLE_292 = 292, + AUDIO_SAMPLE_VEHICLE_ENGINE_IDLE_NONE = 293, + AUDIO_SAMPLE_VEHICLE_ENGINE_IDLE_GENERIC = 294, + AUDIO_SAMPLE_VEHICLE_ENGINE_IDLE_PICKUPS = 295, + AUDIO_SAMPLE_VEHICLE_ENGINE_IDLE_SPORTS_1 = 296, + AUDIO_SAMPLE_VEHICLE_ENGINE_IDLE_VANS = 297, + AUDIO_SAMPLE_VEHICLE_ENGINE_IDLE_CEDANS = 298, + AUDIO_SAMPLE_VEHICLE_ENGINE_IDLE_BIG = 299, + AUDIO_SAMPLE_VEHICLE_ENGINE_IDLE_TUNED = 300, + AUDIO_SAMPLE_VEHICLE_ENGINE_IDLE_SPORTS_2 = 301, + AUDIO_SAMPLE_302 = 302, + AUDIO_SAMPLE_303 = 303, + AUDIO_SAMPLE_JUMBO_FLY_SOUND = 304, + AUDIO_SAMPLE_JUMBO_TAXI_SOUND = 305, + AUDIO_SAMPLE_JUMBO_WHINE_SOUND = 306, + AUDIO_SAMPLE_JUMBO_ENGINE_SOUND = 307, + AUDIO_SAMPLE_JUMBO_RUMBLE_SOUND = 308, + AUDIO_SAMPLE_VEHICLE_PLANE_TOUCHES_GROUND = 309, + AUDIO_SAMPLE_BOAT_ENGINE_IDLE = 310, + AUDIO_SAMPLE_BOAT_ENGINE = 311, + AUDIO_SAMPLE_BOAT_IDLE = 312, + AUDIO_SAMPLE_LOOPING_WATER = 313, + AUDIO_SAMPLE_BOAT_SPLASH_0 = 314, + AUDIO_SAMPLE_BOAT_SPLASH_1 = 315, + AUDIO_SAMPLE_MOTOR = 316, + AUDIO_SAMPLE_VEHICLE_CESNA_FAR = 317, + AUDIO_SAMPLE_VEHICLE_CESNA_CLOSE = 318, + AUDIO_SAMPLE_RAIN_ON_VEHICLE_1 = 319, + AUDIO_SAMPLE_RAIN_ON_VEHICLE_2 = 320, + AUDIO_SAMPLE_RAIN_ON_VEHICLE_3 = 321, + AUDIO_SAMPLE_RAIN_ON_VEHICLE_4 = 322, + AUDIO_SAMPLE_COLLISION_WATER = 323, + AUDIO_SAMPLE_SPLATTER_1 = 324, + AUDIO_SAMPLE_SPLATTER_2 = 325, + AUDIO_SAMPLE_PED_HEADPHONES = 326, + AUDIO_SAMPLE_BOX_DESTROYED_1 = 327, + AUDIO_SAMPLE_BOX_DESTROYED_2 = 328, + AUDIO_SAMPLE_ROCKET_NO_ZOOM = 329, + AUDIO_SAMPLE_SNIPER_NO_ZOOM = 330, + AUDIO_SAMPLE_VEHICLE_TURRET_ROTATE = 331, + AUDIO_SAMPLE_CRANE_PROCESS = 332, + AUDIO_SAMPLE_PED_FALL_COLLAPSE = 333, + AUDIO_SAMPLE_PED_FALL_LAND = 334, + AUDIO_SAMPLE_FRONTEND_BOMB_TICK = 335, + AUDIO_SAMPLE_FRONTEND_CLOCK_TICK = 336, + AUDIO_SAMPLE_FRONTEND_PART_MISSION_COMPLETED = 337, + AUDIO_SAMPLE_FRONTEND_MENU_STARTING_1 = 338, + AUDIO_SAMPLE_FRONTEND_MENU_STARTING_2 = 339, + AUDIO_SAMPLE_VEHICLE_HYDRAULIC = 340, + AUDIO_SAMPLE_VEHICLE_HYDRAULIC_EFFECT = 341, + AUDIO_SAMPLE_VEHICLE_JERK = 342, + AUDIO_SAMPLE_FRONTEND_GAMEPLAY_FAIL = 343, + AUDIO_SAMPLE_FRONTEND_GAMEPLAY_SUCCESS = 344, + AUDIO_SAMPLE_345 = 345, + AUDIO_SAMPLE_VEHICLE_ENGINE_CHANGE_GEAR_GENERIC = 346, + AUDIO_SAMPLE_VEHICLE_ENGINE_STOPPING_GENERIC = 347, + AUDIO_SAMPLE_348 = 348, + AUDIO_SAMPLE_VEHICLE_ENGINE_CHANGE_GEAR_PICKUPS = 349, + AUDIO_SAMPLE_VEHICLE_ENGINE_STOPPING_PICKUPS = 350, + AUDIO_SAMPLE_351 = 351, + AUDIO_SAMPLE_VEHICLE_ENGINE_CHANGE_GEAR_SPORTS_1 = 352, + AUDIO_SAMPLE_VEHICLE_ENGINE_STOPPING_SPORTS_1 = 353, + AUDIO_SAMPLE_354 = 354, + AUDIO_SAMPLE_VEHICLE_ENGINE_CHANGE_GEAR_VANS = 355, + AUDIO_SAMPLE_VEHICLE_ENGINE_STOPPING_VANS = 356, + AUDIO_SAMPLE_357 = 357, + AUDIO_SAMPLE_VEHICLE_ENGINE_CHANGE_GEAR_CEDANS = 358, + AUDIO_SAMPLE_VEHICLE_ENGINE_STOPPING_CEDANS = 359, + AUDIO_SAMPLE_360 = 360, + AUDIO_SAMPLE_VEHICLE_ENGINE_CHANGE_GEAR_BIG = 361, + AUDIO_SAMPLE_VEHICLE_ENGINE_STOPPING_BIG = 362, + AUDIO_SAMPLE_363 = 363, + AUDIO_SAMPLE_VEHICLE_ENGINE_CHANGE_GEAR_TUNED = 364, + AUDIO_SAMPLE_VEHICLE_ENGINE_STOPPING_TUNED = 365, + AUDIO_SAMPLE_366 = 366, + AUDIO_SAMPLE_VEHICLE_ENGINE_CHANGE_GEAR_SPORTS_2 = 367, + AUDIO_SAMPLE_VEHICLE_ENGINE_STOPPING_SPORTS_2 = 368, + AUDIO_SAMPLE_369 = 369, + AUDIO_SAMPLE_370 = 370, + AUDIO_SAMPLE_371 = 371, + AUDIO_SAMPLE_FRONTEND_MENU_COMPLETED_1 = 372, + AUDIO_SAMPLE_FRONTEND_MENU_COMPLETED_2 = 373, + AUDIO_SAMPLE_FRONTEND_MENU_DENIED_1 = 374, + AUDIO_SAMPLE_FRONTEND_MENU_DENIED_2 = 375, + AUDIO_SAMPLE_FRONTEND_MENU_SUCCESS_1 = 376, + AUDIO_SAMPLE_FRONTEND_MENU_SUCCESS_2 = 377, + AUDIO_SAMPLE_FRONTEND_MENU_EXIT_1 = 378, + AUDIO_SAMPLE_FRONTEND_MENU_EXIT_2 = 379, + AUDIO_SAMPLE_380 = 380, + AUDIO_SAMPLE_381 = 381, + AUDIO_SAMPLE_382 = 382, + AUDIO_SAMPLE_FRONTEND_MENU_AUDIO_TEST_1 = 383, + AUDIO_SAMPLE_FRONTEND_MENU_AUDIO_TEST_2 = 384, + AUDIO_SAMPLE_FRONTEND_MENU_AUDIO_TEST_3 = 385, + AUDIO_SAMPLE_FRONTEND_MENU_FAIL_1 = 386, + AUDIO_SAMPLE_FRONTEND_MENU_FAIL_2 = 387, + AUDIO_SAMPLE_388 = 388, + AUDIO_SAMPLE_389 = 389, + AUDIO_SAMPLE_PARTY_1 = 390, + AUDIO_SAMPLE_PARTY_2 = 391, + AUDIO_SAMPLE_PARTY_3 = 392, + AUDIO_SAMPLE_PARTY_4 = 393, + AUDIO_SAMPLE_PARTY_5 = 394, + AUDIO_SAMPLE_PARTY_6 = 395, + AUDIO_SAMPLE_PARTY_7 = 396, + AUDIO_SAMPLE_PARTY_8 = 397, + AUDIO_SAMPLE_PARTY_9 = 398, + AUDIO_SAMPLE_PARTY_10 = 399, + AUDIO_SAMPLE_PARTY_11 = 400, + AUDIO_SAMPLE_PARTY_12 = 401, + AUDIO_SAMPLE_PARTY_13 = 402, + AUDIO_SAMPLE_STRIP_CLUB_1 = 403, + AUDIO_SAMPLE_STRIP_CLUB_2 = 404, + AUDIO_SAMPLE_WORK_SHOP = 405, + AUDIO_SAMPLE_FRANKIE_PIANO = 406, + AUDIO_SAMPLE_SAWMILL_1 = 407, + AUDIO_SAMPLE_SAWMILL_2 = 408, + AUDIO_SAMPLE_409 = 409, + AUDIO_SAMPLE_LAUNDERETTE_1 = 410, + AUDIO_SAMPLE_LAUNDERETTE_2 = 411, + AUDIO_SAMPLE_CHINATOWN_RESTAURANT = 412, + AUDIO_SAMPLE_CIPRIANI_RESTAURANT = 413, + AUDIO_SAMPLE_414 = 414, + AUDIO_SAMPLE_MARCO_BISTRO = 415, + AUDIO_SAMPLE_AIRPORT_1 = 416, + AUDIO_SAMPLE_AIRPORT_2 = 417, + AUDIO_SAMPLE_AIRPORT_3 = 418, + AUDIO_SAMPLE_AIRPORT_4 = 419, + AUDIO_SAMPLE_SHOP_1 = 420, + AUDIO_SAMPLE_SHOP_2 = 421, + AUDIO_SAMPLE_SHOP_3 = 422, + AUDIO_SAMPLE_CINEMA_1 = 423, + AUDIO_SAMPLE_CINEMA_2 = 424, + AUDIO_SAMPLE_CINEMA_3 = 425, + AUDIO_SAMPLE_DOCKS = 426, + AUDIO_SAMPLE_HOME_1 = 427, + AUDIO_SAMPLE_HOME_2 = 428, + AUDIO_SAMPLE_HOME_3 = 429, + AUDIO_SAMPLE_HOME_4 = 430, + AUDIO_SAMPLE_HOME_5 = 431, + AUDIO_SAMPLE_PORN_CINEMA_1_BACKGROUND_1 = 432, + AUDIO_SAMPLE_PORN_CINEMA_1_SEX_1 = 433, + AUDIO_SAMPLE_PORN_CINEMA_1_SEX_2 = 434, + AUDIO_SAMPLE_PORN_CINEMA_2_BACKGROUND_2 = 435, + AUDIO_SAMPLE_PORN_CINEMA_2_SEX_1 = 436, + AUDIO_SAMPLE_PORN_CINEMA_2_SEX_2 = 437, + AUDIO_SAMPLE_PORN_CINEMA_3_BACKGROUND_3 = 438, + AUDIO_SAMPLE_PORN_CINEMA_3_SEX_1 = 439, + AUDIO_SAMPLE_PORN_CINEMA_3_SEX_2 = 440, + AUDIO_SAMPLE_POLICE_BALL = 441, + AUDIO_SAMPLE_BANK_ALARM = 442, + AUDIO_SAMPLE_RAVE_INDUSTRIAL = 443, + AUDIO_SAMPLE_RAVE_1 = 444, + AUDIO_SAMPLE_RAVE_2 = 445, + AUDIO_SAMPLE_RAVE_3 = 446, + AUDIO_SAMPLE_447 = 447, + AUDIO_SAMPLE_448 = 448, + AUDIO_SAMPLE_449 = 449, + AUDIO_SAMPLE_450 = 450, + AUDIO_SAMPLE_451 = 451, + AUDIO_SAMPLE_452 = 452, + AUDIO_SAMPLE_453 = 453, + AUDIO_SAMPLE_454 = 454, + AUDIO_SAMPLE_455 = 455, + AUDIO_SAMPLE_EXPLOSION_CAR = 456, + AUDIO_SAMPLE_BRIDGE_WARNING = 457, + AUDIO_SAMPLE_PAGER = 458, + AUDIO_SAMPLE_POLICE_COP_1_ARREST_1 = 459, + AUDIO_SAMPLE_POLICE_COP_1_ARREST_2 = 460, + AUDIO_SAMPLE_POLICE_COP_1_ARREST_3 = 461, + AUDIO_SAMPLE_POLICE_COP_1_ARREST_4 = 462, + AUDIO_SAMPLE_POLICE_COP_1_ARREST_5 = 463, + AUDIO_SAMPLE_POLICE_COP_1_ARREST_6 = 464, + AUDIO_SAMPLE_POLICE_COP_1_PURSUIT_1 = 465, + AUDIO_SAMPLE_POLICE_COP_1_PURSUIT_2 = 466, + AUDIO_SAMPLE_POLICE_COP_1_PURSUIT_3 = 467, + AUDIO_SAMPLE_POLICE_COP_1_PURSUIT_4 = 468, + AUDIO_SAMPLE_POLICE_COP_1_PURSUIT_5 = 469, + AUDIO_SAMPLE_POLICE_COP_1_PURSUIT_6 = 470, + AUDIO_SAMPLE_POLICE_COP_1_PURSUIT_7 = 471, + AUDIO_SAMPLE_POLICE_COP_2_ARREST_1 = 472, + AUDIO_SAMPLE_POLICE_COP_2_ARREST_2 = 473, + AUDIO_SAMPLE_POLICE_COP_2_ARREST_3 = 474, + AUDIO_SAMPLE_POLICE_COP_2_ARREST_4 = 475, + AUDIO_SAMPLE_POLICE_COP_2_ARREST_5 = 476, + AUDIO_SAMPLE_POLICE_COP_2_ARREST_6 = 477, + AUDIO_SAMPLE_POLICE_COP_2_PURSUIT_1 = 478, + AUDIO_SAMPLE_POLICE_COP_2_PURSUIT_2 = 479, + AUDIO_SAMPLE_POLICE_COP_2_PURSUIT_3 = 480, + AUDIO_SAMPLE_POLICE_COP_2_PURSUIT_4 = 481, + AUDIO_SAMPLE_POLICE_COP_2_PURSUIT_5 = 482, + AUDIO_SAMPLE_POLICE_COP_2_PURSUIT_6 = 483, + AUDIO_SAMPLE_POLICE_COP_2_PURSUIT_7 = 484, + AUDIO_SAMPLE_POLICE_COP_3_ARREST_1 = 485, + AUDIO_SAMPLE_POLICE_COP_3_ARREST_2 = 486, + AUDIO_SAMPLE_POLICE_COP_3_ARREST_3 = 487, + AUDIO_SAMPLE_POLICE_COP_3_ARREST_4 = 488, + AUDIO_SAMPLE_POLICE_COP_3_ARREST_5 = 489, + AUDIO_SAMPLE_POLICE_COP_3_ARREST_6 = 490, + AUDIO_SAMPLE_POLICE_COP_3_PURSUIT_1 = 491, + AUDIO_SAMPLE_POLICE_COP_3_PURSUIT_2 = 492, + AUDIO_SAMPLE_POLICE_COP_3_PURSUIT_3 = 493, + AUDIO_SAMPLE_POLICE_COP_3_PURSUIT_4 = 494, + AUDIO_SAMPLE_POLICE_COP_3_PURSUIT_5 = 495, + AUDIO_SAMPLE_POLICE_COP_3_PURSUIT_6 = 496, + AUDIO_SAMPLE_POLICE_COP_3_PURSUIT_7 = 497, + AUDIO_SAMPLE_POLICE_COP_4_ARREST_1 = 498, + AUDIO_SAMPLE_POLICE_COP_4_ARREST_2 = 499, + AUDIO_SAMPLE_POLICE_COP_4_ARREST_3 = 500, + AUDIO_SAMPLE_POLICE_COP_4_ARREST_4 = 501, + AUDIO_SAMPLE_POLICE_COP_4_ARREST_5 = 502, + AUDIO_SAMPLE_POLICE_COP_4_ARREST_6 = 503, + AUDIO_SAMPLE_POLICE_COP_4_PURSUIT_1 = 504, + AUDIO_SAMPLE_POLICE_COP_4_PURSUIT_2 = 505, + AUDIO_SAMPLE_POLICE_COP_4_PURSUIT_3 = 506, + AUDIO_SAMPLE_POLICE_COP_4_PURSUIT_4 = 507, + AUDIO_SAMPLE_POLICE_COP_4_PURSUIT_5 = 508, + AUDIO_SAMPLE_POLICE_COP_4_PURSUIT_6 = 509, + AUDIO_SAMPLE_POLICE_COP_4_PURSUIT_7 = 510, + AUDIO_SAMPLE_POLICE_COP_5_ARREST_1 = 511, + AUDIO_SAMPLE_POLICE_COP_5_ARREST_2 = 512, + AUDIO_SAMPLE_POLICE_COP_5_ARREST_3 = 513, + AUDIO_SAMPLE_POLICE_COP_5_ARREST_4 = 514, + AUDIO_SAMPLE_POLICE_COP_5_ARREST_5 = 515, + AUDIO_SAMPLE_POLICE_COP_5_ARREST_6 = 516, + AUDIO_SAMPLE_POLICE_COP_5_PURSUIT_1 = 517, + AUDIO_SAMPLE_POLICE_COP_5_PURSUIT_2 = 518, + AUDIO_SAMPLE_POLICE_COP_5_PURSUIT_3 = 519, + AUDIO_SAMPLE_POLICE_COP_5_PURSUIT_4 = 520, + AUDIO_SAMPLE_POLICE_COP_5_PURSUIT_5 = 521, + AUDIO_SAMPLE_POLICE_COP_5_PURSUIT_6 = 522, + AUDIO_SAMPLE_POLICE_COP_5_PURSUIT_7 = 523, + AUDIO_SAMPLE_POLICE_SWAT_1_PURSUIT_ARREST_1 = 524, + AUDIO_SAMPLE_POLICE_SWAT_1_PURSUIT_ARREST_2 = 525, + AUDIO_SAMPLE_POLICE_SWAT_1_PURSUIT_ARREST_3 = 526, + AUDIO_SAMPLE_POLICE_SWAT_1_PURSUIT_ARREST_4 = 527, + AUDIO_SAMPLE_POLICE_SWAT_1_PURSUIT_ARREST_5 = 528, + AUDIO_SAMPLE_POLICE_SWAT_1_PURSUIT_ARREST_6 = 529, + AUDIO_SAMPLE_POLICE_SWAT_2_PURSUIT_ARREST_1 = 530, + AUDIO_SAMPLE_POLICE_SWAT_2_PURSUIT_ARREST_2 = 531, + AUDIO_SAMPLE_POLICE_SWAT_2_PURSUIT_ARREST_3 = 532, + AUDIO_SAMPLE_POLICE_SWAT_2_PURSUIT_ARREST_4 = 533, + AUDIO_SAMPLE_POLICE_SWAT_2_PURSUIT_ARREST_5 = 534, + AUDIO_SAMPLE_POLICE_SWAT_2_PURSUIT_ARREST_6 = 535, + AUDIO_SAMPLE_POLICE_SWAT_3_PURSUIT_ARREST_1 = 536, + AUDIO_SAMPLE_POLICE_SWAT_3_PURSUIT_ARREST_2 = 537, + AUDIO_SAMPLE_POLICE_SWAT_3_PURSUIT_ARREST_3 = 538, + AUDIO_SAMPLE_POLICE_SWAT_3_PURSUIT_ARREST_4 = 539, + AUDIO_SAMPLE_POLICE_SWAT_3_PURSUIT_ARREST_5 = 540, + AUDIO_SAMPLE_POLICE_SWAT_3_PURSUIT_ARREST_6 = 541, + AUDIO_SAMPLE_POLICE_SWAT_4_PURSUIT_ARREST_1 = 542, + AUDIO_SAMPLE_POLICE_SWAT_4_PURSUIT_ARREST_2 = 543, + AUDIO_SAMPLE_POLICE_SWAT_4_PURSUIT_ARREST_3 = 544, + AUDIO_SAMPLE_POLICE_SWAT_4_PURSUIT_ARREST_4 = 545, + AUDIO_SAMPLE_POLICE_SWAT_4_PURSUIT_ARREST_5 = 546, + AUDIO_SAMPLE_POLICE_SWAT_4_PURSUIT_ARREST_6 = 547, + AUDIO_SAMPLE_POLICE_FBI_1_PURSUIT_ARREST_1 = 548, + AUDIO_SAMPLE_POLICE_FBI_1_PURSUIT_ARREST_2 = 549, + AUDIO_SAMPLE_POLICE_FBI_1_PURSUIT_ARREST_3 = 550, + AUDIO_SAMPLE_POLICE_FBI_1_PURSUIT_ARREST_4 = 551, + AUDIO_SAMPLE_POLICE_FBI_1_PURSUIT_ARREST_5 = 552, + AUDIO_SAMPLE_POLICE_FBI_1_PURSUIT_ARREST_6 = 553, + AUDIO_SAMPLE_POLICE_FBI_2_PURSUIT_ARREST_1 = 554, + AUDIO_SAMPLE_POLICE_FBI_2_PURSUIT_ARREST_2 = 555, + AUDIO_SAMPLE_POLICE_FBI_2_PURSUIT_ARREST_3 = 556, + AUDIO_SAMPLE_POLICE_FBI_2_PURSUIT_ARREST_4 = 557, + AUDIO_SAMPLE_POLICE_FBI_2_PURSUIT_ARREST_5 = 558, + AUDIO_SAMPLE_POLICE_FBI_2_PURSUIT_ARREST_6 = 559, + AUDIO_SAMPLE_POLICE_FBI_3_PURSUIT_ARREST_1 = 560, + AUDIO_SAMPLE_POLICE_FBI_3_PURSUIT_ARREST_2 = 561, + AUDIO_SAMPLE_POLICE_FBI_3_PURSUIT_ARREST_3 = 562, + AUDIO_SAMPLE_POLICE_FBI_3_PURSUIT_ARREST_4 = 563, + AUDIO_SAMPLE_POLICE_FBI_3_PURSUIT_ARREST_5 = 564, + AUDIO_SAMPLE_POLICE_FBI_3_PURSUIT_ARREST_6 = 565, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_1 = 566, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_2 = 567, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_3 = 568, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_4 = 569, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_5 = 570, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_6 = 571, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_7 = 572, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_8 = 573, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_9 = 574, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_10 = 575, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_11 = 576, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_12 = 577, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_13 = 578, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_14 = 579, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_15 = 580, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_16 = 581, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_17 = 582, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_18 = 583, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_19 = 584, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_20 = 585, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_21 = 586, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_22 = 587, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_23 = 588, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_24 = 589, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_25 = 590, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_26 = 591, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_27 = 592, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_28 = 593, + AUDIO_SAMPLE_POLICE_HELI_FOUND_PLAYER_29 = 594, + AUDIO_SAMPLE_PED_CHUNKY_DEATH_1 = 595, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CAR_COLLISION_1 = 596, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CAR_COLLISION_2 = 597, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CAR_COLLISION_3 = 598, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CAR_COLLISION_4 = 599, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CAR_COLLISION_5 = 600, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CAR_COLLISION_6 = 601, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CHAT_1 = 602, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CHAT_2 = 603, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CHAT_3 = 604, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CHAT_4 = 605, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CHAT_5 = 606, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_EVADE_1 = 607, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_EVADE_2 = 608, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_EVADE_3 = 609, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_EVADE_4 = 610, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_EVADE_5 = 611, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CHAT_SEXY_1 = 612, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CHAT_SEXY_2 = 613, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CHAT_SEXY_3 = 614, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_ATTACK_1 = 615, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_ATTACK_2 = 616, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_ATTACK_3 = 617, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_ATTACK_4 = 618, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_ATTACK_5 = 619, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_HANDS_COWER_1 = 620, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_HANDS_COWER_2 = 621, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_HANDS_COWER_3 = 622, + AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_1 = 623, + AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_2 = 624, + AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_3 = 625, + AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_4 = 626, + AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_5 = 627, + AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_6 = 628, + AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_7 = 629, + AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_8 = 630, + AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_9 = 631, + AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_10 = 632, + AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_11 = 633, + AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_12 = 634, + AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_13 = 635, + AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_14 = 636, + AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_15 = 637, + AUDIO_SAMPLE_POLICE_ARMY_2_PURSUIT_1 = 638, + AUDIO_SAMPLE_POLICE_ARMY_2_PURSUIT_2 = 639, + AUDIO_SAMPLE_POLICE_ARMY_2_PURSUIT_3 = 640, + AUDIO_SAMPLE_POLICE_ARMY_2_PURSUIT_4 = 641, + AUDIO_SAMPLE_POLICE_ARMY_2_PURSUIT_5 = 642, + AUDIO_SAMPLE_POLICE_ARMY_2_PURSUIT_6 = 643, + AUDIO_SAMPLE_POLICE_ARMY_2_PURSUIT_7 = 644, + AUDIO_SAMPLE_POLICE_ARMY_2_PURSUIT_8 = 645, + AUDIO_SAMPLE_POLICE_ARMY_2_PURSUIT_9 = 646, + AUDIO_SAMPLE_POLICE_ARMY_2_PURSUIT_10 = 647, + AUDIO_SAMPLE_POLICE_ARMY_2_PURSUIT_11 = 648, + AUDIO_SAMPLE_POLICE_ARMY_2_PURSUIT_12 = 649, + AUDIO_SAMPLE_POLICE_ARMY_2_PURSUIT_13 = 650, + AUDIO_SAMPLE_POLICE_ARMY_2_PURSUIT_14 = 651, + AUDIO_SAMPLE_POLICE_ARMY_2_PURSUIT_15 = 652, + AUDIO_SAMPLE_PED_HIT_REACTION_1 = 653, + AUDIO_SAMPLE_PED_HIT_REACTION_2 = 654, + AUDIO_SAMPLE_PED_HIT_REACTION_3 = 655, + AUDIO_SAMPLE_PED_HIT_REACTION_4 = 656, + AUDIO_SAMPLE_PED_HIT_REACTION_5 = 657, + AUDIO_SAMPLE_PED_HIT_REACTION_6 = 658, + AUDIO_SAMPLE_PED_HIT_REACTION_7 = 659, + AUDIO_SAMPLE_PED_HIT_REACTION_8 = 660, + AUDIO_SAMPLE_PED_HIT_REACTION_9 = 661, + AUDIO_SAMPLE_PED_HIT_REACTION_10 = 662, + AUDIO_SAMPLE_PED_DAMAGE_REACTION_1 = 663, + AUDIO_SAMPLE_PED_DAMAGE_REACTION_2 = 664, + AUDIO_SAMPLE_PED_DAMAGE_REACTION_3 = 665, + AUDIO_SAMPLE_PED_DAMAGE_REACTION_4 = 666, + AUDIO_SAMPLE_PED_DAMAGE_REACTION_5 = 667, + AUDIO_SAMPLE_PED_DAMAGE_REACTION_6 = 668, + AUDIO_SAMPLE_PED_DAMAGE_REACTION_7 = 669, + AUDIO_SAMPLE_PED_DAMAGE_REACTION_8 = 670, + AUDIO_SAMPLE_PED_DAMAGE_REACTION_9 = 671, + AUDIO_SAMPLE_PED_DAMAGE_REACTION_10 = 672, + AUDIO_SAMPLE_PED_DAMAGE_REACTION_11 = 673, + AUDIO_SAMPLE_PED_FALL_REACTION_1 = 674, + AUDIO_SAMPLE_PED_FALL_REACTION_2 = 675, + AUDIO_SAMPLE_PED_FALL_REACTION_3 = 676, + AUDIO_SAMPLE_PED_FALL_REACTION_4 = 677, + AUDIO_SAMPLE_PED_FALL_REACTION_5 = 678, + AUDIO_SAMPLE_PED_FALL_REACTION_6 = 679, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_COLLISION_1 = 680, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_COLLISION_2 = 681, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_COLLISION_3 = 682, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_COLLISION_4 = 683, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_COLLISION_5 = 684, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_COLLISION_6 = 685, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_COLLISION_7 = 686, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CHAT_1 = 687, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CHAT_2 = 688, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CHAT_3 = 689, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CHAT_4 = 690, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CHAT_5 = 691, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CHAT_6 = 692, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CHAT_7 = 693, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CHAT_8 = 694, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CHAT_9 = 695, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CHAT_10 = 696, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_EVADE_1 = 697, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_EVADE_2 = 698, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_EVADE_3 = 699, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_EVADE_4 = 700, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_EVADE_5 = 701, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_EVADE_6 = 702, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_EVADE_7 = 703, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_EVADE_8 = 704, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_EVADE_9 = 705, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_EVADE_10 = 706, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_JACKED_1 = 707, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_JACKED_2 = 708, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_JACKED_3 = 709, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_JACKED_4 = 710, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_JACKED_5 = 711, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_JACKED_6 = 712, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_ROBBED_1 = 713, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_ROBBED_2 = 714, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_FLEE_RUN_1 = 715, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_FLEE_RUN_2 = 716, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_FLEE_RUN_3 = 717, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_FLEE_RUN_4 = 718, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_FLEE_RUN_5 = 719, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_FLEE_RUN_6 = 720, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CHAT_EVENT_1 = 721, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CHAT_EVENT_2 = 722, + AUDIO_SAMPLE_PED_CHUNKY_FLEE_RUN_1 = 723, + AUDIO_SAMPLE_PED_CHUNKY_FLEE_RUN_2 = 724, + AUDIO_SAMPLE_PED_CHUNKY_FLEE_RUN_3 = 725, + AUDIO_SAMPLE_PED_CHUNKY_FLEE_RUN_4 = 726, + AUDIO_SAMPLE_PED_CHUNKY_FLEE_RUN_5 = 727, + AUDIO_SAMPLE_PED_PIMP_CAR_COLLISION_1 = 728, + AUDIO_SAMPLE_PED_PIMP_CAR_COLLISION_2 = 729, + AUDIO_SAMPLE_PED_PIMP_CAR_COLLISION_3 = 730, + AUDIO_SAMPLE_PED_PIMP_CAR_COLLISION_4 = 731, + AUDIO_SAMPLE_PED_PIMP_CAR_COLLISION_5 = 732, + AUDIO_SAMPLE_PED_PIMP_CHAT_1 = 733, + AUDIO_SAMPLE_PED_PIMP_CHAT_2 = 734, + AUDIO_SAMPLE_PED_PIMP_CHAT_3 = 735, + AUDIO_SAMPLE_PED_PIMP_CHAT_4 = 736, + AUDIO_SAMPLE_PED_PIMP_CHAT_5 = 737, + AUDIO_SAMPLE_PED_PIMP_CHAT_6 = 738, + AUDIO_SAMPLE_PED_PIMP_CHAT_7 = 739, + AUDIO_SAMPLE_PED_PIMP_CHAT_8 = 740, + AUDIO_SAMPLE_PED_PIMP_CHAT_9 = 741, + AUDIO_SAMPLE_PED_PIMP_CHAT_10 = 742, + AUDIO_SAMPLE_PED_PIMP_CHAT_11 = 743, + AUDIO_SAMPLE_PED_PIMP_CHAT_12 = 744, + AUDIO_SAMPLE_PED_PIMP_CHAT_13 = 745, + AUDIO_SAMPLE_PED_PIMP_CHAT_14 = 746, + AUDIO_SAMPLE_PED_PIMP_CHAT_15 = 747, + AUDIO_SAMPLE_PED_PIMP_CHAT_16 = 748, + AUDIO_SAMPLE_PED_PIMP_CHAT_17 = 749, + AUDIO_SAMPLE_PED_PIMP_EVADE_1 = 750, + AUDIO_SAMPLE_PED_PIMP_EVADE_2 = 751, + AUDIO_SAMPLE_PED_PIMP_EVADE_3 = 752, + AUDIO_SAMPLE_PED_PIMP_EVADE_4 = 753, + AUDIO_SAMPLE_PED_PIMP_EVADE_5 = 754, + AUDIO_SAMPLE_PED_PIMP_EVADE_6 = 755, + AUDIO_SAMPLE_PED_PIMP_DEFEND_1 = 756, + AUDIO_SAMPLE_PED_PIMP_DEFEND_2 = 757, + AUDIO_SAMPLE_PED_PIMP_DEFEND_3 = 758, + AUDIO_SAMPLE_PED_PIMP_DEFEND_4 = 759, + AUDIO_SAMPLE_PED_PIMP_DEFEND_5 = 760, + AUDIO_SAMPLE_PED_PIMP_DEFEND_6 = 761, + AUDIO_SAMPLE_PED_PIMP_DEFEND_7 = 762, + AUDIO_SAMPLE_PED_PIMP_DEFEND_8 = 763, + AUDIO_SAMPLE_PED_PIMP_DEFEND_9 = 764, + AUDIO_SAMPLE_PED_PIMP_HANDS_UP_1 = 765, + AUDIO_SAMPLE_PED_PIMP_HANDS_UP_2 = 766, + AUDIO_SAMPLE_PED_PIMP_HANDS_UP_3 = 767, + AUDIO_SAMPLE_PED_PIMP_HANDS_UP_4 = 768, + AUDIO_SAMPLE_PED_PIMP_HANDS_UP_5 = 769, + AUDIO_SAMPLE_PED_PIMP_HANDS_UP_6 = 770, + AUDIO_SAMPLE_PED_PIMP_HANDS_UP_7 = 771, + AUDIO_SAMPLE_PED_PIMP_CAR_JACKED_1 = 772, + AUDIO_SAMPLE_PED_PIMP_CAR_JACKED_2 = 773, + AUDIO_SAMPLE_PED_PIMP_CAR_JACKED_3 = 774, + AUDIO_SAMPLE_PED_PIMP_CAR_JACKED_4 = 775, + AUDIO_SAMPLE_PED_PIMP_CHAT_EVENT_1 = 776, + AUDIO_SAMPLE_PED_PIMP_CHAT_EVENT_2 = 777, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_COLLISION_1 = 778, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_COLLISION_2 = 779, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_COLLISION_3 = 780, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_COLLISION_4 = 781, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_COLLISION_5 = 782, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_COLLISION_6 = 783, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_COLLISION_7 = 784, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_COLLISION_8 = 785, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_COLLISION_9 = 786, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_COLLISION_10 = 787, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_COLLISION_11 = 788, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_COLLISION_12 = 789, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_1 = 790, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_2 = 791, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_3 = 792, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_4 = 793, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_5 = 794, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_6 = 795, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_7 = 796, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_8 = 797, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_9 = 798, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_10 = 799, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_11 = 800, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_12 = 801, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_13 = 802, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_14 = 803, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_15 = 804, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_16 = 805, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_17 = 806, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_18 = 807, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_19 = 808, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_20 = 809, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_21 = 810, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_22 = 811, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_23 = 812, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_24 = 813, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_25 = 814, + AUDIO_SAMPLE_PED_NORMAL_MALE_EVADE_1 = 815, + AUDIO_SAMPLE_PED_NORMAL_MALE_EVADE_2 = 816, + AUDIO_SAMPLE_PED_NORMAL_MALE_EVADE_3 = 817, + AUDIO_SAMPLE_PED_NORMAL_MALE_EVADE_4 = 818, + AUDIO_SAMPLE_PED_NORMAL_MALE_EVADE_5 = 819, + AUDIO_SAMPLE_PED_NORMAL_MALE_EVADE_6 = 820, + AUDIO_SAMPLE_PED_NORMAL_MALE_EVADE_7 = 821, + AUDIO_SAMPLE_PED_NORMAL_MALE_EVADE_8 = 822, + AUDIO_SAMPLE_PED_NORMAL_MALE_EVADE_9 = 823, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_SEXY_1 = 824, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_SEXY_2 = 825, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_SEXY_3 = 826, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_SEXY_4 = 827, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_SEXY_5 = 828, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_SEXY_6 = 829, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_SEXY_7 = 830, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_SEXY_8 = 831, + AUDIO_SAMPLE_PED_NORMAL_MALE_HANDS_COWER_1 = 832, + AUDIO_SAMPLE_PED_NORMAL_MALE_HANDS_COWER_2 = 833, + AUDIO_SAMPLE_PED_NORMAL_MALE_HANDS_COWER_3 = 834, + AUDIO_SAMPLE_PED_NORMAL_MALE_HANDS_COWER_4 = 835, + AUDIO_SAMPLE_PED_NORMAL_MALE_HANDS_COWER_5 = 836, + AUDIO_SAMPLE_PED_NORMAL_MALE_HANDS_COWER_6 = 837, + AUDIO_SAMPLE_PED_NORMAL_MALE_HANDS_COWER_7 = 838, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_JACKED_1 = 839, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_JACKED_2 = 840, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_JACKED_3 = 841, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_JACKED_4 = 842, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_JACKED_5 = 843, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_JACKED_6 = 844, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_JACKED_7 = 845, + AUDIO_SAMPLE_PED_NORMAL_MALE_FLEE_RUN_1 = 846, + AUDIO_SAMPLE_PED_NORMAL_MALE_FLEE_RUN_2 = 847, + AUDIO_SAMPLE_PED_NORMAL_MALE_FLEE_RUN_3 = 848, + AUDIO_SAMPLE_PED_NORMAL_MALE_FLEE_RUN_4 = 849, + AUDIO_SAMPLE_PED_NORMAL_MALE_FLEE_RUN_5 = 850, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_EVENT_1 = 851, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_EVENT_2 = 852, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_EVENT_3 = 853, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_EVENT_4 = 854, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_EVENT_5 = 855, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_EVENT_6 = 856, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_EVENT_7 = 857, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_EVENT_8 = 858, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_EVENT_9 = 859, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_EVENT_10 = 860, + AUDIO_SAMPLE_PED_BOMBER_THREAT_1 = 861, + AUDIO_SAMPLE_PED_BOMBER_THREAT_2 = 862, + AUDIO_SAMPLE_PED_BOMBER_THREAT_3 = 863, + AUDIO_SAMPLE_PED_BOMBER_THREAT_4 = 864, + AUDIO_SAMPLE_PED_BOMBER_THREAT_5 = 865, + AUDIO_SAMPLE_PED_BOMBER_THREAT_6 = 866, + AUDIO_SAMPLE_PED_BOMBER_THREAT_7 = 867, + AUDIO_SAMPLE_PED_EIGHT_EVADE_1 = 868, + AUDIO_SAMPLE_PED_EIGHT_EVADE_2 = 869, + AUDIO_SAMPLE_PED_EIGHT_EVADE_3 = 870, + AUDIO_SAMPLE_PED_EIGHT_EVADE_4 = 871, + AUDIO_SAMPLE_PED_EIGHT_EVADE_5 = 872, + AUDIO_SAMPLE_PED_EIGHT_EVADE_6 = 873, + AUDIO_SAMPLE_PED_EIGHT_EVADE_7 = 874, + AUDIO_SAMPLE_PED_EIGHT_ATTACK_1 = 875, + AUDIO_SAMPLE_PED_EIGHT_ATTACK_2 = 876, + AUDIO_SAMPLE_PED_EIGHT_ATTACK_3 = 877, + AUDIO_SAMPLE_PED_EIGHT_ATTACK_4 = 878, + AUDIO_SAMPLE_PED_EIGHT_ATTACK_5 = 879, + AUDIO_SAMPLE_PED_EIGHT_ATTACK_6 = 880, + AUDIO_SAMPLE_PED_EIGHT_HANDS_UP_1 = 881, + AUDIO_SAMPLE_PED_EIGHT_HANDS_UP_2 = 882, + AUDIO_SAMPLE_PED_EIGHT_ROBBED_1 = 883, + AUDIO_SAMPLE_PED_EIGHT_ROBBED_2 = 884, + AUDIO_SAMPLE_PED_FRANKIE_EVADE_1 = 885, + AUDIO_SAMPLE_PED_FRANKIE_EVADE_2 = 886, + AUDIO_SAMPLE_PED_FRANKIE_EVADE_3 = 887, + AUDIO_SAMPLE_PED_FRANKIE_ATTACK_1 = 888, + AUDIO_SAMPLE_PED_FRANKIE_ATTACK_2 = 889, + AUDIO_SAMPLE_PED_FRANKIE_ATTACK_3 = 890, + AUDIO_SAMPLE_PED_FRANKIE_ATTACK_4 = 891, + AUDIO_SAMPLE_PED_FRANKIE_ATTACK_5 = 892, + AUDIO_SAMPLE_PED_FRANKIE_ATTACK_6 = 893, + AUDIO_SAMPLE_PED_FRANKIE_HANDS_UP_1 = 894, + AUDIO_SAMPLE_PED_FRANKIE_HANDS_UP_2 = 895, + AUDIO_SAMPLE_PED_FRANKIE_HANDS_UP_3 = 896, + AUDIO_SAMPLE_PED_FRANKIE_HANDS_UP_4 = 897, + AUDIO_SAMPLE_PED_FRANKIE_ROBBED_1 = 898, + AUDIO_SAMPLE_PED_FRANKIE_ROBBED_2 = 899, + AUDIO_SAMPLE_PED_MISTY_EVADE_1 = 900, + AUDIO_SAMPLE_PED_MISTY_EVADE_2 = 901, + AUDIO_SAMPLE_PED_MISTY_EVADE_3 = 902, + AUDIO_SAMPLE_PED_MISTY_EVADE_4 = 903, + AUDIO_SAMPLE_PED_MISTY_EVADE_5 = 904, + AUDIO_SAMPLE_PED_MISTY_ATTACK_1 = 905, + AUDIO_SAMPLE_PED_MISTY_ATTACK_2 = 906, + AUDIO_SAMPLE_PED_MISTY_ATTACK_3 = 907, + AUDIO_SAMPLE_PED_MISTY_ATTACK_4 = 908, + AUDIO_SAMPLE_PED_MISTY_HANDS_UP_1 = 909, + AUDIO_SAMPLE_PED_MISTY_HANDS_UP_2 = 910, + AUDIO_SAMPLE_PED_MISTY_HANDS_UP_3 = 911, + AUDIO_SAMPLE_PED_MISTY_HANDS_UP_4 = 912, + AUDIO_SAMPLE_PED_MISTY_HANDS_UP_5 = 913, + AUDIO_SAMPLE_PED_MISTY_THUMB_LIFT_1 = 914, + AUDIO_SAMPLE_PED_MISTY_THUMB_LIFT_2 = 915, + AUDIO_SAMPLE_PED_MISTY_THUMB_LIFT_3 = 916, + AUDIO_SAMPLE_PED_MISTY_THUMB_LIFT_4 = 917, + AUDIO_SAMPLE_PED_MISTY_ROBBED_1 = 918, + AUDIO_SAMPLE_PED_MISTY_ROBBED_2 = 919, + AUDIO_SAMPLE_PED_MEDIC_1_HANDS_COWER_1 = 920, + AUDIO_SAMPLE_PED_MEDIC_1_HANDS_COWER_2 = 921, + AUDIO_SAMPLE_PED_MEDIC_1_HANDS_COWER_3 = 922, + AUDIO_SAMPLE_PED_MEDIC_1_HANDS_COWER_4 = 923, + AUDIO_SAMPLE_PED_MEDIC_1_HANDS_COWER_5 = 924, + AUDIO_SAMPLE_PED_MEDIC_1_CAR_JACKED_1 = 925, + AUDIO_SAMPLE_PED_MEDIC_1_CAR_JACKED_2 = 926, + AUDIO_SAMPLE_PED_MEDIC_1_CAR_JACKED_3 = 927, + AUDIO_SAMPLE_PED_MEDIC_1_CAR_JACKED_4 = 928, + AUDIO_SAMPLE_PED_MEDIC_1_CAR_JACKED_5 = 929, + AUDIO_SAMPLE_PED_MEDIC_1_FLEE_RUN_1 = 930, + AUDIO_SAMPLE_PED_MEDIC_1_FLEE_RUN_2 = 931, + AUDIO_SAMPLE_PED_MEDIC_1_FLEE_RUN_3 = 932, + AUDIO_SAMPLE_PED_MEDIC_1_FLEE_RUN_4 = 933, + AUDIO_SAMPLE_PED_MEDIC_1_FLEE_RUN_5 = 934, + AUDIO_SAMPLE_PED_MEDIC_1_FLEE_RUN_6 = 935, + AUDIO_SAMPLE_PED_MEDIC_1_LEAVE_VEHICLE_1 = 936, + AUDIO_SAMPLE_PED_MEDIC_1_LEAVE_VEHICLE_2 = 937, + AUDIO_SAMPLE_PED_MEDIC_1_LEAVE_VEHICLE_3 = 938, + AUDIO_SAMPLE_PED_MEDIC_1_LEAVE_VEHICLE_4 = 939, + AUDIO_SAMPLE_PED_MEDIC_1_LEAVE_VEHICLE_5 = 940, + AUDIO_SAMPLE_PED_MEDIC_1_LEAVE_VEHICLE_6 = 941, + AUDIO_SAMPLE_PED_MEDIC_1_LEAVE_VEHICLE_7 = 942, + AUDIO_SAMPLE_PED_MEDIC_1_LEAVE_VEHICLE_8 = 943, + AUDIO_SAMPLE_PED_MEDIC_1_LEAVE_VEHICLE_9 = 944, + AUDIO_SAMPLE_PED_MEDIC_1_HEALING_1 = 945, + AUDIO_SAMPLE_PED_MEDIC_1_HEALING_2 = 946, + AUDIO_SAMPLE_PED_MEDIC_1_HEALING_3 = 947, + AUDIO_SAMPLE_PED_MEDIC_1_HEALING_4 = 948, + AUDIO_SAMPLE_PED_MEDIC_1_HEALING_5 = 949, + AUDIO_SAMPLE_PED_MEDIC_1_HEALING_6 = 950, + AUDIO_SAMPLE_PED_MEDIC_1_HEALING_7 = 951, + AUDIO_SAMPLE_PED_MEDIC_1_HEALING_8 = 952, + AUDIO_SAMPLE_PED_MEDIC_1_HEALING_9 = 953, + AUDIO_SAMPLE_PED_MEDIC_1_HEALING_10 = 954, + AUDIO_SAMPLE_PED_MEDIC_1_HEALING_11 = 955, + AUDIO_SAMPLE_PED_MEDIC_1_HEALING_12 = 956, + AUDIO_SAMPLE_PED_MEDIC_2_HANDS_COWER_1 = 957, + AUDIO_SAMPLE_PED_MEDIC_2_HANDS_COWER_2 = 958, + AUDIO_SAMPLE_PED_MEDIC_2_HANDS_COWER_3 = 959, + AUDIO_SAMPLE_PED_MEDIC_2_HANDS_COWER_4 = 960, + AUDIO_SAMPLE_PED_MEDIC_2_HANDS_COWER_5 = 961, + AUDIO_SAMPLE_PED_MEDIC_2_CAR_JACKED_1 = 962, + AUDIO_SAMPLE_PED_MEDIC_2_CAR_JACKED_2 = 963, + AUDIO_SAMPLE_PED_MEDIC_2_CAR_JACKED_3 = 964, + AUDIO_SAMPLE_PED_MEDIC_2_CAR_JACKED_4 = 965, + AUDIO_SAMPLE_PED_MEDIC_2_CAR_JACKED_5 = 966, + AUDIO_SAMPLE_PED_MEDIC_2_FLEE_RUN_1 = 967, + AUDIO_SAMPLE_PED_MEDIC_2_FLEE_RUN_2 = 968, + AUDIO_SAMPLE_PED_MEDIC_2_FLEE_RUN_3 = 969, + AUDIO_SAMPLE_PED_MEDIC_2_FLEE_RUN_4 = 970, + AUDIO_SAMPLE_PED_MEDIC_2_FLEE_RUN_5 = 971, + AUDIO_SAMPLE_PED_MEDIC_2_FLEE_RUN_6 = 972, + AUDIO_SAMPLE_PED_MEDIC_2_LEAVE_VEHICLE_1 = 973, + AUDIO_SAMPLE_PED_MEDIC_2_LEAVE_VEHICLE_2 = 974, + AUDIO_SAMPLE_PED_MEDIC_2_LEAVE_VEHICLE_3 = 975, + AUDIO_SAMPLE_PED_MEDIC_2_LEAVE_VEHICLE_4 = 976, + AUDIO_SAMPLE_PED_MEDIC_2_LEAVE_VEHICLE_5 = 977, + AUDIO_SAMPLE_PED_MEDIC_2_LEAVE_VEHICLE_6 = 978, + AUDIO_SAMPLE_PED_MEDIC_2_LEAVE_VEHICLE_7 = 979, + AUDIO_SAMPLE_PED_MEDIC_2_LEAVE_VEHICLE_8 = 980, + AUDIO_SAMPLE_PED_MEDIC_2_LEAVE_VEHICLE_9 = 981, + AUDIO_SAMPLE_PED_MEDIC_2_HEALING_1 = 982, + AUDIO_SAMPLE_PED_MEDIC_2_HEALING_2 = 983, + AUDIO_SAMPLE_PED_MEDIC_2_HEALING_3 = 984, + AUDIO_SAMPLE_PED_MEDIC_2_HEALING_4 = 985, + AUDIO_SAMPLE_PED_MEDIC_2_HEALING_5 = 986, + AUDIO_SAMPLE_PED_MEDIC_2_HEALING_6 = 987, + AUDIO_SAMPLE_PED_MEDIC_2_HEALING_7 = 988, + AUDIO_SAMPLE_PED_MEDIC_2_HEALING_8 = 989, + AUDIO_SAMPLE_PED_MEDIC_2_HEALING_9 = 990, + AUDIO_SAMPLE_PED_MEDIC_2_HEALING_10 = 991, + AUDIO_SAMPLE_PED_MEDIC_2_HEALING_11 = 992, + AUDIO_SAMPLE_PED_MEDIC_2_HEALING_12 = 993, + AUDIO_SAMPLE_PED_BODYCAST_HIT_1 = 994, + AUDIO_SAMPLE_PED_BODYCAST_HIT_2 = 995, + AUDIO_SAMPLE_PED_BODYCAST_HIT_3 = 996, + AUDIO_SAMPLE_PED_BODYCAST_HIT_4 = 997, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CAR_COLLISION_1 = 998, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CAR_COLLISION_2 = 999, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CAR_COLLISION_3 = 1000, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CAR_COLLISION_4 = 1001, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CAR_COLLISION_5 = 1002, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CHAT_1 = 1003, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CHAT_2 = 1004, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CHAT_3 = 1005, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CHAT_4 = 1006, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_EVADE_1 = 1007, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_EVADE_2 = 1008, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_EVADE_3 = 1009, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_EVADE_4 = 1010, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_EVADE_5 = 1011, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CHAT_SEXY_1 = 1012, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CHAT_SEXY_2 = 1013, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CHAT_SEXY_3 = 1014, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CHAT_SEXY_4 = 1015, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_ATTACK_1 = 1016, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_ATTACK_2 = 1017, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_ATTACK_3 = 1018, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_ATTACK_4 = 1019, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_ATTACK_5 = 1020, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_HANDS_COWER_1 = 1021, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_HANDS_COWER_2 = 1022, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_HANDS_COWER_3 = 1023, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CAR_JACKED_1 = 1024, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CAR_JACKED_2 = 1025, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_CAR_COLLISION_1 = 1026, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_CAR_COLLISION_2 = 1027, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_CAR_COLLISION_3 = 1028, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_CAR_COLLISION_4 = 1029, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_CAR_COLLISION_5 = 1030, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_CHAT_1 = 1031, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_CHAT_2 = 1032, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_CHAT_3 = 1033, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_CHAT_4 = 1034, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_CHAT_5 = 1035, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_CHAT_6 = 1036, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_EVADE_1 = 1037, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_EVADE_2 = 1038, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_EVADE_3 = 1039, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_EVADE_4 = 1040, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_ROBBED_1 = 1041, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_CHAT_EVENT_1 = 1042, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_CHAT_EVENT_2 = 1043, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_CAR_COLLISION_1 = 1044, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_CAR_COLLISION_2 = 1045, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_CAR_COLLISION_3 = 1046, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_CAR_COLLISION_4 = 1047, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_CAR_COLLISION_5 = 1048, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_CHAT_1 = 1049, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_CHAT_2 = 1050, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_CHAT_3 = 1051, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_CHAT_4 = 1052, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_CHAT_5 = 1053, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_CHAT_6 = 1054, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_EVADE_1 = 1055, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_EVADE_2 = 1056, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_EVADE_3 = 1057, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_EVADE_4 = 1058, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_ROBBED_1 = 1059, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_CHAT_EVENT_1 = 1060, + AUDIO_SAMPLE_PED_FAN_FEMALE_2_CHAT_EVENT_2 = 1061, + AUDIO_SAMPLE_PED_FAN_MALE_1_CAR_COLLISION_1 = 1062, + AUDIO_SAMPLE_PED_FAN_MALE_1_CAR_COLLISION_2 = 1063, + AUDIO_SAMPLE_PED_FAN_MALE_1_CAR_COLLISION_3 = 1064, + AUDIO_SAMPLE_PED_FAN_MALE_1_CAR_COLLISION_4 = 1065, + AUDIO_SAMPLE_PED_FAN_MALE_1_CAR_COLLISION_5 = 1066, + AUDIO_SAMPLE_PED_FAN_MALE_1_CHAT_1 = 1067, + AUDIO_SAMPLE_PED_FAN_MALE_1_CHAT_2 = 1068, + AUDIO_SAMPLE_PED_FAN_MALE_1_CHAT_3 = 1069, + AUDIO_SAMPLE_PED_FAN_MALE_1_CHAT_4 = 1070, + AUDIO_SAMPLE_PED_FAN_MALE_1_CHAT_5 = 1071, + AUDIO_SAMPLE_PED_FAN_MALE_1_CHAT_6 = 1072, + AUDIO_SAMPLE_PED_FAN_MALE_1_EVADE_1 = 1073, + AUDIO_SAMPLE_PED_FAN_MALE_1_EVADE_2 = 1074, + AUDIO_SAMPLE_PED_FAN_MALE_1_EVADE_3 = 1075, + AUDIO_SAMPLE_PED_FAN_MALE_1_EVADE_4 = 1076, + AUDIO_SAMPLE_PED_FAN_MALE_1_ATTACK_1 = 1077, + AUDIO_SAMPLE_PED_FAN_MALE_1_ATTACK_2 = 1078, + AUDIO_SAMPLE_PED_FAN_MALE_1_ATTACK_3 = 1079, + AUDIO_SAMPLE_PED_FAN_MALE_1_CHAT_EVENT_1 = 1080, + AUDIO_SAMPLE_PED_FAN_MALE_1_CHAT_EVENT_2 = 1081, + AUDIO_SAMPLE_PED_FAN_MALE_2_CAR_COLLISION_1 = 1082, + AUDIO_SAMPLE_PED_FAN_MALE_2_CAR_COLLISION_2 = 1083, + AUDIO_SAMPLE_PED_FAN_MALE_2_CAR_COLLISION_3 = 1084, + AUDIO_SAMPLE_PED_FAN_MALE_2_CAR_COLLISION_4 = 1085, + AUDIO_SAMPLE_PED_FAN_MALE_2_CAR_COLLISION_5 = 1086, + AUDIO_SAMPLE_PED_FAN_MALE_2_CHAT_1 = 1087, + AUDIO_SAMPLE_PED_FAN_MALE_2_CHAT_2 = 1088, + AUDIO_SAMPLE_PED_FAN_MALE_2_CHAT_3 = 1089, + AUDIO_SAMPLE_PED_FAN_MALE_2_CHAT_4 = 1090, + AUDIO_SAMPLE_PED_FAN_MALE_2_CHAT_5 = 1091, + AUDIO_SAMPLE_PED_FAN_MALE_2_CHAT_6 = 1092, + AUDIO_SAMPLE_PED_FAN_MALE_2_EVADE_1 = 1093, + AUDIO_SAMPLE_PED_FAN_MALE_2_EVADE_2 = 1094, + AUDIO_SAMPLE_PED_FAN_MALE_2_EVADE_3 = 1095, + AUDIO_SAMPLE_PED_FAN_MALE_2_EVADE_4 = 1096, + AUDIO_SAMPLE_PED_FAN_MALE_2_ATTACK_1 = 1097, + AUDIO_SAMPLE_PED_FAN_MALE_2_ATTACK_2 = 1098, + AUDIO_SAMPLE_PED_FAN_MALE_2_ATTACK_3 = 1099, + AUDIO_SAMPLE_PED_FAN_MALE_2_CHAT_EVENT_1 = 1100, + AUDIO_SAMPLE_PED_FAN_MALE_2_CHAT_EVENT_2 = 1101, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CAR_COLLISION_1 = 1102, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CAR_COLLISION_2 = 1103, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CAR_COLLISION_3 = 1104, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CAR_COLLISION_4 = 1105, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CAR_COLLISION_5 = 1106, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CAR_COLLISION_6 = 1107, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CAR_COLLISION_7 = 1108, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CHAT_1 = 1109, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CHAT_2 = 1110, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CHAT_3 = 1111, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CHAT_4 = 1112, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CHAT_5 = 1113, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CHAT_6 = 1114, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CHAT_7 = 1115, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CHAT_8 = 1116, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_EVADE_1 = 1117, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_EVADE_2 = 1118, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_EVADE_3 = 1119, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_EVADE_4 = 1120, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_HANDS_COWER_1 = 1121, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_HANDS_COWER_2 = 1122, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_HANDS_COWER_3 = 1123, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_HANDS_COWER_4 = 1124, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_ROBBED_1 = 1125, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_ROBBED_2 = 1126, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_ROBBED_3 = 1127, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CHAT_EVENT_1 = 1128, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CHAT_EVENT_2 = 1129, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CHAT_EVENT_3 = 1130, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CHAT_EVENT_4 = 1131, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CHAT_EVENT_5 = 1132, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CAR_COLLISION_1 = 1133, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CAR_COLLISION_2 = 1134, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CAR_COLLISION_3 = 1135, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CAR_COLLISION_4 = 1136, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CAR_COLLISION_5 = 1137, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CAR_COLLISION_6 = 1138, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CHAT_1 = 1139, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CHAT_2 = 1140, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CHAT_3 = 1141, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CHAT_4 = 1142, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CHAT_5 = 1143, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CHAT_6 = 1144, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_EVADE_1 = 1145, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_EVADE_2 = 1146, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_EVADE_3 = 1147, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_EVADE_4 = 1148, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_EVADE_5 = 1149, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_EVADE_6 = 1150, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CHAT_SEXY_1 = 1151, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CHAT_SEXY_2 = 1152, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CHAT_SEXY_3 = 1153, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_ATTACK_1 = 1154, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_ATTACK_2 = 1155, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_ATTACK_3 = 1156, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_ATTACK_4 = 1157, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_ATTACK_5 = 1158, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CAR_JACKED_1 = 1159, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CAR_JACKED_2 = 1160, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_ROBBED_1 = 1161, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_ROBBED_2 = 1162, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CAR_COLLISION_1 = 1163, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CAR_COLLISION_2 = 1164, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CAR_COLLISION_3 = 1165, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CAR_COLLISION_4 = 1166, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CAR_COLLISION_5 = 1167, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CAR_COLLISION_6 = 1168, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CHAT_1 = 1169, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CHAT_2 = 1170, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CHAT_3 = 1171, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CHAT_4 = 1172, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CHAT_5 = 1173, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CHAT_6 = 1174, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_EVADE_1 = 1175, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_EVADE_2 = 1176, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_EVADE_3 = 1177, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_EVADE_4 = 1178, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_EVADE_5 = 1179, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CHAT_SEXY_1 = 1180, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CHAT_SEXY_2 = 1181, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CHAT_SEXY_3 = 1182, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_ATTACK_1 = 1183, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_ATTACK_2 = 1184, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_ATTACK_3 = 1185, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_ATTACK_4 = 1186, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_ATTACK_5 = 1187, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_ATTACK_6 = 1188, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_HANDS_COWER_1 = 1189, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_HANDS_COWER_2 = 1190, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CAR_JACKED_1 = 1191, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CAR_JACKED_2 = 1192, + AUDIO_SAMPLE_PED_SCUM_MALE_CAR_COLLISION_1 = 1193, + AUDIO_SAMPLE_PED_SCUM_MALE_CAR_COLLISION_2 = 1194, + AUDIO_SAMPLE_PED_SCUM_MALE_CAR_COLLISION_3 = 1195, + AUDIO_SAMPLE_PED_SCUM_MALE_CAR_COLLISION_4 = 1196, + AUDIO_SAMPLE_PED_SCUM_MALE_CAR_COLLISION_5 = 1197, + AUDIO_SAMPLE_PED_SCUM_MALE_CAR_COLLISION_6 = 1198, + AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_1 = 1199, + AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_2 = 1200, + AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_3 = 1201, + AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_4 = 1202, + AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_5 = 1203, + AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_6 = 1204, + AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_7 = 1205, + AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_8 = 1206, + AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_9 = 1207, + AUDIO_SAMPLE_PED_SCUM_MALE_EVADE_1 = 1208, + AUDIO_SAMPLE_PED_SCUM_MALE_EVADE_2 = 1209, + AUDIO_SAMPLE_PED_SCUM_MALE_EVADE_3 = 1210, + AUDIO_SAMPLE_PED_SCUM_MALE_EVADE_4 = 1211, + AUDIO_SAMPLE_PED_SCUM_MALE_EVADE_5 = 1212, + AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_SEXY_1 = 1213, + AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_SEXY_2 = 1214, + AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_SEXY_3 = 1215, + AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_SEXY_4 = 1216, + AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_SEXY_5 = 1217, + AUDIO_SAMPLE_PED_SCUM_MALE_ATTACK_1 = 1218, + AUDIO_SAMPLE_PED_SCUM_MALE_ATTACK_2 = 1219, + AUDIO_SAMPLE_PED_SCUM_MALE_ATTACK_3 = 1220, + AUDIO_SAMPLE_PED_SCUM_MALE_ATTACK_4 = 1221, + AUDIO_SAMPLE_PED_SCUM_MALE_ATTACK_5 = 1222, + AUDIO_SAMPLE_PED_SCUM_MALE_ATTACK_6 = 1223, + AUDIO_SAMPLE_PED_SCUM_MALE_ATTACK_7 = 1224, + AUDIO_SAMPLE_PED_SCUM_MALE_ATTACK_8 = 1225, + AUDIO_SAMPLE_PED_SCUM_MALE_ATTACK_9 = 1226, + AUDIO_SAMPLE_PED_SCUM_MALE_ATTACK_10 = 1227, + AUDIO_SAMPLE_PED_SCUM_MALE_HANDS_COWER_1 = 1228, + AUDIO_SAMPLE_PED_SCUM_MALE_HANDS_COWER_2 = 1229, + AUDIO_SAMPLE_PED_SCUM_MALE_HANDS_COWER_3 = 1230, + AUDIO_SAMPLE_PED_SCUM_MALE_HANDS_COWER_4 = 1231, + AUDIO_SAMPLE_PED_SCUM_MALE_HANDS_COWER_5 = 1232, + AUDIO_SAMPLE_PED_SCUM_MALE_WAIT_DOUBLEBACK_1 = 1233, + AUDIO_SAMPLE_PED_SCUM_MALE_WAIT_DOUBLEBACK_2 = 1234, + AUDIO_SAMPLE_PED_SCUM_MALE_WAIT_DOUBLEBACK_3 = 1235, + AUDIO_SAMPLE_PED_SCUM_MALE_ROBBED_1 = 1236, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CAR_COLLISION_1 = 1237, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CAR_COLLISION_2 = 1238, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CAR_COLLISION_3 = 1239, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CAR_COLLISION_4 = 1240, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CAR_COLLISION_5 = 1241, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CHAT_1 = 1242, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CHAT_2 = 1243, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CHAT_3 = 1244, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CHAT_4 = 1245, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CHAT_5 = 1246, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CHAT_6 = 1247, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CHAT_7 = 1248, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CHAT_8 = 1249, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CHAT_9 = 1250, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CHAT_10 = 1251, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CHAT_11 = 1252, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CHAT_12 = 1253, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CHAT_13 = 1254, + AUDIO_SAMPLE_PED_SCUM_FEMALE_EVADE_1 = 1255, + AUDIO_SAMPLE_PED_SCUM_FEMALE_EVADE_2 = 1256, + AUDIO_SAMPLE_PED_SCUM_FEMALE_EVADE_3 = 1257, + AUDIO_SAMPLE_PED_SCUM_FEMALE_EVADE_4 = 1258, + AUDIO_SAMPLE_PED_SCUM_FEMALE_EVADE_5 = 1259, + AUDIO_SAMPLE_PED_SCUM_FEMALE_EVADE_6 = 1260, + AUDIO_SAMPLE_PED_SCUM_FEMALE_EVADE_7 = 1261, + AUDIO_SAMPLE_PED_SCUM_FEMALE_EVADE_8 = 1262, + AUDIO_SAMPLE_PED_SCUM_FEMALE_ATTACK_1 = 1263, + AUDIO_SAMPLE_PED_SCUM_FEMALE_ATTACK_2 = 1264, + AUDIO_SAMPLE_PED_SCUM_FEMALE_ATTACK_3 = 1265, + AUDIO_SAMPLE_PED_SCUM_FEMALE_ATTACK_4 = 1266, + AUDIO_SAMPLE_PED_SCUM_FEMALE_HANDS_COWER_1 = 1267, + AUDIO_SAMPLE_PED_SCUM_FEMALE_HANDS_COWER_2 = 1268, + AUDIO_SAMPLE_PED_SCUM_FEMALE_HANDS_COWER_3 = 1269, + AUDIO_SAMPLE_PED_SCUM_FEMALE_HANDS_COWER_4 = 1270, + AUDIO_SAMPLE_PED_SCUM_FEMALE_ROBBED_1 = 1271, + AUDIO_SAMPLE_PED_SCUM_FEMALE_ROBBED_2 = 1272, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CAR_COLLISION_1 = 1273, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CAR_COLLISION_2 = 1274, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CAR_COLLISION_3 = 1275, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CAR_COLLISION_4 = 1276, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CAR_COLLISION_5 = 1277, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CAR_COLLISION_6 = 1278, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CHAT_1 = 1279, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CHAT_2 = 1280, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CHAT_3 = 1281, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CHAT_4 = 1282, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CHAT_5 = 1283, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CHAT_6 = 1284, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CHAT_7 = 1285, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_EVADE_1 = 1286, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_EVADE_2 = 1287, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_EVADE_3 = 1288, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_EVADE_4 = 1289, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_EVADE_5 = 1290, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_HANDS_COWER_1 = 1291, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_HANDS_COWER_2 = 1292, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_HANDS_COWER_3 = 1293, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_HANDS_COWER_4 = 1294, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CAR_JACKED_1 = 1295, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_ROBBED_1 = 1296, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_ROBBED_2 = 1297, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CHAT_EVENT_1 = 1298, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CHAT_EVENT_2 = 1299, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CHAT_EVENT_3 = 1300, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CHAT_EVENT_4 = 1301, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CHAT_EVENT_5 = 1302, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CAR_COLLISION_1 = 1303, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CAR_COLLISION_2 = 1304, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CAR_COLLISION_3 = 1305, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CAR_COLLISION_4 = 1306, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CAR_COLLISION_5 = 1307, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CAR_COLLISION_6 = 1308, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CHAT_1 = 1309, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CHAT_2 = 1310, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CHAT_3 = 1311, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CHAT_4 = 1312, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CHAT_5 = 1313, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CHAT_6 = 1314, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_EVADE_1 = 1315, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_EVADE_2 = 1316, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_EVADE_3 = 1317, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_EVADE_4 = 1318, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_ATTACK_1 = 1319, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_ATTACK_2 = 1320, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_ATTACK_3 = 1321, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_ATTACK_4 = 1322, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_HANDS_COWER_1 = 1323, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_HANDS_COWER_2 = 1324, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_HANDS_COWER_3 = 1325, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CAR_JACKED_1 = 1326, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CAR_JACKED_2 = 1327, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_ROBBED_1 = 1328, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_ROBBED_2 = 1329, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_FLEE_RUN_1 = 1330, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_FLEE_RUN_2 = 1331, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_FLEE_RUN_3 = 1332, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_FLEE_RUN_4 = 1333, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_FLEE_RUN_5 = 1334, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_CAR_COLLISION_1 = 1335, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_CAR_COLLISION_2 = 1336, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_CAR_COLLISION_3 = 1337, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_CAR_COLLISION_4 = 1338, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_CAR_COLLISION_5 = 1339, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_CAR_COLLISION_6 = 1340, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_CHAT_1 = 1341, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_CHAT_2 = 1342, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_CHAT_3 = 1343, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_CHAT_4 = 1344, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_CHAT_5 = 1345, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_CHAT_6 = 1346, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_EVADE_1 = 1347, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_EVADE_2 = 1348, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_EVADE_3 = 1349, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_EVADE_4 = 1350, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_ATTACK_1 = 1351, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_ATTACK_2 = 1352, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_ATTACK_3 = 1353, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_ATTACK_4 = 1354, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_HANDS_COWER_1 = 1355, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_HANDS_COWER_2 = 1356, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_HANDS_COWER_3 = 1357, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_CAR_JACKED_1 = 1358, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_CAR_JACKED_2 = 1359, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_ROBBED_1 = 1360, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_ROBBED_2 = 1361, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_FLEE_RUN_1 = 1362, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_FLEE_RUN_2 = 1363, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_FLEE_RUN_3 = 1364, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_FLEE_RUN_4 = 1365, + AUDIO_SAMPLE_PED_LAZLOW_UNUSED_FLEE_RUN_5 = 1366, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CAR_COLLISION_1 = 1367, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CAR_COLLISION_2 = 1368, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CAR_COLLISION_3 = 1369, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CAR_COLLISION_4 = 1370, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CAR_COLLISION_5 = 1371, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CAR_COLLISION_6 = 1372, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CHAT_1 = 1373, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CHAT_2 = 1374, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CHAT_3 = 1375, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CHAT_4 = 1376, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CHAT_5 = 1377, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CHAT_6 = 1378, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CHAT_7 = 1379, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_EVADE_1 = 1380, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_EVADE_2 = 1381, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_EVADE_3 = 1382, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_EVADE_4 = 1383, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_EVADE_5 = 1384, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_HANDS_COWER_1 = 1385, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_HANDS_COWER_2 = 1386, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_HANDS_COWER_3 = 1387, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_HANDS_COWER_4 = 1388, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CAR_JACKED_1 = 1389, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CAR_JACKED_2 = 1390, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_ROBBED_1 = 1391, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_ROBBED_2 = 1392, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CHAT_EVENT_1 = 1393, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CHAT_EVENT_2 = 1394, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CHAT_EVENT_3 = 1395, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CHAT_EVENT_4 = 1396, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CHAT_EVENT_5 = 1397, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_CAR_COLLISION_1 = 1398, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_CAR_COLLISION_2 = 1399, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_CAR_COLLISION_3 = 1400, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_CAR_COLLISION_4 = 1401, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_CHAT_1 = 1402, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_CHAT_2 = 1403, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_CHAT_3 = 1404, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_CHAT_4 = 1405, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_CHAT_5 = 1406, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_EVADE_1 = 1407, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_EVADE_2 = 1408, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_EVADE_3 = 1409, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_EVADE_4 = 1410, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_CHAT_SEXY_1 = 1411, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_CHAT_SEXY_2 = 1412, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_CHAT_SEXY_3 = 1413, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_ATTACK_1 = 1414, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_ATTACK_2 = 1415, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_ATTACK_3 = 1416, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_HANDS_COWER_1 = 1417, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_HANDS_COWER_2 = 1418, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_CAR_COLLISION_1 = 1419, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_CAR_COLLISION_2 = 1420, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_CAR_COLLISION_3 = 1421, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_CAR_COLLISION_4 = 1422, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_CAR_COLLISION_5 = 1423, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_CHAT_1 = 1424, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_CHAT_2 = 1425, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_CHAT_3 = 1426, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_CHAT_4 = 1427, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_CHAT_5 = 1428, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_EVADE_1 = 1429, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_EVADE_2 = 1430, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_EVADE_3 = 1431, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_EVADE_4 = 1432, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_ATTACK_1 = 1433, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_ATTACK_2 = 1434, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_ATTACK_3 = 1435, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_ATTACK_4 = 1436, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_HANDS_COWER_1 = 1437, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_HANDS_COWER_2 = 1438, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_HANDS_COWER_3 = 1439, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_HANDS_COWER_4 = 1440, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_CAR_COLLISION_1 = 1441, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_CAR_COLLISION_2 = 1442, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_CAR_COLLISION_3 = 1443, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_CAR_COLLISION_4 = 1444, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_CAR_COLLISION_5 = 1445, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_CAR_COLLISION_6 = 1446, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_CHAT_1 = 1447, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_CHAT_2 = 1448, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_CHAT_3 = 1449, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_CHAT_4 = 1450, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_CHAT_5 = 1451, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_CHAT_6 = 1452, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_EVADE_1 = 1453, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_EVADE_2 = 1454, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_EVADE_3 = 1455, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_EVADE_4 = 1456, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_EVADE_5 = 1457, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CAR_COLLISION_1 = 1458, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CAR_COLLISION_2 = 1459, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CAR_COLLISION_3 = 1460, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CAR_COLLISION_4 = 1461, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CAR_COLLISION_5 = 1462, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CAR_COLLISION_6 = 1463, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CAR_COLLISION_7 = 1464, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CHAT_1 = 1465, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CHAT_2 = 1466, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CHAT_3 = 1467, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CHAT_4 = 1468, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CHAT_5 = 1469, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CHAT_6 = 1470, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CHAT_7 = 1471, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CHAT_8 = 1472, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_EVADE_1 = 1473, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_EVADE_2 = 1474, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_EVADE_3 = 1475, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_EVADE_4 = 1476, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_EVADE_5 = 1477, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_EVADE_6 = 1478, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_HANDS_COWER_1 = 1479, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_HANDS_COWER_2 = 1480, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CAR_JACKED_1 = 1481, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CAR_JACKED_2 = 1482, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_ROBBED_1 = 1483, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_ROBBED_2 = 1484, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_ROBBED_3 = 1485, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_FLEE_RUN_1 = 1486, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_FLEE_RUN_2 = 1487, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CHAT_EVENT_1 = 1488, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CHAT_EVENT_2 = 1489, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CHAT_EVENT_3 = 1490, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CHAT_EVENT_4 = 1491, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CAR_COLLISION_1 = 1492, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CAR_COLLISION_2 = 1493, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CAR_COLLISION_3 = 1494, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CAR_COLLISION_4 = 1495, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CAR_COLLISION_5 = 1496, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CAR_COLLISION_6 = 1497, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CHAT_1 = 1498, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CHAT_2 = 1499, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CHAT_3 = 1500, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CHAT_4 = 1501, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CHAT_5 = 1502, + AUDIO_SAMPLE_PED_FEMALE_NO_3_EVADE_1 = 1503, + AUDIO_SAMPLE_PED_FEMALE_NO_3_EVADE_2 = 1504, + AUDIO_SAMPLE_PED_FEMALE_NO_3_EVADE_3 = 1505, + AUDIO_SAMPLE_PED_FEMALE_NO_3_EVADE_4 = 1506, + AUDIO_SAMPLE_PED_FEMALE_NO_3_EVADE_5 = 1507, + AUDIO_SAMPLE_PED_FEMALE_NO_3_EVADE_6 = 1508, + AUDIO_SAMPLE_PED_FEMALE_NO_3_HANDS_COWER_1 = 1509, + AUDIO_SAMPLE_PED_FEMALE_NO_3_HANDS_COWER_2 = 1510, + AUDIO_SAMPLE_PED_FEMALE_NO_3_HANDS_COWER_3 = 1511, + AUDIO_SAMPLE_PED_FEMALE_NO_3_HANDS_COWER_4 = 1512, + AUDIO_SAMPLE_PED_FEMALE_NO_3_HANDS_COWER_5 = 1513, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CAR_JACKED_1 = 1514, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CAR_JACKED_2 = 1515, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CAR_JACKED_3 = 1516, + AUDIO_SAMPLE_PED_FEMALE_NO_3_ROBBED_1 = 1517, + AUDIO_SAMPLE_PED_FEMALE_NO_3_ROBBED_2 = 1518, + AUDIO_SAMPLE_PED_FEMALE_NO_3_ROBBED_3 = 1519, + AUDIO_SAMPLE_PED_FEMALE_NO_3_FLEE_RUN_1 = 1520, + AUDIO_SAMPLE_PED_FEMALE_NO_3_FLEE_RUN_2 = 1521, + AUDIO_SAMPLE_PED_FEMALE_NO_3_FLEE_RUN_3 = 1522, + AUDIO_SAMPLE_PED_FEMALE_NO_3_FLEE_RUN_4 = 1523, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CHAT_EVENT_1 = 1524, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CHAT_EVENT_2 = 1525, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CHAT_EVENT_3 = 1526, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CHAT_EVENT_4 = 1527, + AUDIO_SAMPLE_PED_MALE_NO_2_CAR_COLLISION_1 = 1528, + AUDIO_SAMPLE_PED_MALE_NO_2_CAR_COLLISION_2 = 1529, + AUDIO_SAMPLE_PED_MALE_NO_2_CAR_COLLISION_3 = 1530, + AUDIO_SAMPLE_PED_MALE_NO_2_CAR_COLLISION_4 = 1531, + AUDIO_SAMPLE_PED_MALE_NO_2_CAR_COLLISION_5 = 1532, + AUDIO_SAMPLE_PED_MALE_NO_2_CAR_COLLISION_6 = 1533, + AUDIO_SAMPLE_PED_MALE_NO_2_CAR_COLLISION_7 = 1534, + AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_1 = 1535, + AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_2 = 1536, + AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_3 = 1537, + AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_4 = 1538, + AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_5 = 1539, + AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_6 = 1540, + AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_7 = 1541, + AUDIO_SAMPLE_PED_MALE_NO_2_EVADE_1 = 1542, + AUDIO_SAMPLE_PED_MALE_NO_2_EVADE_2 = 1543, + AUDIO_SAMPLE_PED_MALE_NO_2_EVADE_3 = 1544, + AUDIO_SAMPLE_PED_MALE_NO_2_EVADE_4 = 1545, + AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_SEXY_1 = 1546, + AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_SEXY_2 = 1547, + AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_SEXY_3 = 1548, + AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_SEXY_4 = 1549, + AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_SEXY_5 = 1550, + AUDIO_SAMPLE_PED_MALE_NO_2_ATTACK_1 = 1551, + AUDIO_SAMPLE_PED_MALE_NO_2_ATTACK_2 = 1552, + AUDIO_SAMPLE_PED_MALE_NO_2_ATTACK_3 = 1553, + AUDIO_SAMPLE_PED_MALE_NO_2_ATTACK_4 = 1554, + AUDIO_SAMPLE_PED_MALE_NO_2_CAR_JACKED_1 = 1555, + AUDIO_SAMPLE_PED_MALE_NO_2_CAR_JACKED_2 = 1556, + AUDIO_SAMPLE_PED_MALE_NO_2_CAR_JACKED_3 = 1557, + AUDIO_SAMPLE_PED_MALE_NO_2_ROBBED_1 = 1558, + AUDIO_SAMPLE_PED_MALE_NO_2_ROBBED_2 = 1559, + AUDIO_SAMPLE_PED_MALE_NO_2_ROBBED_3 = 1560, + AUDIO_SAMPLE_PED_MALE_NO_2_ROBBED_4 = 1561, + AUDIO_SAMPLE_PED_STUDENT_MALE_CAR_COLLISION_1 = 1562, + AUDIO_SAMPLE_PED_STUDENT_MALE_CAR_COLLISION_2 = 1563, + AUDIO_SAMPLE_PED_STUDENT_MALE_CAR_COLLISION_3 = 1564, + AUDIO_SAMPLE_PED_STUDENT_MALE_CAR_COLLISION_4 = 1565, + AUDIO_SAMPLE_PED_STUDENT_MALE_CHAT_1 = 1566, + AUDIO_SAMPLE_PED_STUDENT_MALE_CHAT_2 = 1567, + AUDIO_SAMPLE_PED_STUDENT_MALE_CHAT_3 = 1568, + AUDIO_SAMPLE_PED_STUDENT_MALE_CHAT_4 = 1569, + AUDIO_SAMPLE_PED_STUDENT_MALE_CHAT_5 = 1570, + AUDIO_SAMPLE_PED_STUDENT_MALE_EVADE_1 = 1571, + AUDIO_SAMPLE_PED_STUDENT_MALE_EVADE_2 = 1572, + AUDIO_SAMPLE_PED_STUDENT_MALE_EVADE_3 = 1573, + AUDIO_SAMPLE_PED_STUDENT_MALE_EVADE_4 = 1574, + AUDIO_SAMPLE_PED_STUDENT_MALE_ATTACK_1 = 1575, + AUDIO_SAMPLE_PED_STUDENT_MALE_ATTACK_2 = 1576, + AUDIO_SAMPLE_PED_STUDENT_MALE_ATTACK_3 = 1577, + AUDIO_SAMPLE_PED_STUDENT_MALE_ATTACK_4 = 1578, + AUDIO_SAMPLE_PED_STUDENT_MALE_HANDS_COWER_1 = 1579, + AUDIO_SAMPLE_PED_STUDENT_MALE_HANDS_COWER_2 = 1580, + AUDIO_SAMPLE_PED_STUDENT_MALE_ROBBED_1 = 1581, + AUDIO_SAMPLE_PED_STUDENT_MALE_ROBBED_2 = 1582, + AUDIO_SAMPLE_PED_STUDENT_MALE_CHAT_EVENT_1 = 1583, + AUDIO_SAMPLE_PED_STUDENT_MALE_CHAT_EVENT_2 = 1584, + AUDIO_SAMPLE_PED_STUDENT_MALE_CHAT_EVENT_3 = 1585, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_CAR_COLLISION_1 = 1586, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_CAR_COLLISION_2 = 1587, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_CAR_COLLISION_3 = 1588, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_CAR_COLLISION_4 = 1589, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_CHAT_1 = 1590, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_CHAT_2 = 1591, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_CHAT_3 = 1592, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_CHAT_4 = 1593, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_EVADE_1 = 1594, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_EVADE_2 = 1595, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_EVADE_3 = 1596, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_EVADE_4 = 1597, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_ATTACK_1 = 1598, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_ATTACK_2 = 1599, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_ATTACK_3 = 1600, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_ATTACK_4 = 1601, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_HANDS_COWER_1 = 1602, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_HANDS_COWER_2 = 1603, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_HANDS_COWER_3 = 1604, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_HANDS_COWER_4 = 1605, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_ROBBED_1 = 1606, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_ROBBED_2 = 1607, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_CHAT_EVENT_1 = 1608, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_CHAT_EVENT_2 = 1609, + AUDIO_SAMPLE_PED_HOODS_1_CAR_COLLISION_1 = 1610, + AUDIO_SAMPLE_PED_HOODS_1_CAR_COLLISION_2 = 1611, + AUDIO_SAMPLE_PED_HOODS_1_CAR_COLLISION_3 = 1612, + AUDIO_SAMPLE_PED_HOODS_1_CAR_COLLISION_4 = 1613, + AUDIO_SAMPLE_PED_HOODS_1_CAR_COLLISION_5 = 1614, + AUDIO_SAMPLE_PED_HOODS_1_CAR_COLLISION_6 = 1615, + AUDIO_SAMPLE_PED_HOODS_1_CAR_COLLISION_7 = 1616, + AUDIO_SAMPLE_PED_HOODS_1_CHAT_1 = 1617, + AUDIO_SAMPLE_PED_HOODS_1_CHAT_2 = 1618, + AUDIO_SAMPLE_PED_HOODS_1_CHAT_3 = 1619, + AUDIO_SAMPLE_PED_HOODS_1_CHAT_4 = 1620, + AUDIO_SAMPLE_PED_HOODS_1_CHAT_5 = 1621, + AUDIO_SAMPLE_PED_HOODS_1_CHAT_6 = 1622, + AUDIO_SAMPLE_PED_HOODS_1_EVADE_1 = 1623, + AUDIO_SAMPLE_PED_HOODS_1_EVADE_2 = 1624, + AUDIO_SAMPLE_PED_HOODS_1_EVADE_3 = 1625, + AUDIO_SAMPLE_PED_HOODS_1_EVADE_4 = 1626, + AUDIO_SAMPLE_PED_HOODS_1_EVADE_5 = 1627, + AUDIO_SAMPLE_PED_HOODS_1_CHAT_SEXY_1 = 1628, + AUDIO_SAMPLE_PED_HOODS_1_CHAT_SEXY_2 = 1629, + AUDIO_SAMPLE_PED_HOODS_1_ATTACK_1 = 1630, + AUDIO_SAMPLE_PED_HOODS_1_ATTACK_2 = 1631, + AUDIO_SAMPLE_PED_HOODS_1_ATTACK_3 = 1632, + AUDIO_SAMPLE_PED_HOODS_1_ATTACK_4 = 1633, + AUDIO_SAMPLE_PED_HOODS_1_ATTACK_5 = 1634, + AUDIO_SAMPLE_PED_HOODS_1_ATTACK_6 = 1635, + AUDIO_SAMPLE_PED_HOODS_1_HANDS_UP_1 = 1636, + AUDIO_SAMPLE_PED_HOODS_1_HANDS_UP_2 = 1637, + AUDIO_SAMPLE_PED_HOODS_1_HANDS_UP_3 = 1638, + AUDIO_SAMPLE_PED_HOODS_1_HANDS_UP_4 = 1639, + AUDIO_SAMPLE_PED_HOODS_1_HANDS_UP_5 = 1640, + AUDIO_SAMPLE_PED_HOODS_1_CAR_JACKED_1 = 1641, + AUDIO_SAMPLE_PED_HOODS_1_CAR_JACKED_2 = 1642, + AUDIO_SAMPLE_PED_HOODS_1_CAR_JACKING_1 = 1643, + AUDIO_SAMPLE_PED_HOODS_1_CAR_JACKING_2 = 1644, + AUDIO_SAMPLE_PED_HOODS_2_CAR_COLLISION_1 = 1645, + AUDIO_SAMPLE_PED_HOODS_2_CAR_COLLISION_2 = 1646, + AUDIO_SAMPLE_PED_HOODS_2_CAR_COLLISION_3 = 1647, + AUDIO_SAMPLE_PED_HOODS_2_CAR_COLLISION_4 = 1648, + AUDIO_SAMPLE_PED_HOODS_2_CAR_COLLISION_5 = 1649, + AUDIO_SAMPLE_PED_HOODS_2_CAR_COLLISION_6 = 1650, + AUDIO_SAMPLE_PED_HOODS_2_CAR_COLLISION_7 = 1651, + AUDIO_SAMPLE_PED_HOODS_2_CHAT_1 = 1652, + AUDIO_SAMPLE_PED_HOODS_2_CHAT_2 = 1653, + AUDIO_SAMPLE_PED_HOODS_2_CHAT_3 = 1654, + AUDIO_SAMPLE_PED_HOODS_2_CHAT_4 = 1655, + AUDIO_SAMPLE_PED_HOODS_2_CHAT_5 = 1656, + AUDIO_SAMPLE_PED_HOODS_2_CHAT_6 = 1657, + AUDIO_SAMPLE_PED_HOODS_2_EVADE_1 = 1658, + AUDIO_SAMPLE_PED_HOODS_2_EVADE_2 = 1659, + AUDIO_SAMPLE_PED_HOODS_2_EVADE_3 = 1660, + AUDIO_SAMPLE_PED_HOODS_2_EVADE_4 = 1661, + AUDIO_SAMPLE_PED_HOODS_2_EVADE_5 = 1662, + AUDIO_SAMPLE_PED_HOODS_2_CHAT_SEXY_1 = 1663, + AUDIO_SAMPLE_PED_HOODS_2_CHAT_SEXY_2 = 1664, + AUDIO_SAMPLE_PED_HOODS_2_ATTACK_1 = 1665, + AUDIO_SAMPLE_PED_HOODS_2_ATTACK_2 = 1666, + AUDIO_SAMPLE_PED_HOODS_2_ATTACK_3 = 1667, + AUDIO_SAMPLE_PED_HOODS_2_ATTACK_4 = 1668, + AUDIO_SAMPLE_PED_HOODS_2_ATTACK_5 = 1669, + AUDIO_SAMPLE_PED_HOODS_2_ATTACK_6 = 1670, + AUDIO_SAMPLE_PED_HOODS_2_HANDS_UP_1 = 1671, + AUDIO_SAMPLE_PED_HOODS_2_HANDS_UP_2 = 1672, + AUDIO_SAMPLE_PED_HOODS_2_HANDS_UP_3 = 1673, + AUDIO_SAMPLE_PED_HOODS_2_HANDS_UP_4 = 1674, + AUDIO_SAMPLE_PED_HOODS_2_HANDS_UP_5 = 1675, + AUDIO_SAMPLE_PED_HOODS_2_CAR_JACKED_1 = 1676, + AUDIO_SAMPLE_PED_HOODS_2_CAR_JACKED_2 = 1677, + AUDIO_SAMPLE_PED_HOODS_2_CAR_JACKING_1 = 1678, + AUDIO_SAMPLE_PED_HOODS_2_CAR_JACKING_2 = 1679, + AUDIO_SAMPLE_PED_YARDIE_1_CAR_COLLISION_1 = 1680, + AUDIO_SAMPLE_PED_YARDIE_1_CAR_COLLISION_2 = 1681, + AUDIO_SAMPLE_PED_YARDIE_1_CAR_COLLISION_3 = 1682, + AUDIO_SAMPLE_PED_YARDIE_1_CAR_COLLISION_4 = 1683, + AUDIO_SAMPLE_PED_YARDIE_1_CAR_COLLISION_5 = 1684, + AUDIO_SAMPLE_PED_YARDIE_1_CAR_COLLISION_6 = 1685, + AUDIO_SAMPLE_PED_YARDIE_1_CHAT_1 = 1686, + AUDIO_SAMPLE_PED_YARDIE_1_CHAT_2 = 1687, + AUDIO_SAMPLE_PED_YARDIE_1_CHAT_3 = 1688, + AUDIO_SAMPLE_PED_YARDIE_1_CHAT_4 = 1689, + AUDIO_SAMPLE_PED_YARDIE_1_CHAT_5 = 1690, + AUDIO_SAMPLE_PED_YARDIE_1_CHAT_6 = 1691, + AUDIO_SAMPLE_PED_YARDIE_1_CHAT_7 = 1692, + AUDIO_SAMPLE_PED_YARDIE_1_CHAT_8 = 1693, + AUDIO_SAMPLE_PED_YARDIE_1_EVADE_1 = 1694, + AUDIO_SAMPLE_PED_YARDIE_1_EVADE_2 = 1695, + AUDIO_SAMPLE_PED_YARDIE_1_EVADE_3 = 1696, + AUDIO_SAMPLE_PED_YARDIE_1_EVADE_4 = 1697, + AUDIO_SAMPLE_PED_YARDIE_1_EVADE_5 = 1698, + AUDIO_SAMPLE_PED_YARDIE_1_CHAT_SEXY_1 = 1699, + AUDIO_SAMPLE_PED_YARDIE_1_CHAT_SEXY_2 = 1700, + AUDIO_SAMPLE_PED_YARDIE_1_ATTACK_1 = 1701, + AUDIO_SAMPLE_PED_YARDIE_1_ATTACK_2 = 1702, + AUDIO_SAMPLE_PED_YARDIE_1_ATTACK_3 = 1703, + AUDIO_SAMPLE_PED_YARDIE_1_ATTACK_4 = 1704, + AUDIO_SAMPLE_PED_YARDIE_1_ATTACK_5 = 1705, + AUDIO_SAMPLE_PED_YARDIE_1_ATTACK_6 = 1706, + AUDIO_SAMPLE_PED_YARDIE_1_HANDS_UP_1 = 1707, + AUDIO_SAMPLE_PED_YARDIE_1_CAR_JACKED_1 = 1708, + AUDIO_SAMPLE_PED_YARDIE_1_CAR_JACKING_1 = 1709, + AUDIO_SAMPLE_PED_YARDIE_1_CAR_JACKING_2 = 1710, + AUDIO_SAMPLE_PED_YARDIE_2_CAR_COLLISION_1 = 1711, + AUDIO_SAMPLE_PED_YARDIE_2_CAR_COLLISION_2 = 1712, + AUDIO_SAMPLE_PED_YARDIE_2_CAR_COLLISION_3 = 1713, + AUDIO_SAMPLE_PED_YARDIE_2_CAR_COLLISION_4 = 1714, + AUDIO_SAMPLE_PED_YARDIE_2_CAR_COLLISION_5 = 1715, + AUDIO_SAMPLE_PED_YARDIE_2_CAR_COLLISION_6 = 1716, + AUDIO_SAMPLE_PED_YARDIE_2_CHAT_1 = 1717, + AUDIO_SAMPLE_PED_YARDIE_2_CHAT_2 = 1718, + AUDIO_SAMPLE_PED_YARDIE_2_CHAT_3 = 1719, + AUDIO_SAMPLE_PED_YARDIE_2_CHAT_4 = 1720, + AUDIO_SAMPLE_PED_YARDIE_2_CHAT_5 = 1721, + AUDIO_SAMPLE_PED_YARDIE_2_CHAT_6 = 1722, + AUDIO_SAMPLE_PED_YARDIE_2_CHAT_7 = 1723, + AUDIO_SAMPLE_PED_YARDIE_2_CHAT_8 = 1724, + AUDIO_SAMPLE_PED_YARDIE_2_EVADE_1 = 1725, + AUDIO_SAMPLE_PED_YARDIE_2_EVADE_2 = 1726, + AUDIO_SAMPLE_PED_YARDIE_2_EVADE_3 = 1727, + AUDIO_SAMPLE_PED_YARDIE_2_EVADE_4 = 1728, + AUDIO_SAMPLE_PED_YARDIE_2_EVADE_5 = 1729, + AUDIO_SAMPLE_PED_YARDIE_2_CHAT_SEXY_1 = 1730, + AUDIO_SAMPLE_PED_YARDIE_2_CHAT_SEXY_2 = 1731, + AUDIO_SAMPLE_PED_YARDIE_2_ATTACK_1 = 1732, + AUDIO_SAMPLE_PED_YARDIE_2_ATTACK_2 = 1733, + AUDIO_SAMPLE_PED_YARDIE_2_ATTACK_3 = 1734, + AUDIO_SAMPLE_PED_YARDIE_2_ATTACK_4 = 1735, + AUDIO_SAMPLE_PED_YARDIE_2_ATTACK_5 = 1736, + AUDIO_SAMPLE_PED_YARDIE_2_ATTACK_6 = 1737, + AUDIO_SAMPLE_PED_YARDIE_2_HANDS_UP_1 = 1738, + AUDIO_SAMPLE_PED_YARDIE_2_CAR_JACKED_1 = 1739, + AUDIO_SAMPLE_PED_YARDIE_2_CAR_JACKING_1 = 1740, + AUDIO_SAMPLE_PED_YARDIE_2_CAR_JACKING_2 = 1741, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CAR_COLLISION_1 = 1742, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CAR_COLLISION_2 = 1743, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CAR_COLLISION_3 = 1744, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CAR_COLLISION_4 = 1745, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CAR_COLLISION_5 = 1746, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CAR_COLLISION_6 = 1747, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CAR_COLLISION_7 = 1748, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CHAT_1 = 1749, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CHAT_2 = 1750, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CHAT_3 = 1751, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CHAT_4 = 1752, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CHAT_5 = 1753, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CHAT_6 = 1754, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CHAT_7 = 1755, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_EVADE_1 = 1756, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_EVADE_2 = 1757, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_EVADE_3 = 1758, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_EVADE_4 = 1759, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_EVADE_5 = 1760, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_EVADE_6 = 1761, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_HANDS_COWER_1 = 1762, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_HANDS_COWER_2 = 1763, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_HANDS_COWER_3 = 1764, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_HANDS_COWER_4 = 1765, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_HANDS_COWER_5 = 1766, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CAR_JACKED_1 = 1767, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CAR_JACKED_2 = 1768, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CAR_JACKED_3 = 1769, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CAR_JACKED_4 = 1770, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_ROBBED_1 = 1771, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_ROBBED_2 = 1772, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_ROBBED_3 = 1773, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_FLEE_RUN_1 = 1774, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_FLEE_RUN_2 = 1775, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_FLEE_RUN_3 = 1776, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_FLEE_RUN_4 = 1777, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_FLEE_RUN_5 = 1778, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_FLEE_RUN_6 = 1779, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CHAT_EVENT_1 = 1780, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CHAT_EVENT_2 = 1781, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CHAT_EVENT_3 = 1782, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CHAT_EVENT_4 = 1783, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CAR_COLLISION_1 = 1784, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CAR_COLLISION_2 = 1785, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CAR_COLLISION_3 = 1786, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CAR_COLLISION_4 = 1787, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CAR_COLLISION_5 = 1788, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CAR_COLLISION_6 = 1789, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CHAT_1 = 1790, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CHAT_2 = 1791, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CHAT_3 = 1792, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CHAT_4 = 1793, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CHAT_5 = 1794, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CHAT_6 = 1795, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_EVADE_1 = 1796, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_EVADE_2 = 1797, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_EVADE_3 = 1798, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_EVADE_4 = 1799, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CHAT_SEXY_1 = 1800, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CHAT_SEXY_2 = 1801, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_ATTACK_1 = 1802, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_ATTACK_2 = 1803, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_ATTACK_3 = 1804, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_HANDS_COWER_1 = 1805, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_HANDS_COWER_2 = 1806, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_HANDS_COWER_3 = 1807, + AUDIO_SAMPLE_PED_STEWARD_MALE_CAR_COLLISION_1 = 1808, + AUDIO_SAMPLE_PED_STEWARD_MALE_CAR_COLLISION_2 = 1809, + AUDIO_SAMPLE_PED_STEWARD_MALE_CAR_COLLISION_3 = 1810, + AUDIO_SAMPLE_PED_STEWARD_MALE_CAR_COLLISION_4 = 1811, + AUDIO_SAMPLE_PED_STEWARD_MALE_CAR_COLLISION_5 = 1812, + AUDIO_SAMPLE_PED_STEWARD_MALE_CHAT_1 = 1813, + AUDIO_SAMPLE_PED_STEWARD_MALE_CHAT_2 = 1814, + AUDIO_SAMPLE_PED_STEWARD_MALE_CHAT_3 = 1815, + AUDIO_SAMPLE_PED_STEWARD_MALE_CHAT_4 = 1816, + AUDIO_SAMPLE_PED_STEWARD_MALE_EVADE_1 = 1817, + AUDIO_SAMPLE_PED_STEWARD_MALE_EVADE_2 = 1818, + AUDIO_SAMPLE_PED_STEWARD_MALE_EVADE_3 = 1819, + AUDIO_SAMPLE_PED_STEWARD_MALE_ATTACK_1 = 1820, + AUDIO_SAMPLE_PED_STEWARD_MALE_ATTACK_2 = 1821, + AUDIO_SAMPLE_PED_STEWARD_MALE_ATTACK_3 = 1822, + AUDIO_SAMPLE_PED_STEWARD_MALE_ATTACK_4 = 1823, + AUDIO_SAMPLE_PED_STEWARD_MALE_HANDS_COWER_1 = 1824, + AUDIO_SAMPLE_PED_STEWARD_MALE_HANDS_COWER_2 = 1825, + AUDIO_SAMPLE_PED_STEWARD_MALE_HANDS_COWER_3 = 1826, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_CAR_COLLISION_1 = 1827, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_CAR_COLLISION_2 = 1828, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_CAR_COLLISION_3 = 1829, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_CAR_COLLISION_4 = 1830, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_CAR_COLLISION_5 = 1831, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_CHAT_1 = 1832, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_CHAT_2 = 1833, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_CHAT_3 = 1834, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_CHAT_4 = 1835, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_CHAT_5 = 1836, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_EVADE_1 = 1837, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_EVADE_2 = 1838, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_EVADE_3 = 1839, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_EVADE_4 = 1840, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_EVADE_5 = 1841, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_HANDS_COWER_1 = 1842, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_HANDS_COWER_2 = 1843, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_HANDS_COWER_3 = 1844, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_CAR_COLLISION_1 = 1845, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_CAR_COLLISION_2 = 1846, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_CAR_COLLISION_3 = 1847, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_CAR_COLLISION_4 = 1848, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_CAR_COLLISION_5 = 1849, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_CHAT_1 = 1850, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_CHAT_2 = 1851, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_CHAT_3 = 1852, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_CHAT_4 = 1853, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_CHAT_5 = 1854, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_EVADE_1 = 1855, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_EVADE_2 = 1856, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_EVADE_3 = 1857, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_EVADE_4 = 1858, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_EVADE_5 = 1859, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_HANDS_COWER_1 = 1860, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_HANDS_COWER_2 = 1861, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_2_HANDS_COWER_3 = 1862, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CAR_COLLISION_1 = 1863, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CAR_COLLISION_2 = 1864, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CAR_COLLISION_3 = 1865, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CAR_COLLISION_4 = 1866, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CAR_COLLISION_5 = 1867, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CAR_COLLISION_6 = 1868, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CHAT_1 = 1869, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CHAT_2 = 1870, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CHAT_3 = 1871, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CHAT_4 = 1872, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CHAT_5 = 1873, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CHAT_6 = 1874, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CHAT_7 = 1875, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_EVADE_1 = 1876, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_EVADE_2 = 1877, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_EVADE_3 = 1878, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_EVADE_4 = 1879, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_EVADE_5 = 1880, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_EVADE_6 = 1881, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CHAT_SEXY_1 = 1882, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CHAT_SEXY_2 = 1883, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CHAT_SEXY_3 = 1884, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_ATTACK_1 = 1885, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_ATTACK_2 = 1886, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_ATTACK_3 = 1887, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_ATTACK_4 = 1888, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_ATTACK_5 = 1889, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_HANDS_COWER_1 = 1890, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_HANDS_COWER_2 = 1891, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_HANDS_COWER_3 = 1892, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CAR_JACKED_1 = 1893, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CAR_JACKED_2 = 1894, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CAR_COLLISION_1 = 1895, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CAR_COLLISION_2 = 1896, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CAR_COLLISION_3 = 1897, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CAR_COLLISION_4 = 1898, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CAR_COLLISION_5 = 1899, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CHAT_1 = 1900, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CHAT_2 = 1901, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CHAT_3 = 1902, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CHAT_4 = 1903, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CHAT_5 = 1904, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CHAT_6 = 1905, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CHAT_7 = 1906, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_EVADE_1 = 1907, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_EVADE_2 = 1908, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_EVADE_3 = 1909, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_EVADE_4 = 1910, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_EVADE_5 = 1911, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_EVADE_6 = 1912, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_HANDS_COWER_1 = 1913, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_HANDS_COWER_2 = 1914, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_HANDS_COWER_3 = 1915, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_HANDS_COWER_4 = 1916, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CAR_JACKED_1 = 1917, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CAR_JACKED_2 = 1918, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_ROBBED_1 = 1919, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_ROBBED_2 = 1920, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_FLEE_RUN_1 = 1921, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_FLEE_RUN_2 = 1922, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_FLEE_RUN_3 = 1923, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_FLEE_RUN_4 = 1924, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CHAT_EVENT_1 = 1925, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CHAT_EVENT_2 = 1926, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CHAT_EVENT_3 = 1927, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CHAT_EVENT_4 = 1928, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CAR_COLLISION_1 = 1929, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CAR_COLLISION_2 = 1930, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CAR_COLLISION_3 = 1931, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CAR_COLLISION_4 = 1932, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CAR_COLLISION_5 = 1933, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CHAT_1 = 1934, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CHAT_2 = 1935, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CHAT_3 = 1936, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CHAT_4 = 1937, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CHAT_5 = 1938, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CHAT_6 = 1939, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CHAT_7 = 1940, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_EVADE_1 = 1941, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_EVADE_2 = 1942, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_EVADE_3 = 1943, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_EVADE_4 = 1944, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_EVADE_5 = 1945, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_EVADE_6 = 1946, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_HANDS_COWER_1 = 1947, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_HANDS_COWER_2 = 1948, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_HANDS_COWER_3 = 1949, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_HANDS_COWER_4 = 1950, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CAR_JACKED_1 = 1951, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CAR_JACKED_2 = 1952, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_ROBBED_1 = 1953, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_ROBBED_2 = 1954, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_FLEE_RUN_1 = 1955, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_FLEE_RUN_2 = 1956, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_FLEE_RUN_3 = 1957, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_FLEE_RUN_4 = 1958, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CHAT_EVENT_1 = 1959, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CHAT_EVENT_2 = 1960, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CHAT_EVENT_3 = 1961, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_2_CHAT_EVENT_4 = 1962, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CAR_COLLISION_1 = 1963, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CAR_COLLISION_2 = 1964, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CAR_COLLISION_3 = 1965, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CAR_COLLISION_4 = 1966, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CAR_COLLISION_5 = 1967, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CAR_COLLISION_6 = 1968, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CHAT_1 = 1969, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CHAT_2 = 1970, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CHAT_3 = 1971, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CHAT_4 = 1972, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CHAT_5 = 1973, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CHAT_6 = 1974, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CHAT_7 = 1975, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CHAT_8 = 1976, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_EVADE_1 = 1977, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_EVADE_2 = 1978, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_EVADE_3 = 1979, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_EVADE_4 = 1980, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_EVADE_5 = 1981, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_EVADE_6 = 1982, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_EVADE_7 = 1983, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CAR_JACKED_1 = 1984, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CAR_JACKED_2 = 1985, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CAR_JACKED_3 = 1986, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CAR_JACKED_4 = 1987, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_WAIT_DOUBLEBACK_1 = 1988, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_WAIT_DOUBLEBACK_2 = 1989, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_WAIT_DOUBLEBACK_3 = 1990, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_ROBBED_1 = 1991, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_ROBBED_2 = 1992, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_ROBBED_3 = 1993, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CAR_COLLISION_1 = 1994, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CAR_COLLISION_2 = 1995, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CAR_COLLISION_3 = 1996, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CAR_COLLISION_4 = 1997, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CAR_COLLISION_5 = 1998, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CAR_COLLISION_6 = 1999, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CAR_COLLISION_7 = 2000, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CHAT_1 = 2001, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CHAT_2 = 2002, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CHAT_3 = 2003, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CHAT_4 = 2004, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CHAT_5 = 2005, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CHAT_6 = 2006, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_EVADE_1 = 2007, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_EVADE_2 = 2008, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_EVADE_3 = 2009, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_EVADE_4 = 2010, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_EVADE_5 = 2011, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CHAT_SEXY_1 = 2012, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CHAT_SEXY_2 = 2013, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CHAT_SEXY_3 = 2014, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_ATTACK_1 = 2015, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_ATTACK_2 = 2016, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_ATTACK_3 = 2017, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_ATTACK_4 = 2018, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_ATTACK_5 = 2019, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_ATTACK_6 = 2020, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_HANDS_UP_1 = 2021, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_HANDS_UP_2 = 2022, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_HANDS_UP_3 = 2023, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CAR_JACKED_1 = 2024, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CAR_JACKED_2 = 2025, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_ROBBED_1 = 2026, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_ROBBED_2 = 2027, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CAR_COLLISION_1 = 2028, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CAR_COLLISION_2 = 2029, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CAR_COLLISION_3 = 2030, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CAR_COLLISION_4 = 2031, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CAR_COLLISION_5 = 2032, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CAR_COLLISION_6 = 2033, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CAR_COLLISION_7 = 2034, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CHAT_1 = 2035, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CHAT_2 = 2036, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CHAT_3 = 2037, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CHAT_4 = 2038, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CHAT_5 = 2039, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CHAT_6 = 2040, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_EVADE_1 = 2041, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_EVADE_2 = 2042, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_EVADE_3 = 2043, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_EVADE_4 = 2044, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_EVADE_5 = 2045, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CHAT_SEXY_1 = 2046, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CHAT_SEXY_2 = 2047, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CHAT_SEXY_3 = 2048, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_ATTACK_1 = 2049, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_ATTACK_2 = 2050, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_ATTACK_3 = 2051, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_ATTACK_4 = 2052, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_ATTACK_5 = 2053, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_ATTACK_6 = 2054, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_HANDS_UP_1 = 2055, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_HANDS_UP_2 = 2056, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_HANDS_UP_3 = 2057, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CAR_JACKED_1 = 2058, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_CAR_JACKED_2 = 2059, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_ROBBED_1 = 2060, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_2_ROBBED_2 = 2061, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_CAR_COLLISION_1 = 2062, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_CAR_COLLISION_2 = 2063, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_CAR_COLLISION_3 = 2064, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_CAR_COLLISION_4 = 2065, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_CHAT_1 = 2066, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_CHAT_2 = 2067, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_CHAT_3 = 2068, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_CHAT_4 = 2069, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_EVADE_1 = 2070, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_EVADE_2 = 2071, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_EVADE_3 = 2072, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_CHAT_SEXY_1 = 2073, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_CHAT_SEXY_2 = 2074, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_CHAT_SEXY_3 = 2075, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_ATTACK_1 = 2076, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_ATTACK_2 = 2077, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_ATTACK_3 = 2078, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_HANDS_COWER_1 = 2079, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_HANDS_COWER_2 = 2080, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_HANDS_COWER_3 = 2081, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_HANDS_COWER_4 = 2082, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CAR_COLLISION_1 = 2083, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CAR_COLLISION_2 = 2084, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CAR_COLLISION_3 = 2085, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CAR_COLLISION_4 = 2086, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CAR_COLLISION_5 = 2087, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CAR_COLLISION_6 = 2088, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CAR_COLLISION_7 = 2089, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CHAT_1 = 2090, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CHAT_2 = 2091, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CHAT_3 = 2092, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CHAT_4 = 2093, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CHAT_5 = 2094, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CHAT_6 = 2095, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CHAT_7 = 2096, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_EVADE_1 = 2097, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_EVADE_2 = 2098, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_EVADE_3 = 2099, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_EVADE_4 = 2100, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_EVADE_5 = 2101, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_EVADE_6 = 2102, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CAR_JACKED_1 = 2103, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CAR_JACKED_2 = 2104, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_ROBBED_1 = 2105, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_ROBBED_2 = 2106, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CHAT_EVENT_1 = 2107, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CHAT_EVENT_2 = 2108, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CHAT_EVENT_3 = 2109, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CHAT_EVENT_4 = 2110, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CAR_COLLISION_1 = 2111, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CAR_COLLISION_2 = 2112, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CAR_COLLISION_3 = 2113, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CAR_COLLISION_4 = 2114, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CAR_COLLISION_5 = 2115, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CAR_COLLISION_6 = 2116, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CAR_COLLISION_7 = 2117, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CHAT_1 = 2118, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CHAT_2 = 2119, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CHAT_3 = 2120, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CHAT_4 = 2121, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CHAT_5 = 2122, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CHAT_6 = 2123, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CHAT_7 = 2124, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_EVADE_1 = 2125, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_EVADE_2 = 2126, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_EVADE_3 = 2127, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_EVADE_4 = 2128, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_EVADE_5 = 2129, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_EVADE_6 = 2130, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CAR_JACKED_1 = 2131, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CAR_JACKED_2 = 2132, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_ROBBED_1 = 2133, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_ROBBED_2 = 2134, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CHAT_EVENT_1 = 2135, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CHAT_EVENT_2 = 2136, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CHAT_EVENT_3 = 2137, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_2_CHAT_EVENT_4 = 2138, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CAR_COLLISION_1 = 2139, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CAR_COLLISION_2 = 2140, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CAR_COLLISION_3 = 2141, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CAR_COLLISION_4 = 2142, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CAR_COLLISION_5 = 2143, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CAR_COLLISION_6 = 2144, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CAR_COLLISION_7 = 2145, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CHAT_1 = 2146, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CHAT_2 = 2147, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CHAT_3 = 2148, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CHAT_4 = 2149, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CHAT_5 = 2150, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CHAT_6 = 2151, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CHAT_7 = 2152, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_EVADE_1 = 2153, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_EVADE_2 = 2154, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_EVADE_3 = 2155, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_EVADE_4 = 2156, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_EVADE_5 = 2157, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_EVADE_6 = 2158, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CAR_JACKED_1 = 2159, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CAR_JACKED_2 = 2160, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_ROBBED_1 = 2161, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_ROBBED_2 = 2162, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CHAT_EVENT_1 = 2163, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CHAT_EVENT_2 = 2164, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CHAT_EVENT_3 = 2165, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_3_CHAT_EVENT_4 = 2166, + AUDIO_SAMPLE_PED_COLUMB_1_CAR_COLLISION_1 = 2167, + AUDIO_SAMPLE_PED_COLUMB_1_CAR_COLLISION_2 = 2168, + AUDIO_SAMPLE_PED_COLUMB_1_CAR_COLLISION_3 = 2169, + AUDIO_SAMPLE_PED_COLUMB_1_CAR_COLLISION_4 = 2170, + AUDIO_SAMPLE_PED_COLUMB_1_CAR_COLLISION_5 = 2171, + AUDIO_SAMPLE_PED_COLUMB_1_CAR_COLLISION_6 = 2172, + AUDIO_SAMPLE_PED_COLUMB_1_CHAT_1 = 2173, + AUDIO_SAMPLE_PED_COLUMB_1_CHAT_2 = 2174, + AUDIO_SAMPLE_PED_COLUMB_1_CHAT_3 = 2175, + AUDIO_SAMPLE_PED_COLUMB_1_CHAT_4 = 2176, + AUDIO_SAMPLE_PED_COLUMB_1_CHAT_5 = 2177, + AUDIO_SAMPLE_PED_COLUMB_1_EVADE_1 = 2178, + AUDIO_SAMPLE_PED_COLUMB_1_EVADE_2 = 2179, + AUDIO_SAMPLE_PED_COLUMB_1_EVADE_3 = 2180, + AUDIO_SAMPLE_PED_COLUMB_1_EVADE_4 = 2181, + AUDIO_SAMPLE_PED_COLUMB_1_EVADE_5 = 2182, + AUDIO_SAMPLE_PED_COLUMB_1_CHAT_SEXY_1 = 2183, + AUDIO_SAMPLE_PED_COLUMB_1_CHAT_SEXY_2 = 2184, + AUDIO_SAMPLE_PED_COLUMB_1_ATTACK_1 = 2185, + AUDIO_SAMPLE_PED_COLUMB_1_ATTACK_2 = 2186, + AUDIO_SAMPLE_PED_COLUMB_1_ATTACK_3 = 2187, + AUDIO_SAMPLE_PED_COLUMB_1_ATTACK_4 = 2188, + AUDIO_SAMPLE_PED_COLUMB_1_ATTACK_5 = 2189, + AUDIO_SAMPLE_PED_COLUMB_1_CAR_JACKED_1 = 2190, + AUDIO_SAMPLE_PED_COLUMB_1_CAR_JACKED_2 = 2191, + AUDIO_SAMPLE_PED_COLUMB_1_CAR_JACKING_1 = 2192, + AUDIO_SAMPLE_PED_COLUMB_1_CAR_JACKING_2 = 2193, + AUDIO_SAMPLE_PED_COLUMB_2_CAR_COLLISION_1 = 2194, + AUDIO_SAMPLE_PED_COLUMB_2_CAR_COLLISION_2 = 2195, + AUDIO_SAMPLE_PED_COLUMB_2_CAR_COLLISION_3 = 2196, + AUDIO_SAMPLE_PED_COLUMB_2_CAR_COLLISION_4 = 2197, + AUDIO_SAMPLE_PED_COLUMB_2_CAR_COLLISION_5 = 2198, + AUDIO_SAMPLE_PED_COLUMB_2_CAR_COLLISION_6 = 2199, + AUDIO_SAMPLE_PED_COLUMB_2_CHAT_1 = 2200, + AUDIO_SAMPLE_PED_COLUMB_2_CHAT_2 = 2201, + AUDIO_SAMPLE_PED_COLUMB_2_CHAT_3 = 2202, + AUDIO_SAMPLE_PED_COLUMB_2_CHAT_4 = 2203, + AUDIO_SAMPLE_PED_COLUMB_2_CHAT_5 = 2204, + AUDIO_SAMPLE_PED_COLUMB_2_EVADE_1 = 2205, + AUDIO_SAMPLE_PED_COLUMB_2_EVADE_2 = 2206, + AUDIO_SAMPLE_PED_COLUMB_2_EVADE_3 = 2207, + AUDIO_SAMPLE_PED_COLUMB_2_EVADE_4 = 2208, + AUDIO_SAMPLE_PED_COLUMB_2_EVADE_5 = 2209, + AUDIO_SAMPLE_PED_COLUMB_2_CHAT_SEXY_1 = 2210, + AUDIO_SAMPLE_PED_COLUMB_2_CHAT_SEXY_2 = 2211, + AUDIO_SAMPLE_PED_COLUMB_2_ATTACK_1 = 2212, + AUDIO_SAMPLE_PED_COLUMB_2_ATTACK_2 = 2213, + AUDIO_SAMPLE_PED_COLUMB_2_ATTACK_3 = 2214, + AUDIO_SAMPLE_PED_COLUMB_2_ATTACK_4 = 2215, + AUDIO_SAMPLE_PED_COLUMB_2_ATTACK_5 = 2216, + AUDIO_SAMPLE_PED_COLUMB_2_CAR_JACKED_1 = 2217, + AUDIO_SAMPLE_PED_COLUMB_2_CAR_JACKED_2 = 2218, + AUDIO_SAMPLE_PED_COLUMB_2_CAR_JACKING_1 = 2219, + AUDIO_SAMPLE_PED_COLUMB_2_CAR_JACKING_2 = 2220, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CAR_COLLISION_1 = 2221, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CAR_COLLISION_2 = 2222, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CAR_COLLISION_3 = 2223, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CAR_COLLISION_4 = 2224, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CAR_COLLISION_5 = 2225, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CAR_COLLISION_6 = 2226, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CAR_COLLISION_7 = 2227, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CHAT_1 = 2228, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CHAT_2 = 2229, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CHAT_3 = 2230, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CHAT_4 = 2231, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CHAT_5 = 2232, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CHAT_6 = 2233, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CHAT_7 = 2234, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_EVADE_1 = 2235, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_EVADE_2 = 2236, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_EVADE_3 = 2237, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_EVADE_4 = 2238, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_EVADE_5 = 2239, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_EVADE_6 = 2240, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CAR_JACKED_1 = 2241, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CAR_JACKED_2 = 2242, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_ROBBED_1 = 2243, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_ROBBED_2 = 2244, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CHAT_EVENT_1 = 2245, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CHAT_EVENT_2 = 2246, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CHAT_EVENT_3 = 2247, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CHAT_EVENT_4 = 2248, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_CAR_COLLISION_1 = 2249, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_CAR_COLLISION_2 = 2250, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_CAR_COLLISION_3 = 2251, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_CAR_COLLISION_4 = 2252, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_CAR_COLLISION_5 = 2253, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_CHAT_1 = 2254, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_CHAT_2 = 2255, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_CHAT_3 = 2256, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_CHAT_4 = 2257, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_CHAT_5 = 2258, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_CHAT_6 = 2259, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_EVADE_1 = 2260, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_EVADE_2 = 2261, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_EVADE_3 = 2262, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_EVADE_4 = 2263, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_EVADE_5 = 2264, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_HANDS_COWER_1 = 2265, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_HANDS_COWER_2 = 2266, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_HANDS_COWER_3 = 2267, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_ROBBED_1 = 2268, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_ROBBED_2 = 2269, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_CHAT_EVENT_1 = 2270, + AUDIO_SAMPLE_PED_FEMALE_DEATH_1 = 2271, + AUDIO_SAMPLE_PED_FEMALE_DEATH_2 = 2272, + AUDIO_SAMPLE_PED_FEMALE_DEATH_3 = 2273, + AUDIO_SAMPLE_PED_FEMALE_DEATH_4 = 2274, + AUDIO_SAMPLE_PED_FEMALE_DEATH_5 = 2275, + AUDIO_SAMPLE_PED_FEMALE_DEATH_6 = 2276, + AUDIO_SAMPLE_PED_FEMALE_DEATH_7 = 2277, + AUDIO_SAMPLE_PED_FEMALE_DEATH_8 = 2278, + AUDIO_SAMPLE_PED_FEMALE_DEATH_9 = 2279, + AUDIO_SAMPLE_PED_FEMALE_DEATH_10 = 2280, + AUDIO_SAMPLE_PED_FEMALE_BURNING_1 = 2281, + AUDIO_SAMPLE_PED_FEMALE_BURNING_2 = 2282, + AUDIO_SAMPLE_PED_FEMALE_BURNING_3 = 2283, + AUDIO_SAMPLE_PED_FEMALE_BURNING_4 = 2284, + AUDIO_SAMPLE_PED_FEMALE_BURNING_5 = 2285, + AUDIO_SAMPLE_PED_FEMALE_BURNING_6 = 2286, + AUDIO_SAMPLE_PED_FEMALE_BURNING_7 = 2287, + AUDIO_SAMPLE_PED_FEMALE_BURNING_8 = 2288, + AUDIO_SAMPLE_PED_FEMALE_BURNING_9 = 2289, + AUDIO_SAMPLE_INJURED_PED_FEMALE_OUCH_1 = 2290, + AUDIO_SAMPLE_INJURED_PED_FEMALE_OUCH_2 = 2291, + AUDIO_SAMPLE_INJURED_PED_FEMALE_OUCH_3 = 2292, + AUDIO_SAMPLE_INJURED_PED_FEMALE_OUCH_4 = 2293, + AUDIO_SAMPLE_INJURED_PED_FEMALE_OUCH_5 = 2294, + AUDIO_SAMPLE_INJURED_PED_FEMALE_OUCH_6 = 2295, + AUDIO_SAMPLE_INJURED_PED_FEMALE_OUCH_7 = 2296, + AUDIO_SAMPLE_INJURED_PED_FEMALE_OUCH_8 = 2297, + AUDIO_SAMPLE_INJURED_PED_FEMALE_OUCH_9 = 2298, + AUDIO_SAMPLE_INJURED_PED_FEMALE_OUCH_10 = 2299, + AUDIO_SAMPLE_INJURED_PED_FEMALE_OUCH_11 = 2300, + AUDIO_SAMPLE_PED_FEMALE_FLEE_SPRINT_1 = 2301, + AUDIO_SAMPLE_PED_FEMALE_FLEE_SPRINT_2 = 2302, + AUDIO_SAMPLE_PED_FEMALE_FLEE_SPRINT_3 = 2303, + AUDIO_SAMPLE_PED_FEMALE_FLEE_SPRINT_4 = 2304, + AUDIO_SAMPLE_PED_FEMALE_FLEE_SPRINT_5 = 2305, + AUDIO_SAMPLE_PED_FEMALE_FLEE_SPRINT_6 = 2306, + AUDIO_SAMPLE_PED_FEMALE_FLEE_SPRINT_7 = 2307, + AUDIO_SAMPLE_PED_FEMALE_FLEE_SPRINT_8 = 2308, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_CAR_COLLISION_1 = 2309, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_CAR_COLLISION_2 = 2310, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_CAR_COLLISION_3 = 2311, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_CAR_COLLISION_4 = 2312, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_CAR_COLLISION_5 = 2313, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_EVADE_1 = 2314, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_EVADE_2 = 2315, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_EVADE_3 = 2316, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_EVADE_4 = 2317, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_EVADE_5 = 2318, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_EVADE_6 = 2319, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_ATTACK_1 = 2320, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_ATTACK_2 = 2321, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_ATTACK_3 = 2322, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_ATTACK_4 = 2323, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_ATTACK_5 = 2324, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_HANDS_UP_1 = 2325, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_HANDS_UP_2 = 2326, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_HANDS_UP_3 = 2327, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_HANDS_UP_4 = 2328, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_CAR_JACKING_1 = 2329, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_MUGGING_1 = 2330, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_MUGGING_2 = 2331, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_CAR_COLLISION_1 = 2332, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_CAR_COLLISION_2 = 2333, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_CAR_COLLISION_3 = 2334, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_CAR_COLLISION_4 = 2335, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_EVADE_1 = 2336, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_EVADE_2 = 2337, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_EVADE_3 = 2338, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_EVADE_4 = 2339, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_EVADE_5 = 2340, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_ATTACK_1 = 2341, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_ATTACK_2 = 2342, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_ATTACK_3 = 2343, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_ATTACK_4 = 2344, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_HANDS_UP_1 = 2345, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_HANDS_UP_2 = 2346, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_HANDS_UP_3 = 2347, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_CAR_JACKING_1 = 2348, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_MUGGING_1 = 2349, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_MUGGING_2 = 2350, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_CAR_COLLISION_1 = 2351, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_CAR_COLLISION_2 = 2352, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_CAR_COLLISION_3 = 2353, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_CAR_COLLISION_4 = 2354, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_CAR_COLLISION_5 = 2355, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_CHAT_1 = 2356, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_CHAT_2 = 2357, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_CHAT_3 = 2358, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_CHAT_4 = 2359, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_CHAT_5 = 2360, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_EVADE_1 = 2361, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_EVADE_2 = 2362, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_EVADE_3 = 2363, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_EVADE_4 = 2364, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_ATTACK_1 = 2365, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_ATTACK_2 = 2366, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_ATTACK_3 = 2367, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_ATTACK_4 = 2368, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_ATTACK_5 = 2369, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_HANDS_COWER_1 = 2370, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_HANDS_COWER_2 = 2371, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_HANDS_COWER_3 = 2372, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_CAR_JACKED_1 = 2373, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_CAR_JACKED_2 = 2374, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_ROBBED_1 = 2375, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_ROBBED_2 = 2376, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_FLEE_RUN_1 = 2377, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_FLEE_RUN_2 = 2378, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_FLEE_RUN_3 = 2379, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_FLEE_RUN_4 = 2380, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_FLEE_RUN_5 = 2381, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CAR_COLLISION_1 = 2382, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CAR_COLLISION_2 = 2383, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CAR_COLLISION_3 = 2384, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CAR_COLLISION_4 = 2385, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CAR_COLLISION_5 = 2386, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CAR_COLLISION_6 = 2387, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CAR_COLLISION_7 = 2388, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CHAT_1 = 2389, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CHAT_2 = 2390, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CHAT_3 = 2391, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CHAT_4 = 2392, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CHAT_5 = 2393, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CHAT_6 = 2394, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_EVADE_1 = 2395, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_EVADE_2 = 2396, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_EVADE_3 = 2397, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_EVADE_4 = 2398, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_EVADE_5 = 2399, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_ATTACK_1 = 2400, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_ATTACK_2 = 2401, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_ATTACK_3 = 2402, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_ATTACK_4 = 2403, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_ATTACK_5 = 2404, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_HANDS_COWER_1 = 2405, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_HANDS_COWER_2 = 2406, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_HANDS_COWER_3 = 2407, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CAR_JACKED_1 = 2408, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CAR_JACKED_2 = 2409, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_ROBBED_1 = 2410, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_ROBBED_2 = 2411, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_CAR_COLLISION_1 = 2412, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_CAR_COLLISION_2 = 2413, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_CAR_COLLISION_3 = 2414, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_CAR_COLLISION_4 = 2415, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_CAR_COLLISION_5 = 2416, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_CAR_COLLISION_6 = 2417, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_CAR_COLLISION_7 = 2418, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_CHAT_1 = 2419, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_CHAT_2 = 2420, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_CHAT_3 = 2421, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_CHAT_4 = 2422, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_CHAT_5 = 2423, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_CHAT_6 = 2424, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_EVADE_1 = 2425, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_EVADE_2 = 2426, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_EVADE_3 = 2427, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_EVADE_4 = 2428, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_EVADE_5 = 2429, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_ATTACK_1 = 2430, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_ATTACK_2 = 2431, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_ATTACK_3 = 2432, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_ATTACK_4 = 2433, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_ATTACK_5 = 2434, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_HANDS_COWER_1 = 2435, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_HANDS_COWER_2 = 2436, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_HANDS_COWER_3 = 2437, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_CAR_JACKED_1 = 2438, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_CAR_JACKED_2 = 2439, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_ROBBED_1 = 2440, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_2_ROBBED_2 = 2441, + AUDIO_SAMPLE_PED_TRIAD_1_CAR_COLLISION_1 = 2442, + AUDIO_SAMPLE_PED_TRIAD_1_CAR_COLLISION_2 = 2443, + AUDIO_SAMPLE_PED_TRIAD_1_CAR_COLLISION_3 = 2444, + AUDIO_SAMPLE_PED_TRIAD_1_CAR_COLLISION_4 = 2445, + AUDIO_SAMPLE_PED_TRIAD_1_CAR_COLLISION_5 = 2446, + AUDIO_SAMPLE_PED_TRIAD_1_CAR_COLLISION_6 = 2447, + AUDIO_SAMPLE_PED_TRIAD_1_CAR_COLLISION_7 = 2448, + AUDIO_SAMPLE_PED_TRIAD_1_CHAT_1 = 2449, + AUDIO_SAMPLE_PED_TRIAD_1_CHAT_2 = 2450, + AUDIO_SAMPLE_PED_TRIAD_1_CHAT_3 = 2451, + AUDIO_SAMPLE_PED_TRIAD_1_CHAT_4 = 2452, + AUDIO_SAMPLE_PED_TRIAD_1_CHAT_5 = 2453, + AUDIO_SAMPLE_PED_TRIAD_1_CHAT_6 = 2454, + AUDIO_SAMPLE_PED_TRIAD_1_CHAT_7 = 2455, + AUDIO_SAMPLE_PED_TRIAD_1_CHAT_8 = 2456, + AUDIO_SAMPLE_PED_TRIAD_1_EVADE_1 = 2457, + AUDIO_SAMPLE_PED_TRIAD_1_EVADE_2 = 2458, + AUDIO_SAMPLE_PED_TRIAD_1_EVADE_3 = 2459, + AUDIO_SAMPLE_PED_TRIAD_1_EVADE_4 = 2460, + AUDIO_SAMPLE_PED_TRIAD_1_CHAT_SEXY_1 = 2461, + AUDIO_SAMPLE_PED_TRIAD_1_CHAT_SEXY_2 = 2462, + AUDIO_SAMPLE_PED_TRIAD_1_CHAT_SEXY_3 = 2463, + AUDIO_SAMPLE_PED_TRIAD_1_ATTACK_1 = 2464, + AUDIO_SAMPLE_PED_TRIAD_1_ATTACK_2 = 2465, + AUDIO_SAMPLE_PED_TRIAD_1_ATTACK_3 = 2466, + AUDIO_SAMPLE_PED_TRIAD_1_ATTACK_4 = 2467, + AUDIO_SAMPLE_PED_TRIAD_1_ATTACK_5 = 2468, + AUDIO_SAMPLE_PED_TRIAD_1_HANDS_UP_1 = 2469, + AUDIO_SAMPLE_PED_TRIAD_1_HANDS_UP_2 = 2470, + AUDIO_SAMPLE_PED_TRIAD_1_HANDS_UP_3 = 2471, + AUDIO_SAMPLE_PED_TRIAD_1_CAR_JACKED_1 = 2472, + AUDIO_SAMPLE_PED_TRIAD_1_CAR_JACKED_2 = 2473, + AUDIO_SAMPLE_PED_TRIAD_1_CAR_JACKING_1 = 2474, + AUDIO_SAMPLE_PED_TRIAD_1_CAR_JACKING_2 = 2475, + AUDIO_SAMPLE_PED_MAFIA_1_CAR_COLLISION_1 = 2476, + AUDIO_SAMPLE_PED_MAFIA_1_CAR_COLLISION_2 = 2477, + AUDIO_SAMPLE_PED_MAFIA_1_CAR_COLLISION_3 = 2478, + AUDIO_SAMPLE_PED_MAFIA_1_CAR_COLLISION_4 = 2479, + AUDIO_SAMPLE_PED_MAFIA_1_CAR_COLLISION_5 = 2480, + AUDIO_SAMPLE_PED_MAFIA_1_CAR_COLLISION_6 = 2481, + AUDIO_SAMPLE_PED_MAFIA_1_CHAT_1 = 2482, + AUDIO_SAMPLE_PED_MAFIA_1_CHAT_2 = 2483, + AUDIO_SAMPLE_PED_MAFIA_1_CHAT_3 = 2484, + AUDIO_SAMPLE_PED_MAFIA_1_CHAT_4 = 2485, + AUDIO_SAMPLE_PED_MAFIA_1_CHAT_5 = 2486, + AUDIO_SAMPLE_PED_MAFIA_1_CHAT_6 = 2487, + AUDIO_SAMPLE_PED_MAFIA_1_CHAT_7 = 2488, + AUDIO_SAMPLE_PED_MAFIA_1_EVADE_1 = 2489, + AUDIO_SAMPLE_PED_MAFIA_1_EVADE_2 = 2490, + AUDIO_SAMPLE_PED_MAFIA_1_EVADE_3 = 2491, + AUDIO_SAMPLE_PED_MAFIA_1_EVADE_4 = 2492, + AUDIO_SAMPLE_PED_MAFIA_1_EVADE_5 = 2493, + AUDIO_SAMPLE_PED_MAFIA_1_CHAT_SEXY_1 = 2494, + AUDIO_SAMPLE_PED_MAFIA_1_CHAT_SEXY_2 = 2495, + AUDIO_SAMPLE_PED_MAFIA_1_CHAT_SEXY_3 = 2496, + AUDIO_SAMPLE_PED_MAFIA_1_ATTACK_1 = 2497, + AUDIO_SAMPLE_PED_MAFIA_1_ATTACK_2 = 2498, + AUDIO_SAMPLE_PED_MAFIA_1_ATTACK_3 = 2499, + AUDIO_SAMPLE_PED_MAFIA_1_ATTACK_4 = 2500, + AUDIO_SAMPLE_PED_MAFIA_1_ATTACK_5 = 2501, + AUDIO_SAMPLE_PED_MAFIA_1_CAR_JACKED_1 = 2502, + AUDIO_SAMPLE_PED_MAFIA_1_CAR_JACKED_2 = 2503, + AUDIO_SAMPLE_PED_MAFIA_1_CAR_JACKING_1 = 2504, + AUDIO_SAMPLE_PED_MAFIA_1_CAR_JACKING_2 = 2505, + AUDIO_SAMPLE_PED_MAFIA_2_CAR_COLLISION_1 = 2506, + AUDIO_SAMPLE_PED_MAFIA_2_CAR_COLLISION_2 = 2507, + AUDIO_SAMPLE_PED_MAFIA_2_CAR_COLLISION_3 = 2508, + AUDIO_SAMPLE_PED_MAFIA_2_CAR_COLLISION_4 = 2509, + AUDIO_SAMPLE_PED_MAFIA_2_CAR_COLLISION_5 = 2510, + AUDIO_SAMPLE_PED_MAFIA_2_CAR_COLLISION_6 = 2511, + AUDIO_SAMPLE_PED_MAFIA_2_CHAT_1 = 2512, + AUDIO_SAMPLE_PED_MAFIA_2_CHAT_2 = 2513, + AUDIO_SAMPLE_PED_MAFIA_2_CHAT_3 = 2514, + AUDIO_SAMPLE_PED_MAFIA_2_CHAT_4 = 2515, + AUDIO_SAMPLE_PED_MAFIA_2_CHAT_5 = 2516, + AUDIO_SAMPLE_PED_MAFIA_2_CHAT_6 = 2517, + AUDIO_SAMPLE_PED_MAFIA_2_CHAT_7 = 2518, + AUDIO_SAMPLE_PED_MAFIA_2_EVADE_1 = 2519, + AUDIO_SAMPLE_PED_MAFIA_2_EVADE_2 = 2520, + AUDIO_SAMPLE_PED_MAFIA_2_EVADE_3 = 2521, + AUDIO_SAMPLE_PED_MAFIA_2_EVADE_4 = 2522, + AUDIO_SAMPLE_PED_MAFIA_2_EVADE_5 = 2523, + AUDIO_SAMPLE_PED_MAFIA_2_CHAT_SEXY_1 = 2524, + AUDIO_SAMPLE_PED_MAFIA_2_CHAT_SEXY_2 = 2525, + AUDIO_SAMPLE_PED_MAFIA_2_CHAT_SEXY_3 = 2526, + AUDIO_SAMPLE_PED_MAFIA_2_ATTACK_1 = 2527, + AUDIO_SAMPLE_PED_MAFIA_2_ATTACK_2 = 2528, + AUDIO_SAMPLE_PED_MAFIA_2_ATTACK_3 = 2529, + AUDIO_SAMPLE_PED_MAFIA_2_ATTACK_4 = 2530, + AUDIO_SAMPLE_PED_MAFIA_2_ATTACK_5 = 2531, + AUDIO_SAMPLE_PED_MAFIA_2_CAR_JACKED_1 = 2532, + AUDIO_SAMPLE_PED_MAFIA_2_CAR_JACKED_2 = 2533, + AUDIO_SAMPLE_PED_MAFIA_2_CAR_JACKING_1 = 2534, + AUDIO_SAMPLE_PED_MAFIA_2_CAR_JACKING_2 = 2535, + AUDIO_SAMPLE_PED_MAFIA_3_CAR_COLLISION_1 = 2536, + AUDIO_SAMPLE_PED_MAFIA_3_CAR_COLLISION_2 = 2537, + AUDIO_SAMPLE_PED_MAFIA_3_CAR_COLLISION_3 = 2538, + AUDIO_SAMPLE_PED_MAFIA_3_CAR_COLLISION_4 = 2539, + AUDIO_SAMPLE_PED_MAFIA_3_CAR_COLLISION_5 = 2540, + AUDIO_SAMPLE_PED_MAFIA_3_CAR_COLLISION_6 = 2541, + AUDIO_SAMPLE_PED_MAFIA_3_CHAT_1 = 2542, + AUDIO_SAMPLE_PED_MAFIA_3_CHAT_2 = 2543, + AUDIO_SAMPLE_PED_MAFIA_3_CHAT_3 = 2544, + AUDIO_SAMPLE_PED_MAFIA_3_CHAT_4 = 2545, + AUDIO_SAMPLE_PED_MAFIA_3_CHAT_5 = 2546, + AUDIO_SAMPLE_PED_MAFIA_3_CHAT_6 = 2547, + AUDIO_SAMPLE_PED_MAFIA_3_CHAT_7 = 2548, + AUDIO_SAMPLE_PED_MAFIA_3_EVADE_1 = 2549, + AUDIO_SAMPLE_PED_MAFIA_3_EVADE_2 = 2550, + AUDIO_SAMPLE_PED_MAFIA_3_EVADE_3 = 2551, + AUDIO_SAMPLE_PED_MAFIA_3_EVADE_4 = 2552, + AUDIO_SAMPLE_PED_MAFIA_3_EVADE_5 = 2553, + AUDIO_SAMPLE_PED_MAFIA_3_CHAT_SEXY_1 = 2554, + AUDIO_SAMPLE_PED_MAFIA_3_CHAT_SEXY_2 = 2555, + AUDIO_SAMPLE_PED_MAFIA_3_CHAT_SEXY_3 = 2556, + AUDIO_SAMPLE_PED_MAFIA_3_ATTACK_1 = 2557, + AUDIO_SAMPLE_PED_MAFIA_3_ATTACK_2 = 2558, + AUDIO_SAMPLE_PED_MAFIA_3_ATTACK_3 = 2559, + AUDIO_SAMPLE_PED_MAFIA_3_ATTACK_4 = 2560, + AUDIO_SAMPLE_PED_MAFIA_3_ATTACK_5 = 2561, + AUDIO_SAMPLE_PED_MAFIA_3_CAR_JACKED_1 = 2562, + AUDIO_SAMPLE_PED_MAFIA_3_CAR_JACKED_2 = 2563, + AUDIO_SAMPLE_PED_MAFIA_3_CAR_JACKING_1 = 2564, + AUDIO_SAMPLE_PED_MAFIA_3_CAR_JACKING_2 = 2565, + AUDIO_SAMPLE_PED_YAKUZA_1_CAR_COLLISION_1 = 2566, + AUDIO_SAMPLE_PED_YAKUZA_1_CAR_COLLISION_2 = 2567, + AUDIO_SAMPLE_PED_YAKUZA_1_CAR_COLLISION_3 = 2568, + AUDIO_SAMPLE_PED_YAKUZA_1_CAR_COLLISION_4 = 2569, + AUDIO_SAMPLE_PED_YAKUZA_1_CAR_COLLISION_5 = 2570, + AUDIO_SAMPLE_PED_YAKUZA_1_CAR_COLLISION_6 = 2571, + AUDIO_SAMPLE_PED_YAKUZA_1_CHAT_1 = 2572, + AUDIO_SAMPLE_PED_YAKUZA_1_CHAT_2 = 2573, + AUDIO_SAMPLE_PED_YAKUZA_1_CHAT_3 = 2574, + AUDIO_SAMPLE_PED_YAKUZA_1_CHAT_4 = 2575, + AUDIO_SAMPLE_PED_YAKUZA_1_CHAT_5 = 2576, + AUDIO_SAMPLE_PED_YAKUZA_1_EVADE_1 = 2577, + AUDIO_SAMPLE_PED_YAKUZA_1_EVADE_2 = 2578, + AUDIO_SAMPLE_PED_YAKUZA_1_EVADE_3 = 2579, + AUDIO_SAMPLE_PED_YAKUZA_1_EVADE_4 = 2580, + AUDIO_SAMPLE_PED_YAKUZA_1_ATTACK_1 = 2581, + AUDIO_SAMPLE_PED_YAKUZA_1_ATTACK_2 = 2582, + AUDIO_SAMPLE_PED_YAKUZA_1_ATTACK_3 = 2583, + AUDIO_SAMPLE_PED_YAKUZA_1_ATTACK_4 = 2584, + AUDIO_SAMPLE_PED_YAKUZA_1_ATTACK_5 = 2585, + AUDIO_SAMPLE_PED_YAKUZA_1_CAR_JACKED_1 = 2586, + AUDIO_SAMPLE_PED_YAKUZA_1_CAR_JACKED_2 = 2587, + AUDIO_SAMPLE_PED_YAKUZA_1_CAR_JACKING_1 = 2588, + AUDIO_SAMPLE_PED_YAKUZA_1_CAR_JACKING_2 = 2589, + AUDIO_SAMPLE_PED_YAKUZA_2_CAR_COLLISION_1 = 2590, + AUDIO_SAMPLE_PED_YAKUZA_2_CAR_COLLISION_2 = 2591, + AUDIO_SAMPLE_PED_YAKUZA_2_CAR_COLLISION_3 = 2592, + AUDIO_SAMPLE_PED_YAKUZA_2_CAR_COLLISION_4 = 2593, + AUDIO_SAMPLE_PED_YAKUZA_2_CAR_COLLISION_5 = 2594, + AUDIO_SAMPLE_PED_YAKUZA_2_CAR_COLLISION_6 = 2595, + AUDIO_SAMPLE_PED_YAKUZA_2_CHAT_1 = 2596, + AUDIO_SAMPLE_PED_YAKUZA_2_CHAT_2 = 2597, + AUDIO_SAMPLE_PED_YAKUZA_2_CHAT_3 = 2598, + AUDIO_SAMPLE_PED_YAKUZA_2_CHAT_4 = 2599, + AUDIO_SAMPLE_PED_YAKUZA_2_CHAT_5 = 2600, + AUDIO_SAMPLE_PED_YAKUZA_2_EVADE_1 = 2601, + AUDIO_SAMPLE_PED_YAKUZA_2_EVADE_2 = 2602, + AUDIO_SAMPLE_PED_YAKUZA_2_EVADE_3 = 2603, + AUDIO_SAMPLE_PED_YAKUZA_2_EVADE_4 = 2604, + AUDIO_SAMPLE_PED_YAKUZA_2_ATTACK_1 = 2605, + AUDIO_SAMPLE_PED_YAKUZA_2_ATTACK_2 = 2606, + AUDIO_SAMPLE_PED_YAKUZA_2_ATTACK_3 = 2607, + AUDIO_SAMPLE_PED_YAKUZA_2_ATTACK_4 = 2608, + AUDIO_SAMPLE_PED_YAKUZA_2_ATTACK_5 = 2609, + AUDIO_SAMPLE_PED_YAKUZA_2_CAR_JACKED_1 = 2610, + AUDIO_SAMPLE_PED_YAKUZA_2_CAR_JACKED_2 = 2611, + AUDIO_SAMPLE_PED_YAKUZA_2_CAR_JACKING_1 = 2612, + AUDIO_SAMPLE_PED_YAKUZA_2_CAR_JACKING_2 = 2613, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CAR_COLLISION_1 = 2614, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CAR_COLLISION_2 = 2615, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CAR_COLLISION_3 = 2616, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CAR_COLLISION_4 = 2617, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CHAT_1 = 2618, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CHAT_2 = 2619, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CHAT_3 = 2620, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CHAT_4 = 2621, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CHAT_5 = 2622, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CHAT_6 = 2623, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CHAT_7 = 2624, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_EVADE_1 = 2625, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_EVADE_2 = 2626, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_EVADE_3 = 2627, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_EVADE_4 = 2628, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_EVADE_5 = 2629, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CHAT_SEXY_1 = 2630, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CHAT_SEXY_2 = 2631, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CHAT_SEXY_3 = 2632, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_ATTACK_1 = 2633, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_ATTACK_2 = 2634, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_ATTACK_3 = 2635, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_ATTACK_4 = 2636, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_ATTACK_5 = 2637, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_HANDS_COWER_1 = 2638, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_HANDS_COWER_2 = 2639, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_HANDS_COWER_3 = 2640, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CAR_JACKED_1 = 2641, + AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_COLLISION_1 = 2642, + AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_COLLISION_2 = 2643, + AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_COLLISION_3 = 2644, + AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_COLLISION_4 = 2645, + AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_COLLISION_5 = 2646, + AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_COLLISION_6 = 2647, + AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_JACKED_1 = 2648, + AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_JACKED_2 = 2649, + AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_JACKED_3 = 2650, + AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_JACKED_4 = 2651, + AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_JACKED_5 = 2652, + AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_JACKED_6 = 2653, + AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_JACKED_7 = 2654, + AUDIO_SAMPLE_PED_TAXI_DRIVER_2_CAR_COLLISION_1 = 2655, + AUDIO_SAMPLE_PED_TAXI_DRIVER_2_CAR_COLLISION_2 = 2656, + AUDIO_SAMPLE_PED_TAXI_DRIVER_2_CAR_COLLISION_3 = 2657, + AUDIO_SAMPLE_PED_TAXI_DRIVER_2_CAR_COLLISION_4 = 2658, + AUDIO_SAMPLE_PED_TAXI_DRIVER_2_CAR_COLLISION_5 = 2659, + AUDIO_SAMPLE_PED_TAXI_DRIVER_2_CAR_COLLISION_6 = 2660, + AUDIO_SAMPLE_PED_TAXI_DRIVER_2_CAR_JACKED_1 = 2661, + AUDIO_SAMPLE_PED_TAXI_DRIVER_2_CAR_JACKED_2 = 2662, + AUDIO_SAMPLE_PED_TAXI_DRIVER_2_CAR_JACKED_3 = 2663, + AUDIO_SAMPLE_PED_TAXI_DRIVER_2_CAR_JACKED_4 = 2664, + AUDIO_SAMPLE_PED_TAXI_DRIVER_2_CAR_JACKED_5 = 2665, + AUDIO_SAMPLE_PED_TAXI_DRIVER_2_CAR_JACKED_6 = 2666, + AUDIO_SAMPLE_PED_TAXI_DRIVER_2_CAR_JACKED_7 = 2667, + AUDIO_SAMPLE_PED_SECURITY_GUARD_CAR_EVENT_1 = 2668, + AUDIO_SAMPLE_PED_SECURITY_GUARD_CAR_EVENT_2 = 2669, + AUDIO_SAMPLE_PED_SECURITY_GUARD_CAR_EVENT_3 = 2670, + AUDIO_SAMPLE_PED_SECURITY_GUARD_CAR_EVENT_4 = 2671, + AUDIO_SAMPLE_PED_SECURITY_GUARD_CAR_EVENT_5 = 2672, + AUDIO_SAMPLE_PED_SECURITY_GUARD_CAR_EVENT_6 = 2673, + AUDIO_SAMPLE_PED_SECURITY_GUARD_ATTACK_1 = 2674, + AUDIO_SAMPLE_PED_SECURITY_GUARD_ATTACK_2 = 2675, + AUDIO_SAMPLE_PED_SECURITY_GUARD_HANDS_UP_1 = 2676, + AUDIO_SAMPLE_PED_SECURITY_GUARD_HANDS_UP_2 = 2677, + AUDIO_SAMPLE_PED_SECURITY_GUARD_HANDS_COWER_1 = 2678, + AUDIO_SAMPLE_PED_SECURITY_GUARD_FLEE_RUN_1 = 2679, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_CHAT_1 = 2680, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_CHAT_2 = 2681, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_CHAT_3 = 2682, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_CHAT_4 = 2683, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_EVADE_1 = 2684, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_EVADE_2 = 2685, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_EVADE_3 = 2686, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_ROBBED_1 = 2687, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_CAR_COLLISION_1 = 2688, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_CAR_COLLISION_2 = 2689, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_CAR_COLLISION_3 = 2690, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_CAR_COLLISION_4 = 2691, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_ATTACK_1 = 2692, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_ATTACK_2 = 2693, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_ATTACK_3 = 2694, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_ATTACK_4 = 2695, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_SOLICIT_1 = 2696, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_SOLICIT_2 = 2697, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_SOLICIT_3 = 2698, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_SOLICIT_4 = 2699, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_SOLICIT_5 = 2700, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_SOLICIT_6 = 2701, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_SOLICIT_7 = 2702, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_SOLICIT_8 = 2703, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_HANDS_UP_1 = 2704, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_HANDS_UP_2 = 2705, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_HANDS_UP_3 = 2706, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_HANDS_UP_4 = 2707, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_CHAT_1 = 2708, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_CHAT_2 = 2709, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_CHAT_3 = 2710, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_CHAT_4 = 2711, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_EVADE_1 = 2712, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_EVADE_2 = 2713, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_EVADE_3 = 2714, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_ROBBED_1 = 2715, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_CAR_COLLISION_1 = 2716, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_CAR_COLLISION_2 = 2717, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_CAR_COLLISION_3 = 2718, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_CAR_COLLISION_4 = 2719, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_ATTACK_1 = 2720, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_ATTACK_2 = 2721, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_ATTACK_3 = 2722, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_ATTACK_4 = 2723, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_SOLICIT_1 = 2724, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_SOLICIT_2 = 2725, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_SOLICIT_3 = 2726, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_SOLICIT_4 = 2727, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_SOLICIT_5 = 2728, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_SOLICIT_6 = 2729, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_SOLICIT_7 = 2730, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_SOLICIT_8 = 2731, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_HANDS_UP_1 = 2732, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_HANDS_UP_2 = 2733, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_HANDS_UP_3 = 2734, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_2_HANDS_UP_4 = 2735, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_CHAT_1 = 2736, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_CHAT_2 = 2737, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_CHAT_3 = 2738, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_CHAT_4 = 2739, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_EVADE_1 = 2740, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_EVADE_2 = 2741, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_EVADE_3 = 2742, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_ROBBED_1 = 2743, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_ROBBED_2 = 2744, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_CAR_COLLISION_1 = 2745, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_CAR_COLLISION_2 = 2746, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_CAR_COLLISION_3 = 2747, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_CAR_COLLISION_4 = 2748, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_ATTACK_1 = 2749, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_ATTACK_2 = 2750, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_ATTACK_3 = 2751, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_ATTACK_4 = 2752, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_SOLICIT_1 = 2753, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_SOLICIT_2 = 2754, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_SOLICIT_3 = 2755, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_SOLICIT_4 = 2756, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_SOLICIT_5 = 2757, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_SOLICIT_6 = 2758, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_SOLICIT_7 = 2759, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_SOLICIT_8 = 2760, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_CHAT_1 = 2761, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_CHAT_2 = 2762, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_CHAT_3 = 2763, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_CHAT_4 = 2764, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_EVADE_1 = 2765, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_EVADE_2 = 2766, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_EVADE_3 = 2767, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_ROBBED_1 = 2768, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_ROBBED_2 = 2769, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_CAR_COLLISION_1 = 2770, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_CAR_COLLISION_2 = 2771, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_CAR_COLLISION_3 = 2772, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_CAR_COLLISION_4 = 2773, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_ATTACK_1 = 2774, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_ATTACK_2 = 2775, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_ATTACK_3 = 2776, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_ATTACK_4 = 2777, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_SOLICIT_1 = 2778, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_SOLICIT_2 = 2779, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_SOLICIT_3 = 2780, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_SOLICIT_4 = 2781, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_SOLICIT_5 = 2782, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_SOLICIT_6 = 2783, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_SOLICIT_7 = 2784, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_2_SOLICIT_8 = 2785, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CHAT_1 = 2786, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CHAT_2 = 2787, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CHAT_3 = 2788, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CHAT_4 = 2789, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CHAT_5 = 2790, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CHAT_6 = 2791, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_EVADE_1 = 2792, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_EVADE_2 = 2793, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_EVADE_3 = 2794, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_EVADE_4 = 2795, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_EVADE_5 = 2796, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_EVADE_6 = 2797, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_EVADE_7 = 2798, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CAR_JACKED_1 = 2799, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CAR_JACKED_2 = 2800, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_ROBBED_1 = 2801, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_ROBBED_2 = 2802, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CAR_COLLISION_1 = 2803, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CAR_COLLISION_2 = 2804, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CAR_COLLISION_3 = 2805, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CAR_COLLISION_4 = 2806, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CAR_COLLISION_5 = 2807, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CAR_COLLISION_6 = 2808, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CHAT_EVENT_1 = 2809, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CHAT_EVENT_2 = 2810, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CHAT_EVENT_3 = 2811, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CHAT_EVENT_4 = 2812, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CHAT_1 = 2813, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CHAT_2 = 2814, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CHAT_3 = 2815, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CHAT_4 = 2816, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CHAT_5 = 2817, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CHAT_6 = 2818, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CHAT_7 = 2819, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_EVADE_1 = 2820, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_EVADE_2 = 2821, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_EVADE_3 = 2822, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_EVADE_4 = 2823, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_EVADE_5 = 2824, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_EVADE_6 = 2825, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CAR_JACKED_1 = 2826, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CAR_JACKED_2 = 2827, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_ROBBED_1 = 2828, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_ROBBED_2 = 2829, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CAR_COLLISION_1 = 2830, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CAR_COLLISION_2 = 2831, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CAR_COLLISION_3 = 2832, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CAR_COLLISION_4 = 2833, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CAR_COLLISION_5 = 2834, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CAR_COLLISION_6 = 2835, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CAR_COLLISION_7 = 2836, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CHAT_EVENT_1 = 2837, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CHAT_EVENT_2 = 2838, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CHAT_EVENT_3 = 2839, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CHAT_EVENT_4 = 2840, + AUDIO_SAMPLE_PED_MALE_DEATH_1 = 2841, + AUDIO_SAMPLE_PED_MALE_DEATH_2 = 2842, + AUDIO_SAMPLE_PED_MALE_DEATH_3 = 2843, + AUDIO_SAMPLE_PED_MALE_DEATH_4 = 2844, + AUDIO_SAMPLE_PED_MALE_DEATH_5 = 2845, + AUDIO_SAMPLE_PED_MALE_DEATH_6 = 2846, + AUDIO_SAMPLE_PED_MALE_DEATH_7 = 2847, + AUDIO_SAMPLE_PED_MALE_DEATH_8 = 2848, + AUDIO_SAMPLE_PED_MALE_BURNING_1 = 2849, + AUDIO_SAMPLE_PED_MALE_BURNING_2 = 2850, + AUDIO_SAMPLE_PED_MALE_BURNING_3 = 2851, + AUDIO_SAMPLE_PED_MALE_BURNING_4 = 2852, + AUDIO_SAMPLE_PED_MALE_BURNING_5 = 2853, + AUDIO_SAMPLE_PED_MALE_BURNING_6 = 2854, + AUDIO_SAMPLE_PED_MALE_BURNING_7 = 2855, + AUDIO_SAMPLE_PED_MALE_BURNING_8 = 2856, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_1 = 2857, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_2 = 2858, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_3 = 2859, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_4 = 2860, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_5 = 2861, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_6 = 2862, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_7 = 2863, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_8 = 2864, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_9 = 2865, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_10 = 2866, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_11 = 2867, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_12 = 2868, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_13 = 2869, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_14 = 2870, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_15 = 2871, + AUDIO_SAMPLE_PED_MALE_FLEE_SPRINT_1 = 2872, + AUDIO_SAMPLE_PED_MALE_FLEE_SPRINT_2 = 2873, + AUDIO_SAMPLE_PED_MALE_FLEE_SPRINT_3 = 2874, + AUDIO_SAMPLE_PED_MALE_FLEE_SPRINT_4 = 2875, + AUDIO_SAMPLE_PED_MALE_FLEE_SPRINT_5 = 2876, + AUDIO_SAMPLE_PED_MALE_FLEE_SPRINT_6 = 2877, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CHAT_1 = 2878, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CHAT_2 = 2879, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CHAT_3 = 2880, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CHAT_4 = 2881, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CHAT_5 = 2882, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CHAT_6 = 2883, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CHAT_7 = 2884, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CHAT_8 = 2885, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CHAT_9 = 2886, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_EVADE_1 = 2887, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_EVADE_2 = 2888, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_EVADE_3 = 2889, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_EVADE_4 = 2890, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_EVADE_5 = 2891, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_EVADE_6 = 2892, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_EVADE_7 = 2893, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_EVADE_8 = 2894, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_EVADE_9 = 2895, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CAR_JACKED_1 = 2896, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CAR_JACKED_2 = 2897, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CAR_JACKED_3 = 2898, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_ROBBED_1 = 2899, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_ROBBED_2 = 2900, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_ROBBED_3 = 2901, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_WAIT_DOUBLEBACK_1 = 2902, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_WAIT_DOUBLEBACK_2 = 2903, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CAR_COLLISION_1 = 2904, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CAR_COLLISION_2 = 2905, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CAR_COLLISION_3 = 2906, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CAR_COLLISION_4 = 2907, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CAR_COLLISION_5 = 2908, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CAR_COLLISION_6 = 2909, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CAR_COLLISION_7 = 2910, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CAR_COLLISION_8 = 2911, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CAR_COLLISION_9 = 2912, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CHAT_1 = 2913, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CHAT_2 = 2914, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CHAT_3 = 2915, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CHAT_4 = 2916, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CHAT_5 = 2917, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CHAT_6 = 2918, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CHAT_7 = 2919, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CHAT_8 = 2920, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_EVADE_1 = 2921, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_EVADE_2 = 2922, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_EVADE_3 = 2923, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_EVADE_4 = 2924, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_EVADE_5 = 2925, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_EVADE_6 = 2926, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CAR_JACKED_1 = 2927, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CAR_JACKED_2 = 2928, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_ROBBED_1 = 2929, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_ROBBED_2 = 2930, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_WAIT_DOUBLEBACK_1 = 2931, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_WAIT_DOUBLEBACK_2 = 2932, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CAR_COLLISION_1 = 2933, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CAR_COLLISION_2 = 2934, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CAR_COLLISION_3 = 2935, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CAR_COLLISION_4 = 2936, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CAR_COLLISION_5 = 2937, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CAR_COLLISION_6 = 2938, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CAR_COLLISION_7 = 2939, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CAR_COLLISION_8 = 2940, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CHAT_EVENT_1 = 2941, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CHAT_EVENT_2 = 2942, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CHAT_EVENT_3 = 2943, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CHAT_EVENT_4 = 2944, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CHAT_1 = 2945, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CHAT_2 = 2946, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CHAT_3 = 2947, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CHAT_4 = 2948, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_EVADE_1 = 2949, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_EVADE_2 = 2950, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_EVADE_3 = 2951, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CAR_JACKED_1 = 2952, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CAR_JACKED_2 = 2953, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_ROBBED_1 = 2954, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CAR_COLLISION_1 = 2955, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CAR_COLLISION_2 = 2956, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CAR_COLLISION_3 = 2957, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CAR_COLLISION_4 = 2958, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CAR_COLLISION_5 = 2959, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CAR_COLLISION_6 = 2960, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CAR_COLLISION_7 = 2961, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CAR_COLLISION_8 = 2962, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CHAT_EVENT_1 = 2963, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CHAT_EVENT_2 = 2964, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_HANDS_COWER_1 = 2965, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_HANDS_COWER_2 = 2966, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_FLEE_RUN_1 = 2967, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_FLEE_RUN_2 = 2968, + AUDIO_SAMPLE_PED_DIABLO_1_CHAT_1 = 2969, + AUDIO_SAMPLE_PED_DIABLO_1_CHAT_2 = 2970, + AUDIO_SAMPLE_PED_DIABLO_1_CHAT_3 = 2971, + AUDIO_SAMPLE_PED_DIABLO_1_CHAT_4 = 2972, + AUDIO_SAMPLE_PED_DIABLO_1_CHAT_5 = 2973, + AUDIO_SAMPLE_PED_DIABLO_1_EVADE_1 = 2974, + AUDIO_SAMPLE_PED_DIABLO_1_EVADE_2 = 2975, + AUDIO_SAMPLE_PED_DIABLO_1_EVADE_3 = 2976, + AUDIO_SAMPLE_PED_DIABLO_1_EVADE_4 = 2977, + AUDIO_SAMPLE_PED_DIABLO_1_CAR_JACKED_1 = 2978, + AUDIO_SAMPLE_PED_DIABLO_1_CAR_JACKED_2 = 2979, + AUDIO_SAMPLE_PED_DIABLO_1_CAR_JACKING_1 = 2980, + AUDIO_SAMPLE_PED_DIABLO_1_CAR_JACKING_2 = 2981, + AUDIO_SAMPLE_PED_DIABLO_1_ATTACK_1 = 2982, + AUDIO_SAMPLE_PED_DIABLO_1_ATTACK_2 = 2983, + AUDIO_SAMPLE_PED_DIABLO_1_ATTACK_3 = 2984, + AUDIO_SAMPLE_PED_DIABLO_1_ATTACK_4 = 2985, + AUDIO_SAMPLE_PED_DIABLO_1_CHAT_SEXY_1 = 2986, + AUDIO_SAMPLE_PED_DIABLO_1_CHAT_SEXY_2 = 2987, + AUDIO_SAMPLE_PED_DIABLO_1_CHAT_SEXY_3 = 2988, + AUDIO_SAMPLE_PED_DIABLO_1_CHAT_SEXY_4 = 2989, + AUDIO_SAMPLE_PED_DIABLO_1_HANDS_UP_1 = 2990, + AUDIO_SAMPLE_PED_DIABLO_1_HANDS_UP_2 = 2991, + AUDIO_SAMPLE_PED_DIABLO_1_HANDS_UP_3 = 2992, + AUDIO_SAMPLE_PED_DIABLO_1_HANDS_UP_4 = 2993, + AUDIO_SAMPLE_PED_DIABLO_1_CAR_COLLISION_1 = 2994, + AUDIO_SAMPLE_PED_DIABLO_1_CAR_COLLISION_2 = 2995, + AUDIO_SAMPLE_PED_DIABLO_1_CAR_COLLISION_3 = 2996, + AUDIO_SAMPLE_PED_DIABLO_1_CAR_COLLISION_4 = 2997, + AUDIO_SAMPLE_PED_DIABLO_1_CAR_COLLISION_5 = 2998, + AUDIO_SAMPLE_PED_DIABLO_2_CHAT_1 = 2999, + AUDIO_SAMPLE_PED_DIABLO_2_CHAT_2 = 3000, + AUDIO_SAMPLE_PED_DIABLO_2_CHAT_3 = 3001, + AUDIO_SAMPLE_PED_DIABLO_2_CHAT_4 = 3002, + AUDIO_SAMPLE_PED_DIABLO_2_CHAT_5 = 3003, + AUDIO_SAMPLE_PED_DIABLO_2_EVADE_1 = 3004, + AUDIO_SAMPLE_PED_DIABLO_2_EVADE_2 = 3005, + AUDIO_SAMPLE_PED_DIABLO_2_EVADE_3 = 3006, + AUDIO_SAMPLE_PED_DIABLO_2_EVADE_4 = 3007, + AUDIO_SAMPLE_PED_DIABLO_2_CAR_JACKED_1 = 3008, + AUDIO_SAMPLE_PED_DIABLO_2_CAR_JACKED_2 = 3009, + AUDIO_SAMPLE_PED_DIABLO_2_CAR_JACKING_1 = 3010, + AUDIO_SAMPLE_PED_DIABLO_2_CAR_JACKING_2 = 3011, + AUDIO_SAMPLE_PED_DIABLO_2_ATTACK_1 = 3012, + AUDIO_SAMPLE_PED_DIABLO_2_ATTACK_2 = 3013, + AUDIO_SAMPLE_PED_DIABLO_2_ATTACK_3 = 3014, + AUDIO_SAMPLE_PED_DIABLO_2_ATTACK_4 = 3015, + AUDIO_SAMPLE_PED_DIABLO_2_CHAT_SEXY_1 = 3016, + AUDIO_SAMPLE_PED_DIABLO_2_CHAT_SEXY_2 = 3017, + AUDIO_SAMPLE_PED_DIABLO_2_CHAT_SEXY_3 = 3018, + AUDIO_SAMPLE_PED_DIABLO_2_CHAT_SEXY_4 = 3019, + AUDIO_SAMPLE_PED_DIABLO_2_HANDS_UP_1 = 3020, + AUDIO_SAMPLE_PED_DIABLO_2_HANDS_UP_2 = 3021, + AUDIO_SAMPLE_PED_DIABLO_2_HANDS_UP_3 = 3022, + AUDIO_SAMPLE_PED_DIABLO_2_HANDS_UP_4 = 3023, + AUDIO_SAMPLE_PED_DIABLO_2_CAR_COLLISION_1 = 3024, + AUDIO_SAMPLE_PED_DIABLO_2_CAR_COLLISION_2 = 3025, + AUDIO_SAMPLE_PED_DIABLO_2_CAR_COLLISION_3 = 3026, + AUDIO_SAMPLE_PED_DIABLO_2_CAR_COLLISION_4 = 3027, + AUDIO_SAMPLE_PED_DIABLO_2_CAR_COLLISION_5 = 3028, + AUDIO_SAMPLE_AMMUNATION_WELCOME_1 = 3029, + AUDIO_SAMPLE_AMMUNATION_WELCOME_2 = 3030, + AUDIO_SAMPLE_AMMUNATION_WELCOME_3 = 3031, + TOTAL_AUDIO_SAMPLES = 3032, + NO_SAMPLE = 3033, +}; From 6c0f81f12abe7e4fca2ca3f386743148e2fff492 Mon Sep 17 00:00:00 2001 From: Filip Gawin Date: Thu, 13 Jun 2019 21:16:55 +0200 Subject: [PATCH 03/17] fixes for AudioManager::GetPhrase --- src/audio/AudioManager.cpp | 91 +++++++++++++++++-- src/audio/AudioManager.h | 18 ++-- src/audio/AudioSamples.h | 173 ++++++++++++++++++++++++++++++++++++- 3 files changed, 267 insertions(+), 15 deletions(-) diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp index 5a290d28..1bcd98ae 100644 --- a/src/audio/AudioManager.cpp +++ b/src/audio/AudioManager.cpp @@ -11,20 +11,95 @@ cAudioManager::PlayerJustLeftCar(void) } void -cAudioManager::GetPhrase(uint32 *phrase, uint32 *prevPhrase, +cAudioManager::GetPhrase(eAudioSamples *phrase, eAudioSamples *prevPhrase, eAudioSamples sample, uint32 maxOffset) { - *phrase = (uint32)sample + - (uint32)m_anRandomTable[m_sQueueSample.m_nEntityIndex & 3] % - maxOffset; - if(*phrase == *prevPhrase && ++*phrase >= (uint32)sample + maxOffset) - *phrase = (uint32)sample; + *phrase = eAudioSamples( + sample + + (uint32)m_anRandomTable[m_sQueueSample.m_nEntityIndex & 3] % + maxOffset); + if(*phrase == *prevPhrase && + ++*(uint32 *)phrase >= (uint32)sample + maxOffset) + *phrase = sample; *prevPhrase = *phrase; } +static bool &bUsedPlayerTalkSfx = *(bool *)0x6508f4; +static eAudioSamples &lastPlayerTalkSfx = *(eAudioSamples *)0x6508f0; + +uint32 +cAudioManager::GetPlayerTalkSfx(eSound sound) +{ + eAudioSamples sfx; + + if(!bUsedPlayerTalkSfx) { + bUsedPlayerTalkSfx = true; + lastPlayerTalkSfx = NO_SAMPLE; + } + switch(sound) { + case SOUND_PED_DAMAGE: + cAudioManager::GetPhrase(&sfx, &lastPlayerTalkSfx, + AUDIO_SAMPLE_PED_DAMAGE_REACTION_1, + 11u); + break; + + case SOUND_PED_HIT: + cAudioManager::GetPhrase(&sfx, &lastPlayerTalkSfx, + AUDIO_SAMPLE_PED_HIT_REACTION_1, 10u); + break; + + case SOUND_PED_LAND: + cAudioManager::GetPhrase(&sfx, &lastPlayerTalkSfx, + AUDIO_SAMPLE_PED_FALL_REACTION_1, 6u); + break; + + default: sfx = NO_SAMPLE; break; + } + return sfx; +} + +static bool &bUsedGenericMaleTalkSfx = *(bool *)0x650B0C; +static eAudioSamples &lastGenericMaleTalkSfx = *(eAudioSamples *)0x650B08; + +uint32 +cAudioManager::GetGenericMaleTalkSfx(eSound sample) +{ + eAudioSamples sfx; + + if(!bUsedGenericMaleTalkSfx) { + bUsedGenericMaleTalkSfx = 1; + lastGenericMaleTalkSfx = NO_SAMPLE; + } + switch(sample) { + case SOUND_PED_DEATH: + cAudioManager::GetPhrase(&sfx, &lastGenericMaleTalkSfx, + AUDIO_SAMPLE_PED_MALE_DEATH_1, 8u); + break; + case SOUND_PED_BULLET_HIT: + case SOUND_PED_DEFEND: + cAudioManager::GetPhrase(&sfx, &lastGenericMaleTalkSfx, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_1, + 15u); + break; + case SOUND_PED_BURNING: + cAudioManager::GetPhrase(&sfx, &lastGenericMaleTalkSfx, + AUDIO_SAMPLE_PED_MALE_BURNING_1, 8u); + break; + case SOUND_PED_FLEE_SPRINT: + cAudioManager::GetPhrase(&sfx, &lastGenericMaleTalkSfx, + AUDIO_SAMPLE_PED_MALE_FLEE_SPRINT_1, + 6u); + break; + default: return NO_SAMPLE; + } + return sfx; +} + WRAPPER void cAudioManager::Service() { EAXJMP(0x57A2A0); } STARTPATCHES - InjectHook(0x56AD20, &cAudioManager::PlayerJustLeftCar, PATCH_JUMP); - InjectHook(0x570DB0, &cAudioManager::GetPhrase, PATCH_JUMP); +InjectHook(0x56AD20, &cAudioManager::PlayerJustLeftCar, PATCH_JUMP); +InjectHook(0x570DB0, &cAudioManager::GetPhrase, PATCH_JUMP); +InjectHook(0x570E00, &cAudioManager::GetPlayerTalkSfx, PATCH_JUMP); +InjectHook(0x575460, &cAudioManager::GetGenericMaleTalkSfx, PATCH_JUMP); ENDPATCHES diff --git a/src/audio/AudioManager.h b/src/audio/AudioManager.h index d6d831f1..94b430db 100644 --- a/src/audio/AudioManager.h +++ b/src/audio/AudioManager.h @@ -72,7 +72,7 @@ enum eAudioType : int32 { class tAudioEntity { -public: + public: eAudioType m_nType; void *m_pEntity; char m_bIsUsed; @@ -100,7 +100,8 @@ public: static_assert(sizeof(tPedComment) == 0x1c, "tPedComment: error"); -class cPedComments { +class cPedComments +{ public: tPedComment m_asPedComments[40]; char field_1120[40]; @@ -113,7 +114,8 @@ static_assert(sizeof(cPedComments) == 0x48c, "cPedComments: error"); class CEntity; -class cAudioCollision { +class cAudioCollision +{ public: CEntity *m_pEntity1; CEntity *m_pEntity2; @@ -130,7 +132,8 @@ public: static_assert(sizeof(cAudioCollision) == 0x28, "cAudioCollision: error"); -class cAudioCollisionManager { +class cAudioCollisionManager +{ public: cAudioCollision m_asCollisions1[10]; cAudioCollision m_asCollisions2[10]; @@ -212,8 +215,11 @@ public: void PlayerJustLeftCar(void); void Service(); - void GetPhrase(uint32 *a2, uint32 *a3, eAudioSamples sample, - uint32 maxOffset); + void GetPhrase(eAudioSamples *phrase, eAudioSamples *prevPhrase, + eAudioSamples sample, uint32 maxOffset); + + uint32 GetPlayerTalkSfx(eSound sound); + uint32 GetGenericMaleTalkSfx(eSound sound); }; static_assert(sizeof(cAudioManager) == 0x4B14, "cAudioManager: error"); diff --git a/src/audio/AudioSamples.h b/src/audio/AudioSamples.h index 49d21ff6..24544e56 100644 --- a/src/audio/AudioSamples.h +++ b/src/audio/AudioSamples.h @@ -2,7 +2,7 @@ #include "common.h" -enum eAudioSamples : int32 { +enum eAudioSamples : uint32 { AUDIO_SAMPLE_VEHICLE_HORN_0 = 0, AUDIO_SAMPLE_VEHICLE_HORN_1 = 1, AUDIO_SAMPLE_VEHICLE_HORN_2 = 2, @@ -3038,3 +3038,174 @@ enum eAudioSamples : int32 { TOTAL_AUDIO_SAMPLES = 3032, NO_SAMPLE = 3033, }; + +enum eSound { + SOUND_CAR_DOOR_CLOSE_BONNET = 0, + SOUND_CAR_DOOR_CLOSE_BUMPER = 1, + SOUND_CAR_DOOR_CLOSE_FRONT_LEFT = 0x2, + SOUND_CAR_DOOR_CLOSE_FRONT_RIGHT = 0x3, + SOUND_CAR_DOOR_CLOSE_BACK_LEFT = 0x4, + SOUND_CAR_DOOR_CLOSE_BACK_RIGHT = 0x5, + SOUND_CAR_DOOR_OPEN_BONNET = 0x6, + SOUND_CAR_DOOR_OPEN_BUMPER = 0x7, + SOUND_CAR_DOOR_OPEN_FRONT_LEFT = 0x8, + SOUND_CAR_DOOR_OPEN_FRONT_RIGHT = 0x9, + SOUND_CAR_DOOR_OPEN_BACK_LEFT = 0xA, + SOUND_CAR_DOOR_OPEN_BACK_RIGHT = 0xB, + SOUND_CAR_WINDSHIELD_CRACK = 0xC, + SOUND_CAR_JUMP = 0xD, + SOUND_E = 0xE, + SOUND_F = 0xF, + SOUND_CAR_ENGINE_START = 0x10, + SOUND_CAR_LIGHT_BREAK = 0x11, + SOUND_CAR_HYDRALIC_1 = 0x12, + SOUND_CAR_HYDRALIC_2 = 0x13, + SOUND_CAR_HYDRALIC_3 = 0x14, + SOUND_CAR_JERK = 0x15, + SOUND_CAR_SPLASH = 0x16, + SOUND_17 = 0x17, + SOUND_18 = 0x18, + SOUND_19 = 0x19, + SOUND_CAR_TANK_TURRET_ROTATE = 0x1A, + SOUND_CAR_BOMB_TICK = 0x1B, + SOUND_PLANE_ON_GROUND = 0x1C, + SOUND_STEP_START = 0x1D, + SOUND_STEP_END = 0x1E, + SOUND_FALL_LAND = 0x1F, + SOUND_FALL_COLLAPSE = 0x20, + SOUND_21 = 0x21, + SOUND_22 = 0x22, + SOUND_23 = 0x23, + SOUND_24 = 0x24, + SOUND_25 = 0x25, + SOUND_26 = 0x26, + SOUND_WEAPON_PUNCH_ATTACK = 0x27, + SOUND_28 = 0x28, + SOUND_29 = 0x29, + SOUND_2A = 0x2A, + SOUND_2B = 0x2B, + SOUND_2C = 0x2C, + SOUND_2D = 0x2D, + SOUND_WEAPON_BAT_ATTACK = 0x2E, + SOUND_WEAPON_SHOT_FIRED = 0x2F, + SOUND_WEAPON_RELOAD = 0x30, + SOUND_31 = 0x31, + SOUND_32 = 0x32, + SOUND_33 = 0x33, + SOUND_WEAPON_FLAMETHROWER_FIRE = 0x34, + SOUND_WEAPON_SNIPER_SHOT_NO_ZOOM = 0x35, + SOUND_WEAPON_ROCKET_SHOT_NO_ZOOM = 0x36, + SOUND_WEAPON_HIT_PED = 0x37, + SOUND_WEAPON_HIT_VEHICLE = 0x38, + SOUND_GARAGE_NO_MONEY = 0x39, + SOUND_GARAGE_BAD_VEHICLE = 0x3A, + SOUND_GARAGE_OPENING = 0x3B, + SOUND_3C = 0x3C, + SOUND_GARAGE_BOMB1_SET = 0x3D, + SOUND_GARAGE_BOMB2_SET = 0x3E, + SOUND_GARAGE_BOMB3_SET = 0x3F, + SOUND_40 = 0x40, + SOUND_41 = 0x41, + SOUND_GARAGE_VEHICLE_DECLINED = 0x42, + SOUND_GARAGE_VEHICLE_ACCEPTED = 0x43, + SOUND_GARAGE_DOOR_CLOSED = 0x44, + SOUND_GARAGE_DOOR_OPENED = 0x45, + SOUND_CRANE_PICKUP = 0x46, + SOUND_PICKUP_WEAPON_BOUGHT = 0x47, + SOUND_PICKUP_WEAPON = 0x48, + SOUND_PICKUP_HEALTH = 0x49, + SOUND_4A = 0x4A, + SOUND_4B = 0x4B, + SOUND_PICKUP_ADRENALINE = 0x4C, + SOUND_PICKUP_ARMOUR = 0x4D, + SOUND_PICKUP_BONUS = 0x4E, + SOUND_PICKUP_MONEY = 0x4F, + SOUND_PICKUP_HIDDEN_PACKAGE = 0x50, + SOUND_PICKUP_PACMAN_PILL = 0x51, + SOUND_PICKUP_PACMAN_PACKAGE = 0x52, + SOUND_PICKUP_FLOAT_PACKAGE = 0x53, + SOUND_BOMB_TIMED_ACTIVATED = 0x54, + SOUND_55 = 0x55, + SOUND_BOMB_ONIGNITION_ACTIVATED = 0x56, + SOUND_BOMB_TICK = 0x57, + SOUND_RAMPAGE_START = 0x58, + SOUND_RAMPAGE_ONGOING = 0x59, + SOUND_RAMPAGE_PASSED = 0x5A, + SOUND_RAMPAGE_FAILED = 0x5B, + SOUND_RAMPAGE_KILL = 0x5C, + SOUND_RAMPAGE_CAR_BLOWN = 0x5D, + SOUND_EVIDENCE_PICKUP = 0x5E, + SOUND_UNLOAD_GOLD = 0x5F, + SOUND_PAGER = 0x60, + SOUND_PED_DEATH = 0x61, + SOUND_PED_DAMAGE = 0x62, + SOUND_PED_HIT = 0x63, + SOUND_PED_LAND = 0x64, + SOUND_PED_BULLET_HIT = 0x65, + SOUND_PED_BOMBER = 0x66, + SOUND_PED_BURNING = 0x67, + SOUND_PED_ARREST_FBI = 0x68, + SOUND_PED_ARREST_SWAT = 0x69, + SOUND_PED_ARREST_COP = 0x6A, + SOUND_PED_HELI_PLAYER_FOUND = 0x6B, + SOUND_PED_HANDS_UP = 0x6C, + SOUND_PED_HANDS_COWER = 0x6D, + SOUND_PED_FLEE_SPRINT = 0x6E, + SOUND_PED_CAR_JACKING = 0x6F, + SOUND_PED_MUGGING = 0x70, + SOUND_PED_CAR_JACKED = 0x71, + SOUND_PED_ROBBED = 0x72, + SOUND_PED_TAXI_WAIT = 0x73, + SOUND_PED_ATTACK = 0x74, + SOUND_PED_DEFEND = 0x75, + SOUND_PED_PURSUIT_ARMY = 0x76, + SOUND_PED_PURSUIT_FBI = 0x77, + SOUND_PED_PURSUIT_SWAT = 0x78, + SOUND_PED_PURSUIT_COP = 0x79, + SOUND_PED_HEALING = 0x7A, + SOUND_PED_7B = 0x7B, + SOUND_PED_LEAVE_VEHICLE = 0x7C, + SOUND_PED_EVADE = 0x7D, + SOUND_PED_FLEE_RUN = 0x7E, + SOUND_PED_CAR_COLLISION = 0x7F, + SOUND_PED_SOLICIT = 0x80, + SOUND_PED_EXTINGUISHING_FIRE = 0x81, + SOUND_PED_WAIT_DOUBLEBACK = 0x82, + SOUND_PED_CHAT_SEXY = 0x83, + SOUND_PED_CHAT_EVENT = 0x84, + SOUND_PED_CHAT = 0x85, + SOUND_PED_BODYCAST_HIT = 0x86, + SOUND_PED_TAXI_CALL = 0x87, + SOUND_INJURED_PED_MALE_OUCH = 0x88, + SOUND_INJURED_PED_FEMALE = 0x89, + SOUND_8A = 0x8A, + SOUND_RACE_START_3 = 0x8B, + SOUND_RACE_START_2 = 0x8C, + SOUND_RACE_START_1 = 0x8D, + SOUND_RACE_START_GO = 0x8E, + SOUND_SPLASH = 0x8F, + SOUND_WATER_FALL = 0x90, + SOUND_SPLATTER = 0x91, + SOUND_CAR_PED_COLLISION = 0x92, + SOUND_CLOCK_TICK = 0x93, + SOUND_PART_MISSION_COMPLETE = 0x94, + SOUND_FRONTEND_MENU_STARTING = 0x95, + SOUND_FRONTEND_MENU_COMPLETED = 0x96, + SOUND_FRONTEND_MENU_DENIED = 0x97, + SOUND_FRONTEND_MENU_SUCCESS = 0x98, + SOUND_FRONTEND_EXIT = 0x99, + SOUND_9A = 0x9A, + SOUND_9B = 0x9B, + SOUND_FRONTEND_AUDIO_TEST = 0x9C, + SOUND_FRONTEND_FAIL = 0x9D, + SOUND_FRONTEND_NO_RADIO = 0x9E, + SOUND_FRONTEND_RADIO_CHANGE = 0x9F, + SOUND_A0 = 0xA0, + SOUND_AMMUNATION_WELCOME_1 = 0xA1, + SOUND_AMMUNATION_WELCOME_2 = 0xA2, + SOUND_AMMUNATION_WELCOME_3 = 0xA3, + SOUND_LIGHTNING = 0xA4, + SOUND_A5 = 0xA5, + SOUND_TOTAL_SOUNDS = 166, + SOUND_TOTAL_PED_SOUNDS = 167, +}; From 72ab7296239f03524177b20a4247cba1b7796884 Mon Sep 17 00:00:00 2001 From: Filip Gawin Date: Thu, 27 Jun 2019 18:45:16 +0200 Subject: [PATCH 04/17] Implement some GetXTalkSfx methods --- src/audio/AudioManager.cpp | 616 ++++++++++++++++++++++++++++++++++--- src/audio/AudioManager.h | 32 +- src/audio/AudioSamples.h | 173 +---------- src/audio/DMAudio.h | 4 +- src/entities/Ped.h | 6 +- 5 files changed, 610 insertions(+), 221 deletions(-) diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp index 1bcd98ae..205a3f90 100644 --- a/src/audio/AudioManager.cpp +++ b/src/audio/AudioManager.cpp @@ -1,8 +1,12 @@ +#include "AudioManager.h" +#include "DMAudio.h" +#include "Ped.h" +#include "PlayerPed.h" +#include "World.h" #include "common.h" #include "patcher.h" -#include "AudioManager.h" -cAudioManager &AudioManager = *(cAudioManager*)0x880FC0; +cAudioManager &AudioManager = *(cAudioManager *)0x880FC0; void cAudioManager::PlayerJustLeftCar(void) @@ -11,26 +15,25 @@ cAudioManager::PlayerJustLeftCar(void) } void -cAudioManager::GetPhrase(eAudioSamples *phrase, eAudioSamples *prevPhrase, - eAudioSamples sample, uint32 maxOffset) +cAudioManager::GetPhrase(uint32 *phrase, uint32 *prevPhrase, uint32 sample, + uint32 maxOffset) { - *phrase = eAudioSamples( - sample + - (uint32)m_anRandomTable[m_sQueueSample.m_nEntityIndex & 3] % - maxOffset); - if(*phrase == *prevPhrase && - ++*(uint32 *)phrase >= (uint32)sample + maxOffset) + *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; } -static bool &bUsedPlayerTalkSfx = *(bool *)0x6508f4; -static eAudioSamples &lastPlayerTalkSfx = *(eAudioSamples *)0x6508f0; - uint32 -cAudioManager::GetPlayerTalkSfx(eSound sound) +cAudioManager::GetPlayerTalkSfx(int16 sound) { - eAudioSamples sfx; + uint32 sfx; + static bool &bUsedPlayerTalkSfx = *(bool *)0x6508f4; + static uint32 &lastPlayerTalkSfx = *(uint32 *)0x6508f0; if(!bUsedPlayerTalkSfx) { bUsedPlayerTalkSfx = true; @@ -38,19 +41,18 @@ cAudioManager::GetPlayerTalkSfx(eSound sound) } switch(sound) { case SOUND_PED_DAMAGE: - cAudioManager::GetPhrase(&sfx, &lastPlayerTalkSfx, - AUDIO_SAMPLE_PED_DAMAGE_REACTION_1, - 11u); + GetPhrase(&sfx, &lastPlayerTalkSfx, + AUDIO_SAMPLE_PED_DAMAGE_REACTION_1, 11u); break; case SOUND_PED_HIT: - cAudioManager::GetPhrase(&sfx, &lastPlayerTalkSfx, - AUDIO_SAMPLE_PED_HIT_REACTION_1, 10u); + GetPhrase(&sfx, &lastPlayerTalkSfx, + AUDIO_SAMPLE_PED_HIT_REACTION_1, 10u); break; case SOUND_PED_LAND: - cAudioManager::GetPhrase(&sfx, &lastPlayerTalkSfx, - AUDIO_SAMPLE_PED_FALL_REACTION_1, 6u); + GetPhrase(&sfx, &lastPlayerTalkSfx, + AUDIO_SAMPLE_PED_FALL_REACTION_1, 6u); break; default: sfx = NO_SAMPLE; break; @@ -58,13 +60,537 @@ cAudioManager::GetPlayerTalkSfx(eSound sound) return sfx; } -static bool &bUsedGenericMaleTalkSfx = *(bool *)0x650B0C; -static eAudioSamples &lastGenericMaleTalkSfx = *(eAudioSamples *)0x650B08; +uint32 +cAudioManager::GetCopTalkSfx(int16 sample) +{ + uint32 sfx; + PedState pedState; + static bool &bUsedCopTalkSfx = *(bool *)0x6508FC; + static uint32 &lastCopTalkSfx = *(uint32 *)0x6508F8; + + if(!bUsedCopTalkSfx) { + bUsedCopTalkSfx = 1; + lastCopTalkSfx = NO_SAMPLE; + } + + if(sample == SOUND_PED_ARREST_COP) { + GetPhrase(&sfx, &lastCopTalkSfx, + AUDIO_SAMPLE_POLICE_COP_1_ARREST_1, 6u); + } else { + if(sample != SOUND_PED_PURSUIT_COP) { + return cAudioManager::GetGenericMaleTalkSfx(sample); + } + + pedState = FindPlayerPed()->m_nPedState; + if(pedState == PED_ARRESTED || pedState == PED_DEAD || + pedState == PED_DIE) + return NO_SAMPLE; + GetPhrase(&sfx, &lastCopTalkSfx, + AUDIO_SAMPLE_POLICE_COP_1_PURSUIT_1, 7u); + } + + return 13 * (m_sQueueSample.m_nEntityIndex % 5) + sfx; +} uint32 -cAudioManager::GetGenericMaleTalkSfx(eSound sample) +cAudioManager::GetSwatTalkSfx(int16 sample) { - eAudioSamples sfx; + uint32 sfx; + PedState pedState; + static bool &bUsedSwatTalkSfx = *(bool *)0x650904; + static uint32 &lastSwatTalkSfx = *(uint32 *)0x650900; + + if(!bUsedSwatTalkSfx) { + bUsedSwatTalkSfx = 1; + lastSwatTalkSfx = NO_SAMPLE; + } + + if(sample == SOUND_PED_ARREST_SWAT) { + GetPhrase(&sfx, &lastSwatTalkSfx, + AUDIO_SAMPLE_POLICE_SWAT_1_PURSUIT_ARREST_1, 6u); + } else { + if(sample != SOUND_PED_PURSUIT_SWAT) { + return cAudioManager::GetGenericMaleTalkSfx(sample); + } + + pedState = FindPlayerPed()->m_nPedState; + if(pedState == PED_ARRESTED || pedState == PED_DEAD || + pedState == PED_DIE) + return NO_SAMPLE; + GetPhrase(&sfx, &lastSwatTalkSfx, + AUDIO_SAMPLE_POLICE_SWAT_1_PURSUIT_ARREST_1, 6u); + } + + return 6 * (m_sQueueSample.m_nEntityIndex % 3) + sfx; +} + +uint32 +cAudioManager::GetFBITalkSfx(int16 sample) +{ + uint32 sfx; + PedState pedState; + static bool &bUsedFBITalkSfx = *(bool *)0x65090C; + static uint32 &lastFBITalkSfx = *(uint32 *)0x650908; + + if(!bUsedFBITalkSfx) { + bUsedFBITalkSfx = 1; + lastFBITalkSfx = NO_SAMPLE; + } + + if(sample == SOUND_PED_ARREST_FBI) { + GetPhrase(&sfx, &lastFBITalkSfx, + AUDIO_SAMPLE_POLICE_FBI_1_PURSUIT_ARREST_1, 6u); + } else { + if(sample != SOUND_PED_PURSUIT_FBI) { + return cAudioManager::GetGenericMaleTalkSfx(sample); + } + + pedState = FindPlayerPed()->m_nPedState; + if(pedState == PED_ARRESTED || pedState == PED_DEAD || + pedState == PED_DIE) + return NO_SAMPLE; + GetPhrase(&sfx, &lastFBITalkSfx, + AUDIO_SAMPLE_POLICE_FBI_1_PURSUIT_ARREST_1, 6u); + } + + return 6 * (m_sQueueSample.m_nEntityIndex % 3) + sfx; +} + +uint32 +cAudioManager::GetArmyTalkSfx(int16 sample) +{ + uint32 sfx; + PedState pedState; + static bool &bUsedArmyTalkSfx = *(bool *)0x650914; + static uint32 &lastArmyTalkSfx = *(uint32 *)0x650910; + + if(!bUsedArmyTalkSfx) { + bUsedArmyTalkSfx = 1; + lastArmyTalkSfx = NO_SAMPLE; + } + + if(sample != SOUND_PED_PURSUIT_ARMY) { + return cAudioManager::GetGenericMaleTalkSfx(sample); + } + + pedState = FindPlayerPed()->m_nPedState; + if(pedState == PED_ARRESTED || pedState == PED_DEAD || + pedState == PED_DIE) + return NO_SAMPLE; + GetPhrase(&sfx, &lastArmyTalkSfx, AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_1, + 15u); + + return 15 * (m_sQueueSample.m_nEntityIndex % 1) + sfx; +} + +uint32 +cAudioManager::GetMedicTalkSfx(int16 sample) +{ + uint32 sfx; + static bool &bUsedMedicTalkSfx = *(bool *)0x65091C; + static uint32 &lastMedicTalkSfx = *(uint32 *)0x650918; + + if(!bUsedMedicTalkSfx) { + bUsedMedicTalkSfx = true; + lastMedicTalkSfx = NO_SAMPLE; + } + switch(sample) { + case SOUND_PED_HANDS_COWER: + GetPhrase(&sfx, &lastMedicTalkSfx, + AUDIO_SAMPLE_PED_MEDIC_1_HANDS_COWER_1, 5u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastMedicTalkSfx, + AUDIO_SAMPLE_PED_MEDIC_1_CAR_JACKED_1, 5u); + break; + case SOUND_PED_HEALING: + GetPhrase(&sfx, &lastMedicTalkSfx, + AUDIO_SAMPLE_PED_MEDIC_1_HEALING_1, 12u); + break; + case SOUND_PED_LEAVE_VEHICLE: + GetPhrase(&sfx, &lastMedicTalkSfx, + AUDIO_SAMPLE_PED_MEDIC_1_LEAVE_VEHICLE_1, 9u); + break; + case SOUND_PED_FLEE_RUN: + GetPhrase(&sfx, &lastMedicTalkSfx, + AUDIO_SAMPLE_PED_MEDIC_1_FLEE_RUN_1, 6u); + break; + default: return cAudioManager::GetGenericMaleTalkSfx(sample); + } + return 37 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; +} + +uint32 +cAudioManager::GetFiremanTalkSfx(int16 sample) +{ + return cAudioManager::GetGenericMaleTalkSfx(sample); +} + +uint32 +cAudioManager::GetNormalMaleTalkSfx(int16 sample) +{ + uint32 sfx; + static bool &bUsedNormalMaleTalkSfx = *(bool *)0x650B04; + static uint32 &lastNormalMaleTalkSfx = *(uint32 *)0x650B00; + + if(!bUsedNormalMaleTalkSfx) { + bUsedNormalMaleTalkSfx = 1; + lastNormalMaleTalkSfx = NO_SAMPLE; + } + switch(sample) { + case SOUND_PED_HANDS_COWER: + GetPhrase(&sfx, &lastNormalMaleTalkSfx, + AUDIO_SAMPLE_PED_NORMAL_MALE_HANDS_COWER_1, 7u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastNormalMaleTalkSfx, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_JACKED_1, 7u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastNormalMaleTalkSfx, + AUDIO_SAMPLE_PED_NORMAL_MALE_EVADE_1, 9u); + break; + case SOUND_PED_FLEE_RUN: + GetPhrase(&sfx, &lastNormalMaleTalkSfx, + AUDIO_SAMPLE_PED_NORMAL_MALE_FLEE_RUN_1, 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastNormalMaleTalkSfx, + AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_COLLISION_1, 12u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastNormalMaleTalkSfx, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_SEXY_1, 8u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastNormalMaleTalkSfx, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_EVENT_1, 0xAu); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastNormalMaleTalkSfx, + AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_1, 25u); + break; + default: return cAudioManager::GetGenericMaleTalkSfx(sample); + } + return sfx; +} + +uint32 +cAudioManager::GetTaxiDriverTalkSfx(int16 sample) +{ + uint32 sfx; + static bool &bUsedTaxiDriverTalkSfx = *(bool *)0x650AF4; + static uint32 &lastTaxiDriverTalkSfx = *(uint32 *)0x650AF0; + + if(!bUsedTaxiDriverTalkSfx) { + bUsedTaxiDriverTalkSfx = 1; + lastTaxiDriverTalkSfx = NO_SAMPLE; + } + + if(sample == SOUND_PED_CAR_JACKED) { + GetPhrase(&sfx, &lastTaxiDriverTalkSfx, + AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_JACKED_1, 7u); + } else { + if(sample != SOUND_PED_CAR_COLLISION) + return cAudioManager::GetGenericMaleTalkSfx(sample); + GetPhrase(&sfx, &lastTaxiDriverTalkSfx, + AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_COLLISION_1, 6u); + } + return 13 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; +} + +uint32 +cAudioManager::GetPimpTalkSfx(int16 sample) +{ + uint32 sfx; + static bool &bUsedPimpTalkSfx = *(bool *)0x650AFC; + static uint32 &lastPimpTalkSfx = *(uint32 *)0x650AF8; + + if(!bUsedPimpTalkSfx) { + bUsedPimpTalkSfx = 1; + lastPimpTalkSfx = NO_SAMPLE; + } + + switch(sample) { + case SOUND_PED_HANDS_UP: + GetPhrase(&sfx, &lastPimpTalkSfx, + AUDIO_SAMPLE_PED_PIMP_HANDS_UP_1, 7u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastPimpTalkSfx, + AUDIO_SAMPLE_PED_PIMP_CAR_JACKED_1, 4u); + break; + case SOUND_PED_DEFEND: + GetPhrase(&sfx, &lastPimpTalkSfx, + AUDIO_SAMPLE_PED_PIMP_DEFEND_1, 9u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastPimpTalkSfx, AUDIO_SAMPLE_PED_PIMP_EVADE_1, + 6u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastPimpTalkSfx, + AUDIO_SAMPLE_PED_PIMP_CAR_COLLISION_1, 5u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastPimpTalkSfx, + AUDIO_SAMPLE_PED_PIMP_CHAT_EVENT_1, 2u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastPimpTalkSfx, AUDIO_SAMPLE_PED_PIMP_CHAT_1, + 17u); + break; + default: return cAudioManager::GetGenericMaleTalkSfx(sample); + } + return sfx; +} + +uint32 +cAudioManager::GetMafiaTalkSfx(int16 sample) +{ + uint32 sfx; + static bool &bUsedMafiaTalkSfx = *(bool *)0x650934; + static uint32 &lastMafiaTalkSfx = *(uint32 *)0x650930; + + if(!bUsedMafiaTalkSfx) { + bUsedMafiaTalkSfx = 1; + lastMafiaTalkSfx = NO_SAMPLE; + } + + switch(sample) { + case SOUND_PED_CAR_JACKING: + GetPhrase(&sfx, &lastMafiaTalkSfx, + AUDIO_SAMPLE_PED_MAFIA_1_CAR_JACKING_1, 2u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastMafiaTalkSfx, + AUDIO_SAMPLE_PED_MAFIA_1_CAR_JACKED_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastMafiaTalkSfx, + AUDIO_SAMPLE_PED_MAFIA_1_ATTACK_1, 5u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastMafiaTalkSfx, + AUDIO_SAMPLE_PED_MAFIA_1_EVADE_1, 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastMafiaTalkSfx, + AUDIO_SAMPLE_PED_MAFIA_1_CAR_COLLISION_1, 6u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastMafiaTalkSfx, + AUDIO_SAMPLE_PED_MAFIA_1_CHAT_SEXY_1, 3u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastMafiaTalkSfx, + AUDIO_SAMPLE_PED_MAFIA_1_CHAT_1, 7u); + break; + default: return cAudioManager::GetGenericMaleTalkSfx(sample); + } + return 30 * (m_sQueueSample.m_nEntityIndex % 3) + sfx; +} + +uint32 +cAudioManager::GetTriadTalkSfx(int16 sample) +{ + uint32 sfx; + static bool &bUsedTriadTalkSfx = *(bool *)0x65093C; + static uint32 &lastTriadTalkSfx = *(uint32 *)0x650938; + + if(!bUsedTriadTalkSfx) { + bUsedTriadTalkSfx = 1; + lastTriadTalkSfx = NO_SAMPLE; + } + + switch(sample) { + case SOUND_PED_HANDS_UP: + GetPhrase(&sfx, &lastTriadTalkSfx, + AUDIO_SAMPLE_PED_TRIAD_1_HANDS_UP_1, 3u); + break; + case SOUND_PED_CAR_JACKING: + GetPhrase(&sfx, &lastTriadTalkSfx, + AUDIO_SAMPLE_PED_TRIAD_1_CAR_JACKING_1, 2u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastTriadTalkSfx, + AUDIO_SAMPLE_PED_TRIAD_1_CAR_JACKED_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastTriadTalkSfx, + AUDIO_SAMPLE_PED_TRIAD_1_ATTACK_1, 5u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastTriadTalkSfx, + AUDIO_SAMPLE_PED_TRIAD_1_EVADE_1, 4u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastTriadTalkSfx, + AUDIO_SAMPLE_PED_TRIAD_1_CAR_COLLISION_1, 7u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastTriadTalkSfx, + AUDIO_SAMPLE_PED_TRIAD_1_CHAT_SEXY_1, 3u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastTriadTalkSfx, + AUDIO_SAMPLE_PED_TRIAD_1_CHAT_1, 8u); + break; + default: return cAudioManager::GetGenericMaleTalkSfx(sample); + } + return sfx; +} + +uint32 +cAudioManager::GetDiabloTalkSfx(int16 sample) +{ + uint32 sfx; + static bool &bUsedDiabloTalkSfx = *(bool *)0x650944; + static uint32 &lastDiabloTalkSfx = *(uint32 *)0x650940; + + if(!bUsedDiabloTalkSfx) { + bUsedDiabloTalkSfx = 1; + lastDiabloTalkSfx = NO_SAMPLE; + } + + switch(sample) { + case SOUND_PED_HANDS_UP: + GetPhrase(&sfx, &lastDiabloTalkSfx, + AUDIO_SAMPLE_PED_DIABLO_1_HANDS_UP_1, 4u); + break; + case SOUND_PED_HANDS_COWER: + sample = SOUND_PED_FLEE_SPRINT; + return cAudioManager::GetGenericMaleTalkSfx(sample); + break; + case SOUND_PED_CAR_JACKING: + GetPhrase(&sfx, &lastDiabloTalkSfx, + AUDIO_SAMPLE_PED_DIABLO_1_CAR_JACKING_1, 2u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastDiabloTalkSfx, + AUDIO_SAMPLE_PED_DIABLO_1_CAR_JACKED_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastDiabloTalkSfx, + AUDIO_SAMPLE_PED_DIABLO_1_ATTACK_1, 4u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastDiabloTalkSfx, + AUDIO_SAMPLE_PED_DIABLO_1_EVADE_1, 4u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastDiabloTalkSfx, + AUDIO_SAMPLE_PED_DIABLO_1_CAR_COLLISION_1, 5u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastDiabloTalkSfx, + AUDIO_SAMPLE_PED_DIABLO_1_CHAT_SEXY_1, 4u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastDiabloTalkSfx, + AUDIO_SAMPLE_PED_DIABLO_1_CHAT_1, 5u); + break; + default: return cAudioManager::GetGenericMaleTalkSfx(sample); + } + return 30 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; +} + +uint32 +cAudioManager::GetYakuzaTalkSfx(int16 sample) +{ + uint32 sfx; + static bool &bUsedYakuzaTalkSfx = *(bool *)0x65094C; + static uint32 &lastYakuzaTalkSfx = *(uint32 *)0x650948; + + if(!bUsedYakuzaTalkSfx) { + bUsedYakuzaTalkSfx = 1; + lastYakuzaTalkSfx = NO_SAMPLE; + } + + switch(sample) { + case SOUND_PED_CAR_JACKING: + GetPhrase(&sfx, &lastYakuzaTalkSfx, + AUDIO_SAMPLE_PED_YAKUZA_1_CAR_JACKING_1, 2u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastYakuzaTalkSfx, + AUDIO_SAMPLE_PED_YAKUZA_1_CAR_JACKED_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastYakuzaTalkSfx, + AUDIO_SAMPLE_PED_YAKUZA_1_ATTACK_1, 5u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastYakuzaTalkSfx, + AUDIO_SAMPLE_PED_YAKUZA_1_EVADE_1, 4u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastYakuzaTalkSfx, + AUDIO_SAMPLE_PED_YAKUZA_1_CAR_COLLISION_1, 6u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastYakuzaTalkSfx, + AUDIO_SAMPLE_PED_YAKUZA_1_CHAT_1, 5u); + break; + default: return cAudioManager::GetGenericMaleTalkSfx(sample); + } + return 24 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; +} + +uint32 +cAudioManager::GetYardieTalkSfx(int16 sample) +{ + uint32 sfx; + static bool &bUsedYardieTalkSfx = *(bool *)0x650954; + static uint32 &lastYardieTalkSfx = *(uint32 *)0x650950; + + if(!bUsedYardieTalkSfx) { + bUsedYardieTalkSfx = 1; + lastYardieTalkSfx = NO_SAMPLE; + } + + switch(sample) { + case SOUND_PED_HANDS_UP: + sfx = AUDIO_SAMPLE_PED_YARDIE_1_HANDS_UP_1; + break; + case SOUND_PED_CAR_JACKING: + GetPhrase(&sfx, &lastYardieTalkSfx, + AUDIO_SAMPLE_PED_YARDIE_1_CAR_JACKING_1, 2u); + break; + case SOUND_PED_CAR_JACKED: + sfx = AUDIO_SAMPLE_PED_YARDIE_1_CAR_JACKED_1; + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastYardieTalkSfx, + AUDIO_SAMPLE_PED_YARDIE_1_ATTACK_1, 6u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastYardieTalkSfx, + AUDIO_SAMPLE_PED_YARDIE_1_EVADE_1, 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastYardieTalkSfx, + AUDIO_SAMPLE_PED_YARDIE_1_CAR_COLLISION_1, 6u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastYardieTalkSfx, + AUDIO_SAMPLE_PED_YARDIE_1_CHAT_SEXY_1, 2u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastYardieTalkSfx, + AUDIO_SAMPLE_PED_YARDIE_1_CHAT_1, 8u); + break; + default: return cAudioManager::GetGenericMaleTalkSfx(sample); + } + return 31 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; +} + +uint32 +cAudioManager::GetGenericMaleTalkSfx(int16 sample) +{ + uint32 sfx; + static bool &bUsedGenericMaleTalkSfx = *(bool *)0x650B0C; + static uint32 &lastGenericMaleTalkSfx = *(uint32 *)0x650B08; if(!bUsedGenericMaleTalkSfx) { bUsedGenericMaleTalkSfx = 1; @@ -72,34 +598,50 @@ cAudioManager::GetGenericMaleTalkSfx(eSound sample) } switch(sample) { case SOUND_PED_DEATH: - cAudioManager::GetPhrase(&sfx, &lastGenericMaleTalkSfx, - AUDIO_SAMPLE_PED_MALE_DEATH_1, 8u); + GetPhrase(&sfx, &lastGenericMaleTalkSfx, + AUDIO_SAMPLE_PED_MALE_DEATH_1, 8u); break; case SOUND_PED_BULLET_HIT: case SOUND_PED_DEFEND: - cAudioManager::GetPhrase(&sfx, &lastGenericMaleTalkSfx, - AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_1, - 15u); + GetPhrase(&sfx, &lastGenericMaleTalkSfx, + AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_1, 15u); break; case SOUND_PED_BURNING: - cAudioManager::GetPhrase(&sfx, &lastGenericMaleTalkSfx, - AUDIO_SAMPLE_PED_MALE_BURNING_1, 8u); + GetPhrase(&sfx, &lastGenericMaleTalkSfx, + AUDIO_SAMPLE_PED_MALE_BURNING_1, 8u); break; case SOUND_PED_FLEE_SPRINT: - cAudioManager::GetPhrase(&sfx, &lastGenericMaleTalkSfx, - AUDIO_SAMPLE_PED_MALE_FLEE_SPRINT_1, - 6u); + GetPhrase(&sfx, &lastGenericMaleTalkSfx, + AUDIO_SAMPLE_PED_MALE_FLEE_SPRINT_1, 6u); break; default: return NO_SAMPLE; } return sfx; } -WRAPPER void cAudioManager::Service() { EAXJMP(0x57A2A0); } +WRAPPER void +cAudioManager::Service() +{ + EAXJMP(0x57A2A0); +} STARTPATCHES InjectHook(0x56AD20, &cAudioManager::PlayerJustLeftCar, PATCH_JUMP); InjectHook(0x570DB0, &cAudioManager::GetPhrase, PATCH_JUMP); InjectHook(0x570E00, &cAudioManager::GetPlayerTalkSfx, PATCH_JUMP); +InjectHook(0x570EA0, &cAudioManager::GetCopTalkSfx, PATCH_JUMP); +InjectHook(0x570F80, &cAudioManager::GetSwatTalkSfx, PATCH_JUMP); +InjectHook(0x571040, &cAudioManager::GetFBITalkSfx, PATCH_JUMP); +InjectHook(0x571110, &cAudioManager::GetArmyTalkSfx, PATCH_JUMP); +InjectHook(0x5711C0, &cAudioManager::GetMedicTalkSfx, PATCH_JUMP); +InjectHook(0x5712B0, &cAudioManager::GetFiremanTalkSfx, PATCH_JUMP); +InjectHook(0x575340, &cAudioManager::GetNormalMaleTalkSfx, PATCH_JUMP); +InjectHook(0x575190, &cAudioManager::GetTaxiDriverTalkSfx, PATCH_JUMP); +InjectHook(0x575240, &cAudioManager::GetPimpTalkSfx, PATCH_JUMP); +InjectHook(0x571510, &cAudioManager::GetMafiaTalkSfx, PATCH_JUMP); +InjectHook(0x571650, &cAudioManager::GetTriadTalkSfx, PATCH_JUMP); +InjectHook(0x571770, &cAudioManager::GetDiabloTalkSfx, PATCH_JUMP); +InjectHook(0x5718D0, &cAudioManager::GetYakuzaTalkSfx, PATCH_JUMP); +InjectHook(0x5719E0, &cAudioManager::GetYardieTalkSfx, PATCH_JUMP); InjectHook(0x575460, &cAudioManager::GetGenericMaleTalkSfx, PATCH_JUMP); ENDPATCHES diff --git a/src/audio/AudioManager.h b/src/audio/AudioManager.h index 94b430db..4a09e260 100644 --- a/src/audio/AudioManager.h +++ b/src/audio/AudioManager.h @@ -1,6 +1,7 @@ #pragma once #include "AudioSamples.h" +#include "DMAudio.h" #include "common.h" class tActiveSample @@ -72,12 +73,12 @@ enum eAudioType : int32 { class tAudioEntity { - public: +public: eAudioType m_nType; void *m_pEntity; char m_bIsUsed; char m_bStatus; - __int16 m_awAudioEvent[4]; + int16 m_awAudioEvent[4]; char gap_18[2]; float m_afVolume[4]; char field_24; @@ -146,7 +147,9 @@ public: static_assert(sizeof(cAudioCollisionManager) == 0x354, "cAudioCollisionManager: error"); -struct cMissionAudio { +class cMissionAudio +{ +public: CVector m_vecPos; char field_12; char gap_13[3]; @@ -215,13 +218,28 @@ public: void PlayerJustLeftCar(void); void Service(); - void GetPhrase(eAudioSamples *phrase, eAudioSamples *prevPhrase, - eAudioSamples sample, uint32 maxOffset); + void GetPhrase(uint32 *phrase, uint32 *prevPhrase, uint32 sample, + uint32 maxOffset); - uint32 GetPlayerTalkSfx(eSound sound); - uint32 GetGenericMaleTalkSfx(eSound sound); + 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 GetGenericMaleTalkSfx(int16 sound); }; static_assert(sizeof(cAudioManager) == 0x4B14, "cAudioManager: error"); extern cAudioManager &AudioManager; +extern cAudioManager &Players; diff --git a/src/audio/AudioSamples.h b/src/audio/AudioSamples.h index 24544e56..26fffe63 100644 --- a/src/audio/AudioSamples.h +++ b/src/audio/AudioSamples.h @@ -3037,175 +3037,4 @@ enum eAudioSamples : uint32 { AUDIO_SAMPLE_AMMUNATION_WELCOME_3 = 3031, TOTAL_AUDIO_SAMPLES = 3032, NO_SAMPLE = 3033, -}; - -enum eSound { - SOUND_CAR_DOOR_CLOSE_BONNET = 0, - SOUND_CAR_DOOR_CLOSE_BUMPER = 1, - SOUND_CAR_DOOR_CLOSE_FRONT_LEFT = 0x2, - SOUND_CAR_DOOR_CLOSE_FRONT_RIGHT = 0x3, - SOUND_CAR_DOOR_CLOSE_BACK_LEFT = 0x4, - SOUND_CAR_DOOR_CLOSE_BACK_RIGHT = 0x5, - SOUND_CAR_DOOR_OPEN_BONNET = 0x6, - SOUND_CAR_DOOR_OPEN_BUMPER = 0x7, - SOUND_CAR_DOOR_OPEN_FRONT_LEFT = 0x8, - SOUND_CAR_DOOR_OPEN_FRONT_RIGHT = 0x9, - SOUND_CAR_DOOR_OPEN_BACK_LEFT = 0xA, - SOUND_CAR_DOOR_OPEN_BACK_RIGHT = 0xB, - SOUND_CAR_WINDSHIELD_CRACK = 0xC, - SOUND_CAR_JUMP = 0xD, - SOUND_E = 0xE, - SOUND_F = 0xF, - SOUND_CAR_ENGINE_START = 0x10, - SOUND_CAR_LIGHT_BREAK = 0x11, - SOUND_CAR_HYDRALIC_1 = 0x12, - SOUND_CAR_HYDRALIC_2 = 0x13, - SOUND_CAR_HYDRALIC_3 = 0x14, - SOUND_CAR_JERK = 0x15, - SOUND_CAR_SPLASH = 0x16, - SOUND_17 = 0x17, - SOUND_18 = 0x18, - SOUND_19 = 0x19, - SOUND_CAR_TANK_TURRET_ROTATE = 0x1A, - SOUND_CAR_BOMB_TICK = 0x1B, - SOUND_PLANE_ON_GROUND = 0x1C, - SOUND_STEP_START = 0x1D, - SOUND_STEP_END = 0x1E, - SOUND_FALL_LAND = 0x1F, - SOUND_FALL_COLLAPSE = 0x20, - SOUND_21 = 0x21, - SOUND_22 = 0x22, - SOUND_23 = 0x23, - SOUND_24 = 0x24, - SOUND_25 = 0x25, - SOUND_26 = 0x26, - SOUND_WEAPON_PUNCH_ATTACK = 0x27, - SOUND_28 = 0x28, - SOUND_29 = 0x29, - SOUND_2A = 0x2A, - SOUND_2B = 0x2B, - SOUND_2C = 0x2C, - SOUND_2D = 0x2D, - SOUND_WEAPON_BAT_ATTACK = 0x2E, - SOUND_WEAPON_SHOT_FIRED = 0x2F, - SOUND_WEAPON_RELOAD = 0x30, - SOUND_31 = 0x31, - SOUND_32 = 0x32, - SOUND_33 = 0x33, - SOUND_WEAPON_FLAMETHROWER_FIRE = 0x34, - SOUND_WEAPON_SNIPER_SHOT_NO_ZOOM = 0x35, - SOUND_WEAPON_ROCKET_SHOT_NO_ZOOM = 0x36, - SOUND_WEAPON_HIT_PED = 0x37, - SOUND_WEAPON_HIT_VEHICLE = 0x38, - SOUND_GARAGE_NO_MONEY = 0x39, - SOUND_GARAGE_BAD_VEHICLE = 0x3A, - SOUND_GARAGE_OPENING = 0x3B, - SOUND_3C = 0x3C, - SOUND_GARAGE_BOMB1_SET = 0x3D, - SOUND_GARAGE_BOMB2_SET = 0x3E, - SOUND_GARAGE_BOMB3_SET = 0x3F, - SOUND_40 = 0x40, - SOUND_41 = 0x41, - SOUND_GARAGE_VEHICLE_DECLINED = 0x42, - SOUND_GARAGE_VEHICLE_ACCEPTED = 0x43, - SOUND_GARAGE_DOOR_CLOSED = 0x44, - SOUND_GARAGE_DOOR_OPENED = 0x45, - SOUND_CRANE_PICKUP = 0x46, - SOUND_PICKUP_WEAPON_BOUGHT = 0x47, - SOUND_PICKUP_WEAPON = 0x48, - SOUND_PICKUP_HEALTH = 0x49, - SOUND_4A = 0x4A, - SOUND_4B = 0x4B, - SOUND_PICKUP_ADRENALINE = 0x4C, - SOUND_PICKUP_ARMOUR = 0x4D, - SOUND_PICKUP_BONUS = 0x4E, - SOUND_PICKUP_MONEY = 0x4F, - SOUND_PICKUP_HIDDEN_PACKAGE = 0x50, - SOUND_PICKUP_PACMAN_PILL = 0x51, - SOUND_PICKUP_PACMAN_PACKAGE = 0x52, - SOUND_PICKUP_FLOAT_PACKAGE = 0x53, - SOUND_BOMB_TIMED_ACTIVATED = 0x54, - SOUND_55 = 0x55, - SOUND_BOMB_ONIGNITION_ACTIVATED = 0x56, - SOUND_BOMB_TICK = 0x57, - SOUND_RAMPAGE_START = 0x58, - SOUND_RAMPAGE_ONGOING = 0x59, - SOUND_RAMPAGE_PASSED = 0x5A, - SOUND_RAMPAGE_FAILED = 0x5B, - SOUND_RAMPAGE_KILL = 0x5C, - SOUND_RAMPAGE_CAR_BLOWN = 0x5D, - SOUND_EVIDENCE_PICKUP = 0x5E, - SOUND_UNLOAD_GOLD = 0x5F, - SOUND_PAGER = 0x60, - SOUND_PED_DEATH = 0x61, - SOUND_PED_DAMAGE = 0x62, - SOUND_PED_HIT = 0x63, - SOUND_PED_LAND = 0x64, - SOUND_PED_BULLET_HIT = 0x65, - SOUND_PED_BOMBER = 0x66, - SOUND_PED_BURNING = 0x67, - SOUND_PED_ARREST_FBI = 0x68, - SOUND_PED_ARREST_SWAT = 0x69, - SOUND_PED_ARREST_COP = 0x6A, - SOUND_PED_HELI_PLAYER_FOUND = 0x6B, - SOUND_PED_HANDS_UP = 0x6C, - SOUND_PED_HANDS_COWER = 0x6D, - SOUND_PED_FLEE_SPRINT = 0x6E, - SOUND_PED_CAR_JACKING = 0x6F, - SOUND_PED_MUGGING = 0x70, - SOUND_PED_CAR_JACKED = 0x71, - SOUND_PED_ROBBED = 0x72, - SOUND_PED_TAXI_WAIT = 0x73, - SOUND_PED_ATTACK = 0x74, - SOUND_PED_DEFEND = 0x75, - SOUND_PED_PURSUIT_ARMY = 0x76, - SOUND_PED_PURSUIT_FBI = 0x77, - SOUND_PED_PURSUIT_SWAT = 0x78, - SOUND_PED_PURSUIT_COP = 0x79, - SOUND_PED_HEALING = 0x7A, - SOUND_PED_7B = 0x7B, - SOUND_PED_LEAVE_VEHICLE = 0x7C, - SOUND_PED_EVADE = 0x7D, - SOUND_PED_FLEE_RUN = 0x7E, - SOUND_PED_CAR_COLLISION = 0x7F, - SOUND_PED_SOLICIT = 0x80, - SOUND_PED_EXTINGUISHING_FIRE = 0x81, - SOUND_PED_WAIT_DOUBLEBACK = 0x82, - SOUND_PED_CHAT_SEXY = 0x83, - SOUND_PED_CHAT_EVENT = 0x84, - SOUND_PED_CHAT = 0x85, - SOUND_PED_BODYCAST_HIT = 0x86, - SOUND_PED_TAXI_CALL = 0x87, - SOUND_INJURED_PED_MALE_OUCH = 0x88, - SOUND_INJURED_PED_FEMALE = 0x89, - SOUND_8A = 0x8A, - SOUND_RACE_START_3 = 0x8B, - SOUND_RACE_START_2 = 0x8C, - SOUND_RACE_START_1 = 0x8D, - SOUND_RACE_START_GO = 0x8E, - SOUND_SPLASH = 0x8F, - SOUND_WATER_FALL = 0x90, - SOUND_SPLATTER = 0x91, - SOUND_CAR_PED_COLLISION = 0x92, - SOUND_CLOCK_TICK = 0x93, - SOUND_PART_MISSION_COMPLETE = 0x94, - SOUND_FRONTEND_MENU_STARTING = 0x95, - SOUND_FRONTEND_MENU_COMPLETED = 0x96, - SOUND_FRONTEND_MENU_DENIED = 0x97, - SOUND_FRONTEND_MENU_SUCCESS = 0x98, - SOUND_FRONTEND_EXIT = 0x99, - SOUND_9A = 0x9A, - SOUND_9B = 0x9B, - SOUND_FRONTEND_AUDIO_TEST = 0x9C, - SOUND_FRONTEND_FAIL = 0x9D, - SOUND_FRONTEND_NO_RADIO = 0x9E, - SOUND_FRONTEND_RADIO_CHANGE = 0x9F, - SOUND_A0 = 0xA0, - SOUND_AMMUNATION_WELCOME_1 = 0xA1, - SOUND_AMMUNATION_WELCOME_2 = 0xA2, - SOUND_AMMUNATION_WELCOME_3 = 0xA3, - SOUND_LIGHTNING = 0xA4, - SOUND_A5 = 0xA5, - SOUND_TOTAL_SOUNDS = 166, - SOUND_TOTAL_PED_SOUNDS = 167, -}; +}; \ No newline at end of file diff --git a/src/audio/DMAudio.h b/src/audio/DMAudio.h index 646fa2ff..ea5aeeb2 100644 --- a/src/audio/DMAudio.h +++ b/src/audio/DMAudio.h @@ -1,6 +1,6 @@ #pragma once -enum eSound +enum eSound : int16 { SOUND_CAR_DOOR_CLOSE_BONNET = 0, SOUND_CAR_DOOR_CLOSE_BUMPER = 1, @@ -101,7 +101,7 @@ enum eSound SOUND_PAGER = 96, SOUND_PED_DEATH = 97, SOUND_PED_DAMAGE = 98, - SOUND_PED_63 = 99, + SOUND_PED_HIT = 99, SOUND_PED_LAND = 100, SOUND_PED_BULLET_HIT = 101, SOUND_PED_BOMBER = 102, diff --git a/src/entities/Ped.h b/src/entities/Ped.h index 9b2ec31f..f83594aa 100644 --- a/src/entities/Ped.h +++ b/src/entities/Ped.h @@ -85,15 +85,15 @@ enum PedState PED_PASSENGER, PED_TAXI_PASSENGER, PED_OPEN_DOOR, - PED_DIE, - PED_DEAD, + PED_DIE = 48, + PED_DEAD = 49, PED_CARJACK, PED_DRAG_FROM_CAR, PED_ENTER_CAR, PED_STEAL_CAR, PED_EXIT_CAR, PED_HANDS_UP, - PED_ARRESTED, + PED_ARRESTED = 56, }; enum { From 87997fffd7c886fd54c10a82416bafee981d48a1 Mon Sep 17 00:00:00 2001 From: Filip Gawin Date: Sat, 29 Jun 2019 13:44:20 +0200 Subject: [PATCH 05/17] Implement the rest of GetXTalkSfx --- src/audio/AudioManager.cpp | 2452 ++++++++++++++++++++++++++++++++---- src/audio/AudioManager.h | 51 + 2 files changed, 2238 insertions(+), 265 deletions(-) diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp index 205a3f90..90635ab1 100644 --- a/src/audio/AudioManager.cpp +++ b/src/audio/AudioManager.cpp @@ -1,5 +1,6 @@ #include "AudioManager.h" #include "DMAudio.h" +#include "ModelIndices.h" #include "Ped.h" #include "PlayerPed.h" #include "World.h" @@ -32,27 +33,20 @@ uint32 cAudioManager::GetPlayerTalkSfx(int16 sound) { uint32 sfx; - static bool &bUsedPlayerTalkSfx = *(bool *)0x6508f4; - static uint32 &lastPlayerTalkSfx = *(uint32 *)0x6508f0; + static uint32 lastSfx = NO_SAMPLE; - if(!bUsedPlayerTalkSfx) { - bUsedPlayerTalkSfx = true; - lastPlayerTalkSfx = NO_SAMPLE; - } switch(sound) { case SOUND_PED_DAMAGE: - GetPhrase(&sfx, &lastPlayerTalkSfx, - AUDIO_SAMPLE_PED_DAMAGE_REACTION_1, 11u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_DAMAGE_REACTION_1, + 11u); break; case SOUND_PED_HIT: - GetPhrase(&sfx, &lastPlayerTalkSfx, - AUDIO_SAMPLE_PED_HIT_REACTION_1, 10u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_HIT_REACTION_1, 10u); break; case SOUND_PED_LAND: - GetPhrase(&sfx, &lastPlayerTalkSfx, - AUDIO_SAMPLE_PED_FALL_REACTION_1, 6u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_FALL_REACTION_1, 6u); break; default: sfx = NO_SAMPLE; break; @@ -61,63 +55,51 @@ cAudioManager::GetPlayerTalkSfx(int16 sound) } uint32 -cAudioManager::GetCopTalkSfx(int16 sample) +cAudioManager::GetCopTalkSfx(int16 sound) { uint32 sfx; PedState pedState; - static bool &bUsedCopTalkSfx = *(bool *)0x6508FC; - static uint32 &lastCopTalkSfx = *(uint32 *)0x6508F8; + static uint32 lastSfx = NO_SAMPLE; - if(!bUsedCopTalkSfx) { - bUsedCopTalkSfx = 1; - lastCopTalkSfx = NO_SAMPLE; - } - - if(sample == SOUND_PED_ARREST_COP) { - GetPhrase(&sfx, &lastCopTalkSfx, - AUDIO_SAMPLE_POLICE_COP_1_ARREST_1, 6u); + if(sound == SOUND_PED_ARREST_COP) { + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_POLICE_COP_1_ARREST_1, + 6u); } else { - if(sample != SOUND_PED_PURSUIT_COP) { - return cAudioManager::GetGenericMaleTalkSfx(sample); + if(sound != SOUND_PED_PURSUIT_COP) { + return cAudioManager::GetGenericMaleTalkSfx(sound); } pedState = FindPlayerPed()->m_nPedState; if(pedState == PED_ARRESTED || pedState == PED_DEAD || pedState == PED_DIE) return NO_SAMPLE; - GetPhrase(&sfx, &lastCopTalkSfx, - AUDIO_SAMPLE_POLICE_COP_1_PURSUIT_1, 7u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_POLICE_COP_1_PURSUIT_1, + 7u); } return 13 * (m_sQueueSample.m_nEntityIndex % 5) + sfx; } uint32 -cAudioManager::GetSwatTalkSfx(int16 sample) +cAudioManager::GetSwatTalkSfx(int16 sound) { uint32 sfx; PedState pedState; - static bool &bUsedSwatTalkSfx = *(bool *)0x650904; - static uint32 &lastSwatTalkSfx = *(uint32 *)0x650900; + static uint32 lastSfx = NO_SAMPLE; - if(!bUsedSwatTalkSfx) { - bUsedSwatTalkSfx = 1; - lastSwatTalkSfx = NO_SAMPLE; - } - - if(sample == SOUND_PED_ARREST_SWAT) { - GetPhrase(&sfx, &lastSwatTalkSfx, + if(sound == SOUND_PED_ARREST_SWAT) { + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_POLICE_SWAT_1_PURSUIT_ARREST_1, 6u); } else { - if(sample != SOUND_PED_PURSUIT_SWAT) { - return cAudioManager::GetGenericMaleTalkSfx(sample); + if(sound != SOUND_PED_PURSUIT_SWAT) { + return cAudioManager::GetGenericMaleTalkSfx(sound); } pedState = FindPlayerPed()->m_nPedState; if(pedState == PED_ARRESTED || pedState == PED_DEAD || pedState == PED_DIE) return NO_SAMPLE; - GetPhrase(&sfx, &lastSwatTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_POLICE_SWAT_1_PURSUIT_ARREST_1, 6u); } @@ -125,31 +107,25 @@ cAudioManager::GetSwatTalkSfx(int16 sample) } uint32 -cAudioManager::GetFBITalkSfx(int16 sample) +cAudioManager::GetFBITalkSfx(int16 sound) { uint32 sfx; PedState pedState; - static bool &bUsedFBITalkSfx = *(bool *)0x65090C; - static uint32 &lastFBITalkSfx = *(uint32 *)0x650908; + static uint32 lastSfx = NO_SAMPLE; - if(!bUsedFBITalkSfx) { - bUsedFBITalkSfx = 1; - lastFBITalkSfx = NO_SAMPLE; - } - - if(sample == SOUND_PED_ARREST_FBI) { - GetPhrase(&sfx, &lastFBITalkSfx, + if(sound == SOUND_PED_ARREST_FBI) { + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_POLICE_FBI_1_PURSUIT_ARREST_1, 6u); } else { - if(sample != SOUND_PED_PURSUIT_FBI) { - return cAudioManager::GetGenericMaleTalkSfx(sample); + if(sound != SOUND_PED_PURSUIT_FBI) { + return cAudioManager::GetGenericMaleTalkSfx(sound); } pedState = FindPlayerPed()->m_nPedState; if(pedState == PED_ARRESTED || pedState == PED_DEAD || pedState == PED_DIE) return NO_SAMPLE; - GetPhrase(&sfx, &lastFBITalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_POLICE_FBI_1_PURSUIT_ARREST_1, 6u); } @@ -157,468 +133,2362 @@ cAudioManager::GetFBITalkSfx(int16 sample) } uint32 -cAudioManager::GetArmyTalkSfx(int16 sample) +cAudioManager::GetArmyTalkSfx(int16 sound) { uint32 sfx; PedState pedState; - static bool &bUsedArmyTalkSfx = *(bool *)0x650914; - static uint32 &lastArmyTalkSfx = *(uint32 *)0x650910; + static uint32 lastSfx = NO_SAMPLE; - if(!bUsedArmyTalkSfx) { - bUsedArmyTalkSfx = 1; - lastArmyTalkSfx = NO_SAMPLE; - } - - if(sample != SOUND_PED_PURSUIT_ARMY) { - return cAudioManager::GetGenericMaleTalkSfx(sample); + if(sound != SOUND_PED_PURSUIT_ARMY) { + return cAudioManager::GetGenericMaleTalkSfx(sound); } pedState = FindPlayerPed()->m_nPedState; if(pedState == PED_ARRESTED || pedState == PED_DEAD || pedState == PED_DIE) return NO_SAMPLE; - GetPhrase(&sfx, &lastArmyTalkSfx, AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_1, - 15u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_POLICE_ARMY_1_PURSUIT_1, 15u); return 15 * (m_sQueueSample.m_nEntityIndex % 1) + sfx; } uint32 -cAudioManager::GetMedicTalkSfx(int16 sample) +cAudioManager::GetMedicTalkSfx(int16 sound) { uint32 sfx; - static bool &bUsedMedicTalkSfx = *(bool *)0x65091C; - static uint32 &lastMedicTalkSfx = *(uint32 *)0x650918; + static uint32 lastSfx = NO_SAMPLE; - if(!bUsedMedicTalkSfx) { - bUsedMedicTalkSfx = true; - lastMedicTalkSfx = NO_SAMPLE; - } - switch(sample) { + switch(sound) { case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastMedicTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MEDIC_1_HANDS_COWER_1, 5u); break; case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastMedicTalkSfx, - AUDIO_SAMPLE_PED_MEDIC_1_CAR_JACKED_1, 5u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MEDIC_1_CAR_JACKED_1, + 5u); break; case SOUND_PED_HEALING: - GetPhrase(&sfx, &lastMedicTalkSfx, - AUDIO_SAMPLE_PED_MEDIC_1_HEALING_1, 12u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MEDIC_1_HEALING_1, + 12u); break; case SOUND_PED_LEAVE_VEHICLE: - GetPhrase(&sfx, &lastMedicTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MEDIC_1_LEAVE_VEHICLE_1, 9u); break; case SOUND_PED_FLEE_RUN: - GetPhrase(&sfx, &lastMedicTalkSfx, - AUDIO_SAMPLE_PED_MEDIC_1_FLEE_RUN_1, 6u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MEDIC_1_FLEE_RUN_1, + 6u); break; - default: return cAudioManager::GetGenericMaleTalkSfx(sample); + default: return cAudioManager::GetGenericMaleTalkSfx(sound); } return 37 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; } uint32 -cAudioManager::GetFiremanTalkSfx(int16 sample) +cAudioManager::GetFiremanTalkSfx(int16 sound) { - return cAudioManager::GetGenericMaleTalkSfx(sample); + return cAudioManager::GetGenericMaleTalkSfx(sound); } uint32 -cAudioManager::GetNormalMaleTalkSfx(int16 sample) +cAudioManager::GetNormalMaleTalkSfx(int16 sound) { uint32 sfx; - static bool &bUsedNormalMaleTalkSfx = *(bool *)0x650B04; - static uint32 &lastNormalMaleTalkSfx = *(uint32 *)0x650B00; + static uint32 lastSfx = NO_SAMPLE; - if(!bUsedNormalMaleTalkSfx) { - bUsedNormalMaleTalkSfx = 1; - lastNormalMaleTalkSfx = NO_SAMPLE; - } - switch(sample) { + switch(sound) { case SOUND_PED_HANDS_COWER: - GetPhrase(&sfx, &lastNormalMaleTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_NORMAL_MALE_HANDS_COWER_1, 7u); break; case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastNormalMaleTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_JACKED_1, 7u); break; case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastNormalMaleTalkSfx, - AUDIO_SAMPLE_PED_NORMAL_MALE_EVADE_1, 9u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_NORMAL_MALE_EVADE_1, + 9u); break; case SOUND_PED_FLEE_RUN: - GetPhrase(&sfx, &lastNormalMaleTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_NORMAL_MALE_FLEE_RUN_1, 5u); break; case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastNormalMaleTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_NORMAL_MALE_CAR_COLLISION_1, 12u); break; case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastNormalMaleTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_SEXY_1, 8u); break; case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastNormalMaleTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_EVENT_1, 0xAu); break; case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastNormalMaleTalkSfx, - AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_1, 25u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_NORMAL_MALE_CHAT_1, + 25u); break; - default: return cAudioManager::GetGenericMaleTalkSfx(sample); + default: return cAudioManager::GetGenericMaleTalkSfx(sound); } return sfx; } uint32 -cAudioManager::GetTaxiDriverTalkSfx(int16 sample) +cAudioManager::GetTaxiDriverTalkSfx(int16 sound) { uint32 sfx; - static bool &bUsedTaxiDriverTalkSfx = *(bool *)0x650AF4; - static uint32 &lastTaxiDriverTalkSfx = *(uint32 *)0x650AF0; + static uint32 lastSfx = NO_SAMPLE; - if(!bUsedTaxiDriverTalkSfx) { - bUsedTaxiDriverTalkSfx = 1; - lastTaxiDriverTalkSfx = NO_SAMPLE; - } - - if(sample == SOUND_PED_CAR_JACKED) { - GetPhrase(&sfx, &lastTaxiDriverTalkSfx, + if(sound == SOUND_PED_CAR_JACKED) { + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_JACKED_1, 7u); } else { - if(sample != SOUND_PED_CAR_COLLISION) - return cAudioManager::GetGenericMaleTalkSfx(sample); - GetPhrase(&sfx, &lastTaxiDriverTalkSfx, + if(sound != SOUND_PED_CAR_COLLISION) + return cAudioManager::GetGenericMaleTalkSfx(sound); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_TAXI_DRIVER_1_CAR_COLLISION_1, 6u); } return 13 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; } uint32 -cAudioManager::GetPimpTalkSfx(int16 sample) +cAudioManager::GetPimpTalkSfx(int16 sound) { uint32 sfx; - static bool &bUsedPimpTalkSfx = *(bool *)0x650AFC; - static uint32 &lastPimpTalkSfx = *(uint32 *)0x650AF8; + static uint32 lastSfx = NO_SAMPLE; - if(!bUsedPimpTalkSfx) { - bUsedPimpTalkSfx = 1; - lastPimpTalkSfx = NO_SAMPLE; - } - - switch(sample) { + switch(sound) { case SOUND_PED_HANDS_UP: - GetPhrase(&sfx, &lastPimpTalkSfx, - AUDIO_SAMPLE_PED_PIMP_HANDS_UP_1, 7u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_PIMP_HANDS_UP_1, 7u); break; case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastPimpTalkSfx, - AUDIO_SAMPLE_PED_PIMP_CAR_JACKED_1, 4u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_PIMP_CAR_JACKED_1, + 4u); break; case SOUND_PED_DEFEND: - GetPhrase(&sfx, &lastPimpTalkSfx, - AUDIO_SAMPLE_PED_PIMP_DEFEND_1, 9u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_PIMP_DEFEND_1, 9u); break; case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastPimpTalkSfx, AUDIO_SAMPLE_PED_PIMP_EVADE_1, - 6u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_PIMP_EVADE_1, 6u); break; case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastPimpTalkSfx, - AUDIO_SAMPLE_PED_PIMP_CAR_COLLISION_1, 5u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_PIMP_CAR_COLLISION_1, + 5u); break; case SOUND_PED_CHAT_EVENT: - GetPhrase(&sfx, &lastPimpTalkSfx, - AUDIO_SAMPLE_PED_PIMP_CHAT_EVENT_1, 2u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_PIMP_CHAT_EVENT_1, + 2u); break; case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastPimpTalkSfx, AUDIO_SAMPLE_PED_PIMP_CHAT_1, - 17u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_PIMP_CHAT_1, 17u); break; - default: return cAudioManager::GetGenericMaleTalkSfx(sample); + default: return cAudioManager::GetGenericMaleTalkSfx(sound); } return sfx; } uint32 -cAudioManager::GetMafiaTalkSfx(int16 sample) +cAudioManager::GetMafiaTalkSfx(int16 sound) { uint32 sfx; - static bool &bUsedMafiaTalkSfx = *(bool *)0x650934; - static uint32 &lastMafiaTalkSfx = *(uint32 *)0x650930; + static uint32 lastSfx = NO_SAMPLE; - if(!bUsedMafiaTalkSfx) { - bUsedMafiaTalkSfx = 1; - lastMafiaTalkSfx = NO_SAMPLE; - } - - switch(sample) { + switch(sound) { case SOUND_PED_CAR_JACKING: - GetPhrase(&sfx, &lastMafiaTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MAFIA_1_CAR_JACKING_1, 2u); break; case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastMafiaTalkSfx, - AUDIO_SAMPLE_PED_MAFIA_1_CAR_JACKED_1, 2u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MAFIA_1_CAR_JACKED_1, + 2u); break; case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastMafiaTalkSfx, - AUDIO_SAMPLE_PED_MAFIA_1_ATTACK_1, 5u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MAFIA_1_ATTACK_1, + 5u); break; case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastMafiaTalkSfx, - AUDIO_SAMPLE_PED_MAFIA_1_EVADE_1, 5u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MAFIA_1_EVADE_1, 5u); break; case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastMafiaTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MAFIA_1_CAR_COLLISION_1, 6u); break; case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastMafiaTalkSfx, - AUDIO_SAMPLE_PED_MAFIA_1_CHAT_SEXY_1, 3u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MAFIA_1_CHAT_SEXY_1, + 3u); break; case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastMafiaTalkSfx, - AUDIO_SAMPLE_PED_MAFIA_1_CHAT_1, 7u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MAFIA_1_CHAT_1, 7u); break; - default: return cAudioManager::GetGenericMaleTalkSfx(sample); + default: return cAudioManager::GetGenericMaleTalkSfx(sound); } return 30 * (m_sQueueSample.m_nEntityIndex % 3) + sfx; } uint32 -cAudioManager::GetTriadTalkSfx(int16 sample) +cAudioManager::GetTriadTalkSfx(int16 sound) { uint32 sfx; - static bool &bUsedTriadTalkSfx = *(bool *)0x65093C; - static uint32 &lastTriadTalkSfx = *(uint32 *)0x650938; + static uint32 lastSfx = NO_SAMPLE; - if(!bUsedTriadTalkSfx) { - bUsedTriadTalkSfx = 1; - lastTriadTalkSfx = NO_SAMPLE; - } - - switch(sample) { + switch(sound) { case SOUND_PED_HANDS_UP: - GetPhrase(&sfx, &lastTriadTalkSfx, - AUDIO_SAMPLE_PED_TRIAD_1_HANDS_UP_1, 3u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_TRIAD_1_HANDS_UP_1, + 3u); break; case SOUND_PED_CAR_JACKING: - GetPhrase(&sfx, &lastTriadTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_TRIAD_1_CAR_JACKING_1, 2u); break; case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastTriadTalkSfx, - AUDIO_SAMPLE_PED_TRIAD_1_CAR_JACKED_1, 2u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_TRIAD_1_CAR_JACKED_1, + 2u); break; case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastTriadTalkSfx, - AUDIO_SAMPLE_PED_TRIAD_1_ATTACK_1, 5u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_TRIAD_1_ATTACK_1, + 5u); break; case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastTriadTalkSfx, - AUDIO_SAMPLE_PED_TRIAD_1_EVADE_1, 4u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_TRIAD_1_EVADE_1, 4u); break; case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastTriadTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_TRIAD_1_CAR_COLLISION_1, 7u); break; case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastTriadTalkSfx, - AUDIO_SAMPLE_PED_TRIAD_1_CHAT_SEXY_1, 3u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_TRIAD_1_CHAT_SEXY_1, + 3u); break; case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastTriadTalkSfx, - AUDIO_SAMPLE_PED_TRIAD_1_CHAT_1, 8u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_TRIAD_1_CHAT_1, 8u); break; - default: return cAudioManager::GetGenericMaleTalkSfx(sample); + default: return cAudioManager::GetGenericMaleTalkSfx(sound); } return sfx; } uint32 -cAudioManager::GetDiabloTalkSfx(int16 sample) +cAudioManager::GetDiabloTalkSfx(int16 sound) { uint32 sfx; - static bool &bUsedDiabloTalkSfx = *(bool *)0x650944; - static uint32 &lastDiabloTalkSfx = *(uint32 *)0x650940; + static uint32 lastSfx = NO_SAMPLE; - if(!bUsedDiabloTalkSfx) { - bUsedDiabloTalkSfx = 1; - lastDiabloTalkSfx = NO_SAMPLE; - } - - switch(sample) { + switch(sound) { case SOUND_PED_HANDS_UP: - GetPhrase(&sfx, &lastDiabloTalkSfx, - AUDIO_SAMPLE_PED_DIABLO_1_HANDS_UP_1, 4u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_DIABLO_1_HANDS_UP_1, + 4u); break; case SOUND_PED_HANDS_COWER: - sample = SOUND_PED_FLEE_SPRINT; - return cAudioManager::GetGenericMaleTalkSfx(sample); + sound = SOUND_PED_FLEE_SPRINT; + return cAudioManager::GetGenericMaleTalkSfx(sound); break; case SOUND_PED_CAR_JACKING: - GetPhrase(&sfx, &lastDiabloTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_DIABLO_1_CAR_JACKING_1, 2u); break; case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastDiabloTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_DIABLO_1_CAR_JACKED_1, 2u); break; case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastDiabloTalkSfx, - AUDIO_SAMPLE_PED_DIABLO_1_ATTACK_1, 4u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_DIABLO_1_ATTACK_1, + 4u); break; case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastDiabloTalkSfx, - AUDIO_SAMPLE_PED_DIABLO_1_EVADE_1, 4u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_DIABLO_1_EVADE_1, + 4u); break; case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastDiabloTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_DIABLO_1_CAR_COLLISION_1, 5u); break; case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastDiabloTalkSfx, - AUDIO_SAMPLE_PED_DIABLO_1_CHAT_SEXY_1, 4u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_DIABLO_1_CHAT_SEXY_1, + 4u); break; case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastDiabloTalkSfx, - AUDIO_SAMPLE_PED_DIABLO_1_CHAT_1, 5u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_DIABLO_1_CHAT_1, 5u); break; - default: return cAudioManager::GetGenericMaleTalkSfx(sample); + default: return cAudioManager::GetGenericMaleTalkSfx(sound); } return 30 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; } uint32 -cAudioManager::GetYakuzaTalkSfx(int16 sample) +cAudioManager::GetYakuzaTalkSfx(int16 sound) { uint32 sfx; - static bool &bUsedYakuzaTalkSfx = *(bool *)0x65094C; - static uint32 &lastYakuzaTalkSfx = *(uint32 *)0x650948; + static uint32 lastSfx = NO_SAMPLE; - if(!bUsedYakuzaTalkSfx) { - bUsedYakuzaTalkSfx = 1; - lastYakuzaTalkSfx = NO_SAMPLE; - } - - switch(sample) { + switch(sound) { case SOUND_PED_CAR_JACKING: - GetPhrase(&sfx, &lastYakuzaTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YAKUZA_1_CAR_JACKING_1, 2u); break; case SOUND_PED_CAR_JACKED: - GetPhrase(&sfx, &lastYakuzaTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YAKUZA_1_CAR_JACKED_1, 2u); break; case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastYakuzaTalkSfx, - AUDIO_SAMPLE_PED_YAKUZA_1_ATTACK_1, 5u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YAKUZA_1_ATTACK_1, + 5u); break; case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastYakuzaTalkSfx, - AUDIO_SAMPLE_PED_YAKUZA_1_EVADE_1, 4u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YAKUZA_1_EVADE_1, + 4u); break; case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastYakuzaTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YAKUZA_1_CAR_COLLISION_1, 6u); break; case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastYakuzaTalkSfx, - AUDIO_SAMPLE_PED_YAKUZA_1_CHAT_1, 5u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YAKUZA_1_CHAT_1, 5u); break; - default: return cAudioManager::GetGenericMaleTalkSfx(sample); + default: return cAudioManager::GetGenericMaleTalkSfx(sound); } return 24 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; } uint32 -cAudioManager::GetYardieTalkSfx(int16 sample) +cAudioManager::GetYardieTalkSfx(int16 sound) { uint32 sfx; - static bool &bUsedYardieTalkSfx = *(bool *)0x650954; - static uint32 &lastYardieTalkSfx = *(uint32 *)0x650950; + static uint32 lastSfx = NO_SAMPLE; - if(!bUsedYardieTalkSfx) { - bUsedYardieTalkSfx = 1; - lastYardieTalkSfx = NO_SAMPLE; - } - - switch(sample) { + switch(sound) { case SOUND_PED_HANDS_UP: sfx = AUDIO_SAMPLE_PED_YARDIE_1_HANDS_UP_1; break; case SOUND_PED_CAR_JACKING: - GetPhrase(&sfx, &lastYardieTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YARDIE_1_CAR_JACKING_1, 2u); break; case SOUND_PED_CAR_JACKED: sfx = AUDIO_SAMPLE_PED_YARDIE_1_CAR_JACKED_1; break; case SOUND_PED_ATTACK: - GetPhrase(&sfx, &lastYardieTalkSfx, - AUDIO_SAMPLE_PED_YARDIE_1_ATTACK_1, 6u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YARDIE_1_ATTACK_1, + 6u); break; case SOUND_PED_EVADE: - GetPhrase(&sfx, &lastYardieTalkSfx, - AUDIO_SAMPLE_PED_YARDIE_1_EVADE_1, 5u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YARDIE_1_EVADE_1, + 5u); break; case SOUND_PED_CAR_COLLISION: - GetPhrase(&sfx, &lastYardieTalkSfx, + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YARDIE_1_CAR_COLLISION_1, 6u); break; case SOUND_PED_CHAT_SEXY: - GetPhrase(&sfx, &lastYardieTalkSfx, - AUDIO_SAMPLE_PED_YARDIE_1_CHAT_SEXY_1, 2u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YARDIE_1_CHAT_SEXY_1, + 2u); break; case SOUND_PED_CHAT: - GetPhrase(&sfx, &lastYardieTalkSfx, - AUDIO_SAMPLE_PED_YARDIE_1_CHAT_1, 8u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_YARDIE_1_CHAT_1, 8u); break; - default: return cAudioManager::GetGenericMaleTalkSfx(sample); + default: return cAudioManager::GetGenericMaleTalkSfx(sound); } return 31 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; } uint32 -cAudioManager::GetGenericMaleTalkSfx(int16 sample) +cAudioManager::GetColumbianTalkSfx(int16 sound) { uint32 sfx; - static bool &bUsedGenericMaleTalkSfx = *(bool *)0x650B0C; - static uint32 &lastGenericMaleTalkSfx = *(uint32 *)0x650B08; + static uint32 lastSfx = NO_SAMPLE; - if(!bUsedGenericMaleTalkSfx) { - bUsedGenericMaleTalkSfx = 1; - lastGenericMaleTalkSfx = NO_SAMPLE; + switch(sound) { + case SOUND_PED_CAR_JACKING: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_COLUMB_1_CAR_JACKING_1, 2u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_COLUMB_1_CAR_JACKED_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_COLUMB_1_ATTACK_1, + 5u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_COLUMB_1_EVADE_1, + 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_COLUMB_1_CAR_COLLISION_1, 6u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_COLUMB_1_CHAT_SEXY_1, + 2u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_COLUMB_1_CHAT_1, 5u); + break; + default: return cAudioManager::GetGenericMaleTalkSfx(sound); } - switch(sample) { + return 27 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; +} + +uint32 +cAudioManager::GetHoodTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + switch(sound) { + case SOUND_PED_HANDS_UP: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_HOODS_1_HANDS_UP_1, + 5u); + break; + case SOUND_PED_CAR_JACKING: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_HOODS_1_CAR_JACKING_1, 2u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_HOODS_1_CAR_JACKED_1, + 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_HOODS_1_ATTACK_1, + 6u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_HOODS_1_EVADE_1, 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_HOODS_1_CAR_COLLISION_1, 7u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_HOODS_1_CHAT_SEXY_1, + 2u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_HOODS_1_CHAT_1, 6u); + break; + + default: return cAudioManager::GetGenericMaleTalkSfx(sound); break; + } + return 35 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; +} + +uint32 +cAudioManager::GetBlackCriminalTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + switch(sound) { + case SOUND_PED_HANDS_UP: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_HANDS_UP_1, 4u); + break; + case SOUND_PED_CAR_JACKING: + sfx = AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_CAR_JACKING_1; + break; + case SOUND_PED_MUGGING: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_MUGGING_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_ATTACK_1, 5u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_EVADE_1, 6u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CRIMINAL_1_CAR_COLLISION_1, + 5u); + break; + default: return cAudioManager::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, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_HANDS_UP_1, 3u); + break; + case SOUND_PED_CAR_JACKING: + sfx = AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_CAR_JACKING_1; + break; + case SOUND_PED_MUGGING: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_MUGGING_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_ATTACK_1, 4u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_EVADE_1, 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_CRIMINAL_1_CAR_COLLISION_1, + 4u); + break; + default: return cAudioManager::GetGenericMaleTalkSfx(sound); break; + } + return sfx; +} + +WRAPPER int32 cAudioManager::GetSpecialCharacterTalkSfx(int32, int32) +{ + EAXJMP(0x574790); +} + +uint32 +cAudioManager::GetMaleNo2TalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + switch(sound) { + case SOUND_PED_CAR_JACKED: + cAudioManager::GetPhrase( + &sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_NO_2_CAR_JACKED_1, + 3u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_NO_2_ROBBED_1, + 4u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_NO_2_ATTACK_1, + 4u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_NO_2_EVADE_1, + 4u); + break; + case SOUND_PED_CAR_COLLISION: + cAudioManager::GetPhrase( + &sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_NO_2_CAR_COLLISION_1, + 7u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_SEXY_1, 5u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_NO_2_CHAT_1, + 7u); + break; + default: return cAudioManager::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, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_HANDS_UP_1, 3u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CAR_JACKED_1, + 2u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_ROBBED_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_ATTACK_1, 6u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_EVADE_1, 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CAR_COLLISION_1, + 7u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CHAT_SEXY_1, + 3u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_MALE_1_CHAT_1, 6u); + default: return GetGenericMaleTalkSfx(sound); + } + + if(model == MI_P_MAN2) sfx += 34; + return sfx; +} + +uint32 +cAudioManager::GetWhiteFatMaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + switch(sound) { + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CAR_JACKED_1, 3u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_ROBBED_1, 3u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_EVADE_1, 9u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CAR_COLLISION_1, + 9u); + break; + case SOUND_PED_WAIT_DOUBLEBACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_WAIT_DOUBLEBACK_1, + 2u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FAT_MALE_1_CHAT_1, 9u); + 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, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CAR_JACKED_1, 4u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_ROBBED_1, 3u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_EVADE_1, 7u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CAR_COLLISION_1, + 6u); + break; + case SOUND_PED_WAIT_DOUBLEBACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_WAIT_DOUBLEBACK_1, + 3u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FAT_MALE_1_CHAT_1, 8u); + 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, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_HANDS_COWER_1, + 2u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CAR_JACKED_1, + 2u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_ROBBED_1, 3u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_EVADE_1, 6u); + break; + case SOUND_PED_FLEE_RUN: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_FLEE_RUN_1, + 2u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CAR_COLLISION_1, 7u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CHAT_EVENT_1, + 4u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CASUAL_FEMALE_1_CHAT_1, 8u); + 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, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_HANDS_COWER_1, + 2u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CAR_JACKED_1, + 2u); + break; + case SOUND_PED_ROBBED: + sfx = AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_ROBBED_1; + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_EVADE_1, 3u); + break; + case SOUND_PED_FLEE_RUN: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_FLEE_RUN_1, + 2u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CAR_COLLISION_1, 8u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CHAT_EVENT_1, + 2u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_CASUAL_FEMALE_1_CHAT_1, 4u); + 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, + AUDIO_SAMPLE_PED_FEMALE_NO_3_HANDS_COWER_1, 5u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CAR_JACKED_1, 3u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_FEMALE_NO_3_ROBBED_1, + 3u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_FEMALE_NO_3_EVADE_1, + 6u); + break; + case SOUND_PED_FLEE_RUN: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_FEMALE_NO_3_FLEE_RUN_1, 4u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CAR_COLLISION_1, 6u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_FEMALE_NO_3_CHAT_EVENT_1, 4u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_FEMALE_NO_3_CHAT_1, + 5u); + 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, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_HANDS_COWER_1, + 4u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CAR_JACKED_1, 2u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_ROBBED_1, 2u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_EVADE_1, 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CAR_COLLISION_1, + 6u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CHAT_EVENT_1, 5u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FAT_FEMALE_1_CHAT_1, 7u); + 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, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CAR_JACKED_1, 2u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_ROBBED_1, 2u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_EVADE_1, 6u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CAR_COLLISION_1, + 8u); + break; + case SOUND_PED_WAIT_DOUBLEBACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_WAIT_DOUBLEBACK_1, + 2u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CHAT_EVENT_1, 4u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FAT_FEMALE_1_CHAT_1, 8u); + 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, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_HANDS_UP_1, + 4u); + break; + case SOUND_PED_ROBBED: + sfx = AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_ROBBED_1; + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_ATTACK_1, + 4u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_EVADE_1, + 3u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_CAR_COLLISION_1, + 4u); + break; + case SOUND_PED_SOLICIT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_SOLICIT_1, + 8u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_FEMALE_PROSTITUTE_1_CHAT_1, + 4u); + break; + default: return GetGenericFemaleTalkSfx(sound); + } + return 28 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; +} + +uint32 +cAudioManager::GetWhiteFemaleProstituteTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + switch(sound) { + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_ROBBED_1, + 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_ATTACK_1, + 4u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_EVADE_1, + 3u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_CAR_COLLISION_1, + 4u); + break; + case SOUND_PED_SOLICIT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_SOLICIT_1, + 8u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_FEMALE_PROSTITUTE_1_CHAT_1, + 4u); + break; + default: return GetGenericFemaleTalkSfx(sound); + } + return 25 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; +} + +uint32 +cAudioManager::GetBlackProjectFemaleOldTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + switch(sound) { + case SOUND_PED_CAR_JACKED: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_JACKED_1, + 6u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_ROBBED_1, + 2u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_EVADE_1, + 10u); + break; + case SOUND_PED_FLEE_RUN: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_FLEE_RUN_1, 6u); + break; + case SOUND_PED_CAR_COLLISION: + cAudioManager::GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CAR_COLLISION_1, + 7u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CHAT_EVENT_1, + 2u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_OLD_1_CHAT_1, + 10u); + 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: + cAudioManager::GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_HANDS_COWER_1, + 4u); + break; + case SOUND_PED_CAR_JACKED: + sfx = + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CAR_JACKED_1; + break; + case SOUND_PED_ROBBED: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_ROBBED_1, 2u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_EVADE_1, + 5u); + break; + case SOUND_PED_CAR_COLLISION: + cAudioManager::GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CAR_COLLISION_1, + 6u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CHAT_EVENT_1, + 5u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_PROJECT_FEMALE_YOUNG_1_CHAT_1, + 7u); + 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, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_HANDS_COWER_1, + 3u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CAR_JACKED_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_ATTACK_1, 5u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_EVADE_1, 6u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CAR_COLLISION_1, + 6u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CHAT_SEXY_1, 3u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_OLD_CHAT_1, 7u); + 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, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_HANDS_COWER_1, + 2u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CAR_JACKED_1, + 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_ATTACK_1, 6u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_EVADE_1, 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CAR_COLLISION_1, + 6u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CHAT_SEXY_1, + 3u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_MALE_YOUNG_CHAT_1, 6u); + 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, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_HANDS_COWER_1, + 3u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_ROBBED_1, 2u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_EVADE_1, 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_CAR_COLLISION_1, + 5u); + break; + case SOUND_PED_CHAT_EVENT: + sfx = AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_CHAT_EVENT_1; + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_OLD_CHAT_1, 6u); + 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, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CAR_JACKED_1, + 2u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_ROBBED_1, 2u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_EVADE_1, 6u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CAR_COLLISION_1, + 7u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CHAT_EVENT_1, + 4u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_CHINATOWN_FEMALE_YOUNG_CHAT_1, 7u); + 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, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_HANDS_COWER_1, + 3u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CAR_JACKED_1, + 2u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_ROBBED_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_ATTACK_1, 5u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_EVADE_1, 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CAR_COLLISION_1, + 7u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_MALE_1_CHAT_1, 6u); + break; + default: return GetGenericMaleTalkSfx(sound); + } + return 30 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; +} + +uint32 +cAudioManager::GetLittleItalyFemaleOldTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + switch(sound) { + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CAR_JACKED_1, + 2u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_ROBBED_1, + 2u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_EVADE_1, 6u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CAR_COLLISION_1, + 7u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CHAT_EVENT_1, + 4u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_OLD_CHAT_1, 7u); + 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, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CAR_JACKED_1, + 2u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_ROBBED_1, + 2u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_EVADE_1, + 7u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CAR_COLLISION_1, + 6u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CHAT_EVENT_1, + 4u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_LITTLE_ITALY_FEMALE_YOUNG_CHAT_1, + 6u); + 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, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_HANDS_COWER_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_ATTACK_1, 3u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_EVADE_1, 4u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_CAR_COLLISION_1, + 4u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_CHAT_SEXY_1, 3u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_DOCKER_MALE_CHAT_1, 5u); + 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, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_HANDS_COWER_1, 3u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_ATTACK_1, 5u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_EVADE_1, 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CAR_COLLISION_1, + 6u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CHAT_SEXY_1, 3u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_DOCKER_MALE_CHAT_1, 5u); + 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, + AUDIO_SAMPLE_PED_SCUM_MALE_HANDS_COWER_1, 5u); + break; + case SOUND_PED_ROBBED: sfx = AUDIO_SAMPLE_PED_SCUM_MALE_ROBBED_1; break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_SCUM_MALE_ATTACK_1, + 0xAu); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_SCUM_MALE_EVADE_1, + 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SCUM_MALE_CAR_COLLISION_1, 6u); + break; + case SOUND_PED_WAIT_DOUBLEBACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SCUM_MALE_WAIT_DOUBLEBACK_1, 3u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_SEXY_1, 5u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_SCUM_MALE_CHAT_1, + 9u); + 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, + AUDIO_SAMPLE_PED_SCUM_FEMALE_HANDS_COWER_1, 4u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_SCUM_FEMALE_ROBBED_1, + 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_SCUM_FEMALE_ATTACK_1, + 4u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_SCUM_FEMALE_EVADE_1, + 8u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SCUM_FEMALE_CAR_COLLISION_1, 5u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_SCUM_FEMALE_CHAT_1, + 13u); + 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, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_HANDS_COWER_1, 3u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_ATTACK_1, 3u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_EVADE_1, 4u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CAR_COLLISION_1, + 6u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CHAT_SEXY_1, 2u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_WORKER_MALE_CHAT_1, 6u); + 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, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_HANDS_COWER_1, 4u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_ATTACK_1, 3u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_EVADE_1, 3u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_CAR_COLLISION_1, + 4u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_CHAT_SEXY_1, 3u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_WORKER_MALE_CHAT_1, 4u); + + 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, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_HANDS_COWER_1, + 3u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CAR_JACKED_1, + 2u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_ROBBED_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_ATTACK_1, 4u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_EVADE_1, 4u); + break; + case SOUND_PED_FLEE_RUN: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_FLEE_RUN_1, + 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CAR_COLLISION_1, 6u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_MALE_YOUNG_1_CHAT_1, 6u); + break; + default: return GetGenericMaleTalkSfx(sound); + } + + if(model == 61) sfx += 32; + return sfx; +} + +uint32 +cAudioManager::GetBusinessMaleOldTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + switch(sound) { + case SOUND_PED_HANDS_COWER: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_HANDS_COWER_1, + 3u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_CAR_JACKED_1, + 2u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_ROBBED_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_ATTACK_1, 5u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_EVADE_1, 4u); + break; + case SOUND_PED_FLEE_RUN: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_FLEE_RUN_1, 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_CAR_COLLISION_1, + 5u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_MALE_OLD_1_CHAT_1, 5u); + + 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, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_HANDS_COWER_1, 4u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CAR_JACKED_1, 2u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_ROBBED_1, 2u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_EVADE_1, 6u); + break; + case SOUND_PED_FLEE_RUN: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_FLEE_RUN_1, 4u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CAR_COLLISION_1, + 5u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CHAT_EVENT_1, 4u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BUSINESS_WOMAN_1_CHAT_1, 7u); + break; + default: return GetGenericFemaleTalkSfx(sound); + } + + if(model == MI_B_WOM2) sfx += 34; + return sfx; +} + +uint32 +cAudioManager::GetBlackBusinessFemaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + switch(sound) { + case SOUND_PED_HANDS_COWER: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_HANDS_COWER_1, + 5u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CAR_JACKED_1, + 4u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_ROBBED_1, 3u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_EVADE_1, 6u); + break; + case SOUND_PED_FLEE_RUN: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_FLEE_RUN_1, + 6u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CAR_COLLISION_1, 7u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CHAT_EVENT_1, + 4u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_BUSINESS_FEMALE_CHAT_1, 7u); + + 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, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CAR_JACKED_1, 2u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_ROBBED_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_ATTACK_1, 5u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_EVADE_1, 6u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CAR_COLLISION_1, 6u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CHAT_SEXY_1, 3u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SUPERMODEL_MALE_CHAT_1, 6u); + + 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, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_HANDS_COWER_1, 4u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_ROBBED_1, 3u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_EVADE_1, 4u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CAR_COLLISION_1, + 7u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CHAT_EVENT_1, 5u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SUPERMODEL_FEMALE_CHAT_1, 8u); + + 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, + AUDIO_SAMPLE_PED_STEWARD_MALE_HANDS_COWER_1, 3u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STEWARD_MALE_ATTACK_1, 4u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_STEWARD_MALE_EVADE_1, + 3u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STEWARD_MALE_CAR_COLLISION_1, 5u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_STEWARD_MALE_CHAT_1, + 4u); + + 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, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_HANDS_COWER_1, 3u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_EVADE_1, 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_CAR_COLLISION_1, + 5u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STEWARD_FEMALE_1_CHAT_1, 5u); + break; + default: return GetGenericFemaleTalkSfx(sound); + } + return 18 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; +} + +uint32 +cAudioManager::GetFanMaleTalkSfx(int16 sound, int32 model) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + switch(sound) { + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_FAN_MALE_1_ATTACK_1, + 3u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_FAN_MALE_1_EVADE_1, + 4u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_FAN_MALE_1_CAR_COLLISION_1, 5u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_FAN_MALE_1_CHAT_EVENT_1, 2u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_FAN_MALE_1_CHAT_1, + 6u); + break; + default: return GetGenericMaleTalkSfx(sound); + } + + if(model == MI_FAN_MAN2) sfx += 20; + return sfx; +} + +uint32 +cAudioManager::GetFanFemaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + switch(sound) { + case SOUND_PED_ROBBED: + sfx = AUDIO_SAMPLE_PED_FAN_FEMALE_1_ROBBED_1; + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_FAN_FEMALE_1_EVADE_1, + 4u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_CAR_COLLISION_1, 5u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_FAN_FEMALE_1_CHAT_EVENT_1, 2u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_FAN_FEMALE_1_CHAT_1, + 6u); + break; + default: return GetGenericFemaleTalkSfx(sound); + } + return 18 * (m_sQueueSample.m_nEntityIndex & 1) + sfx; +} + +uint32 +cAudioManager::GetHospitalMaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + switch(sound) { + case SOUND_PED_HANDS_COWER: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_HANDS_COWER_1, 4u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_ATTACK_1, 4u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_EVADE_1, 4u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_HOSPITAL_MALE_CAR_COLLISION_1, 5u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_HOSPITAL_MALE_CHAT_1, + 5u); + 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, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_EVADE_1, 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_CAR_COLLISION_1, 6u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_HOSPITAL_FEMALE_CHAT_1, 6u); + + 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, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_HANDS_COWER_1, + 3u); + break; + case SOUND_PED_CAR_JACKED: + sfx = AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CAR_JACKED_1; + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_ATTACK_1, + 5u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_EVADE_1, + 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CAR_COLLISION_1, + 4u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CHAT_SEXY_1, 3u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_WHITE_CONSTRUCTION_WORKER_CHAT_1, + 7u); + 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, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_HANDS_COWER_1, + 3u); + break; + case SOUND_PED_CAR_JACKED: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CAR_JACKED_1, + 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_ATTACK_1, + 5u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_EVADE_1, + 5u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CAR_COLLISION_1, + 5u); + break; + case SOUND_PED_CHAT_SEXY: + GetPhrase( + &sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CHAT_SEXY_1, 4u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_BLACK_CONSTRUCTION_WORKER_CHAT_1, + 4u); + 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, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CAR_JACKED_1, 2u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_ROBBED_1, 2u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_EVADE_1, 6u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CAR_COLLISION_1, + 7u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CHAT_EVENT_1, 4u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_SHOPPER_FEMALE_1_CHAT_1, 7u); + break; + default: return GetGenericFemaleTalkSfx(sound); + } + + if(model == MI_SHOPPER2) { + sfx += 28; + } else if(model == MI_SHOPPER3) { + sfx += 56; + } + return sfx; +} + +uint32 +cAudioManager::GetStudentMaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + switch(sound) { + case SOUND_PED_HANDS_COWER: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STUDENT_MALE_HANDS_COWER_1, 2u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STUDENT_MALE_ROBBED_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STUDENT_MALE_ATTACK_1, 4u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_STUDENT_MALE_EVADE_1, + 4u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STUDENT_MALE_CAR_COLLISION_1, 4u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STUDENT_MALE_CHAT_EVENT_1, 3u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_STUDENT_MALE_CHAT_1, + 5u); + + 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, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_HANDS_COWER_1, 4u); + break; + case SOUND_PED_ROBBED: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_ROBBED_1, 2u); + break; + case SOUND_PED_ATTACK: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_ATTACK_1, 4u); + break; + case SOUND_PED_EVADE: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_EVADE_1, 4u); + break; + case SOUND_PED_CAR_COLLISION: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_CAR_COLLISION_1, 4u); + break; + case SOUND_PED_CHAT_EVENT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_CHAT_EVENT_1, 2u); + break; + case SOUND_PED_CHAT: + GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_STUDENT_FEMALE_CHAT_1, 4u); + + break; + default: return GetGenericFemaleTalkSfx(sound); + } + return sfx; +} + +uint32 +cAudioManager::GetCasualMaleOldTalkSfx(int16 sound) +{ + return GetGenericMaleTalkSfx(sound); +} + +uint32 +cAudioManager::GetGenericMaleTalkSfx(int16 sound) +{ + uint32 sfx; + static uint32 lastSfx = NO_SAMPLE; + + switch(sound) { case SOUND_PED_DEATH: - GetPhrase(&sfx, &lastGenericMaleTalkSfx, - AUDIO_SAMPLE_PED_MALE_DEATH_1, 8u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_DEATH_1, 8u); break; case SOUND_PED_BULLET_HIT: case SOUND_PED_DEFEND: - GetPhrase(&sfx, &lastGenericMaleTalkSfx, - AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_1, 15u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_INJURED_PED_MALE_OUCH_1, + 15u); break; case SOUND_PED_BURNING: - GetPhrase(&sfx, &lastGenericMaleTalkSfx, - AUDIO_SAMPLE_PED_MALE_BURNING_1, 8u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_BURNING_1, 8u); break; case SOUND_PED_FLEE_SPRINT: - GetPhrase(&sfx, &lastGenericMaleTalkSfx, - AUDIO_SAMPLE_PED_MALE_FLEE_SPRINT_1, 6u); + GetPhrase(&sfx, &lastSfx, AUDIO_SAMPLE_PED_MALE_FLEE_SPRINT_1, + 6u); 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: + cAudioManager::GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_FEMALE_DEATH_1, 10u); + break; + case SOUND_PED_BULLET_HIT: + case SOUND_PED_DEFEND: + cAudioManager::GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_INJURED_PED_FEMALE_OUCH_1, + 11u); + break; + case SOUND_PED_BURNING: + cAudioManager::GetPhrase(&sfx, &lastSfx, + AUDIO_SAMPLE_PED_FEMALE_BURNING_1, 9u); + break; + case SOUND_PED_FLEE_SPRINT: + cAudioManager::GetPhrase( + &sfx, &lastSfx, AUDIO_SAMPLE_PED_FEMALE_FLEE_SPRINT_1, 8u); + break; + default: sfx = NO_SAMPLE; break; + } + return sfx; +} + WRAPPER void cAudioManager::Service() { @@ -628,6 +2498,7 @@ cAudioManager::Service() STARTPATCHES InjectHook(0x56AD20, &cAudioManager::PlayerJustLeftCar, PATCH_JUMP); InjectHook(0x570DB0, &cAudioManager::GetPhrase, PATCH_JUMP); + InjectHook(0x570E00, &cAudioManager::GetPlayerTalkSfx, PATCH_JUMP); InjectHook(0x570EA0, &cAudioManager::GetCopTalkSfx, PATCH_JUMP); InjectHook(0x570F80, &cAudioManager::GetSwatTalkSfx, PATCH_JUMP); @@ -643,5 +2514,56 @@ InjectHook(0x571650, &cAudioManager::GetTriadTalkSfx, PATCH_JUMP); InjectHook(0x571770, &cAudioManager::GetDiabloTalkSfx, PATCH_JUMP); InjectHook(0x5718D0, &cAudioManager::GetYakuzaTalkSfx, PATCH_JUMP); InjectHook(0x5719E0, &cAudioManager::GetYardieTalkSfx, PATCH_JUMP); +InjectHook(0x571B00, &cAudioManager::GetColumbianTalkSfx, PATCH_JUMP); +InjectHook(0x571C30, &cAudioManager::GetHoodTalkSfx, PATCH_JUMP); +InjectHook(0x571D80, &cAudioManager::GetBlackCriminalTalkSfx, PATCH_JUMP); +InjectHook(0x571E60, &cAudioManager::GetWhiteCriminalTalkSfx, PATCH_JUMP); +// InjectHook(0x574790, &cAudioManager::GetSpecialCharacterTalkSfx, PATCH_JUMP); +InjectHook(0x571F40, &cAudioManager::GetMaleNo2TalkSfx, PATCH_JUMP); +InjectHook(0x572AF0, &cAudioManager::GetBlackProjectMaleTalkSfx, PATCH_JUMP); +InjectHook(0x5725D0, &cAudioManager::GetWhiteFatMaleTalkSfx, PATCH_JUMP); +InjectHook(0x5726C0, &cAudioManager::GetBlackFatMaleTalkSfx, PATCH_JUMP); +InjectHook(0x572050, &cAudioManager::GetBlackCasualFemaleTalkSfx, PATCH_JUMP); +InjectHook(0x572170, &cAudioManager::GetWhiteCasualFemaleTalkSfx, PATCH_JUMP); +InjectHook(0x572280, &cAudioManager::GetFemaleNo3TalkSfx, PATCH_JUMP); +InjectHook(0x5724D0, &cAudioManager::GetBlackFatFemaleTalkSfx, PATCH_JUMP); +InjectHook(0x5727B0, &cAudioManager::GetWhiteFatFemaleTalkSfx, PATCH_JUMP); +InjectHook(0x5728B0, &cAudioManager::GetBlackFemaleProstituteTalkSfx, PATCH_JUMP); +InjectHook(0x5729D0, &cAudioManager::GetWhiteFemaleProstituteTalkSfx, PATCH_JUMP); +InjectHook(0x572C20, &cAudioManager::GetBlackProjectFemaleOldTalkSfx, PATCH_JUMP); +InjectHook(0x572D20, &cAudioManager::GetBlackProjectFemaleYoungTalkSfx, PATCH_JUMP); +InjectHook(0x572E10, &cAudioManager::GetChinatownMaleOldTalkSfx, PATCH_JUMP); +InjectHook(0x572F10, &cAudioManager::GetChinatownMaleYoungTalkSfx, PATCH_JUMP); +InjectHook(0x573010, &cAudioManager::GetChinatownFemaleOldTalkSfx, PATCH_JUMP); +InjectHook(0x5730F0, &cAudioManager::GetChinatownFemaleYoungTalkSfx, PATCH_JUMP); +InjectHook(0x5731E0, &cAudioManager::GetLittleItalyMaleTalkSfx, PATCH_JUMP); +InjectHook(0x573310, &cAudioManager::GetLittleItalyFemaleOldTalkSfx, PATCH_JUMP); +InjectHook(0x573400, &cAudioManager::GetLittleItalyFemaleYoungTalkSfx, PATCH_JUMP); +InjectHook(0x5734F0, &cAudioManager::GetWhiteDockerMaleTalkSfx, PATCH_JUMP); +InjectHook(0x5735E0, &cAudioManager::GetBlackDockerMaleTalkSfx, PATCH_JUMP); +InjectHook(0x5736D0, &cAudioManager::GetScumMaleTalkSfx, PATCH_JUMP); +InjectHook(0x5737E0, &cAudioManager::GetScumFemaleTalkSfx, PATCH_JUMP); +InjectHook(0x5738D0, &cAudioManager::GetWhiteWorkerMaleTalkSfx, PATCH_JUMP); +InjectHook(0x5739C0, &cAudioManager::GetBlackWorkerMaleTalkSfx, PATCH_JUMP); +InjectHook(0x5713E0, &cAudioManager::GetBusinessMaleYoungTalkSfx, PATCH_JUMP); +InjectHook(0x5712C0, &cAudioManager::GetBusinessMaleOldTalkSfx, PATCH_JUMP); +InjectHook(0x5723A0, &cAudioManager::GetWhiteBusinessFemaleTalkSfx, PATCH_JUMP); +InjectHook(0x573AB0, &cAudioManager::GetBlackBusinessFemaleTalkSfx, PATCH_JUMP); +InjectHook(0x573BD0, &cAudioManager::GetSupermodelMaleTalkSfx, PATCH_JUMP); +InjectHook(0x573CD0, &cAudioManager::GetSupermodelFemaleTalkSfx, PATCH_JUMP); +InjectHook(0x573DC0, &cAudioManager::GetStewardMaleTalkSfx, PATCH_JUMP); +InjectHook(0x573E90, &cAudioManager::GetStewardFemaleTalkSfx, PATCH_JUMP); +InjectHook(0x573F60, &cAudioManager::GetFanMaleTalkSfx, PATCH_JUMP); +InjectHook(0x574040, &cAudioManager::GetFanFemaleTalkSfx, PATCH_JUMP); +InjectHook(0x574120, &cAudioManager::GetHospitalMaleTalkSfx, PATCH_JUMP); +InjectHook(0x5741F0, &cAudioManager::GetHospitalFemaleTalkSfx, PATCH_JUMP); +InjectHook(0x574290, &cAudioManager::GetWhiteConstructionWorkerTalkSfx, PATCH_JUMP); +InjectHook(0x574380, &cAudioManager::GetBlackConstructionWorkerTalkSfx, PATCH_JUMP); +InjectHook(0x574480, &cAudioManager::GetShopperFemaleTalkSfx, PATCH_JUMP); +InjectHook(0x574590, &cAudioManager::GetStudentMaleTalkSfx, PATCH_JUMP); +InjectHook(0x574690, &cAudioManager::GetStudentFemaleTalkSfx, PATCH_JUMP); +InjectHook(0x572040, &cAudioManager::GetCasualMaleOldTalkSfx, PATCH_JUMP); + InjectHook(0x575460, &cAudioManager::GetGenericMaleTalkSfx, PATCH_JUMP); +InjectHook(0x575510, &cAudioManager::GetGenericFemaleTalkSfx, PATCH_JUMP); ENDPATCHES diff --git a/src/audio/AudioManager.h b/src/audio/AudioManager.h index 4a09e260..b2209768 100644 --- a/src/audio/AudioManager.h +++ b/src/audio/AudioManager.h @@ -236,7 +236,58 @@ public: 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); + int32 GetSpecialCharacterTalkSfx(int32, int32); + 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 GetGenericMaleTalkSfx(int16 sound); + uint32 GetGenericFemaleTalkSfx(int16 sound); }; static_assert(sizeof(cAudioManager) == 0x4B14, "cAudioManager: error"); From 62cfcd5b2709e926d4a53b20bbc366ab5bb5b5ff Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sat, 29 Jun 2019 15:19:31 +0300 Subject: [PATCH 06/17] RetrievePedAnimation --- src/control/Replay.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/control/Replay.cpp b/src/control/Replay.cpp index a2a47295..25fab615 100644 --- a/src/control/Replay.cpp +++ b/src/control/Replay.cpp @@ -444,7 +444,48 @@ void CReplay::ProcessPedUpdate(CPed *ped, float interpolation, CAddressInReplayB buffer->m_nOffset += sizeof(tPedUpdatePacket); } #endif + +#if 0 WRAPPER void CReplay::RetrievePedAnimation(CPed *ped, CStoredAnimationState *state) { EAXJMP(0x5942A0); } +#else +void CReplay::RetrievePedAnimation(CPed *ped, CStoredAnimationState *state) +{ + CAnimBlendAssociation* anim1 = CAnimManager::BlendAnimation( + (RpClump*)ped->m_rwObject, + (state->animId > 3) ? ped->m_animGroup : ASSOCGRP_STD, + (AnimationId)state->animId, 100.0f); + anim1->SetCurrentTime(state->time * 4.0f / 255.0f); + anim1->speed = state->speed * 3.0f / 255.0f; + anim1->SetBlend(1.0f, 1.0f); + anim1->callbackType = CAnimBlendAssociation::CB_NONE; + if (state->blendAmount && state->secAnimId){ + float time = state->secTime * 4.0f / 255.0f; + float speed = state->secSpeed * 3.0f / 255.0f; + float blend = state->blendAmount * 2.0f / 255.0f; + CAnimBlendAssociation* anim2 = CAnimManager::BlendAnimation( + (RpClump*)ped->m_rwObject, + (state->secAnimId > 3) ? ped->m_animGroup : ASSOCGRP_STD, + (AnimationId)state->secAnimId, 100.0f); + anim2->SetCurrentTime(time); + anim2->speed = speed; + anim2->SetBlend(blend, 1.0f); + anim2->callbackType = CAnimBlendAssociation::CB_NONE; + } + RpAnimBlendClumpRemoveAssociations((RpClump*)ped->m_rwObject, 0x10); + if (state->partAnimId){ + float time = state->partAnimTime * 4.0f / 255.0f; + float speed = state->partAnimSpeed * 3.0f / 255.0f; + float blend = state->partBlendAmount * 2.0f / 255.0f; + if (blend > 0.0f && state->partAnimId != ANIM_IDLE_STANCE){ + CAnimBlendAssociation* anim3 = CAnimManager::BlendAnimation( + (RpClump*)ped->m_rwObject, ASSOCGRP_STD, (AnimationId)state->partAnimId, 1000.0f); + anim3->SetCurrentTime(time); + anim3->speed = speed; + anim3->blendDelta = 0.0f; // is it correct? + } + } +} +#endif WRAPPER void CReplay::RetrieveDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState *state) { EAXJMP(0x5944B0); } WRAPPER void CReplay::PlaybackThisFrame(void) { EAXJMP(0x5946B0); } From ad76379eba3084c15183baaa4cd39192e9a2be7c Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sat, 29 Jun 2019 18:01:43 +0300 Subject: [PATCH 07/17] more replay stuff, bug fix --- src/control/Replay.cpp | 72 +++++++++++++++++++++++++++++++++++------- src/control/Replay.h | 2 ++ src/math/Matrix.h | 2 +- 3 files changed, 63 insertions(+), 13 deletions(-) diff --git a/src/control/Replay.cpp b/src/control/Replay.cpp index 25fab615..7eb19c79 100644 --- a/src/control/Replay.cpp +++ b/src/control/Replay.cpp @@ -371,7 +371,7 @@ void CReplay::StoreDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState state->aFunctionCallbackID[i] = 0; } }else{ - state->aAnimId[i] = 173; /* TODO: enum */ + state->aAnimId[i] = NUM_ANIMS; state->aCurTime[i] = 0; state->aSpeed[i] = 85; state->aFunctionCallbackID[i] = 0; @@ -395,7 +395,7 @@ void CReplay::StoreDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState } } else { - state->aAnimId2[i] = 173; /* TODO: enum */ + state->aAnimId2[i] = NUM_ANIMS; state->aCurTime2[i] = 0; state->aSpeed2[i] = 85; state->aFunctionCallbackID2[i] = 0; @@ -414,11 +414,10 @@ void CReplay::ProcessPedUpdate(CPed *ped, float interpolation, CAddressInReplayB ped->m_fRotationCur = pp->heading * M_PI / 128.0f; ped->m_fRotationDest = pp->heading * M_PI / 128.0f; CMatrix ped_matrix; - float coeff = 1.0f - interpolation; pp->matrix.DecompressIntoFullMatrix(ped_matrix); - ped->GetMatrix() = ped->GetMatrix() * CMatrix(coeff); - *ped->GetMatrix().GetPosition() *= coeff; - ped->GetMatrix() += CMatrix(coeff) * ped_matrix; + ped->GetMatrix() = ped->GetMatrix() * CMatrix(1.0f - interpolation); + *ped->GetMatrix().GetPosition() *= (1.0f - interpolation); + ped->GetMatrix() += CMatrix(interpolation) * ped_matrix; if (pp->vehicle_index) { ped->m_pMyVehicle = CPools::GetVehiclePool()->GetSlot(pp->vehicle_index - 1); ped->bInVehicle = pp->vehicle_index; @@ -429,12 +428,12 @@ void CReplay::ProcessPedUpdate(CPed *ped, float interpolation, CAddressInReplayB } if (pp->assoc_group_id != ped->m_animGroup) { ped->m_animGroup = (AssocGroupId)pp->assoc_group_id; - if (ped->IsPlayer()) + if (ped == FindPlayerPed()) ((CPlayerPed*)ped)->ReApplyMoveAnims(); } RetrievePedAnimation(ped, &pp->anim_state); ped->RemoveWeaponModel(-1); - if (pp->weapon_model != -1) + if (pp->weapon_model != (uint8)-1) ped->AddWeaponModel(pp->weapon_model); CWorld::Remove(ped); CWorld::Add(ped); @@ -452,7 +451,7 @@ void CReplay::RetrievePedAnimation(CPed *ped, CStoredAnimationState *state) { CAnimBlendAssociation* anim1 = CAnimManager::BlendAnimation( (RpClump*)ped->m_rwObject, - (state->animId > 3) ? ped->m_animGroup : ASSOCGRP_STD, + (state->animId > 3) ? ASSOCGRP_STD : ped->m_animGroup, (AnimationId)state->animId, 100.0f); anim1->SetCurrentTime(state->time * 4.0f / 255.0f); anim1->speed = state->speed * 3.0f / 255.0f; @@ -464,7 +463,7 @@ void CReplay::RetrievePedAnimation(CPed *ped, CStoredAnimationState *state) float blend = state->blendAmount * 2.0f / 255.0f; CAnimBlendAssociation* anim2 = CAnimManager::BlendAnimation( (RpClump*)ped->m_rwObject, - (state->secAnimId > 3) ? ped->m_animGroup : ASSOCGRP_STD, + (state->secAnimId > 3) ? ASSOCGRP_STD : ped->m_animGroup, (AnimationId)state->secAnimId, 100.0f); anim2->SetCurrentTime(time); anim2->speed = speed; @@ -481,12 +480,59 @@ void CReplay::RetrievePedAnimation(CPed *ped, CStoredAnimationState *state) (RpClump*)ped->m_rwObject, ASSOCGRP_STD, (AnimationId)state->partAnimId, 1000.0f); anim3->SetCurrentTime(time); anim3->speed = speed; - anim3->blendDelta = 0.0f; // is it correct? + anim3->SetBlend(blend, 0.0f); } } } #endif + +#if 0 WRAPPER void CReplay::RetrieveDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState *state) { EAXJMP(0x5944B0); } +#else +void CReplay::RetrieveDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState *state) +{ + for (int i = 0; i < 3; i++){ + if (state->aAnimId[i] == NUM_ANIMS) + continue; + CAnimBlendAssociation* anim = CAnimManager::BlendAnimation( + (RpClump*)ped->m_rwObject, + state->aAnimId[i] > 3 ? ASSOCGRP_STD : ped->m_animGroup, + (AnimationId)state->aAnimId[i], 100.0f); + anim->SetCurrentTime(state->aCurTime[i] * 4.0f / 255.0f); + anim->speed = state->aSpeed[i] * 3.0f / 255.0f; + /* Lack of commented out calculation causes megajump */ + anim->SetBlend(state->aBlendAmount[i] /* * 2.0f / 255.0f */, 1.0f); + anim->flags = state->aFlags[i]; + uint8 callback = state->aFunctionCallbackID[i]; + if (!callback) + anim->callbackType = CAnimBlendAssociation::CB_NONE; + else if (callback & 0x80) + anim->SetFinishCallback(FindCBFunction(callback & 0x7F), ped); + else + anim->SetDeleteCallback(FindCBFunction(callback & 0x7F), ped); + } + for (int i = 0; i < 6; i++) { + if (state->aAnimId2[i] == NUM_ANIMS) + continue; + CAnimBlendAssociation* anim = CAnimManager::BlendAnimation( + (RpClump*)ped->m_rwObject, + state->aAnimId2[i] > 3 ? ASSOCGRP_STD : ped->m_animGroup, + (AnimationId)state->aAnimId2[i], 100.0f); + anim->SetCurrentTime(state->aCurTime2[i] * 4.0f / 255.0f); + anim->speed = state->aSpeed2[i] * 3.0f / 255.0f; + /* Lack of commented out calculation causes megajump */ + anim->SetBlend(state->aBlendAmount2[i] /* * 2.0f / 255.0f */, 1.0f); + anim->flags = state->aFlags2[i]; + uint8 callback = state->aFunctionCallbackID2[i]; + if (!callback) + anim->callbackType = CAnimBlendAssociation::CB_NONE; + else if (callback & 0x80) + anim->SetFinishCallback(FindCBFunction(callback & 0x7F), ped); + else + anim->SetDeleteCallback(FindCBFunction(callback & 0x7F), ped); + } +} +#endif WRAPPER void CReplay::PlaybackThisFrame(void) { EAXJMP(0x5946B0); } #if 0 @@ -834,7 +880,9 @@ STARTPATCHES InjectHook(0x592FC0, PrintElementsInPtrList, PATCH_JUMP); InjectHook(0x592FE0, CReplay::Init, PATCH_JUMP); InjectHook(0x593150, CReplay::DisableReplays, PATCH_JUMP); -InjectHook(0x593150, CReplay::EnableReplays, PATCH_JUMP); +InjectHook(0x593160, CReplay::EnableReplays, PATCH_JUMP); InjectHook(0x593170, CReplay::Update, PATCH_JUMP); +InjectHook(0x594050, CReplay::ProcessPedUpdate, PATCH_JUMP); +InjectHook(0x5944B0, CReplay::RetrieveDetailedPedAnimation, PATCH_JUMP); //InjectHook(0x5966E0, CReplay::RestoreStuffFromMem, PATCH_JUMP); ENDPATCHES diff --git a/src/control/Replay.h b/src/control/Replay.h index 0a65c638..125dfef4 100644 --- a/src/control/Replay.h +++ b/src/control/Replay.h @@ -262,9 +262,11 @@ private: static void StorePedUpdate(CPed *ped, int id); static void StorePedAnimation(CPed *ped, CStoredAnimationState *state); static void StoreDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState *state); +public: static void ProcessPedUpdate(CPed *ped, float interpolation, CAddressInReplayBuffer *buffer); static void RetrievePedAnimation(CPed *ped, CStoredAnimationState *state); static void RetrieveDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState *state); +private: static void PlaybackThisFrame(void); static void StoreCarUpdate(CVehicle *vehicle, int id); static void ProcessCarUpdate(CVehicle *vehicle, float interpolation, CAddressInReplayBuffer *buffer); diff --git a/src/math/Matrix.h b/src/math/Matrix.h index bbdc6a70..63cb2753 100644 --- a/src/math/Matrix.h +++ b/src/math/Matrix.h @@ -74,7 +74,7 @@ public: m_matrix.at.z += rhs.m_matrix.at.z; m_matrix.pos.x += rhs.m_matrix.pos.x; m_matrix.pos.y += rhs.m_matrix.pos.y; - m_matrix.pos.y += rhs.m_matrix.pos.z; + m_matrix.pos.z += rhs.m_matrix.pos.z; return *this; } From 01c04f3963bc7d10e1d4d63d5586f3d5e04fdb2c Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sat, 29 Jun 2019 18:05:23 +0300 Subject: [PATCH 08/17] Fixed merge --- src/World.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/World.h b/src/World.h index fb9b3b7e..90e732a5 100644 --- a/src/World.h +++ b/src/World.h @@ -69,7 +69,6 @@ public: static void Remove(CEntity *entity); static void Add(CEntity *entity); - static void Remove(CEntity *ent); static CSector *GetSector(int x, int y) { return &ms_aSectors[y][x]; } static CPtrList &GetBigBuildingList(eLevelName i) { return ms_bigBuildingsList[i]; } From e0488a7980c3c857431d266f0fd6205ca772315f Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sat, 29 Jun 2019 18:06:15 +0300 Subject: [PATCH 09/17] fix --- src/World.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/World.h b/src/World.h index 90e732a5..3b7090da 100644 --- a/src/World.h +++ b/src/World.h @@ -104,8 +104,6 @@ public: static int GetSectorIndexY(float f) { return (int)GetSectorY(f); } static float GetWorldX(int x) { return x*SECTOR_SIZE_X + WORLD_MIN_X; } static float GetWorldY(int y) { return y*SECTOR_SIZE_Y + WORLD_MIN_Y; } - - static void Remove(void); }; class CPlayerPed; From 14e0aae1bd3d4d4d2aa1f37d87a472e746e32557 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sat, 29 Jun 2019 18:07:57 +0300 Subject: [PATCH 10/17] fix --- src/entities/PlayerPed.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/entities/PlayerPed.cpp b/src/entities/PlayerPed.cpp index 2136d3ad..86312996 100644 --- a/src/entities/PlayerPed.cpp +++ b/src/entities/PlayerPed.cpp @@ -2,4 +2,4 @@ #include "patcher.h" #include "PlayerPed.h" -WRAPPER void CPlayerPed::ReApplyMoveAnims(void) { EAXJMP(0x4F07C0); } \ No newline at end of file +WRAPPER void CPlayerPed::ReApplyMoveAnims(void) { EAXJMP(0x4F07C0); } From 8946a209831f125f84faa77b59d6bf32cca35873 Mon Sep 17 00:00:00 2001 From: aap Date: Sat, 29 Jun 2019 17:54:09 +0200 Subject: [PATCH 11/17] fix hud render states; bug in coronas --- src/Camera.cpp | 2 +- src/re3.cpp | 2 +- src/render/Coronas.cpp | 2 +- src/render/Hud.cpp | 1618 ++++++++++++++++++++-------------------- 4 files changed, 808 insertions(+), 816 deletions(-) diff --git a/src/Camera.cpp b/src/Camera.cpp index 198dda0f..368a77d1 100644 --- a/src/Camera.cpp +++ b/src/Camera.cpp @@ -13,7 +13,7 @@ #include "MBlur.h" #include "Camera.h" -const float DefaultFOV = 80.0f; // actually 70.0f +const float DefaultFOV = 70.0f; // beta: 80.0f CCamera &TheCamera = *(CCamera*)0x6FACF8; bool &CCamera::m_bUseMouse3rdPerson = *(bool *)0x5F03D8; diff --git a/src/re3.cpp b/src/re3.cpp index 4bdb5469..70601186 100644 --- a/src/re3.cpp +++ b/src/re3.cpp @@ -342,7 +342,7 @@ patch() { StaticPatcher::Apply(); - Patch(0x46BC61+6, 1.0f); // car distance +// Patch(0x46BC61+6, 1.0f); // car distance InjectHook(0x59E460, printf, PATCH_JUMP); InjectHook(0x475E00, printf, PATCH_JUMP); // _Error diff --git a/src/render/Coronas.cpp b/src/render/Coronas.cpp index 64053007..f7a6f7d5 100644 --- a/src/render/Coronas.cpp +++ b/src/render/Coronas.cpp @@ -388,7 +388,7 @@ CCoronas::Render(void) // streaks for(i = 0; i < NUMCORONAS; i++){ if(aCoronas[i].id == 0 || !aCoronas[i].drawStreak) - break; + continue; for(j = 0; j < 5; j++){ if(!aCoronas[i].hasValue[j] || !aCoronas[i].hasValue[j+1]) diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp index 97f2362c..6ade9b60 100644 --- a/src/render/Hud.cpp +++ b/src/render/Hud.cpp @@ -125,876 +125,868 @@ WRAPPER void CHud::Draw(void) { EAXJMP(0x5052A0); } #else void CHud::Draw() { - RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)TRUE); - RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDSRCALPHA); - RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA); - RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); - RwRenderStateSet(rwRENDERSTATETEXTUREADDRESS, (void*)rwTEXTUREADDRESSMIRROR); - RwRenderStateSet(rwRENDERSTATETEXTURERASTER, (void*)FALSE); - RwRenderStateSet(rwRENDERSTATESHADEMODE, (void*)rwSHADEMODEFLAT); - RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERLINEAR); + if (CReplay::IsPlayingBack()) + return; - if (!CReplay::IsPlayingBack()) { - if (m_Wants_To_Draw_Hud && !TheCamera.m_WideScreenOn) { - bool Mode_RunAround = 0; - bool Mode_FirstPerson = 0; + if (m_Wants_To_Draw_Hud && !TheCamera.m_WideScreenOn) { + bool Mode_RunAround = 0; + bool Mode_FirstPerson = 0; - int32 WeaponType = CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_weapons[CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_currentWeapon].m_eWeaponType; - int32 Mode = TheCamera.Cams[TheCamera.ActiveCam].Mode; + int32 WeaponType = CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_weapons[CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_currentWeapon].m_eWeaponType; + int32 Mode = TheCamera.Cams[TheCamera.ActiveCam].Mode; - if (Mode == CCam::MODE_SNIPER || Mode == CCam::MODE_ROCKET || Mode == CCam::MODE_M16FIRSTPERSON_34 || Mode == CCam::MODE_EDITOR) - Mode_FirstPerson = 1; - if (Mode == CCam::MODE_FIRSTPERSONPEDONPC_41 || Mode == CCam::MODE_SNIPER_RUN_AROUND) - Mode_RunAround = 1; + if (Mode == CCam::MODE_SNIPER || Mode == CCam::MODE_ROCKET || Mode == CCam::MODE_M16FIRSTPERSON_34 || Mode == CCam::MODE_EDITOR) + Mode_FirstPerson = 1; + if (Mode == CCam::MODE_FIRSTPERSONPEDONPC_41 || Mode == CCam::MODE_SNIPER_RUN_AROUND) + Mode_RunAround = 1; - /* - Draw Crosshairs - */ - if (TheCamera.Cams->Using3rdPersonMouseCam() && (!CPad::GetPad(0)->GetLookBehindForPed() || TheCamera.m_bPlayerIsInGarage) || Mode == 40) { - if (CWorld::Players[CWorld::PlayerInFocus].m_pPed) { - int32 State = CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_nPedState; - if (State != PED_ENTER_CAR && State != PED_CARJACK) { - if ((WeaponType >= WEAPONTYPE_COLT45 && WeaponType <= WEAPONTYPE_M16) || WeaponType == WEAPONTYPE_FLAMETHROWER) - Mode_RunAround = 1; - } + /* + Draw Crosshairs + */ + if (TheCamera.Cams->Using3rdPersonMouseCam() && (!CPad::GetPad(0)->GetLookBehindForPed() || TheCamera.m_bPlayerIsInGarage) || Mode == 40) { + if (CWorld::Players[CWorld::PlayerInFocus].m_pPed) { + int32 State = CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_nPedState; + if (State != PED_ENTER_CAR && State != PED_CARJACK) { + if ((WeaponType >= WEAPONTYPE_COLT45 && WeaponType <= WEAPONTYPE_M16) || WeaponType == WEAPONTYPE_FLAMETHROWER) + Mode_RunAround = 1; } } + } - if (Mode_FirstPerson || Mode_RunAround) { - RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void *)rwFILTERLINEAR); + if (Mode_FirstPerson || Mode_RunAround) { + RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void *)rwFILTERLINEAR); - int32 SpriteBrightLikeADiamond = SpriteBrightness + 1; - if (SpriteBrightLikeADiamond > 30) - SpriteBrightLikeADiamond = 30; + int32 SpriteBrightLikeADiamond = SpriteBrightness + 1; + if (SpriteBrightLikeADiamond > 30) + SpriteBrightLikeADiamond = 30; - SpriteBrightness = SpriteBrightLikeADiamond; + SpriteBrightness = SpriteBrightLikeADiamond; - RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); + RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); - float fStep = sin((CTimer::GetTimeInMilliseconds() & 1023) * 0.0061328127); - float fMultBright = SpriteBrightness * 0.03f * (0.25f * fStep + 0.75f); - CRect rect; + float fStep = sin((CTimer::GetTimeInMilliseconds() & 1023) * 0.0061328127); + float fMultBright = SpriteBrightness * 0.03f * (0.25f * fStep + 0.75f); + CRect rect; - float fWidescreenOffset[2] = { 0.0f, 0.0f }; + float fWidescreenOffset[2] = { 0.0f, 0.0f }; - if (FrontEndMenuManager.m_PrefsUseWideScreen) { - fWidescreenOffset[0] = 0.0f; - fWidescreenOffset[1] = SCREEN_SCALE_Y(18.0f); - } + if (FrontEndMenuManager.m_PrefsUseWideScreen) { + fWidescreenOffset[0] = 0.0f; + fWidescreenOffset[1] = SCREEN_SCALE_Y(18.0f); + } - if (Mode_RunAround && TheCamera.Cams->Using3rdPersonMouseCam()) { - float f3rdX = SCREENW * TheCamera.m_f3rdPersonCHairMultX + fWidescreenOffset[0]; - float f3rdY = SCREENH * TheCamera.m_f3rdPersonCHairMultY - fWidescreenOffset[1]; + if (Mode_RunAround && TheCamera.Cams->Using3rdPersonMouseCam()) { + float f3rdX = SCREENW * TheCamera.m_f3rdPersonCHairMultX + fWidescreenOffset[0]; + float f3rdY = SCREENH * TheCamera.m_f3rdPersonCHairMultY - fWidescreenOffset[1]; - if (CWorld::Players[CWorld::PlayerInFocus].m_pPed && WeaponType == WEAPONTYPE_M16) { - rect.left = f3rdX - SCREEN_SCALE_X(32.0f * 0.6f); - rect.top = f3rdY - SCREEN_SCALE_Y(32.0f * 0.6f); - rect.right = f3rdX + SCREEN_SCALE_X(32.0f * 0.6f); - rect.bottom = f3rdY + SCREEN_SCALE_Y(32.0f * 0.6f); + if (CWorld::Players[CWorld::PlayerInFocus].m_pPed && WeaponType == WEAPONTYPE_M16) { + rect.left = f3rdX - SCREEN_SCALE_X(32.0f * 0.6f); + rect.top = f3rdY - SCREEN_SCALE_Y(32.0f * 0.6f); + rect.right = f3rdX + SCREEN_SCALE_X(32.0f * 0.6f); + rect.bottom = f3rdY + SCREEN_SCALE_Y(32.0f * 0.6f); - Sprites[HUD_SITEM16].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); - } - else { - rect.left = f3rdX - SCREEN_SCALE_X(32.0f * 0.4f); - rect.top = f3rdY - SCREEN_SCALE_Y(32.0f * 0.4f); - rect.right = f3rdX + SCREEN_SCALE_X(32.0f * 0.4f); - rect.bottom = f3rdY + SCREEN_SCALE_Y(32.0f * 0.4f); - - Sprites[HUD_SITEM16].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); - } + Sprites[HUD_SITEM16].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); } else { - if (Mode == CCam::MODE_M16FIRSTPERSON_34 || - Mode == CCam::MODE_FIRSTPERSONPEDONPC_41 || - Mode == CCam::MODE_EDITOR) { - rect.left = (SCREEN_WIDTH / 2) - SCREEN_SCALE_X(32.0f); - rect.top = (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(32.0f); - rect.right = (SCREEN_WIDTH / 2) + SCREEN_SCALE_X(32.0f); - rect.bottom = (SCREEN_HEIGHT / 2) + SCREEN_SCALE_Y(32.0f); - Sprites[HUD_SITEM16].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); - } - else if (Mode == CCam::MODE_ROCKET_RUN_AROUND) { - rect.left = (SCREEN_WIDTH / 2) - SCREEN_SCALE_X(32.0f * 0.7f); - rect.top = (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(32.0f * 0.7f); - rect.right = (SCREEN_WIDTH / 2) + SCREEN_SCALE_X(32.0f * 0.7f); - rect.bottom = (SCREEN_HEIGHT / 2) + SCREEN_SCALE_Y(32.0f * 0.7f); + rect.left = f3rdX - SCREEN_SCALE_X(32.0f * 0.4f); + rect.top = f3rdY - SCREEN_SCALE_Y(32.0f * 0.4f); + rect.right = f3rdX + SCREEN_SCALE_X(32.0f * 0.4f); + rect.bottom = f3rdY + SCREEN_SCALE_Y(32.0f * 0.4f); - Sprites[HUD_SITEM16].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); - } - else if (Mode == CCam::MODE_ROCKET || Mode == CCam::MODE_SNIPER_RUN_AROUND) { - RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void *)TRUE); - RwRenderStateSet(rwRENDERSTATESRCBLEND, (void *)rwBLENDONE); - RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void *)rwBLENDONE); - RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); - RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)FALSE); - RwRenderStateSet(rwRENDERSTATETEXTURERASTER, gpRocketSightTex->raster); - - CSprite::RenderOneXLUSprite(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, 1.0f, SCREEN_SCALE_X(40.0f), SCREEN_SCALE_Y(40.0f), (100.0f * fMultBright), (200.0f * fMultBright), (100.0f * fMultBright), 255, 1.0f, 255); - } - else { - rect.left = (SCREEN_WIDTH / 2) - SCREEN_SCALE_X(210.0f); - rect.top = (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(210.0f); - rect.right = SCREEN_WIDTH / 2; - rect.bottom = SCREEN_HEIGHT / 2; - Sprites[HUD_SITESNIPER].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); - - rect.right = (SCREEN_WIDTH / 2); - rect.top = (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(210.0f); - rect.left = SCREEN_SCALE_X(210.0f) + (SCREEN_WIDTH / 2); - rect.bottom = SCREEN_HEIGHT / 2; - Sprites[HUD_SITESNIPER].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); - - rect.left = (SCREEN_WIDTH / 2) - SCREEN_SCALE_X(210.0f); - rect.bottom = (SCREEN_HEIGHT / 2); - rect.right = (SCREEN_WIDTH / 2); - rect.top = SCREEN_SCALE_Y(210.0f) + (SCREEN_HEIGHT / 2); - Sprites[HUD_SITESNIPER].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); - - rect.right = (SCREEN_WIDTH / 2); - rect.bottom = (SCREEN_HEIGHT / 2); - rect.left = SCREEN_SCALE_X(210.0f) + (SCREEN_WIDTH / 2); - rect.top = SCREEN_SCALE_Y(210.0f) + (SCREEN_HEIGHT / 2); - Sprites[HUD_SITESNIPER].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); - } + Sprites[HUD_SITEM16].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); } - RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void *)rwFILTERLINEAR); - RwRenderStateSet(rwRENDERSTATESRCBLEND, (void *)rwBLENDSRCALPHA); - RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void *)rwBLENDINVSRCALPHA); } else { - SpriteBrightness = 0; + if (Mode == CCam::MODE_M16FIRSTPERSON_34 || + Mode == CCam::MODE_FIRSTPERSONPEDONPC_41 || + Mode == CCam::MODE_EDITOR) { + rect.left = (SCREEN_WIDTH / 2) - SCREEN_SCALE_X(32.0f); + rect.top = (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(32.0f); + rect.right = (SCREEN_WIDTH / 2) + SCREEN_SCALE_X(32.0f); + rect.bottom = (SCREEN_HEIGHT / 2) + SCREEN_SCALE_Y(32.0f); + Sprites[HUD_SITEM16].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); + } + else if (Mode == CCam::MODE_ROCKET_RUN_AROUND) { + rect.left = (SCREEN_WIDTH / 2) - SCREEN_SCALE_X(32.0f * 0.7f); + rect.top = (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(32.0f * 0.7f); + rect.right = (SCREEN_WIDTH / 2) + SCREEN_SCALE_X(32.0f * 0.7f); + rect.bottom = (SCREEN_HEIGHT / 2) + SCREEN_SCALE_Y(32.0f * 0.7f); + + Sprites[HUD_SITEM16].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); + } + else if (Mode == CCam::MODE_ROCKET || Mode == CCam::MODE_SNIPER_RUN_AROUND) { + RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void *)TRUE); + RwRenderStateSet(rwRENDERSTATESRCBLEND, (void *)rwBLENDONE); + RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void *)rwBLENDONE); + RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); + RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)FALSE); + RwRenderStateSet(rwRENDERSTATETEXTURERASTER, gpRocketSightTex->raster); + + CSprite::RenderOneXLUSprite(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, 1.0f, SCREEN_SCALE_X(40.0f), SCREEN_SCALE_Y(40.0f), (100.0f * fMultBright), (200.0f * fMultBright), (100.0f * fMultBright), 255, 1.0f, 255); + } + else { + rect.left = (SCREEN_WIDTH / 2) - SCREEN_SCALE_X(210.0f); + rect.top = (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(210.0f); + rect.right = SCREEN_WIDTH / 2; + rect.bottom = SCREEN_HEIGHT / 2; + Sprites[HUD_SITESNIPER].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); + + rect.right = (SCREEN_WIDTH / 2); + rect.top = (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(210.0f); + rect.left = SCREEN_SCALE_X(210.0f) + (SCREEN_WIDTH / 2); + rect.bottom = SCREEN_HEIGHT / 2; + Sprites[HUD_SITESNIPER].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); + + rect.left = (SCREEN_WIDTH / 2) - SCREEN_SCALE_X(210.0f); + rect.bottom = (SCREEN_HEIGHT / 2); + rect.right = (SCREEN_WIDTH / 2); + rect.top = SCREEN_SCALE_Y(210.0f) + (SCREEN_HEIGHT / 2); + Sprites[HUD_SITESNIPER].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); + + rect.right = (SCREEN_WIDTH / 2); + rect.bottom = (SCREEN_HEIGHT / 2); + rect.left = SCREEN_SCALE_X(210.0f) + (SCREEN_WIDTH / 2); + rect.top = SCREEN_SCALE_Y(210.0f) + (SCREEN_HEIGHT / 2); + Sprites[HUD_SITESNIPER].Draw(CRect(rect), CRGBA(255, 255, 255, 255)); + } + } + RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void *)rwFILTERLINEAR); + RwRenderStateSet(rwRENDERSTATESRCBLEND, (void *)rwBLENDSRCALPHA); + RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void *)rwBLENDINVSRCALPHA); + } + else { + SpriteBrightness = 0; + } + + /* + DrawMoneyCounter + */ + wchar sPrint[16]; + wchar sPrintIcon[16]; + char sTemp[16]; + + sprintf(sTemp, "$%08d", CWorld::Players[CWorld::PlayerInFocus].m_nVisibleMoney); + AsciiToUnicode(sTemp, sPrint); + + CFont::SetPropOff(); + CFont::SetBackgroundOff(); + CFont::SetScale(SCREEN_SCALE_X(0.8f), SCREEN_SCALE_Y(1.35f)); + CFont::SetCentreOff(); + CFont::SetRightJustifyOn(); + CFont::SetRightJustifyWrap(0.0f); + CFont::SetBackGroundOnlyTextOff(); + CFont::SetFontStyle(FONT_HEADING); + CFont::SetPropOff(); + CFont::SetColor(CRGBA(0, 0, 0, 255)); + + 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::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f), SCREEN_SCALE_Y(43.0f), sPrint); + + /* + DrawClock + */ + sprintf(sTemp, "%02d:%02d", CClock::GetHours(), CClock::GetMinutes()); + AsciiToUnicode(sTemp, sPrint); + + CFont::SetColor(CRGBA(0, 0, 0, 255)); + + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(111.0f - 2.0f), SCREEN_SCALE_Y(22.0f + 2.0f), sPrint); + + CFont::SetColor(CRGBA(194, 165, 120, 255)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(111.0f), SCREEN_SCALE_Y(22.0f), sPrint); + + /* + DrawAmmo + */ + int16 AmmoAmount = CWeaponInfo::GetWeaponInfo(FindPlayerPed()->GetWeapon()->m_eWeaponType)->m_nAmountofAmmunition; + int32 AmmoInClip = CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_weapons[CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_currentWeapon].m_nAmmoInClip; + int32 TotalAmmo = CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_weapons[CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_currentWeapon].m_nAmmoTotal; + int32 Ammo, Clip; + + if (AmmoAmount <= 1 || AmmoAmount >= 1000) + sprintf(sTemp, "%d", TotalAmmo); + else { + if (WeaponType == WEAPONTYPE_FLAMETHROWER) { + Clip = AmmoInClip / 10; + + if ((TotalAmmo - AmmoInClip) / 10 <= 9999) + Ammo = (TotalAmmo - AmmoInClip) / 10; + else + Ammo = 9999; + } + else { + Clip = AmmoInClip; + + if (TotalAmmo - AmmoInClip > 9999) + Ammo = 9999; + else + Ammo = TotalAmmo - AmmoInClip; } - /* - DrawMoneyCounter - */ - wchar sPrint[16]; - wchar sPrintIcon[16]; - char sTemp[16]; + sprintf(sTemp, "%d-%d", Ammo, Clip); + } - sprintf(sTemp, "$%08d", CWorld::Players[CWorld::PlayerInFocus].m_nVisibleMoney); - AsciiToUnicode(sTemp, sPrint); + AsciiToUnicode(sTemp, sPrint); - CFont::SetPropOff(); - CFont::SetBackgroundOff(); + CFont::SetBackgroundOff(); + CFont::SetScale(SCREEN_SCALE_X(0.4f), SCREEN_SCALE_Y(0.6f)); + CFont::SetJustifyOff(); + CFont::SetCentreOn(); + CFont::SetCentreSize(SCREEN_SCALE_X(640.0f)); + CFont::SetPropOn(); + CFont::SetFontStyle(FONT_BANK); + + if (!CDarkel::FrenzyOnGoing()) { + if (WeaponType) { + if (WeaponType != WEAPONTYPE_BASEBALLBAT) { + CFont::SetColor(CRGBA(0, 0, 0, 255)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(66.0f), SCREEN_SCALE_Y(73.0f), sPrint); + } + } + } + + /* + DrawWeaponIcon + */ + Sprites[WeaponType].Draw( + CRect(SCREEN_SCALE_FROM_RIGHT(99.0f), SCREEN_SCALE_Y(27.0f), SCREEN_SCALE_FROM_RIGHT(35.0f), SCREEN_SCALE_Y(91.0f)), + CRGBA(255, 255, 255, 255), + 0.015f, + 0.015f, + 1.0f, + 0.0f, + 0.015f, + 1.0f, + 1.0f, + 1.0f); + + /* + DrawHealth + */ + CFont::SetBackgroundOff(); + CFont::SetScale(SCREEN_SCALE_X(0.8f), SCREEN_SCALE_Y(1.35f)); + CFont::SetJustifyOff(); + CFont::SetCentreOff(); + CFont::SetRightJustifyWrap(0.0f); + CFont::SetRightJustifyOn(); + CFont::SetPropOff(); + CFont::SetFontStyle(FONT_HEADING); + + if (m_ItemToFlash == ITEM_HEALTH && CTimer::GetFrameCounter() & 8 + || m_ItemToFlash != ITEM_HEALTH + || CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_fHealth < 10 + && CTimer::GetFrameCounter() & 8) { + if (CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_fHealth >= 10 + || CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_fHealth < 10 && CTimer::GetFrameCounter() & 8) { + + AsciiToUnicode("{", sPrintIcon); + sprintf(sTemp, "%03d", (int32)CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_fHealth); + AsciiToUnicode(sTemp, sPrint); + + CFont::SetColor(CRGBA(0, 0, 0, 255)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f - 2.0f), SCREEN_SCALE_Y(65.0f + 2.0f), sPrint); + + 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::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f), SCREEN_SCALE_Y(65.0f), sPrint); + + 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), SCREEN_SCALE_Y(65.0f), sPrintIcon); + } + } + } + + /* + DrawArmour + */ + if (m_ItemToFlash == ITEM_ARMOUR && CTimer::GetFrameCounter() & 8 || m_ItemToFlash != ITEM_ARMOUR) { CFont::SetScale(SCREEN_SCALE_X(0.8f), SCREEN_SCALE_Y(1.35f)); - CFont::SetCentreOff(); - CFont::SetRightJustifyOn(); - CFont::SetRightJustifyWrap(0.0f); - CFont::SetBackGroundOnlyTextOff(); - CFont::SetFontStyle(FONT_HEADING); - CFont::SetPropOff(); - CFont::SetColor(CRGBA(0, 0, 0, 255)); + if (CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_fArmour > 1.0f) { + AsciiToUnicode("[", sPrintIcon); + sprintf(sTemp, "%03d", (int32)CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_fArmour); + AsciiToUnicode(sTemp, sPrint); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f - 2.0f), SCREEN_SCALE_Y(43.0f + 2.0f), sPrint); + CFont::SetColor(CRGBA(0, 0, 0, 255)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(182.0f - 2.0f), SCREEN_SCALE_Y(65.0f + 2.0f), sPrint); - CFont::SetColor(CRGBA(89, 115, 150, 255)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f), SCREEN_SCALE_Y(43.0f), sPrint); - - /* - DrawClock - */ - sprintf(sTemp, "%02d:%02d", CClock::GetHours(), CClock::GetMinutes()); - AsciiToUnicode(sTemp, sPrint); - - CFont::SetColor(CRGBA(0, 0, 0, 255)); - - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(111.0f - 2.0f), SCREEN_SCALE_Y(22.0f + 2.0f), sPrint); - - CFont::SetColor(CRGBA(194, 165, 120, 255)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(111.0f), SCREEN_SCALE_Y(22.0f), sPrint); - - /* - DrawAmmo - */ - int16 AmmoAmount = CWeaponInfo::GetWeaponInfo(FindPlayerPed()->GetWeapon()->m_eWeaponType)->m_nAmountofAmmunition; - int32 AmmoInClip = CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_weapons[CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_currentWeapon].m_nAmmoInClip; - int32 TotalAmmo = CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_weapons[CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_currentWeapon].m_nAmmoTotal; - int32 Ammo, Clip; - - if (AmmoAmount <= 1 || AmmoAmount >= 1000) - sprintf(sTemp, "%d", TotalAmmo); - else { - if (WeaponType == WEAPONTYPE_FLAMETHROWER) { - Clip = AmmoInClip / 10; - - if ((TotalAmmo - AmmoInClip) / 10 <= 9999) - Ammo = (TotalAmmo - AmmoInClip) / 10; - else - Ammo = 9999; - } - else { - Clip = AmmoInClip; - - if (TotalAmmo - AmmoInClip > 9999) - Ammo = 9999; - else - Ammo = TotalAmmo - AmmoInClip; + if (!CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss || CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss + 2000 || CTimer::GetFrameCounter() & 4) { + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(234.0f - 2.0f), SCREEN_SCALE_Y(65.0f + 2.0f), sPrintIcon); } - sprintf(sTemp, "%d-%d", Ammo, Clip); + CFont::SetColor(CRGBA(124, 140, 95, 255)); + + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(182.0f), SCREEN_SCALE_Y(65.0f), sPrint); + + if (!CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss || CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss + 2000 || CTimer::GetFrameCounter() & 1) { + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(234.0f), SCREEN_SCALE_Y(65.0f), sPrintIcon); + } + } + } + + /* + DrawWantedLevel + */ + CFont::SetBackgroundOff(); + CFont::SetScale(SCREEN_SCALE_X(0.8f), SCREEN_SCALE_Y(1.35f)); + CFont::SetJustifyOff(); + CFont::SetCentreOff(); + CFont::SetRightJustifyOff(); + CFont::SetPropOn(); + CFont::SetFontStyle(FONT_HEADING); + + AsciiToUnicode("]", sPrintIcon); + + for (int i = 0; i < 6; i++) { + CFont::SetColor(CRGBA(0, 0, 0, 255)); + CFont::PrintString(2.0f + SCREEN_SCALE_FROM_RIGHT(60.0f - 2.0f + 24.0f * i), SCREEN_SCALE_Y(87.0f + 2.0f), sPrintIcon); + if (CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_pWanted->m_nWantedLevel > i + && (CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_pWanted->m_nLastWantedLevelChange + + 2000 || CTimer::GetFrameCounter() & 4)) { + + CFont::SetColor(CRGBA(193, 164, 120, 255)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(60.0f + 24.0f * i), SCREEN_SCALE_Y(87.0f), sPrintIcon); + } + } + + /* + DrawZoneName + */ + if (m_pZoneName) { + float fZoneAlpha = 0.0f; + + if (m_pZoneName != m_pLastZoneName) { + switch (m_ZoneState) { + case 0: + m_ZoneState = 2; + m_ZoneToPrint = m_pZoneName; + m_ZoneNameTimer = 0; + m_ZoneFadeTimer = 0; + break; + case 1: + case 2: + case 3: + case 4: + m_ZoneNameTimer = 0; + m_ZoneState = 4; + break; + default: + break; + } + m_pLastZoneName = m_pZoneName; } - AsciiToUnicode(sTemp, sPrint); + if (m_ZoneState) { + switch (m_ZoneState) { + case 1: + if (m_ZoneNameTimer > 10000) { + m_ZoneFadeTimer = 1000; + m_ZoneState = 3; + } + fZoneAlpha = 255.0f; + break; + case 2: + m_ZoneFadeTimer += (CTimer::GetTimeStep() * 0.02f * 1000.0f); + if (m_ZoneFadeTimer > 1000) { + m_ZoneState = 1; + m_ZoneFadeTimer = 1000; + } + fZoneAlpha = m_ZoneFadeTimer * 0.001f * 255.0f; + break; + case 3: + m_ZoneFadeTimer += (CTimer::GetTimeStep() * 0.02f * -1000.0f); + if (m_ZoneFadeTimer < 0) { + m_ZoneState = 0; + m_ZoneFadeTimer = 0; + } + fZoneAlpha = m_ZoneFadeTimer * 0.001f * 255.0f; + break; + case 4: + m_ZoneFadeTimer += (CTimer::GetTimeStep() * 0.02f * -1000.0f); + if (m_ZoneFadeTimer < 0) { + m_ZoneFadeTimer = 0; + m_ZoneToPrint = m_pLastZoneName; + m_ZoneNameTimer = 0; + m_ZoneState = 2; + } + fZoneAlpha = m_ZoneFadeTimer * 0.001f * 255.0f; + break; + default: + break; + + } + if (!m_Message[0]) { + m_ZoneNameTimer += (CTimer::GetTimeStep() * 0.02f * 1000.0f); + CFont::SetJustifyOff(); + CFont::SetPropOn(); + CFont::SetBackgroundOff(); + + if (FrontEndMenuManager.m_PrefsLanguage == LANGUAGE_SPANISH) + CFont::SetScale(SCREEN_SCALE_X(1.2f * 0.8f), SCREEN_SCALE_Y(1.2f)); + else + CFont::SetScale(SCREEN_SCALE_X(1.2f), SCREEN_SCALE_Y(1.2f)); + + CFont::SetRightJustifyOn(); + CFont::SetRightJustifyWrap(0.0f); + CFont::SetBackGroundOnlyTextOff(); + CFont::SetFontStyle(FONT_BANK); + CFont::SetColor(CRGBA(0, 0, 0, fZoneAlpha)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(32.0f - 1.0f), SCREEN_SCALE_FROM_BOTTOM(30.0f - 1.0f), m_ZoneToPrint); + + CFont::SetColor(CRGBA(152, 154, 82, fZoneAlpha)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(32.0f), SCREEN_SCALE_FROM_BOTTOM(30.0f), m_ZoneToPrint); + } + } + } + else { + m_pLastZoneName = 0; + m_ZoneState = 0; + m_ZoneFadeTimer = 0; + m_ZoneNameTimer = 0; + } + + /* + DrawVehicleName + */ + if (m_VehicleName) { + float fVehicleAlpha = 0.0f; + + if (m_VehicleName != m_pLastVehicleName) { + switch (m_VehicleState) { + case 0: + m_VehicleState = 2; + m_pVehicleNameToPrint = m_VehicleName; + m_VehicleNameTimer = 0; + m_VehicleFadeTimer = 0; + break; + case 1: + case 2: + case 3: + case 4: + m_VehicleNameTimer = 0; + m_VehicleState = 4; + break; + default: + break; + } + m_pLastVehicleName = m_VehicleName; + } + + if (m_VehicleState) { + switch (m_VehicleState) { + case 1: + if (m_VehicleNameTimer > 10000) { + m_VehicleFadeTimer = 1000; + m_VehicleState = 3; + } + fVehicleAlpha = 255.0f; + break; + case 2: + m_VehicleFadeTimer += (CTimer::GetTimeStep() * 0.02f * 1000.0f); + if (m_VehicleFadeTimer > 1000) { + m_VehicleState = 1; + m_VehicleFadeTimer = 1000; + } + fVehicleAlpha = m_VehicleFadeTimer * 0.001f * 255.0f; + break; + case 3: + m_VehicleFadeTimer += (CTimer::GetTimeStep() * 0.02f * -1000.0f); + if (m_VehicleFadeTimer < 0) { + m_VehicleState = 0; + m_VehicleFadeTimer = 0; + } + fVehicleAlpha = m_VehicleFadeTimer * 0.001f * 255.0f; + break; + case 4: + m_VehicleFadeTimer += (CTimer::GetTimeStep() * 0.02f * -1000.0f); + if (m_VehicleFadeTimer < 0) { + m_VehicleFadeTimer = 0; + m_pVehicleNameToPrint = m_pLastVehicleName; + m_VehicleNameTimer = 0; + m_VehicleState = 2; + } + fVehicleAlpha = m_VehicleFadeTimer * 0.001f * 255.0f; + break; + default: + break; + } + + if (!m_Message[0]) { + m_VehicleNameTimer += (CTimer::GetTimeStep() * 0.02f * 1000.0f); + CFont::SetJustifyOff(); + CFont::SetPropOn(); + CFont::SetBackgroundOff(); + + if (FrontEndMenuManager.m_PrefsLanguage != LANGUAGE_ITALIAN && FrontEndMenuManager.m_PrefsLanguage != LANGUAGE_SPANISH) + CFont::SetScale(SCREEN_SCALE_X(1.2f), SCREEN_SCALE_Y(1.2f)); + else + CFont::SetScale(SCREEN_SCALE_X(1.2f * 0.85f), SCREEN_SCALE_Y(1.2f)); + + CFont::SetRightJustifyOn(); + CFont::SetRightJustifyWrap(0.0f); + CFont::SetBackGroundOnlyTextOff(); + CFont::SetFontStyle(FONT_BANK); + CFont::SetColor(CRGBA(0, 0, 0, fVehicleAlpha)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(32.0f - 1.0f), SCREEN_SCALE_FROM_BOTTOM(55.0f - 1.0f), m_pVehicleNameToPrint); + + CFont::SetColor(CRGBA(194, 165, 120, fVehicleAlpha)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(32.0f), SCREEN_SCALE_FROM_BOTTOM(55.0f), m_pVehicleNameToPrint); + } + } + } + else { + m_pLastVehicleName = 0; + m_VehicleState = 0; + m_VehicleFadeTimer = 0; + m_VehicleNameTimer = 0; + } + + /* + DrawOnScreenTimer + */ + wchar sTimer[16]; + + CFont::SetPropOn(); + CFont::SetBackgroundOff(); + CFont::SetBackGroundOnlyTextOn(); + CFont::SetAlignment(ALIGN_RIGHT); + CFont::SetRightJustifyWrap(-SCREENW); + CFont::SetFontStyle(FONT_HEADING); + CFont::SetScale(SCREEN_SCALE_X(0.8f), SCREEN_SCALE_Y(1.35f)); + + if (!CUserDisplay::OnscnTimer.m_sEntries[0].m_bTimerProcessed) + TimerOnLastFrame = 0; + if (!CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterProcessed) + CounterOnLastFrame = 0; + + float AlignToHUD = SCREEN_SCALE_X(-12.0f); + if (CUserDisplay::OnscnTimer.m_bProcessed == 1) { + if (CUserDisplay::OnscnTimer.m_sEntries[0].m_bTimerProcessed == 1) { + if (!TimerOnLastFrame) + TimerFlashTimer = 1; + + TimerOnLastFrame = 1; + + if (TimerFlashTimer) { + if (++TimerFlashTimer > 50) + TimerFlashTimer = 0; + } + + if (CTimer::GetFrameCounter() & 4 || !TimerFlashTimer) { + AsciiToUnicode(CUserDisplay::OnscnTimer.m_sEntries[0].m_bTimerBuffer, sTimer); + CFont::SetColor(CRGBA(0, 0, 0, 255)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(25.0f) + AlignToHUD, SCREEN_SCALE_Y(112.0f), sTimer); + + CFont::SetColor(CRGBA(186, 101, 50, 255)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(27.0f) + AlignToHUD, SCREEN_SCALE_Y(110.0f), sTimer); + + if (CUserDisplay::OnscnTimer.m_sEntries[0].m_aTimerText[0]) { + CFont::SetColor(CRGBA(0, 0, 0, 255)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(105.0f) + AlignToHUD, SCREEN_SCALE_Y(112.0f), TheText.Get(CUserDisplay::OnscnTimer.m_sEntries[0].m_aTimerText)); + + CFont::SetColor(CRGBA(186, 101, 50, 255)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(107.0f) + AlignToHUD, SCREEN_SCALE_Y(110.0f), TheText.Get(CUserDisplay::OnscnTimer.m_sEntries[0].m_aTimerText)); + } + } + } + if (CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterProcessed == 1) { + if (!CounterOnLastFrame) + CounterFlashTimer = 1; + + CounterOnLastFrame = 1; + + if (CounterFlashTimer) { + if (++CounterFlashTimer > 50) + CounterFlashTimer = 0; + } + + if (CTimer::GetFrameCounter() & 4 || !CounterFlashTimer) { + if (CUserDisplay::OnscnTimer.m_sEntries[0].m_nType) { + CSprite2d::DrawRect(CRect(SCREEN_SCALE_FROM_RIGHT(73.0f) + AlignToHUD, SCREEN_SCALE_Y(140.0f), SCREEN_SCALE_FROM_RIGHT(23.0f) + AlignToHUD, SCREEN_SCALE_Y(151.0f)), CRGBA(0, 106, 164, 80)); + CSprite2d::DrawRect(CRect(SCREEN_SCALE_FROM_RIGHT(73.0f) + AlignToHUD, SCREEN_SCALE_Y(140.0f), SCREEN_SCALE_FROM_RIGHT((-atoi(CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterBuffer) * 0.5f) + 73.0f) + AlignToHUD, SCREEN_SCALE_Y(151.0f)), CRGBA(0, 106, 164, 255)); + } + else { + AsciiToUnicode(CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterBuffer, sTimer); + + CFont::SetColor(CRGBA(0, 0, 0, 255)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(25.0f) + AlignToHUD, SCREEN_SCALE_Y(134.0f), sTimer); + + CFont::SetColor(CRGBA(0, 106, 164, 255)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(27.0f) + AlignToHUD, SCREEN_SCALE_Y(132.0f), sTimer); + } + + if (CUserDisplay::OnscnTimer.m_sEntries[0].m_aCounterText[0]) { + CFont::SetColor(CRGBA(0, 0, 0, 255)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(86.0f) + AlignToHUD, SCREEN_SCALE_Y(134.0f), TheText.Get(CUserDisplay::OnscnTimer.m_sEntries[0].m_aCounterText)); + + CFont::SetColor(CRGBA(0, 106, 164, 255)); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(88.0f) + AlignToHUD, SCREEN_SCALE_Y(132.0f), TheText.Get(CUserDisplay::OnscnTimer.m_sEntries[0].m_aCounterText)); + } + } + } + } + + /* + DrawPager + */ + if (!m_PagerMessage[0]) { + if (PagerOn == 1) { + PagerSoundPlayed = false; + PagerOn = 2; + } + } + if (m_PagerMessage[0] || PagerOn == 2) { + if (!PagerOn) { + PagerOn = 1; + PagerXOffset = 150.0f; + } + if (PagerOn == 1) { + if (PagerXOffset > 0.0f) { + float fStep = PagerXOffset * 0.05f; + if (fStep > 10.0f) + fStep = 10.0f; + PagerXOffset -= fStep * CTimer::GetTimeStep(); + } + if (!PagerSoundPlayed) { + DMAudio.PlayFrontEndSound(96, 0); + PagerSoundPlayed = 1; + } + } + else if (PagerOn == 2) { + float fStep = PagerXOffset * 0.05f; + if (fStep < 2.0f) + fStep = 2.0f; + PagerXOffset += fStep * CTimer::GetTimeStep(); + if (PagerXOffset > 150.0f) { + PagerXOffset = 150.0; + PagerOn = 0; + } + } + + Sprites[HUD_PAGER].Draw(CRect(SCREEN_SCALE_X(26.0f - PagerXOffset), SCREEN_SCALE_Y(27.0f), SCREEN_SCALE_X(160.0 + 26.0f - PagerXOffset), SCREEN_SCALE_Y(80.0f + 27.0f)), CRGBA(255, 255, 255, 255)); CFont::SetBackgroundOff(); - CFont::SetScale(SCREEN_SCALE_X(0.4f), SCREEN_SCALE_Y(0.6f)); + CFont::SetScale(SCREEN_SCALE_X(0.84f), SCREEN_SCALE_Y(1.0f)); + CFont::SetColor(CRGBA(32, 162, 66, 205)); + CFont::SetRightJustifyOff(); + CFont::SetBackgroundOff(); + CFont::SetCentreOff(); CFont::SetJustifyOff(); + CFont::SetPropOff(); + CFont::SetFontStyle(FONT_PAGER); + CFont::PrintString(SCREEN_SCALE_X(52.0f - PagerXOffset), SCREEN_SCALE_Y(54.0f), m_PagerMessage); + } + + /* + DrawRadar + */ + if (m_ItemToFlash == ITEM_RADAR && CTimer::GetFrameCounter() & 8 || m_ItemToFlash != ITEM_RADAR) { + CRadar::DrawMap(); + CRect rect(0.0f, 0.0f, SCREEN_SCALE_X(RADAR_WIDTH), SCREEN_SCALE_Y(RADAR_HEIGHT)); + // FIX: game doesn't scale RADAR_LEFT here + rect.Translate(SCREEN_SCALE_X(RADAR_LEFT), SCREEN_SCALE_FROM_BOTTOM(RADAR_BOTTOM + RADAR_HEIGHT)); + rect.Grow(4.0f); + Sprites[HUD_RADARDISC].Draw(rect, CRGBA(0, 0, 0, 255)); + CRadar::DrawBlips(); + } + } + + /* + Draw3dMarkers + */ + if (m_Wants_To_Draw_3dMarkers && !TheCamera.m_WideScreenOn && !m_BigMessage[0][0] && !m_BigMessage[2][0]) { + CRadar::Draw3dMarkers(); + } + + /* + DrawScriptText + */ + if (!CTimer::GetIsUserPaused()) { + CTextLine* IntroText = CTheScripts::IntroTextLines; + + for (int i = 0; i < 2; i++) { + if (CTheScripts::IntroTextLines[i].m_awText[0] && CTheScripts::IntroTextLines[i].field_29) { + CFont::SetScale(SCREEN_SCALE_X(CTheScripts::IntroTextLines[i].m_fScaleX), SCREEN_SCALE_Y(CTheScripts::IntroTextLines[i].m_fScaleY * 0.5f)); + CFont::SetColor(CTheScripts::IntroTextLines[i].m_sColor); + + if (CTheScripts::IntroTextLines[i].m_bJustify) + CFont::SetJustifyOn(); + else + CFont::SetJustifyOff(); + + if (CTheScripts::IntroTextLines[i].m_bRightJustify) + CFont::SetRightJustifyOn(); + else + CFont::SetRightJustifyOff(); + + if (CTheScripts::IntroTextLines[i].m_bCentered) + CFont::SetCentreOn(); + else + CFont::SetCentreOff(); + + CFont::SetWrapx(SCREEN_SCALE_X(CTheScripts::IntroTextLines[i].m_fWrapX)); + CFont::SetCentreSize(SCREEN_SCALE_X(CTheScripts::IntroTextLines[i].m_fCenterSize)); + + if (CTheScripts::IntroTextLines[i].m_bBackground) + CFont::SetBackgroundOn(); + else + CFont::SetBackgroundOff(); + + CFont::SetBackgroundColor(CTheScripts::IntroTextLines[i].m_sBackgroundColor); + + if (CTheScripts::IntroTextLines[i].m_bBackgroundOnly) + CFont::SetBackGroundOnlyTextOn(); + else + CFont::SetBackGroundOnlyTextOff(); + + if (CTheScripts::IntroTextLines[i].m_bTextProportional) + CFont::SetPropOn(); + else + CFont::SetPropOff(); + + CFont::SetFontStyle(CTheScripts::IntroTextLines[i].m_nFont); + CFont::PrintString(SCREEN_SCALE_X(640.0f - CTheScripts::IntroTextLines[i].field_36), SCREEN_SCALE_Y(448.0f - CTheScripts::IntroTextLines[i].field_40), IntroText->m_awText); + } + } + + CScriptRectangle* IntroRect = CTheScripts::IntroRectangles; + + for (int i = 0; i < 16; i++) { + if (CTheScripts::IntroRectangles[i].m_bIsUsed && CTheScripts::IntroRectangles[i].m_bIsAntialiased) { + if (CTheScripts::IntroRectangles[i].m_wTextureId >= 0) { + CRect rect = { + CTheScripts::IntroRectangles[i].m_sRect.left, + CTheScripts::IntroRectangles[i].m_sRect.bottom, + CTheScripts::IntroRectangles[i].m_sRect.right, + CTheScripts::IntroRectangles[i].m_sRect.bottom }; + + CTheScripts::ScriptSprites[CTheScripts::IntroRectangles[i].m_wTextureId].Draw(rect, IntroRect->m_sColor); + } + else { + CRect rect = { + CTheScripts::IntroRectangles[i].m_sRect.left, + CTheScripts::IntroRectangles[i].m_sRect.bottom, + CTheScripts::IntroRectangles[i].m_sRect.right, + CTheScripts::IntroRectangles[i].m_sRect.bottom }; + + CSprite2d::DrawRect(rect, IntroRect->m_sColor); + } + } + } + + /* + DrawSubtitles + */ + if (m_Message[0] && !m_BigMessage[2][0] && (FrontEndMenuManager.m_PrefsShowSubtitles == 1 || !TheCamera.m_WideScreenOn)) { + CFont::SetJustifyOff(); + CFont::SetBackgroundOff(); + CFont::SetBackgroundColor(CRGBA(0, 0, 0, 128)); + CFont::SetScale(SCREEN_SCALE_X(0.48f), SCREEN_SCALE_Y(1.120f)); CFont::SetCentreOn(); - CFont::SetCentreSize(SCREEN_SCALE_X(640.0f)); CFont::SetPropOn(); CFont::SetFontStyle(FONT_BANK); - if (!CDarkel::FrenzyOnGoing()) { - if (WeaponType) { - if (WeaponType != WEAPONTYPE_BASEBALLBAT) { - CFont::SetColor(CRGBA(0, 0, 0, 255)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(66.0f), SCREEN_SCALE_Y(73.0f), sPrint); - } - } - } + if (TheCamera.m_WideScreenOn) + CFont::SetCentreSize(SCREEN_SCALE_FROM_RIGHT(120.0f)); + else + CFont::SetCentreSize(SCREEN_SCALE_FROM_RIGHT(280.0f)); - /* - DrawWeaponIcon - */ - Sprites[WeaponType].Draw( - CRect(SCREEN_SCALE_FROM_RIGHT(99.0f), SCREEN_SCALE_Y(27.0f), SCREEN_SCALE_FROM_RIGHT(35.0f), SCREEN_SCALE_Y(91.0f)), - CRGBA(255, 255, 255, 255), - 0.015f, - 0.015f, - 1.0f, - 0.0f, - 0.015f, - 1.0f, - 1.0f, - 1.0f); - - /* - DrawHealth - */ - CFont::SetBackgroundOff(); - CFont::SetScale(SCREEN_SCALE_X(0.8f), SCREEN_SCALE_Y(1.35f)); - CFont::SetJustifyOff(); - CFont::SetCentreOff(); - CFont::SetRightJustifyWrap(0.0f); - CFont::SetRightJustifyOn(); - CFont::SetPropOff(); - CFont::SetFontStyle(FONT_HEADING); - - if (m_ItemToFlash == ITEM_HEALTH && CTimer::GetFrameCounter() & 8 - || m_ItemToFlash != ITEM_HEALTH - || CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_fHealth < 10 - && CTimer::GetFrameCounter() & 8) { - if (CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_fHealth >= 10 - || CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_fHealth < 10 && CTimer::GetFrameCounter() & 8) { - - AsciiToUnicode("{", sPrintIcon); - sprintf(sTemp, "%03d", (int32)CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_fHealth); - AsciiToUnicode(sTemp, sPrint); - - CFont::SetColor(CRGBA(0, 0, 0, 255)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f - 2.0f), SCREEN_SCALE_Y(65.0f + 2.0f), sPrint); - - 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::PrintString(SCREEN_SCALE_FROM_RIGHT(110.0f), SCREEN_SCALE_Y(65.0f), sPrint); - - 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), SCREEN_SCALE_Y(65.0f), sPrintIcon); - } - } - } - - /* - DrawArmour - */ - if (m_ItemToFlash == ITEM_ARMOUR && CTimer::GetFrameCounter() & 8 || m_ItemToFlash != ITEM_ARMOUR) { - CFont::SetScale(SCREEN_SCALE_X(0.8f), SCREEN_SCALE_Y(1.35f)); - if (CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_fArmour > 1.0f) { - AsciiToUnicode("[", sPrintIcon); - sprintf(sTemp, "%03d", (int32)CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_fArmour); - AsciiToUnicode(sTemp, sPrint); - - CFont::SetColor(CRGBA(0, 0, 0, 255)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(182.0f - 2.0f), SCREEN_SCALE_Y(65.0f + 2.0f), sPrint); - - if (!CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss || CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss + 2000 || CTimer::GetFrameCounter() & 4) { - 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::PrintString(SCREEN_SCALE_FROM_RIGHT(182.0f), SCREEN_SCALE_Y(65.0f), sPrint); - - if (!CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss || CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_nTimeLastArmourLoss + 2000 || CTimer::GetFrameCounter() & 1) { - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(234.0f), SCREEN_SCALE_Y(65.0f), sPrintIcon); - } - } - } - - /* - DrawWantedLevel - */ - CFont::SetBackgroundOff(); - CFont::SetScale(SCREEN_SCALE_X(0.8f), SCREEN_SCALE_Y(1.35f)); - CFont::SetJustifyOff(); - CFont::SetCentreOff(); - CFont::SetRightJustifyOff(); - CFont::SetPropOn(); - CFont::SetFontStyle(FONT_HEADING); - - AsciiToUnicode("]", sPrintIcon); - - for (int i = 0; i < 6; i++) { - CFont::SetColor(CRGBA(0, 0, 0, 255)); - CFont::PrintString(2.0f + SCREEN_SCALE_FROM_RIGHT(60.0f - 2.0f + 24.0f * i), SCREEN_SCALE_Y(87.0f + 2.0f), sPrintIcon); - if (CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_pWanted->m_nWantedLevel > i - && (CTimer::GetTimeInMilliseconds() > CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_pWanted->m_nLastWantedLevelChange - + 2000 || CTimer::GetFrameCounter() & 4)) { - - CFont::SetColor(CRGBA(193, 164, 120, 255)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(60.0f + 24.0f * i), SCREEN_SCALE_Y(87.0f), sPrintIcon); - } - } - - /* - DrawZoneName - */ - if (m_pZoneName) { - float fZoneAlpha = 0.0f; - - if (m_pZoneName != m_pLastZoneName) { - switch (m_ZoneState) { - case 0: - m_ZoneState = 2; - m_ZoneToPrint = m_pZoneName; - m_ZoneNameTimer = 0; - m_ZoneFadeTimer = 0; - break; - case 1: - case 2: - case 3: - case 4: - m_ZoneNameTimer = 0; - m_ZoneState = 4; - break; - default: - break; - } - m_pLastZoneName = m_pZoneName; - } - - if (m_ZoneState) { - switch (m_ZoneState) { - case 1: - if (m_ZoneNameTimer > 10000) { - m_ZoneFadeTimer = 1000; - m_ZoneState = 3; - } - fZoneAlpha = 255.0f; - break; - case 2: - m_ZoneFadeTimer += (CTimer::GetTimeStep() * 0.02f * 1000.0f); - if (m_ZoneFadeTimer > 1000) { - m_ZoneState = 1; - m_ZoneFadeTimer = 1000; - } - fZoneAlpha = m_ZoneFadeTimer * 0.001f * 255.0f; - break; - case 3: - m_ZoneFadeTimer += (CTimer::GetTimeStep() * 0.02f * -1000.0f); - if (m_ZoneFadeTimer < 0) { - m_ZoneState = 0; - m_ZoneFadeTimer = 0; - } - fZoneAlpha = m_ZoneFadeTimer * 0.001f * 255.0f; - break; - case 4: - m_ZoneFadeTimer += (CTimer::GetTimeStep() * 0.02f * -1000.0f); - if (m_ZoneFadeTimer < 0) { - m_ZoneFadeTimer = 0; - m_ZoneToPrint = m_pLastZoneName; - m_ZoneNameTimer = 0; - m_ZoneState = 2; - } - fZoneAlpha = m_ZoneFadeTimer * 0.001f * 255.0f; - break; - default: - break; - - } - if (!m_Message[0]) { - m_ZoneNameTimer += (CTimer::GetTimeStep() * 0.02f * 1000.0f); - CFont::SetJustifyOff(); - CFont::SetPropOn(); - CFont::SetBackgroundOff(); - - if (FrontEndMenuManager.m_PrefsLanguage == LANGUAGE_SPANISH) - CFont::SetScale(SCREEN_SCALE_X(1.2f * 0.8f), SCREEN_SCALE_Y(1.2f)); - else - CFont::SetScale(SCREEN_SCALE_X(1.2f), SCREEN_SCALE_Y(1.2f)); - - CFont::SetRightJustifyOn(); - CFont::SetRightJustifyWrap(0.0f); - CFont::SetBackGroundOnlyTextOff(); - CFont::SetFontStyle(FONT_BANK); - CFont::SetColor(CRGBA(0, 0, 0, fZoneAlpha)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(32.0f - 1.0f), SCREEN_SCALE_FROM_BOTTOM(30.0f - 1.0f), m_ZoneToPrint); - - CFont::SetColor(CRGBA(152, 154, 82, fZoneAlpha)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(32.0f), SCREEN_SCALE_FROM_BOTTOM(30.0f), m_ZoneToPrint); - } - } - } - else { - m_pLastZoneName = 0; - m_ZoneState = 0; - m_ZoneFadeTimer = 0; - m_ZoneNameTimer = 0; - } - - /* - DrawVehicleName - */ - if (m_VehicleName) { - float fVehicleAlpha = 0.0f; - - if (m_VehicleName != m_pLastVehicleName) { - switch (m_VehicleState) { - case 0: - m_VehicleState = 2; - m_pVehicleNameToPrint = m_VehicleName; - m_VehicleNameTimer = 0; - m_VehicleFadeTimer = 0; - break; - case 1: - case 2: - case 3: - case 4: - m_VehicleNameTimer = 0; - m_VehicleState = 4; - break; - default: - break; - } - m_pLastVehicleName = m_VehicleName; - } - - if (m_VehicleState) { - switch (m_VehicleState) { - case 1: - if (m_VehicleNameTimer > 10000) { - m_VehicleFadeTimer = 1000; - m_VehicleState = 3; - } - fVehicleAlpha = 255.0f; - break; - case 2: - m_VehicleFadeTimer += (CTimer::GetTimeStep() * 0.02f * 1000.0f); - if (m_VehicleFadeTimer > 1000) { - m_VehicleState = 1; - m_VehicleFadeTimer = 1000; - } - fVehicleAlpha = m_VehicleFadeTimer * 0.001f * 255.0f; - break; - case 3: - m_VehicleFadeTimer += (CTimer::GetTimeStep() * 0.02f * -1000.0f); - if (m_VehicleFadeTimer < 0) { - m_VehicleState = 0; - m_VehicleFadeTimer = 0; - } - fVehicleAlpha = m_VehicleFadeTimer * 0.001f * 255.0f; - break; - case 4: - m_VehicleFadeTimer += (CTimer::GetTimeStep() * 0.02f * -1000.0f); - if (m_VehicleFadeTimer < 0) { - m_VehicleFadeTimer = 0; - m_pVehicleNameToPrint = m_pLastVehicleName; - m_VehicleNameTimer = 0; - m_VehicleState = 2; - } - fVehicleAlpha = m_VehicleFadeTimer * 0.001f * 255.0f; - break; - default: - break; - } - - if (!m_Message[0]) { - m_VehicleNameTimer += (CTimer::GetTimeStep() * 0.02f * 1000.0f); - CFont::SetJustifyOff(); - CFont::SetPropOn(); - CFont::SetBackgroundOff(); - - if (FrontEndMenuManager.m_PrefsLanguage != LANGUAGE_ITALIAN && FrontEndMenuManager.m_PrefsLanguage != LANGUAGE_SPANISH) - CFont::SetScale(SCREEN_SCALE_X(1.2f), SCREEN_SCALE_Y(1.2f)); - else - CFont::SetScale(SCREEN_SCALE_X(1.2f * 0.85f), SCREEN_SCALE_Y(1.2f)); - - CFont::SetRightJustifyOn(); - CFont::SetRightJustifyWrap(0.0f); - CFont::SetBackGroundOnlyTextOff(); - CFont::SetFontStyle(FONT_BANK); - CFont::SetColor(CRGBA(0, 0, 0, fVehicleAlpha)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(32.0f - 1.0f), SCREEN_SCALE_FROM_BOTTOM(55.0f - 1.0f), m_pVehicleNameToPrint); - - CFont::SetColor(CRGBA(194, 165, 120, fVehicleAlpha)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(32.0f), SCREEN_SCALE_FROM_BOTTOM(55.0f), m_pVehicleNameToPrint); - } - } - } - else { - m_pLastVehicleName = 0; - m_VehicleState = 0; - m_VehicleFadeTimer = 0; - m_VehicleNameTimer = 0; - } - - /* - DrawOnScreenTimer - */ - wchar sTimer[16]; - - CFont::SetPropOn(); - CFont::SetBackgroundOff(); - CFont::SetBackGroundOnlyTextOn(); - CFont::SetAlignment(ALIGN_RIGHT); - CFont::SetRightJustifyWrap(-SCREENW); - CFont::SetFontStyle(FONT_HEADING); - CFont::SetScale(SCREEN_SCALE_X(0.8f), SCREEN_SCALE_Y(1.35f)); - - if (!CUserDisplay::OnscnTimer.m_sEntries[0].m_bTimerProcessed) - TimerOnLastFrame = 0; - if (!CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterProcessed) - CounterOnLastFrame = 0; - - float AlignToHUD = SCREEN_SCALE_X(-12.0f); - if (CUserDisplay::OnscnTimer.m_bProcessed == 1) { - if (CUserDisplay::OnscnTimer.m_sEntries[0].m_bTimerProcessed == 1) { - if (!TimerOnLastFrame) - TimerFlashTimer = 1; - - TimerOnLastFrame = 1; - - if (TimerFlashTimer) { - if (++TimerFlashTimer > 50) - TimerFlashTimer = 0; - } - - if (CTimer::GetFrameCounter() & 4 || !TimerFlashTimer) { - AsciiToUnicode(CUserDisplay::OnscnTimer.m_sEntries[0].m_bTimerBuffer, sTimer); - CFont::SetColor(CRGBA(0, 0, 0, 255)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(25.0f) + AlignToHUD, SCREEN_SCALE_Y(112.0f), sTimer); - - CFont::SetColor(CRGBA(186, 101, 50, 255)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(27.0f) + AlignToHUD, SCREEN_SCALE_Y(110.0f), sTimer); - - if (CUserDisplay::OnscnTimer.m_sEntries[0].m_aTimerText[0]) { - CFont::SetColor(CRGBA(0, 0, 0, 255)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(105.0f) + AlignToHUD, SCREEN_SCALE_Y(112.0f), TheText.Get(CUserDisplay::OnscnTimer.m_sEntries[0].m_aTimerText)); - - CFont::SetColor(CRGBA(186, 101, 50, 255)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(107.0f) + AlignToHUD, SCREEN_SCALE_Y(110.0f), TheText.Get(CUserDisplay::OnscnTimer.m_sEntries[0].m_aTimerText)); - } - } - } - if (CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterProcessed == 1) { - if (!CounterOnLastFrame) - CounterFlashTimer = 1; - - CounterOnLastFrame = 1; - - if (CounterFlashTimer) { - if (++CounterFlashTimer > 50) - CounterFlashTimer = 0; - } - - if (CTimer::GetFrameCounter() & 4 || !CounterFlashTimer) { - if (CUserDisplay::OnscnTimer.m_sEntries[0].m_nType) { - CSprite2d::DrawRect(CRect(SCREEN_SCALE_FROM_RIGHT(73.0f) + AlignToHUD, SCREEN_SCALE_Y(140.0f), SCREEN_SCALE_FROM_RIGHT(23.0f) + AlignToHUD, SCREEN_SCALE_Y(151.0f)), CRGBA(0, 106, 164, 80)); - CSprite2d::DrawRect(CRect(SCREEN_SCALE_FROM_RIGHT(73.0f) + AlignToHUD, SCREEN_SCALE_Y(140.0f), SCREEN_SCALE_FROM_RIGHT((-atoi(CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterBuffer) * 0.5f) + 73.0f) + AlignToHUD, SCREEN_SCALE_Y(151.0f)), CRGBA(0, 106, 164, 255)); - } - else { - AsciiToUnicode(CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterBuffer, sTimer); - - CFont::SetColor(CRGBA(0, 0, 0, 255)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(25.0f) + AlignToHUD, SCREEN_SCALE_Y(134.0f), sTimer); - - CFont::SetColor(CRGBA(0, 106, 164, 255)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(27.0f) + AlignToHUD, SCREEN_SCALE_Y(132.0f), sTimer); - } - - if (CUserDisplay::OnscnTimer.m_sEntries[0].m_aCounterText[0]) { - CFont::SetColor(CRGBA(0, 0, 0, 255)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(86.0f) + AlignToHUD, SCREEN_SCALE_Y(134.0f), TheText.Get(CUserDisplay::OnscnTimer.m_sEntries[0].m_aCounterText)); - - CFont::SetColor(CRGBA(0, 106, 164, 255)); - CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(88.0f) + AlignToHUD, SCREEN_SCALE_Y(132.0f), TheText.Get(CUserDisplay::OnscnTimer.m_sEntries[0].m_aCounterText)); - } - } - } - } - - /* - DrawPager - */ - if (!m_PagerMessage[0]) { - if (PagerOn == 1) { - PagerSoundPlayed = false; - PagerOn = 2; - } - } - if (m_PagerMessage[0] || PagerOn == 2) { - if (!PagerOn) { - PagerOn = 1; - PagerXOffset = 150.0f; - } - if (PagerOn == 1) { - if (PagerXOffset > 0.0f) { - float fStep = PagerXOffset * 0.05f; - if (fStep > 10.0f) - fStep = 10.0f; - PagerXOffset -= fStep * CTimer::GetTimeStep(); - } - if (!PagerSoundPlayed) { - DMAudio.PlayFrontEndSound(96, 0); - PagerSoundPlayed = 1; - } - } - else if (PagerOn == 2) { - float fStep = PagerXOffset * 0.05f; - if (fStep < 2.0f) - fStep = 2.0f; - PagerXOffset += fStep * CTimer::GetTimeStep(); - if (PagerXOffset > 150.0f) { - PagerXOffset = 150.0; - PagerOn = 0; - } - } - - Sprites[HUD_PAGER].Draw(CRect(SCREEN_SCALE_X(26.0f - PagerXOffset), SCREEN_SCALE_Y(27.0f), SCREEN_SCALE_X(160.0 + 26.0f - PagerXOffset), SCREEN_SCALE_Y(80.0f + 27.0f)), CRGBA(255, 255, 255, 255)); - - CFont::SetBackgroundOff(); - CFont::SetScale(SCREEN_SCALE_X(0.84f), SCREEN_SCALE_Y(1.0f)); - CFont::SetColor(CRGBA(32, 162, 66, 205)); - CFont::SetRightJustifyOff(); - CFont::SetBackgroundOff(); - CFont::SetCentreOff(); - CFont::SetJustifyOff(); - CFont::SetPropOff(); - CFont::SetFontStyle(FONT_PAGER); - CFont::PrintString(SCREEN_SCALE_X(52.0f - PagerXOffset), SCREEN_SCALE_Y(54.0f), m_PagerMessage); - } - - /* - DrawRadar - */ - if (m_ItemToFlash == ITEM_RADAR && CTimer::GetFrameCounter() & 8 || m_ItemToFlash != ITEM_RADAR) { - CRadar::DrawMap(); - CRect rect(0.0f, 0.0f, SCREEN_SCALE_X(RADAR_WIDTH), SCREEN_SCALE_Y(RADAR_HEIGHT)); - // FIX: game doesn't scale RADAR_LEFT here - rect.Translate(SCREEN_SCALE_X(RADAR_LEFT), SCREEN_SCALE_FROM_BOTTOM(RADAR_BOTTOM + RADAR_HEIGHT)); - rect.Grow(4.0f); - Sprites[HUD_RADARDISC].Draw(rect, CRGBA(0, 0, 0, 255)); - CRadar::DrawBlips(); - } + CFont::SetDropShadowPosition(1); + CFont::SetDropColor(CRGBA(0, 0, 0, 255)); + CFont::SetColor(CRGBA(235, 235, 235, 255)); + CFont::PrintString(SCREEN_WIDTH / 2, SCREEN_SCALE_FROM_BOTTOM(64.0f), m_Message); + CFont::SetDropShadowPosition(0); } /* - Draw3dMarkers + DrawBigMessage */ - if (m_Wants_To_Draw_3dMarkers && !TheCamera.m_WideScreenOn && !m_BigMessage[0][0] && !m_BigMessage[2][0]) { - CRadar::Draw3dMarkers(); - } - - /* - DrawScriptText - */ - if (!CTimer::GetIsUserPaused()) { - CTextLine* IntroText = CTheScripts::IntroTextLines; - - for (int i = 0; i < 2; i++) { - if (CTheScripts::IntroTextLines[i].m_awText[0] && CTheScripts::IntroTextLines[i].field_29) { - CFont::SetScale(SCREEN_SCALE_X(CTheScripts::IntroTextLines[i].m_fScaleX), SCREEN_SCALE_Y(CTheScripts::IntroTextLines[i].m_fScaleY * 0.5f)); - CFont::SetColor(CTheScripts::IntroTextLines[i].m_sColor); - - if (CTheScripts::IntroTextLines[i].m_bJustify) - CFont::SetJustifyOn(); - else - CFont::SetJustifyOff(); - - if (CTheScripts::IntroTextLines[i].m_bRightJustify) - CFont::SetRightJustifyOn(); - else - CFont::SetRightJustifyOff(); - - if (CTheScripts::IntroTextLines[i].m_bCentered) - CFont::SetCentreOn(); - else - CFont::SetCentreOff(); - - CFont::SetWrapx(SCREEN_SCALE_X(CTheScripts::IntroTextLines[i].m_fWrapX)); - CFont::SetCentreSize(SCREEN_SCALE_X(CTheScripts::IntroTextLines[i].m_fCenterSize)); - - if (CTheScripts::IntroTextLines[i].m_bBackground) - CFont::SetBackgroundOn(); - else - CFont::SetBackgroundOff(); - - CFont::SetBackgroundColor(CTheScripts::IntroTextLines[i].m_sBackgroundColor); - - if (CTheScripts::IntroTextLines[i].m_bBackgroundOnly) - CFont::SetBackGroundOnlyTextOn(); - else - CFont::SetBackGroundOnlyTextOff(); - - if (CTheScripts::IntroTextLines[i].m_bTextProportional) - CFont::SetPropOn(); - else - CFont::SetPropOff(); - - CFont::SetFontStyle(CTheScripts::IntroTextLines[i].m_nFont); - CFont::PrintString(SCREEN_SCALE_X(640.0f - CTheScripts::IntroTextLines[i].field_36), SCREEN_SCALE_Y(448.0f - CTheScripts::IntroTextLines[i].field_40), IntroText->m_awText); - } - } - - CScriptRectangle* IntroRect = CTheScripts::IntroRectangles; - - for (int i = 0; i < 16; i++) { - if (CTheScripts::IntroRectangles[i].m_bIsUsed && CTheScripts::IntroRectangles[i].m_bIsAntialiased) { - if (CTheScripts::IntroRectangles[i].m_wTextureId >= 0) { - CRect rect = { - CTheScripts::IntroRectangles[i].m_sRect.left, - CTheScripts::IntroRectangles[i].m_sRect.bottom, - CTheScripts::IntroRectangles[i].m_sRect.right, - CTheScripts::IntroRectangles[i].m_sRect.bottom }; - - CTheScripts::ScriptSprites[CTheScripts::IntroRectangles[i].m_wTextureId].Draw(rect, IntroRect->m_sColor); - } - else { - CRect rect = { - CTheScripts::IntroRectangles[i].m_sRect.left, - CTheScripts::IntroRectangles[i].m_sRect.bottom, - CTheScripts::IntroRectangles[i].m_sRect.right, - CTheScripts::IntroRectangles[i].m_sRect.bottom }; - - CSprite2d::DrawRect(rect, IntroRect->m_sColor); - } - } - } - - /* - DrawSubtitles - */ - if (m_Message[0] && !m_BigMessage[2][0] && (FrontEndMenuManager.m_PrefsShowSubtitles == 1 || !TheCamera.m_WideScreenOn)) { + // MissionCompleteFailedText + if (m_BigMessage[0][0]) { + if (BigMessageInUse[0] != 0.0f) { CFont::SetJustifyOff(); CFont::SetBackgroundOff(); - CFont::SetBackgroundColor(CRGBA(0, 0, 0, 128)); - CFont::SetScale(SCREEN_SCALE_X(0.48f), SCREEN_SCALE_Y(1.120f)); - CFont::SetCentreOn(); + CFont::SetBackGroundOnlyTextOff(); + CFont::SetScale(SCREEN_SCALE_X(1.8f), SCREEN_SCALE_Y(1.8f)); CFont::SetPropOn(); - CFont::SetFontStyle(FONT_BANK); + CFont::SetCentreOn(); + CFont::SetCentreSize(SCREEN_SCALE_X(615.0f)); + CFont::SetFontStyle(FONT_HEADING); - if (TheCamera.m_WideScreenOn) - CFont::SetCentreSize(SCREEN_SCALE_FROM_RIGHT(120.0f)); + if (BigMessageX[0] >= (SCREENW - 20)) { + BigMessageInUse[0] += (CTimer::GetTimeStep() * 0.02f * 120.0f); + + if (BigMessageInUse[0] >= 120.0f) { + BigMessageInUse[0] = 120.0; + BigMessageAlpha[0] += (CTimer::GetTimeStep() * 0.02f * -255.0f); + } + + if (BigMessageAlpha[0] <= 0.0f) { + m_BigMessage[0][0] = 0; + BigMessageAlpha[0] = 0.0; + } + } + else { + BigMessageX[0] += (CTimer::GetTimeStep() * 0.02f * 255.0f); + BigMessageAlpha[0] += (CTimer::GetTimeStep() * 0.02f * 255.0f); + + if (BigMessageAlpha[0] >= 255.0f) + BigMessageAlpha[0] = 255.0f; + } + + CFont::SetColor(CRGBA(0, 0, 0, BigMessageAlpha[0])); + CFont::PrintString(SCREEN_WIDTH / 2, (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(20.0f - 2.0f), m_BigMessage[0]); + + CFont::SetColor(CRGBA(85, 119, 133, BigMessageAlpha[0])); + CFont::PrintString(SCREEN_WIDTH / 2, (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(20.0f), m_BigMessage[0]); + } + else { + BigMessageAlpha[0] = 0.0f; + BigMessageX[0] = -60.0f; + BigMessageInUse[0] = 1.0f; + } + } + else { + BigMessageInUse[0] = 0.0f; + } + + // WastedBustedText + if (m_BigMessage[2][0]) { + if (BigMessageInUse[2] != 0.0f) { + BigMessageAlpha[2] += (CTimer::GetTimeStep() * 0.02f * 255.0f); + + if (BigMessageAlpha[2] > 255.0f) + BigMessageAlpha[2] = 255.0; + + CFont::SetBackgroundOff(); + + if (CGame::frenchGame || CGame::germanGame) + CFont::SetScale(SCREEN_SCALE_X(1.4f), SCREEN_SCALE_Y(1.4f)); else - CFont::SetCentreSize(SCREEN_SCALE_FROM_RIGHT(280.0f)); + CFont::SetScale(SCREEN_SCALE_X(2.0f), SCREEN_SCALE_Y(2.0f)); - CFont::SetDropShadowPosition(1); - CFont::SetDropColor(CRGBA(0, 0, 0, 255)); - CFont::SetColor(CRGBA(235, 235, 235, 255)); - CFont::PrintString(SCREEN_WIDTH / 2, SCREEN_SCALE_FROM_BOTTOM(64.0f), m_Message); - CFont::SetDropShadowPosition(0); - } + CFont::SetPropOn(); + CFont::SetRightJustifyOn(); + CFont::SetFontStyle(FONT_HEADING); - /* - DrawBigMessage - */ - // MissionCompleteFailedText - if (m_BigMessage[0][0]) { - if (BigMessageInUse[0] != 0.0f) { - CFont::SetJustifyOff(); - CFont::SetBackgroundOff(); - CFont::SetBackGroundOnlyTextOff(); - CFont::SetScale(SCREEN_SCALE_X(1.8f), SCREEN_SCALE_Y(1.8f)); - CFont::SetPropOn(); - CFont::SetCentreOn(); - CFont::SetCentreSize(SCREEN_SCALE_X(615.0f)); - CFont::SetFontStyle(FONT_HEADING); + 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]); - if (BigMessageX[0] >= (SCREENW - 20)) { - BigMessageInUse[0] += (CTimer::GetTimeStep() * 0.02f * 120.0f); - - if (BigMessageInUse[0] >= 120.0f) { - BigMessageInUse[0] = 120.0; - BigMessageAlpha[0] += (CTimer::GetTimeStep() * 0.02f * -255.0f); - } - - if (BigMessageAlpha[0] <= 0.0f) { - m_BigMessage[0][0] = 0; - BigMessageAlpha[0] = 0.0; - } - } - else { - BigMessageX[0] += (CTimer::GetTimeStep() * 0.02f * 255.0f); - BigMessageAlpha[0] += (CTimer::GetTimeStep() * 0.02f * 255.0f); - - if (BigMessageAlpha[0] >= 255.0f) - BigMessageAlpha[0] = 255.0f; - } - - CFont::SetColor(CRGBA(0, 0, 0, BigMessageAlpha[0])); - CFont::PrintString(SCREEN_WIDTH / 2, (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(20.0f - 2.0f), m_BigMessage[0]); - - CFont::SetColor(CRGBA(85, 119, 133, BigMessageAlpha[0])); - CFont::PrintString(SCREEN_WIDTH / 2, (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(20.0f), m_BigMessage[0]); - } - else { - BigMessageAlpha[0] = 0.0f; - BigMessageX[0] = -60.0f; - BigMessageInUse[0] = 1.0f; - } + CFont::SetColor(CRGBA(170, 123, 87, BigMessageAlpha[2])); + CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(20.0f), SCREEN_SCALE_FROM_BOTTOM(82.0f), m_BigMessage[2]); } else { - BigMessageInUse[0] = 0.0f; - } - - // WastedBustedText - if (m_BigMessage[2][0]) { - if (BigMessageInUse[2] != 0.0f) { - BigMessageAlpha[2] += (CTimer::GetTimeStep() * 0.02f * 255.0f); - - if (BigMessageAlpha[2] > 255.0f) - BigMessageAlpha[2] = 255.0; - - CFont::SetBackgroundOff(); - - if (CGame::frenchGame || CGame::germanGame) - CFont::SetScale(SCREEN_SCALE_X(1.4f), SCREEN_SCALE_Y(1.4f)); - else - CFont::SetScale(SCREEN_SCALE_X(2.0f), SCREEN_SCALE_Y(2.0f)); - - CFont::SetPropOn(); - CFont::SetRightJustifyOn(); - CFont::SetFontStyle(FONT_HEADING); - - 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::PrintString(SCREEN_SCALE_FROM_RIGHT(20.0f), SCREEN_SCALE_FROM_BOTTOM(82.0f), m_BigMessage[2]); - } - else { - BigMessageAlpha[2] = 0.0; - BigMessageInUse[2] = 1.0; - } - } - else { - BigMessageInUse[2] = 0.0; + BigMessageAlpha[2] = 0.0; + BigMessageInUse[2] = 1.0; } } + else { + BigMessageInUse[2] = 0.0; + } } } #endif From d12db35a9f31d7e16688e0e12f2a9587c7d76c5a Mon Sep 17 00:00:00 2001 From: aap Date: Sat, 29 Jun 2019 18:36:31 +0200 Subject: [PATCH 12/17] fix --- src/entities/Dummy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/entities/Dummy.cpp b/src/entities/Dummy.cpp index 68b67b5c..493bdbc7 100644 --- a/src/entities/Dummy.cpp +++ b/src/entities/Dummy.cpp @@ -31,7 +31,7 @@ CDummy::Add(void) for(x = xstart; x <= xend; x++){ s = CWorld::GetSector(x, y); if(x == xmid && y == ymid) - list = &s->m_lists[ENTITYLIST_OBJECTS]; + list = &s->m_lists[ENTITYLIST_DUMMIES]; else list = &s->m_lists[ENTITYLIST_DUMMIES_OVERLAP]; CPtrNode *node = list->InsertItem(this); From 647db5cf3414e352e8565040f144782183cf47c8 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sat, 29 Jun 2019 21:38:47 +0300 Subject: [PATCH 13/17] CReplay::PlaybackThisFrame + fixes --- src/control/Replay.cpp | 40 +++++++++++++++++++++++++++++++++++----- src/control/Replay.h | 3 ++- src/entities/Ped.cpp | 2 +- 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/src/control/Replay.cpp b/src/control/Replay.cpp index e80d8746..f3435ece 100644 --- a/src/control/Replay.cpp +++ b/src/control/Replay.cpp @@ -83,10 +83,8 @@ float &CReplay::LoadSceneX = *(float*)0x880F9C; float &CReplay::LoadSceneY = *(float*)0x880F98; float &CReplay::LoadSceneZ = *(float*)0x880F94; -#if 1 static void(*(&CBArray)[30])(CAnimBlendAssociation*, void*) = *(void(*(*)[30])(CAnimBlendAssociation*, void*))*(uintptr*)0x61052C; -#else -static void(*CBArray[])(CAnimBlendAssociation*, void*) = +static void(*CBArray_RE3[])(CAnimBlendAssociation*, void*) = { nil, &CPed::PedGetupCB, &CPed::PedStaggerCB, &CPed::PedEvadeCB, &CPed::FinishDieAnimCB, &CPed::FinishedWaitCB, &CPed::FinishLaunchCB, &CPed::FinishHitHeadCB, &CPed::PedAnimGetInCB, &CPed::PedAnimDoorOpenCB, @@ -95,7 +93,6 @@ static void(*CBArray[])(CAnimBlendAssociation*, void*) = &CPed::FinishFightMoveCB, &PhonePutDownCB, &PhonePickUpCB, &CPed::PedAnimDoorCloseRollingCB, &CPed::FinishJumpCB, &CPed::PedLandCB, &FinishFuckUCB, &CPed::RestoreHeadingRateCB, &CPed::PedSetQuickDraggedOutCarPositionCB, &CPed::PedSetDraggedOutCarPositionCB }; -#endif #if 0 WRAPPER uint8 FindCBFunctionID(void(*f)(CAnimBlendAssociation*, void*)) { EAXJMP(0x584E70); } @@ -106,13 +103,17 @@ static uint8 FindCBFunctionID(void(*f)(CAnimBlendAssociation*, void*)) if (CBArray[i] == f) return i; } + for (int i = 0; i < sizeof(CBArray_RE3) / sizeof(*CBArray_RE3); i++) { + if (CBArray_RE3[i] == f) + return i; + } return 0; } #endif static void(*FindCBFunction(uint8 id))(CAnimBlendAssociation*, void*) { - return CBArray[id]; + return CBArray_RE3[id]; } WRAPPER static void ApplyPanelDamageToCar(uint32, CAutomobile*, bool) { EAXJMP(0x584EA0); } @@ -533,7 +534,35 @@ void CReplay::RetrieveDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationSt } } #endif + +#if 0 WRAPPER void CReplay::PlaybackThisFrame(void) { EAXJMP(0x5946B0); } +#else +void CReplay::PlaybackThisFrame(void) +{ + static int SlowMotionCounter = 0; + CAddressInReplayBuffer buf = Playback; + if (PlayBackThisFrameInterpolation(&buf, 1.0f, nil)){ + DMAudio.SetEffectsFadeVol(127); + DMAudio.SetMusicFadeVol(127); + return; + } + if (SlowMotionCounter){ + CAddressInReplayBuffer buf_sm = buf; + if (PlayBackThisFrameInterpolation(&buf_sm, SlowMotionCounter * 1.0f / SlowMotion, nil)){ + DMAudio.SetEffectsFadeVol(127); + DMAudio.SetMusicFadeVol(127); + return; + } + } + SlowMotionCounter = (SlowMotionCounter + 1) % SlowMotion; + if (SlowMotionCounter == 0) + Playback = buf; + ProcessLookAroundCam(); + DMAudio.SetEffectsFadeVol(0); + DMAudio.SetMusicFadeVol(0); +} +#endif #if 0 WRAPPER void CReplay::StoreCarUpdate(CVehicle *vehicle, int id) { EAXJMP(0x5947F0); } @@ -883,6 +912,7 @@ InjectHook(0x593150, CReplay::DisableReplays, PATCH_JUMP); InjectHook(0x593160, CReplay::EnableReplays, PATCH_JUMP); InjectHook(0x593170, CReplay::Update, PATCH_JUMP); InjectHook(0x594050, CReplay::ProcessPedUpdate, PATCH_JUMP); +InjectHook(0x593BB0, CReplay::StoreDetailedPedAnimation, PATCH_JUMP); InjectHook(0x5944B0, CReplay::RetrieveDetailedPedAnimation, PATCH_JUMP); //InjectHook(0x5966E0, CReplay::RestoreStuffFromMem, PATCH_JUMP); ENDPATCHES diff --git a/src/control/Replay.h b/src/control/Replay.h index 125dfef4..0448a829 100644 --- a/src/control/Replay.h +++ b/src/control/Replay.h @@ -261,8 +261,9 @@ private: static void RecordThisFrame(void); static void StorePedUpdate(CPed *ped, int id); static void StorePedAnimation(CPed *ped, CStoredAnimationState *state); - static void StoreDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState *state); public: + static void StoreDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState *state); + static void ProcessPedUpdate(CPed *ped, float interpolation, CAddressInReplayBuffer *buffer); static void RetrievePedAnimation(CPed *ped, CStoredAnimationState *state); static void RetrieveDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState *state); diff --git a/src/entities/Ped.cpp b/src/entities/Ped.cpp index 7f83ea84..04157f4e 100644 --- a/src/entities/Ped.cpp +++ b/src/entities/Ped.cpp @@ -1621,7 +1621,7 @@ WRAPPER void CPed::FinishFightMoveCB(CAnimBlendAssociation *assoc, void *arg) { WRAPPER void CPed::PedAnimDoorCloseRollingCB(CAnimBlendAssociation *assoc, void *arg) { EAXJMP(0x4E4B90); } WRAPPER void CPed::FinishJumpCB(CAnimBlendAssociation *assoc, void *arg) { EAXJMP(0x4D7A50); } WRAPPER void CPed::PedLandCB(CAnimBlendAssociation *assoc, void *arg) { EAXJMP(0x4CE8A0); } -WRAPPER void FinishFuckUCB(CAnimBlendAssociation *assoc, void *arg) { EAXJMP(0x4C6620); } +WRAPPER void FinishFuckUCB(CAnimBlendAssociation *assoc, void *arg) { EAXJMP(0x4C6580); } WRAPPER void CPed::RestoreHeadingRateCB(CAnimBlendAssociation *assoc, void *arg) { EAXJMP(0x4D6550); } STARTPATCHES From b2b750bc90648cce4e562e241668056f1cdc68b6 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sat, 29 Jun 2019 23:15:55 +0300 Subject: [PATCH 14/17] ProcessCarUpdate --- src/DamageManager.cpp | 22 ++++++- src/DamageManager.h | 13 ++++ src/control/Replay.cpp | 133 ++++++++++++++++++++++++++++++-------- src/control/Replay.h | 7 +- src/entities/Automobile.h | 4 +- src/entities/Boat.h | 4 +- 6 files changed, 146 insertions(+), 37 deletions(-) diff --git a/src/DamageManager.cpp b/src/DamageManager.cpp index d4c8f16e..a065e187 100644 --- a/src/DamageManager.cpp +++ b/src/DamageManager.cpp @@ -1 +1,21 @@ -#include "DamageManager.h" \ No newline at end of file +#include "common.h" +#include "patcher.h" +#include "DamageManager.h" + +#if 0 +WRAPPER void CDamageManager::SetDoorStatus(int door, unsigned int status) { EAXJMP(0x545920); } +#else +void CDamageManager::SetDoorStatus(int door, unsigned int status) +{ + m_bDoorStatus[door] = status; +} +#endif + +#if 0 +WRAPPER unsigned int CDamageManager::GetDoorStatus(int door) { EAXJMP(0x545930); } +#else +unsigned int CDamageManager::GetDoorStatus(int door) +{ + return m_bDoorStatus[door]; +} +#endif \ No newline at end of file diff --git a/src/DamageManager.h b/src/DamageManager.h index 4f1fa640..01269a42 100644 --- a/src/DamageManager.h +++ b/src/DamageManager.h @@ -5,6 +5,16 @@ class CDamageManager { public: + + enum { + CAR_DOOR_BONNET = 0, + CAR_DOOR_BUMPER, + CAR_DOOR_LF, + CAR_DOOR_RF, + CAR_DOOR_LR, + CAR_DOOR_RR + }; + float field_0; char m_bEngineStatus; char m_bWheelStatus[4]; @@ -15,4 +25,7 @@ public: char field_25; char field_26; char field_27; + + void SetDoorStatus(int, unsigned int); + unsigned int GetDoorStatus(int); }; \ No newline at end of file diff --git a/src/control/Replay.cpp b/src/control/Replay.cpp index f3435ece..9f74734c 100644 --- a/src/control/Replay.cpp +++ b/src/control/Replay.cpp @@ -1,6 +1,7 @@ #include "common.h" #include "patcher.h" #include "AnimBlendAssociation.h" +#include "Boat.h" #include "BulletTraces.h" #include "CarCtrl.h" #include "Clock.h" @@ -411,36 +412,37 @@ WRAPPER void CReplay::ProcessPedUpdate(CPed *ped, float interpolation, CAddressI void CReplay::ProcessPedUpdate(CPed *ped, float interpolation, CAddressInReplayBuffer *buffer) { tPedUpdatePacket *pp = (tPedUpdatePacket*)&buffer->m_pBase[buffer->m_nOffset]; - if (ped){ - ped->m_fRotationCur = pp->heading * M_PI / 128.0f; - ped->m_fRotationDest = pp->heading * M_PI / 128.0f; - CMatrix ped_matrix; - pp->matrix.DecompressIntoFullMatrix(ped_matrix); - ped->GetMatrix() = ped->GetMatrix() * CMatrix(1.0f - interpolation); - *ped->GetMatrix().GetPosition() *= (1.0f - interpolation); - ped->GetMatrix() += CMatrix(interpolation) * ped_matrix; - if (pp->vehicle_index) { - ped->m_pMyVehicle = CPools::GetVehiclePool()->GetSlot(pp->vehicle_index - 1); - ped->bInVehicle = pp->vehicle_index; - } - else { - ped->m_pMyVehicle = nil; - ped->bInVehicle = false; - } - if (pp->assoc_group_id != ped->m_animGroup) { - ped->m_animGroup = (AssocGroupId)pp->assoc_group_id; - if (ped == FindPlayerPed()) - ((CPlayerPed*)ped)->ReApplyMoveAnims(); - } - RetrievePedAnimation(ped, &pp->anim_state); - ped->RemoveWeaponModel(-1); - if (pp->weapon_model != (uint8)-1) - ped->AddWeaponModel(pp->weapon_model); - CWorld::Remove(ped); - CWorld::Add(ped); - }else{ + if (!ped){ debug("Replay:Ped wasn't there\n"); + buffer->m_nOffset += sizeof(tPedUpdatePacket); + return; } + ped->m_fRotationCur = pp->heading * M_PI / 128.0f; + ped->m_fRotationDest = pp->heading * M_PI / 128.0f; + CMatrix ped_matrix; + pp->matrix.DecompressIntoFullMatrix(ped_matrix); + ped->GetMatrix() = ped->GetMatrix() * CMatrix(1.0f - interpolation); + *ped->GetMatrix().GetPosition() *= (1.0f - interpolation); + ped->GetMatrix() += CMatrix(interpolation) * ped_matrix; + if (pp->vehicle_index) { + ped->m_pMyVehicle = CPools::GetVehiclePool()->GetSlot(pp->vehicle_index - 1); + ped->bInVehicle = pp->vehicle_index; + } + else { + ped->m_pMyVehicle = nil; + ped->bInVehicle = false; + } + if (pp->assoc_group_id != ped->m_animGroup) { + ped->m_animGroup = (AssocGroupId)pp->assoc_group_id; + if (ped == FindPlayerPed()) + ((CPlayerPed*)ped)->ReApplyMoveAnims(); + } + RetrievePedAnimation(ped, &pp->anim_state); + ped->RemoveWeaponModel(-1); + if (pp->weapon_model != (uint8)-1) + ped->AddWeaponModel(pp->weapon_model); + CWorld::Remove(ped); + CWorld::Add(ped); buffer->m_nOffset += sizeof(tPedUpdatePacket); } #endif @@ -603,7 +605,81 @@ void CReplay::StoreCarUpdate(CVehicle *vehicle, int id) Record.m_nOffset += sizeof(tVehicleUpdatePacket); } #endif + +#if 0 WRAPPER void CReplay::ProcessCarUpdate(CVehicle *vehicle, float interpolation, CAddressInReplayBuffer *buffer) { EAXJMP(0x594D10); } +#else +void CReplay::ProcessCarUpdate(CVehicle *vehicle, float interpolation, CAddressInReplayBuffer *buffer) +{ + tVehicleUpdatePacket* vp = (tVehicleUpdatePacket*)&buffer->m_pBase[buffer->m_nOffset]; + if (!vehicle){ + debug("Replay:Car wasn't there"); + return; + } + CMatrix vehicle_matrix; + vp->matrix.DecompressIntoFullMatrix(vehicle_matrix); + vehicle->GetMatrix() = vehicle->GetMatrix() * CMatrix(1.0f - interpolation); + *vehicle->GetMatrix().GetPosition() *= (1.0f - interpolation); + vehicle->GetMatrix() += CMatrix(interpolation) * vehicle_matrix; + vehicle->m_vecTurnSpeed = CVector(0.0f, 0.0f, 0.0f); + vehicle->m_fHealth = 4 * vp->health; + vehicle->m_fGasPedal = vp->acceleration / 100.0f; + if (vehicle->IsCar()) + ApplyPanelDamageToCar(vp->panels, (CAutomobile*)vehicle, true); + vehicle->m_vecMoveSpeed = CVector(vp->velocityX / 8000.0f, vp->velocityY / 8000.0f, vp->velocityZ / 8000.0f); + if (vehicle->GetModelIndex() == MI_RHINO) { + ((CAutomobile*)vehicle)->m_fCarGunLR = vp->car_gun * M_PI / 128.0f; + vehicle->m_fSteerAngle = 0.0f; + }else{ + vehicle->m_fSteerAngle = vp->wheel_state / 50.0f; + } + if (vehicle->IsCar()) { + CAutomobile* car = (CAutomobile*)vehicle; + for (int i = 0; i < 4; i++) { + car->m_afWheelSuspDist[i] = vp->wheel_susp_dist[i] / 50.0f; + car->m_afWheelRotation[i] = vp->wheel_rotation[i] * M_PI / 128.0f; + } + car->m_aDoors[2].m_fAngle = car->m_aDoors[2].m_fPreviousAngle = vp->door_angles[0] * M_PI / 127.0f; + car->m_aDoors[3].m_fAngle = car->m_aDoors[3].m_fPreviousAngle = vp->door_angles[1] * M_PI / 127.0f; + if (vp->door_angles[0]) + car->m_DamageManager.m_bDoorStatus[2] = 2; + if (vp->door_angles[1]) + car->m_DamageManager.m_bDoorStatus[3] = 2; + if (vp->door_status & 1 && car->m_DamageManager.GetDoorStatus(CDamageManager::CAR_DOOR_BONNET) != 3){ + car->m_DamageManager.SetDoorStatus(CDamageManager::CAR_DOOR_BONNET, 3); + car->SetDoorDamage(17, CDamageManager::CAR_DOOR_BONNET, true); + } + if (vp->door_status & 2 && car->m_DamageManager.GetDoorStatus(CDamageManager::CAR_DOOR_BUMPER) != 3) { + car->m_DamageManager.SetDoorStatus(CDamageManager::CAR_DOOR_BUMPER, 3); + car->SetDoorDamage(18, CDamageManager::CAR_DOOR_BUMPER, true); + } + if (vp->door_status & 4 && car->m_DamageManager.GetDoorStatus(CDamageManager::CAR_DOOR_LF) != 3) { + car->m_DamageManager.SetDoorStatus(CDamageManager::CAR_DOOR_LF, 3); + car->SetDoorDamage(15, CDamageManager::CAR_DOOR_LF, true); + } + if (vp->door_status & 8 && car->m_DamageManager.GetDoorStatus(CDamageManager::CAR_DOOR_RF) != 3) { + car->m_DamageManager.SetDoorStatus(CDamageManager::CAR_DOOR_RF, 3); + car->SetDoorDamage(11, CDamageManager::CAR_DOOR_RF, true); + } + if (vp->door_status & 0x10 && car->m_DamageManager.GetDoorStatus(CDamageManager::CAR_DOOR_LR) != 3) { + car->m_DamageManager.SetDoorStatus(CDamageManager::CAR_DOOR_LR, 3); + car->SetDoorDamage(16, CDamageManager::CAR_DOOR_LR, true); + } + if (vp->door_status & 0x20 && car->m_DamageManager.GetDoorStatus(CDamageManager::CAR_DOOR_RR) != 3) { + car->m_DamageManager.SetDoorStatus(CDamageManager::CAR_DOOR_RR, 3); + car->SetDoorDamage(12, CDamageManager::CAR_DOOR_RR, true); + } + vehicle->m_veh_flagA10 = true; + if (vehicle->IsCar()) + ((CAutomobile*)vehicle)->m_nDriveWheelsOnGround = 4; + CWorld::Remove(vehicle); + CWorld::Add(vehicle); + if (vehicle->IsBoat()) + ((CBoat*)vehicle)->m_bIsAnchored = false; + } +} +#endif + WRAPPER bool CReplay::PlayBackThisFrameInterpolation(CAddressInReplayBuffer *buffer, float interpolation, uint32 *pTimer) { EAXJMP(0x595240); } WRAPPER void CReplay::FinishPlayback(void) { EAXJMP(0x595B20); } WRAPPER void CReplay::EmptyReplayBuffer(void) { EAXJMP(0x595BD0); } @@ -912,6 +988,7 @@ InjectHook(0x593150, CReplay::DisableReplays, PATCH_JUMP); InjectHook(0x593160, CReplay::EnableReplays, PATCH_JUMP); InjectHook(0x593170, CReplay::Update, PATCH_JUMP); InjectHook(0x594050, CReplay::ProcessPedUpdate, PATCH_JUMP); +InjectHook(0x594D10, CReplay::ProcessCarUpdate, PATCH_JUMP); InjectHook(0x593BB0, CReplay::StoreDetailedPedAnimation, PATCH_JUMP); InjectHook(0x5944B0, CReplay::RetrieveDetailedPedAnimation, PATCH_JUMP); //InjectHook(0x5966E0, CReplay::RestoreStuffFromMem, PATCH_JUMP); diff --git a/src/control/Replay.h b/src/control/Replay.h index 0448a829..37342d41 100644 --- a/src/control/Replay.h +++ b/src/control/Replay.h @@ -257,26 +257,21 @@ public: inline static bool IsPlayingBack() { return Mode == MODE_PLAYBACK; } inline static bool IsPlayingBackFromFile() { return bPlayingBackFromFile; } -private: +//private: static void RecordThisFrame(void); static void StorePedUpdate(CPed *ped, int id); static void StorePedAnimation(CPed *ped, CStoredAnimationState *state); -public: static void StoreDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState *state); - static void ProcessPedUpdate(CPed *ped, float interpolation, CAddressInReplayBuffer *buffer); static void RetrievePedAnimation(CPed *ped, CStoredAnimationState *state); static void RetrieveDetailedPedAnimation(CPed *ped, CStoredDetailedAnimationState *state); -private: static void PlaybackThisFrame(void); static void StoreCarUpdate(CVehicle *vehicle, int id); static void ProcessCarUpdate(CVehicle *vehicle, float interpolation, CAddressInReplayBuffer *buffer); static bool PlayBackThisFrameInterpolation(CAddressInReplayBuffer *buffer, float interpolation, uint32 *pTimer); static void ProcessReplayCamera(void); static void StoreStuffInMem(void); -public: /* temp */ static void RestoreStuffFromMem(void); -private: static void EmptyPedsAndVehiclePools(void); static void EmptyAllPools(void); static void MarkEverythingAsNew(void); diff --git a/src/entities/Automobile.h b/src/entities/Automobile.h index 7422112b..1b5e74d5 100644 --- a/src/entities/Automobile.h +++ b/src/entities/Automobile.h @@ -18,7 +18,9 @@ public: float m_afWheelRotation[4]; uint8 stuff3[200]; float m_fCarGunLR; - uint8 stuff4[36]; + uint8 stuff4[13]; + uint8 m_nDriveWheelsOnGround; + uint8 stuff5[22]; void SetDoorDamage(int32, uint32, bool); /* TODO: eDoors */ }; diff --git a/src/entities/Boat.h b/src/entities/Boat.h index b66ab107..26de0cdc 100644 --- a/src/entities/Boat.h +++ b/src/entities/Boat.h @@ -6,6 +6,8 @@ class CBoat : public CVehicle { public: // 0x288 - uint8 stuff[508]; + uint8 stuff1[57]; + bool m_bIsAnchored; + uint8 stuff[450]; }; static_assert(sizeof(CBoat) == 0x484, "CBoat: error"); From 2115faec3867ada3a07aa7900ea0a871529343f3 Mon Sep 17 00:00:00 2001 From: Filip Gawin Date: Sun, 30 Jun 2019 12:53:39 +0200 Subject: [PATCH 15/17] Cleanup project a bit --- dxsdk/Include/control.h | 1 - dxsdk/Include/errors.h | 2 +- dxsdk/Include/strmif.h | 1 - src/Camera.cpp | 4 +- src/Camera.h | 1 - src/CdStream.cpp | 90 ++++++------- src/FileLoader.cpp | 10 +- src/Pad.cpp | 12 +- src/Placeable.h | 6 +- src/Radar.cpp | 2 +- src/RwHelper.cpp | 16 +-- src/RwMatFX.cpp | 2 +- src/Streaming.h | 2 + src/Timer.cpp | 2 +- src/TxdStore.cpp | 2 +- src/animation/AnimBlendHierarchy.cpp | 2 +- src/animation/RpAnimBlend.cpp | 2 +- src/audio/MusicManager.cpp | 4 +- src/common.h | 9 +- src/control/PedPlacement.cpp | 4 +- src/debugmenu_public.h | 4 +- src/entities/CutsceneObject.cpp | 4 +- src/entities/Ped.cpp | 16 +-- src/main.cpp | 2 +- src/modelinfo/BaseModelInfo.cpp | 4 +- src/modelinfo/ClumpModelInfo.cpp | 2 +- src/modelinfo/PedModelInfo.cpp | 18 +-- src/modelinfo/VehicleModelInfo.cpp | 2 +- src/re3.cpp | 4 +- src/render/Coronas.cpp | 2 +- src/render/Hud.cpp | 22 ++-- src/render/MBlur.cpp | 2 +- src/render/Particle.cpp | 160 +++++++++++------------ src/render/Particle.h | 2 +- src/render/ParticleMgr.cpp | 16 +-- src/skel/skeleton.cpp | 14 +- src/skel/win/win.cpp | 188 +++++++++++++-------------- 37 files changed, 319 insertions(+), 317 deletions(-) diff --git a/dxsdk/Include/control.h b/dxsdk/Include/control.h index caf33d5a..906fbc4f 100644 --- a/dxsdk/Include/control.h +++ b/dxsdk/Include/control.h @@ -150,7 +150,6 @@ typedef interface IAMStats IAMStats; extern "C"{ #endif -void * __RPC_USER MIDL_user_allocate(size_t); void __RPC_USER MIDL_user_free( void * ); diff --git a/dxsdk/Include/errors.h b/dxsdk/Include/errors.h index d89a0a1f..cee756fb 100644 --- a/dxsdk/Include/errors.h +++ b/dxsdk/Include/errors.h @@ -24,7 +24,7 @@ extern "C" { #define VFW_FIRST_CODE 0x200 #define MAX_ERROR_TEXT_LEN 160 -#include // includes all message definitions +#include // includes all message definitions typedef BOOL (WINAPI* AMGETERRORTEXTPROCA)(HRESULT, char *, DWORD); typedef BOOL (WINAPI* AMGETERRORTEXTPROCW)(HRESULT, WCHAR *, DWORD); diff --git a/dxsdk/Include/strmif.h b/dxsdk/Include/strmif.h index 0f8dfc60..600105e7 100644 --- a/dxsdk/Include/strmif.h +++ b/dxsdk/Include/strmif.h @@ -862,7 +862,6 @@ typedef interface IVPManager IVPManager; extern "C"{ #endif -void * __RPC_USER MIDL_user_allocate(size_t); void __RPC_USER MIDL_user_free( void * ); /* interface __MIDL_itf_strmif_0000 */ diff --git a/src/Camera.cpp b/src/Camera.cpp index 368a77d1..999792dd 100644 --- a/src/Camera.cpp +++ b/src/Camera.cpp @@ -790,7 +790,7 @@ CCam::WorkOutCamHeightWeeCar(CVector &TargetCoors, float TargetOrientation) float RoadZ = 0.0f; float RoofZ = 0.0f; - if(CWorld::ProcessVerticalLine(Source, -1000.0f, colpoint, ent, true, false, false, false, false, false, false) && + if(CWorld::ProcessVerticalLine(Source, -1000.0f, colpoint, ent, true, false, false, false, false, false, nil) && ent->IsBuilding()){ FoundRoad = true; RoadZ = colpoint.point.z; @@ -807,7 +807,7 @@ CCam::WorkOutCamHeightWeeCar(CVector &TargetCoors, float TargetOrientation) TargetZOffSet = 0.0f; } }else{ - if(CWorld::ProcessVerticalLine(Source, 1000.0f, colpoint, ent, true, false, false, false, false, false, false) && + if(CWorld::ProcessVerticalLine(Source, 1000.0f, colpoint, ent, true, false, false, false, false, false, nil) && ent->IsBuilding()){ FoundRoof = true; RoofZ = colpoint.point.z; diff --git a/src/Camera.h b/src/Camera.h index 6669ff13..9154b614 100644 --- a/src/Camera.h +++ b/src/Camera.h @@ -1,5 +1,4 @@ #pragma once - #include "Placeable.h" class CEntity; diff --git a/src/CdStream.cpp b/src/CdStream.cpp index 506e14e9..255e46bb 100644 --- a/src/CdStream.cpp +++ b/src/CdStream.cpp @@ -1,4 +1,4 @@ -#include +#include #include "common.h" #include "patcher.h" #include "CdStream.h" @@ -53,9 +53,9 @@ CdStreamInitThread(void) { for ( int32 i = 0; i < gNumChannels; i++ ) { - gpReadInfo[i].hSemaphore = CreateSemaphore(NULL, 0, 2, NULL); + gpReadInfo[i].hSemaphore = CreateSemaphore(nil, 0, 2, nil); - if ( gpReadInfo[i].hSemaphore == NULL ) + if ( gpReadInfo[i].hSemaphore == nil ) { CDTRACE("failed to create sync semaphore"); ASSERT(0); @@ -68,20 +68,20 @@ CdStreamInitThread(void) gChannelRequestQ.head = 0; gChannelRequestQ.tail = 0; gChannelRequestQ.size = gNumChannels + 1; - ASSERT(gChannelRequestQ.items != NULL ); + ASSERT(gChannelRequestQ.items != nil ); - gCdStreamSema = CreateSemaphore(NULL, 0, 5, "CdStream"); + gCdStreamSema = CreateSemaphore(nil, 0, 5, "CdStream"); - if ( gCdStreamSema == NULL ) + if ( gCdStreamSema == nil ) { CDTRACE("failed to create stream semaphore"); ASSERT(0); return; } - _gCdStreamThread = CreateThread(NULL, 64*1024/*64KB*/, CdStreamThread, NULL, CREATE_SUSPENDED, &_gCdStreamThreadId); + _gCdStreamThread = CreateThread(nil, 64*1024/*64KB*/, CdStreamThread, nil, CREATE_SUSPENDED, &_gCdStreamThreadId); - if ( _gCdStreamThread == NULL ) + if ( _gCdStreamThread == nil ) { CDTRACE("failed to create streaming thread"); ASSERT(0); @@ -101,7 +101,7 @@ CdStreamInit(int32 numChannels) DWORD NumberOfFreeClusters; DWORD TotalNumberOfClusters; - GetDiskFreeSpace(NULL, &SectorsPerCluster, &BytesPerSector, &NumberOfFreeClusters, &TotalNumberOfClusters); + GetDiskFreeSpace(nil, &SectorsPerCluster, &BytesPerSector, &NumberOfFreeClusters, &TotalNumberOfClusters); _gdwCdStreamFlags = 0; @@ -118,7 +118,7 @@ CdStreamInit(int32 numChannels) _gbCdStreamAsync = FALSE; void *pBuffer = (void *)RwMallocAlign(CDSTREAM_SECTOR_SIZE, BytesPerSector); - ASSERT( pBuffer != NULL ); + ASSERT( pBuffer != nil ); SetLastError(0); @@ -127,7 +127,7 @@ CdStreamInit(int32 numChannels) gNumChannels = numChannels; gpReadInfo = (CdReadInfo *)LocalAlloc(LMEM_ZEROINIT, sizeof(CdReadInfo) * numChannels); - ASSERT( gpReadInfo != NULL ); + ASSERT( gpReadInfo != nil ); CDDEBUG("read info %p", gpReadInfo); @@ -156,15 +156,15 @@ CdStreamInit(int32 numChannels) CdStreamInitThread(); - ASSERT( pBuffer != NULL ); + ASSERT( pBuffer != nil ); RwFreeAlign(pBuffer); } uint32 GetGTA3ImgSize(void) { - ASSERT( gImgFiles[0] != NULL ); - return (uint32)GetFileSize(gImgFiles[0], NULL); + ASSERT( gImgFiles[0] != nil ); + return (uint32)GetFileSize(gImgFiles[0], nil); } void @@ -189,17 +189,17 @@ int32 CdStreamRead(int32 channel, void *buffer, uint32 offset, uint32 size) { ASSERT( channel < gNumChannels ); - ASSERT( buffer != NULL ); + ASSERT( buffer != nil ); lastPosnRead = size + offset; ASSERT( _GET_INDEX(offset) < MAX_CDIMAGES ); HANDLE hImage = gImgFiles[_GET_INDEX(offset)]; - ASSERT( hImage != NULL ); + ASSERT( hImage != nil ); CdReadInfo *pChannel = &gpReadInfo[channel]; - ASSERT( pChannel != NULL ); + ASSERT( pChannel != nil ); pChannel->hFile = hImage; @@ -218,7 +218,7 @@ CdStreamRead(int32 channel, void *buffer, uint32 offset, uint32 size) AddToQueue(&gChannelRequestQ, channel); - if ( !ReleaseSemaphore(gCdStreamSema, 1, NULL) ) + if ( !ReleaseSemaphore(gCdStreamSema, 1, nil) ) printf("Signal Sema Error\n"); return STREAM_SUCCESS; @@ -228,7 +228,7 @@ CdStreamRead(int32 channel, void *buffer, uint32 offset, uint32 size) { ASSERT( channel < gNumChannels ); CdReadInfo *pChannel = &gpReadInfo[channel]; - ASSERT( pChannel != NULL ); + ASSERT( pChannel != nil ); pChannel->Overlapped.Offset = _GET_OFFSET(offset) * CDSTREAM_SECTOR_SIZE; @@ -239,11 +239,11 @@ CdStreamRead(int32 channel, void *buffer, uint32 offset, uint32 size) return STREAM_SUCCESS; } - SetFilePointer(hImage, _GET_OFFSET(offset) * CDSTREAM_SECTOR_SIZE, NULL, FILE_BEGIN); + SetFilePointer(hImage, _GET_OFFSET(offset) * CDSTREAM_SECTOR_SIZE, nil, FILE_BEGIN); DWORD NumberOfBytesRead; - if ( !ReadFile(hImage, buffer, size * CDSTREAM_SECTOR_SIZE, &NumberOfBytesRead, NULL) ) + if ( !ReadFile(hImage, buffer, size * CDSTREAM_SECTOR_SIZE, &NumberOfBytesRead, nil) ) return STREAM_NONE; else return STREAM_SUCCESS; @@ -254,7 +254,7 @@ CdStreamGetStatus(int32 channel) { ASSERT( channel < gNumChannels ); CdReadInfo *pChannel = &gpReadInfo[channel]; - ASSERT( pChannel != NULL ); + ASSERT( pChannel != nil ); if ( _gbCdStreamAsync ) { @@ -278,7 +278,7 @@ CdStreamGetStatus(int32 channel) if ( _gbCdStreamOverlapped ) { - ASSERT( pChannel->hFile != NULL ); + ASSERT( pChannel->hFile != nil ); if ( WaitForSingleObjectEx(pChannel->hFile, 0, TRUE) == WAIT_OBJECT_0 ) return STREAM_NONE; else @@ -299,7 +299,7 @@ CdStreamSync(int32 channel) { ASSERT( channel < gNumChannels ); CdReadInfo *pChannel = &gpReadInfo[channel]; - ASSERT( pChannel != NULL ); + ASSERT( pChannel != nil ); if ( _gbCdStreamAsync ) { @@ -307,7 +307,7 @@ CdStreamSync(int32 channel) { pChannel->bLocked = true; - ASSERT( pChannel->hSemaphore != NULL ); + ASSERT( pChannel->hSemaphore != nil ); WaitForSingleObject(pChannel->hSemaphore, INFINITE); } @@ -321,7 +321,7 @@ CdStreamSync(int32 channel) if ( _gbCdStreamOverlapped && pChannel->hFile ) { - ASSERT(pChannel->hFile != NULL ); + ASSERT(pChannel->hFile != nil ); if ( GetOverlappedResult(pChannel->hFile, &pChannel->Overlapped, &NumberOfBytesTransferred, TRUE) ) return STREAM_NONE; else @@ -334,8 +334,8 @@ CdStreamSync(int32 channel) void AddToQueue(Queue *queue, int32 item) { - ASSERT( queue != NULL ); - ASSERT( queue->items != NULL ); + ASSERT( queue != nil ); + ASSERT( queue->items != nil ); queue->items[queue->tail] = item; queue->tail = (queue->tail + 1) % queue->size; @@ -347,18 +347,18 @@ AddToQueue(Queue *queue, int32 item) int32 GetFirstInQueue(Queue *queue) { - ASSERT( queue != NULL ); + ASSERT( queue != nil ); if ( queue->head == queue->tail ) return -1; - ASSERT( queue->items != NULL ); + ASSERT( queue->items != nil ); return queue->items[queue->head]; } void RemoveFirstInQueue(Queue *queue) { - ASSERT( queue != NULL ); + ASSERT( queue != nil ); if ( queue->head == queue->tail ) { debug("Queue is empty\n"); @@ -381,7 +381,7 @@ WINAPI CdStreamThread(LPVOID lpThreadParameter) ASSERT( channel < gNumChannels ); CdReadInfo *pChannel = &gpReadInfo[channel]; - ASSERT( pChannel != NULL ); + ASSERT( pChannel != nil ); pChannel->bInUse = true; @@ -391,8 +391,8 @@ WINAPI CdStreamThread(LPVOID lpThreadParameter) { pChannel->Overlapped.Offset = pChannel->nSectorOffset * CDSTREAM_SECTOR_SIZE; - ASSERT(pChannel->hFile != NULL ); - ASSERT(pChannel->pBuffer != NULL ); + ASSERT(pChannel->hFile != nil ); + ASSERT(pChannel->pBuffer != nil ); DWORD NumberOfBytesTransferred; @@ -416,10 +416,10 @@ WINAPI CdStreamThread(LPVOID lpThreadParameter) } else { - ASSERT(pChannel->hFile != NULL ); - ASSERT(pChannel->pBuffer != NULL ); + ASSERT(pChannel->hFile != nil ); + ASSERT(pChannel->pBuffer != nil ); - SetFilePointer(pChannel->hFile, pChannel->nSectorOffset * CDSTREAM_SECTOR_SIZE, NULL, FILE_BEGIN); + SetFilePointer(pChannel->hFile, pChannel->nSectorOffset * CDSTREAM_SECTOR_SIZE, nil, FILE_BEGIN); DWORD NumberOfBytesRead; if ( ReadFile(pChannel->hFile, @@ -439,7 +439,7 @@ WINAPI CdStreamThread(LPVOID lpThreadParameter) if ( pChannel->bLocked ) { - ASSERT( pChannel->hSemaphore != NULL ); + ASSERT( pChannel->hSemaphore != nil ); ReleaseSemaphore(pChannel->hSemaphore, 1, NULL); } @@ -450,7 +450,7 @@ WINAPI CdStreamThread(LPVOID lpThreadParameter) bool CdStreamAddImage(char const *path) { - ASSERT(path != NULL); + ASSERT(path != nil); ASSERT(gNumImages < MAX_CDIMAGES); SetLastError(0); @@ -458,12 +458,12 @@ CdStreamAddImage(char const *path) gImgFiles[gNumImages] = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, - NULL, + nil, OPEN_EXISTING, _gdwCdStreamFlags | FILE_FLAG_RANDOM_ACCESS | FILE_ATTRIBUTE_READONLY, - NULL); + nil); - ASSERT( gImgFiles[gNumImages] != NULL ); + ASSERT( gImgFiles[gNumImages] != nil ); if ( gImgFiles[gNumImages] == NULL ) return false; @@ -478,10 +478,10 @@ char * CdStreamGetImageName(int32 cd) { ASSERT(cd < MAX_CDIMAGES); - if ( gImgFiles[cd] != NULL ) + if ( gImgFiles[cd] != nil ) return gCdImageNames[cd]; - return NULL; + return nil; } void @@ -495,7 +495,7 @@ CdStreamRemoveImages(void) SetLastError(0); CloseHandle(gImgFiles[i]); - gImgFiles[i] = NULL; + gImgFiles[i] = nil; } gNumImages = 0; diff --git a/src/FileLoader.cpp b/src/FileLoader.cpp index 8213a5c7..8bc6ad11 100644 --- a/src/FileLoader.cpp +++ b/src/FileLoader.cpp @@ -38,7 +38,7 @@ void LoadingScreenLoadingFile(const char *filename) { sprintf(gString, "Loading %s", GetFilename(filename)); - LoadingScreen("Loading the Game", gString, 0); + LoadingScreen("Loading the Game", gString, nil); } void @@ -144,7 +144,7 @@ CFileLoader::LoadLine(int fd) int i; char *line; - if(CFileMgr::ReadLine(fd, ms_line, 256) == nil) + if(CFileMgr::ReadLine(fd, ms_line, 256) == false) return nil; for(i = 0; ms_line[i] != '\0'; i++) if(ms_line[i] < ' ' || ms_line[i] == ',') @@ -311,7 +311,7 @@ CFileLoader::FindRelatedModelInfoCB(RpAtomic *atomic, void *data) nodename = GetFrameNodeName(RpClumpGetFrame(atomic)); GetNameAndLOD(nodename, name, &n); - mi = (CSimpleModelInfo*)CModelInfo::GetModelInfo(name, 0); + mi = (CSimpleModelInfo*)CModelInfo::GetModelInfo(name, nil); if(mi){ assert(mi->IsSimple()); mi->SetAtomic(n, atomic); @@ -360,7 +360,7 @@ CFileLoader::LoadClumpFile(const char *filename) if(clump){ nodename = GetFrameNodeName(RpClumpGetFrame(clump)); GetNameAndLOD(nodename, name, &n); - mi = (CClumpModelInfo*)CModelInfo::GetModelInfo(name, 0); + mi = (CClumpModelInfo*)CModelInfo::GetModelInfo(name, nil); assert(mi->IsClump()); if(mi) mi->SetClump(clump); @@ -457,7 +457,7 @@ CFileLoader::SetRelatedModelInfoCB(RpAtomic *atomic, void *data) RpClumpRemoveAtomic(clump, atomic); RpAtomicSetFrame(atomic, RwFrameCreate()); CVisibilityPlugins::SetAtomicModelInfo(atomic, gpRelatedModelInfo); - CVisibilityPlugins::SetAtomicRenderCallback(atomic, 0); + CVisibilityPlugins::SetAtomicRenderCallback(atomic, nil); return atomic; } diff --git a/src/Pad.cpp b/src/Pad.cpp index e6f36efd..13b9b589 100644 --- a/src/Pad.cpp +++ b/src/Pad.cpp @@ -187,10 +187,10 @@ CMouseControllerState CMousePointerStateHelper::GetMouseSetUp() { CMouseControllerState state; - if ( PSGLOBAL(mouse) == NULL ) + if ( PSGLOBAL(mouse) == nil ) _InputInitialiseMouse(); - if ( PSGLOBAL(mouse) != NULL ) + if ( PSGLOBAL(mouse) != nil ) { DIDEVCAPS devCaps; devCaps.dwSize = sizeof(DIDEVCAPS); @@ -228,12 +228,12 @@ void CPad::UpdateMouse() { if ( IsForegroundApp() ) { - if ( PSGLOBAL(mouse) == NULL ) + if ( PSGLOBAL(mouse) == nil ) _InputInitialiseMouse(); DIMOUSESTATE2 state; - if ( PSGLOBAL(mouse) != NULL && SUCCEEDED(_InputGetMouseState(&state)) ) + if ( PSGLOBAL(mouse) != nil && SUCCEEDED(_InputGetMouseState(&state)) ) { int32 signX = 1; int32 signy = 1; @@ -386,7 +386,7 @@ void CPad::StartShake_Train(float fX, float fY) if ( CCutsceneMgr::IsRunning() || CGame::playingIntro ) return; - if (FindPlayerVehicle() != NULL && FindPlayerVehicle()->IsTrain() ) + if (FindPlayerVehicle() != nil && FindPlayerVehicle()->IsTrain() ) return; float fDist = ( TheCamera.GetPosition() - CVector(fX, fY, 0.0f) ).Magnitude2D(); @@ -1822,7 +1822,7 @@ char *CPad::EditString(char *pStr, int32 nSize) // extenter/up/down if ( GetPad(0)->GetEnterJustDown() || GetPad(0)->GetUpJustDown() || GetPad(0)->GetDownJustDown() ) - return NULL; + return nil; return pStr; } diff --git a/src/Placeable.h b/src/Placeable.h index bca9462d..868ca9e7 100644 --- a/src/Placeable.h +++ b/src/Placeable.h @@ -2,10 +2,10 @@ class CPlaceable { - // disable allocation - static void *operator new(size_t) { assert(0); return nil; } - static void operator delete(void*, size_t) { assert(0); } public: + // disable allocation + static void *operator new(size_t) = delete; + CMatrix m_matrix; CPlaceable(void); diff --git a/src/Radar.cpp b/src/Radar.cpp index 839aa3af..ec02144e 100644 --- a/src/Radar.cpp +++ b/src/Radar.cpp @@ -43,7 +43,7 @@ CSprite2d *CRadar::TonySprite = (CSprite2d*)0x885B58; CSprite2d *CRadar::WeaponSprite = (CSprite2d*)0x941534; CSprite2d *CRadar::RadarSprites[RADAR_SPRITE_COUNT] = { - NULL, + nil, AsukaSprite, BombSprite, CatSprite, diff --git a/src/RwHelper.cpp b/src/RwHelper.cpp index 3c198272..8dade266 100644 --- a/src/RwHelper.cpp +++ b/src/RwHelper.cpp @@ -1,7 +1,7 @@ #define WITHD3D #include "common.h" #include "patcher.h" -#include "TimeCycle.h" +#include "Timecycle.h" #include "skeleton.h" void * @@ -9,11 +9,11 @@ RwMallocAlign(RwUInt32 size, RwUInt32 align) { void *mem = (void *)malloc(size + align); - ASSERT(mem != NULL); + ASSERT(mem != nil); void *addr = (void *)((((RwUInt32)mem) + align) & ~(align - 1)); - ASSERT(addr != NULL); + ASSERT(addr != nil); *(((void **)addr) - 1) = mem; @@ -23,11 +23,11 @@ RwMallocAlign(RwUInt32 size, RwUInt32 align) void RwFreeAlign(void *mem) { - ASSERT(mem != NULL); + ASSERT(mem != nil); void *addr = *(((void **)mem) - 1); - ASSERT(addr != NULL); + ASSERT(addr != nil); free(addr); } @@ -283,7 +283,7 @@ CameraDestroy(RwCamera *camera) RwRasterDestroy(raster); - if ((tmpRaster != NULL) && (tmpRaster != raster)) + if ((tmpRaster != nil) && (tmpRaster != raster)) { RwRasterDestroy(tmpRaster); } @@ -296,7 +296,7 @@ CameraDestroy(RwCamera *camera) RwRasterDestroy(raster); - if ((tmpRaster != NULL) && (tmpRaster != raster)) + if ((tmpRaster != nil) && (tmpRaster != raster)) { RwRasterDestroy(tmpRaster); } @@ -344,7 +344,7 @@ CameraCreate(RwInt32 width, RwInt32 height, RwBool zBuffer) /* if we're here then an error must have occurred so clean up */ CameraDestroy(camera); - return (NULL); + return (nil); } STARTPATCHES diff --git a/src/RwMatFX.cpp b/src/RwMatFX.cpp index ca47e529..5fd00c54 100644 --- a/src/RwMatFX.cpp +++ b/src/RwMatFX.cpp @@ -54,7 +54,7 @@ _rpMatFXD3D8AtomicMatFXDefaultRender(RxD3D8InstanceData *inst, int flags, RwText if(flags & (rpGEOMETRYTEXTURED|rpGEOMETRYTEXTURED2) && texture) RwD3D8SetTexture(texture, 0); else - RwD3D8SetTexture(NULL, 0); + RwD3D8SetTexture(nil, 0); RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)(inst->vertexAlpha || inst->material->color.alpha != 0xFF)); RwD3D8SetRenderState(D3DRS_DIFFUSEMATERIALSOURCE, inst->vertexAlpha != 0); RwD3D8SetPixelShader(0); diff --git a/src/Streaming.h b/src/Streaming.h index d0c6fc68..212a6d71 100644 --- a/src/Streaming.h +++ b/src/Streaming.h @@ -1,5 +1,7 @@ #pragma once +#include "Game.h" + enum { STREAM_OFFSET_MODEL = 0, STREAM_OFFSET_TXD = STREAM_OFFSET_MODEL+MODELINFOSIZE, diff --git a/src/Timer.cpp b/src/Timer.cpp index 2f7dc38d..543f582b 100644 --- a/src/Timer.cpp +++ b/src/Timer.cpp @@ -1,4 +1,4 @@ -#include +#include #include "common.h" #include "patcher.h" #include "DMAudio.h" diff --git a/src/TxdStore.cpp b/src/TxdStore.cpp index 6ff7e852..5085c7e4 100644 --- a/src/TxdStore.cpp +++ b/src/TxdStore.cpp @@ -164,7 +164,7 @@ CTxdStore::StartLoadTxd(int slot, RwStream *stream) return def->texDict != nil; }else{ printf("Failed to load TXD\n"); - return nil; + return false; } } diff --git a/src/animation/AnimBlendHierarchy.cpp b/src/animation/AnimBlendHierarchy.cpp index c7d7f198..e4bcdc69 100644 --- a/src/animation/AnimBlendHierarchy.cpp +++ b/src/animation/AnimBlendHierarchy.cpp @@ -9,7 +9,7 @@ CAnimBlendHierarchy::CAnimBlendHierarchy(void) numSequences = 0; compressed = 0; totalLength = 0.0f; - linkPtr = 0; + linkPtr = nil; } void diff --git a/src/animation/RpAnimBlend.cpp b/src/animation/RpAnimBlend.cpp index 3d1439c6..17394743 100644 --- a/src/animation/RpAnimBlend.cpp +++ b/src/animation/RpAnimBlend.cpp @@ -366,7 +366,7 @@ RpAnimBlendClumpUpdateAnimations(RpClump *clump, float timeDelta) updateData.foobar = 1; } } - updateData.nodes[i] = 0; + updateData.nodes[i] = nil; clumpData->ForAllFrames(FrameUpdateCallBack, &updateData); diff --git a/src/audio/MusicManager.cpp b/src/audio/MusicManager.cpp index 6f2d3d86..7b7c1182 100644 --- a/src/audio/MusicManager.cpp +++ b/src/audio/MusicManager.cpp @@ -55,7 +55,7 @@ void cMusicManager::DisplayRadioStationName() if (!CTimer::GetIsPaused() && !TheCamera.m_WideScreenOn && cMusicManager::PlayerInCar() && !CReplay::IsPlayingBack()) { if (MusicManager.m_bPlayerInCar && !MusicManager.m_bPreviousPlayerInCar) - pCurrentStation = nullptr; + pCurrentStation = nil; if (cSampleManager.IsMP3RadioChannelAvailable()) { gStreamedSound = MusicManager.m_nCurrentStreamedSound; @@ -103,7 +103,7 @@ void cMusicManager::DisplayRadioStationName() } } - wchar *string = nullptr; + wchar *string = nil; switch (pRetune) { case HEAD_RADIO: diff --git a/src/common.h b/src/common.h index 0345b65c..efbc1f8c 100644 --- a/src/common.h +++ b/src/common.h @@ -14,7 +14,7 @@ #include #ifdef WITHD3D -#include +#include #include #endif @@ -43,7 +43,7 @@ typedef int64_t int64; // hardcode ucs-2 typedef uint16_t wchar; -#define nil NULL +#define nil nullptr #include "config.h" @@ -53,7 +53,7 @@ typedef uint16_t wchar; extern void **rwengine; #define RwEngineInstance (*rwengine) -#include "skel\skeleton.h" +#include "skeleton.h" #include "Draw.h" /* @@ -164,3 +164,6 @@ void re3_assert(const char *expr, const char *filename, unsigned int lineno, con #define PERCENT(x, p) ((float(x) * (float(p) / 100.0f))) #define ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0])) #define BIT(num) (1<<(num)) + +#define max(a, b) (((a) > (b)) ? (a) : (b)) +#define min(a, b) (((a) < (b)) ? (a) : (b)) diff --git a/src/control/PedPlacement.cpp b/src/control/PedPlacement.cpp index de4cdae1..e9a3f7d9 100644 --- a/src/control/PedPlacement.cpp +++ b/src/control/PedPlacement.cpp @@ -19,14 +19,14 @@ CPedPlacement::FindZCoorForPed(CVector* pos) pos->z + 1.0f ); - if (CWorld::ProcessVerticalLine(vec, startZ, foundCol, foundEnt, true, false, false, false, true, false, false)) + if (CWorld::ProcessVerticalLine(vec, startZ, foundCol, foundEnt, true, false, false, false, true, false, nil)) foundColZ = foundCol.point.z; // Adjust coords and do a second test vec.x += 0.1f; vec.y += 0.1f; - if (CWorld::ProcessVerticalLine(vec, startZ, foundCol, foundEnt, true, false, false, false, true, false, false)) + if (CWorld::ProcessVerticalLine(vec, startZ, foundCol, foundEnt, true, false, false, false, true, false, nil)) foundColZ2 = foundCol.point.z; zForPed = max(foundColZ, foundColZ2); diff --git a/src/debugmenu_public.h b/src/debugmenu_public.h index 3671caca..778e7afe 100644 --- a/src/debugmenu_public.h +++ b/src/debugmenu_public.h @@ -75,7 +75,7 @@ inline bool DebugMenuLoad(void) if(gDebugMenuAPI.isLoaded) return true; HMODULE mod = LoadLibraryA("debugmenu"); - if(mod == 0){ + if(mod == nil){ char modulePath[MAX_PATH]; HMODULE dllModule; GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, (LPCTSTR)&gDebugMenuAPI, &dllModule); @@ -85,7 +85,7 @@ inline bool DebugMenuLoad(void) strcat(modulePath, "debugmenu"); mod = LoadLibraryA(modulePath); } - if(mod == 0) + if(mod == nil) return false; gDebugMenuAPI.addint8 = (DebugMenuAddInt8_TYPE)GetProcAddress(mod, "DebugMenuAddInt8"); gDebugMenuAPI.addint16 = (DebugMenuAddInt16_TYPE)GetProcAddress(mod, "DebugMenuAddInt16"); diff --git a/src/entities/CutsceneObject.cpp b/src/entities/CutsceneObject.cpp index a7bca122..9089f600 100644 --- a/src/entities/CutsceneObject.cpp +++ b/src/entities/CutsceneObject.cpp @@ -1,14 +1,14 @@ #include "common.h" #include "patcher.h" #include "main.h" -#include "lights.h" +#include "Lights.h" #include "PointLights.h" #include "RpAnimBlend.h" #include "AnimBlendClumpData.h" #include "Renderer.h" #include "ModelIndices.h" #include "Shadows.h" -#include "TimeCycle.h" +#include "Timecycle.h" #include "CutsceneObject.h" CCutsceneObject::CCutsceneObject(void) diff --git a/src/entities/Ped.cpp b/src/entities/Ped.cpp index 7f83ea84..828e9c19 100644 --- a/src/entities/Ped.cpp +++ b/src/entities/Ped.cpp @@ -4,7 +4,7 @@ #include "Particle.h" #include "Stats.h" #include "World.h" -#include "DMaudio.h" +#include "DMAudio.h" #include "RpAnimBlend.h" #include "Ped.h" #include "PlayerPed.h" @@ -416,7 +416,7 @@ CPed::RemoveBodyPart(PedNode nodeId, int8 unk) if (nodeId != PED_HEAD) CPed::SpawnFlyingComponent(nodeId, unk); - RecurseFrameChildrenVisibilityCB(frame, 0); + RecurseFrameChildrenVisibilityCB(frame, nil); pos.x = 0.0f; pos.y = 0.0f; pos.z = 0.0f; @@ -447,7 +447,7 @@ CPed::RemoveBodyPart(PedNode nodeId, int8 unk) RwObject* CPed::SetPedAtomicVisibilityCB(RwObject *object, void *data) { - if (data == 0) + if (data == nil) RpAtomicSetFlags(object, 0); return object; } @@ -456,7 +456,7 @@ RwFrame* CPed::RecurseFrameChildrenVisibilityCB(RwFrame *frame, void *data) { RwFrameForAllObjects(frame, SetPedAtomicVisibilityCB, data); - RwFrameForAllChildren(frame, RecurseFrameChildrenVisibilityCB, 0); + RwFrameForAllChildren(frame, RecurseFrameChildrenVisibilityCB, nil); return frame; } @@ -824,7 +824,7 @@ CPed::Attack(void) && GetWeapon()->m_eWeaponState != WEAPONSTATE_RELOADING) { weaponAnim = weaponAnimAssoc->animId; - if (ourWeaponFire != WEAPON_FIRE_MELEE || CheckForPedsOnGroundToAttack(((CPlayerPed*)this), 0) < PED_ON_THE_FLOOR) { + if (ourWeaponFire != WEAPON_FIRE_MELEE || CheckForPedsOnGroundToAttack(((CPlayerPed*)this), nil) < PED_ON_THE_FLOOR) { if (weaponAnim != ourWeapon->m_Anim2ToPlay || weaponAnim == ANIM_RBLOCK_CSHOOT) { weaponAnimAssoc->Start(ourWeapon->m_fAnimLoopStart); } else { @@ -873,7 +873,7 @@ CPed::Attack(void) if (lastReloadWasInFuture) { if (ourWeaponFire != WEAPON_FIRE_PROJECTILE || !CPed::IsPlayer() || ((CPlayerPed*)this)->field_1380) { - if (!CGame::nastyGame || ourWeaponFire != WEAPON_FIRE_MELEE || CheckForPedsOnGroundToAttack(((CPlayerPed*)this), 0) < PED_ON_THE_FLOOR) { + if (!CGame::nastyGame || ourWeaponFire != WEAPON_FIRE_MELEE || CheckForPedsOnGroundToAttack(((CPlayerPed*)this), nil) < PED_ON_THE_FLOOR) { weaponAnimAssoc = CAnimManager::BlendAnimation((RpClump*)m_rwObject, ASSOCGRP_STD, ourWeapon->m_AnimToPlay, 8.0f); } else { weaponAnimAssoc = CAnimManager::BlendAnimation((RpClump*)m_rwObject, ASSOCGRP_STD, ourWeapon->m_Anim2ToPlay, 8.0f); @@ -892,14 +892,14 @@ CPed::Attack(void) } } else - CPed::FinishedAttackCB(0, this); + CPed::FinishedAttackCB(nil, this); } void CPed::RemoveWeaponModel(int modelId) { // modelId is not used!! This function just removes the current weapon. - RwFrameForAllObjects(GetNodeFrame(PED_HANDR),RemoveAllModelCB,0); + RwFrameForAllObjects(GetNodeFrame(PED_HANDR),RemoveAllModelCB,nil); m_wepModelID = -1; } diff --git a/src/main.cpp b/src/main.cpp index c8af9ae0..307d0b66 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -41,7 +41,7 @@ #include "Lights.h" #include "Credits.h" #include "CullZones.h" -#include "TimeCycle.h" +#include "Timecycle.h" #include "TxdStore.h" #include "FileMgr.h" #include "Text.h" diff --git a/src/modelinfo/BaseModelInfo.cpp b/src/modelinfo/BaseModelInfo.cpp index f44c86b6..37f94c93 100644 --- a/src/modelinfo/BaseModelInfo.cpp +++ b/src/modelinfo/BaseModelInfo.cpp @@ -9,7 +9,7 @@ CBaseModelInfo::CBaseModelInfo(ModeInfoType type) { m_colModel = nil; - m_twodEffects = 0; + m_twodEffects = nil; m_objectId = -1; m_refCount = 0; m_txdSlot = -1; @@ -23,7 +23,7 @@ CBaseModelInfo::Shutdown(void) { DeleteCollisionModel(); DeleteRwObject(); - m_twodEffects = 0; + m_twodEffects = nil; m_num2dEffects = 0; m_txdSlot = -1; } diff --git a/src/modelinfo/ClumpModelInfo.cpp b/src/modelinfo/ClumpModelInfo.cpp index 4a19f1df..24deed38 100644 --- a/src/modelinfo/ClumpModelInfo.cpp +++ b/src/modelinfo/ClumpModelInfo.cpp @@ -48,7 +48,7 @@ CClumpModelInfo::SetClump(RpClump *clump) AddTexDictionaryRef(); RpClumpForAllAtomics(clump, SetAtomicRendererCB, nil); if(strncmp(GetName(), "playerh", 8) == 0) - RpClumpForAllAtomics(clump, SetAtomicRendererCB, CVisibilityPlugins::RenderPlayerCB); + RpClumpForAllAtomics(clump, SetAtomicRendererCB, (void*)CVisibilityPlugins::RenderPlayerCB); } void diff --git a/src/modelinfo/PedModelInfo.cpp b/src/modelinfo/PedModelInfo.cpp index e095902e..775148c9 100644 --- a/src/modelinfo/PedModelInfo.cpp +++ b/src/modelinfo/PedModelInfo.cpp @@ -25,7 +25,7 @@ RwObjectNameIdAssocation CPedModelInfo::m_pPedIds[12] = { { "Sfootl", PED_FOOTL, 0, }, { "Sfootr", PED_FOOTR, 0, }, { "Slowerlegr", PED_LOWERLEGR, 0, }, - { NULL, 0, 0, }, + { nil, 0, 0, }, }; void @@ -36,7 +36,7 @@ CPedModelInfo::SetClump(RpClump *clump) if(m_hitColModel == nil) CreateHitColModel(); if(strncmp(GetName(), "player", 7) == 0) - RpClumpForAllAtomics(m_clump, SetAtomicRendererCB, CVisibilityPlugins::RenderPlayerCB); + RpClumpForAllAtomics(m_clump, SetAtomicRendererCB, (void*)CVisibilityPlugins::RenderPlayerCB); } RpAtomic* @@ -82,8 +82,8 @@ CPedModelInfo::SetLowDetailClump(RpClump *lodclump) RpClumpForAllAtomics(m_clump, CountAtomicsCB, &numAtm); // actually unused RpClumpForAllAtomics(lodclump, CountAtomicsCB, &numLodAtm); - RpClumpForAllAtomics(m_clump, SetAtomicRendererCB, CVisibilityPlugins::RenderPedHiDetailCB); - RpClumpForAllAtomics(lodclump, SetAtomicRendererCB, CVisibilityPlugins::RenderPedLowDetailCB); + RpClumpForAllAtomics(m_clump, SetAtomicRendererCB, (void*)CVisibilityPlugins::RenderPedHiDetailCB); + RpClumpForAllAtomics(lodclump, SetAtomicRendererCB, (void*)CVisibilityPlugins::RenderPedLowDetailCB); pAtm = atomics; RpClumpForAllAtomics(lodclump, GetAtomicListCB, &pAtm); @@ -112,14 +112,14 @@ struct ColNodeInfo // TODO: find out piece types #define NUMPEDINFONODES 8 ColNodeInfo m_pColNodeInfos[NUMPEDINFONODES] = { - { NULL, PED_HEAD, 6, 0.0f, 0.05f, 0.2f }, + { nil, PED_HEAD, 6, 0.0f, 0.05f, 0.2f }, { "Storso", 0, 0, 0.0f, 0.15f, 0.2f }, { "Storso", 0, 0, 0.0f, -0.05f, 0.3f }, - { NULL, PED_TORSO, 1, 0.0f, -0.07f, 0.3f }, - { NULL, PED_UPPERARML, 2, 0.07f, -0.1f, 0.2f }, - { NULL, PED_UPPERARMR, 3, -0.07f, -0.1f, 0.2f }, + { nil, PED_TORSO, 1, 0.0f, -0.07f, 0.3f }, + { nil, PED_UPPERARML, 2, 0.07f, -0.1f, 0.2f }, + { nil, PED_UPPERARMR, 3, -0.07f, -0.1f, 0.2f }, { "Slowerlegl", 0, 4, 0.0f, 0.07f, 0.25f }, - { NULL, PED_LOWERLEGR, 5, 0.0f, 0.07f, 0.25f }, + { nil, PED_LOWERLEGR, 5, 0.0f, 0.07f, 0.25f }, }; RwObject* diff --git a/src/modelinfo/VehicleModelInfo.cpp b/src/modelinfo/VehicleModelInfo.cpp index 2f1d2027..78eee96c 100644 --- a/src/modelinfo/VehicleModelInfo.cpp +++ b/src/modelinfo/VehicleModelInfo.cpp @@ -1003,7 +1003,7 @@ CVehicleModelInfo::SetEnvironmentMapCB(RpMaterial *material, void *data) if(spec <= 0.0f) RpMatFXMaterialSetEffects(material, rpMATFXEFFECTNULL); else{ - if(RpMaterialGetTexture(material) == 0) + if(RpMaterialGetTexture(material) == nil) RpMaterialSetTexture(material, gpWhiteTexture); RpMatFXMaterialSetEffects(material, rpMATFXEFFECTENVMAP); #ifndef PS2_MATFX diff --git a/src/re3.cpp b/src/re3.cpp index 70601186..3df44620 100644 --- a/src/re3.cpp +++ b/src/re3.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include "common.h" #include "patcher.h" #include "Renderer.h" @@ -293,7 +293,7 @@ void re3_assert(const char *expr, const char *filename, unsigned int lineno, con strcat_s(re3_buff, re3_buffsize, "(Press Retry to debug the application)"); - nCode = ::MessageBoxA(NULL, re3_buff, "RE3 Assertion Failed!", + nCode = ::MessageBoxA(nil, re3_buff, "RE3 Assertion Failed!", MB_ABORTRETRYIGNORE|MB_ICONHAND|MB_SETFOREGROUND|MB_TASKMODAL); if (nCode == IDABORT) diff --git a/src/render/Coronas.cpp b/src/render/Coronas.cpp index f7a6f7d5..61fa1a5a 100644 --- a/src/render/Coronas.cpp +++ b/src/render/Coronas.cpp @@ -9,7 +9,7 @@ #include "World.h" #include "Weather.h" #include "Collision.h" -#include "TimeCycle.h" +#include "Timecycle.h" #include "Coronas.h" struct FlareDef diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp index 6ade9b60..83e62ba0 100644 --- a/src/render/Hud.cpp +++ b/src/render/Hud.cpp @@ -543,7 +543,7 @@ void CHud::Draw() } } else { - m_pLastZoneName = 0; + m_pLastZoneName = nil; m_ZoneState = 0; m_ZoneFadeTimer = 0; m_ZoneNameTimer = 0; @@ -639,7 +639,7 @@ void CHud::Draw() } } else { - m_pLastVehicleName = 0; + m_pLastVehicleName = nil; m_VehicleState = 0; m_VehicleFadeTimer = 0; m_VehicleNameTimer = 0; @@ -1234,9 +1234,9 @@ WRAPPER void CHud::GetRidOfAllHudMessages(void) { EAXJMP(0x504F90); } void CHud::GetRidOfAllHudMessages() { m_ZoneState = 0; - m_pLastZoneName = 0; + m_pLastZoneName = nil; m_ZoneNameTimer = 0; - m_pZoneName = 0; + m_pZoneName = nil; for (int i = 0; i < 256; i++) { m_HelpMessage[i] = 0; @@ -1249,9 +1249,9 @@ void CHud::GetRidOfAllHudMessages() m_HelpMessageState = 0; m_HelpMessageQuick = 0; m_HelpMessageDisplayTime = 1.0f; - m_VehicleName = 0; - m_pLastVehicleName = 0; - m_pVehicleNameToPrint = 0; + m_VehicleName = nil; + m_pLastVehicleName = nil; + m_pVehicleNameToPrint = nil; m_VehicleNameTimer = 0; m_VehicleFadeTimer = 0; m_VehicleState = 0; @@ -1284,8 +1284,8 @@ void CHud::Initialise() Sprites[i].SetTexture(WeaponFilenames[i * 2]); } - gpSniperSightTex = RwTextureRead("sitesniper", 0); - gpRocketSightTex = RwTextureRead("siterocket", 0); + gpSniperSightTex = RwTextureRead("sitesniper", nil); + gpRocketSightTex = RwTextureRead("siterocket", nil); CTxdStore::PopCurrentTxd(); } @@ -1427,10 +1427,10 @@ void CHud::Shutdown() } RwTextureDestroy(gpSniperSightTex); - gpSniperSightTex = 0; + gpSniperSightTex = nil; RwTextureDestroy(gpRocketSightTex); - gpRocketSightTex = 0; + gpRocketSightTex = nil; int HudTXD = CTxdStore::FindTxdSlot("hud"); CTxdStore::RemoveTxdSlot(HudTXD); diff --git a/src/render/MBlur.cpp b/src/render/MBlur.cpp index 1d344d35..1cf27ee0 100644 --- a/src/render/MBlur.cpp +++ b/src/render/MBlur.cpp @@ -107,7 +107,7 @@ CMBlur::CreateImmediateModeData(RwCamera *cam, RwRect *rect) void CMBlur::MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blur, int32 type, uint32 addalpha) { - RwRGBA color = { red, green, blue, blur }; + RwRGBA color = { (RwUInt8)red, (RwUInt8)green, (RwUInt8)blue, (RwUInt8)blur }; if(BlurOn){ if(pFrontBuffer){ if(ms_bJustInitialised) diff --git a/src/render/Particle.cpp b/src/render/Particle.cpp index 5b25cfa3..416e5af0 100644 --- a/src/render/Particle.cpp +++ b/src/render/Particle.cpp @@ -240,7 +240,7 @@ void CParticle::ReloadConfig() for ( int32 i = 0; i < MAX_PARTICLES_ON_SCREEN; i++ ) { if ( i == MAX_PARTICLES_ON_SCREEN - 1 ) - gParticleArray[i].m_pNext = NULL; + gParticleArray[i].m_pNext = nil; else gParticleArray[i].m_pNext = &gParticleArray[i + 1]; @@ -310,37 +310,37 @@ void CParticle::Initialise() for ( int32 i = 0; i < MAX_SMOKE_FILES; i++ ) { - gpSmokeTex[i] = RwTextureRead(SmokeFiles[i], NULL); + gpSmokeTex[i] = RwTextureRead(SmokeFiles[i], nil); gpSmokeRaster[i] = RwTextureGetRaster(gpSmokeTex[i]); } for ( int32 i = 0; i < MAX_SMOKE2_FILES; i++ ) { - gpSmoke2Tex[i] = RwTextureRead(Smoke2Files[i], NULL); + gpSmoke2Tex[i] = RwTextureRead(Smoke2Files[i], nil); gpSmoke2Raster[i] = RwTextureGetRaster(gpSmoke2Tex[i]); } for ( int32 i = 0; i < MAX_RUBBER_FILES; i++ ) { - gpRubberTex[i] = RwTextureRead(RubberFiles[i], NULL); + gpRubberTex[i] = RwTextureRead(RubberFiles[i], nil); gpRubberRaster[i] = RwTextureGetRaster(gpRubberTex[i]); } for ( int32 i = 0; i < MAX_RAINSPLASH_FILES; i++ ) { - gpRainSplashTex[i] = RwTextureRead(RainSplashFiles[i], NULL); + gpRainSplashTex[i] = RwTextureRead(RainSplashFiles[i], nil); gpRainSplashRaster[i] = RwTextureGetRaster(gpRainSplashTex[i]); } for ( int32 i = 0; i < MAX_WATERSPRAY_FILES; i++ ) { - gpWatersprayTex[i] = RwTextureRead(WatersprayFiles[i], NULL); + gpWatersprayTex[i] = RwTextureRead(WatersprayFiles[i], nil); gpWatersprayRaster[i] = RwTextureGetRaster(gpWatersprayTex[i]); } for ( int32 i = 0; i < MAX_EXPLOSIONMEDIUM_FILES; i++ ) { - gpExplosionMediumTex[i] = RwTextureRead(ExplosionMediumFiles[i], NULL); + gpExplosionMediumTex[i] = RwTextureRead(ExplosionMediumFiles[i], nil); gpExplosionMediumRaster[i] = RwTextureGetRaster(gpExplosionMediumTex[i]); } @@ -352,13 +352,13 @@ void CParticle::Initialise() for ( int32 i = 0; i < MAX_RAINDROP_FILES; i++ ) { - gpRainDropTex[i] = RwTextureRead(RaindropFiles[i], NULL); + gpRainDropTex[i] = RwTextureRead(RaindropFiles[i], nil); gpRainDropRaster[i] = RwTextureGetRaster(gpRainDropTex[i]); } for ( int32 i = 0; i < MAX_RAINSPLASHUP_FILES; i++ ) { - gpRainSplashupTex[i] = RwTextureRead(RainSplashupFiles[i], NULL); + gpRainSplashupTex[i] = RwTextureRead(RainSplashupFiles[i], nil); gpRainSplashupRaster[i] = RwTextureGetRaster(gpRainSplashupTex[i]); } @@ -370,57 +370,57 @@ void CParticle::Initialise() for ( int32 i = 0; i < MAX_CARDEBRIS_FILES; i++ ) { - gpCarDebrisTex[i] = RwTextureRead(CardebrisFiles[i], NULL); + gpCarDebrisTex[i] = RwTextureRead(CardebrisFiles[i], nil); gpCarDebrisRaster[i] = RwTextureGetRaster(gpCarDebrisTex[i]); } for ( int32 i = 0; i < MAX_CARSPLASH_FILES; i++ ) { - gpCarSplashTex[i] = RwTextureRead(CarsplashFiles[i], NULL); + gpCarSplashTex[i] = RwTextureRead(CarsplashFiles[i], nil); gpCarSplashRaster[i] = RwTextureGetRaster(gpCarSplashTex[i]); } gpFlame1Tex = RwTextureRead("flame1", NULL); gpFlame1Raster = RwTextureGetRaster(gpFlame1Tex); - gpFlame5Tex = RwTextureRead("flame5", NULL); + gpFlame5Tex = RwTextureRead("flame5", nil); gpFlame5Raster = RwTextureGetRaster(gpFlame1Tex); // copy-paste bug ? - gpRainDropSmallTex = RwTextureRead("rainsmall", NULL); + gpRainDropSmallTex = RwTextureRead("rainsmall", nil); gpRainDropSmallRaster = RwTextureGetRaster(gpRainDropSmallTex); - gpBloodTex = RwTextureRead("blood", NULL); + gpBloodTex = RwTextureRead("blood", nil); gpBloodRaster = RwTextureGetRaster(gpBloodTex); - gpLeafTex = RwTextureRead("gameleaf01_64", NULL); + gpLeafTex = RwTextureRead("gameleaf01_64", nil); gpLeafRaster = RwTextureGetRaster(gpLeafTex); - gpCloudTex1 = RwTextureRead("cloud3", NULL); + gpCloudTex1 = RwTextureRead("cloud3", nil); gpCloudRaster1 = RwTextureGetRaster(gpCloudTex1); - gpCloudTex4 = RwTextureRead("cloudmasked", NULL); + gpCloudTex4 = RwTextureRead("cloudmasked", nil); gpCloudRaster4 = RwTextureGetRaster(gpCloudTex4); - gpBloodSmallTex = RwTextureRead("bloodsplat2", NULL); + gpBloodSmallTex = RwTextureRead("bloodsplat2", nil); gpBloodSmallRaster = RwTextureGetRaster(gpBloodSmallTex); - gpGungeTex = RwTextureRead("gunge", NULL); + gpGungeTex = RwTextureRead("gunge", nil); gpGungeRaster = RwTextureGetRaster(gpGungeTex); - gpCollisionSmokeTex = RwTextureRead("collisionsmoke", NULL); + gpCollisionSmokeTex = RwTextureRead("collisionsmoke", nil); gpCollisionSmokeRaster = RwTextureGetRaster(gpCollisionSmokeTex); - gpBulletHitTex = RwTextureRead("bullethitsmoke", NULL); + gpBulletHitTex = RwTextureRead("bullethitsmoke", nil); gpBulletHitRaster = RwTextureGetRaster(gpBulletHitTex); - gpGunShellTex = RwTextureRead("gunshell", NULL); + gpGunShellTex = RwTextureRead("gunshell", nil); gpGunShellRaster = RwTextureGetRaster(gpGunShellTex); - gpWakeOldTex = RwTextureRead("wake_old", NULL); + gpWakeOldTex = RwTextureRead("wake_old", nil); gpWakeOldRaster = RwTextureGetRaster(gpWakeOldTex); - gpPointlightTex = RwTextureRead("pointlight", NULL); + gpPointlightTex = RwTextureRead("pointlight", nil); gpPointlightRaster = RwTextureGetRaster(gpPointlightTex); CTxdStore::PopCurrentTxd(); @@ -451,7 +451,7 @@ void CParticle::Initialise() case PARTICLE_GUNSMOKE: case PARTICLE_SPLASH: - entry->m_ppRaster = NULL; + entry->m_ppRaster = nil; break; case PARTICLE_FLAME: @@ -584,7 +584,7 @@ void CParticle::Shutdown() { RwTextureDestroy(gpSmokeTex[i]); #ifdef GTA3_1_1_PATCH - gpSmokeTex[i] = NULL; + gpSmokeTex[i] = nil; #endif } @@ -592,7 +592,7 @@ void CParticle::Shutdown() { RwTextureDestroy(gpSmoke2Tex[i]); #ifdef GTA3_1_1_PATCH - gpSmoke2Tex[i] = NULL; + gpSmoke2Tex[i] = nil; #endif } @@ -600,7 +600,7 @@ void CParticle::Shutdown() { RwTextureDestroy(gpRubberTex[i]); #ifdef GTA3_1_1_PATCH - gpRubberTex[i] = NULL; + gpRubberTex[i] = nil; #endif } @@ -608,7 +608,7 @@ void CParticle::Shutdown() { RwTextureDestroy(gpRainSplashTex[i]); #ifdef GTA3_1_1_PATCH - gpRainSplashTex[i] = NULL; + gpRainSplashTex[i] = nil; #endif } @@ -616,7 +616,7 @@ void CParticle::Shutdown() { RwTextureDestroy(gpWatersprayTex[i]); #ifdef GTA3_1_1_PATCH - gpWatersprayTex[i] = NULL; + gpWatersprayTex[i] = nil; #endif } @@ -624,7 +624,7 @@ void CParticle::Shutdown() { RwTextureDestroy(gpExplosionMediumTex[i]); #ifdef GTA3_1_1_PATCH - gpExplosionMediumTex[i] = NULL; + gpExplosionMediumTex[i] = nil; #endif } @@ -632,7 +632,7 @@ void CParticle::Shutdown() { RwTextureDestroy(gpGunFlashTex[i]); #ifdef GTA3_1_1_PATCH - gpGunFlashTex[i] = NULL; + gpGunFlashTex[i] = nil; #endif } @@ -640,7 +640,7 @@ void CParticle::Shutdown() { RwTextureDestroy(gpRainDropTex[i]); #ifdef GTA3_1_1_PATCH - gpRainDropTex[i] = NULL; + gpRainDropTex[i] = nil; #endif } @@ -648,7 +648,7 @@ void CParticle::Shutdown() { RwTextureDestroy(gpRainSplashupTex[i]); #ifdef GTA3_1_1_PATCH - gpRainSplashupTex[i] = NULL; + gpRainSplashupTex[i] = nil; #endif } @@ -656,7 +656,7 @@ void CParticle::Shutdown() { RwTextureDestroy(gpBirdfrontTex[i]); #ifdef GTA3_1_1_PATCH - gpBirdfrontTex[i] = NULL; + gpBirdfrontTex[i] = nil; #endif } @@ -664,7 +664,7 @@ void CParticle::Shutdown() { RwTextureDestroy(gpCarDebrisTex[i]); #ifdef GTA3_1_1_PATCH - gpCarDebrisTex[i] = NULL; + gpCarDebrisTex[i] = nil; #endif } @@ -672,78 +672,78 @@ void CParticle::Shutdown() { RwTextureDestroy(gpCarSplashTex[i]); #ifdef GTA3_1_1_PATCH - gpCarSplashTex[i] = NULL; + gpCarSplashTex[i] = nil; #endif } RwTextureDestroy(gpFlame1Tex); #ifdef GTA3_1_1_PATCH - gpFlame1Tex = NULL; + gpFlame1Tex = nil; #endif RwTextureDestroy(gpFlame5Tex); #ifdef GTA3_1_1_PATCH - gpFlame5Tex = NULL; + gpFlame5Tex = nil; #endif RwTextureDestroy(gpRainDropSmallTex); #ifdef GTA3_1_1_PATCH - gpRainDropSmallTex = NULL; + gpRainDropSmallTex = nil; #endif RwTextureDestroy(gpBloodTex); #ifdef GTA3_1_1_PATCH - gpBloodTex = NULL; + gpBloodTex = nil; #endif RwTextureDestroy(gpLeafTex); #ifdef GTA3_1_1_PATCH - gpLeafTex = NULL; + gpLeafTex = nil; #endif RwTextureDestroy(gpCloudTex1); #ifdef GTA3_1_1_PATCH - gpCloudTex1 = NULL; + gpCloudTex1 = nil; #endif RwTextureDestroy(gpCloudTex4); #ifdef GTA3_1_1_PATCH - gpCloudTex4 = NULL; + gpCloudTex4 = nil; #endif RwTextureDestroy(gpBloodSmallTex); #ifdef GTA3_1_1_PATCH - gpBloodSmallTex = NULL; + gpBloodSmallTex = nil; #endif RwTextureDestroy(gpGungeTex); #ifdef GTA3_1_1_PATCH - gpGungeTex = NULL; + gpGungeTex = nil; #endif RwTextureDestroy(gpCollisionSmokeTex); #ifdef GTA3_1_1_PATCH - gpCollisionSmokeTex = NULL; + gpCollisionSmokeTex = nil; #endif RwTextureDestroy(gpBulletHitTex); #ifdef GTA3_1_1_PATCH - gpBulletHitTex = NULL; + gpBulletHitTex = nil; #endif RwTextureDestroy(gpGunShellTex); #ifdef GTA3_1_1_PATCH - gpGunShellTex = NULL; + gpGunShellTex = nil; #endif RwTextureDestroy(gpWakeOldTex); #ifdef GTA3_1_1_PATCH - gpWakeOldTex = NULL; + gpWakeOldTex = nil; #endif RwTextureDestroy(gpPointlightTex); #ifdef GTA3_1_1_PATCH - gpPointlightTex = NULL; + gpPointlightTex = nil; #endif int32 slot; @@ -775,18 +775,18 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe || type == PARTICLE_CARCOLLISION_DUST ) && nParticleCreationInterval & CTimer::GetFrameCounter() ) { - return NULL; + return nil; } CParticle *pParticle = m_pUnusedListHead; - if ( pParticle == NULL ) - return NULL; + if ( pParticle == nil ) + return nil; tParticleSystemData *psystem = &mod_ParticleSystemManager.m_aParticles[type]; if ( psystem->m_fCreateRange != 0.0f && psystem->m_fCreateRange < ( TheCamera.GetPosition() - vecPos ).MagnitudeSqr() ) - return NULL; + return nil; pParticle->m_fSize = psystem->m_fDefaultInitialRadius; @@ -918,13 +918,13 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe if ( !CWorld::ProcessVerticalLine( pParticle->m_vecPosition + CVector(0.0f, 0.0f, 0.5f), - -100.0f, point, entity, true, true, false, false, true, false, NULL) ) + -100.0f, point, entity, true, true, false, false, true, false, nil) ) { - return NULL; + return nil; } if ( point.point.z >= pParticle->m_vecPosition.z ) - return NULL; + return nil; pParticle->m_fZGround = point.point.z; bValidGroundFound = true; @@ -944,7 +944,7 @@ CParticle *CParticle::AddParticle(tParticleType type, CVector const &vecPos, CVe Z_Ground = CWorld::FindGroundZFor3DCoord(vecPos.x, vecPos.y, vecPos.z, (bool *)&bZFound); if ( bZFound == false ) - return NULL; + return nil; pParticle->m_fZGround = Z_Ground; } @@ -1009,13 +1009,13 @@ void CParticle::Update() { tParticleSystemData *psystem = &mod_ParticleSystemManager.m_aParticles[i]; CParticle *particle = psystem->m_pParticles; - CParticle *prevParticle = NULL; + CParticle *prevParticle = nil; bool bRemoveParticle; - if ( particle == NULL ) + if ( particle == nil ) continue; - for ( ; particle != NULL; _Next(particle, prevParticle, psystem, bRemoveParticle) ) + for ( ; particle != nil; _Next(particle, prevParticle, psystem, bRemoveParticle) ) { bRemoveParticle = false; @@ -1121,7 +1121,7 @@ void CParticle::Update() particle->m_vecPosition.y, 0.05f + particle->m_fZGround ), - CVector(0.0f, 0.0f, 0.0f), NULL, 0.0f, 0, 0, 0, 0); + CVector(0.0f, 0.0f, 0.0f), nil, 0.0f, 0, 0, 0, 0); } else { @@ -1132,7 +1132,7 @@ void CParticle::Update() particle->m_vecPosition.y, 0.05f + particle->m_fZGround ), - CVector(0.0f, 0.0f, 0.0f), NULL, 0.0f, 0, 0, 0, 0); + CVector(0.0f, 0.0f, 0.0f), nil, 0.0f, 0, 0, 0, 0); } continue; @@ -1156,7 +1156,7 @@ void CParticle::Update() particle->m_vecPosition.y, 0.05f + particle->m_fZGround ), - CVector(0.0f, 0.0f, 0.0f), NULL, 0.0f, 0, 0, 0, 0); + CVector(0.0f, 0.0f, 0.0f), nil, 0.0f, 0, 0, 0, 0); } else { @@ -1167,7 +1167,7 @@ void CParticle::Update() particle->m_vecPosition.y, 0.05f + particle->m_fZGround ), - CVector(0.0f, 0.0f, 0.0f), NULL, 0.0f, 0, 0, 0, 0); + CVector(0.0f, 0.0f, 0.0f), nil, 0.0f, 0, 0, 0, 0); } } @@ -1218,7 +1218,7 @@ void CParticle::Update() CEntity *entity; if ( CWorld::ProcessVerticalLine(particle->m_vecPosition, moveStep.z, point, entity, - true, true, false, false, true, false, NULL) ) + true, true, false, false, true, false, nil) ) { if ( moveStep.z <= point.point.z ) { @@ -1258,7 +1258,7 @@ void CParticle::Update() CGeneral::GetRandomNumberInRange(-0.02f, 0.02f), CGeneral::GetRandomNumberInRange(0.05f, 0.1f) ), - NULL, + nil, particle->m_fSize, color, particle->m_nRotationStep, 0, 0, 0); PlayOneShotScriptObject(_SOUND_BULLET_SHELL_HIT_GROUND_1, particle->m_vecPosition); @@ -1277,7 +1277,7 @@ void CParticle::Update() 0.05f + particle->m_fZGround ), CVector(0.0f, 0.0f, CGeneral::GetRandomNumberInRange(0.03f, 0.06f)), - NULL, + nil, particle->m_fSize, color, 0, 0, 0, 0); PlayOneShotScriptObject(_SOUND_BULLET_SHELL_HIT_GROUND_2, particle->m_vecPosition); @@ -1309,7 +1309,7 @@ void CParticle::Update() CEntity *entity; if ( CWorld::ProcessVerticalLine(particle->m_vecPosition, moveStep.z, point, entity, - true, false, false, false, true, false, NULL) ) + true, false, false, false, true, false, nil) ) { if ( moveStep.z <= point.point.z ) { @@ -1317,7 +1317,7 @@ void CParticle::Update() if ( psystem->m_Type == PARTICLE_HELI_ATTACK ) { bRemoveParticle = true; - AddParticle(PARTICLE_STEAM, moveStep, CVector(0.0f, 0.0f, 0.05f), NULL, 0.2f, 0, 0, 0, 0); + AddParticle(PARTICLE_STEAM, moveStep, CVector(0.0f, 0.0f, 0.05f), nil, 0.2f, 0, 0, 0, 0); continue; } } @@ -1444,7 +1444,7 @@ void CParticle::Render() uint32 flags = DRAW_OPAQUE; - RwRaster *prevFrame = NULL; + RwRaster *prevFrame = nil; for ( int32 i = 0; i < MAX_PARTICLES; i++ ) { @@ -1495,7 +1495,7 @@ void CParticle::Render() flags = psystem->Flags; } - if ( frames != NULL ) + if ( frames != nil ) { RwRaster *curFrame = *frames; if ( curFrame != prevFrame ) @@ -1507,14 +1507,14 @@ void CParticle::Render() } } - while ( particle != NULL ) + while ( particle != nil ) { bool canDraw = true; if ( particle->m_nAlpha == 0 ) canDraw = false; - if ( canDraw && psystem->m_nFinalAnimationFrame != 0 && frames != NULL ) + if ( canDraw && psystem->m_nFinalAnimationFrame != 0 && frames != nil ) { RwRaster *curFrame = frames[particle->m_nCurrentFrame]; if ( prevFrame != curFrame ) @@ -1754,7 +1754,7 @@ void CParticle::RemovePSystem(tParticleType type) tParticleSystemData *psystemdata = &mod_ParticleSystemManager.m_aParticles[type]; for ( CParticle *particle = psystemdata->m_pParticles; particle; particle = psystemdata->m_pParticles ) - RemoveParticle(particle, NULL, psystemdata); + RemoveParticle(particle, nil, psystemdata); } void CParticle::RemoveParticle(CParticle *pParticle, CParticle *pPrevParticle, tParticleSystemData *pPSystemData) @@ -1796,7 +1796,7 @@ void CParticle::AddJetExplosion(CVector const &vecPos, float fPower, float fSize CGeneral::GetRandomNumberInRange(-0.2f, 0.2f), CGeneral::GetRandomNumberInRange(-0.2f, 0.0f) ), - NULL, + nil, fSize, color, 0, 0, 0, 0); AddParticle(PARTICLE_EXPLOSION_MFAST, @@ -1807,7 +1807,7 @@ void CParticle::AddJetExplosion(CVector const &vecPos, float fPower, float fSize CGeneral::GetRandomNumberInRange(-0.04f, 0.04f), CGeneral::GetRandomNumberInRange(0.0f, 0.07f) ), - NULL, + nil, fSize, color, 0, 0, 0, 0); AddParticle(PARTICLE_EXPLOSION_MFAST, @@ -1818,7 +1818,7 @@ void CParticle::AddJetExplosion(CVector const &vecPos, float fPower, float fSize CGeneral::GetRandomNumberInRange(-0.04f, 0.04f), CGeneral::GetRandomNumberInRange(0.0f, 0.07f) ), - NULL, + nil, fSize, color, 0, 0, 0, 0); vecStepPos += vecRandOffset; @@ -1843,7 +1843,7 @@ void CParticle::AddYardieDoorSmoke(CVector const &vecPos, CMatrix const &matMatr AddParticle(PARTICLE_CARCOLLISION_DUST, pos, CVector(0.0f, 0.0f, 0.0f), - NULL, + nil, 0.3f, color, 0, 0, 0, 0); } } diff --git a/src/render/Particle.h b/src/render/Particle.h index 5db91727..92b6809e 100644 --- a/src/render/Particle.h +++ b/src/render/Particle.h @@ -65,7 +65,7 @@ public: static void Initialise(); static void Shutdown(); - static CParticle *AddParticle(tParticleType type, CVector const &vecPos, CVector const &vecDir, CEntity *pEntity = NULL, float fSize = 0.0f, int32 nRotationSpeed = 0, int32 nRotation = 0, int32 nCurFrame = 0, int32 nLifeSpan = 0); + static CParticle *AddParticle(tParticleType type, CVector const &vecPos, CVector const &vecDir, CEntity *pEntity = nil, float fSize = 0.0f, int32 nRotationSpeed = 0, int32 nRotation = 0, int32 nCurFrame = 0, int32 nLifeSpan = 0); static CParticle *AddParticle(tParticleType type, CVector const &vecPos, CVector const &vecDir, CEntity *pEntity, float fSize, RwRGBA const &color, int32 nRotationSpeed = 0, int32 nRotation = 0, int32 nCurFrame = 0, int32 nLifeSpan = 0); static void Update(); diff --git a/src/render/ParticleMgr.cpp b/src/render/ParticleMgr.cpp index 440ea9cb..7a1804de 100644 --- a/src/render/ParticleMgr.cpp +++ b/src/render/ParticleMgr.cpp @@ -19,7 +19,7 @@ void cParticleSystemMgr::Initialise() LoadParticleData(); for ( int32 i = 0; i < MAX_PARTICLES; i++ ) - m_aParticles[i].m_pParticles = NULL; + m_aParticles[i].m_pParticles = nil; } void cParticleSystemMgr::LoadParticleData() @@ -28,7 +28,7 @@ void cParticleSystemMgr::LoadParticleData() CFileMgr::LoadFile(ParticleFilename, work_buff, ARRAY_SIZE(work_buff), "r"); CFileMgr::SetDir(""); - tParticleSystemData *entry = NULL; + tParticleSystemData *entry = nil; int32 type = PARTICLE_FIRST; char *lineStart = (char *)work_buff; @@ -39,8 +39,8 @@ void cParticleSystemMgr::LoadParticleData() while ( true ) { - ASSERT(lineStart != NULL); - ASSERT(lineEnd != NULL); + ASSERT(lineStart != nil); + ASSERT(lineEnd != nil); while ( *lineEnd != '\n' ) ++lineEnd; @@ -64,7 +64,7 @@ void cParticleSystemMgr::LoadParticleData() char *value = strtok(line, delims); - ASSERT(value != NULL); + ASSERT(value != nil); do { @@ -73,7 +73,7 @@ void cParticleSystemMgr::LoadParticleData() case CFG_PARAM_PARTICLE_TYPE_NAME: ASSERT(type < MAX_PARTICLES); entry = &m_aParticles[type]; - ASSERT(entry != NULL); + ASSERT(entry != nil); entry->m_Type = (tParticleType)type++; strcpy(entry->m_aName, value); break; @@ -227,14 +227,14 @@ void cParticleSystemMgr::LoadParticleData() break; } - value = strtok(NULL, delims); + value = strtok(nil, delims); param++; if ( param > CFG_PARAM_LAST ) param = CFG_PARAM_FIRST; - } while ( value != NULL ); + } while ( value != nil ); } lineEnd++; diff --git a/src/skel/skeleton.cpp b/src/skel/skeleton.cpp index aa49d218..ecc0083d 100644 --- a/src/skel/skeleton.cpp +++ b/src/skel/skeleton.cpp @@ -303,12 +303,12 @@ RsRwInitialise(void *displayID) /* * Initialize debug message handling... */ - RsEventHandler(rsINITDEBUG, NULL); + RsEventHandler(rsINITDEBUG, nil); /* * Attach all plugins... */ - if (RsEventHandler(rsPLUGINATTACH, NULL) == rsEVENTERROR) + if (RsEventHandler(rsPLUGINATTACH, nil) == rsEVENTERROR) { return (FALSE); } @@ -316,7 +316,7 @@ RsRwInitialise(void *displayID) /* * Attach input devices... */ - if (RsEventHandler(rsINPUTDEVICEATTACH, NULL) == rsEVENTERROR) + if (RsEventHandler(rsINPUTDEVICEATTACH, nil) == rsEVENTERROR) { return (FALSE); } @@ -346,7 +346,7 @@ RsRwInitialise(void *displayID) /* * Register loaders for an image with a particular file extension... */ - RsEventHandler(rsREGISTERIMAGELOADER, NULL); + RsEventHandler(rsREGISTERIMAGELOADER, nil); psNativeTextureSupport(); @@ -390,17 +390,17 @@ RsInitialise(void) /* setup the keyboard */ RsGlobal.keyboard.inputDeviceType = rsKEYBOARD; - RsGlobal.keyboard.inputEventHandler = 0; + RsGlobal.keyboard.inputEventHandler = nil; RsGlobal.keyboard.used = FALSE; /* setup the mouse */ RsGlobal.mouse.inputDeviceType = rsMOUSE; - RsGlobal.mouse.inputEventHandler = 0; + RsGlobal.mouse.inputEventHandler = nil; RsGlobal.mouse.used = FALSE; /* setup the pad */ RsGlobal.pad.inputDeviceType = rsPAD; - RsGlobal.pad.inputEventHandler = 0; + RsGlobal.pad.inputEventHandler = nil; RsGlobal.pad.used = FALSE; result = psInitialise(); diff --git a/src/skel/win/win.cpp b/src/skel/win/win.cpp index 2943475b..9638e53a 100644 --- a/src/skel/win/win.cpp +++ b/src/skel/win/win.cpp @@ -93,16 +93,16 @@ static psGlobalType &PsGlobal = *(psGlobalType*)0x72CF60; #include "Frontend.h" #include "Game.h" #include "PCSave.h" -#include "Sprite2D.h" +#include "Sprite2d.h" VALIDATE_SIZE(psGlobalType, 0x28); // DirectShow interfaces -IGraphBuilder *pGB = NULL; -IMediaControl *pMC = NULL; -IMediaEventEx *pME = NULL; -IVideoWindow *pVW = NULL; -IMediaSeeking *pMS = NULL; +IGraphBuilder *pGB = nil; +IMediaControl *pMC = nil; +IMediaEventEx *pME = nil; +IVideoWindow *pVW = nil; +IMediaSeeking *pMS = nil; DWORD dwDXVersion; DWORD _dwMemTotalPhys; @@ -169,13 +169,13 @@ void _psCreateFolder(LPCSTR path) { HANDLE hfle = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, - NULL, + nil, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_ATTRIBUTE_NORMAL, - NULL); + nil); if ( hfle == INVALID_HANDLE_VALUE ) - CreateDirectory(path, NULL); + CreateDirectory(path, nil); else CloseHandle(hfle); } @@ -304,7 +304,7 @@ psMouseSetPos(RwV2d *pos) RwMemoryFunctions* psGetMemoryFunctions(void) { - return 0; + return nil; } /* @@ -344,9 +344,9 @@ InitApplication(HANDLE instance) windowClass.cbClsExtra = 0; windowClass.cbWndExtra = 0; windowClass.hInstance = (HINSTANCE)instance; - windowClass.hIcon = NULL; - windowClass.hCursor = LoadCursor(NULL, IDC_ARROW); - windowClass.hbrBackground = NULL; + windowClass.hIcon = nil; + windowClass.hCursor = LoadCursor(nil, IDC_ARROW); + windowClass.hbrBackground = nil; windowClass.lpszMenuName = NULL; windowClass.lpszClassName = AppClassName; @@ -382,7 +382,7 @@ InitInstance(HANDLE instance) WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, rect.right - rect.left, rect.bottom - rect.top, - (HWND)NULL, (HMENU)NULL, (HINSTANCE)instance, NULL); + (HWND)nil, (HMENU)nil, (HINSTANCE)instance, nil); } void _GetVideoMemInfo(LPDWORD total, LPDWORD avaible) @@ -390,7 +390,7 @@ void _GetVideoMemInfo(LPDWORD total, LPDWORD avaible) HRESULT hr; LPDIRECTDRAW7 pDD7; - hr = DirectDrawCreateEx(NULL, (VOID**)&pDD7, IID_IDirectDraw7, NULL); + hr = DirectDrawCreateEx(nil, (VOID**)&pDD7, IID_IDirectDraw7, nil); if ( FAILED(hr) ) return; @@ -430,15 +430,15 @@ typedef HRESULT(WINAPI * DIRECTDRAWCREATEEX)( GUID*, VOID**, REFIID, IUnknown* ) DWORD GetDXVersion() { DIRECTDRAWCREATEEX DirectDrawCreateEx = NULL; - HINSTANCE hDDrawDLL = NULL; - HINSTANCE hD3D8DLL = NULL; + HINSTANCE hDDrawDLL = nil; + HINSTANCE hD3D8DLL = nil; HINSTANCE hDPNHPASTDLL = NULL; DWORD dwDXVersion = 0; //HRESULT hr; // First see if DDRAW.DLL even exists. hDDrawDLL = LoadLibrary( "DDRAW.DLL" ); - if( hDDrawDLL == NULL ) + if( hDDrawDLL == nil ) { dwDXVersion = 0; OutputDebugString( "Couldn't LoadLibrary DDraw\r\n" ); @@ -454,15 +454,15 @@ DWORD GetDXVersion() LPDIRECTDRAW7 pDD7; DirectDrawCreateEx = (DIRECTDRAWCREATEEX)GetProcAddress( hDDrawDLL, "DirectDrawCreateEx" ); - if( NULL == DirectDrawCreateEx ) + if( nil == DirectDrawCreateEx ) { FreeLibrary( hDDrawDLL ); OutputDebugString( "Couldn't GetProcAddress DirectDrawCreateEx\r\n" ); return dwDXVersion; } - if( FAILED( DirectDrawCreateEx( NULL, (VOID**)&pDD7, IID_IDirectDraw7, - NULL ) ) ) + if( FAILED( DirectDrawCreateEx( nil, (VOID**)&pDD7, IID_IDirectDraw7, + nil ) ) ) { FreeLibrary( hDDrawDLL ); OutputDebugString( "Couldn't DirectDrawCreateEx\r\n" ); @@ -480,7 +480,7 @@ DWORD GetDXVersion() // Simply see if D3D8.dll exists. hD3D8DLL = LoadLibrary( "D3D8.DLL" ); - if( hD3D8DLL == NULL ) + if( hD3D8DLL == nil ) { FreeLibrary( hDDrawDLL ); OutputDebugString( "Couldn't LoadLibrary D3D8.DLL\r\n" ); @@ -497,7 +497,7 @@ DWORD GetDXVersion() // Simply see if dpnhpast.dll exists. hDPNHPASTDLL = LoadLibrary( "dpnhpast.dll" ); - if( hDPNHPASTDLL == NULL ) + if( hDPNHPASTDLL == nil ) { FreeLibrary( hDPNHPASTDLL ); OutputDebugString( "Couldn't LoadLibrary dpnhpast.dll\r\n" ); @@ -617,10 +617,10 @@ psInitialise(void) PsGlobal.fullScreen = FALSE; - PsGlobal.dinterface = NULL; - PsGlobal.mouse = NULL; - PsGlobal.joy1 = NULL; - PsGlobal.joy2 = NULL; + PsGlobal.dinterface = nil; + PsGlobal.mouse = nil; + PsGlobal.joy1 = nil; + PsGlobal.joy2 = nil; CFileMgr::Initialise(); @@ -681,7 +681,7 @@ psInitialise(void) if ( _dwOperatingSystemVersion == OS_WIN95 ) { - MessageBoxW(NULL, + MessageBoxW(nil, (LPCWSTR)TheText.Get("WIN_95"), // Grand Theft Auto III cannot run on Windows 95 (LPCWSTR)TheText.Get("WIN_TTL"), // Grand Theft Auto III MB_OK); @@ -691,7 +691,7 @@ psInitialise(void) if ( dwDXVersion < 0x801 ) { - MessageBoxW(NULL, + MessageBoxW(nil, (LPCWSTR)TheText.Get("WIN_DX"), // Grand Theft Auto III requires at least DirectX version 8.1 (LPCWSTR)TheText.Get("WIN_TTL"), // Grand Theft Auto III MB_OK); @@ -716,7 +716,7 @@ psInitialise(void) if ( _dwMemAvailVideo < (12 * 1024 * 1024) /*12 MB*/ ) { - MessageBoxW(NULL, + MessageBoxW(nil, (LPCWSTR)TheText.Get("WIN_VDM"), // Grand Theft Auto III requires at least 12MB of available video memory (LPCWSTR)TheText.Get("WIN_TTL"), // Grand Theft Auto III MB_OK); @@ -759,7 +759,7 @@ RwBool _psFreeVideoModeList() numModes = _psGetNumVideModes(); - if ( _VMList == NULL ) + if ( _VMList == nil ) return TRUE; for ( i = 0; i < numModes; i++ ) @@ -769,7 +769,7 @@ RwBool _psFreeVideoModeList() RwFree(_VMList); - _VMList = NULL; + _VMList = nil; return TRUE; } @@ -782,7 +782,7 @@ RwChar **_psGetVideoModeList() RwInt32 numModes; RwInt32 i; - if ( _VMList != NULL ) + if ( _VMList != nil ) { return _VMList; } @@ -810,10 +810,10 @@ RwChar **_psGetVideoModeList() rwsprintf(_VMList[i],"%lu X %lu X %lu", vm.width, vm.height, vm.depth); } else - _VMList[i] = NULL; + _VMList[i] = nil; } else - _VMList[i] = NULL; + _VMList[i] = nil; } return _VMList; @@ -824,7 +824,7 @@ RwChar **_psGetVideoModeList() */ void _psSelectScreenVM(RwInt32 videoMode) { - RwTexDictionarySetCurrent( NULL ); + RwTexDictionarySetCurrent( nil ); FrontEndMenuManager.UnloadTextures(); @@ -834,7 +834,7 @@ void _psSelectScreenVM(RwInt32 videoMode) ShowWindow(PSGLOBAL(window), SW_HIDE); - MessageBoxW(NULL, + MessageBoxW(nil, (LPCWSTR)TheText.Get("WIN_RSZ"), // Failed to select new screen resolution (LPCWSTR)TheText.Get("WIN_TTL"), // Grand Theft Auto III MB_OK); @@ -850,7 +850,7 @@ void WaitForState(FILTER_STATE State) { HRESULT hr; - ASSERT(pMC != NULL); + ASSERT(pMC != nil); // Make sure we have switched to the required state LONG lfs; @@ -868,7 +868,7 @@ void HandleGraphEvent(void) LONG evCode, evParam1, evParam2; HRESULT hr=S_OK; - ASSERT(pME != NULL); + ASSERT(pME != nil); // Process all queued events while (SUCCEEDED(pME->GetEvent(&evCode, (LONG_PTR *)&evParam1, @@ -922,7 +922,7 @@ MainWndProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam) { ShowCursor(FALSE); - SetCursor(NULL); + SetCursor(nil); break; // is this correct ? } @@ -1111,14 +1111,14 @@ MainWndProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam) case GS_LOGO_MPEG: case GS_INTRO_MPEG: { - ASSERT(pMC != NULL); + ASSERT(pMC != nil); LONG state; pMC->GetState(10, &state); if ( !(BOOL)wParam ) // losing activation { - if ( state == State_Running && pMC != NULL ) + if ( state == State_Running && pMC != nil ) { HRESULT hr = pMC->Pause(); @@ -1132,7 +1132,7 @@ MainWndProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam) { CenterVideo(); - if ( state != State_Running && pMC != NULL ) + if ( state != State_Running && pMC != nil ) { HRESULT hr = pMC->Run(); @@ -1183,7 +1183,7 @@ MainWndProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam) /* * Quit message handling. */ - ClipCursor(NULL); + ClipCursor(nil); _InputShutdown(); @@ -1260,7 +1260,7 @@ UINT GetBestRefreshRate(UINT width, UINT height, UINT depth) { LPDIRECT3D8 d3d = Direct3DCreate8(D3D_SDK_VERSION); - ASSERT(d3d != NULL); + ASSERT(d3d != nil); INT refreshRate = -1; D3DFORMAT format; @@ -1367,7 +1367,7 @@ psSelectDevice() if ( !modeFound ) { - MessageBox(NULL, "Cannot find 640x480 video mode", "GTA3", MB_OK); + MessageBox(nil, "Cannot find 640x480 video mode", "GTA3", MB_OK); return FALSE; } } @@ -1417,7 +1417,7 @@ RwBool _psSetVideoMode(RwInt32 subSystem, RwInt32 videoMode) { RwInitialised = FALSE; - RsEventHandler(rsRWTERMINATE, NULL); + RsEventHandler(rsRWTERMINATE, nil); GcurSel = subSystem; GcurSelVM = videoMode; @@ -1544,11 +1544,11 @@ void InitialiseLanguage() #pragma warning( disable : 4302) WORD primUserLCID = PRIMARYLANGID(GetSystemDefaultLCID()); WORD primSystemLCID = PRIMARYLANGID(GetUserDefaultLCID()); - WORD primLayout = PRIMARYLANGID(GetKeyboardLayout(0)); + WORD primLayout = PRIMARYLANGID((DWORD)GetKeyboardLayout(0)); WORD subUserLCID = SUBLANGID(GetSystemDefaultLCID()); WORD subSystemLCID = SUBLANGID(GetUserDefaultLCID()); - WORD subLayout = SUBLANGID(GetKeyboardLayout(0)); + WORD subLayout = SUBLANGID((DWORD)GetKeyboardLayout(0)); #pragma warning( pop ) if ( primUserLCID == LANG_GERMAN @@ -1648,7 +1648,7 @@ void CenterVideo(void) HRESULT hr = S_OK; RECT rect; - ASSERT(pVW != NULL); + ASSERT(pVW != nil); GetClientRect(PSGLOBAL(window), &rect); @@ -1674,16 +1674,16 @@ void PlayMovieInWindow(int cmdShow, LPTSTR szFile) MultiByteToWideChar(CP_ACP, 0, szFile, -1, wFileName, sizeof(wFileName) - 1); // Initialize COM - JIF(CoInitialize(NULL)); + JIF(CoInitialize(nil)); // Get the interface for DirectShow's GraphBuilder - JIF(CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, + JIF(CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC, IID_IGraphBuilder, (void **)&pGB)); if(SUCCEEDED(hr)) { // Have the graph builder construct its the appropriate graph automatically - JIF(pGB->RenderFile(&wFileName[0], NULL)); + JIF(pGB->RenderFile(&wFileName[0], nil)); // QueryInterface for DirectShow interfaces JIF(pGB->QueryInterface(IID_IMediaControl, (void **)&pMC)); @@ -1707,10 +1707,10 @@ void PlayMovieInWindow(int cmdShow, LPTSTR szFile) SetFocus(PSGLOBAL(window)); } - ASSERT(pGB != NULL); - ASSERT(pVW != NULL); - ASSERT(pME != NULL); - ASSERT(pMC != NULL); + ASSERT(pGB != nil); + ASSERT(pVW != nil); + ASSERT(pME != nil); + ASSERT(pMC != nil); if(FAILED(hr)) CloseClip(); @@ -1750,7 +1750,7 @@ void CloseClip(void) void HandleExit() { MSG message; - while ( PeekMessage(&message, NULL, 0U, 0U, PM_REMOVE|PM_NOYIELD) ) + while ( PeekMessage(&message, nil, 0U, 0U, PM_REMOVE|PM_NOYIELD) ) { if( message.message == WM_QUIT ) { @@ -1778,13 +1778,13 @@ _WinMain(HINSTANCE instance, RwInt32 argc, i; RwChar **argv; - SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, NULL, SPIF_SENDCHANGE); + SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, nil, SPIF_SENDCHANGE); /* * Initialize the platform independent data. * This will in turn initialize the platform specific data... */ - if( RsEventHandler(rsINITIALISE, NULL) == rsEVENTERROR ) + if( RsEventHandler(rsINITIALISE, nil) == rsEVENTERROR ) { return FALSE; } @@ -1822,7 +1822,7 @@ _WinMain(HINSTANCE instance, * Create the window... */ PSGLOBAL(window) = InitInstance(instance); - if( PSGLOBAL(window) == NULL ) + if( PSGLOBAL(window) == nil ) { return FALSE; } @@ -1841,7 +1841,7 @@ _WinMain(HINSTANCE instance, ControlsManager.InitDefaultControlConfigMouse(MousePointerStateHelper.GetMouseSetUp()); SetWindowLong(PSGLOBAL(window), GWL_STYLE, WS_POPUP); - SetWindowPos(PSGLOBAL(window), 0, 0, 0, 0, 0, + SetWindowPos(PSGLOBAL(window), nil, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER| SWP_FRAMECHANGED); @@ -1852,7 +1852,7 @@ _WinMain(HINSTANCE instance, { DestroyWindow(PSGLOBAL(window)); - RsEventHandler(rsTERMINATE, NULL); + RsEventHandler(rsTERMINATE, nil); return FALSE; } @@ -1880,9 +1880,9 @@ _WinMain(HINSTANCE instance, RsEventHandler(rsCAMERASIZE, &r); } - SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, FALSE, NULL, SPIF_SENDCHANGE); - SystemParametersInfo(SPI_SETPOWEROFFACTIVE, FALSE, NULL, SPIF_SENDCHANGE); - SystemParametersInfo(SPI_SETLOWPOWERACTIVE, FALSE, NULL, SPIF_SENDCHANGE); + SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, FALSE, nil, SPIF_SENDCHANGE); + SystemParametersInfo(SPI_SETPOWEROFFACTIVE, FALSE, nil, SPIF_SENDCHANGE); + SystemParametersInfo(SPI_SETLOWPOWERACTIVE, FALSE, nil, SPIF_SENDCHANGE); STICKYKEYS SavedStickyKeys; @@ -1924,7 +1924,7 @@ _WinMain(HINSTANCE instance, gGameState = GS_INIT_FRONTEND; TRACE("gGameState = GS_INIT_FRONTEND"); - LoadingScreen(NULL, NULL, "loadsc0"); + LoadingScreen(nil, nil, "loadsc0"); if ( !CGame::InitialiseOnceAfterRW() ) RsGlobal.quit = TRUE; #endif @@ -1951,7 +1951,7 @@ _WinMain(HINSTANCE instance, while( !RsGlobal.quit && !FrontEndMenuManager.m_bStartGameLoading ) { - if( PeekMessage(&message, NULL, 0U, 0U, PM_REMOVE|PM_NOYIELD) ) + if( PeekMessage(&message, nil, 0U, 0U, PM_REMOVE|PM_NOYIELD) ) { if( message.message == WM_QUIT ) { @@ -2044,7 +2044,7 @@ _WinMain(HINSTANCE instance, CloseClip(); CoUninitialize(); - LoadingScreen(NULL, NULL, "loadsc0"); + LoadingScreen(nil, nil, "loadsc0"); if ( !CGame::InitialiseOnceAfterRW() ) RsGlobal.quit = TRUE; @@ -2056,7 +2056,7 @@ _WinMain(HINSTANCE instance, case GS_INIT_FRONTEND: { - LoadingScreen(NULL, NULL, "loadsc0"); + LoadingScreen(nil, nil, "loadsc0"); FrontEndMenuManager.m_bGameNotLoaded = true; @@ -2079,7 +2079,7 @@ _WinMain(HINSTANCE instance, GetWindowPlacement(PSGLOBAL(window), &wp); if ( wp.showCmd != SW_SHOWMINIMIZED ) - RsEventHandler(rsFRONTENDIDLE, NULL); + RsEventHandler(rsFRONTENDIDLE, nil); if ( !FrontEndMenuManager.m_bMenuActive || FrontEndMenuManager.m_bLoadingSavedGame ) { @@ -2191,7 +2191,7 @@ _WinMain(HINSTANCE instance, /* * Tidy up the 3D (RenderWare) components of the application... */ - RsEventHandler(rsRWTERMINATE, NULL); + RsEventHandler(rsRWTERMINATE, nil); /* * Kill the window... @@ -2201,7 +2201,7 @@ _WinMain(HINSTANCE instance, /* * Free the platform dependent data... */ - RsEventHandler(rsTERMINATE, NULL); + RsEventHandler(rsTERMINATE, nil); /* * Free the argv strings... @@ -2211,9 +2211,9 @@ _WinMain(HINSTANCE instance, ShowCursor(TRUE); SystemParametersInfo(SPI_SETSTICKYKEYS, sizeof(STICKYKEYS), &SavedStickyKeys, SPIF_SENDCHANGE); - SystemParametersInfo(SPI_SETPOWEROFFACTIVE, TRUE, NULL, SPIF_SENDCHANGE); - SystemParametersInfo(SPI_SETLOWPOWERACTIVE, TRUE, NULL, SPIF_SENDCHANGE); - SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, TRUE, NULL, SPIF_SENDCHANGE); + SystemParametersInfo(SPI_SETPOWEROFFACTIVE, TRUE, nil, SPIF_SENDCHANGE); + SystemParametersInfo(SPI_SETLOWPOWERACTIVE, TRUE, nil, SPIF_SENDCHANGE); + SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, TRUE, nil, SPIF_SENDCHANGE); SetErrorMode(0); @@ -2233,8 +2233,8 @@ HRESULT _InputInitialise() HRESULT hr; // Create a DInput object - if( FAILED( hr = DirectInput8Create( GetModuleHandle(NULL), DIRECTINPUT_VERSION, - IID_IDirectInput8, (VOID**)&PSGLOBAL(dinterface), NULL ) ) ) + if( FAILED( hr = DirectInput8Create( GetModuleHandle(nil), DIRECTINPUT_VERSION, + IID_IDirectInput8, (VOID**)&PSGLOBAL(dinterface), nil ) ) ) return hr; return S_OK; @@ -2245,7 +2245,7 @@ HRESULT _InputInitialiseMouse() HRESULT hr; // Obtain an interface to the system mouse device. - if( FAILED( hr = PSGLOBAL(dinterface)->CreateDevice( GUID_SysMouse, &PSGLOBAL(mouse), NULL ) ) ) + if( FAILED( hr = PSGLOBAL(dinterface)->CreateDevice( GUID_SysMouse, &PSGLOBAL(mouse), nil ) ) ) return hr; // Set the data format to "mouse format" - a predefined data format @@ -2277,11 +2277,11 @@ HRESULT CapturePad(RwInt32 padID) { HRESULT hr; DIJOYSTATE2 js; - LPDIRECTINPUTDEVICE8 pPad = NULL; + LPDIRECTINPUTDEVICE8 pPad = nil; pPad = ( padID == 0 ) ? PSGLOBAL(joy1) : PSGLOBAL(joy2); - if ( NULL == pPad ) + if ( nil == pPad ) return S_OK; // Poll the device to read the current state @@ -2331,7 +2331,7 @@ HRESULT CapturePad(RwInt32 padID) RsPadEventHandler(rsPADBUTTONUP, (void *)&bs); - bool deviceAvailable = pPad != NULL; + bool deviceAvailable = pPad != nil; if ( deviceAvailable ) { @@ -2393,7 +2393,7 @@ void _InputInitialiseJoys() _InputAddJoys(); - if ( PSGLOBAL(joy1) != NULL ) + if ( PSGLOBAL(joy1) != nil ) { devCaps.dwSize = sizeof(DIDEVCAPS); PSGLOBAL(joy1)->GetCapabilities(&devCaps); @@ -2411,7 +2411,7 @@ void _InputInitialiseJoys() ControlsManager.InitDefaultControlConfigJoyPad(devCaps.dwButtons); } - if ( PSGLOBAL(joy2) != NULL ) + if ( PSGLOBAL(joy2) != nil ) { PSGLOBAL(joy2)->GetProperty(DIPROP_VIDPID, (LPDIPROPHEADER)&prop); AllValidWinJoys.m_aJoys[1].m_nVendorID = LOWORD(prop.dwData); @@ -2440,7 +2440,7 @@ HRESULT _InputAddJoyStick(LPDIRECTINPUTDEVICE8 lpDevice, INT num) // get the info about the object from the device range.diph.dwObj = DIJOFS_X; - if ( lpDevice != NULL ) + if ( lpDevice != nil ) { if ( SUCCEEDED( lpDevice->GetObjectInfo( &objInst, DIJOFS_X, DIPH_BYOFFSET ) ) ) { @@ -2452,7 +2452,7 @@ HRESULT _InputAddJoyStick(LPDIRECTINPUTDEVICE8 lpDevice, INT num) } range.diph.dwObj = DIJOFS_Y; - if ( lpDevice != NULL ) + if ( lpDevice != nil ) { if ( SUCCEEDED( lpDevice->GetObjectInfo( &objInst, DIJOFS_Y, DIPH_BYOFFSET ) ) ) { @@ -2464,7 +2464,7 @@ HRESULT _InputAddJoyStick(LPDIRECTINPUTDEVICE8 lpDevice, INT num) } range.diph.dwObj = DIJOFS_Z; - if ( lpDevice != NULL ) + if ( lpDevice != nil ) { if ( SUCCEEDED( lpDevice->GetObjectInfo( &objInst, DIJOFS_Z, DIPH_BYOFFSET ) ) ) { @@ -2476,7 +2476,7 @@ HRESULT _InputAddJoyStick(LPDIRECTINPUTDEVICE8 lpDevice, INT num) } range.diph.dwObj = DIJOFS_RZ; - if ( lpDevice != NULL ) + if ( lpDevice != nil ) { if ( SUCCEEDED( lpDevice->GetObjectInfo( &objInst, DIJOFS_RZ, DIPH_BYOFFSET ) ) ) { @@ -2495,17 +2495,17 @@ HRESULT _InputAddJoys() { HRESULT hr; - hr = PSGLOBAL(dinterface)->EnumDevices(DI8DEVCLASS_GAMECTRL, _InputEnumDevicesCallback, NULL, DIEDFL_ATTACHEDONLY ); + hr = PSGLOBAL(dinterface)->EnumDevices(DI8DEVCLASS_GAMECTRL, _InputEnumDevicesCallback, nil, DIEDFL_ATTACHEDONLY ); if( FAILED(hr) ) return hr; - if ( PSGLOBAL(joy1) == NULL ) + if ( PSGLOBAL(joy1) == nil ) return S_FALSE; _InputAddJoyStick(PSGLOBAL(joy1), 0); - if ( PSGLOBAL(joy2) == NULL ) + if ( PSGLOBAL(joy2) == nil ) return S_OK; // we have one device already so return OK and ignore second _InputAddJoyStick(PSGLOBAL(joy2), 1); @@ -2517,7 +2517,7 @@ HRESULT _InputGetMouseState(DIMOUSESTATE2 *state) { HRESULT hr; - if ( PSGLOBAL(mouse) == NULL ) + if ( PSGLOBAL(mouse) == nil ) return S_FALSE; // Get the input's device state, and put the state in dims @@ -2557,7 +2557,7 @@ BOOL CALLBACK _InputEnumDevicesCallback( const DIDEVICEINSTANCE* pdidInstance, V static INT Count = 0; - LPDIRECTINPUTDEVICE8 pJoystick = NULL; + LPDIRECTINPUTDEVICE8 pJoystick = nil; if ( Count == 0 ) pJoystick = PSGLOBAL(joy1); @@ -2565,7 +2565,7 @@ BOOL CALLBACK _InputEnumDevicesCallback( const DIDEVICEINSTANCE* pdidInstance, V pJoystick = PSGLOBAL(joy2); // Obtain an interface to the enumerated joystick. - hr = PSGLOBAL(dinterface)->CreateDevice( pdidInstance->guidInstance, &pJoystick, NULL ); + hr = PSGLOBAL(dinterface)->CreateDevice( pdidInstance->guidInstance, &pJoystick, nil ); // If it failed, then we can't use this joystick. (Maybe the user unplugged // it while we were in the middle of enumerating it.) From e2bd3573b4d44b8f80197d8de98fcfc91e2229b8 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sun, 30 Jun 2019 13:59:55 +0300 Subject: [PATCH 16/17] PlayBackThisFrameInterpolation and all it required... --- src/BulletTraces.cpp | 4 + src/BulletTraces.h | 2 + src/Camera.cpp | 2 + src/Camera.h | 2 + src/EmergencyPed.cpp | 7 + src/Fire.cpp | 5 + src/Fire.h | 23 +++ src/MloInstance.cpp | 7 + src/MloInstance.h | 9 ++ src/ParticleObject.cpp | 7 +- src/ParticleObject.h | 6 +- src/audio/DMAudio.cpp | 1 + src/audio/DMAudio.h | 2 +- src/control/CarCtrl.cpp | 2 + src/control/CarCtrl.h | 2 + src/control/Replay.cpp | 249 ++++++++++++++++++++++++++++++++ src/control/Replay.h | 4 + src/entities/Automobile.cpp | 13 +- src/entities/Automobile.h | 3 + src/entities/Boat.cpp | 14 ++ src/entities/Boat.h | 4 + src/entities/Building.cpp | 1 + src/entities/Building.h | 1 + src/entities/CivilianPed.cpp | 14 ++ src/entities/CivilianPed.h | 3 + src/entities/CopPed.cpp | 14 ++ src/entities/CopPed.h | 5 + src/entities/CutsceneObject.cpp | 1 + src/entities/CutsceneObject.h | 2 +- src/entities/Dummy.cpp | 1 + src/entities/Dummy.h | 1 + src/entities/DummyObject.cpp | 4 + src/entities/DummyObject.h | 1 + src/entities/EmergencyPed.h | 2 + src/entities/Entity.cpp | 2 + src/entities/Entity.h | 2 + src/entities/Heli.cpp | 10 ++ src/entities/Heli.h | 4 + src/entities/Object.cpp | 1 + src/entities/Object.h | 1 + src/entities/Ped.cpp | 59 ++++++++ src/entities/Ped.h | 15 +- src/entities/Physical.cpp | 1 + src/entities/Physical.h | 1 + src/entities/Plane.cpp | 19 +++ src/entities/Plane.h | 7 + src/entities/PlayerPed.cpp | 9 ++ src/entities/PlayerPed.h | 3 + src/entities/Projectile.cpp | 7 + src/entities/Projectile.h | 11 ++ src/entities/Train.cpp | 14 ++ src/entities/Train.h | 6 + src/entities/Treadable.cpp | 5 + src/entities/Treadable.h | 1 + src/entities/Vehicle.cpp | 50 +++++++ src/entities/Vehicle.h | 10 +- src/math/Matrix.h | 15 ++ src/templates.h | 2 +- 58 files changed, 662 insertions(+), 11 deletions(-) create mode 100644 src/EmergencyPed.cpp create mode 100644 src/Fire.cpp create mode 100644 src/Fire.h create mode 100644 src/MloInstance.cpp create mode 100644 src/MloInstance.h create mode 100644 src/entities/Boat.cpp create mode 100644 src/entities/CivilianPed.cpp create mode 100644 src/entities/CopPed.cpp create mode 100644 src/entities/Plane.cpp create mode 100644 src/entities/Projectile.cpp create mode 100644 src/entities/Projectile.h create mode 100644 src/entities/Train.cpp diff --git a/src/BulletTraces.cpp b/src/BulletTraces.cpp index a873875c..e7348a7b 100644 --- a/src/BulletTraces.cpp +++ b/src/BulletTraces.cpp @@ -1,3 +1,7 @@ +#include "common.h" +#include "patcher.h" #include "BulletTraces.h" CBulletTrace (&CBulletTraces::aTraces)[16] = *(CBulletTrace(*)[16])*(uintptr*)0x72B1B8; + +WRAPPER void CBulletTraces::Init(void) { EAXJMP(0x518DE0); } diff --git a/src/BulletTraces.h b/src/BulletTraces.h index 34d2bcc6..5a37c53c 100644 --- a/src/BulletTraces.h +++ b/src/BulletTraces.h @@ -6,4 +6,6 @@ class CBulletTraces { public: static CBulletTrace(&aTraces)[16]; + + static void Init(void); }; diff --git a/src/Camera.cpp b/src/Camera.cpp index 368a77d1..8cb6a3b8 100644 --- a/src/Camera.cpp +++ b/src/Camera.cpp @@ -1282,4 +1282,6 @@ STARTPATCHES InjectHook(0x45E3A0, &CCam::Process_FollowPed, PATCH_JUMP); InjectHook(0x45BE60, &CCam::Process_BehindCar, PATCH_JUMP); InjectHook(0x45C090, &CCam::Process_Cam_On_A_String, PATCH_JUMP); + + InjectHook(0x473250, &CCamera::dtor, PATCH_JUMP); ENDPATCHES diff --git a/src/Camera.h b/src/Camera.h index 6669ff13..2b1f778d 100644 --- a/src/Camera.h +++ b/src/Camera.h @@ -459,6 +459,8 @@ int m_iModeObbeCamIsInForCar; void RenderMotionBlur(void); void DrawBordersForWideScreen(void); + + void dtor(void) { this->CCamera::~CCamera(); } }; static_assert(offsetof(CCamera, m_WideScreenOn) == 0x70, "CCamera: error"); static_assert(offsetof(CCamera, WorldViewerBeingUsed) == 0x75, "CCamera: error"); diff --git a/src/EmergencyPed.cpp b/src/EmergencyPed.cpp new file mode 100644 index 00000000..7b847896 --- /dev/null +++ b/src/EmergencyPed.cpp @@ -0,0 +1,7 @@ +#include "common.h" +#include "patcher.h" +#include "EmergencyPed.h" + +STARTPATCHES +InjectHook(0x4C2EF0, &CEmergencyPed::dtor, PATCH_JUMP); +ENDPATCHES \ No newline at end of file diff --git a/src/Fire.cpp b/src/Fire.cpp new file mode 100644 index 00000000..05d72199 --- /dev/null +++ b/src/Fire.cpp @@ -0,0 +1,5 @@ +#include "common.h" +#include "patcher.h" +#include "Fire.h" + +WRAPPER void CFire::Extinguish(void) { EAXJMP(0x479D40); } \ No newline at end of file diff --git a/src/Fire.h b/src/Fire.h new file mode 100644 index 00000000..c7f83fd8 --- /dev/null +++ b/src/Fire.h @@ -0,0 +1,23 @@ +#pragma once +#include "common.h" +#include "Entity.h" + +class CFire +{ + char m_bIsOngoing; + char m_bExists; + char m_bPropogationFlag; + char m_bAudioSet; + CVector m_vecPos; + CEntity *m_pEntity; + CEntity *m_pSource; + int m_nExtinguishTime; + int m_nStartTime; + int field_20; + int field_24; + int field_28; + float field_2C; + +public: + void Extinguish(void); +}; \ No newline at end of file diff --git a/src/MloInstance.cpp b/src/MloInstance.cpp new file mode 100644 index 00000000..dbd83727 --- /dev/null +++ b/src/MloInstance.cpp @@ -0,0 +1,7 @@ +#include "common.h" +#include "patcher.h" +#include "MloInstance.h" + +STARTPATCHES +InjectHook(0x50BE90, &CMloInstance::dtor, PATCH_JUMP); +ENDPATCHES \ No newline at end of file diff --git a/src/MloInstance.h b/src/MloInstance.h new file mode 100644 index 00000000..00afc379 --- /dev/null +++ b/src/MloInstance.h @@ -0,0 +1,9 @@ +#pragma once + +#include "Placeable.h" + +class CMloInstance : CPlaceable +{ +public: + void dtor() { this->CMloInstance::~CMloInstance(); } +}; \ No newline at end of file diff --git a/src/ParticleObject.cpp b/src/ParticleObject.cpp index bd5e6b0a..58f2cfcb 100644 --- a/src/ParticleObject.cpp +++ b/src/ParticleObject.cpp @@ -4,7 +4,6 @@ WRAPPER void CParticleObject::AddObject(uint16, const CVector &pos, bool remove) { EAXJMP(0x4BC4D0); } - // Converted from static void __cdecl CParticleObject::Initialise() 0x42C760 void CParticleObject::Initialise() { @@ -15,4 +14,8 @@ void CParticleObject::Initialise() void CParticleObject::UpdateAll() { ((void (__cdecl *)())0x4BCA30)(); -} \ No newline at end of file +} + +STARTPATCHES + InjectHook(0x4BC420, &CParticleObject::dtor, PATCH_JUMP); +ENDPATCHES \ No newline at end of file diff --git a/src/ParticleObject.h b/src/ParticleObject.h index d6b48810..34debbfd 100644 --- a/src/ParticleObject.h +++ b/src/ParticleObject.h @@ -1,5 +1,7 @@ #pragma once +#include "Placeable.h" + enum eParticleObjectType { POBJECT_PAVEMENT_STEAM, @@ -24,10 +26,12 @@ enum eParticleObjectType POBJECT_CATALINAS_SHOTGUNFLASH, }; -class CParticleObject +class CParticleObject : CPlaceable { public: static void AddObject(uint16, const CVector &pos, bool remove); static void Initialise(); static void UpdateAll(); + + void dtor() { this->CParticleObject::~CParticleObject(); } }; diff --git a/src/audio/DMAudio.cpp b/src/audio/DMAudio.cpp index 63f23c4a..b3887c70 100644 --- a/src/audio/DMAudio.cpp +++ b/src/audio/DMAudio.cpp @@ -27,3 +27,4 @@ WRAPPER void cDMAudio::SetMusicFadeVol(uint8) { EAXJMP(0x57C920); } WRAPPER int32 cDMAudio::CreateEntity(int, void*) { EAXJMP(0x57C7C0); } WRAPPER void cDMAudio::SetEntityStatus(int32 id, uint8 enable) { EAXJMP(0x57C810); } WRAPPER void cDMAudio::SetRadioInCar(int32) { EAXJMP(0x57CE60); } +WRAPPER void cDMAudio::DestroyEntity(int32) { EAXJMP(0x57C7F0); } diff --git a/src/audio/DMAudio.h b/src/audio/DMAudio.h index ea5aeeb2..46b40e37 100644 --- a/src/audio/DMAudio.h +++ b/src/audio/DMAudio.h @@ -196,6 +196,6 @@ public: void SetEntityStatus(int32 id, uint8 enable); void SetRadioInCar(int32); uint8 IsMP3RadioChannelAvailable(); - + void DestroyEntity(int32); }; extern cDMAudio &DMAudio; diff --git a/src/control/CarCtrl.cpp b/src/control/CarCtrl.cpp index 145c643c..1b389631 100644 --- a/src/control/CarCtrl.cpp +++ b/src/control/CarCtrl.cpp @@ -3,6 +3,8 @@ #include "CarCtrl.h" int &CCarCtrl::NumLawEnforcerCars = *(int*)0x8F1B38; +int &CCarCtrl::NumAmbulancesOnDuty = *(int*)0x885BB0; +int &CCarCtrl::NumFiretrucksOnDuty = *(int*)0x9411F0; bool &CCarCtrl::bCarsGeneratedAroundCamera = *(bool*)0x95CD8A; WRAPPER void CCarCtrl::SwitchVehicleToRealPhysics(CVehicle*) { EAXJMP(0x41F7F0); } diff --git a/src/control/CarCtrl.h b/src/control/CarCtrl.h index 3469dcf1..0195219e 100644 --- a/src/control/CarCtrl.h +++ b/src/control/CarCtrl.h @@ -11,5 +11,7 @@ public: static int32 ChooseCarModel(int32 vehclass); static int32 &NumLawEnforcerCars; + static int32 &NumAmbulancesOnDuty; + static int32 &NumFiretrucksOnDuty; static bool &bCarsGeneratedAroundCamera; }; diff --git a/src/control/Replay.cpp b/src/control/Replay.cpp index 9f74734c..4733f6f2 100644 --- a/src/control/Replay.cpp +++ b/src/control/Replay.cpp @@ -4,9 +4,11 @@ #include "Boat.h" #include "BulletTraces.h" #include "CarCtrl.h" +#include "CivilianPed.h" #include "Clock.h" #include "DMAudio.h" #include "Draw.h" +#include "Heli.h" #include "math/Matrix.h" #include "ModelIndices.h" #include "ModelInfo.h" @@ -14,6 +16,7 @@ #include "Pad.h" #include "PhoneInfo.h" #include "Pickups.h" +#include "Plane.h" #include "Pools.h" #include "Population.h" #include "Replay.h" @@ -23,6 +26,7 @@ #include "render/Skidmarks.h" #include "Streaming.h" #include "Timer.h" +#include "Train.h" #include "Weather.h" #include "Zones.h" #include "Font.h" @@ -83,6 +87,10 @@ bool &CReplay::bAllowLookAroundCam = *(bool*)0x95CDCD; float &CReplay::LoadSceneX = *(float*)0x880F9C; float &CReplay::LoadSceneY = *(float*)0x880F98; float &CReplay::LoadSceneZ = *(float*)0x880F94; +float &CReplay::CameraFocusX = *(float*)0x942F5C; +float &CReplay::CameraFocusY = *(float*)0x942F74; +float &CReplay::CameraFocusZ = *(float*)0x942F58; +bool &CReplay::bPlayerInRCBuggy = *(bool*)0x95CDC3; static void(*(&CBArray)[30])(CAnimBlendAssociation*, void*) = *(void(*(*)[30])(CAnimBlendAssociation*, void*))*(uintptr*)0x61052C; static void(*CBArray_RE3[])(CAnimBlendAssociation*, void*) = @@ -680,9 +688,250 @@ void CReplay::ProcessCarUpdate(CVehicle *vehicle, float interpolation, CAddressI } #endif +#if 0 WRAPPER bool CReplay::PlayBackThisFrameInterpolation(CAddressInReplayBuffer *buffer, float interpolation, uint32 *pTimer) { EAXJMP(0x595240); } +#else +bool CReplay::PlayBackThisFrameInterpolation(CAddressInReplayBuffer *buffer, float interpolation, uint32 *pTimer){ + /* Mistake. Not even sure what this is even doing here... + * PlayerWanted is a backup to restore at the end of replay. + * Setting current wanted pointer to it makes it useless. + * Causes picking up bribes in replays reducing wanted level bug. + * Obviously fact of picking them up is a bug on its own, + * but it doesn't cancel this one. + */ + FindPlayerPed()->m_pWanted = &PlayerWanted; + + CBulletTraces::Init(); + float split = 1.0f - interpolation; + int ped_min_index = 0; /* Optimization due to peds and vehicles placed in buffer sequentially. */ + int vehicle_min_index = 0; /* So next ped can't have pool index less than current. */ + for(;;){ + uint8* ptr = buffer->m_pBase; + uint32 offset = buffer->m_nOffset; + uint8 type = ptr[offset]; + if (type == REPLAYPACKET_ENDOFFRAME) + break; + switch (type) { + case REPLAYPACKET_END: + { + int slot = buffer->m_bSlot; + if (BufferStatus[slot] == REPLAYBUFFER_RECORD) { + FinishPlayback(); + return true; + } + buffer->m_bSlot = (slot + 1) % 8; + buffer->m_nOffset = 0; + buffer->m_pBase = Buffers[buffer->m_bSlot]; + ped_min_index = 0; + vehicle_min_index = 0; + break; + } + case REPLAYPACKET_VEHICLE: + { + tVehicleUpdatePacket* vp = (tVehicleUpdatePacket*)&ptr[offset]; + for (int i = vehicle_min_index; i < vp->index; i++) { + CVehicle* v = CPools::GetVehiclePool()->GetSlot(i); + if (!v) + continue; + /* Removing vehicles not present in this frame. */ + CWorld::Remove(v); + delete v; + } + vehicle_min_index = vp->index + 1; + CVehicle* v = CPools::GetVehiclePool()->GetSlot(vp->index); + CVehicle* new_v; + if (!v) { + int mi = vp->mi; + if (CStreaming::ms_aInfoForModel[mi].m_loadState != 1) { + CStreaming::RequestModel(mi, 0); + } + else { + if (mi == MI_DEADDODO || mi == MI_AIRTRAIN) { + new_v = new(vp->index << 8) CPlane(mi, 2); + } + else if (mi == MI_TRAIN) { + new_v = new(vp->index << 8) CTrain(mi, 2); + } + else if (mi == MI_CHOPPER || mi == MI_ESCAPE) { + new_v = new(vp->index << 8) CHeli(mi, 2); + } + else if (CModelInfo::IsBoatModel(mi)){ + new_v = new(vp->index << 8) CBoat(mi, 2); + } + else{ + new_v = new(vp->index << 8) CAutomobile(mi, 2); + } + new_v->m_status = STATUS_PLAYER_PLAYBACKFROMBUFFER; + vp->matrix.DecompressIntoFullMatrix(new_v->GetMatrix()); + new_v->m_currentColour1 = vp->primary_color; + new_v->m_currentColour2 = vp->secondary_color; + CWorld::Add(new_v); + } + } + ProcessCarUpdate(CPools::GetVehiclePool()->GetSlot(vp->index), interpolation, buffer); + buffer->m_nOffset += sizeof(tVehicleUpdatePacket); + break; + } + case REPLAYPACKET_PED_HEADER: + { + tPedHeaderPacket* ph = (tPedHeaderPacket*)&ptr[offset]; + if (!CPools::GetPedPool()->GetSlot(ph->index)) { + if (CStreaming::ms_aInfoForModel[ph->mi].m_loadState != 1) { + CStreaming::RequestModel(ph->mi, 0); + } + else { + CPed* new_p = new(ph->index << 8) CCivilianPed(ph->pedtype, ph->mi); + new_p->m_status = STATUS_PLAYER_PLAYBACKFROMBUFFER; + new_p->GetMatrix().SetUnity(); + CWorld::Add(new_p); + } + } + buffer->m_nOffset += sizeof(tPedHeaderPacket); + break; + } + case REPLAYPACKET_PED_UPDATE: + { + tPedUpdatePacket* pu = (tPedUpdatePacket*)&ptr[offset]; + for (int i = ped_min_index; i < pu->index; i++) { + CPed* p = CPools::GetPedPool()->GetSlot(i); + if (!p) + continue; + /* Removing peds not present in this frame. */ + CWorld::Remove(p); + delete p; + } + ped_min_index = pu->index + 1; + ProcessPedUpdate(CPools::GetPedPool()->GetSlot(pu->index), interpolation, buffer); + break; + } + case REPLAYPACKET_GENERAL: + { + tGeneralPacket* pg = (tGeneralPacket*)&ptr[offset]; + TheCamera.GetMatrix() = TheCamera.GetMatrix() * CMatrix(split); + *TheCamera.GetMatrix().GetPosition() *= split; + TheCamera.GetMatrix() += CMatrix(interpolation) * pg->camera_pos; + RwMatrix* pm = &RpAtomicGetFrame(&TheCamera.m_pRwCamera->object.object)->modelling; + pm->pos = *(RwV3d*)TheCamera.GetMatrix().GetPosition(); + pm->at = *(RwV3d*)TheCamera.GetMatrix().GetForward(); + pm->up = *(RwV3d*)TheCamera.GetMatrix().GetUp(); + pm->right = *(RwV3d*)TheCamera.GetMatrix().GetRight(); + CameraFocusX = split * CameraFocusX + interpolation * pg->player_pos.x; + CameraFocusY = split * CameraFocusY + interpolation * pg->player_pos.y; + CameraFocusZ = split * CameraFocusZ + interpolation * pg->player_pos.z; + bPlayerInRCBuggy = pg->in_rcvehicle; + buffer->m_nOffset += sizeof(tGeneralPacket); + break; + } + case REPLAYPACKET_CLOCK: + { + tClockPacket* pc = (tClockPacket*)&ptr[offset]; + CClock::SetGameClock(pc->hours, pc->minutes); + buffer->m_nOffset += sizeof(tClockPacket); + break; + } + case REPLAYPACKET_WEATHER: + { + tWeatherPacket* pw = (tWeatherPacket*)&ptr[offset]; + CWeather::OldWeatherType = pw->old_weather; + CWeather::NewWeatherType = pw->new_weather; + CWeather::InterpolationValue = pw->interpolation; + buffer->m_nOffset += sizeof(tWeatherPacket); + break; + } + case REPLAYPACKET_ENDOFFRAME: + { + /* Not supposed to be here. */ + buffer->m_nOffset++; + break; + } + case REPLAYPACKET_TIMER: + { + tTimerPacket* pt = (tTimerPacket*)&ptr[offset]; + if (pTimer) + *pTimer = pt->timer; + CTimer::SetTimeInMilliseconds(pt->timer); + buffer->m_nOffset += sizeof(tTimerPacket); + break; + } + case REPLAYPACKET_BULLET_TRACES: + { + tBulletTracePacket* pb = (tBulletTracePacket*)&ptr[offset]; + CBulletTraces::aTraces[pb->index].m_bInUse = true; + CBulletTraces::aTraces[pb->index].m_bFramesInUse = pb->frames; + CBulletTraces::aTraces[pb->index].m_bLifeTime = pb->lifetime; + CBulletTraces::aTraces[pb->index].m_vecInf = pb->inf; + CBulletTraces::aTraces[pb->index].m_vecSup = pb->sup; + buffer->m_nOffset += sizeof(tBulletTracePacket); + } + default: + break; + } + } + buffer->m_nOffset += 4; + for (int i = vehicle_min_index; i < CPools::GetVehiclePool()->GetSize(); i++) { + CVehicle* v = CPools::GetVehiclePool()->GetSlot(i); + if (!v) + continue; + /* Removing vehicles not present in this frame. */ + CWorld::Remove(v); + delete v; + } + for (int i = ped_min_index; i < CPools::GetPedPool()->GetSize(); i++) { + CPed* p = CPools::GetPedPool()->GetSlot(i); + if (!p) + continue; + /* Removing peds not present in this frame. */ + CWorld::Remove(p); + delete p; + } + ProcessReplayCamera(); + return false; +} +#endif +#if 0 WRAPPER void CReplay::FinishPlayback(void) { EAXJMP(0x595B20); } +#else +void CReplay::FinishPlayback(void) +{ + if (Mode != MODE_PLAYBACK) + return; + EmptyAllPools(); + RestoreStuffFromMem(); + Mode = MODE_RECORD; + if (bDoLoadSceneWhenDone){ + CVector v_ls(LoadSceneX, LoadSceneY, LoadSceneZ); + CGame::currLevel = CTheZones::GetLevelFromPosition(v_ls); + CCollision::SortOutCollisionAfterLoad(); + CStreaming::LoadScene(v_ls); + } + bDoLoadSceneWhenDone = false; + if (bPlayingBackFromFile){ + Init(); + MarkEverythingAsNew(); + } + DMAudio.SetEffectsFadeVol(127); + DMAudio.SetMusicFadeVol(127); +} +#endif + +#if 0 WRAPPER void CReplay::EmptyReplayBuffer(void) { EAXJMP(0x595BD0); } +#else +void CReplay::EmptyReplayBuffer(void) +{ + if (Mode == MODE_PLAYBACK) + return; + for (int i = 0; i < 8; i++){ + BufferStatus[i] = REPLAYBUFFER_UNUSED; + } + Record.m_bSlot = 0; + Record.m_pBase = Buffers[0]; + BufferStatus[0] = REPLAYBUFFER_RECORD; + Record.m_pBase[Record.m_nOffset] = 0; + MarkEverythingAsNew(); +} +#endif + WRAPPER void CReplay::ProcessReplayCamera(void) { EAXJMP(0x595C40); } #if 0 diff --git a/src/control/Replay.h b/src/control/Replay.h index 37342d41..f44e4c41 100644 --- a/src/control/Replay.h +++ b/src/control/Replay.h @@ -241,6 +241,10 @@ private: static float &LoadSceneX; static float &LoadSceneY; static float &LoadSceneZ; + static float &CameraFocusX; + static float &CameraFocusY; + static float &CameraFocusZ; + static bool &bPlayerInRCBuggy; public: static void Init(void); diff --git a/src/entities/Automobile.cpp b/src/entities/Automobile.cpp index 89fac33e..e74013be 100644 --- a/src/entities/Automobile.cpp +++ b/src/entities/Automobile.cpp @@ -2,4 +2,15 @@ #include "patcher.h" #include "Automobile.h" -WRAPPER void CAutomobile::SetDoorDamage(int32, uint32, bool) { EAXJMP(0x530200); } \ No newline at end of file +CAutomobile::CAutomobile(int mi, uint8 owner) +{ + ctor(mi, owner); +} + +WRAPPER CAutomobile* CAutomobile::ctor(int, uint8) { EAXJMP(0x52C6B0); } + +WRAPPER void CAutomobile::SetDoorDamage(int32, uint32, bool) { EAXJMP(0x530200); } + +STARTPATCHES +InjectHook(0x52D170, &CAutomobile::dtor, PATCH_JUMP); +ENDPATCHES \ No newline at end of file diff --git a/src/entities/Automobile.h b/src/entities/Automobile.h index 1b5e74d5..246943a7 100644 --- a/src/entities/Automobile.h +++ b/src/entities/Automobile.h @@ -22,7 +22,10 @@ public: uint8 m_nDriveWheelsOnGround; uint8 stuff5[22]; + CAutomobile(int, uint8); + CAutomobile* ctor(int, uint8); void SetDoorDamage(int32, uint32, bool); /* TODO: eDoors */ + void dtor() { this->CAutomobile::~CAutomobile(); } }; static_assert(sizeof(CAutomobile) == 0x5A8, "CAutomobile: error"); static_assert(offsetof(CAutomobile, m_afWheelSuspDist) == 0x46C, "CAutomobile: error"); diff --git a/src/entities/Boat.cpp b/src/entities/Boat.cpp new file mode 100644 index 00000000..076a910e --- /dev/null +++ b/src/entities/Boat.cpp @@ -0,0 +1,14 @@ +#include "common.h" +#include "patcher.h" +#include "Boat.h" + +CBoat::CBoat(int mi, uint8 owner) +{ + ctor(mi, owner); +} + +WRAPPER CBoat* CBoat::ctor(int, uint8) { EAXJMP(0x53E3E0); } + +STARTPATCHES +InjectHook(0x53E790, &CBoat::dtor, PATCH_JUMP); +ENDPATCHES \ No newline at end of file diff --git a/src/entities/Boat.h b/src/entities/Boat.h index 26de0cdc..6d6482a4 100644 --- a/src/entities/Boat.h +++ b/src/entities/Boat.h @@ -9,5 +9,9 @@ public: uint8 stuff1[57]; bool m_bIsAnchored; uint8 stuff[450]; + + CBoat(int, uint8); + CBoat* ctor(int, uint8); + void dtor() { this->CBoat::~CBoat(); }; }; static_assert(sizeof(CBoat) == 0x484, "CBoat: error"); diff --git a/src/entities/Building.cpp b/src/entities/Building.cpp index d69a65fe..b9fca96f 100644 --- a/src/entities/Building.cpp +++ b/src/entities/Building.cpp @@ -23,5 +23,6 @@ CBuilding::ReplaceWithNewModel(int32 id) STARTPATCHES InjectHook(0x4057D0, &CBuilding::ctor, PATCH_JUMP); + InjectHook(0x405800, &CBuilding::dtor, PATCH_JUMP); InjectHook(0x405850, &CBuilding::ReplaceWithNewModel, PATCH_JUMP); ENDPATCHES diff --git a/src/entities/Building.h b/src/entities/Building.h index b1f96bae..89d0a460 100644 --- a/src/entities/Building.h +++ b/src/entities/Building.h @@ -17,5 +17,6 @@ public: virtual bool GetIsATreadable(void) { return false; } CBuilding *ctor(void) { return ::new (this) CBuilding(); } + void dtor(void) { this->CBuilding::~CBuilding(); } }; static_assert(sizeof(CBuilding) == 0x64, "CBuilding: error"); diff --git a/src/entities/CivilianPed.cpp b/src/entities/CivilianPed.cpp new file mode 100644 index 00000000..cf589211 --- /dev/null +++ b/src/entities/CivilianPed.cpp @@ -0,0 +1,14 @@ +#include "common.h" +#include "patcher.h" +#include "CivilianPed.h" + +CCivilianPed::CCivilianPed(int pedtype, int mi) +{ + ctor(pedtype, mi); +} + +WRAPPER CCivilianPed* CCivilianPed::ctor(int pedtype, int mi) { EAXJMP(0x4BFF30); } + +STARTPATCHES + InjectHook(0x4BFFC0, &CCivilianPed::dtor, PATCH_JUMP); +ENDPATCHES \ No newline at end of file diff --git a/src/entities/CivilianPed.h b/src/entities/CivilianPed.h index 7a592279..4d3346d3 100644 --- a/src/entities/CivilianPed.h +++ b/src/entities/CivilianPed.h @@ -5,5 +5,8 @@ class CCivilianPed : public CPed { public: + CCivilianPed(int, int); + CCivilianPed* ctor(int, int); + void dtor(void) { this->CCivilianPed::~CCivilianPed(); } }; static_assert(sizeof(CCivilianPed) == 0x53C, "CCivilianPed: error"); diff --git a/src/entities/CopPed.cpp b/src/entities/CopPed.cpp new file mode 100644 index 00000000..041185ee --- /dev/null +++ b/src/entities/CopPed.cpp @@ -0,0 +1,14 @@ +#include "common.h" +#include "patcher.h" +#include "CopPed.h" + +CCopPed::~CCopPed() +{ + ClearPursuit(); +} + +WRAPPER void CCopPed::ClearPursuit(void) { EAXJMP(0x4C28C0); } + +STARTPATCHES + InjectHook(0x4C13E0, &CCopPed::dtor, PATCH_JUMP); +ENDPATCHES \ No newline at end of file diff --git a/src/entities/CopPed.h b/src/entities/CopPed.h index 23d52ad0..b938dfc2 100644 --- a/src/entities/CopPed.h +++ b/src/entities/CopPed.h @@ -63,6 +63,11 @@ public: int8 field_1365; int8 field_1366; int8 field_1367; + + ~CCopPed(); + void dtor(void) { this->CCopPed::~CCopPed(); } + + void ClearPursuit(void); }; static_assert(sizeof(CCopPed) == 0x558, "CCopPed: error"); diff --git a/src/entities/CutsceneObject.cpp b/src/entities/CutsceneObject.cpp index a7bca122..534d9e4b 100644 --- a/src/entities/CutsceneObject.cpp +++ b/src/entities/CutsceneObject.cpp @@ -90,6 +90,7 @@ CCutsceneObject::RemoveLighting(bool reset) } STARTPATCHES + InjectHook(0x4BA960, &CCutsceneObject::dtor, PATCH_JUMP); InjectHook(0x4BA980, &CCutsceneObject::SetModelIndex_, PATCH_JUMP); InjectHook(0x4BA9C0, &CCutsceneObject::ProcessControl_, PATCH_JUMP); InjectHook(0x4BAA40, &CCutsceneObject::PreRender_, PATCH_JUMP); diff --git a/src/entities/CutsceneObject.h b/src/entities/CutsceneObject.h index 182d8612..b4325f4b 100644 --- a/src/entities/CutsceneObject.h +++ b/src/entities/CutsceneObject.h @@ -14,7 +14,7 @@ public: bool SetupLighting(void); void RemoveLighting(bool reset); - + void dtor(void) { this->CCutsceneObject::~CCutsceneObject(); } void SetModelIndex_(uint32 id) { CCutsceneObject::SetModelIndex(id); } void ProcessControl_(void) { CCutsceneObject::ProcessControl(); } void PreRender_(void) { CCutsceneObject::PreRender(); } diff --git a/src/entities/Dummy.cpp b/src/entities/Dummy.cpp index 493bdbc7..5401c1fa 100644 --- a/src/entities/Dummy.cpp +++ b/src/entities/Dummy.cpp @@ -52,6 +52,7 @@ CDummy::Remove(void) } STARTPATCHES + InjectHook(0x473810, &CDummy::dtor, PATCH_JUMP); InjectHook(0x473860, &CDummy::Add_, PATCH_JUMP); InjectHook(0x473AD0, &CDummy::Remove_, PATCH_JUMP); ENDPATCHES diff --git a/src/entities/Dummy.h b/src/entities/Dummy.h index 4cfef2e2..59359bb5 100644 --- a/src/entities/Dummy.h +++ b/src/entities/Dummy.h @@ -18,5 +18,6 @@ public: // to make patching virtual functions possible void Add_(void) { CDummy::Add(); } void Remove_(void) { CDummy::Remove(); } + void dtor(void) { this->CDummy::~CDummy(); } }; static_assert(sizeof(CDummy) == 0x68, "CDummy: error"); diff --git a/src/entities/DummyObject.cpp b/src/entities/DummyObject.cpp index 083ad6c6..1e4b2ae0 100644 --- a/src/entities/DummyObject.cpp +++ b/src/entities/DummyObject.cpp @@ -11,3 +11,7 @@ CDummyObject::CDummyObject(CObject *obj) obj->DetachFromRwObject(); m_level = obj->m_level; } + +STARTPATCHES + InjectHook(0x4BAB70, &CDummyObject::dtor, PATCH_JUMP); +ENDPATCHES \ No newline at end of file diff --git a/src/entities/DummyObject.h b/src/entities/DummyObject.h index d4dce609..10554bdd 100644 --- a/src/entities/DummyObject.h +++ b/src/entities/DummyObject.h @@ -9,5 +9,6 @@ class CDummyObject : public CDummy public: CDummyObject(void) {} CDummyObject(CObject *obj); + void dtor(void) { this->CDummyObject::~CDummyObject(); } }; static_assert(sizeof(CDummyObject) == 0x68, "CDummyObject: error"); diff --git a/src/entities/EmergencyPed.h b/src/entities/EmergencyPed.h index f21996e8..fa07f3ee 100644 --- a/src/entities/EmergencyPed.h +++ b/src/entities/EmergencyPed.h @@ -7,5 +7,7 @@ class CEmergencyPed : public CPed public: // 0x53C uint8 stuff[24]; + + void dtor(void) { this->CEmergencyPed::~CEmergencyPed(); } }; static_assert(sizeof(CEmergencyPed) == 0x554, "CEmergencyPed: error"); diff --git a/src/entities/Entity.cpp b/src/entities/Entity.cpp index e9b35cd5..a5fbe92d 100644 --- a/src/entities/Entity.cpp +++ b/src/entities/Entity.cpp @@ -449,6 +449,8 @@ CEntity::PruneReferences(void) STARTPATCHES InjectHook(0x473C30, &CEntity::ctor, PATCH_JUMP); + InjectHook(0x473E40, &CEntity::dtor, PATCH_JUMP); + InjectHook(0x473E70, &CEntity::SetModelIndex_, PATCH_JUMP); InjectHook(0x4742C0, (void (CEntity::*)(CVector&))&CEntity::GetBoundCentre, PATCH_JUMP); InjectHook(0x474310, &CEntity::GetBoundRadius, PATCH_JUMP); InjectHook(0x474C10, &CEntity::GetIsTouching, PATCH_JUMP); diff --git a/src/entities/Entity.h b/src/entities/Entity.h index 27dd8c14..26a6e46b 100644 --- a/src/entities/Entity.h +++ b/src/entities/Entity.h @@ -156,8 +156,10 @@ public: // to make patching virtual functions possible CEntity *ctor(void) { return ::new (this) CEntity(); } + void dtor(void) { this->CEntity::~CEntity(); } void Add_(void) { CEntity::Add(); } void Remove_(void) { CEntity::Remove(); } + void SetModelIndex_(uint32 i) { CEntity::SetModelIndex(i); } void CreateRwObject_(void) { CEntity::CreateRwObject(); } void DeleteRwObject_(void) { CEntity::DeleteRwObject(); } CRect GetBoundRect_(void) { return CEntity::GetBoundRect(); } diff --git a/src/entities/Heli.cpp b/src/entities/Heli.cpp index 21731fed..01ee5375 100644 --- a/src/entities/Heli.cpp +++ b/src/entities/Heli.cpp @@ -2,4 +2,14 @@ #include "patcher.h" #include "Heli.h" +CHeli::CHeli(int mi, uint8 owner) +{ + ctor(mi, owner); +} + +WRAPPER CHeli* CHeli::ctor(int, uint8) { EAXJMP(0x547220); } WRAPPER void CHeli::SpecialHeliPreRender(void) { EAXJMP(0x54AE10); } + +STARTPATCHES +InjectHook(0x5474A0, &CHeli::dtor, PATCH_JUMP); +ENDPATCHES diff --git a/src/entities/Heli.h b/src/entities/Heli.h index 57c3db0f..da7bb171 100644 --- a/src/entities/Heli.h +++ b/src/entities/Heli.h @@ -8,6 +8,10 @@ public: // 0x288 uint8 stuff[180]; + CHeli(int, uint8); + CHeli* ctor(int, uint8); + void dtor(void) { this->CHeli::~CHeli(); } + static void SpecialHeliPreRender(void); }; static_assert(sizeof(CHeli) == 0x33C, "CHeli: error"); diff --git a/src/entities/Object.cpp b/src/entities/Object.cpp index 8c7cc4c9..1feecbdf 100644 --- a/src/entities/Object.cpp +++ b/src/entities/Object.cpp @@ -66,5 +66,6 @@ CObject::Render(void) WRAPPER void CObject::DeleteAllTempObjectInArea(CVector, float) { EAXJMP(0x4BBED0); } STARTPATCHES + InjectHook(0x4BAE00, &CObject::dtor, PATCH_JUMP); InjectHook(0x4BB1E0, &CObject::Render_, PATCH_JUMP); ENDPATCHES diff --git a/src/entities/Object.h b/src/entities/Object.h index a156609c..0cb951e2 100644 --- a/src/entities/Object.h +++ b/src/entities/Object.h @@ -73,6 +73,7 @@ public: static void DeleteAllTempObjectInArea(CVector, float); + void dtor(void) { this->CObject::~CObject(); } void Render_(void) { CObject::Render(); } }; static_assert(sizeof(CObject) == 0x198, "CObject: error"); diff --git a/src/entities/Ped.cpp b/src/entities/Ped.cpp index 04157f4e..a82d4fdc 100644 --- a/src/entities/Ped.cpp +++ b/src/entities/Ped.cpp @@ -17,6 +17,7 @@ #include "Shadows.h" #include "Weather.h" #include "CullZones.h" +#include "Population.h" bool &CPed::bNastyLimbsCheat = *(bool*)0x95CD44; bool &CPed::bPedCheat2 = *(bool*)0x95CD5A; @@ -27,8 +28,65 @@ CVector &CPed::offsetToOpenLowCarDoor = *(CVector*)0x62E03C; CVector &CPed::offsetToOpenVanDoor = *(CVector*)0x62E048; void *CPed::operator new(size_t sz) { return CPools::GetPedPool()->New(); } +void *CPed::operator new(size_t sz, int handle) { return CPools::GetPedPool()->New(handle); } void CPed::operator delete(void *p, size_t sz) { CPools::GetPedPool()->Delete((CPed*)p); } +CPed::~CPed(void) +{ + CWorld::Remove(this); + CRadar::ClearBlipForEntity(BLIP_CHAR, CPools::GetPedPool()->GetIndex(this)); + if (bInVehicle && m_pMyVehicle){ + uint8 door_flag = 0; + switch (m_vehEnterType) { + case VEHICLE_ENTER_FRONT_LEFT: door_flag = 1; break; + case VEHICLE_ENTER_REAR_LEFT: door_flag = 2; break; + case VEHICLE_ENTER_FRONT_RIGHT: door_flag = 4; break; + case VEHICLE_ENTER_REAR_RIGHT: door_flag = 8; break; + default: break; + } + if (m_pMyVehicle->pDriver == this) + m_pMyVehicle->pDriver = nil; + else { + for (int i = 0; i < m_pMyVehicle->m_nNumMaxPassengers; i++) { + if (m_pMyVehicle->pPassengers[i] == this) + m_pMyVehicle->pPassengers[i] = nil; + } + } + if (m_nPedState == PED_EXIT_CAR || m_nPedState == PED_DRAG_FROM_CAR) + m_pMyVehicle->m_nGettingOutFlags &= ~door_flag; + bInVehicle = false; + m_pMyVehicle = nil; + }else if (m_nPedState == PED_ENTER_CAR || m_nPedState == PED_CARJACK){ + QuitEnteringCar(); + } + if (m_pFire) + m_pFire->Extinguish(); + CPopulation::UpdatePedCount(m_nPedType, true); + DMAudio.DestroyEntity(m_audioEntityId); +} + +void CPed::FlagToDestroyWhenNextProcessed(void) +{ + bRemoveFromWorld = true; + if (!bInVehicle || !m_pMyVehicle) + return; + if (m_pMyVehicle->pDriver == this){ + m_pMyVehicle->pDriver = nil; + if (IsPlayer() && m_pMyVehicle->m_status != STATUS_WRECKED) + m_pMyVehicle->m_status = STATUS_ABANDONED; + }else{ + m_pMyVehicle->RemovePassenger(this); + } + bInVehicle = false; + m_pMyVehicle = nil; + if (m_nCreatedBy == 2) /* TODO: enum (MISSION) */ + m_nPedState = PED_DEAD; + else + m_nPedState = PED_NONE; + m_pVehicleAnim = nil; +} + +WRAPPER void CPed::QuitEnteringCar() { EAXJMP(0x4E0E00); } WRAPPER void CPed::KillPedWithCar(CVehicle *veh, float impulse) { EAXJMP(0x4EC430); } WRAPPER void CPed::Say(uint16 audio) { EAXJMP(0x4E5A10); } WRAPPER void CPed::SetDie(AnimationId anim, float arg1, float arg2) { EAXJMP(0x4D37D0); } @@ -1625,6 +1683,7 @@ WRAPPER void FinishFuckUCB(CAnimBlendAssociation *assoc, void *arg) { EAXJMP(0x4 WRAPPER void CPed::RestoreHeadingRateCB(CAnimBlendAssociation *assoc, void *arg) { EAXJMP(0x4D6550); } STARTPATCHES + InjectHook(0x4C50D0, &CPed::dtor, PATCH_JUMP); InjectHook(0x4CF8F0, &CPed::AddWeaponModel, PATCH_JUMP); InjectHook(0x4C6AA0, &CPed::AimGun, PATCH_JUMP); InjectHook(0x4EB470, &CPed::ApplyHeadShot, PATCH_JUMP); diff --git a/src/entities/Ped.h b/src/entities/Ped.h index f83594aa..2edbd9e2 100644 --- a/src/entities/Ped.h +++ b/src/entities/Ped.h @@ -9,6 +9,7 @@ #include "AnimBlendClumpData.h" #include "AnimBlendAssociation.h" #include "WeaponInfo.h" +#include "Fire.h" struct CPathNode; @@ -184,7 +185,9 @@ public: uint8 m_ped_flagI20 : 1; uint8 m_ped_flagI40 : 1; uint8 m_ped_flagI80 : 1; - uint8 stuff10[15]; + uint8 stuff10[3]; + uint8 m_nCreatedBy; + uint8 stuff14[11]; CPed *m_field_16C; uint8 stuff12[44]; int32 m_pEventEntity; @@ -243,7 +246,8 @@ public: uint8 stuff[2]; int32 m_pPointGunAt; CVector m_vecHitLastPos; - uint8 stuff8[12]; + uint8 stuff8[8]; + CFire* m_pFire; CEntity *m_pLookTarget; float m_fLookDirection; int32 m_wepModelID; @@ -266,8 +270,14 @@ public: uint8 stuff11[30]; static void *operator new(size_t); + static void *operator new(size_t, int); static void operator delete(void*, size_t); + ~CPed(void); + void FlagToDestroyWhenNextProcessed(void); + + void dtor(void) { this->CPed::~CPed(); } + bool IsPlayer(void); bool UseGroundColModel(void); bool CanSetPedState(void); @@ -301,6 +311,7 @@ public: void LineUpPedWithCar(PedLineUpPhase phase); void SetPedPositionInCar(void); void PlayFootSteps(void); + void QuitEnteringCar(void); static void GetLocalPositionToOpenCarDoor(CVector *output, CVehicle *veh, uint32 enterType, float offset); static void GetPositionToOpenCarDoor(CVector *output, CVehicle *veh, uint32 enterType, float seatPosMult); static void GetPositionToOpenCarDoor(CVector* output, CVehicle* veh, uint32 enterType); diff --git a/src/entities/Physical.cpp b/src/entities/Physical.cpp index 64e0fb8b..b570efd9 100644 --- a/src/entities/Physical.cpp +++ b/src/entities/Physical.cpp @@ -1895,6 +1895,7 @@ CPhysical::ProcessCollision(void) STARTPATCHES + InjectHook(0x495130, &CPhysical::dtor, PATCH_JUMP); InjectHook(0x4951F0, &CPhysical::Add_, PATCH_JUMP); InjectHook(0x4954B0, &CPhysical::Remove_, PATCH_JUMP); InjectHook(0x495540, &CPhysical::RemoveAndAdd, PATCH_JUMP); diff --git a/src/entities/Physical.h b/src/entities/Physical.h index 749e2dd8..25bc1185 100644 --- a/src/entities/Physical.h +++ b/src/entities/Physical.h @@ -134,6 +134,7 @@ public: void ProcessCollision(void); // to make patching virtual functions possible + void dtor(void) { this->CPhysical::~CPhysical(); } void Add_(void) { CPhysical::Add(); } void Remove_(void) { CPhysical::Remove(); } CRect GetBoundRect_(void) { return CPhysical::GetBoundRect(); } diff --git a/src/entities/Plane.cpp b/src/entities/Plane.cpp new file mode 100644 index 00000000..6e30bced --- /dev/null +++ b/src/entities/Plane.cpp @@ -0,0 +1,19 @@ +#include "common.h" +#include "patcher.h" +#include "Plane.h" + +CPlane::CPlane(int mi, uint8 owner) +{ + ctor(mi, owner); +} + +WRAPPER CPlane* CPlane::ctor(int, uint8) { EAXJMP(0x54B170); } + +CPlane::~CPlane() +{ + DeleteRwObject(); +} + +STARTPATCHES +InjectHook(0x54B270, &CPlane::dtor, PATCH_JUMP); +ENDPATCHES \ No newline at end of file diff --git a/src/entities/Plane.h b/src/entities/Plane.h index 9acc24ec..e26008f6 100644 --- a/src/entities/Plane.h +++ b/src/entities/Plane.h @@ -1,5 +1,6 @@ #pragma once +#include "common.h" #include "Vehicle.h" class CPlane : public CVehicle @@ -7,5 +8,11 @@ class CPlane : public CVehicle public: // 0x288 uint8 stuff[20]; + + CPlane(int, uint8); + ~CPlane(void); + CPlane* ctor(int, uint8); + void dtor(void) { this->CPlane::~CPlane(); } + void FlagToDestroyWhenNextProcessed() { bRemoveFromWorld = true; } }; static_assert(sizeof(CPlane) == 0x29C, "CPlane: error"); diff --git a/src/entities/PlayerPed.cpp b/src/entities/PlayerPed.cpp index 86312996..2d67d5b2 100644 --- a/src/entities/PlayerPed.cpp +++ b/src/entities/PlayerPed.cpp @@ -2,4 +2,13 @@ #include "patcher.h" #include "PlayerPed.h" +CPlayerPed::~CPlayerPed() +{ + delete m_pWanted; +} + WRAPPER void CPlayerPed::ReApplyMoveAnims(void) { EAXJMP(0x4F07C0); } + +STARTPATCHES + InjectHook(0x4EFB30, &CPlayerPed::dtor, PATCH_JUMP); +ENDPATCHES \ No newline at end of file diff --git a/src/entities/PlayerPed.h b/src/entities/PlayerPed.h index d268f61b..d09deb49 100644 --- a/src/entities/PlayerPed.h +++ b/src/entities/PlayerPed.h @@ -39,6 +39,9 @@ public: float field_1512; float m_fFPSMoveHeading; + ~CPlayerPed(); + + void dtor(void) { this->CPlayerPed::~CPlayerPed(); } void ReApplyMoveAnims(void); }; diff --git a/src/entities/Projectile.cpp b/src/entities/Projectile.cpp new file mode 100644 index 00000000..e21323de --- /dev/null +++ b/src/entities/Projectile.cpp @@ -0,0 +1,7 @@ +#include "common.h" +#include "patcher.h" +#include "Projectile.h" + +STARTPATCHES + InjectHook(0x4BFED0, &CProjectile::dtor, PATCH_JUMP); +ENDPATCHES \ No newline at end of file diff --git a/src/entities/Projectile.h b/src/entities/Projectile.h new file mode 100644 index 00000000..a8e826b6 --- /dev/null +++ b/src/entities/Projectile.h @@ -0,0 +1,11 @@ +#pragma once + +#pragma once + +#include "Object.h" + +class CProjectile : public CObject +{ +public: + void dtor(void) { this->CProjectile::~CProjectile(); } +}; diff --git a/src/entities/Train.cpp b/src/entities/Train.cpp new file mode 100644 index 00000000..62fd53ec --- /dev/null +++ b/src/entities/Train.cpp @@ -0,0 +1,14 @@ +#include "common.h" +#include "patcher.h" +#include "Train.h" + +CTrain::CTrain(int mi, uint8 owner) +{ + ctor(mi, owner); +} + +WRAPPER CTrain* CTrain::ctor(int, uint8) { EAXJMP(0x54E2A0); } + +STARTPATCHES +InjectHook(0x54E450, &CTrain::dtor, PATCH_JUMP); +ENDPATCHES \ No newline at end of file diff --git a/src/entities/Train.h b/src/entities/Train.h index f3fb9a40..84b6faf5 100644 --- a/src/entities/Train.h +++ b/src/entities/Train.h @@ -1,5 +1,7 @@ #pragma once +#include "common.h" +#include "patcher.h" #include "Vehicle.h" enum @@ -16,5 +18,9 @@ public: uint8 stuff2[7]; int16 m_doorState; uint8 stuff3[62]; + + CTrain(int, uint8); + CTrain* ctor(int, uint8); + void dtor(void) { this->CTrain::~CTrain(); } }; static_assert(sizeof(CTrain) == 0x2E4, "CTrain: error"); diff --git a/src/entities/Treadable.cpp b/src/entities/Treadable.cpp index e2eca36a..230d1633 100644 --- a/src/entities/Treadable.cpp +++ b/src/entities/Treadable.cpp @@ -1,7 +1,12 @@ #include "common.h" +#include "patcher.h" #include "rpworld.h" #include "Treadable.h" #include "Pools.h" void *CTreadable::operator new(size_t sz) { return CPools::GetTreadablePool()->New(); } void CTreadable::operator delete(void *p, size_t sz) { CPools::GetTreadablePool()->Delete((CTreadable*)p); } + +STARTPATCHES + InjectHook(0x405A10, &CTreadable::dtor, PATCH_JUMP); +ENDPATCHES \ No newline at end of file diff --git a/src/entities/Treadable.h b/src/entities/Treadable.h index df5c9ee0..2194638d 100644 --- a/src/entities/Treadable.h +++ b/src/entities/Treadable.h @@ -12,5 +12,6 @@ public: int16 m_nodeIndicesPeds[12]; virtual bool GetIsATreadable(void) { return true; } + void dtor(void) { this->CTreadable::~CTreadable(); } }; static_assert(sizeof(CTreadable) == 0x94, "CTreadable: error"); diff --git a/src/entities/Vehicle.cpp b/src/entities/Vehicle.cpp index ced504a3..bcbaee32 100644 --- a/src/entities/Vehicle.cpp +++ b/src/entities/Vehicle.cpp @@ -4,6 +4,8 @@ #include "Pools.h" #include "CarCtrl.h" #include "ModelIndices.h" +#include "DMAudio.h" +#include "Radar.h" bool &CVehicle::bWheelsOnlyCheat = *(bool *)0x95CD78; bool &CVehicle::bAllDodosCheat = *(bool *)0x95CD75; @@ -12,8 +14,34 @@ bool &CVehicle::bCheat4 = *(bool *)0x95CD65; bool &CVehicle::bCheat5 = *(bool *)0x95CD64; void *CVehicle::operator new(size_t sz) { return CPools::GetVehiclePool()->New(); } +void *CVehicle::operator new(size_t sz, int handle) { return CPools::GetVehiclePool()->New(handle); } void CVehicle::operator delete(void *p, size_t sz) { CPools::GetVehiclePool()->Delete((CVehicle*)p); } +CVehicle::~CVehicle() +{ + m_nAlarmState = 0; + if (m_audioEntityId >= 0){ + DMAudio.DestroyEntity(m_audioEntityId); + m_audioEntityId = -5; + } + CRadar::ClearBlipForEntity(BLIP_CAR, CPools::GetVehiclePool()->GetIndex(this)); + for (int i = 0; i < m_nNumMaxPassengers; i++){ + if (pPassengers[i]) + pPassengers[i]->FlagToDestroyWhenNextProcessed(); + } + if (m_pCarFire) + m_pCarFire->Extinguish(); + CCarCtrl::UpdateCarCount(this, true); + if (bIsAmbulanceOnDuty){ + CCarCtrl::NumAmbulancesOnDuty--; + bIsAmbulanceOnDuty = false; + } + if (bIsFiretruckOnDuty){ + CCarCtrl::NumFiretrucksOnDuty--; + bIsFiretruckOnDuty = false; + } +} + bool CVehicle::IsLawEnforcementVehicle(void) { @@ -46,6 +74,28 @@ CVehicle::ChangeLawEnforcerState(bool enable) } } +void +CVehicle::RemovePassenger(CPed *p) +{ + if (IsTrain()){ + for (int i = 0; i < 8; i++){ + if (pPassengers[i] == p) { + pPassengers[i] = nil; + m_nNumPassengers--; + return; + } + } + return; + } + for (int i = 0; i < m_nNumMaxPassengers; i++){ + if (pPassengers[i] == p){ + pPassengers[i] = nil; + m_nNumPassengers--; + return; + } + } +} + void CVehicle::RemoveDriver(void) { diff --git a/src/entities/Vehicle.h b/src/entities/Vehicle.h index f11e9e97..eed8f7a8 100644 --- a/src/entities/Vehicle.h +++ b/src/entities/Vehicle.h @@ -50,8 +50,8 @@ public: float m_fBreakPedal; uint8 m_nCreatedBy; // eVehicleCreatedBy uint8 bIsLawEnforcer : 1; - uint8 m_veh_flagA2 : 1; - uint8 m_veh_flagA4 : 1; + uint8 bIsAmbulanceOnDuty : 1; + uint8 bIsFiretruckOnDuty : 1; uint8 m_veh_flagA8 : 1; uint8 m_veh_flagA10 : 1; uint8 m_veh_flagA20 : 1; @@ -111,8 +111,13 @@ public: eVehicleType m_vehType; static void *operator new(size_t); + static void *operator new(size_t sz, int slot); static void operator delete(void*, size_t); + ~CVehicle(void); + + void dtor(void) { this->CVehicle::~CVehicle(); } + bool IsCar(void) { return m_vehType == VEHICLE_TYPE_CAR; } bool IsBoat(void) { return m_vehType == VEHICLE_TYPE_BOAT; } bool IsTrain(void) { return m_vehType == VEHICLE_TYPE_TRAIN; } @@ -120,6 +125,7 @@ public: bool IsPlane(void) { return m_vehType == VEHICLE_TYPE_PLANE; } bool IsLawEnforcementVehicle(void); void ChangeLawEnforcerState(bool enable); + void RemovePassenger(CPed *); void RemoveDriver(void); bool IsUpsideDown(void); diff --git a/src/math/Matrix.h b/src/math/Matrix.h index 63cb2753..6e1001cb 100644 --- a/src/math/Matrix.h +++ b/src/math/Matrix.h @@ -202,6 +202,21 @@ public: void CopyOnlyMatrix(CMatrix *other){ m_matrix = other->m_matrix; } + void SetUnity(void) { + m_matrix.right.x = 1.0f; + m_matrix.right.y = 0.0f; + m_matrix.right.z = 0.0f; + m_matrix.up.x = 0.0f; + m_matrix.up.y = 1.0f; + m_matrix.up.z = 0.0f; + m_matrix.at.x = 0.0f; + m_matrix.at.y = 0.0f; + m_matrix.at.z = 1.0f; + m_matrix.pos.x = 0.0f; + m_matrix.pos.x = 0.0f; + m_matrix.pos.y = 0.0f; + m_matrix.pos.z = 0.0f; + } }; inline CMatrix& diff --git a/src/templates.h b/src/templates.h index 7ed7043e..ef2db33a 100644 --- a/src/templates.h +++ b/src/templates.h @@ -60,7 +60,7 @@ public: return (T*)&m_entries[m_allocPtr]; } T *New(int handle){ - T *entry = (T*)m_entries[handle>>8]; + T *entry = (T*)&m_entries[handle>>8]; SetNotFreeAt(handle); return entry; } From 90bcb888e8cd3f6580984c0248e474650c350007 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sun, 30 Jun 2019 16:20:11 +0300 Subject: [PATCH 17/17] Reactivated Store(Restore)StuffIn(From)Mem, fixed bugs --- src/Collision.cpp | 2 -- src/control/Replay.cpp | 62 ++++++++++++++++++++-------------------- src/control/Replay.h | 10 +++---- src/entities/Ped.cpp | 1 + src/entities/Ped.h | 1 + src/entities/Vehicle.cpp | 3 ++ src/entities/Vehicle.h | 1 + 7 files changed, 42 insertions(+), 38 deletions(-) diff --git a/src/Collision.cpp b/src/Collision.cpp index 6189a3fc..62b27eff 100644 --- a/src/Collision.cpp +++ b/src/Collision.cpp @@ -1736,8 +1736,6 @@ CColModel::operator=(const CColModel &other) int i; int numVerts; - assert(0); - boundingSphere = other.boundingSphere; boundingBox = other.boundingBox; diff --git a/src/control/Replay.cpp b/src/control/Replay.cpp index 4733f6f2..b6a7b8c2 100644 --- a/src/control/Replay.cpp +++ b/src/control/Replay.cpp @@ -47,13 +47,13 @@ uint8 *&CReplay::pBuf8 = *(uint8**)0x8E2C54; CEntryInfoNode *&CReplay::pBuf9 = *(CEntryInfoNode**)0x8E2C58; uint8 *&CReplay::pBuf10 = *(uint8**)0x8F2C28; CDummyPed *&CReplay::pBuf11 = *(CDummyPed**)0x8F2C2C; -CBlip *&CReplay::pRadarBlips = *(CBlip**)0x8F29F8; -CCamera *&CReplay::pStoredCam = *(CCamera**)0x8F2C34; -CSector *&CReplay::pWorld1 = *(CSector**)0x8E29C4; +uint8 *&CReplay::pRadarBlips = *(uint8**)0x8F29F8; +uint8 *&CReplay::pStoredCam = *(uint8**)0x8F2C34; +uint8 *&CReplay::pWorld1 = *(uint8**)0x8E29C4; CReference *&CReplay::pEmptyReferences = *(CReference**)0x8F256C; CStoredDetailedAnimationState *&CReplay::pPedAnims = *(CStoredDetailedAnimationState**)0x8F6260; -CPickup *&CReplay::pPickups = *(CPickup**)0x8F1A48; -CReference *&CReplay::pReferences = *(CReference**)0x880FAC; +uint8 *&CReplay::pPickups = *(uint8**)0x8F1A48; +uint8 *&CReplay::pReferences = *(uint8**)0x880FAC; uint8(&CReplay::BufferStatus)[8] = *(uint8(*)[8])*(uintptr*)0x8804D8; uint8(&CReplay::Buffers)[8][100000] = *(uint8(*)[8][100000])*(uintptr*)0x779958; bool &CReplay::bPlayingBackFromFile = *(bool*)0x95CD58; @@ -988,7 +988,7 @@ void CReplay::TriggerPlayback(uint8 cam_mode, float cam_x, float cam_y, float ca } #endif -#if 1 +#if 0 WRAPPER void CReplay::StoreStuffInMem(void) { EAXJMP(0x5961F0); } #else void CReplay::StoreStuffInMem(void) @@ -999,19 +999,19 @@ void CReplay::StoreStuffInMem(void) CPools::GetPtrNodePool()->Store(pBuf6, pBuf7); CPools::GetEntryInfoNodePool()->Store(pBuf8, pBuf9); CPools::GetDummyPool()->Store(pBuf10, pBuf11); - pWorld1 = (CSector*)malloc(sizeof(CSector) * NUMSECTORS_X * NUMSECTORS_Y); + pWorld1 = new uint8[sizeof(CSector) * NUMSECTORS_X * NUMSECTORS_Y]; memcpy(pWorld1, CWorld::GetSector(0, 0), NUMSECTORS_X * NUMSECTORS_Y * sizeof(CSector)); - WorldPtrList = CWorld::GetMovingEntityList(); /* Interesting way to copy a list... */ + WorldPtrList = CWorld::GetMovingEntityList(); BigBuildingPtrList = CWorld::GetBigBuildingList(LEVEL_NONE); - pPickups = (CPickup*)malloc(sizeof(CPickup) * NUMPICKUPS); + pPickups = new uint8[sizeof(CPickup) * NUMPICKUPS]; memcpy(pPickups, CPickups::aPickUps, NUMPICKUPS * sizeof(CPickup)); - pReferences = (CReference*)malloc(sizeof(CReference) * NUMREFERENCES); + pReferences = new uint8[(sizeof(CReference) * NUMREFERENCES)]; memcpy(pReferences, CReferences::aRefs, NUMREFERENCES * sizeof(CReference)); pEmptyReferences = CReferences::pEmptyList; - pStoredCam = (CCamera*)malloc(sizeof(CCamera)); + pStoredCam = new uint8[sizeof(CCamera)]; memcpy(pStoredCam, &TheCamera, sizeof(CCamera)); - pRadarBlips = (CBlip*)malloc(sizeof(CBlip) * NUMBLIPS); - memcpy(pRadarBlips, CRadar::ms_RadarTrace, NUMBLIPS * sizeof(CBlip)); + pRadarBlips = new uint8[sizeof(CBlip) * NUMRADARBLIPS]; + memcpy(pRadarBlips, CRadar::ms_RadarTrace, NUMRADARBLIPS * sizeof(CBlip)); PlayerWanted = *FindPlayerPed()->m_pWanted; PlayerInfo = CWorld::Players[0]; Time1 = CTimer::GetTimeInMilliseconds(); @@ -1037,7 +1037,7 @@ void CReplay::StoreStuffInMem(void) } #endif -#if 1 +#if 0 WRAPPER void CReplay::RestoreStuffFromMem(void) { EAXJMP(0x5966E0); } #else void CReplay::RestoreStuffFromMem(void) @@ -1049,28 +1049,28 @@ void CReplay::RestoreStuffFromMem(void) CPools::GetEntryInfoNodePool()->CopyBack(pBuf8, pBuf9); CPools::GetDummyPool()->CopyBack(pBuf10, pBuf11); memcpy(CWorld::GetSector(0, 0), pWorld1, sizeof(CSector) * NUMSECTORS_X * NUMSECTORS_Y); - free(pWorld1); + delete[] pWorld1; pWorld1 = nil; CWorld::GetMovingEntityList() = WorldPtrList; CWorld::GetBigBuildingList(LEVEL_NONE) = BigBuildingPtrList; memcpy(CPickups::aPickUps, pPickups, sizeof(CPickup) * NUMPICKUPS); - free(pPickups); + delete[] pPickups; pPickups = nil; memcpy(CReferences::aRefs, pReferences, sizeof(CReference) * NUMREFERENCES); - free(pReferences); + delete[] pReferences; pReferences = nil; CReferences::pEmptyList = pEmptyReferences; pEmptyReferences = nil; memcpy(&TheCamera, pStoredCam, sizeof(CCamera)); - free(pStoredCam); + delete[] pStoredCam; pStoredCam = nil; - memcpy(CRadar::ms_RadarTrace, pRadarBlips, sizeof(CBlip) * NUMBLIPS); - free(pRadarBlips); + memcpy(CRadar::ms_RadarTrace, pRadarBlips, sizeof(CBlip) * NUMRADARBLIPS); + delete[] pRadarBlips; pRadarBlips = nil; FindPlayerPed()->m_pWanted = new CWanted(PlayerWanted); /* Nice memory leak */ CWorld::Players[0] = PlayerInfo; - int size = CPools::GetPedPool()->GetSize(); - for (int i = size - 1; i >= 0; i--){ + int i = CPools::GetPedPool()->GetSize(); + while (--i){ CPed* ped = CPools::GetPedPool()->GetSlot(i); if (!ped) continue; @@ -1087,8 +1087,8 @@ void CReplay::RestoreStuffFromMem(void) if (ped->m_wepModelID >= 0) ped->AddWeaponModel(ped->m_wepModelID); } - size = CPools::GetVehiclePool()->GetSize(); - for (int i = size - 1; i >= 0; i--) { + i = CPools::GetVehiclePool()->GetSize(); + while (--i){ CVehicle* vehicle = CPools::GetVehiclePool()->GetSlot(i); if (!vehicle) continue; @@ -1146,8 +1146,8 @@ void CReplay::RestoreStuffFromMem(void) } } PrintElementsInPtrList(); - size = CPools::GetObjectPool()->GetSize(); - for (int i = size - 1; i >= 0; i--) { + i = CPools::GetObjectPool()->GetSize(); + while (--i){ CObject* object = CPools::GetObjectPool()->GetSlot(i); if (!object) continue; @@ -1161,8 +1161,8 @@ void CReplay::RestoreStuffFromMem(void) if (RwObjectGetType(object->m_rwObject) == rpATOMIC) object->GetMatrix().AttachRW(RwFrameGetMatrix(RpAtomicGetFrame(object->m_rwObject)), false); } - size = CPools::GetDummyPool()->GetSize(); - for (int i = size - 1; i >= 0; i--) { + i = CPools::GetDummyPool()->GetSize(); + while (--i){ CDummy* dummy = CPools::GetDummyPool()->GetSlot(i); if (!dummy) continue; @@ -1188,8 +1188,7 @@ void CReplay::RestoreStuffFromMem(void) CWeather::OldWeatherType = OldWeatherType; CWeather::NewWeatherType = NewWeatherType; CWeather::InterpolationValue = WeatherInterpolationValue; - size = CPools::GetPedPool()->GetSize(); - for (int i = 0; i < size; i++) { + for (int i = 0; i < CPools::GetPedPool()->GetSize(); i++) { CPed* ped = CPools::GetPedPool()->GetSlot(i); if (!ped) continue; @@ -1236,9 +1235,10 @@ InjectHook(0x592FE0, CReplay::Init, PATCH_JUMP); InjectHook(0x593150, CReplay::DisableReplays, PATCH_JUMP); InjectHook(0x593160, CReplay::EnableReplays, PATCH_JUMP); InjectHook(0x593170, CReplay::Update, PATCH_JUMP); +InjectHook(0x595B20, CReplay::FinishPlayback, PATCH_JUMP); InjectHook(0x594050, CReplay::ProcessPedUpdate, PATCH_JUMP); InjectHook(0x594D10, CReplay::ProcessCarUpdate, PATCH_JUMP); InjectHook(0x593BB0, CReplay::StoreDetailedPedAnimation, PATCH_JUMP); InjectHook(0x5944B0, CReplay::RetrieveDetailedPedAnimation, PATCH_JUMP); -//InjectHook(0x5966E0, CReplay::RestoreStuffFromMem, PATCH_JUMP); +InjectHook(0x596030, CReplay::TriggerPlayback, PATCH_JUMP); ENDPATCHES diff --git a/src/control/Replay.h b/src/control/Replay.h index f44e4c41..18701293 100644 --- a/src/control/Replay.h +++ b/src/control/Replay.h @@ -201,13 +201,13 @@ private: static CEntryInfoNode *&pBuf9; static uint8 *&pBuf10; static CDummyPed *&pBuf11; - static CBlip *&pRadarBlips; - static CCamera *&pStoredCam; - static CSector *&pWorld1; + static uint8 *&pRadarBlips; + static uint8 *&pStoredCam; + static uint8 *&pWorld1; static CReference *&pEmptyReferences; static CStoredDetailedAnimationState *&pPedAnims; - static CPickup *&pPickups; - static CReference *&pReferences; + static uint8 *&pPickups; + static uint8 *&pReferences; static uint8 (&BufferStatus)[8]; static uint8 (&Buffers)[8][100000]; static bool &bPlayingBackFromFile; diff --git a/src/entities/Ped.cpp b/src/entities/Ped.cpp index a82d4fdc..85a588dc 100644 --- a/src/entities/Ped.cpp +++ b/src/entities/Ped.cpp @@ -30,6 +30,7 @@ CVector &CPed::offsetToOpenVanDoor = *(CVector*)0x62E048; void *CPed::operator new(size_t sz) { return CPools::GetPedPool()->New(); } void *CPed::operator new(size_t sz, int handle) { return CPools::GetPedPool()->New(handle); } void CPed::operator delete(void *p, size_t sz) { CPools::GetPedPool()->Delete((CPed*)p); } +void CPed::operator delete(void *p, int handle) { CPools::GetPedPool()->Delete((CPed*)p); } CPed::~CPed(void) { diff --git a/src/entities/Ped.h b/src/entities/Ped.h index 2edbd9e2..8f4939fc 100644 --- a/src/entities/Ped.h +++ b/src/entities/Ped.h @@ -272,6 +272,7 @@ public: static void *operator new(size_t); static void *operator new(size_t, int); static void operator delete(void*, size_t); + static void operator delete(void*, int); ~CPed(void); void FlagToDestroyWhenNextProcessed(void); diff --git a/src/entities/Vehicle.cpp b/src/entities/Vehicle.cpp index bcbaee32..8c1ef515 100644 --- a/src/entities/Vehicle.cpp +++ b/src/entities/Vehicle.cpp @@ -16,6 +16,7 @@ bool &CVehicle::bCheat5 = *(bool *)0x95CD64; void *CVehicle::operator new(size_t sz) { return CPools::GetVehiclePool()->New(); } void *CVehicle::operator new(size_t sz, int handle) { return CPools::GetVehiclePool()->New(handle); } void CVehicle::operator delete(void *p, size_t sz) { CPools::GetVehiclePool()->Delete((CVehicle*)p); } +void CVehicle::operator delete(void *p, int handle) { CPools::GetVehiclePool()->Delete((CVehicle*)p); } CVehicle::~CVehicle() { @@ -25,6 +26,8 @@ CVehicle::~CVehicle() m_audioEntityId = -5; } CRadar::ClearBlipForEntity(BLIP_CAR, CPools::GetVehiclePool()->GetIndex(this)); + if (pDriver) + pDriver->FlagToDestroyWhenNextProcessed(); for (int i = 0; i < m_nNumMaxPassengers; i++){ if (pPassengers[i]) pPassengers[i]->FlagToDestroyWhenNextProcessed(); diff --git a/src/entities/Vehicle.h b/src/entities/Vehicle.h index eed8f7a8..997720f6 100644 --- a/src/entities/Vehicle.h +++ b/src/entities/Vehicle.h @@ -113,6 +113,7 @@ public: static void *operator new(size_t); static void *operator new(size_t sz, int slot); static void operator delete(void*, size_t); + static void operator delete(void*, int); ~CVehicle(void);