diff --git a/source/StdInc.h b/source/StdInc.h index 0fd353f68d..27ce5cd329 100644 --- a/source/StdInc.h +++ b/source/StdInc.h @@ -120,7 +120,6 @@ namespace fs = std::filesystem; #include "game_sa\Enums\eClothesTexturePart.h" #include "game_sa\Enums\eCrimeType.h" #include "game_sa\Enums\eDecisionMakerEvents.h" -#include "game_sa\Enums\eEmergencyPedVoices.h" #include "game_sa\Enums\eEntityStatus.h" #include "game_sa\Enums\eEntityType.h" #include "game_sa\Enums\eEventType.h" diff --git a/source/extensions/WEnum.hpp b/source/extensions/WEnum.hpp index 2439df1804..0bd66b2ced 100644 --- a/source/extensions/WEnum.hpp +++ b/source/extensions/WEnum.hpp @@ -45,3 +45,15 @@ using WEnumU32 = WEnum; template using WEnumS32 = WEnum; }; + +#define NOTSA_WENUM_DEFS_FOR(_e) \ + using _e##S8 = notsa::WEnumS8<_e>; \ + using _e##S16 = notsa::WEnumS16<_e>; \ + using _e##S32 = notsa::WEnumS32<_e>; + +//! Use unary operator + instead of ugly `static_cast` for enum (class) for casting to underlaying type +template + requires std::is_enum_v +inline constexpr auto operator+(T e) noexcept { + return static_cast>(e); +} diff --git a/source/extensions/ci_string.hpp b/source/extensions/ci_string.hpp index 75f23d233d..bb5a3bd866 100644 --- a/source/extensions/ci_string.hpp +++ b/source/extensions/ci_string.hpp @@ -1,5 +1,6 @@ #pragma once +#include "KeyGen.h" #include #include @@ -32,3 +33,19 @@ struct ci_char_traits : public std::char_traits { using ci_string = std::basic_string; using ci_string_view = std::basic_string_view; }; // namespace notsa + +namespace std { +template<> +struct hash { + std::size_t operator()(const notsa::ci_string& s) const noexcept { + return CKeyGen::GetUppercaseKey(s.data(), s.data() + s.size()); + } +}; + +template<> +struct hash { + std::size_t operator()(const notsa::ci_string_view& s) const noexcept { + return CKeyGen::GetUppercaseKey(s.data(), s.data() + s.size()); + } +}; +} diff --git a/source/game_sa/Audio/AEAudioEnvironment.cpp b/source/game_sa/Audio/AEAudioEnvironment.cpp index 62082d500f..4bf03900b5 100644 --- a/source/game_sa/Audio/AEAudioEnvironment.cpp +++ b/source/game_sa/Audio/AEAudioEnvironment.cpp @@ -12,8 +12,8 @@ void CAEAudioEnvironment::InjectHooks() { RH_ScopedInstall(GetDistanceAttenuation, 0x4D7F20); RH_ScopedInstall(GetDirectionalMikeAttenuation, 0x4D7F60); RH_ScopedInstall(GetReverbEnvironmentAndDepth, 0x4D8010); - RH_ScopedOverloadedInstall(GetPositionRelativeToCamera, "vec", 0x4D80B0, void(*)(CVector*, const CVector*)); - RH_ScopedOverloadedInstall(GetPositionRelativeToCamera, "placeable", 0x4D8340, void(*)(CVector*, CPlaceable*)); + RH_ScopedOverloadedInstall(GetPositionRelativeToCamera, "vec", 0x4D80B0, CVector(*)(const CVector&)); + RH_ScopedOverloadedInstall(GetPositionRelativeToCamera, "placeable", 0x4D8340, CVector(*)(CPlaceable*)); } // 0x4D7E40 @@ -95,38 +95,29 @@ void CAEAudioEnvironment::GetReverbEnvironmentAndDepth(int8* reverbEnv, int32* d } // 0x4D80B0 -void CAEAudioEnvironment::GetPositionRelativeToCamera(CVector* vecOut, const CVector* vecPos) { - static const float fFirstPersonMult = 2.0F; - if (!vecPos) - return; - - const auto camMode = CCamera::GetActiveCamera().m_nMode; - if (camMode == eCamMode::MODE_SNIPER || camMode == eCamMode::MODE_ROCKETLAUNCHER || camMode == eCamMode::MODE_1STPERSON) { - const auto& tempMat = TheCamera.m_mCameraMatrix; - const auto& vecCamPos = TheCamera.GetPosition(); - const auto vecOffset = *vecPos - (vecCamPos - tempMat.GetForward() * fFirstPersonMult); - - vecOut->x = -DotProduct(vecOffset, tempMat.GetRight()); - vecOut->y = DotProduct(vecOffset, tempMat.GetForward()); - vecOut->z = DotProduct(vecOffset, tempMat.GetUp()); - return; +CVector CAEAudioEnvironment::GetPositionRelativeToCamera(const CVector& pt) { + const auto& camMat = TheCamera.m_mCameraMatrix; + const auto Calculate = [&](CVector offset) { + const auto posOS = pt - TheCamera.GetPosition() + offset; + return camMat.InverseTransformVector(CVector{-posOS.x, posOS.y, posOS.z}); + }; + switch (CCamera::GetActiveCamera().m_nMode) { + case eCamMode::MODE_SNIPER: + case eCamMode::MODE_ROCKETLAUNCHER: + case eCamMode::MODE_1STPERSON: { + return Calculate(-camMat.GetForward() * 2.f); + } + default: { + const auto* player = FindPlayerPed(); + const auto camDist = player + ? std::clamp(CVector::Dist(camMat.GetPosition(), player->GetPosition()), 0.0F, 0.5F) + : 0.f; + return Calculate(camMat.GetForward() * camDist); + } } - - auto fMult = 0.0F; - auto* player = FindPlayerPed(); - if (player) - fMult = std::clamp(DistanceBetweenPoints(TheCamera.GetPosition(), player->GetPosition()), 0.0F, 0.5F); - - const auto& tempMat = TheCamera.m_mCameraMatrix; - const auto& vecCamPos = TheCamera.GetPosition(); - const auto vecOffset = *vecPos - (vecCamPos + tempMat.GetForward() * fMult); - - vecOut->x = -DotProduct(vecOffset, tempMat.GetRight()); - vecOut->y = DotProduct(vecOffset, tempMat.GetForward()); - vecOut->z = DotProduct(vecOffset, tempMat.GetUp()); } // 0x4D8340 -void CAEAudioEnvironment::GetPositionRelativeToCamera(CVector* vecOut, CPlaceable* placeable) { - return CAEAudioEnvironment::GetPositionRelativeToCamera(vecOut, &placeable->GetPosition()); +CVector CAEAudioEnvironment::GetPositionRelativeToCamera(CPlaceable* placeable) { + return CAEAudioEnvironment::GetPositionRelativeToCamera(placeable->GetPosition()); } diff --git a/source/game_sa/Audio/AEAudioEnvironment.h b/source/game_sa/Audio/AEAudioEnvironment.h index c7d7c5afd0..9dbef84d59 100644 --- a/source/game_sa/Audio/AEAudioEnvironment.h +++ b/source/game_sa/Audio/AEAudioEnvironment.h @@ -17,8 +17,8 @@ class CAEAudioEnvironment { static float GetDistanceAttenuation(float dist); static float GetDirectionalMikeAttenuation(const CVector& soundDir); static void GetReverbEnvironmentAndDepth(int8* reverbEnv, int32* depth); - static void GetPositionRelativeToCamera(CVector* vecOut, const CVector* vecPos); - static void GetPositionRelativeToCamera(CVector* vecOut, CPlaceable* placeable); + static CVector GetPositionRelativeToCamera(const CVector& pos); + static CVector GetPositionRelativeToCamera(CPlaceable* placeable); }; static constexpr int32 NUM_AUDIO_ENVIRONMENTS = 68; diff --git a/source/game_sa/Audio/AEAudioUtility.cpp b/source/game_sa/Audio/AEAudioUtility.cpp index 7b1763ec85..57e4c696a9 100644 --- a/source/game_sa/Audio/AEAudioUtility.cpp +++ b/source/game_sa/Audio/AEAudioUtility.cpp @@ -7,15 +7,46 @@ uint64& CAEAudioUtility::startTimeMs = *reinterpret_cast(0xb610f8); float (&CAEAudioUtility::m_sfLogLookup)[50][2] = *reinterpret_cast(0xb61100); -// NOTE: Not sure about the size. -static inline auto& gScriptBanksLookup = *reinterpret_cast*>(0x8ABC70); +// NOTE: For me all values were 0... The below values should be the correct ones: +static constexpr std::array gScriptBanksLookup = { + SND_BANK_SCRIPT_VIDEO_POKER, + SND_BANK_SCRIPT_SHOOTING_RANGE, + SND_BANK_SCRIPT_POOL_MINIGAME, + SND_BANK_SCRIPT_NULL, + SND_BANK_SCRIPT_KEYPAD, + SND_BANK_SCRIPT_NULL, + SND_BANK_SCRIPT_GOGO, + SND_BANK_SCRIPT_DUALITY, + SND_BANK_SCRIPT_NULL, + SND_BANK_SCRIPT_BLACK_PROJECT, + SND_BANK_SCRIPT_BEE, + SND_BANK_SCRIPT_BASKETBALL, + SND_BANK_SCRIPT_MEAT_BUSINESS, + SND_BANK_SCRIPT_ROULETTE, + SND_BANK_SCRIPT_BANDIT, + SND_BANK_SCRIPT_NULL, + SND_BANK_SCRIPT_NULL, + SND_BANK_SCRIPT_OGLOC, + SND_BANK_SCRIPT_CARGO_PLANE, + SND_BANK_SCRIPT_DA_NANG, + SND_BANK_SCRIPT_GYM, + SND_BANK_SCRIPT_OTB, + SND_BANK_SCRIPT_STINGER, + SND_BANK_SCRIPT_UNCLE_SAM, + SND_BANK_SCRIPT_VERTICAL_BIRD, + SND_BANK_SCRIPT_MECHANIC, + SND_BANK_SCRIPT_CAT2_BANK, + SND_BANK_SCRIPT_AIR_HORN, + SND_BANK_SCRIPT_RESTAURANT, + SND_BANK_SCRIPT_TEMPEST +}; void CAEAudioUtility::InjectHooks() { RH_ScopedClass(CAEAudioUtility); RH_ScopedCategory("Audio"); - RH_ScopedOverloadedInstall(GetRandomNumberInRange, "int", 0x4d9c10, int32(*)(const int32, const int32)); - RH_ScopedOverloadedInstall(GetRandomNumberInRange, "float", 0x4d9c50, float(*)(float, float)); + RH_ScopedOverloadedInstall(GetRandomNumberInRange, "int", 0x4d9c10, int32(*)(int32, int32)); + RH_ScopedOverloadedInstall(GetRandomNumberInRange, "float", 0x4d9c50, float(*)(float, float)); RH_ScopedInstall(ResolveProbability, 0x4d9c80); RH_ScopedInstall(GetPiecewiseLinear, 0x4d9d90); RH_ScopedInstall(AudioLog10, 0x4d9e50); @@ -28,18 +59,6 @@ void CAEAudioUtility::InjectHooks() { RH_ScopedInstall(StaticInitialise, 0x5b97f0); } -// 0x4d9c10 -int32 CAEAudioUtility::GetRandomNumberInRange(const int32 min, const int32 max) { - // This and CGeneral differs in that this function returns a number [min, max + 1], while - // the other [min, max]. To solve this we do `max + 1` - return CGeneral::GetRandomNumberInRange(min, max + 1); -} - -// 0x4d9c50 -float CAEAudioUtility::GetRandomNumberInRange(float a, float b) { - return CGeneral::GetRandomNumberInRange(a, b); -} - // 0x4d9c80 bool CAEAudioUtility::ResolveProbability(float p) { return p >= 1.0f || CGeneral::RandomBool(100.0f * p); @@ -107,28 +126,21 @@ void CAEAudioUtility::StaticInitialise() { } // 0x4D9CC0 -bool CAEAudioUtility::GetBankAndSoundFromScriptSlotAudioEvent(int32& slot, int32& outBank, int32& outSound, int32 a4) { - if (slot < 1800) +bool CAEAudioUtility::GetBankAndSoundFromScriptSlotAudioEvent(const eAudioEvents& scriptID, eSoundBankS32& outBankID, int32& outSoundID, int32 slot) { + if (scriptID < AE_SCRIPT_BANK_FIRST) { return false; - - if (slot < 2000) { - outBank = gScriptBanksLookup[slot - 1800]; - return true; } - - if (slot == 0xFFFF) { // (uint16)-1 - outBank = 291; - - if (a4 > 3) - outSound = 0; - else - outSound = 2 * (a4 % 2); - - return true; + if (scriptID < AE_SCRIPT_SLOT_FIRST) { + outBankID = gScriptBanksLookup[scriptID - AE_SCRIPT_BANK_FIRST]; + } else if (scriptID == AE_SCRIPT_SLOT_USE_CUSTOM) { + outBankID = SND_BANK_SCRIPT_NULL; + outSoundID = slot > 3 + ? 0 + : 2 * (slot % 2); + } else { + outSoundID = (slot - 2'000) % 200; + outBankID = (eSoundBank)(SND_BANK_SCRIPT_FIRST + outSoundID); //SND_BANK_SCRIPT_FIRST + static_cast(std::floor(float(slot - AE_SCRIPT_SLOT_FIRST) / 200.0f)); } - - outBank = static_cast(std::floor(float(slot - 2000) / 200.0f)) + 147; - outSound = (slot - 2000) % 200; return true; } diff --git a/source/game_sa/Audio/AEAudioUtility.h b/source/game_sa/Audio/AEAudioUtility.h index 7b4cc80377..60b6cde89e 100644 --- a/source/game_sa/Audio/AEAudioUtility.h +++ b/source/game_sa/Audio/AEAudioUtility.h @@ -1,5 +1,6 @@ #pragma once #include "eRadioID.h" +#include class CVehicle; @@ -7,8 +8,20 @@ class CAEAudioUtility { public: static void StaticInitialise(); - static int32 GetRandomNumberInRange(const int32 min, const int32 max); - static float GetRandomNumberInRange(float a, float b); + /*! + * @brief This and CGeneral differs in that this function returns a number [min, max + 1], while + * @brief the other [min, max]. To solve this we do `max + 1` + */ + template + static T GetRandomNumberInRange(T min, T max) { + return CGeneral::GetRandomNumberInRange(min, max + 1); + } + + template + requires std::is_floating_point_v + static T GetRandomNumberInRange(T min, T max) { + return CGeneral::GetRandomNumberInRange(min, max); + } static CVehicle* FindVehicleOfPlayer(); static bool ResolveProbability(float prob); @@ -17,7 +30,7 @@ class CAEAudioUtility { static uint32 ConvertFromBytesToMS(uint32 lengthInBytes, uint32 frequency, uint16 frequencyMult); static uint32 ConvertFromMSToBytes(uint32 a, uint32 frequency, uint16 frequencyMult); - static bool GetBankAndSoundFromScriptSlotAudioEvent(int32& slot, int32& outBank, int32& outSound, int32 a4); + static bool GetBankAndSoundFromScriptSlotAudioEvent(const eAudioEvents& ae, eSoundBankS32& outBankID, int32& outSoundID, int32 slot); static float GetPiecewiseLinear(float x, int16 dataCount, float (*data)[2]); static uint64 GetCurrentTimeInMS(); diff --git a/source/game_sa/Audio/AESound.cpp b/source/game_sa/Audio/AESound.cpp index 4b438ea2ed..449fc6003d 100644 --- a/source/game_sa/Audio/AESound.cpp +++ b/source/game_sa/Audio/AESound.cpp @@ -22,7 +22,7 @@ void CAESound::InjectHooks() { RH_ScopedInstall(StopSound, 0x4EF1C0); RH_ScopedInstall(SetIndividualEnvironment, 0x4EF2B0); RH_ScopedInstall(UpdatePlayTime, 0x4EF2E0); - RH_ScopedOverloadedInstall(GetRelativePosition, "OG", 0x4EF350, void(CAESound::*)(CVector&) const); + RH_ScopedInstall(GetRelativePosition, 0x4EF350); RH_ScopedInstall(CalculateFrequency, 0x4EF390); RH_ScopedInstall(UpdateFrequency, 0x4EF3E0); RH_ScopedInstall(GetRelativePlaybackFrequencyWithDoppler, 0x4EF400); @@ -193,11 +193,10 @@ void CAESound::UpdatePlayTime(int16 soundLength, int16 loopStartTime, int16 play } // 0x4EF350 -void CAESound::GetRelativePosition(CVector& out) const { - if (!GetFrontEnd()) { - CAEAudioEnvironment::GetPositionRelativeToCamera(&out, &m_vecCurrPosn); - } - out = m_vecCurrPosn; +CVector CAESound::GetRelativePosition() const { + return GetFrontEnd() + ? m_vecCurrPosn + : CAEAudioEnvironment::GetPositionRelativeToCamera(m_vecCurrPosn); } // 0x4EF390 @@ -215,14 +214,14 @@ void CAESound::UpdateFrequency() { } // 0x4EF400 -float CAESound::GetRelativePlaybackFrequencyWithDoppler() { +float CAESound::GetRelativePlaybackFrequencyWithDoppler() const { return GetFrontEnd() ? m_fFrequency : m_fFrequency * CAEAudioEnvironment::GetDopplerRelativeFrequency(m_fPrevCamDist, m_fCurrCamDist, m_nPrevTimeUpdate, m_nCurrTimeUpdate, m_fTimeScale); } // 0x4EF440 -float CAESound::GetSlowMoFrequencyScalingFactor() { +float CAESound::GetSlowMoFrequencyScalingFactor() const { return GetUnpausable() || !CTimer::GetIsSlowMotionActive() || CCamera::GetActiveCamera().m_nMode == eCamMode::MODE_CAMERA ? 1.f : fSlowMoFrequencyScalingFactor; @@ -255,12 +254,12 @@ void CAESound::StopSoundAndForget() { } // 0x4EF880 -void CAESound::SetPosition(CVector vecPos) { +void CAESound::SetPosition(CVector pos) { if (!m_nLastFrameUpdate) { - m_vecPrevPosn = vecPos; - m_vecCurrPosn = vecPos; + m_vecPrevPosn = pos; + m_vecCurrPosn = pos; - auto const fCamDist = DistanceBetweenPoints(vecPos, TheCamera.GetPosition()); + auto const fCamDist = DistanceBetweenPoints(pos, TheCamera.GetPosition()); m_fCurrCamDist = fCamDist; m_fPrevCamDist = fCamDist; @@ -268,16 +267,16 @@ void CAESound::SetPosition(CVector vecPos) { m_nCurrTimeUpdate = CTimer::GetTimeInMS(); m_nPrevTimeUpdate = CTimer::GetTimeInMS(); } else if (m_nLastFrameUpdate == CTimer::GetFrameCounter()) { - m_vecCurrPosn = vecPos; - m_fCurrCamDist = DistanceBetweenPoints(vecPos, TheCamera.GetPosition()); + m_vecCurrPosn = pos; + m_fCurrCamDist = DistanceBetweenPoints(pos, TheCamera.GetPosition()); m_nCurrTimeUpdate = CTimer::GetTimeInMS(); } else { m_vecPrevPosn = m_vecCurrPosn; m_fPrevCamDist = m_fCurrCamDist; m_nPrevTimeUpdate = m_nCurrTimeUpdate; - m_vecCurrPosn = vecPos; - m_fCurrCamDist = DistanceBetweenPoints(vecPos, TheCamera.GetPosition()); + m_vecCurrPosn = pos; + m_fCurrCamDist = DistanceBetweenPoints(pos, TheCamera.GetPosition()); m_nCurrTimeUpdate = CTimer::GetTimeInMS(); m_nLastFrameUpdate = CTimer::GetFrameCounter(); } @@ -288,9 +287,8 @@ void CAESound::CalculateVolume() { if (GetFrontEnd()) m_fFinalVolume = m_fVolume - m_fSoundHeadRoom; else { - CVector relativePos; - CAEAudioEnvironment::GetPositionRelativeToCamera(&relativePos, &m_vecCurrPosn); - const auto fDist = relativePos.Magnitude() / m_fSoundDistance; + const auto relativePos = CAEAudioEnvironment::GetPositionRelativeToCamera(m_vecCurrPosn); + const auto fDist = CAEAudioEnvironment::GetPositionRelativeToCamera(m_vecCurrPosn).Magnitude() / m_fSoundDistance; const auto fAttenuation = CAEAudioEnvironment::GetDistanceAttenuation(fDist); m_fFinalVolume = CAEAudioEnvironment::GetDirectionalMikeAttenuation(relativePos) + fAttenuation + m_fVolume - m_fSoundHeadRoom; } diff --git a/source/game_sa/Audio/AESound.h b/source/game_sa/Audio/AESound.h index 89695d9b98..d6f5170f98 100644 --- a/source/game_sa/Audio/AESound.h +++ b/source/game_sa/Audio/AESound.h @@ -124,12 +124,11 @@ class CAESound { bool GetForcedFront() const { return m_bForcedFront; } void SetIndividualEnvironment(uint16 envFlag, uint16 bEnabled); // pass eSoundEnvironment as envFlag void UpdatePlayTime(int16 soundLength, int16 loopStartTime, int16 playProgress); - void GetRelativePosition(CVector& out) const; - CVector GetRelativePosition() const { CVector out; GetRelativePosition(out); return out; } // NOTSA + CVector GetRelativePosition() const; void CalculateFrequency(); void UpdateFrequency(); - float GetRelativePlaybackFrequencyWithDoppler(); - float GetSlowMoFrequencyScalingFactor(); + float GetRelativePlaybackFrequencyWithDoppler() const; + float GetSlowMoFrequencyScalingFactor() const; void NewVPSLentry(); void RegisterWithPhysicalEntity(CEntity* entity); void StopSoundAndForget(); diff --git a/source/game_sa/Audio/AudioEngine.cpp b/source/game_sa/Audio/AudioEngine.cpp index 31b2ba33c8..9c2f0966b7 100644 --- a/source/game_sa/Audio/AudioEngine.cpp +++ b/source/game_sa/Audio/AudioEngine.cpp @@ -564,8 +564,8 @@ CVector* CAudioEngine::AttachMissionAudioToPhysical(uint8 sampleId, CPhysical* p } // 0x5073C0 -void CAudioEngine::SayPedless(int32 a1, int16 a2, CEntity* entity, uint32 playOffset, float a5, uint8 a6, uint8 a7, uint8 a8) { - m_PedlessSpeechAE.AddSayEvent(a1, a2, entity, playOffset, a5, a6, a7, a8); +void CAudioEngine::SayPedless(eAudioEvents audioEvent, eGlobalSpeechContext gCtx, CEntity* attachTo, uint32 startTimeDelayMs, float probability, bool overrideSilence, bool isForceAudible, bool isFrontEnd) { + m_PedlessSpeechAE.AddSayEvent(audioEvent, gCtx, attachTo, startTimeDelayMs, probability, overrideSilence, isForceAudible, isFrontEnd); } // unused diff --git a/source/game_sa/Audio/AudioEngine.h b/source/game_sa/Audio/AudioEngine.h index d0ad8137b0..9142da4453 100644 --- a/source/game_sa/Audio/AudioEngine.h +++ b/source/game_sa/Audio/AudioEngine.h @@ -130,7 +130,7 @@ class CAudioEngine { CVector* AttachMissionAudioToObject(uint8 sampleId, CObject* object); CVector* AttachMissionAudioToPhysical(uint8 sampleId, CPhysical* physical); - void SayPedless(int32 a1, int16 a2, CEntity* entity, uint32 playOffset, float a5, uint8 a6, uint8 a7, uint8 a8); + void SayPedless(eAudioEvents audioEvent, eGlobalSpeechContext gCtx, CEntity* attachTo, uint32 startTimeDelayMs, float probability, bool overrideSilence, bool isForceAudible, bool isFrontEnd); void EnablePoliceScanner(); void DisablePoliceScanner(uint8, uint8); diff --git a/source/game_sa/Audio/Enums/PedSpeechContexts.h b/source/game_sa/Audio/Enums/PedSpeechContexts.h new file mode 100644 index 0000000000..a61b1489da --- /dev/null +++ b/source/game_sa/Audio/Enums/PedSpeechContexts.h @@ -0,0 +1,940 @@ +#pragma once + +#include + +/*! + * @brief Ped global speech contexts + * @brief These are translated to specific contexts based on the ped type (`eAudioPedType`) + */ +enum eGlobalSpeechContext : int16 { + CTX_GLOBAL_UNK = -1, + CTX_GLOBAL_NO_SPEECH = 0, // 0x0 + CTX_GLOBAL_ABUSE_GANG_BALLAS = 1, // 0x1 + CTX_GLOBAL_ABUSE_GANG_LSV = 2, // 0x2 + CTX_GLOBAL_ABUSE_GANG_VLA = 3, // 0x3 + CTX_GLOBAL_ABUSE_GANG_FAMILIES = 4, // 0x4 + CTX_GLOBAL_ABUSE_TRIAD = 5, // 0x5 + CTX_GLOBAL_ABUSE_MAFIA = 6, // 0x6 + CTX_GLOBAL_ABUSE_RIFA = 7, // 0x7 + CTX_GLOBAL_ABUSE_DA_NANG = 8, // 0x8 + CTX_GLOBAL_ACCEPT_DATE_CALL = 9, // 0x9 + CTX_GLOBAL_ACCEPT_DATE_REQUEST = 10, // 0xA + CTX_GLOBAL_AFTER_SEX = 11, // 0xB + CTX_GLOBAL_APOLOGY = 12, // 0xC + CTX_GLOBAL_ARREST = 13, // 0xD + CTX_GLOBAL_ARREST_CRIM = 14, // 0xE + CTX_GLOBAL_ARRESTED = 15, // 0xF + CTX_GLOBAL_ATTACK_BY_PLAYER_LIKE = 16, // 0x10 + CTX_GLOBAL_ATTACK_GANG_BALLAS = 17, // 0x11 + CTX_GLOBAL_ATTACK_GANG_LSV = 18, // 0x12 + CTX_GLOBAL_ATTACK_GANG_VLA = 19, // 0x13 + CTX_GLOBAL_ATTACK_PLAYER = 20, // 0x14 + CTX_GLOBAL_BAR_CHAT = 21, // 0x15 + CTX_GLOBAL_BLOCKED = 22, // 0x16 + CTX_GLOBAL_BOOZE_RECEIVE = 23, // 0x17 + CTX_GLOBAL_BOOZE_REQUEST = 24, // 0x18 + CTX_GLOBAL_BUM_BACK_OFF = 25, // 0x19 + CTX_GLOBAL_BUM_BACK_OFF_2 = 26, // 0x1A + CTX_GLOBAL_BUM_LATCH = 27, // 0x1B + CTX_GLOBAL_BUMP = 28, // 0x1C + CTX_GLOBAL_CAR_CRASH = 29, // 0x1D + CTX_GLOBAL_CAR_DRIVEBY_BURN_RUBBER = 30, // 0x1E + CTX_GLOBAL_CAR_DRIVEBY_TOO_FAST = 31, // 0x1F + CTX_GLOBAL_CAR_FAST = 32, // 0x20 + CTX_GLOBAL_CAR_FIRE = 33, // 0x21 + CTX_GLOBAL_CAR_FLIPPED = 34, // 0x22 + CTX_GLOBAL_CAR_GET_IN = 35, // 0x23 + CTX_GLOBAL_CAR_HIT_PED = 36, // 0x24 + CTX_GLOBAL_CAR_JUMP = 37, // 0x25 + CTX_GLOBAL_CAR_POLICE_PURSUIT = 38, // 0x26 + CTX_GLOBAL_CAR_SLOW = 39, // 0x27 + CTX_GLOBAL_CAR_WAIT_FOR_ME = 40, // 0x28 + CTX_GLOBAL_CAR_SINGALONG = 41, // 0x29 + CTX_GLOBAL_CB_CHAT = 42, // 0x2A + CTX_GLOBAL_CHASE_FOOT = 43, // 0x2B + CTX_GLOBAL_CHASED = 44, // 0x2C + CTX_GLOBAL_CHAT = 45, // 0x2D + CTX_GLOBAL_COFFEE_ACCEPT = 46, // 0x2E + CTX_GLOBAL_COFFEE_DECLINE = 47, // 0x2F + CTX_GLOBAL_CONV_DISL_CAR = 48, // 0x30 + CTX_GLOBAL_CONV_DISL_CLOTHES = 49, // 0x31 + CTX_GLOBAL_CONV_DISL_HAIR = 50, // 0x32 + CTX_GLOBAL_CONV_DISL_PHYS = 51, // 0x33 + CTX_GLOBAL_CONV_DISL_SHOES = 52, // 0x34 + CTX_GLOBAL_CONV_DISL_SMELL = 53, // 0x35 + CTX_GLOBAL_CONV_DISL_TATTOO = 54, // 0x36 + CTX_GLOBAL_CONV_DISL_WEATHER = 55, // 0x37 + CTX_GLOBAL_CONV_IGNORED = 56, // 0x38 + CTX_GLOBAL_CONV_LIKE_CAR = 57, // 0x39 + CTX_GLOBAL_CONV_LIKE_CLOTHES = 58, // 0x3A + CTX_GLOBAL_CONV_LIKE_HAIR = 59, // 0x3B + CTX_GLOBAL_CONV_LIKE_PHYS = 60, // 0x3C + CTX_GLOBAL_CONV_LIKE_SHOES = 61, // 0x3D + CTX_GLOBAL_CONV_LIKE_SMELL = 62, // 0x3E + CTX_GLOBAL_CONV_LIKE_TATTOO = 63, // 0x3F + CTX_GLOBAL_CONV_LIKE_WEATHER = 64, // 0x40 + CTX_GLOBAL_COVER_ME = 65, // 0x41 + CTX_GLOBAL_CRASH_BIKE = 66, // 0x42 + CTX_GLOBAL_CRASH_CAR = 67, // 0x43 + CTX_GLOBAL_CRASH_GENERIC = 68, // 0x44 + CTX_GLOBAL_CRIMINAL_PLEAD = 69, // 0x45 + CTX_GLOBAL_DANCE_IMPR_HIGH = 70, // 0x46 + CTX_GLOBAL_DANCE_IMPR_LOW = 71, // 0x47 + CTX_GLOBAL_DANCE_IMPR_MED = 72, // 0x48 + CTX_GLOBAL_DANCE_IMPR_NOT = 73, // 0x49 + CTX_GLOBAL_DODGE = 74, // 0x4A + CTX_GLOBAL_DRUG_AGGRESSIVE_HIGH = 75, // 0x4B + CTX_GLOBAL_DRUG_AGGRESSIVE_LOW = 76, // 0x4C + CTX_GLOBAL_DRUG_DEALER_DISLIKE = 77, // 0x4D + CTX_GLOBAL_DRUG_DEALER_HATE = 78, // 0x4E + CTX_GLOBAL_DRUG_REASONABLE_HIGH = 79, // 0x4F + CTX_GLOBAL_DRUG_REASONABLE_LOW = 80, // 0x50 + CTX_GLOBAL_DRUGGED_CHAT = 81, // 0x51 + CTX_GLOBAL_DRUGGED_IGNORE = 82, // 0x52 + CTX_GLOBAL_DRUGS_BUY = 83, // 0x53 + CTX_GLOBAL_DRUGS_SELL = 84, // 0x54 + CTX_GLOBAL_DUCK = 85, // 0x55 + CTX_GLOBAL_EYEING_PED = 86, // 0x56 + CTX_GLOBAL_EYEING_PED_THREAT = 87, // 0x57 + CTX_GLOBAL_EYEING_PLAYER = 88, // 0x58 + CTX_GLOBAL_FIGHT = 89, // 0x59 + CTX_GLOBAL_FOLLOW_ARRIVE = 90, // 0x5A + CTX_GLOBAL_FOLLOW_CONSTANT = 91, // 0x5B + CTX_GLOBAL_FOLLOW_REPLY = 92, // 0x5C + CTX_GLOBAL_GAMB_BJ_HIT = 93, // 0x5D + CTX_GLOBAL_GAMB_BJ_LOSE = 94, // 0x5E + CTX_GLOBAL_GAMB_BJ_STAY = 95, // 0x5F + CTX_GLOBAL_GAMB_BJ_WIN = 96, // 0x60 + CTX_GLOBAL_GAMB_BJ_STICK = 97, // 0x61 + CTX_GLOBAL_GAMB_BJ_DOUBLE = 98, // 0x62 + CTX_GLOBAL_GAMB_BJ_SPLIT = 99, // 0x63 + CTX_GLOBAL_GAMB_CASINO_WIN = 100, // 0x64 + CTX_GLOBAL_GAMB_CASINO_LOSE = 101, // 0x65 + CTX_GLOBAL_GAMB_CONGRATS = 102, // 0x66 + CTX_GLOBAL_GAMB_ROUL_CHAT = 103, // 0x67 + CTX_GLOBAL_GAMB_SLOT_WIN = 104, // 0x68 + CTX_GLOBAL_GANG_FULL = 105, // 0x69 + CTX_GLOBAL_GANGBANG_NO = 106, // 0x6A + CTX_GLOBAL_GANGBANG_YES = 107, // 0x6B + CTX_GLOBAL_GENERIC_HI_MALE = 108, // 0x6C + CTX_GLOBAL_GENERIC_HI_FEMALE = 109, // 0x6D + CTX_GLOBAL_GENERIC_INSULT_MALE = 110, // 0x6E + CTX_GLOBAL_GENERIC_INSULT_FEMALE = 111, // 0x6F + CTX_GLOBAL_GIVING_HEAD = 112, // 0x70 + CTX_GLOBAL_GOOD_CITIZEN = 113, // 0x71 + CTX_GLOBAL_GUN_COOL = 114, // 0x72 + CTX_GLOBAL_GUN_RUN = 115, // 0x73 + CTX_GLOBAL_HAVING_SEX = 116, // 0x74 + CTX_GLOBAL_HAVING_SEX_MUFFLED = 117, // 0x75 + CTX_GLOBAL_JACKED_CAR = 118, // 0x76 + CTX_GLOBAL_JACKED_GENERIC = 119, // 0x77 + CTX_GLOBAL_JACKED_ON_STREET = 120, // 0x78 + CTX_GLOBAL_JACKING_BIKE = 121, // 0x79 + CTX_GLOBAL_JACKING_CAR_FEM = 122, // 0x7A + CTX_GLOBAL_JACKING_CAR_MALE = 123, // 0x7B + CTX_GLOBAL_JACKING_GENERIC = 124, // 0x7C + CTX_GLOBAL_JOIN_GANG_NO = 125, // 0x7D + CTX_GLOBAL_JOIN_GANG_YES = 126, // 0x7E + CTX_GLOBAL_JOIN_ME_ASK = 127, // 0x7F + CTX_GLOBAL_JOIN_ME_REJECTED = 128, // 0x80 + CTX_GLOBAL_LIKE_CAR_REPLY = 129, // 0x81 + CTX_GLOBAL_LIKE_CLOTHES_REPLY = 130, // 0x82 + CTX_GLOBAL_LIKE_DISMISS_FEMALE = 131, // 0x83 + CTX_GLOBAL_LIKE_DISMISS_MALE = 132, // 0x84 + CTX_GLOBAL_LIKE_DISMISS_REPLY = 133, // 0x85 + CTX_GLOBAL_LIKE_HAIR_REPLY = 134, // 0x86 + CTX_GLOBAL_LIKE_NEGATIVE_FEMALE = 135, // 0x87 + CTX_GLOBAL_LIKE_NEGATIVE_MALE = 136, // 0x88 + CTX_GLOBAL_LIKE_PHYS_REPLY = 137, // 0x89 + CTX_GLOBAL_LIKE_SHOES_REPLY = 138, // 0x8A + CTX_GLOBAL_LIKE_SMELL_REPLY = 139, // 0x8B + CTX_GLOBAL_LIKE_TATTOO_REPLY = 140, // 0x8C + CTX_GLOBAL_MEET_GFRIEND_AGAIN_MAYBE = 141, // 0x8D + CTX_GLOBAL_MEET_GFRIEND_AGAIN_NO = 142, // 0x8E + CTX_GLOBAL_MEET_GFRIEND_AGAIN_YES = 143, // 0x8F + CTX_GLOBAL_MOVE_IN = 144, // 0x90 + CTX_GLOBAL_MUGGED = 145, // 0x91 + CTX_GLOBAL_MUGGING = 146, // 0x92 + CTX_GLOBAL_ORDER_ATTACK_MANY = 147, // 0x93 + CTX_GLOBAL_ORDER_ATTACK_SINGLE = 148, // 0x94 + CTX_GLOBAL_ORDER_DISBAND_MANY = 149, // 0x95 + CTX_GLOBAL_ORDER_DISBAND_ONE = 150, // 0x96 + CTX_GLOBAL_ORDER_FOLLOW_FAR_MANY = 151, // 0x97 + CTX_GLOBAL_ORDER_FOLLOW_FAR_ONE = 152, // 0x98 + CTX_GLOBAL_ORDER_FOLLOW_NEAR_MANY = 153, // 0x99 + CTX_GLOBAL_ORDER_FOLLOW_NEAR_ONE = 154, // 0x9A + CTX_GLOBAL_ORDER_FOLLOW_VNEAR_MANY = 155, // 0x9B + CTX_GLOBAL_ORDER_FOLLOW_VNEAR_ONE = 156, // 0x9C + CTX_GLOBAL_ORDER_KEEP_UP_MANY = 157, // 0x9D + CTX_GLOBAL_ORDER_KEEP_UP_ONE = 158, // 0x9E + CTX_GLOBAL_ORDER_WAIT_MANY = 159, // 0x9F + CTX_GLOBAL_ORDER_WAIT_ONE = 160, // 0xA0 + CTX_GLOBAL_PCONV_AGREE_BAD = 161, // 0xA1 + CTX_GLOBAL_PCONV_AGREE_GOOD = 162, // 0xA2 + CTX_GLOBAL_PCONV_ANS_NO = 163, // 0xA3 + CTX_GLOBAL_PCONV_DISMISS = 164, // 0xA4 + CTX_GLOBAL_PCONV_GREET_FEM = 165, // 0xA5 + CTX_GLOBAL_PCONV_GREET_MALE = 166, // 0xA6 + CTX_GLOBAL_PCONV_PART_FEM = 167, // 0xA7 + CTX_GLOBAL_PCONV_PART_MALE = 168, // 0xA8 + CTX_GLOBAL_PCONV_QUESTION = 169, // 0xA9 + CTX_GLOBAL_PCONV_STATE_BAD = 170, // 0xAA + CTX_GLOBAL_PCONV_STATE_GOOD = 171, // 0xAB + CTX_GLOBAL_PICKUP_CASH = 172, // 0xAC + CTX_GLOBAL_POLICE_BOAT = 173, // 0xAD + CTX_GLOBAL_POLICE_HELICOPTER = 174, // 0xAE + CTX_GLOBAL_POLICE_OVERBOARD = 175, // 0xAF + CTX_GLOBAL_PULL_GUN = 176, // 0xB0 + CTX_GLOBAL_ROPE = 177, // 0xB1 + CTX_GLOBAL_RUN_FROM_FIGHT = 178, // 0xB2 + CTX_GLOBAL_SAVED = 179, // 0xB3 + CTX_GLOBAL_SEARCH = 180, // 0xB4 + CTX_GLOBAL_SHOCKED = 181, // 0xB5 + CTX_GLOBAL_SHOOT = 182, // 0xB6 + CTX_GLOBAL_SHOOT_BALLAS = 183, // 0xB7 + CTX_GLOBAL_SHOOT_GENERIC = 184, // 0xB8 + CTX_GLOBAL_SHOOT_LSV = 185, // 0xB9 + CTX_GLOBAL_SHOOT_VLA = 186, // 0xBA + CTX_GLOBAL_SHOOT_FAMILIES = 187, // 0xBB + CTX_GLOBAL_SHOP_BROWSE = 188, // 0xBC + CTX_GLOBAL_SHOP_BUY = 189, // 0xBD + CTX_GLOBAL_SHOP_SELL = 190, // 0xBE + CTX_GLOBAL_SHOP_LEAVE = 191, // 0xBF + CTX_GLOBAL_SOLICIT = 192, // 0xC0 + CTX_GLOBAL_SOLICIT_GEN_NO = 193, // 0xC1 + CTX_GLOBAL_SOLICIT_GEN_YES = 194, // 0xC2 + CTX_GLOBAL_SOLICIT_PRO_NO = 195, // 0xC3 + CTX_GLOBAL_SOLICIT_PRO_YES = 196, // 0xC4 + CTX_GLOBAL_SOLICIT_THANKS = 197, // 0xC5 + CTX_GLOBAL_SOLICIT_UNREASONABLE = 198, // 0xC6 + CTX_GLOBAL_SOLO = 199, // 0xC7 + CTX_GLOBAL_SPLIFF_RECEIVE = 200, // 0xC8 + CTX_GLOBAL_SPLIFF_REQUEST = 201, // 0xC9 + CTX_GLOBAL_STEALTH_ALERT_SOUND = 202, // 0xCA + CTX_GLOBAL_STEALTH_ALERT_SIGHT = 203, // 0xCB + CTX_GLOBAL_STEALTH_ALERT_GENERIC = 204, // 0xCC + CTX_GLOBAL_STEALTH_DEF_SIGHTING = 205, // 0xCD + CTX_GLOBAL_STEALTH_NOTHING_THERE = 206, // 0xCE + CTX_GLOBAL_SURROUNDED = 207, // 0xCF + + CTX_GLOBAL_TAKE_TURF_LAS_COLINAS = 208, // 0xD0 + CTX_GLOBAL_TAKE_TURF_LOS_FLORES = 209, // 0xD1 + CTX_GLOBAL_TAKE_TURF_EAST_BEACH = 210, // 0xD2 + CTX_GLOBAL_TAKE_TURF_EAST_LS = 211, // 0xD3 + CTX_GLOBAL_TAKE_TURF_JEFFERSON = 212, // 0xD4 + CTX_GLOBAL_TAKE_TURF_GLEN_PARK = 213, // 0xD5 + CTX_GLOBAL_TAKE_TURF_IDLEWOOD = 214, // 0xD6 + CTX_GLOBAL_TAKE_TURF_GANTON = 215, // 0xD7 + CTX_GLOBAL_TAKE_TURF_LITTLE_MEXICO = 216, // 0xD8 + CTX_GLOBAL_TAKE_TURF_WILLOWFIELD = 217, // 0xD9 + CTX_GLOBAL_TAKE_TURF_PLAYA_DEL_SEVILLE = 218, // 0xDA + CTX_GLOBAL_TAKE_TURF_TEMPLE = 219, // 0xDB + + CTX_GLOBAL_TARGET = 220, // 0xDC + CTX_GLOBAL_TAXI_BAIL = 221, // 0xDD + CTX_GLOBAL_TAXI_HAIL = 222, // 0xDE + CTX_GLOBAL_TAXI_HIT_PED = 223, // 0xDF + CTX_GLOBAL_TAXI_START = 224, // 0xE0 + CTX_GLOBAL_TAXI_SUCCESS = 225, // 0xE1 + CTX_GLOBAL_TAXI_TIP = 226, // 0xE2 + CTX_GLOBAL_TRAPPED = 227, // 0xE3 + CTX_GLOBAL_VALET_BAD = 228, // 0xE4 + CTX_GLOBAL_VALET_GOOD = 229, // 0xE5 + CTX_GLOBAL_VALET_PARK_CAR = 230, // 0xE6 + CTX_GLOBAL_VAN = 231, // 0xE7 + CTX_GLOBAL_VICTIM = 232, // 0xE8 + CTX_GLOBAL_WEATHER_DISL_REPLY = 233, // 0xE9 + CTX_GLOBAL_WEATHER_LIKE_REPLY = 234, // 0xEA + CTX_GLOBAL_WHERE_YOU_FROM_NEG = 235, // 0xEB + CTX_GLOBAL_WHERE_YOU_FROM_POS = 236, // 0xEC + CTX_GLOBAL_SPANKED = 237, // 0xED + CTX_GLOBAL_SPANKING = 238, // 0xEE + CTX_GLOBAL_SPANKING_MUFFLED = 239, // 0xEF + CTX_GLOBAL_GREETING_GFRIEND = 240, // 0xF0 + CTX_GLOBAL_PARTING_GFRIEND = 241, // 0xF1 + CTX_GLOBAL_UH_HUH = 242, // 0xF2 + CTX_GLOBAL_CLEAR_ATTACHED_PEDS = 243, // 0xF3 + CTX_GLOBAL_AGREE_TO_DO_DRIVEBY = 244, // 0xF4 + CTX_GLOBAL_AGREE_TO_LET_DRIVE = 245, // 0xF5 + CTX_GLOBAL_MICHELLE_TAKE_CAR = 246, // 0xF6 + CTX_GLOBAL_ACCEPT_SEX = 247, // 0xF7 + CTX_GLOBAL_DECLINE_SEX = 248, // 0xF8 + CTX_GLOBAL_GIVE_NUMBER_YES = 249, // 0xF9 + CTX_GLOBAL_GIVE_NUMBER_NO = 250, // 0xFA + CTX_GLOBAL_WHERE_YOU_FROM = 251, // 0xFB + CTX_GLOBAL_GANGBANG = 252, // 0xFC + CTX_GLOBAL_WHERE_YOU_FROM_POS_REPLY = 253, // 0xFD + CTX_GLOBAL_DRIVE_THROUGH_TAUNT = 254, // 0xFE + CTX_GLOBAL_ATTACK_CAR = 255, // 0xFF + CTX_GLOBAL_TIP_CAR = 256, // 0x100 + CTX_GLOBAL_CHASE_CAR = 257, // 0x101 + CTX_GLOBAL_ENEMY_GANG_WASTED = 258, // 0x102 + CTX_GLOBAL_PLAYER_WASTED = 259, // 0x103 + CTX_GLOBAL_CHASE = 260, // 0x104 + CTX_GLOBAL_GFRIEND_REQ_DATE_DESPERATE = 261, // 0x105 + CTX_GLOBAL_GFRIEND_REQ_DATE_NORMAL = 262, // 0x106 + CTX_GLOBAL_GFRIEND_REQ_MEAL_DESPERATE = 263, // 0x107 + CTX_GLOBAL_GFRIEND_REQ_MEAL_NORMAL = 264, // 0x108 + CTX_GLOBAL_GFRIEND_REQ_DRIVE_DESPERATE = 265, // 0x109 + CTX_GLOBAL_GFRIEND_REQ_DRIVE_NORMAL = 266, // 0x10A + CTX_GLOBAL_GFRIEND_REQ_DANCE_DESPERATE = 267, // 0x10B + CTX_GLOBAL_GFRIEND_REQ_DANCE_NORMAL = 268, // 0x10C + CTX_GLOBAL_GFRIEND_REQ_SEX_DESPERATE = 269, // 0x10D + CTX_GLOBAL_GFRIEND_REQ_SEX_NORMAL = 270, // 0x10E + CTX_GLOBAL_GFRIEND_BORED_1 = 271, // 0x10F + CTX_GLOBAL_GFRIEND_BORED_2 = 272, // 0x110 + CTX_GLOBAL_GFRIEND_STORY = 273, // 0x111 + CTX_GLOBAL_GFRIEND_LIKE_MEAL_DEST = 274, // 0x112 + CTX_GLOBAL_GFRIEND_LIKE_CLUB_DEST = 275, // 0x113 + CTX_GLOBAL_GFRIEND_OFFER_DANCE = 276, // 0x114 + CTX_GLOBAL_GFRIEND_ENJOYED_MEAL_HIGH = 277, // 0x115 + CTX_GLOBAL_GFRIEND_ENJOYED_EVENT_LOW = 278, // 0x116 + CTX_GLOBAL_GFRIEND_ENJOYED_CLUB_HIGH = 279, // 0x117 + CTX_GLOBAL_GFRIEND_TAKE_HOME_HAPPY = 280, // 0x118 + CTX_GLOBAL_GFRIEND_TAKE_HOME_ANGRY = 281, // 0x119 + CTX_GLOBAL_GFRIEND_COFFEE = 282, // 0x11A + CTX_GLOBAL_GFRIEND_MOAN = 283, // 0x11B + CTX_GLOBAL_GFRIEND_MOAN_MUFFLED = 284, // 0x11C + CTX_GLOBAL_GFRIEND_HEAD = 285, // 0x11D + CTX_GLOBAL_GFRIEND_CLIMAX_HIGH = 286, // 0x11E + CTX_GLOBAL_GFRIEND_CLIMAX_HIGH_MUFFLED = 287, // 0x11F + CTX_GLOBAL_GFRIEND_CLIMAX_LOW = 288, // 0x120 + CTX_GLOBAL_GFRIEND_SEX_GOOD = 289, // 0x121 + CTX_GLOBAL_GFRIEND_SEX_GOOD_MUFFLED = 290, // 0x122 + CTX_GLOBAL_GFRIEND_SEX_BAD = 291, // 0x123 + CTX_GLOBAL_GFRIEND_MEET_AGAIN = 292, // 0x124 + CTX_GLOBAL_GFRIEND_JEALOUS = 293, // 0x125 + CTX_GLOBAL_GFRIEND_JEALOUS_REPLY = 294, // 0x126 + CTX_GLOBAL_GFRIEND_GOODBYE_HAPPY = 295, // 0x127 + CTX_GLOBAL_GFRIEND_GOODBYE_ANGRY = 296, // 0x128 + CTX_GLOBAL_GFRIEND_LEFT_BEHIND = 297, // 0x129 + CTX_GLOBAL_GFRIEND_HELLO = 298, // 0x12A + CTX_GLOBAL_GFRIEND_GOODBYE = 299, // 0x12B + CTX_GLOBAL_GFRIEND_PICKUP_LOCATION = 300, // 0x12C + CTX_GLOBAL_GFRIEND_PARK_UP = 301, // 0x12D + CTX_GLOBAL_GFRIEND_PARK_LOCATION_HATE = 302, // 0x12E + CTX_GLOBAL_GFRIEND_GIFT_LIKE = 303, // 0x12F + CTX_GLOBAL_GFRIEND_CHANGE_RADIO_FAVE = 304, // 0x130 + CTX_GLOBAL_GFRIEND_CHANGE_RADIO_BACK = 305, // 0x131 + CTX_GLOBAL_GFRIEND_DO_A_DRIVEBY = 306, // 0x132 + CTX_GLOBAL_GFRIEND_START_A_FIGHT = 307, // 0x133 + CTX_GLOBAL_GFRIEND_REJECT_DATE = 308, // 0x134 + CTX_GLOBAL_GFRIEND_REQUEST_TO_DRIVE_CAR = 309, // 0x135 + CTX_GLOBAL_GFRIEND_DROP_PLAYER_DRIVE_AWAY = 310, // 0x136 + CTX_GLOBAL_GFRIEND_DISLIKE_CURRENT_ZONE = 311, // 0x137 + CTX_GLOBAL_GFRIEND_LIKE_CURRENT_ZONE = 312, // 0x138 + CTX_GLOBAL_GFRIEND_HIT_BY_PLAYER_WARNING = 313, // 0x139 + CTX_GLOBAL_GFRIEND_DUMP_PLAYER_LIVE = 314, // 0x13A + CTX_GLOBAL_GFRIEND_DUMP_PLAYER_PHONE = 315, // 0x13B + CTX_GLOBAL_GFRIEND_SEX_APPEAL_TOO_LOW = 316, // 0x13C + CTX_GLOBAL_GFRIEND_PHYSIQUE_CRITIQUE = 317, // 0x13D + CTX_GLOBAL_GFRIEND_INTRO = 318, // 0x13E + CTX_GLOBAL_GFRIEND_NEG_RESPONSE = 319, // 0x13F + CTX_GLOBAL_GFRIEND_POS_RESPONSE = 320, // 0x140 + CTX_GLOBAL_BOXING_CHEER = 321, // 0x141 + CTX_GLOBAL_BOUGHT_ENOUGH = 322, // 0x142 + CTX_GLOBAL_GIVE_PRODUCT = 323, // 0x143 + CTX_GLOBAL_NO_MONEY = 324, // 0x144 + CTX_GLOBAL_PLAYER_SICK = 325, // 0x145 + CTX_GLOBAL_REMOVE_TATTOO = 326, // 0x146 + CTX_GLOBAL_SHOP_CLOSED = 327, // 0x147 + CTX_GLOBAL_SHOW_CHANGINGROOM = 328, // 0x148 + CTX_GLOBAL_SHOP_CHAT = 329, // 0x149 + CTX_GLOBAL_TAKE_A_SEAT = 330, // 0x14A + CTX_GLOBAL_THANKS_FOR_CUSTOM = 331, // 0x14B + CTX_GLOBAL_WELCOME_TO_SHOP = 332, // 0x14C + CTX_GLOBAL_WHAT_WANT = 333, // 0x14D + CTX_GLOBAL_PHOTO_CARL = 334, // 0x14E + CTX_GLOBAL_PHOTO_CHEESE = 335, // 0x14F + CTX_GLOBAL_SINGING = 336, // 0x150 + CTX_GLOBAL_STOMACH_RUMBLE = 337, // 0x151 + CTX_GLOBAL_BREATHING = 338, // 0x152 + + CTX_GLOBAL_PAIN_START = 339, // 0x153 + CTX_GLOBAL_PAIN_COUGH = 340, // 0x154 + CTX_GLOBAL_PAIN_DEATH_DROWN = 341, // 0x155 + CTX_GLOBAL_PAIN_DEATH_HIGH = 342, // 0x156 + CTX_GLOBAL_PAIN_DEATH_LOW = 343, // 0x157 + CTX_GLOBAL_PAIN_HIGH = 344, // 0x158 + CTX_GLOBAL_PAIN_LOW = 345, // 0x159 + CTX_GLOBAL_PAIN_ON_FIRE = 346, // 0x15A + CTX_GLOBAL_PAIN_PANIC = 347, // 0x15B + CTX_GLOBAL_PAIN_SPRAYED = 348, // 0x15C + CTX_GLOBAL_PAIN_CJ_BOXING = 349, // 0x15D + CTX_GLOBAL_PAIN_CJ_GRUNT = 350, // 0x15E + CTX_GLOBAL_PAIN_CJ_PANT_IN = 351, // 0x15F + CTX_GLOBAL_PAIN_CJ_PANT_OUT = 352, // 0x160 + CTX_GLOBAL_PAIN_CJ_PUKE = 353, // 0x161 + CTX_GLOBAL_PAIN_CJ_STRAIN = 354, // 0x162 + CTX_GLOBAL_PAIN_CJ_STRAIN_EXHALE = 355, // 0x163 + CTX_GLOBAL_PAIN_CJ_SWIM_GASP = 356, // 0x164 + CTX_GLOBAL_PAIN_CJ_DROWNING = 357, // 0x165 + CTX_GLOBAL_PAIN_CJ_HIGH_FALL = 358, // 0x166 + CTX_GLOBAL_PAIN_END = 359, // 0x167 + + // + // Add above + // + CTX_GLOBAL_END, // 360 = 0x168 + CTX_GLOBAL_NUM = CTX_GLOBAL_END, +}; +NOTSA_WENUM_DEFS_FOR(eGlobalSpeechContext) + +/*! + * @brief General ped speech contexts + */ +enum eGenSpeechContexts : int16 { + CTX_GEN_UNK = -1, + CTX_GEN_ALERT_GENERIC = 0, // 0x0 + CTX_GEN_ALERT_SIGHT = 1, // 0x1 + CTX_GEN_ALERT_SOUND = 2, // 0x2 + CTX_GEN_BLOCKED = 3, // 0x3 + CTX_GEN_BUMP = 4, // 0x4 + CTX_GEN_CONV_IGNORED = 5, // 0x5 + CTX_GEN_CRASH_CAR = 6, // 0x6 + CTX_GEN_CRASH_GENERIC = 7, // 0x7 + CTX_GEN_DEF_SIGHTING = 8, // 0x8 + CTX_GEN_DODGE = 9, // 0x9 + CTX_GEN_FIGHT = 10, // 0xA + CTX_GEN_GUN_COOL = 11, // 0xB + CTX_GEN_JACKED_IN_CAR = 12, // 0xC + CTX_GEN_JACKED_ON_STREET = 13, // 0xD + CTX_GEN_JACKING_GENERIC = 14, // 0xE + CTX_GEN_LIKE_DISMISS_REPLY = 15, // 0xF + CTX_GEN_MUGGED = 16, // 0x10 + CTX_GEN_NOTHING_THERE = 17, // 0x11 + CTX_GEN_SAVED = 18, // 0x12 + CTX_GEN_SHOCKED = 19, // 0x13 + CTX_GEN_TRAPPED = 20, // 0x14 + CTX_GEN_BAR_CHAT = 21, // 0x15 + CTX_GEN_CHAT = 22, // 0x16 + CTX_GEN_CONV_DISL_CLOTHES = 23, // 0x17 + CTX_GEN_CONV_DISL_PHYS = 24, // 0x18 + CTX_GEN_CONV_DISL_SHOES = 25, // 0x19 + CTX_GEN_CONV_LIKE_CLOTHES = 26, // 0x1A + CTX_GEN_CONV_LIKE_PHYS = 27, // 0x1B + CTX_GEN_CONV_LIKE_SHOES = 28, // 0x1C + CTX_GEN_EYEING_PLAYER = 29, // 0x1D + CTX_GEN_GAMB_BJ_HIT = 30, // 0x1E + CTX_GEN_GAMB_BJ_LOSE = 31, // 0x1F + CTX_GEN_GAMB_BJ_STAY = 32, // 0x20 + CTX_GEN_GAMB_BJ_WIN = 33, // 0x21 + CTX_GEN_GAMB_CONGRATS = 34, // 0x22 + CTX_GEN_GAMB_ROUL_CHAT = 35, // 0x23 + CTX_GEN_GAMB_SLOT_WIN = 36, // 0x24 + CTX_GEN_GUN_RUN = 37, // 0x25 + CTX_GEN_PCONV_AGREE_BAD = 38, // 0x26 + CTX_GEN_PCONV_AGREE_GOOD = 39, // 0x27 + CTX_GEN_PCONV_ANS_NO = 40, // 0x28 + CTX_GEN_PCONV_DISMISS = 41, // 0x29 + CTX_GEN_PCONV_GREET_FEM = 42, // 0x2A + CTX_GEN_PCONV_GREET_MALE = 43, // 0x2B + CTX_GEN_PCONV_PART_FEM = 44, // 0x2C + CTX_GEN_PCONV_PART_MALE = 45, // 0x2D + CTX_GEN_PCONV_QUESTION = 46, // 0x2E + CTX_GEN_PCONV_STATE_BAD = 47, // 0x2F + CTX_GEN_PCONV_STATE_GOOD = 48, // 0x30 + CTX_GEN_RUN_FROM_FIGHT = 49, // 0x31 + CTX_GEN_SHOP_BROWSE = 50, // 0x32 + CTX_GEN_SHOP_BUY = 51, // 0x33 + CTX_GEN_TAXI_BAIL = 52, // 0x34 + CTX_GEN_TAXI_HAIL = 53, // 0x35 + CTX_GEN_TAXI_HIT_PED = 54, // 0x36 + CTX_GEN_TAXI_START = 55, // 0x37 + CTX_GEN_TAXI_SUCCESS = 56, // 0x38 + CTX_GEN_TAXI_TIP = 57, // 0x39 + CTX_GEN_CONV_DISL_SMELL = 58, // 0x3A + CTX_GEN_CONV_DISL_TATTOO = 59, // 0x3B + CTX_GEN_CONV_DISL_WEATHER = 60, // 0x3C + CTX_GEN_CONV_LIKE_SMELL = 61, // 0x3D + CTX_GEN_CONV_LIKE_TATTOO = 62, // 0x3E + CTX_GEN_CONV_LIKE_WEATHER = 63, // 0x3F + CTX_GEN_CRASH_BIKE = 64, // 0x40 + CTX_GEN_DRUGS_BUY = 65, // 0x41 + CTX_GEN_SPRAYED = 66, // 0x42 + CTX_GEN_VALET_BAD = 67, // 0x43 + CTX_GEN_VALET_GOOD = 68, // 0x44 + CTX_GEN_VALET_PARK_CAR = 69, // 0x45 + CTX_GEN_CONV_DISL_HAIR = 70, // 0x46 + CTX_GEN_CONV_LIKE_HAIR = 71, // 0x47 + CTX_GEN_EYEING_PED = 72, // 0x48 + CTX_GEN_CONV_DISL_CAR = 73, // 0x49 + CTX_GEN_CONV_LIKE_CAR = 74, // 0x4A + CTX_GEN_CRIMINAL_PLEAD = 75, // 0x4B + CTX_GEN_GIVING_HEAD = 76, // 0x4C + CTX_GEN_HAVING_SEX = 77, // 0x4D + CTX_GEN_SOLICIT = 78, // 0x4E + CTX_GEN_SOLICIT_THANKS = 79, // 0x4F + CTX_GEN_SOLICIT_UNREASONABLE = 80, // 0x50 + CTX_GEN_DRUG_AGGRESSIVE_HIGH = 81, // 0x51 + CTX_GEN_DRUG_AGGRESSIVE_LOW = 82, // 0x52 + CTX_GEN_DRUG_REASONABLE_HIGH = 83, // 0x53 + CTX_GEN_DRUG_REASONABLE_LOW = 84, // 0x54 + CTX_GEN_DRUGS_SELL = 85, // 0x55 + CTX_GEN_JACKING_CAR = 86, // 0x56 + CTX_GEN_BUM_BACK_OFF = 87, // 0x57 + CTX_GEN_BUM_BACK_OFF_2 = 88, // 0x58 + CTX_GEN_BUM_LATCH = 89, // 0x59 + CTX_GEN_BOXING_CHEER = 90, // 0x5A + CTX_GEN_ARRESTED = 91, // 0x5B + CTX_GEN_MUGGING = 92, // 0x5C + CTX_GEN_SHOOT_GENERIC = 93, // 0x5D + CTX_GEN_DANCE_IMPR_HIGH = 94, // 0x5E + CTX_GEN_DANCE_IMPR_LOW = 95, // 0x5F + CTX_GEN_DANCE_IMPR_MED = 96, // 0x60 + CTX_GEN_DANCE_IMPR_NOT = 97, // 0x61 + CTX_GEN_CHA = 98, // 0x62 + CTX_GEN_RUN_FROM_FIGH = 99, // 0x63 + CTX_GEN_SAVE = 100, // 0x64 + CTX_GEN_SHOCKE = 101, // 0x65 + CTX_GEN_DC2 = 102, // 0x66 + CTX_GEN_END = 103, // 0x67 +}; + +/*! +* @brief Emergency ped speech contexts +*/ +enum eEmgSpeechContexts : int16 { + CTX_EMG_UNK = -1, + CTX_EMG_ALERT_GENERIC = 0, // 0x0 + CTX_EMG_ALERT_SIGHT = 1, // 0x1 + CTX_EMG_ALERT_SOUND = 2, // 0x2 + CTX_EMG_CHAT = 3, // 0x3 + CTX_EMG_COVER_ME = 4, // 0x4 + CTX_EMG_DEF_SIGHTING = 5, // 0x5 + CTX_EMG_DODGE = 6, // 0x6 + CTX_EMG_DUCK = 7, // 0x7 + CTX_EMG_FIGHT = 8, // 0x8 + CTX_EMG_JACKING_GENERIC = 9, // 0x9 + CTX_EMG_MOVE_IN = 10, // 0xA + CTX_EMG_NOTHING_THERE = 11, // 0xB + CTX_EMG_SHOCKED = 12, // 0xC + CTX_EMG_SHOOT_GENERIC = 13, // 0xD + CTX_EMG_CRASH_CAR = 14, // 0xE + CTX_EMG_CRASH_GENERIC = 15, // 0xF + CTX_EMG_GUN_RUN = 16, // 0x10 + CTX_EMG_VAN = 17, // 0x11 + CTX_EMG_VICTIM = 18, // 0x12 + CTX_EMG_SURROUNDED = 19, // 0x13 + CTX_EMG_TARGET = 20, // 0x14 + CTX_EMG_SEARCH = 21, // 0x15 + CTX_EMG_ARREST = 22, // 0x16 + CTX_EMG_ARREST_CRIM = 23, // 0x17 + CTX_EMG_BLOCKED = 24, // 0x18 + CTX_EMG_BUMP = 25, // 0x19 + CTX_EMG_CHASE_FOOT = 26, // 0x1A + CTX_EMG_GOOD_CITIZEN = 27, // 0x1B + CTX_EMG_GUN_COOL = 28, // 0x1C + CTX_EMG_SOLO = 29, // 0x1D + CTX_EMG_SPRAYED = 30, // 0x1E + CTX_EMG_CRASH_BIKE = 31, // 0x1F + CTX_EMG_ARREST_CRIMINAL = 32, // 0x20 + CTX_EMG_ROPE = 33, // 0x21 + CTX_EMG_END = 34, // 0x22 +}; + +/*! +* @brief Player ped speech contexts +*/ +enum ePlySpeechContexts : int16 { + CTX_PLY_UNK = -1, + CTX_PLY_AFTER_SEX = 0, // 0x0 + CTX_PLY_APOLOGY = 1, // 0x1 + CTX_PLY_ARRESTED = 2, // 0x2 + CTX_PLY_CHASED = 3, // 0x3 + CTX_PLY_CRASH_CAR = 4, // 0x4 + CTX_PLY_CRASH_GENERIC = 5, // 0x5 + CTX_PLY_DRUG_DEALER_DISLIKE = 6, // 0x6 + CTX_PLY_FIGHT = 7, // 0x7 + CTX_PLY_JACKED_CAR = 8, // 0x8 + CTX_PLY_JACKED_GENERIC = 9, // 0x9 + CTX_PLY_JACKING_BIKE = 10, // 0xA + CTX_PLY_JACKING_CAR_FEMALE = 11, // 0xB + CTX_PLY_JACKING_CAR_MALE = 12, // 0xC + CTX_PLY_JACKING_GENERIC = 13, // 0xD + CTX_PLY_JOIN_ME_ASK = 14, // 0xE + CTX_PLY_JOIN_ME_REJECTED = 15, // 0xF + CTX_PLY_ORDER_ATTACK_MANY = 16, // 0x10 + CTX_PLY_ORDER_ATTACK_SINGLE = 17, // 0x11 + CTX_PLY_PICKUP_CASH = 18, // 0x12 + CTX_PLY_PULL_GUN = 19, // 0x13 + CTX_PLY_SHOOT = 20, // 0x14 + CTX_PLY_SHOP_BUY = 21, // 0x15 + CTX_PLY_SHOP_LEAVE = 22, // 0x16 + CTX_PLY_SOLICIT_PRO_YES = 23, // 0x17 + CTX_PLY_GANGBANG_NO = 24, // 0x18 + CTX_PLY_GANGBANG_YES = 25, // 0x19 + CTX_PLY_JACKING_CAR_FEM = 26, // 0x1A + CTX_PLY_SOLICIT_PRO_NO = 27, // 0x1B + CTX_PLY_WHERE_YOU_FROM_POS = 28, // 0x1C + CTX_PLY_ACCEPT_DATE_CALL = 29, // 0x1D + CTX_PLY_ACCEPT_DATE_REQUEST = 30, // 0x1E + CTX_PLY_ACCEPT_SEX = 31, // 0x1F + CTX_PLY_AGREE_TO_DO_DRIVEBY = 32, // 0x20 + CTX_PLY_AGREE_TO_LET_DRIVE = 33, // 0x21 + CTX_PLY_BJ_DOUBLE = 34, // 0x22 + CTX_PLY_BJ_HIT = 35, // 0x23 + CTX_PLY_BJ_SPLIT = 36, // 0x24 + CTX_PLY_BJ_STICK = 37, // 0x25 + CTX_PLY_CASINO_LOSE = 38, // 0x26 + CTX_PLY_CASINO_WIN = 39, // 0x27 + CTX_PLY_CLEAR_ATTACHED_PEDS = 40, // 0x28 + CTX_PLY_COFFEE_ACCEPT = 41, // 0x29 + CTX_PLY_COFFEE_DECLINE = 42, // 0x2A + CTX_PLY_DECLINE_SEX = 43, // 0x2B + CTX_PLY_GENERIC_HI_FEMALE = 44, // 0x2C + CTX_PLY_GENERIC_HI_MALE = 45, // 0x2D + CTX_PLY_GENERIC_INSULT_FEMALE = 46, // 0x2E + CTX_PLY_GENERIC_INSULT_MALE = 47, // 0x2F + CTX_PLY_GREETING_GFRIEND = 48, // 0x30 + CTX_PLY_LIKE_CAR_REPLY = 49, // 0x31 + CTX_PLY_LIKE_CLOTHES_REPLY = 50, // 0x32 + CTX_PLY_LIKE_DISMISS_FEMALE = 51, // 0x33 + CTX_PLY_LIKE_DISMISS_MALE = 52, // 0x34 + CTX_PLY_LIKE_HAIR_REPLY = 53, // 0x35 + CTX_PLY_LIKE_NEGATIVE_FEMALE = 54, // 0x36 + CTX_PLY_LIKE_NEGATIVE_MALE = 55, // 0x37 + CTX_PLY_LIKE_PHYS_REPLY = 56, // 0x38 + CTX_PLY_LIKE_SHOES_REPLY = 57, // 0x39 + CTX_PLY_LIKE_SMELL_REPLY = 58, // 0x3A + CTX_PLY_LIKE_TATTOO_REPLY = 59, // 0x3B + CTX_PLY_MEET_GFRIEND_AGAIN_NO = 60, // 0x3C + CTX_PLY_MEET_GFRIEND_AGAIN_YES = 61, // 0x3D + CTX_PLY_MICHELLE_TAKE_CAR = 62, // 0x3E + CTX_PLY_PARTING_GFRIEND = 63, // 0x3F + CTX_PLY_SOLICIT_GEN_NO = 64, // 0x40 + CTX_PLY_SOLICIT_GEN_YES = 65, // 0x41 + CTX_PLY_UH_HUH = 66, // 0x42 + CTX_PLY_WEATHER_DISL_REPLY = 67, // 0x43 + CTX_PLY_WEATHER_LIKE_REPLY = 68, // 0x44 + CTX_PLY_DRUG_DEALER_HATE = 69, // 0x45 + CTX_PLY_ORDER_DISBAND_MANY = 70, // 0x46 + CTX_PLY_ORDER_DISBAND_ONE = 71, // 0x47 + CTX_PLY_ORDER_FOLLOW_FAR_MANY = 72, // 0x48 + CTX_PLY_ORDER_FOLLOW_FAR_ONE = 73, // 0x49 + CTX_PLY_ORDER_FOLLOW_NEAR_MANY = 74, // 0x4A + CTX_PLY_ORDER_FOLLOW_NEAR_ONE = 75, // 0x4B + CTX_PLY_ORDER_FOLLOW_VNEAR_MANY = 76, // 0x4C + CTX_PLY_ORDER_FOLLOW_VNEAR_ONE = 77, // 0x4D + CTX_PLY_ORDER_KEEP_UP_MANY = 78, // 0x4E + CTX_PLY_ORDER_KEEP_UP_ONE = 79, // 0x4F + CTX_PLY_ORDER_WAIT_MANY = 80, // 0x50 + CTX_PLY_ORDER_WAIT_ONE = 81, // 0x51 + CTX_PLY_BREATHING = 82, // 0x52 + CTX_PLY_GIVE_NUMBER_NO = 83, // 0x53 + CTX_PLY_GIVE_NUMBER_YES = 84, // 0x54 + CTX_PLY_HAVING_SEX = 85, // 0x55 + CTX_PLY_HAVING_SEX_MUFFLED = 86, // 0x56 + CTX_PLY_MEET_GFRIEND_AGAIN_MAYBE = 87, // 0x57 + CTX_PLY_PHOTO_CARL = 88, // 0x58 + CTX_PLY_PHOTO_CHEESE = 89, // 0x59 + CTX_PLY_SINGING = 90, // 0x5A + CTX_PLY_SPANKED = 91, // 0x5B + CTX_PLY_SPANKING = 92, // 0x5C + CTX_PLY_SPANKING_MUFFLED = 93, // 0x5D + CTX_PLY_STEALTH_KILL = 94, // 0x5E + CTX_PLY_STOMACH_RUMBLE = 95, // 0x5F + CTX_PLY_TAKE_TURF_EAST_BEACH = 96, // 0x60 + CTX_PLY_TAKE_TURF_EAST_LS = 97, // 0x61 + CTX_PLY_TAKE_TURF_GANTON = 98, // 0x62 + CTX_PLY_TAKE_TURF_GLEN_PARK = 99, // 0x63 + CTX_PLY_TAKE_TURF_IDLEWOOD = 100, // 0x64 + CTX_PLY_TAKE_TURF_JEFFERSON = 101, // 0x65 + CTX_PLY_TAKE_TURF_LAS_COLINAS = 102, // 0x66 + CTX_PLY_TAKE_TURF_LITTLE_MEXICO = 103, // 0x67 + CTX_PLY_TAKE_TURF_LOS_FLORES = 104, // 0x68 + CTX_PLY_TAKE_TURF_PLAYA_DEL_SEVILLE = 105, // 0x69 + CTX_PLY_TAKE_TURF_TEMPLE = 106, // 0x6A + CTX_PLY_TAKE_TURF_WILLOWFIELD = 107, // 0x6B + CTX_PLY_WHERE_YOU_FROM_NEG = 108, // 0x6C + CTX_PLY_HAVING_SEX_CR_MUFF = 109, // 0x6D + CTX_PLY_SPANKING_CR_MUFF = 110, // 0x6E + CTX_PLY_END = 111, // 0x6F +}; + +/*! +* @brief Gang ped speech contexts +*/ +enum eGngSpeechContexts : int16 { + CTX_GNG_UNK = -1, + CTX_GNG_ARRESTED = 0, // 0x0 + CTX_GNG_ATTACK_CAR = 1, // 0x1 + CTX_GNG_BAR_CHAT = 2, // 0x2 + CTX_GNG_BLOCKED = 3, // 0x3 + CTX_GNG_BOOZE_RECEIVE = 4, // 0x4 + CTX_GNG_BOOZE_REQUEST = 5, // 0x5 + CTX_GNG_BUMP = 6, // 0x6 + CTX_GNG_CHASE_CAR = 7, // 0x7 + CTX_GNG_CHASE_FOOT = 8, // 0x8 + CTX_GNG_CHAT = 9, // 0x9 + CTX_GNG_CONV_IGNORED = 10, // 0xA + CTX_GNG_COVER_ME = 11, // 0xB + CTX_GNG_CRASH_BIKE = 12, // 0xC + CTX_GNG_CRASH_CAR = 13, // 0xD + CTX_GNG_CRASH_GENERIC = 14, // 0xE + CTX_GNG_CRIMINAL_PLEAD = 15, // 0xF + CTX_GNG_DODGE = 16, // 0x10 + CTX_GNG_DRIVE_THROUGH_TAUNT = 17, // 0x11 + CTX_GNG_DUCK = 18, // 0x12 + CTX_GNG_ENEMY_GANG_WASTED = 19, // 0x13 + CTX_GNG_EYEING_PED = 20, // 0x14 + CTX_GNG_EYEING_PED_THREAT = 21, // 0x15 + CTX_GNG_FIGHT = 22, // 0x16 + CTX_GNG_GANGBANG = 23, // 0x17 + CTX_GNG_GUN_COOL = 24, // 0x18 + CTX_GNG_JACKED_IN_CAR = 25, // 0x19 + CTX_GNG_JACKED_ON_STREET = 26, // 0x1A + CTX_GNG_JACKING_CAR = 27, // 0x1B + CTX_GNG_JACKING_GENERIC = 28, // 0x1C + CTX_GNG_MOVE_IN = 29, // 0x1D + CTX_GNG_MUGGED = 30, // 0x1E + CTX_GNG_MUGGING = 31, // 0x1F + CTX_GNG_PLAYER_WASTED = 32, // 0x20 + CTX_GNG_SAVED = 33, // 0x21 + CTX_GNG_SEARCH = 34, // 0x22 + CTX_GNG_SHOCKED = 35, // 0x23 + CTX_GNG_SHOOT_FAMILIES = 36, // 0x24 + CTX_GNG_SHOOT_GENERIC = 37, // 0x25 + CTX_GNG_SPLIFF_RECEIVE = 38, // 0x26 + CTX_GNG_SPLIFF_REQUEST = 39, // 0x27 + CTX_GNG_TAXI_HAIL = 40, // 0x28 + CTX_GNG_TIP_CAR = 41, // 0x29 + CTX_GNG_TRAPPED = 42, // 0x2A + CTX_GNG_WHERE_YOU_FROM = 43, // 0x2B + CTX_GNG_WHERE_YOU_FROM_POS_REPLY = 44, // 0x2C + CTX_GNG_DRUGS_BUY = 45, // 0x2D + CTX_GNG_GUN_RUN = 46, // 0x2E + CTX_GNG_SPRAYED = 47, // 0x2F + CTX_GNG_ABUSE_GANG_FAMILIES = 48, // 0x30 + CTX_GNG_ABUSE_GANG_LSV = 49, // 0x31 + CTX_GNG_ABUSE_GANG_VLA = 50, // 0x32 + CTX_GNG_ABUSE_GANG_BALLAS = 51, // 0x33 + CTX_GNG_ATTACK_BY_PLAYER_LIKE = 52, // 0x34 + CTX_GNG_ATTACK_GANG_BALLAS = 53, // 0x35 + CTX_GNG_CAR_CRASH = 54, // 0x36 + CTX_GNG_CAR_FAST = 55, // 0x37 + CTX_GNG_CAR_FIRE = 56, // 0x38 + CTX_GNG_CAR_FLIPPED = 57, // 0x39 + CTX_GNG_CAR_HIT_PED = 58, // 0x3A + CTX_GNG_CAR_JUMP = 59, // 0x3B + CTX_GNG_CAR_POLICE_PURSUIT = 60, // 0x3C + CTX_GNG_CAR_WAIT_FOR_ME = 61, // 0x3D + CTX_GNG_PCONV_PART_MALE = 62, // 0x3E + CTX_GNG_SHOOT_BALLAS = 63, // 0x3F + CTX_GNG_CAR_SLOW = 64, // 0x40 + CTX_GNG_SHOOT_LSV = 65, // 0x41 + CTX_GNG_ABUSE_GANG_SFR = 66, // 0x42 + CTX_GNG_ABUSE_GANG_TRIADS = 67, // 0x43 + CTX_GNG_ATTACK_PLAYER = 68, // 0x44 + CTX_GNG_CONV_DISL_CAR = 69, // 0x45 + CTX_GNG_CONV_DISL_CLOTHES = 70, // 0x46 + CTX_GNG_CONV_DISL_SHOES = 71, // 0x47 + CTX_GNG_CONV_LIKE_CAR = 72, // 0x48 + CTX_GNG_CONV_LIKE_CLOTHES = 73, // 0x49 + CTX_GNG_CONV_LIKE_SHOES = 74, // 0x4A + CTX_GNG_LIKE_DISMISS_REPLY = 75, // 0x4B + CTX_GNG_PCONV_AGREE_BAD = 76, // 0x4C + CTX_GNG_PCONV_AGREE_GOOD = 77, // 0x4D + CTX_GNG_PCONV_ANS_NO = 78, // 0x4E + CTX_GNG_PCONV_DISMISS = 79, // 0x4F + CTX_GNG_PCONV_GREET_FEM = 80, // 0x50 + CTX_GNG_PCONV_GREET_MALE = 81, // 0x51 + CTX_GNG_PCONV_PART_FEM = 82, // 0x52 + CTX_GNG_PCONV_QUESTION = 83, // 0x53 + CTX_GNG_PCONV_STATE_BAD = 84, // 0x54 + CTX_GNG_PCONV_STATE_GOOD = 85, // 0x55 + CTX_GNG_RUN_FROM_FIGHT = 86, // 0x56 + CTX_GNG_CAR_DRIVEBY_BURN_RUBBER = 87, // 0x57 + CTX_GNG_CAR_DRIVEBY_TOO_FAST = 88, // 0x58 + CTX_GNG_CAR_GET_IN = 89, // 0x59 + CTX_GNG_DRUGGED_CHAT = 90, // 0x5A + CTX_GNG_DRUGGED_IGNORE = 91, // 0x5B + CTX_GNG_FOLLOW_ARRIVE = 92, // 0x5C + CTX_GNG_FOLLOW_CONSTANT = 93, // 0x5D + CTX_GNG_FOLLOW_REPLY = 94, // 0x5E + CTX_GNG_GANG_FULL = 95, // 0x5F + CTX_GNG_JOIN_GANG_NO = 96, // 0x60 + CTX_GNG_JOIN_GANG_YES = 97, // 0x61 + CTX_GNG_SHOOT_VLA = 98, // 0x62 + CTX_GNG_ATTACK_GANG_LSV = 99, // 0x63 + CTX_GNG_ATTACK_GANG_VLA = 100, // 0x64 + CTX_GNG_CONV_DISL_HAIR = 101, // 0x65 + CTX_GNG_CONV_DISL_TATTOO = 102, // 0x66 + CTX_GNG_CONV_LIKE_HAIR = 103, // 0x67 + CTX_GNG_CONV_LIKE_TATTOO = 104, // 0x68 + CTX_GNG_ATTACK_PLAYER_LIKE = 105, // 0x69 + CTX_GNG_CONV_DISL_PHYS = 106, // 0x6A + CTX_GNG_CONV_LIKE_PHYS = 107, // 0x6B + CTX_GNG_EYEING_PLAYER = 108, // 0x6C + CTX_GNG_ABUSE_GANG_DNB = 109, // 0x6D + CTX_GNG_ATTACK_GANG_DNB = 110, // 0x6E + CTX_GNG_SHOOT_DNB = 111, // 0x6F + CTX_GNG_END = 112, // 0x70 +}; + +/*! +* @brief Girlfriend ped speech contexts +*/ +enum eGfdSpeechContexts : int16 { + CTX_GFD_UNK = -1, + CTX_GFD_BUMP = 0, // 0x0 + CTX_GFD_CAR_CRASH = 1, // 0x1 + CTX_GFD_CAR_FAST = 2, // 0x2 + CTX_GFD_CAR_FIRE = 3, // 0x3 + CTX_GFD_CAR_FLIPPED = 4, // 0x4 + CTX_GFD_CAR_HIT_PED = 5, // 0x5 + CTX_GFD_CAR_JUMP = 6, // 0x6 + CTX_GFD_CAR_POLICE_PURSUIT = 7, // 0x7 + CTX_GFD_CAR_SLOW = 8, // 0x8 + CTX_GFD_CONV_IGNORED = 9, // 0x9 + CTX_GFD_DODGE = 10, // 0xA + CTX_GFD_FIGHT = 11, // 0xB + CTX_GFD_GFRIEND_BORED_1 = 12, // 0xC + CTX_GFD_GFRIEND_BORED_2 = 13, // 0xD + CTX_GFD_GFRIEND_CHANGE_RADIO_BACK = 14, // 0xE + CTX_GFD_GFRIEND_CHANGE_RADIO_FAVE = 15, // 0xF + CTX_GFD_GFRIEND_CLIMAX_HIGH = 16, // 0x10 + CTX_GFD_GFRIEND_CLIMAX_HIGH_MUFFLED = 17, // 0x11 + CTX_GFD_GFRIEND_CLIMAX_LOW = 18, // 0x12 + CTX_GFD_GFRIEND_COFFEE = 19, // 0x13 + CTX_GFD_GFRIEND_DISLIKE_CURRENT_ZONE = 20, // 0x14 + CTX_GFD_GFRIEND_DUMP_PLAYER_LIVE = 21, // 0x15 + CTX_GFD_GFRIEND_ENJOYED_CLUB_HIGH = 22, // 0x16 + CTX_GFD_GFRIEND_ENJOYED_EVENT_LOW = 23, // 0x17 + CTX_GFD_GFRIEND_ENJOYED_MEAL_HIGH = 24, // 0x18 + CTX_GFD_GFRIEND_GIFT_LIKE = 25, // 0x19 + CTX_GFD_GFRIEND_GOODBYE = 26, // 0x1A + CTX_GFD_GFRIEND_GOODBYE_ANGRY = 27, // 0x1B + CTX_GFD_GFRIEND_GOODBYE_HAPPY = 28, // 0x1C + CTX_GFD_GFRIEND_HEAD = 29, // 0x1D + CTX_GFD_GFRIEND_HELLO = 30, // 0x1E + CTX_GFD_GFRIEND_HIT_BY_PLAYER_WARNING = 31, // 0x1F + CTX_GFD_GFRIEND_INTRO = 32, // 0x20 + CTX_GFD_GFRIEND_JEALOUS = 33, // 0x21 + CTX_GFD_GFRIEND_JEALOUS_REPLY = 34, // 0x22 + CTX_GFD_GFRIEND_LEFT_BEHIND = 35, // 0x23 + CTX_GFD_GFRIEND_LIKE_CLUB_DEST = 36, // 0x24 + CTX_GFD_GFRIEND_LIKE_CURRENT_ZONE = 37, // 0x25 + CTX_GFD_GFRIEND_LIKE_MEAL_DEST = 38, // 0x26 + CTX_GFD_GFRIEND_MEET_AGAIN = 39, // 0x27 + CTX_GFD_GFRIEND_MOAN = 40, // 0x28 + CTX_GFD_GFRIEND_MOAN_MUFFLED = 41, // 0x29 + CTX_GFD_GFRIEND_NEG_RESPONSE = 42, // 0x2A + CTX_GFD_GFRIEND_OFFER_DANCE = 43, // 0x2B + CTX_GFD_GFRIEND_PARK_LOCATION_HATE = 44, // 0x2C + CTX_GFD_GFRIEND_PARK_UP = 45, // 0x2D + CTX_GFD_GFRIEND_POS_RESPONSE = 46, // 0x2E + CTX_GFD_GFRIEND_REJECT_DATE = 47, // 0x2F + CTX_GFD_GFRIEND_REQ_DANCE_DESPERATE = 48, // 0x30 + CTX_GFD_GFRIEND_REQ_DANCE_NORMAL = 49, // 0x31 + CTX_GFD_GFRIEND_REQ_DATE_DESPERATE = 50, // 0x32 + CTX_GFD_GFRIEND_REQ_DATE_NORMAL = 51, // 0x33 + CTX_GFD_GFRIEND_REQ_DRIVE_DESPERATE = 52, // 0x34 + CTX_GFD_GFRIEND_REQ_DRIVE_NORMAL = 53, // 0x35 + CTX_GFD_GFRIEND_REQ_MEAL_DESPERATE = 54, // 0x36 + CTX_GFD_GFRIEND_REQ_MEAL_NORMAL = 55, // 0x37 + CTX_GFD_GFRIEND_REQ_SEX_DESPERATE = 56, // 0x38 + CTX_GFD_GFRIEND_REQ_SEX_NORMAL = 57, // 0x39 + CTX_GFD_GFRIEND_SEX_BAD = 58, // 0x3A + CTX_GFD_GFRIEND_SEX_GOOD = 59, // 0x3B + CTX_GFD_GFRIEND_SEX_GOOD_MUFFLED = 60, // 0x3C + CTX_GFD_GFRIEND_STORY = 61, // 0x3D + CTX_GFD_GFRIEND_TAKE_HOME_ANGRY = 62, // 0x3E + CTX_GFD_GFRIEND_TAKE_HOME_HAPPY = 63, // 0x3F + CTX_GFD_GUN_COOL = 64, // 0x40 + CTX_GFD_JACKED_IN_CAR = 65, // 0x41 + CTX_GFD_JACKED_ON_STREET = 66, // 0x42 + CTX_GFD_LIKE_DISMISS_REPLY = 67, // 0x43 + CTX_GFD_PCONV_AGREE_BAD = 68, // 0x44 + CTX_GFD_PCONV_AGREE_GOOD = 69, // 0x45 + CTX_GFD_PCONV_ANS_NO = 70, // 0x46 + CTX_GFD_PCONV_DISMISS = 71, // 0x47 + CTX_GFD_PCONV_GREET_FEM = 72, // 0x48 + CTX_GFD_PCONV_GREET_MALE = 73, // 0x49 + CTX_GFD_PCONV_PART_FEM = 74, // 0x4A + CTX_GFD_PCONV_PART_MALE = 75, // 0x4B + CTX_GFD_PCONV_QUESTION = 76, // 0x4C + CTX_GFD_PCONV_STATE_BAD = 77, // 0x4D + CTX_GFD_PCONV_STATE_GOOD = 78, // 0x4E + CTX_GFD_PHYSIQUE_CRITIQUE = 79, // 0x4F + CTX_GFD_SAVED = 80, // 0x50 + CTX_GFD_SEX_APPEAL_TOO_LOW = 81, // 0x51 + CTX_GFD_SHOCKED = 82, // 0x52 + CTX_GFD_TRAPPED = 83, // 0x53 + CTX_GFD_GIVE_PRODUCT = 84, // 0x54 + CTX_GFD_NO_MONEY = 85, // 0x55 + CTX_GFD_SHOOT_GENERIC = 86, // 0x56 + CTX_GFD_SHOP_CHAT = 87, // 0x57 + CTX_GFD_SPRAYED = 88, // 0x58 + CTX_GFD_TAKE_A_SEAT = 89, // 0x59 + CTX_GFD_THANKS_FOR_CUSTOM = 90, // 0x5A + CTX_GFD_WHAT_WANT = 91, // 0x5B + CTX_GFD_REMOVE_TATTOO = 92, // 0x5C + CTX_GFD_BLOCKED = 93, // 0x5D + CTX_GFD_CHAT = 94, // 0x5E + CTX_GFD_CONV_DISL_PHYS = 95, // 0x5F + CTX_GFD_CONV_LIKE_PHYS = 96, // 0x60 + CTX_GFD_CRASH_BIKE = 97, // 0x61 + CTX_GFD_CRASH_CAR = 98, // 0x62 + CTX_GFD_CRASH_GENERIC = 99, // 0x63 + CTX_GFD_JACKING_GENERIC = 100, // 0x64 + CTX_GFD_GFRIEND_DO_A_DRIVEBY = 101, // 0x65 + CTX_GFD_GFRIEND_START_A_FIGHT = 102, // 0x66 + CTX_GFD_DANCE_IMPR_HIGH = 103, // 0x67 + CTX_GFD_DANCE_IMPR_LOW = 104, // 0x68 + CTX_GFD_DANCE_IMPR_MED = 105, // 0x69 + CTX_GFD_DANCE_IMPR_NOT = 106, // 0x6A + CTX_GFD_GUN_RUN = 107, // 0x6B + CTX_GFD_GFRIEND_DROP_PLAYER_DRIVE_AWAY = 108, // 0x6C + CTX_GFD_GFRIEND_REQUEST_TO_DRIVE_CAR = 109, // 0x6D + CTX_GFD_CAR_ON_FIRE = 110, // 0x6E + CTX_GFD_GFRIEND_SPANKED = 111, // 0x6F + CTX_GFD_BOAT = 112, // 0x70 + CTX_GFD_HELICOPTER = 113, // 0x71 + CTX_GFD_OVERBOARD = 114, // 0x72 + CTX_GFD_BOUGHT_ENOUGH = 115, // 0x73 + CTX_GFD_PLAYER_SICK = 116, // 0x74 + CTX_GFD_SHOP_CLOSED = 117, // 0x75 + CTX_GFD_SHOW_CHANGINGROOM = 118, // 0x76 + CTX_GFD_WELCOME_TO_SHOP = 119, // 0x77 + CTX_GFD_END = 120, // 0x78 +}; + +/*! +* @brief Pain speech contexts (This isn't associated with a `eAudioPedType` directly) +* @brief But, the contexts are grouped by ped/player +* @brief I made this enum up, couldn't find any info about it, but it def. existed. +*/ +enum ePainSpeechContexts : int16 { + CTX_PAIN_UNK = -1, + CTX_PAIN_CJ_BOXING = 0, // 0x0 + CTX_PAIN_CJ_COUGH = 1, // 0x1 + CTX_PAIN_CJ_DEATH = 2, // 0x2 + CTX_PAIN_CJ_DROWNING = 3, // 0x3 + CTX_PAIN_CJ_GRUNT = 4, // 0x4 + CTX_PAIN_CJ_HIGH_FALL = 5, // 0x5 + CTX_PAIN_CJ_ON_FIRE = 6, // 0x6 + CTX_PAIN_CJ_GENERIC_HIGH = 7, // 0x7 + CTX_PAIN_CJ_GENERIC_LOW = 8, // 0x8 + CTX_PAIN_CJ_PANT_IN = 9, // 0x9 + CTX_PAIN_CJ_PANT_OUT = 10, // 0x0A + CTX_PAIN_CJ_PUKE = 11, // 0x0B + CTX_PAIN_CJ_STRAIN = 12, // 0x0C + CTX_PAIN_CJ_STRAIN_EXHALE = 13, // 0x0D + CTX_PAIN_CJ_SWIM_GASP = 14, // 0x0E + + CTX_PAIN_PED_COUGH = 15, // 0x0F + CTX_PAIN_PED_DEATH_HIGH = 16, // 0x10 + CTX_PAIN_PED_DEATH_LOW = 17, // 0x11 + CTX_PAIN_PED_GENRIC = 18, // 0x12 + CTX_PAIN_PED_ON_FIRE = 19, // 0x13 + CTX_PAIN_PED_PANIC = 20, // 0x14 + CTX_PAIN_PED_SPRAYED = 21, // 0x15 + + // + // Add above + // + CTX_PAIN_END +}; + +using eSpecificSpeechContext = int16; diff --git a/source/game_sa/Audio/Enums/PedSpeechVoices.h b/source/game_sa/Audio/Enums/PedSpeechVoices.h new file mode 100644 index 0000000000..0d3efdd6f6 --- /dev/null +++ b/source/game_sa/Audio/Enums/PedSpeechVoices.h @@ -0,0 +1,414 @@ +#pragma once + +/*! + * @brief Generic voices (For `PED_TYPE_GEN`) + */ +enum eGenSpeechVoices : int16 { + VOICE_GEN_BBDYG1 = 0, // 0x0 + VOICE_GEN_BBDYG2 = 1, // 0x1 + VOICE_GEN_BFORI = 2, // 0x2 + VOICE_GEN_BFOST = 3, // 0x3 + VOICE_GEN_BFYBE = 4, // 0x4 + VOICE_GEN_BFYBU = 5, // 0x5 + VOICE_GEN_BFYCRP = 6, // 0x6 + VOICE_GEN_BFYPRO = 7, // 0x7 + VOICE_GEN_BFYRI = 8, // 0x8 + VOICE_GEN_BFYST = 9, // 0x9 + VOICE_GEN_BIKDRUG = 10, // 0xA + VOICE_GEN_BIKERA = 11, // 0xB + VOICE_GEN_BIKERB = 12, // 0xC + VOICE_GEN_BMOCD = 13, // 0xD + VOICE_GEN_BMORI = 14, // 0xE + VOICE_GEN_BMOSEC = 15, // 0xF + VOICE_GEN_BMOST = 16, // 0x10 + VOICE_GEN_BMOTR1 = 17, // 0x11 + VOICE_GEN_BMYAP = 18, // 0x12 + VOICE_GEN_BMYBE = 19, // 0x13 + VOICE_GEN_BMYBOUN = 20, // 0x14 + VOICE_GEN_BMYBOX = 21, // 0x15 + VOICE_GEN_BMYBU = 22, // 0x16 + VOICE_GEN_BMYCG = 23, // 0x17 + VOICE_GEN_BMYCON = 24, // 0x18 + VOICE_GEN_BMYCR = 25, // 0x19 + VOICE_GEN_BMYDJ = 26, // 0x1A + VOICE_GEN_BMYDRUG = 27, // 0x1B + VOICE_GEN_BMYMOUN = 28, // 0x1C + VOICE_GEN_BMYPOL1 = 29, // 0x1D + VOICE_GEN_BMYPOL2 = 30, // 0x1E + VOICE_GEN_BMYRI = 31, // 0x1F + VOICE_GEN_BMYST = 32, // 0x20 + VOICE_GEN_BYMPI = 33, // 0x21 + VOICE_GEN_CWFOFR = 34, // 0x22 + VOICE_GEN_CWFOHB = 35, // 0x23 + VOICE_GEN_CWFYFR1 = 36, // 0x24 + VOICE_GEN_CWFYFR2 = 37, // 0x25 + VOICE_GEN_CWFYHB1 = 38, // 0x26 + VOICE_GEN_CWMOFR1 = 39, // 0x27 + VOICE_GEN_CWMOHB1 = 40, // 0x28 + VOICE_GEN_CWMOHB2 = 41, // 0x29 + VOICE_GEN_CWMYFR = 42, // 0x2A + VOICE_GEN_CWMYHB1 = 43, // 0x2B + VOICE_GEN_CWMYHB2 = 44, // 0x2C + VOICE_GEN_DNFOLC1 = 45, // 0x2D + VOICE_GEN_DNFOLC2 = 46, // 0x2E + VOICE_GEN_DNFYLC = 47, // 0x2F + VOICE_GEN_DNMOLC1 = 48, // 0x30 + VOICE_GEN_DNMOLC2 = 49, // 0x31 + VOICE_GEN_DNMYLC = 50, // 0x32 + VOICE_GEN_DWFOLC = 51, // 0x33 + VOICE_GEN_DWFYLC1 = 52, // 0x34 + VOICE_GEN_DWFYLC2 = 53, // 0x35 + VOICE_GEN_DWMOLC1 = 54, // 0x36 + VOICE_GEN_DWMOLC2 = 55, // 0x37 + VOICE_GEN_DWMYLC1 = 56, // 0x38 + VOICE_GEN_DWMYLC2 = 57, // 0x39 + VOICE_GEN_HFORI = 58, // 0x3A + VOICE_GEN_HFOST = 59, // 0x3B + VOICE_GEN_HFYBE = 60, // 0x3C + VOICE_GEN_HFYPRO = 61, // 0x3D + VOICE_GEN_HFYRI = 62, // 0x3E + VOICE_GEN_HFYST = 63, // 0x3F + VOICE_GEN_HMORI = 64, // 0x40 + VOICE_GEN_HMOST = 65, // 0x41 + VOICE_GEN_HMYBE = 66, // 0x42 + VOICE_GEN_HMYCM = 67, // 0x43 + VOICE_GEN_HMYCR = 68, // 0x44 + VOICE_GEN_HMYDRUG = 69, // 0x45 + VOICE_GEN_HMYRI = 70, // 0x46 + VOICE_GEN_HMYST = 71, // 0x47 + VOICE_GEN_IMYST = 72, // 0x48 + VOICE_GEN_IRFYST = 73, // 0x49 + VOICE_GEN_IRMYST = 74, // 0x4A + VOICE_GEN_MAFFA = 75, // 0x4B + VOICE_GEN_MAFFB = 76, // 0x4C + VOICE_GEN_MALE01 = 77, // 0x4D + VOICE_GEN_NOVOICE = 78, // 0x4E + VOICE_GEN_OFORI = 79, // 0x4F + VOICE_GEN_OFOST = 80, // 0x50 + VOICE_GEN_OFYRI = 81, // 0x51 + VOICE_GEN_OFYST = 82, // 0x52 + VOICE_GEN_OMOBOAT = 83, // 0x53 + VOICE_GEN_OMOKUNG = 84, // 0x54 + VOICE_GEN_OMORI = 85, // 0x55 + VOICE_GEN_OMOST = 86, // 0x56 + VOICE_GEN_OMYRI = 87, // 0x57 + VOICE_GEN_OMYST = 88, // 0x58 + VOICE_GEN_SBFORI = 89, // 0x59 + VOICE_GEN_SBFOST = 90, // 0x5A + VOICE_GEN_SBFYPRO = 91, // 0x5B + VOICE_GEN_SBFYRI = 92, // 0x5C + VOICE_GEN_SBFYST = 93, // 0x5D + VOICE_GEN_SBFYSTR = 94, // 0x5E + VOICE_GEN_SBMOCD = 95, // 0x5F + VOICE_GEN_SBMORI = 96, // 0x60 + VOICE_GEN_SBMOST = 97, // 0x61 + VOICE_GEN_SBMOTR1 = 98, // 0x62 + VOICE_GEN_SBMOTR2 = 99, // 0x63 + VOICE_GEN_SBMYCR = 100, // 0x64 + VOICE_GEN_SBMYRI = 101, // 0x65 + VOICE_GEN_SBMYST = 102, // 0x66 + VOICE_GEN_SBMYTR3 = 103, // 0x67 + VOICE_GEN_SFYPRO = 104, // 0x68 + VOICE_GEN_SHFYPRO = 105, // 0x69 + VOICE_GEN_SHMYCR = 106, // 0x6A + VOICE_GEN_SMYST = 107, // 0x6B + VOICE_GEN_SMYST2 = 108, // 0x6C + VOICE_GEN_SOFORI = 109, // 0x6D + VOICE_GEN_SOFOST = 110, // 0x6E + VOICE_GEN_SOFYBU = 111, // 0x6F + VOICE_GEN_SOFYRI = 112, // 0x70 + VOICE_GEN_SOFYST = 113, // 0x71 + VOICE_GEN_SOMOBU = 114, // 0x72 + VOICE_GEN_SOMORI = 115, // 0x73 + VOICE_GEN_SOMOST = 116, // 0x74 + VOICE_GEN_SOMYAP = 117, // 0x75 + VOICE_GEN_SOMYBU = 118, // 0x76 + VOICE_GEN_SOMYRI = 119, // 0x77 + VOICE_GEN_SOMYST = 120, // 0x78 + VOICE_GEN_SWFOPRO = 121, // 0x79 + VOICE_GEN_SWFORI = 122, // 0x7A + VOICE_GEN_SWFOST = 123, // 0x7B + VOICE_GEN_SWFYRI = 124, // 0x7C + VOICE_GEN_SWFYST = 125, // 0x7D + VOICE_GEN_SWFYSTR = 126, // 0x7E + VOICE_GEN_SWMOCD = 127, // 0x7F + VOICE_GEN_SWMORI = 128, // 0x80 + VOICE_GEN_SWMOST = 129, // 0x81 + VOICE_GEN_SWMOTR1 = 130, // 0x82 + VOICE_GEN_SWMOTR2 = 131, // 0x83 + VOICE_GEN_SWMOTR3 = 132, // 0x84 + VOICE_GEN_SWMOTR4 = 133, // 0x85 + VOICE_GEN_SWMOTR5 = 134, // 0x86 + VOICE_GEN_SWMYCR = 135, // 0x87 + VOICE_GEN_SWMYHP1 = 136, // 0x88 + VOICE_GEN_SWMYHP2 = 137, // 0x89 + VOICE_GEN_SWMYRI = 138, // 0x8A + VOICE_GEN_SWMYST = 139, // 0x8B + VOICE_GEN_VBFYPRO = 140, // 0x8C + VOICE_GEN_VBFYST2 = 141, // 0x8D + VOICE_GEN_VBMOCD = 142, // 0x8E + VOICE_GEN_VBMYCR = 143, // 0x8F + VOICE_GEN_VBMYELV = 144, // 0x90 + VOICE_GEN_VHFYPRO = 145, // 0x91 + VOICE_GEN_VHFYST3 = 146, // 0x92 + VOICE_GEN_VHMYCR = 147, // 0x93 + VOICE_GEN_VHMYELV = 148, // 0x94 + VOICE_GEN_VIMYELV = 149, // 0x95 + VOICE_GEN_VWFYPRO = 150, // 0x96 + VOICE_GEN_VWFYST1 = 151, // 0x97 + VOICE_GEN_VWFYWAI = 152, // 0x98 + VOICE_GEN_VWMOTR1 = 153, // 0x99 + VOICE_GEN_VWMOTR2 = 154, // 0x9A + VOICE_GEN_VWMYAP = 155, // 0x9B + VOICE_GEN_VWMYBJD = 156, // 0x9C + VOICE_GEN_VWMYCD = 157, // 0x9D + VOICE_GEN_VWMYCR = 158, // 0x9E + VOICE_GEN_WFOPJ = 159, // 0x9F + VOICE_GEN_WFORI = 160, // 0xA0 + VOICE_GEN_WFOST = 161, // 0xA1 + VOICE_GEN_WFYBE = 162, // 0xA2 + VOICE_GEN_WFYBU = 163, // 0xA3 + VOICE_GEN_WFYCRK = 164, // 0xA4 + VOICE_GEN_WFYCRP = 165, // 0xA5 + VOICE_GEN_WFYJG = 166, // 0xA6 + VOICE_GEN_WFYLG = 167, // 0xA7 + VOICE_GEN_WFYPRO = 168, // 0xA8 + VOICE_GEN_WFYRI = 169, // 0xA9 + VOICE_GEN_WFYRO = 170, // 0xAA + VOICE_GEN_WFYST = 171, // 0xAB + VOICE_GEN_WFYSTEW = 172, // 0xAC + VOICE_GEN_WMOMIB = 173, // 0xAD + VOICE_GEN_WMOPJ = 174, // 0xAE + VOICE_GEN_WMOPREA = 175, // 0xAF + VOICE_GEN_WMORI = 176, // 0xB0 + VOICE_GEN_WMOSCI = 177, // 0xB1 + VOICE_GEN_WMOST = 178, // 0xB2 + VOICE_GEN_WMOTR1 = 179, // 0xB3 + VOICE_GEN_WMYBE = 180, // 0xB4 + VOICE_GEN_WMYBMX = 181, // 0xB5 + VOICE_GEN_WMYBOUN = 182, // 0xB6 + VOICE_GEN_WMYBOX = 183, // 0xB7 + VOICE_GEN_WMYBP = 184, // 0xB8 + VOICE_GEN_WMYBU = 185, // 0xB9 + VOICE_GEN_WMYCD1 = 186, // 0xBA + VOICE_GEN_WMYCD2 = 187, // 0xBB + VOICE_GEN_WMYCH = 188, // 0xBC + VOICE_GEN_WMYCON = 189, // 0xBD + VOICE_GEN_WMYCONB = 190, // 0xBE + VOICE_GEN_WMYCR = 191, // 0xBF + VOICE_GEN_WMYDRUG = 192, // 0xC0 + VOICE_GEN_WMYGAR = 193, // 0xC1 + VOICE_GEN_WMYGOL1 = 194, // 0xC2 + VOICE_GEN_WMYGOL2 = 195, // 0xC3 + VOICE_GEN_WMYJG = 196, // 0xC4 + VOICE_GEN_WMYLG = 197, // 0xC5 + VOICE_GEN_WMYMECH = 198, // 0xC6 + VOICE_GEN_WMYMOUN = 199, // 0xC7 + VOICE_GEN_WMYPLT = 200, // 0xC8 + VOICE_GEN_WMYRI = 201, // 0xC9 + VOICE_GEN_WMYRO = 202, // 0xCA + VOICE_GEN_WMYSGRD = 203, // 0xCB + VOICE_GEN_WMYSKAT = 204, // 0xCC + VOICE_GEN_WMYST = 205, // 0xCD + VOICE_GEN_WMYTX1 = 206, // 0xCE + VOICE_GEN_WMYTX2 = 207, // 0xCF + VOICE_GEN_WMYVA = 208, // 0xD0 + VOICE_GEN_END = 209, // 0xD1 +}; + +/*! + * @brief Emergency voices (For `PED_TYPE_EMG`) + */ +enum eEmgSpeechVoices : int16 { + VOICE_EMG_ARMY1 = 0, // 0x0 + VOICE_EMG_ARMY2 = 1, // 0x1 + VOICE_EMG_ARMY3 = 2, // 0x2 + VOICE_EMG_EMT1 = 3, // 0x3 + VOICE_EMG_EMT2 = 4, // 0x4 + VOICE_EMG_EMT3 = 5, // 0x5 + VOICE_EMG_EMT4 = 6, // 0x6 + VOICE_EMG_EMT5 = 7, // 0x7 + VOICE_EMG_FBI2 = 8, // 0x8 + VOICE_EMG_FBI3 = 9, // 0x9 + VOICE_EMG_FBI4 = 10, // 0xA + VOICE_EMG_FBI5 = 11, // 0xB + VOICE_EMG_FBI6 = 12, // 0xC + VOICE_EMG_LAPD1 = 13, // 0xD + VOICE_EMG_LAPD2 = 14, // 0xE + VOICE_EMG_LAPD3 = 15, // 0xF + VOICE_EMG_LAPD4 = 16, // 0x10 + VOICE_EMG_LAPD5 = 17, // 0x11 + VOICE_EMG_LAPD6 = 18, // 0x12 + VOICE_EMG_LAPD7 = 19, // 0x13 + VOICE_EMG_LAPD8 = 20, // 0x14 + VOICE_EMG_LVPD1 = 21, // 0x15 + VOICE_EMG_LVPD2 = 22, // 0x16 + VOICE_EMG_LVPD3 = 23, // 0x17 + VOICE_EMG_LVPD4 = 24, // 0x18 + VOICE_EMG_LVPD5 = 25, // 0x19 + VOICE_EMG_MCOP1 = 26, // 0x1A + VOICE_EMG_MCOP2 = 27, // 0x1B + VOICE_EMG_MCOP3 = 28, // 0x1C + VOICE_EMG_MCOP4 = 29, // 0x1D + VOICE_EMG_MCOP5 = 30, // 0x1E + VOICE_EMG_MCOP6 = 31, // 0x1F + VOICE_EMG_PULASKI = 32, // 0x20 + VOICE_EMG_RCOP1 = 33, // 0x21 + VOICE_EMG_RCOP2 = 34, // 0x22 + VOICE_EMG_RCOP3 = 35, // 0x23 + VOICE_EMG_RCOP4 = 36, // 0x24 + VOICE_EMG_SFPD1 = 37, // 0x25 + VOICE_EMG_SFPD2 = 38, // 0x26 + VOICE_EMG_SFPD3 = 39, // 0x27 + VOICE_EMG_SFPD4 = 40, // 0x28 + VOICE_EMG_SFPD5 = 41, // 0x29 + VOICE_EMG_SWAT1 = 42, // 0x2A + VOICE_EMG_SWAT2 = 43, // 0x2B + VOICE_EMG_SWAT4 = 44, // 0x2C + VOICE_EMG_SWAT6 = 45, // 0x2D + VOICE_EMG_END = 46, // 0x2E +}; + +/*! + * @brief Player voices (For `PED_TYPE_PLAYER`) + */ +enum ePlySpeechVoices : int16 { + VOICE_PLY_AG = 0, // 0x0 + VOICE_PLY_AG2 = 1, // 0x1 + + VOICE_PLY_AR = 2, // 0x2 + VOICE_PLY_AR2 = 3, // 0x3 + + VOICE_PLY_CD = 4, // 0x4 + VOICE_PLY_CD2 = 5, // 0x5 + + VOICE_PLY_CF = 6, // 0x6 + VOICE_PLY_CF2 = 7, // 0x7 + + VOICE_PLY_CG = 8, // 0x8 + VOICE_PLY_CG2 = 9, // 0x9 + + VOICE_PLY_CR = 10, // 0xA + VOICE_PLY_CR2 = 11, // 0xB + + VOICE_PLY_PG = 12, // 0xC + VOICE_PLY_PG2 = 13, // 0xD + + VOICE_PLY_PR = 14, // 0xE + VOICE_PLY_PR2 = 15, // 0xF + + VOICE_PLY_WG = 16, // 0x10 + VOICE_PLY_WG2 = 17, // 0x11 + + VOICE_PLY_WR = 18, // 0x12 + VOICE_PLY_WR2 = 19, // 0x13 + + VOICE_PLY_END = 20, // 0x14 +}; + +/*! + * @brief Gang voices (For `PED_TYPE_GANG`) + */ +enum eGngSpeechVoices : int16 { + VOICE_GNG_BALLAS1 = 0, // 0x0 + VOICE_GNG_BALLAS2 = 1, // 0x1 + VOICE_GNG_BALLAS3 = 2, // 0x2 + VOICE_GNG_BALLAS4 = 3, // 0x3 + VOICE_GNG_BALLAS5 = 4, // 0x4 + VOICE_GNG_BIG_BEAR = 5, // 0x5 + VOICE_GNG_CESAR = 6, // 0x6 + VOICE_GNG_DNB1 = 7, // 0x7 + VOICE_GNG_DNB2 = 8, // 0x8 + VOICE_GNG_DNB3 = 9, // 0x9 + VOICE_GNG_DNB5 = 10, // 0xA + VOICE_GNG_DWAINE = 11, // 0xB + VOICE_GNG_FAM1 = 12, // 0xC + VOICE_GNG_FAM2 = 13, // 0xD + VOICE_GNG_FAM3 = 14, // 0xE + VOICE_GNG_FAM4 = 15, // 0xF + VOICE_GNG_FAM5 = 16, // 0x10 + VOICE_GNG_JIZZY = 17, // 0x11 + VOICE_GNG_LSV1 = 18, // 0x12 + VOICE_GNG_LSV2 = 19, // 0x13 + VOICE_GNG_LSV3 = 20, // 0x14 + VOICE_GNG_LSV4 = 21, // 0x15 + VOICE_GNG_LSV5 = 22, // 0x16 + VOICE_GNG_MACCER = 23, // 0x17 + VOICE_GNG_MAFBOSS = 24, // 0x18 + VOICE_GNG_OGLOC = 25, // 0x19 + VOICE_GNG_RYDER = 26, // 0x1A + VOICE_GNG_SFR1 = 27, // 0x1B + VOICE_GNG_SFR2 = 28, // 0x1C + VOICE_GNG_SFR3 = 29, // 0x1D + VOICE_GNG_SFR4 = 30, // 0x1E + VOICE_GNG_SFR5 = 31, // 0x1F + VOICE_GNG_SMOKE = 32, // 0x20 + VOICE_GNG_STRI1 = 33, // 0x21 + VOICE_GNG_STRI2 = 34, // 0x22 + VOICE_GNG_STRI4 = 35, // 0x23 + VOICE_GNG_STRI5 = 36, // 0x24 + VOICE_GNG_SWEET = 37, // 0x25 + VOICE_GNG_TBONE = 38, // 0x26 + VOICE_GNG_TORENO = 39, // 0x27 + VOICE_GNG_TRUTH = 40, // 0x28 + VOICE_GNG_VLA1 = 41, // 0x29 + VOICE_GNG_VLA2 = 42, // 0x2A + VOICE_GNG_VLA3 = 43, // 0x2B + VOICE_GNG_VLA4 = 44, // 0x2C + VOICE_GNG_VLA5 = 45, // 0x2D + VOICE_GNG_VMAFF1 = 46, // 0x2E + VOICE_GNG_VMAFF2 = 47, // 0x2F + VOICE_GNG_VMAFF3 = 48, // 0x30 + VOICE_GNG_VMAFF4 = 49, // 0x31 + VOICE_GNG_VMAFF5 = 50, // 0x32 + VOICE_GNG_WOOZIE = 51, // 0x33 + VOICE_GNG_END = 52, // 0x34 +}; + +/*! + * @brief Girlfriend voices (For `PED_TYPE_GFD`) + */ +enum eGfdSpeechVoices : int16 { + VOICE_GFD_BARBARA = 0, // 0x0 + VOICE_GFD_BMOBAR = 1, // 0x1 + VOICE_GFD_BMYBARB = 2, // 0x2 + VOICE_GFD_BMYTATT = 3, // 0x3 + VOICE_GFD_CATALINA = 4, // 0x4 + VOICE_GFD_DENISE = 5, // 0x5 + VOICE_GFD_HELENA = 6, // 0x6 + VOICE_GFD_KATIE = 7, // 0x7 + VOICE_GFD_MICHELLE = 8, // 0x8 + VOICE_GFD_MILLIE = 9, // 0x9 + VOICE_GFD_POL_ANN = 10, // 0xA + VOICE_GFD_WFYBURG = 11, // 0xB + VOICE_GFD_WFYCLOT = 12, // 0xC + VOICE_GFD_WMYAMMO = 13, // 0xD + VOICE_GFD_WMYBARB = 14, // 0xE + VOICE_GFD_WMYBELL = 15, // 0xF + VOICE_GFD_WMYCLOT = 16, // 0x10 + VOICE_GFD_WMYPIZZ = 17, // 0x11 + VOICE_GFD_END = 18, // 0x12 +}; + +/*! + * @brief Pain voices + */ +enum ePainSpeechVoices : int16 { + VOICE_PAIN_NON_BINARY = -1, // notsa + VOICE_PAIN_CARL = 0, // 0x0 + VOICE_PAIN_FEMALE = 1, // 0x1 + VOICE_PAIN_MALE = 2, // 0x2 + VOICE_PAIN_END = 3, // 0x3 +}; + +enum { + VOICE_UNK = -1 +}; + +/*! + * @brief Use any of the enums below for this type: + * @brief `eGenSpeechVoices`, `eEmgSpeechVoices`, `ePlySpeechVoices`, + * @brief `eGngSpeechVoices`, `eGfdSpeechVoices`, `ePainSpeechVoices` + */ +using ePedSpeechVoiceS16 = int16; +using ePedSpeechVoiceS32 = int32; diff --git a/source/game_sa/Audio/Enums/ePedAudioType.h b/source/game_sa/Audio/Enums/ePedAudioType.h new file mode 100644 index 0000000000..d9df51cd65 --- /dev/null +++ b/source/game_sa/Audio/Enums/ePedAudioType.h @@ -0,0 +1,19 @@ +#pragma once + +#include + +enum eAudioPedType : int16 { + PED_TYPE_UNK = -1, // notsa + PED_TYPE_GEN = 0, + PED_TYPE_EMG = 1, + PED_TYPE_PLAYER = 2, + PED_TYPE_GANG = 3, + PED_TYPE_GFD = 4, + PED_TYPE_SPC = 5, // SPC => Special (?) + + // + // Add above + // + PED_TYPE_NUM // = 6 +}; +NOTSA_WENUM_DEFS_FOR(eAudioPedType); diff --git a/source/game_sa/Audio/Enums/eSoundBank.h b/source/game_sa/Audio/Enums/eSoundBank.h new file mode 100644 index 0000000000..0901385277 --- /dev/null +++ b/source/game_sa/Audio/Enums/eSoundBank.h @@ -0,0 +1,722 @@ +#pragma once + +#include + +// TODO: Make this an enum class +enum eSoundBank : int16 { + SND_BANK_UNK = -1, + SND_BANK_FEET_GENERIC = 0, // 0x0 + SND_BANK_FEET_GRASS = 1, // 0x1 + SND_BANK_FEET_GRAVEL = 2, // 0x2 + SND_BANK_FEET_METAL = 3, // 0x3 + SND_BANK_FEET_SAND = 4, // 0x4 + SND_BANK_FEET_TILE = 5, // 0x5 + SND_BANK_FEET_WOOD = 6, // 0x6 + SND_BANK_GENRL_90S_D = 7, // 0x7 + SND_BANK_GENRL_90S_P = 8, // 0x8 + SND_BANK_GENRL_AIPROP = 9, // 0x9 + SND_BANK_GENRL_AIRPORT_D = 10, // 0xA + SND_BANK_GENRL_AIRPORT_P = 11, // 0xB + SND_BANK_GENRL_APACHE = 12, // 0xC + SND_BANK_GENRL_APACHE_D = 13, // 0xD + SND_BANK_GENRL_ATV_D = 14, // 0xE + SND_BANK_GENRL_ATV_P = 15, // 0xF + SND_BANK_GENRL_BELAIR_D = 16, // 0x10 + SND_BANK_GENRL_BELAIR_P = 17, // 0x11 + SND_BANK_GENRL_BICYCLE_D = 18, // 0x12 + SND_BANK_GENRL_BICYCLE_P = 19, // 0x13 + SND_BANK_GENRL_BOAT_CRUISER_D = 20, // 0x14 + SND_BANK_GENRL_BOAT_INBOARD_D = 21, // 0x15 + SND_BANK_GENRL_BOAT_INBOARD_P = 22, // 0x16 + SND_BANK_GENRL_BOAT_SPEEDBOAT_D = 23, // 0x17 + SND_BANK_GENRL_BOAT_V12_D = 24, // 0x18 + SND_BANK_GENRL_BUICK_D = 25, // 0x19 + SND_BANK_GENRL_BUICK_P = 26, // 0x1A + SND_BANK_GENRL_BULLET_HITS = 27, // 0x1B + SND_BANK_GENRL_BULLET_PASS_1 = 28, // 0x1C + SND_BANK_GENRL_BULLET_PASS_2 = 29, // 0x1D + SND_BANK_GENRL_BULLET_PASS_3 = 30, // 0x1E + SND_BANK_GENRL_BULLET_PASS_4 = 31, // 0x1F + SND_BANK_GENRL_BUS_D = 32, // 0x20 + SND_BANK_GENRL_BUS_P = 33, // 0x21 + SND_BANK_GENRL_CADILLAC_D = 34, // 0x22 + SND_BANK_GENRL_CADILLAC_P = 35, // 0x23 + SND_BANK_GENRL_CHAINSAW_P = 36, // 0x24 + SND_BANK_GENRL_COBRA_D = 37, // 0x25 + SND_BANK_GENRL_COBRA_P = 38, // 0x26 + SND_BANK_GENRL_COLLISIONS = 39, // 0x27 + SND_BANK_GENRL_COPBIKE_D = 40, // 0x28 + SND_BANK_GENRL_COPBIKE_P = 41, // 0x29 + SND_BANK_GENRL_COUPE_D = 42, // 0x2A + SND_BANK_GENRL_COUPE_P = 43, // 0x2B + SND_BANK_GENRL_CRANE_P = 44, // 0x2C + SND_BANK_GENRL_CUTLASS_D = 45, // 0x2D + SND_BANK_GENRL_CUTLASS_P = 46, // 0x2E + SND_BANK_GENRL_DIRTBIKE_D = 47, // 0x2F + SND_BANK_GENRL_DIRTBIKE_P = 48, // 0x30 + SND_BANK_GENRL_DODGE_D = 49, // 0x31 + SND_BANK_GENRL_DODGE_P = 50, // 0x32 + SND_BANK_GENRL_DOORS = 51, // 0x33 + SND_BANK_GENRL_EXPLOSIONS = 52, // 0x34 + SND_BANK_GENRL_FASTPROP = 53, // 0x35 + SND_BANK_GENRL_FASTPROP_D = 54, // 0x36 + SND_BANK_GENRL_FORD_T_D = 55, // 0x37 + SND_BANK_GENRL_FORD_T_P = 56, // 0x38 + SND_BANK_GENRL_FORKLIFT_D = 57, // 0x39 + SND_BANK_GENRL_FORKLIFT_P = 58, // 0x3A + SND_BANK_GENRL_FRONTEND_GAME = 59, // 0x3B + SND_BANK_GENRL_FRONTEND_MENU = 60, // 0x3C + SND_BANK_GENRL_GOKART_D = 61, // 0x3D + SND_BANK_GENRL_GOKART_P = 62, // 0x3E + SND_BANK_GENRL_GOLF_D = 63, // 0x3F + SND_BANK_GENRL_GOLF_P = 64, // 0x40 + SND_BANK_GENRL_GOLFCART_P = 65, // 0x41 + SND_BANK_GENRL_HAIRCUT_V1 = 66, // 0x42 + SND_BANK_GENRL_HAIRCUT_V2 = 67, // 0x43 + SND_BANK_GENRL_HARVESTER_D = 68, // 0x44 + SND_BANK_GENRL_HARVESTER_P = 69, // 0x45 + SND_BANK_GENRL_HEAVY_V8_D = 70, // 0x46 + SND_BANK_GENRL_HEAVY_V8_P = 71, // 0x47 + SND_BANK_GENRL_HONDA_D = 72, // 0x48 + SND_BANK_GENRL_HONDA_P = 73, // 0x49 + SND_BANK_GENRL_HORN = 74, // 0x4A + SND_BANK_GENRL_HOTROD_D = 75, // 0x4B + SND_BANK_GENRL_HOTROD_P = 76, // 0x4C + SND_BANK_GENRL_HOVERCRAFT_D = 77, // 0x4D + SND_BANK_GENRL_HOVERCRAFT_P = 78, // 0x4E + SND_BANK_GENRL_ICEVAN_P = 79, // 0x4F + SND_BANK_GENRL_JALOPY_D = 80, // 0x50 + SND_BANK_GENRL_JALOPY_P = 81, // 0x51 + SND_BANK_GENRL_LOADING = 82, // 0x52 + SND_BANK_GENRL_MACKTRUCK_D = 83, // 0x53 + SND_BANK_GENRL_MACKTRUCK_P = 84, // 0x54 + SND_BANK_GENRL_MAVERICK = 85, // 0x55 + SND_BANK_GENRL_MERC_D = 86, // 0x56 + SND_BANK_GENRL_MERC_P = 87, // 0x57 + SND_BANK_GENRL_MODEL_T_D = 88, // 0x58 + SND_BANK_GENRL_MODEL_T_P = 89, // 0x59 + SND_BANK_GENRL_MONSTER_D = 90, // 0x5A + SND_BANK_GENRL_MONSTER_P = 91, // 0x5B + SND_BANK_GENRL_MUSTANG_D = 92, // 0x5C + SND_BANK_GENRL_MUSTANG_P = 93, // 0x5D + SND_BANK_GENRL_PACARD_D = 94, // 0x5E + SND_BANK_GENRL_PACARD_P = 95, // 0x5F + SND_BANK_GENRL_PADDY_D = 96, // 0x60 + SND_BANK_GENRL_PADDY_P = 97, // 0x61 + SND_BANK_GENRL_PATHFINDER_D = 98, // 0x62 + SND_BANK_GENRL_PATHFINDER_P = 99, // 0x63 + SND_BANK_GENRL_PONTIAC_D = 100, // 0x64 + SND_BANK_GENRL_PONTIAC_P = 101, // 0x65 + SND_BANK_GENRL_PORSCHE_D = 102, // 0x66 + SND_BANK_GENRL_PORSCHE_P = 103, // 0x67 + SND_BANK_GENRL_R22 = 104, // 0x68 + SND_BANK_GENRL_RAIN = 105, // 0x69 + SND_BANK_GENRL_RC_CAR_D = 106, // 0x6A + SND_BANK_GENRL_RC_CAR_P = 107, // 0x6B + SND_BANK_GENRL_RC_HELI_D = 108, // 0x6C + SND_BANK_GENRL_RC_HELI_P = 109, // 0x6D + SND_BANK_GENRL_RC_PLANE_D = 110, // 0x6E + SND_BANK_GENRL_RC_PLANE_P = 111, // 0x6F + SND_BANK_GENRL_RC_TANK_D = 112, // 0x70 + SND_BANK_GENRL_RC_TANK_P = 113, // 0x71 + SND_BANK_GENRL_RS427_D = 114, // 0x72 + SND_BANK_GENRL_RS427_P = 115, // 0x73 + SND_BANK_GENRL_SALOON_D = 116, // 0x74 + SND_BANK_GENRL_SALOON_P = 117, // 0x75 + SND_BANK_GENRL_SCOOTER_D = 118, // 0x76 + SND_BANK_GENRL_SCOOTER_P = 119, // 0x77 + SND_BANK_GENRL_SINGLEPROP = 120, // 0x78 + SND_BANK_GENRL_SKATEBOARD_P = 121, // 0x79 + SND_BANK_GENRL_SPORT_D = 122, // 0x7A + SND_BANK_GENRL_SPORT_P = 123, // 0x7B + SND_BANK_GENRL_SPORTSBIKE_D = 124, // 0x7C + SND_BANK_GENRL_SPORTSBIKE_P = 125, // 0x7D + SND_BANK_GENRL_SWEEPER_D = 126, // 0x7E + SND_BANK_GENRL_SWEEPER_P = 127, // 0x7F + SND_BANK_GENRL_SWIMMING = 128, // 0x80 + SND_BANK_GENRL_TEMP_D = 129, // 0x81 + SND_BANK_GENRL_TEMP_P = 130, // 0x82 + SND_BANK_GENRL_TRAIN_D = 131, // 0x83 + SND_BANK_GENRL_TRAIN_P = 132, // 0x84 + SND_BANK_GENRL_TRAM_D = 133, // 0x85 + SND_BANK_GENRL_TWINPROP = 134, // 0x86 + SND_BANK_GENRL_TWINPROP_D = 135, // 0x87 + SND_BANK_GENRL_VAN_D = 136, // 0x88 + SND_BANK_GENRL_VAN_P = 137, // 0x89 + SND_BANK_GENRL_VEHICLE_GEN = 138, // 0x8A + SND_BANK_GENRL_VTWINBIKE_D = 139, // 0x8B + SND_BANK_GENRL_VTWINBIKE_P = 140, // 0x8C + SND_BANK_GENRL_VW_VAN_D = 141, // 0x8D + SND_BANK_GENRL_VW_VAN_P = 142, // 0x8E + SND_BANK_GENRL_WEAPONS = 143, // 0x8F + SND_BANK_PAIN_A_CARL = 144, // 0x90 + SND_BANK_PAIN_A_FEMALE = 145, // 0x91 + SND_BANK_PAIN_A_MALE = 146, // 0x92 + + SND_BANK_SCRIPT_FIRST = 147, // NOTSA + SND_BANK_SCRIPT_SCANNER_AREAS = SND_BANK_SCRIPT_FIRST, // 0x93 + SND_BANK_SCRIPT_SCANNER_COLOURS = 148, // 0x94 + SND_BANK_SCRIPT_SCANNER_DIRECTIONS = 149, // 0x95 + SND_BANK_SCRIPT_SCANNER_INSTRUCTIONS = 150, // 0x96 + SND_BANK_SCRIPT_SCANNER_NUMBERS = 151, // 0x97 + SND_BANK_SCRIPT_SCANNER_VEHICLES = 152, // 0x98 + SND_BANK_SCRIPT_AIR_HORN = 153, // 0x99 + SND_BANK_SCRIPT_ARCHITECTURAL_ESPIONAGE = 154, // 0x9A + SND_BANK_SCRIPT_ARE_YOU_GOING_TO_SAN_FIERO = 155, // 0x9B + SND_BANK_SCRIPT_BACK_TO_SCHOOL = 156, // 0x9C + SND_BANK_SCRIPT_BALLA = 157, // 0x9D + SND_BANK_SCRIPT_BANDIT = 158, // 0x9E + SND_BANK_SCRIPT_BARBERS = 159, // 0x9F + SND_BANK_SCRIPT_BASKETBALL = 160, // 0xA0 + SND_BANK_SCRIPT_BBOX = 161, // 0xA1 + SND_BANK_SCRIPT_BCS5 = 162, // 0xA2 + SND_BANK_SCRIPT_BEE = 163, // 0xA3 + SND_BANK_SCRIPT_BFYCRP_GAMBLING = 164, // 0xA4 + SND_BANK_SCRIPT_BIKE_COURIER = 165, // 0xA5 + SND_BANK_SCRIPT_BLACKJACK_DEALER = 166, // 0xA6 + SND_BANK_SCRIPT_BLACK_PROJECT = 167, // 0xA7 + SND_BANK_SCRIPT_BOAT_SCHOOL = 168, // 0xA8 + SND_BANK_SCRIPT_BREAKING_THE_BANK = 169, // 0xA9 + SND_BANK_SCRIPT_BURNING_DESIRE = 170, // 0xAA + SND_BANK_SCRIPT_CARGO_PLANE = 171, // 0xAB + SND_BANK_SCRIPT_CAS1 = 172, // 0xAC + SND_BANK_SCRIPT_CAS11 = 173, // 0xAD + SND_BANK_SCRIPT_CAS2 = 174, // 0xAE + SND_BANK_SCRIPT_CAS3 = 175, // 0xAF + SND_BANK_SCRIPT_CAS4 = 176, // 0xB0 + SND_BANK_SCRIPT_CAS5 = 177, // 0xB1 + SND_BANK_SCRIPT_CAS6 = 178, // 0xB2 + SND_BANK_SCRIPT_CAS9 = 179, // 0xB3 + SND_BANK_SCRIPT_CAT = 180, // 0xB4 + SND_BANK_SCRIPT_CAT1 = 181, // 0xB5 + SND_BANK_SCRIPT_CAT2 = 182, // 0xB6 + SND_BANK_SCRIPT_CAT2_BANK = 183, // 0xB7 + SND_BANK_SCRIPT_CAT3 = 184, // 0xB8 + SND_BANK_SCRIPT_CAT4 = 185, // 0xB9 + SND_BANK_SCRIPT_CATX = 186, // 0xBA + SND_BANK_SCRIPT_CES1 = 187, // 0xBB + SND_BANK_SCRIPT_CES2 = 188, // 0xBC + SND_BANK_SCRIPT_CESX = 189, // 0xBD + SND_BANK_SCRIPT_CRA1 = 190, // 0xBE + SND_BANK_SCRIPT_CRA2 = 191, // 0xBF + SND_BANK_SCRIPT_CRA3 = 192, // 0xC0 + SND_BANK_SCRIPT_DAM_AND_BLAST = 193, // 0xC1 + SND_BANK_SCRIPT_DANCE_HIGH = 194, // 0xC2 + SND_BANK_SCRIPT_DANCE_LOW = 195, // 0xC3 + SND_BANK_SCRIPT_DANCE_MED = 196, // 0xC4 + SND_BANK_SCRIPT_DANCE_NOT = 197, // 0xC5 + SND_BANK_SCRIPT_DA_NANG = 198, // 0xC6 + SND_BANK_SCRIPT_DC2 = 199, // 0xC7 + SND_BANK_SCRIPT_DECONSTRUCTION = 200, // 0xC8 + SND_BANK_SCRIPT_DES1 = 201, // 0xC9 + SND_BANK_SCRIPT_DES2 = 202, // 0xCA + SND_BANK_SCRIPT_DES3 = 203, // 0xCB + SND_BANK_SCRIPT_DES6 = 204, // 0xCC + SND_BANK_SCRIPT_DES8 = 205, // 0xCD + SND_BANK_SCRIPT_DES9 = 206, // 0xCE + SND_BANK_SCRIPT_DOGG = 207, // 0xCF + SND_BANK_SCRIPT_DON_PEYOTE = 208, // 0xD0 + SND_BANK_SCRIPT_DUALITY = 209, // 0xD1 + SND_BANK_SCRIPT_END_OF_THE_LINE = 210, // 0xD2 + SND_BANK_SCRIPT_EXPLOSIVE_SITUATION = 211, // 0xD3 + SND_BANK_SCRIPT_FAR2 = 212, // 0xD4 + SND_BANK_SCRIPT_FAR3 = 213, // 0xD5 + SND_BANK_SCRIPT_FAR4 = 214, // 0xD6 + SND_BANK_SCRIPT_FAR5 = 215, // 0xD7 + SND_BANK_SCRIPT_FIN1 = 216, // 0xD8 + SND_BANK_SCRIPT_FIN2 = 217, // 0xD9 + SND_BANK_SCRIPT_FREEFALL = 218, // 0xDA + SND_BANK_SCRIPT_GAR1 = 219, // 0xDB + SND_BANK_SCRIPT_GAR2 = 220, // 0xDC + SND_BANK_SCRIPT_GATE = 221, // 0xDD + SND_BANK_SCRIPT_GOGO = 222, // 0xDE + SND_BANK_SCRIPT_GREY_IMPORTS = 223, // 0xDF + SND_BANK_SCRIPT_GRO1 = 224, // 0xE0 + SND_BANK_SCRIPT_GRO2 = 225, // 0xE1 + SND_BANK_SCRIPT_GYM = 226, // 0xE2 + SND_BANK_SCRIPT_HE1 = 227, // 0xE3 + SND_BANK_SCRIPT_HE2 = 228, // 0xE4 + SND_BANK_SCRIPT_HE3 = 229, // 0xE5 + SND_BANK_SCRIPT_HE4 = 230, // 0xE6 + SND_BANK_SCRIPT_HE5 = 231, // 0xE7 + SND_BANK_SCRIPT_HE8 = 232, // 0xE8 + SND_BANK_SCRIPT_HEI = 233, // 0xE9 + SND_BANK_SCRIPT_HIJACK = 234, // 0xEA + SND_BANK_SCRIPT_HOME_INVASION = 235, // 0xEB + SND_BANK_SCRIPT_HOUSE_PARTY = 236, // 0xEC + SND_BANK_SCRIPT_INT1 = 237, // 0xED + SND_BANK_SCRIPT_INT2 = 238, // 0xEE + SND_BANK_SCRIPT_JIZX = 239, // 0xEF + SND_BANK_SCRIPT_JIZZY = 240, // 0xF0 + SND_BANK_SCRIPT_KEYCARD_TO_HER_HEART = 241, // 0xF1 + SND_BANK_SCRIPT_KEYPAD = 242, // 0xF2 + SND_BANK_SCRIPT_KUNG = 243, // 0xF3 + SND_BANK_SCRIPT_LIFE_BEACH_CONV = 244, // 0xF4 + SND_BANK_SCRIPT_LOC1 = 245, // 0xF5 + SND_BANK_SCRIPT_LOC2 = 246, // 0xF6 + SND_BANK_SCRIPT_LOC3 = 247, // 0xF7 + SND_BANK_SCRIPT_LOC4 = 248, // 0xF8 + SND_BANK_SCRIPT_LOCX = 249, // 0xF9 + SND_BANK_SCRIPT_LOS_SEPULCROS = 250, // 0xFA + SND_BANK_SCRIPT_LOWR = 251, // 0xFB + SND_BANK_SCRIPT_LURE = 252, // 0xFC + SND_BANK_SCRIPT_MACX = 253, // 0xFD + SND_BANK_SCRIPT_MADD_DOG = 254, // 0xFE + SND_BANK_SCRIPT_MAD_DOGGS_RHYMES = 255, // 0xFF + SND_BANK_SCRIPT_MAN1 = 256, // 0x100 + SND_BANK_SCRIPT_MAN2 = 257, // 0x101 + SND_BANK_SCRIPT_MAN3 = 258, // 0x102 + SND_BANK_SCRIPT_MAN5 = 259, // 0x103 + SND_BANK_SCRIPT_MANAGEMENT_ISSUES = 260, // 0x104 + SND_BANK_SCRIPT_MBARB = 261, // 0x105 + SND_BANK_SCRIPT_MCAT = 262, // 0x106 + SND_BANK_SCRIPT_MCES = 263, // 0x107 + SND_BANK_SCRIPT_MDEN = 264, // 0x108 + SND_BANK_SCRIPT_MEAT_BUSINESS = 265, // 0x109 + SND_BANK_SCRIPT_MECHANIC = 266, // 0x10A + SND_BANK_SCRIPT_MECHANIC_DIALOGUE = 267, // 0x10B + SND_BANK_SCRIPT_MHEL = 268, // 0x10C + SND_BANK_SCRIPT_MHRZ = 269, // 0x10D + SND_BANK_SCRIPT_MJET = 270, // 0x10E + SND_BANK_SCRIPT_MJIZ = 271, // 0x10F + SND_BANK_SCRIPT_MKND = 272, // 0x110 + SND_BANK_SCRIPT_MKP = 273, // 0x111 + SND_BANK_SCRIPT_MLOC = 274, // 0x112 + SND_BANK_SCRIPT_MMICH = 275, // 0x113 + SND_BANK_SCRIPT_MMILL = 276, // 0x114 + SND_BANK_SCRIPT_MOUNTAIN_CLOUD_BOY = 277, // 0x115 + SND_BANK_SCRIPT_MPUL = 278, // 0x116 + SND_BANK_SCRIPT_MROS = 279, // 0x117 + SND_BANK_SCRIPT_MSAL = 280, // 0x118 + SND_BANK_SCRIPT_MSMK = 281, // 0x119 + SND_BANK_SCRIPT_MSWE = 282, // 0x11A + SND_BANK_SCRIPT_MTEN = 283, // 0x11B + SND_BANK_SCRIPT_MTG = 284, // 0x11C + SND_BANK_SCRIPT_MTOR = 285, // 0x11D + SND_BANK_SCRIPT_MTRU = 286, // 0x11E + SND_BANK_SCRIPT_MWUZ = 287, // 0x11F + SND_BANK_SCRIPT_MZAHN = 288, // 0x120 + SND_BANK_SCRIPT_MZER = 289, // 0x121 + SND_BANK_SCRIPT_NOE = 290, // 0x122 + SND_BANK_SCRIPT_NULL = 291, // 0x123 + SND_BANK_SCRIPT_OGLOC = 292, // 0x124 + SND_BANK_SCRIPT_OTB = 293, // 0x125 + SND_BANK_SCRIPT_PIMPING = 294, // 0x126 + SND_BANK_SCRIPT_POOL = 295, // 0x127 + SND_BANK_SCRIPT_POOL_MINIGAME = 296, // 0x128 + SND_BANK_SCRIPT_PUNCTURE_WOUNDS = 297, // 0x129 + SND_BANK_SCRIPT_RESTAURANT = 298, // 0x12A + SND_BANK_SCRIPT_REUNITING_THE_FAMILIES = 299, // 0x12B + SND_BANK_SCRIPT_ROB_GAS_STATION = 300, // 0x12C + SND_BANK_SCRIPT_ROT1 = 301, // 0x12D + SND_BANK_SCRIPT_ROT2 = 302, // 0x12E + SND_BANK_SCRIPT_ROT4 = 303, // 0x12F + SND_BANK_SCRIPT_ROULETTE = 304, // 0x130 + SND_BANK_SCRIPT_RYD1 = 305, // 0x131 + SND_BANK_SCRIPT_RYD2 = 306, // 0x132 + SND_BANK_SCRIPT_RYD3 = 307, // 0x133 + SND_BANK_SCRIPT_RYDX = 308, // 0x134 + SND_BANK_SCRIPT_SCR1 = 309, // 0x135 + SND_BANK_SCRIPT_SHOOTING_RANGE = 310, // 0x136 + SND_BANK_SCRIPT_SHRK = 311, // 0x137 + SND_BANK_SCRIPT_SMO1 = 312, // 0x138 + SND_BANK_SCRIPT_SMO2 = 313, // 0x139 + SND_BANK_SCRIPT_SMO3 = 314, // 0x13A + SND_BANK_SCRIPT_SMO4 = 315, // 0x13B + SND_BANK_SCRIPT_SMOX = 316, // 0x13C + SND_BANK_SCRIPT_SOLO = 317, // 0x13D + SND_BANK_SCRIPT_STADIUM_CHEERS = 318, // 0x13E + SND_BANK_SCRIPT_STINGER = 319, // 0x13F + SND_BANK_SCRIPT_STL1 = 320, // 0x140 + SND_BANK_SCRIPT_STL2 = 321, // 0x141 + SND_BANK_SCRIPT_STL4 = 322, // 0x142 + SND_BANK_SCRIPT_STL5 = 323, // 0x143 + SND_BANK_SCRIPT_SWE1 = 324, // 0x144 + SND_BANK_SCRIPT_SWE2 = 325, // 0x145 + SND_BANK_SCRIPT_SWE3 = 326, // 0x146 + SND_BANK_SCRIPT_SWE4 = 327, // 0x147 + SND_BANK_SCRIPT_SWE5 = 328, // 0x148 + SND_BANK_SCRIPT_SWE7 = 329, // 0x149 + SND_BANK_SCRIPT_SWEX = 330, // 0x14A + SND_BANK_SCRIPT_SYN1 = 331, // 0x14B + SND_BANK_SCRIPT_SYN2 = 332, // 0x14C + SND_BANK_SCRIPT_SYN3 = 333, // 0x14D + SND_BANK_SCRIPT_SYN4 = 334, // 0x14E + SND_BANK_SCRIPT_SYN5 = 335, // 0x14F + SND_BANK_SCRIPT_SYN7 = 336, // 0x150 + SND_BANK_SCRIPT_TATTOO = 337, // 0x151 + SND_BANK_SCRIPT_TBOX = 338, // 0x152 + SND_BANK_SCRIPT_TEMPEST = 339, // 0x153 + SND_BANK_SCRIPT_THE_JAR_OF_GREEN_GOO = 340, // 0x154 + SND_BANK_SCRIPT_TORX = 341, // 0x155 + SND_BANK_SCRIPT_TRU1 = 342, // 0x156 + SND_BANK_SCRIPT_TRU2 = 343, // 0x157 + SND_BANK_SCRIPT_TRUX = 344, // 0x158 + SND_BANK_SCRIPT_UNCLE_SAM = 345, // 0x159 + SND_BANK_SCRIPT_UP_UP_AND_AWAY = 346, // 0x15A + SND_BANK_SCRIPT_VALET = 347, // 0x15B + SND_BANK_SCRIPT_VCR1 = 348, // 0x15C + SND_BANK_SCRIPT_VCR2 = 349, // 0x15D + SND_BANK_SCRIPT_VENDING = 350, // 0x15E + SND_BANK_SCRIPT_VERTICAL_BIRD = 351, // 0x15F + SND_BANK_SCRIPT_VIDEO_POKER = 352, // 0x160 + SND_BANK_SCRIPT_VO = 353, // 0x161 + SND_BANK_SCRIPT_WBOX = 354, // 0x162 + SND_BANK_SCRIPT_WFYCRP_GAMBLING = 355, // 0x163 + SND_BANK_SCRIPT_WUZ1 = 356, // 0x164 + SND_BANK_SCRIPT_WUZ2 = 357, // 0x165 + SND_BANK_SCRIPT_WUZ4 = 358, // 0x166 + SND_BANK_SCRIPT_WUZX = 359, // 0x167 + SND_BANK_SCRIPT_ZER1 = 360, // 0x168 + SND_BANK_SCRIPT_ZER2 = 361, // 0x169 + SND_BANK_SCRIPT_ZER3 = 362, // 0x16A + SND_BANK_SCRIPT_ZER4 = 363, // 0x16B + SND_BANK_SCRIPT_ZEROING_IN = 364, // 0x16C + SND_BANK_SPC_EA_ARMY1 = 365, // 0x16D + SND_BANK_SPC_EA_ARMY2 = 366, // 0x16E + SND_BANK_SPC_EA_ARMY3 = 367, // 0x16F + SND_BANK_SPC_EA_EMT1 = 368, // 0x170 + SND_BANK_SPC_EA_EMT2 = 369, // 0x171 + SND_BANK_SPC_EA_EMT3 = 370, // 0x172 + SND_BANK_SPC_EA_EMT4 = 371, // 0x173 + SND_BANK_SPC_EA_EMT5 = 372, // 0x174 + SND_BANK_SPC_EA_FBI2 = 373, // 0x175 + SND_BANK_SPC_EA_FBI3 = 374, // 0x176 + SND_BANK_SPC_EA_FBI4 = 375, // 0x177 + SND_BANK_SPC_EA_FBI5 = 376, // 0x178 + SND_BANK_SPC_EA_FBI6 = 377, // 0x179 + SND_BANK_SPC_EA_LAPD1 = 378, // 0x17A + SND_BANK_SPC_EA_LAPD2 = 379, // 0x17B + SND_BANK_SPC_EA_LAPD3 = 380, // 0x17C + SND_BANK_SPC_EA_LAPD4 = 381, // 0x17D + SND_BANK_SPC_EA_LAPD5 = 382, // 0x17E + SND_BANK_SPC_EA_LAPD6 = 383, // 0x17F + SND_BANK_SPC_EA_LAPD7 = 384, // 0x180 + SND_BANK_SPC_EA_LAPD8 = 385, // 0x181 + SND_BANK_SPC_EA_LVPD1 = 386, // 0x182 + SND_BANK_SPC_EA_LVPD2 = 387, // 0x183 + SND_BANK_SPC_EA_LVPD3 = 388, // 0x184 + SND_BANK_SPC_EA_LVPD4 = 389, // 0x185 + SND_BANK_SPC_EA_LVPD5 = 390, // 0x186 + SND_BANK_SPC_EA_MCOP1 = 391, // 0x187 + SND_BANK_SPC_EA_MCOP2 = 392, // 0x188 + SND_BANK_SPC_EA_MCOP3 = 393, // 0x189 + SND_BANK_SPC_EA_MCOP4 = 394, // 0x18A + SND_BANK_SPC_EA_MCOP5 = 395, // 0x18B + SND_BANK_SPC_EA_MCOP6 = 396, // 0x18C + SND_BANK_SPC_EA_PULASKI = 397, // 0x18D + SND_BANK_SPC_EA_RCOP1 = 398, // 0x18E + SND_BANK_SPC_EA_RCOP2 = 399, // 0x18F + SND_BANK_SPC_EA_RCOP3 = 400, // 0x190 + SND_BANK_SPC_EA_RCOP4 = 401, // 0x191 + SND_BANK_SPC_EA_SFPD1 = 402, // 0x192 + SND_BANK_SPC_EA_SFPD2 = 403, // 0x193 + SND_BANK_SPC_EA_SFPD3 = 404, // 0x194 + SND_BANK_SPC_EA_SFPD4 = 405, // 0x195 + SND_BANK_SPC_EA_SFPD5 = 406, // 0x196 + SND_BANK_SPC_EA_SWAT1 = 407, // 0x197 + SND_BANK_SPC_EA_SWAT2 = 408, // 0x198 + SND_BANK_SPC_EA_SWAT4 = 409, // 0x199 + SND_BANK_SPC_EA_SWAT6 = 410, // 0x19A + SND_BANK_SPC_FA_BARBARA = 411, // 0x19B + SND_BANK_SPC_FA_BMOBAR = 412, // 0x19C + SND_BANK_SPC_FA_BMYBARB = 413, // 0x19D + SND_BANK_SPC_FA_BMYTATT = 414, // 0x19E + SND_BANK_SPC_FA_CATALINA = 415, // 0x19F + SND_BANK_SPC_FA_DENISE = 416, // 0x1A0 + SND_BANK_SPC_FA_HELENA = 417, // 0x1A1 + SND_BANK_SPC_FA_KATIE = 418, // 0x1A2 + SND_BANK_SPC_FA_MICHELLE = 419, // 0x1A3 + SND_BANK_SPC_FA_MILLIE = 420, // 0x1A4 + SND_BANK_SPC_FA_POL_ANN = 421, // 0x1A5 + SND_BANK_SPC_FA_WFYBURG = 422, // 0x1A6 + SND_BANK_SPC_FA_WFYCLOT = 423, // 0x1A7 + SND_BANK_SPC_FA_WMYAMMO = 424, // 0x1A8 + SND_BANK_SPC_FA_WMYBARB = 425, // 0x1A9 + SND_BANK_SPC_FA_WMYBELL = 426, // 0x1AA + SND_BANK_SPC_FA_WMYCLOT = 427, // 0x1AB + SND_BANK_SPC_FA_WMYPIZZ = 428, // 0x1AC + SND_BANK_SPC_GA_BBDYG1 = 429, // 0x1AD + SND_BANK_SPC_GA_BBDYG2 = 430, // 0x1AE + SND_BANK_SPC_GA_BFORI = 431, // 0x1AF + SND_BANK_SPC_GA_BFOST = 432, // 0x1B0 + SND_BANK_SPC_GA_BFYBE = 433, // 0x1B1 + SND_BANK_SPC_GA_BFYBU = 434, // 0x1B2 + SND_BANK_SPC_GA_BFYCRP = 435, // 0x1B3 + SND_BANK_SPC_GA_BFYPRO = 436, // 0x1B4 + SND_BANK_SPC_GA_BFYRI = 437, // 0x1B5 + SND_BANK_SPC_GA_BFYST = 438, // 0x1B6 + SND_BANK_SPC_GA_BIKDRUG = 439, // 0x1B7 + SND_BANK_SPC_GA_BIKERA = 440, // 0x1B8 + SND_BANK_SPC_GA_BIKERB = 441, // 0x1B9 + SND_BANK_SPC_GA_BMOCD = 442, // 0x1BA + SND_BANK_SPC_GA_BMORI = 443, // 0x1BB + SND_BANK_SPC_GA_BMOSEC = 444, // 0x1BC + SND_BANK_SPC_GA_BMOST = 445, // 0x1BD + SND_BANK_SPC_GA_BMOTR1 = 446, // 0x1BE + SND_BANK_SPC_GA_BMYAP = 447, // 0x1BF + SND_BANK_SPC_GA_BMYBE = 448, // 0x1C0 + SND_BANK_SPC_GA_BMYBOUN = 449, // 0x1C1 + SND_BANK_SPC_GA_BMYBOX = 450, // 0x1C2 + SND_BANK_SPC_GA_BMYBU = 451, // 0x1C3 + SND_BANK_SPC_GA_BMYCG = 452, // 0x1C4 + SND_BANK_SPC_GA_BMYCON = 453, // 0x1C5 + SND_BANK_SPC_GA_BMYCR = 454, // 0x1C6 + SND_BANK_SPC_GA_BMYDJ = 455, // 0x1C7 + SND_BANK_SPC_GA_BMYDRUG = 456, // 0x1C8 + SND_BANK_SPC_GA_BMYMOUN = 457, // 0x1C9 + SND_BANK_SPC_GA_BMYPOL1 = 458, // 0x1CA + SND_BANK_SPC_GA_BMYPOL2 = 459, // 0x1CB + SND_BANK_SPC_GA_BMYRI = 460, // 0x1CC + SND_BANK_SPC_GA_BMYST = 461, // 0x1CD + SND_BANK_SPC_GA_BYMPI = 462, // 0x1CE + SND_BANK_SPC_GA_CWFOFR = 463, // 0x1CF + SND_BANK_SPC_GA_CWFOHB = 464, // 0x1D0 + SND_BANK_SPC_GA_CWFYFR1 = 465, // 0x1D1 + SND_BANK_SPC_GA_CWFYFR2 = 466, // 0x1D2 + SND_BANK_SPC_GA_CWFYHB1 = 467, // 0x1D3 + SND_BANK_SPC_GA_CWMOFR1 = 468, // 0x1D4 + SND_BANK_SPC_GA_CWMOHB1 = 469, // 0x1D5 + SND_BANK_SPC_GA_CWMOHB2 = 470, // 0x1D6 + SND_BANK_SPC_GA_CWMYFR = 471, // 0x1D7 + SND_BANK_SPC_GA_CWMYHB1 = 472, // 0x1D8 + SND_BANK_SPC_GA_CWMYHB2 = 473, // 0x1D9 + SND_BANK_SPC_GA_DNFOLC1 = 474, // 0x1DA + SND_BANK_SPC_GA_DNFOLC2 = 475, // 0x1DB + SND_BANK_SPC_GA_DNFYLC = 476, // 0x1DC + SND_BANK_SPC_GA_DNMOLC1 = 477, // 0x1DD + SND_BANK_SPC_GA_DNMOLC2 = 478, // 0x1DE + SND_BANK_SPC_GA_DNMYLC = 479, // 0x1DF + SND_BANK_SPC_GA_DWFOLC = 480, // 0x1E0 + SND_BANK_SPC_GA_DWFYLC1 = 481, // 0x1E1 + SND_BANK_SPC_GA_DWFYLC2 = 482, // 0x1E2 + SND_BANK_SPC_GA_DWMOLC1 = 483, // 0x1E3 + SND_BANK_SPC_GA_DWMOLC2 = 484, // 0x1E4 + SND_BANK_SPC_GA_DWMYLC1 = 485, // 0x1E5 + SND_BANK_SPC_GA_DWMYLC2 = 486, // 0x1E6 + SND_BANK_SPC_GA_HFORI = 487, // 0x1E7 + SND_BANK_SPC_GA_HFOST = 488, // 0x1E8 + SND_BANK_SPC_GA_HFYBE = 489, // 0x1E9 + SND_BANK_SPC_GA_HFYPRO = 490, // 0x1EA + SND_BANK_SPC_GA_HFYRI = 491, // 0x1EB + SND_BANK_SPC_GA_HFYST = 492, // 0x1EC + SND_BANK_SPC_GA_HMORI = 493, // 0x1ED + SND_BANK_SPC_GA_HMOST = 494, // 0x1EE + SND_BANK_SPC_GA_HMYBE = 495, // 0x1EF + SND_BANK_SPC_GA_HMYCM = 496, // 0x1F0 + SND_BANK_SPC_GA_HMYCR = 497, // 0x1F1 + SND_BANK_SPC_GA_HMYDRUG = 498, // 0x1F2 + SND_BANK_SPC_GA_HMYRI = 499, // 0x1F3 + SND_BANK_SPC_GA_HMYST = 500, // 0x1F4 + SND_BANK_SPC_GA_IMYST = 501, // 0x1F5 + SND_BANK_SPC_GA_IRFYST = 502, // 0x1F6 + SND_BANK_SPC_GA_IRMYST = 503, // 0x1F7 + SND_BANK_SPC_GA_MAFFA = 504, // 0x1F8 + SND_BANK_SPC_GA_MAFFB = 505, // 0x1F9 + SND_BANK_SPC_GA_MALE01 = 506, // 0x1FA + SND_BANK_SPC_GA_NOVOICE = 507, // 0x1FB + SND_BANK_SPC_GA_OFORI = 508, // 0x1FC + SND_BANK_SPC_GA_OFOST = 509, // 0x1FD + SND_BANK_SPC_GA_OFYRI = 510, // 0x1FE + SND_BANK_SPC_GA_OFYST = 511, // 0x1FF + SND_BANK_SPC_GA_OMOBOAT = 512, // 0x200 + SND_BANK_SPC_GA_OMOKUNG = 513, // 0x201 + SND_BANK_SPC_GA_OMORI = 514, // 0x202 + SND_BANK_SPC_GA_OMOST = 515, // 0x203 + SND_BANK_SPC_GA_OMYRI = 516, // 0x204 + SND_BANK_SPC_GA_OMYST = 517, // 0x205 + SND_BANK_SPC_GA_SBFORI = 518, // 0x206 + SND_BANK_SPC_GA_SBFOST = 519, // 0x207 + SND_BANK_SPC_GA_SBFYPRO = 520, // 0x208 + SND_BANK_SPC_GA_SBFYRI = 521, // 0x209 + SND_BANK_SPC_GA_SBFYST = 522, // 0x20A + SND_BANK_SPC_GA_SBFYSTR = 523, // 0x20B + SND_BANK_SPC_GA_SBMOCD = 524, // 0x20C + SND_BANK_SPC_GA_SBMORI = 525, // 0x20D + SND_BANK_SPC_GA_SBMOST = 526, // 0x20E + SND_BANK_SPC_GA_SBMOTR1 = 527, // 0x20F + SND_BANK_SPC_GA_SBMOTR2 = 528, // 0x210 + SND_BANK_SPC_GA_SBMYCR = 529, // 0x211 + SND_BANK_SPC_GA_SBMYRI = 530, // 0x212 + SND_BANK_SPC_GA_SBMYST = 531, // 0x213 + SND_BANK_SPC_GA_SBMYTR3 = 532, // 0x214 + SND_BANK_SPC_GA_SFYPRO = 533, // 0x215 + SND_BANK_SPC_GA_SHFYPRO = 534, // 0x216 + SND_BANK_SPC_GA_SHMYCR = 535, // 0x217 + SND_BANK_SPC_GA_SMYST = 536, // 0x218 + SND_BANK_SPC_GA_SMYST2 = 537, // 0x219 + SND_BANK_SPC_GA_SOFORI = 538, // 0x21A + SND_BANK_SPC_GA_SOFOST = 539, // 0x21B + SND_BANK_SPC_GA_SOFYBU = 540, // 0x21C + SND_BANK_SPC_GA_SOFYRI = 541, // 0x21D + SND_BANK_SPC_GA_SOFYST = 542, // 0x21E + SND_BANK_SPC_GA_SOMOBU = 543, // 0x21F + SND_BANK_SPC_GA_SOMORI = 544, // 0x220 + SND_BANK_SPC_GA_SOMOST = 545, // 0x221 + SND_BANK_SPC_GA_SOMYAP = 546, // 0x222 + SND_BANK_SPC_GA_SOMYBU = 547, // 0x223 + SND_BANK_SPC_GA_SOMYRI = 548, // 0x224 + SND_BANK_SPC_GA_SOMYST = 549, // 0x225 + SND_BANK_SPC_GA_SWFOPRO = 550, // 0x226 + SND_BANK_SPC_GA_SWFORI = 551, // 0x227 + SND_BANK_SPC_GA_SWFOST = 552, // 0x228 + SND_BANK_SPC_GA_SWFYRI = 553, // 0x229 + SND_BANK_SPC_GA_SWFYST = 554, // 0x22A + SND_BANK_SPC_GA_SWFYSTR = 555, // 0x22B + SND_BANK_SPC_GA_SWMOCD = 556, // 0x22C + SND_BANK_SPC_GA_SWMORI = 557, // 0x22D + SND_BANK_SPC_GA_SWMOST = 558, // 0x22E + SND_BANK_SPC_GA_SWMOTR1 = 559, // 0x22F + SND_BANK_SPC_GA_SWMOTR2 = 560, // 0x230 + SND_BANK_SPC_GA_SWMOTR3 = 561, // 0x231 + SND_BANK_SPC_GA_SWMOTR4 = 562, // 0x232 + SND_BANK_SPC_GA_SWMOTR5 = 563, // 0x233 + SND_BANK_SPC_GA_SWMYCR = 564, // 0x234 + SND_BANK_SPC_GA_SWMYHP1 = 565, // 0x235 + SND_BANK_SPC_GA_SWMYHP2 = 566, // 0x236 + SND_BANK_SPC_GA_SWMYRI = 567, // 0x237 + SND_BANK_SPC_GA_SWMYST = 568, // 0x238 + SND_BANK_SPC_GA_VBFYPRO = 569, // 0x239 + SND_BANK_SPC_GA_VBFYST2 = 570, // 0x23A + SND_BANK_SPC_GA_VBMOCD = 571, // 0x23B + SND_BANK_SPC_GA_VBMYCR = 572, // 0x23C + SND_BANK_SPC_GA_VBMYELV = 573, // 0x23D + SND_BANK_SPC_GA_VHFYPRO = 574, // 0x23E + SND_BANK_SPC_GA_VHFYST3 = 575, // 0x23F + SND_BANK_SPC_GA_VHMYCR = 576, // 0x240 + SND_BANK_SPC_GA_VHMYELV = 577, // 0x241 + SND_BANK_SPC_GA_VIMYELV = 578, // 0x242 + SND_BANK_SPC_GA_VWFYPRO = 579, // 0x243 + SND_BANK_SPC_GA_VWFYST1 = 580, // 0x244 + SND_BANK_SPC_GA_VWFYWAI = 581, // 0x245 + SND_BANK_SPC_GA_VWMOTR1 = 582, // 0x246 + SND_BANK_SPC_GA_VWMOTR2 = 583, // 0x247 + SND_BANK_SPC_GA_VWMYAP = 584, // 0x248 + SND_BANK_SPC_GA_VWMYBJD = 585, // 0x249 + SND_BANK_SPC_GA_VWMYCD = 586, // 0x24A + SND_BANK_SPC_GA_VWMYCR = 587, // 0x24B + SND_BANK_SPC_GA_WFOPJ = 588, // 0x24C + SND_BANK_SPC_GA_WFORI = 589, // 0x24D + SND_BANK_SPC_GA_WFOST = 590, // 0x24E + SND_BANK_SPC_GA_WFYBE = 591, // 0x24F + SND_BANK_SPC_GA_WFYBU = 592, // 0x250 + SND_BANK_SPC_GA_WFYCRK = 593, // 0x251 + SND_BANK_SPC_GA_WFYCRP = 594, // 0x252 + SND_BANK_SPC_GA_WFYJG = 595, // 0x253 + SND_BANK_SPC_GA_WFYLG = 596, // 0x254 + SND_BANK_SPC_GA_WFYPRO = 597, // 0x255 + SND_BANK_SPC_GA_WFYRI = 598, // 0x256 + SND_BANK_SPC_GA_WFYRO = 599, // 0x257 + SND_BANK_SPC_GA_WFYST = 600, // 0x258 + SND_BANK_SPC_GA_WFYSTEW = 601, // 0x259 + SND_BANK_SPC_GA_WMOMIB = 602, // 0x25A + SND_BANK_SPC_GA_WMOPJ = 603, // 0x25B + SND_BANK_SPC_GA_WMOPREA = 604, // 0x25C + SND_BANK_SPC_GA_WMORI = 605, // 0x25D + SND_BANK_SPC_GA_WMOSCI = 606, // 0x25E + SND_BANK_SPC_GA_WMOST = 607, // 0x25F + SND_BANK_SPC_GA_WMOTR1 = 608, // 0x260 + SND_BANK_SPC_GA_WMYBE = 609, // 0x261 + SND_BANK_SPC_GA_WMYBMX = 610, // 0x262 + SND_BANK_SPC_GA_WMYBOUN = 611, // 0x263 + SND_BANK_SPC_GA_WMYBOX = 612, // 0x264 + SND_BANK_SPC_GA_WMYBP = 613, // 0x265 + SND_BANK_SPC_GA_WMYBU = 614, // 0x266 + SND_BANK_SPC_GA_WMYCD1 = 615, // 0x267 + SND_BANK_SPC_GA_WMYCD2 = 616, // 0x268 + SND_BANK_SPC_GA_WMYCH = 617, // 0x269 + SND_BANK_SPC_GA_WMYCON = 618, // 0x26A + SND_BANK_SPC_GA_WMYCONB = 619, // 0x26B + SND_BANK_SPC_GA_WMYCR = 620, // 0x26C + SND_BANK_SPC_GA_WMYDRUG = 621, // 0x26D + SND_BANK_SPC_GA_WMYGAR = 622, // 0x26E + SND_BANK_SPC_GA_WMYGOL1 = 623, // 0x26F + SND_BANK_SPC_GA_WMYGOL2 = 624, // 0x270 + SND_BANK_SPC_GA_WMYJG = 625, // 0x271 + SND_BANK_SPC_GA_WMYLG = 626, // 0x272 + SND_BANK_SPC_GA_WMYMECH = 627, // 0x273 + SND_BANK_SPC_GA_WMYMOUN = 628, // 0x274 + SND_BANK_SPC_GA_WMYPLT = 629, // 0x275 + SND_BANK_SPC_GA_WMYRI = 630, // 0x276 + SND_BANK_SPC_GA_WMYRO = 631, // 0x277 + SND_BANK_SPC_GA_WMYSGRD = 632, // 0x278 + SND_BANK_SPC_GA_WMYSKAT = 633, // 0x279 + SND_BANK_SPC_GA_WMYST = 634, // 0x27A + SND_BANK_SPC_GA_WMYTX1 = 635, // 0x27B + SND_BANK_SPC_GA_WMYTX2 = 636, // 0x27C + SND_BANK_SPC_GA_WMYVA = 637, // 0x27D + SND_BANK_SPC_NA_BALLAS1 = 638, // 0x27E + SND_BANK_SPC_NA_BALLAS2 = 639, // 0x27F + SND_BANK_SPC_NA_BALLAS3 = 640, // 0x280 + SND_BANK_SPC_NA_BALLAS4 = 641, // 0x281 + SND_BANK_SPC_NA_BALLAS5 = 642, // 0x282 + SND_BANK_SPC_NA_BIG_BEAR = 643, // 0x283 + SND_BANK_SPC_NA_CESAR = 644, // 0x284 + SND_BANK_SPC_NA_DNB1 = 645, // 0x285 + SND_BANK_SPC_NA_DNB2 = 646, // 0x286 + SND_BANK_SPC_NA_DNB3 = 647, // 0x287 + SND_BANK_SPC_NA_DNB5 = 648, // 0x288 + SND_BANK_SPC_NA_DWAINE = 649, // 0x289 + SND_BANK_SPC_NA_FAM1 = 650, // 0x28A + SND_BANK_SPC_NA_FAM2 = 651, // 0x28B + SND_BANK_SPC_NA_FAM3 = 652, // 0x28C + SND_BANK_SPC_NA_FAM4 = 653, // 0x28D + SND_BANK_SPC_NA_FAM5 = 654, // 0x28E + SND_BANK_SPC_NA_JIZZY = 655, // 0x28F + SND_BANK_SPC_NA_LSV1 = 656, // 0x290 + SND_BANK_SPC_NA_LSV2 = 657, // 0x291 + SND_BANK_SPC_NA_LSV3 = 658, // 0x292 + SND_BANK_SPC_NA_LSV4 = 659, // 0x293 + SND_BANK_SPC_NA_LSV5 = 660, // 0x294 + SND_BANK_SPC_NA_MACCER = 661, // 0x295 + SND_BANK_SPC_NA_MAFBOSS = 662, // 0x296 + SND_BANK_SPC_NA_OGLOC = 663, // 0x297 + SND_BANK_SPC_NA_RYDER = 664, // 0x298 + SND_BANK_SPC_NA_SFR1 = 665, // 0x299 + SND_BANK_SPC_NA_SFR2 = 666, // 0x29A + SND_BANK_SPC_NA_SFR3 = 667, // 0x29B + SND_BANK_SPC_NA_SFR4 = 668, // 0x29C + SND_BANK_SPC_NA_SFR5 = 669, // 0x29D + SND_BANK_SPC_NA_SMOKE = 670, // 0x29E + SND_BANK_SPC_NA_STRI1 = 671, // 0x29F + SND_BANK_SPC_NA_STRI2 = 672, // 0x2A0 + SND_BANK_SPC_NA_STRI4 = 673, // 0x2A1 + SND_BANK_SPC_NA_STRI5 = 674, // 0x2A2 + SND_BANK_SPC_NA_SWEET = 675, // 0x2A3 + SND_BANK_SPC_NA_TBONE = 676, // 0x2A4 + SND_BANK_SPC_NA_TORENO = 677, // 0x2A5 + SND_BANK_SPC_NA_TRUTH = 678, // 0x2A6 + SND_BANK_SPC_NA_VLA1 = 679, // 0x2A7 + SND_BANK_SPC_NA_VLA2 = 680, // 0x2A8 + SND_BANK_SPC_NA_VLA3 = 681, // 0x2A9 + SND_BANK_SPC_NA_VLA4 = 682, // 0x2AA + SND_BANK_SPC_NA_VLA5 = 683, // 0x2AB + SND_BANK_SPC_NA_VMAFF1 = 684, // 0x2AC + SND_BANK_SPC_NA_VMAFF2 = 685, // 0x2AD + SND_BANK_SPC_NA_VMAFF3 = 686, // 0x2AE + SND_BANK_SPC_NA_VMAFF4 = 687, // 0x2AF + SND_BANK_SPC_NA_VMAFF5 = 688, // 0x2B0 + SND_BANK_SPC_NA_WOOZIE = 689, // 0x2B1 + SND_BANK_SPC_PA_AG = 690, // 0x2B2 + SND_BANK_SPC_PA_AG2 = 691, // 0x2B3 + SND_BANK_SPC_PA_AR = 692, // 0x2B4 + SND_BANK_SPC_PA_AR2 = 693, // 0x2B5 + SND_BANK_SPC_PA_CD = 694, // 0x2B6 + SND_BANK_SPC_PA_CD2 = 695, // 0x2B7 + SND_BANK_SPC_PA_CF = 696, // 0x2B8 + SND_BANK_SPC_PA_CF2 = 697, // 0x2B9 + SND_BANK_SPC_PA_CG = 698, // 0x2BA + SND_BANK_SPC_PA_CG2 = 699, // 0x2BB + SND_BANK_SPC_PA_CR = 700, // 0x2BC + SND_BANK_SPC_PA_CR2 = 701, // 0x2BD + SND_BANK_SPC_PA_PG = 702, // 0x2BE + SND_BANK_SPC_PA_PG2 = 703, // 0x2BF + SND_BANK_SPC_PA_PR = 704, // 0x2C0 + SND_BANK_SPC_PA_PR2 = 705, // 0x2C1 + SND_BANK_SPC_PA_WG = 706, // 0x2C2 + SND_BANK_SPC_PA_WG2 = 707, // 0x2C3 + SND_BANK_SPC_PA_WR = 708, // 0x2C4 + SND_BANK_SPC_PA_WR2 = 709, // 0x2C5 + NUM_SND_BANKS = 710, // 0x2C6 +}; +NOTSA_WENUM_DEFS_FOR(eSoundBank); diff --git a/source/game_sa/Audio/Enums/eSoundBankSlot.h b/source/game_sa/Audio/Enums/eSoundBankSlot.h new file mode 100644 index 0000000000..9a6fe14665 --- /dev/null +++ b/source/game_sa/Audio/Enums/eSoundBankSlot.h @@ -0,0 +1,56 @@ +#pragma once + +#include + +enum eSoundBankSlot : int32 { + SND_BANK_SLOT_UNK = -1, + SND_BANK_SLOT_FRONTEND_GAME = 0, // 0x0 + SND_BANK_SLOT_FRONTEND_MENU = 1, // 0x1 + SND_BANK_SLOT_COLLISIONS = 2, // 0x2 + SND_BANK_SLOT_BULLET_HITS = 3, // 0x3 + SND_BANK_SLOT_EXPLOSIONS = 4, // 0x4 + SND_BANK_SLOT_WEAPON_GEN = 5, // 0x5 + SND_BANK_SLOT_WEATHER = 6, // 0x6 + SND_BANK_SLOT_DUMMY_ENGINE_0 = 7, // 0x7 + SND_BANK_SLOT_DUMMY_ENGINE_1 = 8, // 0x8 + SND_BANK_SLOT_DUMMY_ENGINE_2 = 9, // 0x9 + SND_BANK_SLOT_DUMMY_ENGINE_3 = 10, // 0xA + SND_BANK_SLOT_DUMMY_ENGINE_4 = 11, // 0xB + SND_BANK_SLOT_DUMMY_ENGINE_5 = 12, // 0xC + SND_BANK_SLOT_DUMMY_ENGINE_6 = 13, // 0xD + SND_BANK_SLOT_DUMMY_ENGINE_7 = 14, // 0xE + SND_BANK_SLOT_DUMMY_ENGINE_8 = 15, // 0xF + SND_BANK_SLOT_DUMMY_ENGINE_9 = 16, // 0x10 + SND_BANK_SLOT_HORN_AND_SIREN = 17, // 0x11 + SND_BANK_SLOT_COP_HELI = 18, // 0x12 + SND_BANK_SLOT_VEHICLE_GEN = 19, // 0x13 + + SND_BANK_SLOT_SPEECH1 = 20, // 0x14 + SND_BANK_SLOT_SPEECH2 = 21, // 0x15 + SND_BANK_SLOT_SPEECH3 = 22, // 0x16 + SND_BANK_SLOT_SPEECH4 = 23, // 0x17 + SND_BANK_SLOT_SPEECH5 = 24, // 0x18 + SND_BANK_SLOT_SPEECH6 = 25, // 0x19 + + SND_BANK_SLOT_MISSION1 = 26, // 0x1A + SND_BANK_SLOT_MISSION2 = 27, // 0x1B + SND_BANK_SLOT_MISSION3 = 28, // 0x1C + SND_BANK_SLOT_MISSION4 = 29, // 0x1D + SND_BANK_SLOT_FOOTSTEPS_PLAYER = 30, // 0x1E + SND_BANK_SLOT_DOORS = 31, // 0x1F + SND_BANK_SLOT_SWIMMING = 32, // 0x20 + SND_BANK_SLOT_SCANNER_INSTRUCTION = 33, // 0x21 + SND_BANK_SLOT_SCANNER_NUMBER = 34, // 0x22 + SND_BANK_SLOT_SCANNER_DIRECTION1 = 35, // 0x23 + SND_BANK_SLOT_SCANNER_DIRECTION2 = 36, // 0x24 + SND_BANK_SLOT_SCANNER_AREA = 37, // 0x25 + SND_BANK_SLOT_TEST1 = 38, // 0x26 + SND_BANK_SLOT_EFFECT1 = 39, // 0x27 + SND_BANK_SLOT_PLAYER_ENGINE_P = 40, // 0x28 + SND_BANK_SLOT_FOOTSTEPS_GENERIC = 41, // 0x29 + SND_BANK_SLOT_BULLET_PASS = 42, // 0x2A + SND_BANK_SLOT_TEST2 = 43, // 0x2B + SND_BANK_SLOT_EFFECT2 = 44, // 0x2C + NUM_SND_BANK_SLOTS = 45, // 0x2D +}; +NOTSA_WENUM_DEFS_FOR(eSoundBankSlot); diff --git a/source/game_sa/Audio/OpenAL/OALSource.h b/source/game_sa/Audio/OpenAL/OALSource.h index e4675ef075..833e426b40 100644 --- a/source/game_sa/Audio/OpenAL/OALSource.h +++ b/source/game_sa/Audio/OpenAL/OALSource.h @@ -45,5 +45,5 @@ class OALSource final : public OALBase { void SetVolume(float volume); void Update(); -}; -#endif +}; +#endif diff --git a/source/game_sa/Audio/entities/AEAudioEntity.h b/source/game_sa/Audio/entities/AEAudioEntity.h index d67cb7039d..9e20136530 100644 --- a/source/game_sa/Audio/entities/AEAudioEntity.h +++ b/source/game_sa/Audio/entities/AEAudioEntity.h @@ -18,7 +18,7 @@ class NOTSA_EXPORT_VTABLE CAEAudioEntity { CAESound m_tempSound; private: - static int8*& m_pAudioEventVolumes; + static int8*& m_pAudioEventVolumes; // Use `GetDefaultVolume` to access! protected: CAEAudioEntity(); diff --git a/source/game_sa/Audio/entities/AEExplosionAudioEntity.cpp b/source/game_sa/Audio/entities/AEExplosionAudioEntity.cpp index 0d5448d325..4d47d7f07d 100644 --- a/source/game_sa/Audio/entities/AEExplosionAudioEntity.cpp +++ b/source/game_sa/Audio/entities/AEExplosionAudioEntity.cpp @@ -50,9 +50,7 @@ void CAEExplosionAudioEntity::AddAudioEvent(eAudioEvents audioEvent, CVector& po speed_b = gfExplosionFrequencyVariations[m_Speed] * sqrt(sqrt(2.0f)); } - CVector relPos; - CAEAudioEnvironment::GetPositionRelativeToCamera(&relPos, &posn); - auto vol1 = CAEAudioEnvironment::GetDistanceAttenuation(relPos.Magnitude() * (1.0f / 12.0f)) + vol0 - 3.0f; + auto vol1 = CAEAudioEnvironment::GetDistanceAttenuation(CAEAudioEnvironment::GetPositionRelativeToCamera(posn).Magnitude() * (1.0f / 12.0f)) + vol0 - 3.0f; auto flags = static_cast(SOUND_FORCED_FRONT | SOUND_ROLLED_OFF | SOUND_REQUEST_UPDATES | SOUND_FRONT_END); sound.Initialise(4, 1, this, { -1.0f, 0.0f, 0.0f }, vol1, 12.0f, speed_a, 1.0f, 0, flags, 0.0f, 0); @@ -78,4 +76,4 @@ void CAEExplosionAudioEntity::InjectHooks() { RH_ScopedInstall(StaticInitialise, 0x5B9A60); RH_ScopedInstall(AddAudioEvent, 0x4DCBE0); RH_ScopedVMTInstall(UpdateParameters, 0x4DCB90); -} \ No newline at end of file +} diff --git a/source/game_sa/Audio/entities/AEPedSpeechAudioEntity.cpp b/source/game_sa/Audio/entities/AEPedSpeechAudioEntity.cpp index 7b26148f3f..5d55be5367 100644 --- a/source/game_sa/Audio/entities/AEPedSpeechAudioEntity.cpp +++ b/source/game_sa/Audio/entities/AEPedSpeechAudioEntity.cpp @@ -1,30 +1,13 @@ #include "StdInc.h" - +#include #include "AEPedSpeechAudioEntity.h" +#include "AEPedlessSpeechAudioEntity.h" #include "AEAudioUtility.h" #include "PedClothesDesc.h" #include +#include