From 72a4abd3477d19930c6f1e3c6977ea6744403b7b Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Sun, 2 Feb 2020 15:57:27 +0200 Subject: [PATCH 1/9] Audio, use of enums and true/false --- src/audio/AudioCollision.cpp | 20 +- src/audio/AudioManager.cpp | 1066 +++++++++++++++++----------------- src/audio/AudioManager.h | 6 +- src/audio/PoliceRadio.cpp | 8 +- src/audio/sampman.h | 1 + 5 files changed, 551 insertions(+), 550 deletions(-) diff --git a/src/audio/AudioCollision.cpp b/src/audio/AudioCollision.cpp index 0f5196ea..6c998a34 100644 --- a/src/audio/AudioCollision.cpp +++ b/src/audio/AudioCollision.cpp @@ -150,8 +150,8 @@ cAudioManager::SetUpLoopingCollisionSound(cAudioCollision *col, uint8 counter) if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = counter; m_sQueueSample.m_vecPos = col->m_vecPosition; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 7; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.m_bEmittingVolume = emittingVol; @@ -163,8 +163,8 @@ cAudioManager::SetUpLoopingCollisionSound(cAudioCollision *col, uint8 counter) m_sQueueSample.m_fSoundIntensity = 60.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 5; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -269,8 +269,8 @@ cAudioManager::SetUpOneShotCollisionSound(cAudioCollision *col) m_sQueueSample.m_counter = counter++; if(counter >= 255) counter = 28; m_sQueueSample.m_vecPos = col->m_vecPosition; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 11; m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.m_bEmittingVolume = emittingVol; @@ -279,8 +279,8 @@ cAudioManager::SetUpOneShotCollisionSound(cAudioCollision *col) m_sQueueSample.field_48 = 4.0f; m_sQueueSample.m_fSoundIntensity = 60.0f; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -320,8 +320,8 @@ cAudioManager::ServiceCollisions() if (!someArr2[i]) { m_sCollisionManager.m_asCollisions2[i].m_pEntity1 = nil; m_sCollisionManager.m_asCollisions2[i].m_pEntity2 = nil; - m_sCollisionManager.m_asCollisions2[i].m_bSurface1 = 0; - m_sCollisionManager.m_asCollisions2[i].m_bSurface2 = 0; + m_sCollisionManager.m_asCollisions2[i].m_bSurface1 = SURFACE_DEFAULT; + m_sCollisionManager.m_asCollisions2[i].m_bSurface2 = SURFACE_DEFAULT; m_sCollisionManager.m_asCollisions2[i].m_fIntensity2 = 0.0f; m_sCollisionManager.m_asCollisions2[i].m_fIntensity1 = 0.0f; m_sCollisionManager.m_asCollisions2[i].m_vecPosition = CVector(0.0f, 0.0f, 0.0f); diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp index 974ce927..9cd22533 100644 --- a/src/audio/AudioManager.cpp +++ b/src/audio/AudioManager.cpp @@ -208,7 +208,7 @@ cPedComments::Process() m_asPedComments[activeBank][indexMap[activeBank][0]].m_entityIndex; AudioManager.m_sQueueSample.m_counter = 0; AudioManager.m_sQueueSample.m_nSampleIndex = sampleIndex; - AudioManager.m_sQueueSample.m_bBankIndex = 1; + AudioManager.m_sQueueSample.m_bBankIndex = SAMPLEBANK_PED; AudioManager.m_sQueueSample.field_16 = 3; AudioManager.m_sQueueSample.m_bVolume = m_asPedComments[activeBank][indexMap[activeBank][0]].m_bVolume; @@ -232,14 +232,14 @@ cPedComments::Process() m_asPedComments[activeBank][indexMap[activeBank][0]].m_vecPos; if(sampleIndex >= SFX_AMMU_D && sampleIndex <= SFX_AMMU_F) { - AudioManager.m_sQueueSample.m_bReverbFlag = 0; - AudioManager.m_sQueueSample.m_bRequireReflection = 0; + AudioManager.m_sQueueSample.m_bReverbFlag = false; + AudioManager.m_sQueueSample.m_bRequireReflection = false; } else { - AudioManager.m_sQueueSample.m_bReverbFlag = 1; - AudioManager.m_sQueueSample.m_bRequireReflection = 1; + AudioManager.m_sQueueSample.m_bReverbFlag = true; + AudioManager.m_sQueueSample.m_bRequireReflection = true; } - AudioManager.m_sQueueSample.m_bIsDistant = 0; + AudioManager.m_sQueueSample.m_bIsDistant = false; AudioManager.m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(AudioManager.m_sQueueSample.m_nSampleIndex) + AudioManager.RandomDisplacement(750); @@ -250,11 +250,11 @@ cPedComments::Process() // Switch bank if(activeBank) { - actualUsedBank = 1; - activeBank = 0; + actualUsedBank = SAMPLEBANK_PED; + activeBank = SAMPLEBANK_MAIN; } else { - actualUsedBank = 0; - activeBank = 1; + actualUsedBank = SAMPLEBANK_MAIN; + activeBank = SAMPLEBANK_PED; } comment = m_asPedComments[actualUsedBank]; for(uint32 i = 0; i < nrOfCommentsInBank[actualUsedBank]; i++) { @@ -295,8 +295,8 @@ cAudioManager::AddPlayerCarSample(uint8 emittingVolume, int32 freq, uint32 sampl if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = counter; m_sQueueSample.m_nSampleIndex = sample; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 0; m_sQueueSample.m_nFrequency = freq; if(notLooping) { @@ -311,8 +311,8 @@ cAudioManager::AddPlayerCarSample(uint8 emittingVolume, int32 freq, uint32 sampl m_sQueueSample.field_48 = 6.0f; m_sQueueSample.m_fSoundIntensity = 50.0f; m_sQueueSample.field_56 = 0; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -421,7 +421,7 @@ cAudioManager::AddSampleToRequestedQueue() m_sQueueSample.calculatedVolume = calculatedVolume; m_sQueueSample.m_bLoopEnded = 0; if(m_sQueueSample.m_bIsDistant) { - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bRequireReflection = false; m_sQueueSample.m_bLoopsRemaining = 0; } if(m_bDynamicAcousticModelingStatus && m_sQueueSample.m_nLoopCount) { @@ -430,9 +430,9 @@ cAudioManager::AddSampleToRequestedQueue() bReflections = false; m_sQueueSample.m_bLoopsRemaining = 0; } - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bRequireReflection = false; - if(!m_bDynamicAcousticModelingStatus) m_sQueueSample.m_bReverbFlag = 0; + if(!m_bDynamicAcousticModelingStatus) m_sQueueSample.m_bReverbFlag = false; m_asSamples[m_bActiveSampleQueue][sampleIndex] = m_sQueueSample; @@ -463,8 +463,8 @@ cAudioManager::ClearActiveSamples() m_asActiveSamples[i].m_nEntityIndex = AEHANDLE_NONE; m_asActiveSamples[i].m_counter = 0; m_asActiveSamples[i].m_nSampleIndex = NO_SAMPLE; - m_asActiveSamples[i].m_bBankIndex = 3; - m_asActiveSamples[i].m_bIsDistant = 0; + m_asActiveSamples[i].m_bBankIndex = SAMPLEBANK_INVALID; + m_asActiveSamples[i].m_bIsDistant = false; m_asActiveSamples[i].field_16 = 5; m_asActiveSamples[i].m_nFrequency = 0; m_asActiveSamples[i].m_bVolume = 0; @@ -483,9 +483,9 @@ cAudioManager::ClearActiveSamples() m_asActiveSamples[i].field_76 = 0; m_asActiveSamples[i].field_88 = -1; m_asActiveSamples[i].m_vecPos = {0.0f, 0.0f, 0.0f}; - m_asActiveSamples[i].m_bReverbFlag = 0; + m_asActiveSamples[i].m_bReverbFlag = false; m_asActiveSamples[i].m_bLoopsRemaining = 0; - m_asActiveSamples[i].m_bRequireReflection = 0; + m_asActiveSamples[i].m_bRequireReflection = false; } } @@ -559,9 +559,9 @@ cAudioManager::ComputeVolume(uint8 emittingVolume, float soundIntensity, float d int32 cAudioManager::CreateEntity(int32 type, void *entity) { - if(!m_bIsInitialised) return -4; - if(!entity) return -2; - if(type >= TOTAL_AUDIO_TYPES) return -1; + if(!m_bIsInitialised) return AEHANDLE_ERROR_NOAUDIOSYS; + if(!entity) return AEHANDLE_ERROR_NOENTITY; + if(type >= TOTAL_AUDIO_TYPES) return AEHANDLE_ERROR_BADAUDIOTYPE; for(uint32 i = 0; i < 200; i++) { if(!m_asAudioEntities[i].m_bIsUsed) { m_asAudioEntities[i].m_bIsUsed = true; @@ -577,7 +577,7 @@ cAudioManager::CreateEntity(int32 type, void *entity) return i; } } - return -3; + return AEHANDLE_ERROR_NOFREESLOT; } void @@ -2456,7 +2456,7 @@ cAudioManager::IsMP3RadioChannelAvailable() const { if(m_bIsInitialised) return SampleManager.IsMP3RadioChannelAvailable(); - return 0; + return false; } bool @@ -2582,7 +2582,7 @@ cAudioManager::PostInitialiseGameSpecificSetup() m_sMissionAudio.m_bLoadingStatus = 0; m_sMissionAudio.m_bPlayStatus = 0; m_sMissionAudio.field_22 = 0; - m_sMissionAudio.m_bIsPlayed = 0; + m_sMissionAudio.m_bIsPlayed = false; m_sMissionAudio.field_12 = 1; m_sMissionAudio.field_24 = 0; ResetAudioLogicTimers(CTimer::GetTimeInMilliseconds()); @@ -2597,8 +2597,8 @@ cAudioManager::PostTerminateGameSpecificShutdown() void cAudioManager::PreInitialiseGameSpecificSetup() const { - BankStartOffset[0] = SFX_CAR_HORN_JEEP; - BankStartOffset[1] = SFX_COP_VOICE_1_ARREST_1; + BankStartOffset[SAMPLEBANK_MAIN] = SFX_CAR_HORN_JEEP; + BankStartOffset[SAMPLEBANK_PED] = SFX_COP_VOICE_1_ARREST_1; } struct MissionAudioData { @@ -2682,7 +2682,7 @@ cAudioManager::PreloadMissionAudio(const char *name) m_sMissionAudio.field_24 = field_19192 * SampleManager.GetStreamedFileLength(missionAudioSfx) / 1000; m_sMissionAudio.field_24 *= 4; - m_sMissionAudio.m_bIsPlayed = 0; + m_sMissionAudio.m_bIsPlayed = false; m_sMissionAudio.field_12 = 1; g_bMissionAudioLoadFailed = 0; } @@ -2735,13 +2735,13 @@ cAudioManager::ProcessAirBrakes(cVehicleParams *params) CAutomobile *automobile; uint8 rand; - if(params->m_fDistance > 900.0f) return 0; + if(params->m_fDistance > 900.0f) return false; automobile = (CAutomobile *)params->m_pVehicle; - if(!automobile->bEngineOn) return 1; + if(!automobile->bEngineOn) return true; if((automobile->m_fVelocityChangeForAudio < 0.025f || params->m_fVelocityChange >= 0.025f) && (automobile->m_fVelocityChangeForAudio > -0.025f || params->m_fVelocityChange <= 0.025f)) - return 1; + return true; CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); rand = m_anRandomTable[0] % 10 + 70; @@ -2751,8 +2751,8 @@ cAudioManager::ProcessAirBrakes(cVehicleParams *params) m_sQueueSample.m_nSampleIndex = SFX_AIR_BRAKES; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_AIR_BRAKES); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency >> 4); - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 10; m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.m_bEmittingVolume = rand; @@ -2761,12 +2761,12 @@ cAudioManager::ProcessAirBrakes(cVehicleParams *params) m_sQueueSample.field_48 = 0.0f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } - return 1; + return true; } void @@ -2798,11 +2798,11 @@ cAudioManager::ProcessAirportScriptObject(uint8 sound) ComputeVolume(110, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_nSampleIndex = (m_anRandomTable[1] & 3) + SFX_AIRPORT_ANNOUNCEMENT_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_counter = counter++; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.field_56 = 1; m_sQueueSample.field_16 = 3; @@ -2810,8 +2810,8 @@ cAudioManager::ProcessAirportScriptObject(uint8 sound) m_sQueueSample.m_bEmittingVolume = 110; m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); gAirportNextTime = time + 10000 + m_anRandomTable[3] % 20000; } @@ -2842,8 +2842,8 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params) m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; m_sQueueSample.m_nFrequency = 10386; m_sQueueSample.m_nFrequency += (m_sQueueSample.m_nEntityIndex << 16) % 1000; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 3; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.m_bEmittingVolume = 80; @@ -2855,8 +2855,8 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 50.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 7; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } if(FindPlayerVehicle() == params->m_pVehicle) { @@ -2886,8 +2886,8 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params) m_sQueueSample.m_counter = 40; m_sQueueSample.m_nSampleIndex = SFX_POLICE_BOAT_ACCEL; m_sQueueSample.m_nFrequency += (m_sQueueSample.m_nEntityIndex << 16) % 1000; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 3; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.m_bEmittingVolume = emittingVol; @@ -2898,8 +2898,8 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 50.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 7; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; } else { if(FindPlayerVehicle() == params->m_pVehicle) { if(Pads[0].GetAccelerate() <= Pads[0].GetBrake()) @@ -2945,8 +2945,8 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params) m_sQueueSample.m_bVolume = ComputeVolume(emittingVol, 50.f, m_sQueueSample.m_fDistance); if(!m_sQueueSample.m_bVolume) return 1; m_sQueueSample.m_nFrequency += (m_sQueueSample.m_nEntityIndex << 16) % 1000; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 3; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.m_bEmittingVolume = emittingVol; @@ -2957,13 +2957,13 @@ cAudioManager::ProcessBoatEngine(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 50.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 7; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; } AddSampleToRequestedQueue(); - return 1; + return true; } - return 0; + return false; } bool @@ -2973,10 +2973,10 @@ cAudioManager::ProcessBoatMovingOverWater(cVehicleParams *params) int32 vol; float multiplier; - if(params->m_fDistance > 2500.f) return 0; + if(params->m_fDistance > 2500.f) return false; velocityChange = Abs(params->m_fVelocityChange); - if(velocityChange <= 0.0005f && params->m_pVehicle->GetPosition().y) return 1; + if(velocityChange <= 0.0005f && params->m_pVehicle->GetPosition().y) return true; velocityChange = min(0.75f, velocityChange); multiplier = (velocityChange - 0.0005f) * 1.3342f; @@ -2986,8 +2986,8 @@ cAudioManager::ProcessBoatMovingOverWater(cVehicleParams *params) if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 38; m_sQueueSample.m_nSampleIndex = SFX_BOAT_WATER_LOOP; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 3; m_sQueueSample.m_nFrequency = (6050.f * multiplier) + 16000; m_sQueueSample.m_nLoopCount = 0; @@ -2998,12 +2998,12 @@ cAudioManager::ProcessBoatMovingOverWater(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 50.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 3; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } - return 1; + return true; } void @@ -3041,8 +3041,8 @@ cAudioManager::ProcessBridgeMotor() if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 1; m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 1; m_sQueueSample.m_nFrequency = 5500; m_sQueueSample.m_nLoopCount = 0; @@ -3054,7 +3054,7 @@ cAudioManager::ProcessBridgeMotor() m_sQueueSample.m_fSoundIntensity = 400.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 3; - m_sQueueSample.m_bReverbFlag = 0; + m_sQueueSample.m_bReverbFlag = false; AddSampleToRequestedQueue(); } } @@ -3091,8 +3091,8 @@ cAudioManager::ProcessBridgeOneShots() m_sQueueSample.m_bVolume = ComputeVolume(maxVolume, maxDist, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 2; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); @@ -3103,8 +3103,8 @@ cAudioManager::ProcessBridgeOneShots() m_sQueueSample.field_48 = 2.0f; m_sQueueSample.m_fSoundIntensity = maxDist; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bReverbFlag = 0; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = false; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -3118,8 +3118,8 @@ cAudioManager::ProcessBridgeWarning() if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 0; m_sQueueSample.m_nSampleIndex = 457; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_BRIDGE_OPEN_WARNING); m_sQueueSample.m_nLoopCount = 0; @@ -3131,8 +3131,8 @@ cAudioManager::ProcessBridgeWarning() m_sQueueSample.m_fSoundIntensity = 450.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 8; - m_sQueueSample.m_bReverbFlag = 0; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = false; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -3143,7 +3143,7 @@ cAudioManager::ProcessCarBombTick(cVehicleParams *params) { CAutomobile *automobile; - if(params->m_fDistance >= 1600.f) return 0; + if(params->m_fDistance >= 1600.f) return false; automobile = (CAutomobile *)params->m_pVehicle; if(automobile->bEngineOn && automobile->m_bombType == CARBOMB_TIMEDACTIVE) { CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); @@ -3151,8 +3151,8 @@ cAudioManager::ProcessCarBombTick(cVehicleParams *params) if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 35; m_sQueueSample.m_nSampleIndex = SFX_COUNTDOWN; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 0; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_COUNTDOWN); m_sQueueSample.m_nLoopCount = 0; @@ -3164,12 +3164,12 @@ cAudioManager::ProcessCarBombTick(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 40.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 3; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } - return 1; + return true; } WRAPPER @@ -3208,12 +3208,12 @@ cAudioManager::ProcessCinemaScriptObject(uint8 sound) ComputeVolume(rand, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_nSampleIndex = counter % 3 + SFX_CINEMA_BASS_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 4); m_sQueueSample.m_counter = counter++; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.field_56 = 1; m_sQueueSample.field_16 = 3; @@ -3221,8 +3221,8 @@ cAudioManager::ProcessCinemaScriptObject(uint8 sound) m_sQueueSample.m_bEmittingVolume = rand; m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); gCinemaNextTime = time + 1000 + m_anRandomTable[3] % 4000; } @@ -3268,11 +3268,11 @@ cAudioManager::ProcessDocksScriptObject(uint8 sound) ComputeVolume(rand, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_nSampleIndex = SFX_DOCKS_FOGHORN; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_DOCKS_FOGHORN); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency >> 3); m_sQueueSample.m_counter = counter++; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.field_56 = 1; m_sQueueSample.field_16 = 3; @@ -3280,8 +3280,8 @@ cAudioManager::ProcessDocksScriptObject(uint8 sound) m_sQueueSample.m_bEmittingVolume = rand; m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); gDocksNextTime = time + 10000 + m_anRandomTable[3] % 40000; } @@ -3296,11 +3296,11 @@ cAudioManager::ProcessEngineDamage(cVehicleParams *params) uint8 engineStatus; uint8 emittingVolume; - if(params->m_fDistance >= 1600.f) return 0; + if(params->m_fDistance >= 1600.f) return false; veh = (CAutomobile *)params->m_pVehicle; if(veh->bEngineOn) { engineStatus = veh->Damage.GetEngineStatus(); - if(engineStatus > 250u || engineStatus < 100) return 1; + if(engineStatus > 250u || engineStatus < 100) return true; if(engineStatus < 225) { m_sQueueSample.m_nSampleIndex = SFX_JUMBO_TAXI; emittingVolume = 6; @@ -3316,8 +3316,8 @@ cAudioManager::ProcessEngineDamage(cVehicleParams *params) m_sQueueSample.m_bVolume = ComputeVolume(emittingVolume, 40.f, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 28; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.m_bEmittingVolume = emittingVolume; m_sQueueSample.m_nLoopStart = @@ -3327,12 +3327,12 @@ cAudioManager::ProcessEngineDamage(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 40.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 3; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } - return 1; + return true; } void @@ -3343,53 +3343,53 @@ cAudioManager::ProcessEntity(int32 id) switch(m_asAudioEntities[id].m_nType) { case AUDIOTYPE_PHYSICAL: if(!m_bUserPause) { - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; ProcessPhysical(id); } break; case AUDIOTYPE_EXPLOSION: if(!m_bUserPause) { - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; ProcessExplosions(id); } break; case AUDIOTYPE_FIRE: if(!m_bUserPause) { - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; ProcessFires(id); } break; case AUDIOTYPE_WEATHER: if(!m_bUserPause) { - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; ProcessWeather(id); } break; case AUDIOTYPE_CRANE: if(!m_bUserPause) { - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; ProcessCrane(); } break; case AUDIOTYPE_SCRIPTOBJECT: if(!m_bUserPause) { - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; ProcessScriptObject(id); } break; case AUDIOTYPE_BRIDGE: if(!m_bUserPause) { - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; ProcessBridge(); } break; case AUDIOTYPE_FRONTEND: - m_sQueueSample.m_bReverbFlag = 0; + m_sQueueSample.m_bReverbFlag = false; ProcessFrontEnd(); break; case AUDIOTYPE_PROJECTILE: if(!m_bUserPause) { - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; ProcessProjectiles(); } break; @@ -3398,13 +3398,13 @@ cAudioManager::ProcessEntity(int32 id) break; case AUDIOTYPE_FIREHYDRANT: if(!m_bUserPause) { - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; ProcessFireHydrant(); } break; case AUDIOTYPE_WATERCANNON: if(!m_bUserPause) { - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; ProcessWaterCannon(id); } break; @@ -3435,7 +3435,7 @@ cAudioManager::ProcessExplosions(int32 explosion) m_sQueueSample.m_nSampleIndex = SFX_EXPLOSION_2; m_sQueueSample.m_nFrequency = RandomDisplacement(2000) + 38000; m_sQueueSample.field_16 = 0; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; break; case EXPLOSION_MOLOTOV: maxDist = 40000.f; @@ -3443,7 +3443,7 @@ cAudioManager::ProcessExplosions(int32 explosion) m_sQueueSample.m_nSampleIndex = SFX_EXPLOSION_3; m_sQueueSample.m_nFrequency = RandomDisplacement(1000) + 19000; m_sQueueSample.field_16 = 0; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; break; case EXPLOSION_MINE: case EXPLOSION_HELI_BOMB: @@ -3452,7 +3452,7 @@ cAudioManager::ProcessExplosions(int32 explosion) m_sQueueSample.m_nSampleIndex = SFX_ROCKET_LEFT; m_sQueueSample.m_nFrequency = RandomDisplacement(1000) + 12347; m_sQueueSample.field_16 = 0; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; break; default: maxDist = 160000.f; @@ -3462,7 +3462,7 @@ cAudioManager::ProcessExplosions(int32 explosion) if(type == EXPLOSION_HELI) m_sQueueSample.m_nFrequency = 8 * m_sQueueSample.m_nFrequency / 10; m_sQueueSample.field_16 = 0; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; break; } pos = CExplosion::GetExplosionPosition(i); @@ -3475,15 +3475,15 @@ cAudioManager::ProcessExplosions(int32 explosion) if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = i; m_sQueueSample.field_48 = 2.0f; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; m_sQueueSample.m_bEmittingVolume = maxVolume; m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = true; AddSampleToRequestedQueue(); } } @@ -3497,7 +3497,7 @@ cAudioManager::ProcessFireHydrant() float distSquared; bool distCalculated = false; - m_sQueueSample.m_vecPos = *(CVector *)((size_t)m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_pEntity + 52); + m_sQueueSample.m_vecPos = ((CEntity*)m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_pEntity)->GetPosition(); distSquared = GetDistanceSquared(&m_sQueueSample.m_vecPos); if(distSquared < 1225.f) { CalculateDistance(distCalculated, distSquared); @@ -3505,8 +3505,8 @@ cAudioManager::ProcessFireHydrant() if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 0; m_sQueueSample.m_nSampleIndex = SFX_JUMBO_TAXI; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 4; m_sQueueSample.m_nFrequency = 15591; m_sQueueSample.m_nLoopCount = 0; @@ -3518,8 +3518,8 @@ cAudioManager::ProcessFireHydrant() m_sQueueSample.m_fSoundIntensity = 35.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 3; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -3535,7 +3535,7 @@ cAudioManager::ProcessFires(int32 entity) void cAudioManager::ProcessFrontEnd() { - bool processed; + bool stereo; bool processedPickup; bool processedMission; int16 sample; @@ -3545,9 +3545,9 @@ cAudioManager::ProcessFrontEnd() static uint32 cPartMisComNextFrame = 0; for(uint32 i = 0; i < m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_AudioEvents; i++) { - processedPickup = 0; - processed = 0; - processedMission = 0; + processedPickup = false; + stereo = false; + processedMission = false; switch(m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i]) { case SOUND_WEAPON_SNIPER_SHOT_NO_ZOOM: m_sQueueSample.m_nSampleIndex = SFX_ERROR_FIRE_RIFLE; break; case SOUND_WEAPON_ROCKET_SHOT_NO_ZOOM: @@ -3557,7 +3557,7 @@ cAudioManager::ProcessFrontEnd() case SOUND_GARAGE_BAD_VEHICLE: case SOUND_3C: m_sQueueSample.m_nSampleIndex = SFX_PICKUP_ERROR_LEFT; - processed = true; + stereo = true; break; case SOUND_GARAGE_OPENING: case SOUND_GARAGE_BOMB1_SET: @@ -3574,18 +3574,18 @@ cAudioManager::ProcessFrontEnd() case SOUND_UNLOAD_GOLD: m_sQueueSample.m_nSampleIndex = SFX_PICKUP_2_LEFT; processedPickup = true; - processed = true; + stereo = true; break; case SOUND_PICKUP_WEAPON_BOUGHT: case SOUND_PICKUP_WEAPON: m_sQueueSample.m_nSampleIndex = SFX_PICKUP_1_LEFT; processedPickup = true; - processed = true; + stereo = true; break; case SOUND_4A: m_sQueueSample.m_nSampleIndex = SFX_PICKUP_ERROR_LEFT; processedPickup = true; - processed = true; + stereo = true; break; case SOUND_PICKUP_BONUS: case SOUND_PICKUP_MONEY: @@ -3595,7 +3595,7 @@ cAudioManager::ProcessFrontEnd() case SOUND_PICKUP_FLOAT_PACKAGE: m_sQueueSample.m_nSampleIndex = SFX_PICKUP_3_LEFT; processedPickup = true; - processed = true; + stereo = true; break; case SOUND_PAGER: m_sQueueSample.m_nSampleIndex = SFX_PAGER; break; case SOUND_RACE_START_3: @@ -3609,27 +3609,27 @@ cAudioManager::ProcessFrontEnd() break; case SOUND_FRONTEND_MENU_STARTING: m_sQueueSample.m_nSampleIndex = SFX_START_BUTTON_LEFT; - processed = true; + stereo = true; break; case SOUND_FRONTEND_MENU_COMPLETED: m_sQueueSample.m_nSampleIndex = SFX_PAGE_CHANGE_AND_BACK_LEFT; - processed = true; + stereo = true; break; case SOUND_FRONTEND_MENU_DENIED: m_sQueueSample.m_nSampleIndex = SFX_HIGHLIGHT_LEFT; - processed = true; + stereo = true; break; case SOUND_FRONTEND_MENU_SUCCESS: m_sQueueSample.m_nSampleIndex = SFX_SELECT_LEFT; - processed = true; + stereo = true; break; case SOUND_FRONTEND_EXIT: m_sQueueSample.m_nSampleIndex = SFX_SUB_MENU_BACK_LEFT; - processed = true; + stereo = true; break; case SOUND_9A: m_sQueueSample.m_nSampleIndex = SFX_STEREO_LEFT; - processed = true; + stereo = true; break; case SOUND_9B: m_sQueueSample.m_nSampleIndex = SFX_MONO; break; case SOUND_FRONTEND_AUDIO_TEST: @@ -3637,7 +3637,7 @@ cAudioManager::ProcessFrontEnd() break; case SOUND_FRONTEND_FAIL: m_sQueueSample.m_nSampleIndex = SFX_ERROR_LEFT; - processed = true; + stereo = true; break; case SOUND_FRONTEND_NO_RADIO: case SOUND_FRONTEND_RADIO_CHANGE: m_sQueueSample.m_nSampleIndex = SFX_RADIO_CLICK; break; @@ -3669,20 +3669,20 @@ cAudioManager::ProcessFrontEnd() m_sQueueSample.m_counter = counter++; m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.field_16 = 0; - m_sQueueSample.m_bIsDistant = 1; + m_sQueueSample.m_bIsDistant = true; m_sQueueSample.m_bEmittingVolume = m_sQueueSample.m_bVolume; m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; - if(processed) + if(stereo) m_sQueueSample.m_bOffset = m_anRandomTable[0] & 0x1F; else m_sQueueSample.m_bOffset = 63; - m_sQueueSample.m_bReverbFlag = 0; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = false; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); - if(processed) { + if(stereo) { ++m_sQueueSample.m_nSampleIndex; m_sQueueSample.m_counter = counter++; m_sQueueSample.m_bOffset = maxVolume - m_sQueueSample.m_bOffset; @@ -3715,14 +3715,14 @@ cAudioManager::ProcessHelicopter(cVehicleParams *params) static constexpr tHelicopterSampleData gHeliSfxRanges[3] = { {400.f, 380.f, 100}, {100.f, 70.f, maxVolume}, {60.f, 30.f, maxVolume}}; - if(gHeliSfxRanges[0].m_fMaxDistance * gHeliSfxRanges[0].m_fMaxDistance <= params->m_fDistance) return 0; + if(gHeliSfxRanges[0].m_fMaxDistance * gHeliSfxRanges[0].m_fMaxDistance <= params->m_fDistance) return false; CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); heli = (CHeli *)params->m_pVehicle; for(uint32 i = 0; i < 3; i++) { MaxDist = gHeliSfxRanges[i].m_fMaxDistance; dist = m_sQueueSample.m_fDistance; - if(dist >= MaxDist) return 1; + if(dist >= MaxDist) return true; baseDist = gHeliSfxRanges[i].m_fBaseDistance; if(dist < baseDist) emittingVol = (gHeliSfxRanges[i].m_bBaseVolume * ((MaxDist - dist) / (MaxDist - baseDist))); @@ -3734,8 +3734,8 @@ cAudioManager::ProcessHelicopter(cVehicleParams *params) if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = i + 65; m_sQueueSample.m_nSampleIndex = i + SFX_HELI_1; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 0; m_sQueueSample.m_nFrequency = 1200 * heli->m_nHeliId + SampleManager.GetSampleBaseFrequency( m_sQueueSample.m_nSampleIndex); @@ -3748,12 +3748,12 @@ cAudioManager::ProcessHelicopter(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = gHeliSfxRanges[i].m_fMaxDistance; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 3; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } - return 1; + return true; } void @@ -3787,12 +3787,12 @@ cAudioManager::ProcessHomeScriptObject(uint8 sound) ComputeVolume(rand, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_nSampleIndex = m_anRandomTable[0] % 5 + SFX_HOME_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); m_sQueueSample.m_counter = counter++; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.field_56 = 1; m_sQueueSample.field_16 = 3; @@ -3800,8 +3800,8 @@ cAudioManager::ProcessHomeScriptObject(uint8 sound) m_sQueueSample.m_bEmittingVolume = rand; m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = true; AddSampleToRequestedQueue(); gHomeNextTime = time + 1000 + m_anRandomTable[3] % 4000; } @@ -3941,10 +3941,10 @@ cAudioManager::ProcessLaunderetteScriptObject(uint8 sound) ComputeVolume(45, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_nSampleIndex = SFX_LAUNDERETTE_LOOP; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_LAUNDERETTE_LOOP); m_sQueueSample.m_counter = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.field_56 = 0; m_sQueueSample.field_16 = 5; @@ -3953,18 +3953,18 @@ cAudioManager::ProcessLaunderetteScriptObject(uint8 sound) m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } m_sQueueSample.m_bVolume = ComputeVolume(110, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_nSampleIndex = SFX_LAUNDERETTE_SONG_LOOP; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_LAUNDERETTE_SONG_LOOP); m_sQueueSample.m_counter = 1; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.field_56 = 0; m_sQueueSample.field_16 = 3; @@ -3973,8 +3973,8 @@ cAudioManager::ProcessLaunderetteScriptObject(uint8 sound) m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -3992,7 +3992,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_1); m_sQueueSample.field_16 = 3; @@ -4003,7 +4003,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_1); m_sQueueSample.field_16 = 3; @@ -4014,7 +4014,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_2; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_2); m_sQueueSample.field_16 = 3; @@ -4025,7 +4025,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_2; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_2); m_sQueueSample.field_16 = 3; @@ -4036,7 +4036,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_3; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_3); m_sQueueSample.field_16 = 3; @@ -4047,7 +4047,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_3; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_3); m_sQueueSample.field_16 = 3; @@ -4058,7 +4058,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_4; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_4); m_sQueueSample.field_16 = 3; @@ -4069,7 +4069,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_4; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_4); m_sQueueSample.field_16 = 3; @@ -4080,7 +4080,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_5; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_5); m_sQueueSample.field_16 = 3; @@ -4091,7 +4091,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_5; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_5); m_sQueueSample.field_16 = 3; @@ -4102,7 +4102,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_6; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_6); m_sQueueSample.field_16 = 3; @@ -4113,7 +4113,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_6; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_6); m_sQueueSample.field_16 = 3; @@ -4124,7 +4124,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_7; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_7); m_sQueueSample.field_16 = 3; @@ -4135,7 +4135,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_7; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_7); m_sQueueSample.field_16 = 3; @@ -4146,7 +4146,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_8; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_8); m_sQueueSample.field_16 = 3; @@ -4157,7 +4157,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_8; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_8); m_sQueueSample.field_16 = 3; @@ -4168,7 +4168,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_9; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_9); m_sQueueSample.field_16 = 3; @@ -4179,7 +4179,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_9; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_9); m_sQueueSample.field_16 = 3; @@ -4190,7 +4190,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_10; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_10); m_sQueueSample.field_16 = 3; @@ -4201,7 +4201,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_10; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_10); m_sQueueSample.field_16 = 3; @@ -4212,7 +4212,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_11; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_11); m_sQueueSample.field_16 = 3; @@ -4223,7 +4223,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_11; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_11); m_sQueueSample.field_16 = 3; @@ -4234,7 +4234,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_12; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_12); m_sQueueSample.field_16 = 3; @@ -4245,7 +4245,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_12; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_12); m_sQueueSample.field_16 = 3; @@ -4256,7 +4256,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_RAGGA; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_RAGGA); m_sQueueSample.field_16 = 3; @@ -4267,7 +4267,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_RAGGA; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_RAGGA); m_sQueueSample.field_16 = 3; @@ -4278,7 +4278,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_STRIP_CLUB_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_STRIP_CLUB_1); m_sQueueSample.field_16 = 3; @@ -4289,7 +4289,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_STRIP_CLUB_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_STRIP_CLUB_1); m_sQueueSample.field_16 = 3; @@ -4300,7 +4300,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_STRIP_CLUB_2; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_STRIP_CLUB_2); m_sQueueSample.field_16 = 3; @@ -4311,7 +4311,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_STRIP_CLUB_2; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_STRIP_CLUB_2); m_sQueueSample.field_16 = 3; @@ -4326,7 +4326,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_DOG_FOOD_FACTORY; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 110; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_DOG_FOOD_FACTORY); m_sQueueSample.field_16 = 6; @@ -4337,7 +4337,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_DOG_FOOD_FACTORY; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 110; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_DOG_FOOD_FACTORY); m_sQueueSample.field_16 = 6; @@ -4350,7 +4350,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_CHINATOWN; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 110; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_CHINATOWN); m_sQueueSample.field_16 = 3; @@ -4361,7 +4361,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_CHINATOWN; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 110; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_CHINATOWN); m_sQueueSample.field_16 = 3; @@ -4372,7 +4372,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_ITALY; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 110; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_ITALY); m_sQueueSample.field_16 = 3; @@ -4383,7 +4383,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_ITALY; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 110; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_ITALY); m_sQueueSample.field_16 = 3; @@ -4394,7 +4394,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_GENERIC_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 110; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_GENERIC_1); m_sQueueSample.field_16 = 3; @@ -4405,7 +4405,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_GENERIC_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 110; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_GENERIC_1); m_sQueueSample.field_16 = 3; @@ -4416,7 +4416,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_GENERIC_2; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 110; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_GENERIC_2); m_sQueueSample.field_16 = 3; @@ -4427,7 +4427,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_RESTAURANT_GENERIC_2; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 110; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RESTAURANT_GENERIC_2); m_sQueueSample.field_16 = 3; @@ -4448,7 +4448,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_PIANO_BAR_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_PIANO_BAR_1); m_sQueueSample.field_16 = 3; @@ -4459,7 +4459,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_CLUB_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CLUB_1); m_sQueueSample.field_16 = 3; @@ -4478,7 +4478,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_BANK_ALARM_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 90; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_BANK_ALARM_1); m_sQueueSample.field_16 = 2; @@ -4489,7 +4489,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_BANK_ALARM_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 90; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_BANK_ALARM_1); m_sQueueSample.field_16 = 2; @@ -4500,7 +4500,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_POLICE_BALL_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_POLICE_BALL_1); m_sQueueSample.field_16 = 2; @@ -4511,7 +4511,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_POLICE_BALL_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_POLICE_BALL_1); m_sQueueSample.field_16 = 2; @@ -4522,7 +4522,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_RAVE_INDUSTRIAL; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RAVE_INDUSTRIAL); m_sQueueSample.field_16 = 3; @@ -4533,7 +4533,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_RAVE_INDUSTRIAL; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RAVE_INDUSTRIAL); m_sQueueSample.field_16 = 3; @@ -4547,7 +4547,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_RAVE_COMMERCIAL; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); m_sQueueSample.field_16 = 3; @@ -4559,7 +4559,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_RAVE_COMMERCIAL; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); m_sQueueSample.field_16 = 3; @@ -4570,7 +4570,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.m_nSampleIndex = SFX_RAVE_SUBURBAN; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RAVE_SUBURBAN); m_sQueueSample.field_16 = 3; @@ -4581,7 +4581,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_RAVE_SUBURBAN; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RAVE_SUBURBAN); m_sQueueSample.field_16 = 3; @@ -4592,7 +4592,7 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) maxDist = 2500.f; m_sQueueSample.m_fSoundIntensity = 50.0f; m_sQueueSample.m_nSampleIndex = SFX_CAR_ON_FIRE; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 80; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_CAR_ON_FIRE); m_sQueueSample.field_16 = 8; @@ -4609,15 +4609,15 @@ cAudioManager::ProcessLoopingScriptObject(uint8 sound) ComputeVolume(emittingVolume, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.field_56 = 0; - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; m_sQueueSample.m_bEmittingVolume = emittingVolume; m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -4782,8 +4782,8 @@ cAudioManager::ProcessModelCarEngine(cVehicleParams *params) if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 2; m_sQueueSample.m_nSampleIndex = SFX_REMOTE_CONTROLLED_CAR; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 1; m_sQueueSample.m_nFrequency = (11025.f * velocityChange / params->m_pTransmission->fMaxVelocity + @@ -4798,8 +4798,8 @@ cAudioManager::ProcessModelCarEngine(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 3; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -4841,15 +4841,15 @@ cAudioManager::ProcessOneShotScriptObject(uint8 sound) maxDist = 1600.f; m_sQueueSample.m_fSoundIntensity = 40.0f; m_sQueueSample.m_nSampleIndex = SFX_COL_GATE; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; if(sound == SCRIPT_SOUND_GATE_START_CLUNK) m_sQueueSample.m_nFrequency = 10600; else m_sQueueSample.m_nFrequency = 9000; m_sQueueSample.field_16 = 1; m_sQueueSample.field_48 = 0.0f; - m_sQueueSample.m_bIsDistant = 0; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bIsDistant = false; + m_sQueueSample.m_bRequireReflection = true; emittingVolume = RandomDisplacement(10) + 50; break; case SCRIPT_SOUND_BULLET_HIT_GROUND_1: @@ -4858,12 +4858,12 @@ cAudioManager::ProcessOneShotScriptObject(uint8 sound) maxDist = 2500.f; m_sQueueSample.m_fSoundIntensity = 50.0f; m_sQueueSample.m_nSampleIndex = m_anRandomTable[iSound % 5] % 3 + SFX_BULLET_WALL_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency >> 5); m_sQueueSample.field_16 = 9; m_sQueueSample.field_48 = 0.0f; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; emittingVolume = m_anRandomTable[2] % 20 + 90; break; case SCRIPT_SOUND_110: @@ -4872,118 +4872,118 @@ cAudioManager::ProcessOneShotScriptObject(uint8 sound) maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_TRAIN_STATION_ANNOUNCE; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = maxVolume; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_TRAIN_STATION_ANNOUNCE); m_sQueueSample.field_16 = 0; m_sQueueSample.field_48 = 2.0f; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; break; case SCRIPT_SOUND_PAYPHONE_RINGING: maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; m_sQueueSample.m_nSampleIndex = SFX_PHONE_RING; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 80; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_PHONE_RING); m_sQueueSample.field_16 = 1; m_sQueueSample.field_48 = 2.0f; - m_sQueueSample.m_bIsDistant = 0; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bIsDistant = false; + m_sQueueSample.m_bRequireReflection = false; break; case SCRIPT_SOUND_GLASS_BREAK_L: maxDist = 3600.f; m_sQueueSample.m_fSoundIntensity = 60.0f; m_sQueueSample.m_nSampleIndex = SFX_GLASS_SMASH; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 70; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_GLASS_SMASH); m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; break; case SCRIPT_SOUND_GLASS_BREAK_S: maxDist = 3600.f; m_sQueueSample.m_fSoundIntensity = 60.0f; m_sQueueSample.m_nSampleIndex = SFX_GLASS_SMASH; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 60; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_GLASS_SMASH); m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; break; case SCRIPT_SOUND_GLASS_CRACK: maxDist = 3600.f; m_sQueueSample.m_fSoundIntensity = 60.0f; m_sQueueSample.m_nSampleIndex = SFX_GLASS_CRACK; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; emittingVolume = 70; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_GLASS_CRACK); m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; - m_sQueueSample.m_bIsDistant = 0; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bIsDistant = false; + m_sQueueSample.m_bRequireReflection = true; break; case SCRIPT_SOUND_GLASS_LIGHT_BREAK: maxDist = 3025.f; m_sQueueSample.m_fSoundIntensity = 55.0f; m_sQueueSample.m_nSampleIndex = (m_anRandomTable[4] & 3) + SFX_GLASS_SHARD_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = RandomDisplacement(2000) + 19000; m_sQueueSample.field_16 = 9; m_sQueueSample.field_48 = 0.0f; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; emittingVolume = RandomDisplacement(11) + 25; break; case SCRIPT_SOUND_BOX_DESTROYED_1: maxDist = 3600.f; m_sQueueSample.m_fSoundIntensity = 60.0f; m_sQueueSample.m_nSampleIndex = SFX_WOODEN_BOX_SMASH; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = RandomDisplacement(1500) + 18600; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; - m_sQueueSample.m_bIsDistant = 0; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bIsDistant = false; + m_sQueueSample.m_bRequireReflection = true; emittingVolume = m_anRandomTable[2] % 20 + 80; break; case SCRIPT_SOUND_BOX_DESTROYED_2: maxDist = 3600.f; m_sQueueSample.m_fSoundIntensity = 60.0f; m_sQueueSample.m_nSampleIndex = SFX_CARDBOARD_BOX_SMASH; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = RandomDisplacement(1500) + 18600; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; - m_sQueueSample.m_bIsDistant = 0; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bIsDistant = false; + m_sQueueSample.m_bRequireReflection = true; emittingVolume = m_anRandomTable[2] % 20 + 80; break; case SCRIPT_SOUND_METAL_COLLISION: maxDist = 3600.f; m_sQueueSample.m_fSoundIntensity = 60.0f; m_sQueueSample.m_nSampleIndex = m_anRandomTable[3] % 5 + SFX_COL_CAR_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency >> 4); m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; - m_sQueueSample.m_bIsDistant = 0; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bIsDistant = false; + m_sQueueSample.m_bRequireReflection = true; emittingVolume = m_anRandomTable[2] % 30 + 70; break; case SCRIPT_SOUND_TIRE_COLLISION: maxDist = 3600.f; m_sQueueSample.m_fSoundIntensity = 60.0f; m_sQueueSample.m_nSampleIndex = SFX_TYRE_BUMP; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency >> 4); m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; - m_sQueueSample.m_bIsDistant = 0; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bIsDistant = false; + m_sQueueSample.m_bRequireReflection = true; emittingVolume = m_anRandomTable[2] % 30 + 60; break; case SCRIPT_SOUND_GUNSHELL_DROP: @@ -5003,9 +5003,9 @@ cAudioManager::ProcessOneShotScriptObject(uint8 sound) m_sQueueSample.field_16 = 18; maxDist = 400.f; m_sQueueSample.m_fSoundIntensity = 20.0f; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.field_48 = 0.0f; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; emittingVolume = m_anRandomTable[2] % 20 + 30; distSquared = GetDistanceSquared(&m_sQueueSample.m_vecPos); if(distSquared < maxDist) { @@ -5020,7 +5020,7 @@ cAudioManager::ProcessOneShotScriptObject(uint8 sound) m_sQueueSample.m_bEmittingVolume = emittingVolume; m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; AddSampleToRequestedQueue(); } } @@ -5034,9 +5034,9 @@ cAudioManager::ProcessOneShotScriptObject(uint8 sound) m_sQueueSample.field_16 = 15; maxDist = 400.f; m_sQueueSample.m_fSoundIntensity = 20.0f; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.field_48 = 0.0f; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; emittingVolume = m_anRandomTable[2] % 20 + 30; break; case SCRIPT_SOUND_GUNSHELL_DROP_SOFT: @@ -5045,9 +5045,9 @@ cAudioManager::ProcessOneShotScriptObject(uint8 sound) m_sQueueSample.field_16 = 18; maxDist = 400.f; m_sQueueSample.m_fSoundIntensity = 20.0f; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.field_48 = 0.0f; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; emittingVolume = m_anRandomTable[2] % 20 + 30; break; default: return; @@ -5065,7 +5065,7 @@ cAudioManager::ProcessOneShotScriptObject(uint8 sound) m_sQueueSample.m_bEmittingVolume = emittingVolume; m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; AddSampleToRequestedQueue(); } } @@ -5119,8 +5119,8 @@ cAudioManager::ProcessPedHeadphones(cPedParams *params) if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 64; m_sQueueSample.m_nSampleIndex = SFX_HEADPHONES; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 5; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_HEADPHONES); @@ -5134,8 +5134,8 @@ cAudioManager::ProcessPedHeadphones(cPedParams *params) m_sQueueSample.m_fSoundIntensity = 7.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 5; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } return; @@ -5159,7 +5159,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) CPed *ped = params->m_pPed; - char processed; + bool stereo; int16 sound; char noReflection; CWeapon *weapon; @@ -5170,8 +5170,8 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) weapon = nil; for(uint32 i = 0; i < m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_AudioEvents; i++) { noReflection = 0; - processed = 0; - m_sQueueSample.m_bRequireReflection = 0; + stereo = 0; + m_sQueueSample.m_bRequireReflection = false; sound = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i]; switch(sound) { case SOUND_STEP_START: @@ -5221,7 +5221,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) break; } m_sQueueSample.m_nSampleIndex = sampleIndex; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = m_asAudioEntities[m_sQueueSample.m_nEntityIndex].m_awAudioEvent[i] - 28; m_sQueueSample.m_nFrequency = @@ -5246,9 +5246,9 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; } break; case SOUND_FALL_LAND: @@ -5264,7 +5264,7 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) } else { m_sQueueSample.m_nSampleIndex = SFX_BODY_LAND_AND_FALL; } - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); @@ -5276,18 +5276,18 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; } break; case SOUND_FIGHT_PUNCH_33: m_sQueueSample.m_nSampleIndex = SFX_FIGHT_1; m_sQueueSample.m_nFrequency = 18000; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound; - processed = 1; + stereo = 1; ++iSound; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; @@ -5298,16 +5298,16 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[3] % 26 + 100; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case SOUND_FIGHT_KICK_34: m_sQueueSample.m_nSampleIndex = SFX_FIGHT_1; m_sQueueSample.m_nFrequency = 16500; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound; - processed = 1; + stereo = 1; ++iSound; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; @@ -5318,16 +5318,16 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[3] % 26 + 100; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case SOUND_FIGHT_HEADBUTT_35: m_sQueueSample.m_nSampleIndex = SFX_FIGHT_1; m_sQueueSample.m_nFrequency = 20000; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound; - processed = 1; + stereo = 1; ++iSound; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; @@ -5338,16 +5338,16 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[3] % 26 + 100; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case SOUND_FIGHT_PUNCH_36: m_sQueueSample.m_nSampleIndex = SFX_FIGHT_2; m_sQueueSample.m_nFrequency = 18000; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound; - processed = 1; + stereo = 1; ++iSound; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; @@ -5358,16 +5358,16 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[3] % 26 + 100; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case SOUND_FIGHT_PUNCH_37: m_sQueueSample.m_nSampleIndex = SFX_FIGHT_2; m_sQueueSample.m_nFrequency = 16500; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound; - processed = 1; + stereo = 1; ++iSound; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; @@ -5378,16 +5378,16 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[3] % 26 + 100; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case SOUND_FIGHT_CLOSE_PUNCH_38: m_sQueueSample.m_nSampleIndex = SFX_FIGHT_2; m_sQueueSample.m_nFrequency = 20000; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound; - processed = 1; + stereo = 1; ++iSound; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; @@ -5398,16 +5398,16 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[3] % 26 + 100; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case SOUND_FIGHT_PUNCH_39: m_sQueueSample.m_nSampleIndex = SFX_FIGHT_4; m_sQueueSample.m_nFrequency = 18000; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound; - processed = 1; + stereo = 1; ++iSound; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; @@ -5418,16 +5418,16 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[3] % 26 + 100; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case SOUND_FIGHT_PUNCH_OR_KICK_BELOW_40: m_sQueueSample.m_nSampleIndex = SFX_FIGHT_4; m_sQueueSample.m_nFrequency = 16500; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound; - processed = 1; + stereo = 1; ++iSound; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; @@ -5438,16 +5438,16 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[3] % 26 + 100; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case SOUND_FIGHT_PUNCH_41: m_sQueueSample.m_nSampleIndex = SFX_FIGHT_4; m_sQueueSample.m_nFrequency = 20000; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound; - processed = 1; + stereo = 1; ++iSound; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; @@ -5458,16 +5458,16 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[3] % 26 + 100; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case SOUND_FIGHT_PUNCH_FROM_BEHIND_42: m_sQueueSample.m_nSampleIndex = SFX_FIGHT_5; m_sQueueSample.m_nFrequency = 18000; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound; - processed = 1; + stereo = 1; ++iSound; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; @@ -5478,16 +5478,16 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[3] % 26 + 100; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case SOUND_FIGHT_KNEE_OR_KICK_43: m_sQueueSample.m_nSampleIndex = SFX_FIGHT_5; m_sQueueSample.m_nFrequency = 16500; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound; - processed = 1; + stereo = 1; ++iSound; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; @@ -5498,16 +5498,16 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[3] % 26 + 100; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case SOUND_FIGHT_KICK_44: m_sQueueSample.m_nSampleIndex = SFX_FIGHT_5; m_sQueueSample.m_nFrequency = 20000; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound; - processed = 1; + stereo = 1; ++iSound; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; @@ -5518,15 +5518,15 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[3] % 26 + 100; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case SOUND_WEAPON_BAT_ATTACK: m_sQueueSample.m_nSampleIndex = SFX_BAT_HIT_LEFT; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = RandomDisplacement(2000) + 22000; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 0.0f; @@ -5537,10 +5537,10 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopEnd = -1; emittingVol = m_anRandomTable[2] % 20 + 100; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; if(m_bDynamicAcousticModelingStatus) - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; else noReflection = 1; break; @@ -5549,9 +5549,9 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) switch(weapon->m_eWeaponType) { case WEAPONTYPE_COLT45: m_sQueueSample.m_nSampleIndex = SFX_COLT45_LEFT; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_COLT45_LEFT); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency >> 5); @@ -5564,18 +5564,18 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopEnd = -1; emittingVol = m_anRandomTable[1] % 10 + 90; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; if(m_bDynamicAcousticModelingStatus) - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; else noReflection = 1; break; case WEAPONTYPE_UZI: m_sQueueSample.m_nSampleIndex = SFX_UZI_LEFT; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_UZI_LEFT); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency >> 5); @@ -5588,14 +5588,14 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[3] % 15 + 70; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; break; case WEAPONTYPE_SHOTGUN: m_sQueueSample.m_nSampleIndex = SFX_SHOTGUN_LEFT; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SHOTGUN_LEFT); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency >> 5); @@ -5608,18 +5608,18 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopEnd = -1; emittingVol = m_anRandomTable[2] % 10 + 100; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; if(m_bDynamicAcousticModelingStatus) - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; else noReflection = 1; break; case WEAPONTYPE_AK47: m_sQueueSample.m_nSampleIndex = SFX_AK47_LEFT; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_AK47_LEFT); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency >> 5); @@ -5632,14 +5632,14 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[1] % 15 + 70; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; break; case WEAPONTYPE_M16: m_sQueueSample.m_nSampleIndex = SFX_M16_LEFT; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_M16_LEFT); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency >> 5); @@ -5652,14 +5652,14 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[4] % 15 + 70; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; break; case WEAPONTYPE_SNIPERRIFLE: m_sQueueSample.m_nSampleIndex = SFX_SNIPER_LEFT; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SNIPER_LEFT); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency >> 5); @@ -5672,18 +5672,18 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopEnd = -1; emittingVol = m_anRandomTable[4] % 10 + 110; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; if(m_bDynamicAcousticModelingStatus) - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; else noReflection = 1; break; case WEAPONTYPE_ROCKETLAUNCHER: m_sQueueSample.m_nSampleIndex = SFX_ROCKET_LEFT; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_ROCKET_LEFT); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency >> 5); @@ -5696,16 +5696,16 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopEnd = -1; emittingVol = m_anRandomTable[0] % 20 + 80; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; if(m_bDynamicAcousticModelingStatus) - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; else noReflection = 1; break; case WEAPONTYPE_FLAMETHROWER: m_sQueueSample.m_nSampleIndex = SFX_FLAMETHROWER_LEFT; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = 9; emittingVol = 90; m_sQueueSample.m_nFrequency = @@ -5721,11 +5721,11 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_bEmittingVolume = 90; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 6; if(m_bDynamicAcousticModelingStatus) - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; else noReflection = 1; break; @@ -5740,12 +5740,12 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nSampleIndex = SFX_PISTOL_RELOAD; emittingVol = 75; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_PISTOL_RELOAD) + RandomDisplacement(300); m_sQueueSample.m_nFrequency += RandomDisplacement(300); - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.field_16 = 5; m_sQueueSample.field_48 = 0.0f; m_sQueueSample.m_fSoundIntensity = 30.0f; @@ -5754,18 +5754,18 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = 75; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case WEAPONTYPE_UZI: m_sQueueSample.m_nSampleIndex = SFX_M16_RELOAD; emittingVol = 75; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = 39243; m_sQueueSample.m_nFrequency += RandomDisplacement(300); - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.field_16 = 5; m_sQueueSample.field_48 = 0.0f; m_sQueueSample.m_fSoundIntensity = 30.0f; @@ -5774,18 +5774,18 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = 75; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case WEAPONTYPE_SHOTGUN: m_sQueueSample.m_nSampleIndex = SFX_AK47_RELOAD; emittingVol = 75; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = 30290; m_sQueueSample.m_nFrequency += RandomDisplacement(300); - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.field_16 = 5; m_sQueueSample.field_48 = 0.0f; m_sQueueSample.m_fSoundIntensity = 30.0f; @@ -5794,19 +5794,19 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = 75; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case WEAPONTYPE_AK47: m_sQueueSample.m_nSampleIndex = SFX_AK47_RELOAD; emittingVol = 75; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_AK47_RELOAD); m_sQueueSample.m_nFrequency += RandomDisplacement(300); - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.field_16 = 5; m_sQueueSample.field_48 = 0.0f; m_sQueueSample.m_fSoundIntensity = 30.0f; @@ -5815,19 +5815,19 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = 75; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case WEAPONTYPE_M16: m_sQueueSample.m_nSampleIndex = SFX_M16_RELOAD; emittingVol = 75; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_M16_RELOAD); m_sQueueSample.m_nFrequency += RandomDisplacement(300); - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.field_16 = 5; m_sQueueSample.field_48 = 0.0f; m_sQueueSample.m_fSoundIntensity = 30.0f; @@ -5836,19 +5836,19 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = 75; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case WEAPONTYPE_SNIPERRIFLE: m_sQueueSample.m_nSampleIndex = SFX_RIFLE_RELOAD; emittingVol = 75; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_RIFLE_RELOAD); m_sQueueSample.m_nFrequency += RandomDisplacement(300); - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.field_16 = 5; m_sQueueSample.field_48 = 0.0f; m_sQueueSample.m_fSoundIntensity = 30.0f; @@ -5857,19 +5857,19 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = 75; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; case WEAPONTYPE_ROCKETLAUNCHER: m_sQueueSample.m_nSampleIndex = SFX_ROCKET_RELOAD; emittingVol = 75; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_ROCKET_RELOAD); m_sQueueSample.m_nFrequency += RandomDisplacement(300); - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.field_16 = 5; m_sQueueSample.field_48 = 0.0f; m_sQueueSample.m_fSoundIntensity = 30.0f; @@ -5878,9 +5878,9 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = 75; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; default: continue; } @@ -5889,9 +5889,9 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) case SOUND_WEAPON_UZI_BULLET_ECHO: case SOUND_WEAPON_M16_BULLET_ECHO: m_sQueueSample.m_nSampleIndex = SFX_UZI_END_LEFT; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_UZI_END_LEFT); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency >> 4); m_sQueueSample.field_16 = 3; @@ -5903,16 +5903,16 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopEnd = -1; emittingVol = m_anRandomTable[4] % 10 + 40; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; if(m_bDynamicAcousticModelingStatus) - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; else noReflection = 1; break; case SOUND_WEAPON_FLAMETHROWER_FIRE: m_sQueueSample.m_nSampleIndex = SFX_FLAMETHROWER_START_LEFT; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound++; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_FLAMETHROWER_START_LEFT); @@ -5926,14 +5926,14 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_nLoopEnd = -1; emittingVol = 70; m_sQueueSample.m_bEmittingVolume = 70; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; break; case SOUND_WEAPON_HIT_PED: m_sQueueSample.m_nSampleIndex = SFX_BULLET_PED; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_BULLET_PED); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency >> 3); m_sQueueSample.field_16 = 7; @@ -5945,14 +5945,14 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[0] % 20 + 90; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; break; case SOUND_SPLASH: m_sQueueSample.m_nSampleIndex = SFX_SPLASH_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_counter = iSound++; - processed = 1; + stereo = 1; m_sQueueSample.m_nFrequency = RandomDisplacement(1400) + 20000; m_sQueueSample.field_16 = 1; m_sQueueSample.field_48 = 0.0f; @@ -5963,15 +5963,15 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) emittingVol = m_anRandomTable[2] % 30 + 70; m_sQueueSample.m_nLoopEnd = -1; m_sQueueSample.m_bEmittingVolume = emittingVol; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bRequireReflection = true; break; default: SetupPedComments(params, sound); continue; - if(processed && iSound > 60) iSound = 21; + if(stereo && iSound > 60) iSound = 21; if(params->m_fDistance < maxDist) { CalculateDistance((bool *)params, params->m_fDistance); m_sQueueSample.m_bVolume = ComputeVolume(emittingVol, m_sQueueSample.m_fSoundIntensity, @@ -5982,11 +5982,11 @@ cAudioManager::ProcessPedOneShots(cPedParams *params) m_sQueueSample.m_fDistance) { noReflection = 0; } else { - m_sQueueSample.m_bIsDistant = 1; + m_sQueueSample.m_bIsDistant = true; m_sQueueSample.m_bOffset = 0; } } - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; AddSampleToRequestedQueue(); if(noReflection) { m_sQueueSample.m_bOffset = 127; @@ -6347,12 +6347,12 @@ cAudioManager::ProcessPoliceCellBeatingScriptObject(uint8 sound) m_sQueueSample.m_bVolume = ComputeVolume(emittingVol, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency / 16); m_sQueueSample.m_counter = counter++; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.field_56 = 1; m_sQueueSample.field_16 = 3; @@ -6360,8 +6360,8 @@ cAudioManager::ProcessPoliceCellBeatingScriptObject(uint8 sound) m_sQueueSample.m_bEmittingVolume = emittingVol; m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); params.m_bDistanceCalculated = 1; params.m_fDistance = distSquared; @@ -6387,7 +6387,7 @@ cAudioManager::ProcessPornCinema(uint8 sound) case SCRIPT_SOUND_PORN_CINEMA_1_S: case SCRIPT_SOUND_MISTY_SEX_S: m_sQueueSample.m_nSampleIndex = SFX_PORN_1_LOOP; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; maxDist = 400.f; sample = SFX_PORN_1_GROAN_1; m_sQueueSample.m_fSoundIntensity = 20.0f; @@ -6395,35 +6395,35 @@ cAudioManager::ProcessPornCinema(uint8 sound) case SCRIPT_SOUND_PORN_CINEMA_1_L: case SCRIPT_SOUND_MISTY_SEX_L: m_sQueueSample.m_nSampleIndex = SFX_PORN_1_LOOP; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; maxDist = 6400.f; sample = SFX_PORN_1_GROAN_1; m_sQueueSample.m_fSoundIntensity = 80.0f; break; case SCRIPT_SOUND_PORN_CINEMA_2_S: m_sQueueSample.m_nSampleIndex = SFX_PORN_2_LOOP; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; maxDist = 400.f; sample = SFX_PORN_2_GROAN_1; m_sQueueSample.m_fSoundIntensity = 20.0f; break; case SCRIPT_SOUND_PORN_CINEMA_2_L: m_sQueueSample.m_nSampleIndex = SFX_PORN_2_LOOP; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; maxDist = 6400.f; sample = SFX_PORN_2_GROAN_1; m_sQueueSample.m_fSoundIntensity = 80.0f; break; case SCRIPT_SOUND_PORN_CINEMA_3_S: m_sQueueSample.m_nSampleIndex = SFX_PORN_3_LOOP; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; maxDist = 400.f; m_sQueueSample.m_fSoundIntensity = 20.0f; sample = SFX_PORN_3_GROAN_1; break; case SCRIPT_SOUND_PORN_CINEMA_3_L: m_sQueueSample.m_nSampleIndex = SFX_PORN_3_LOOP; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; maxDist = 6400.f; m_sQueueSample.m_fSoundIntensity = 80.0f; sample = SFX_PORN_3_GROAN_1; @@ -6440,7 +6440,7 @@ cAudioManager::ProcessPornCinema(uint8 sound) m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_counter = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.field_56 = 0; m_sQueueSample.field_16 = 3; @@ -6450,8 +6450,8 @@ cAudioManager::ProcessPornCinema(uint8 sound) SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -6467,15 +6467,15 @@ cAudioManager::ProcessPornCinema(uint8 sound) SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nFrequency += RandomDisplacement(m_sQueueSample.m_nFrequency >> 4); m_sQueueSample.m_counter = rand + 1; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.field_56 = 1; m_sQueueSample.field_16 = 6; m_sQueueSample.field_48 = 0.0f; m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); gPornNextTime = time + 2000 + m_anRandomTable[3] % 6000; } @@ -6497,7 +6497,7 @@ cAudioManager::ProcessProjectiles() maxDist = 8100.f; m_sQueueSample.m_fSoundIntensity = 90.0; m_sQueueSample.m_nSampleIndex = 81; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_ROCKET_FLY); m_sQueueSample.field_16 = 3; @@ -6507,7 +6507,7 @@ cAudioManager::ProcessProjectiles() maxDist = 900.f; m_sQueueSample.m_fSoundIntensity = 30.0; m_sQueueSample.m_nSampleIndex = SFX_PED_ON_FIRE; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = 32 * SampleManager.GetSampleBaseFrequency(SFX_PED_ON_FIRE) / 25; m_sQueueSample.field_16 = 7; @@ -6524,7 +6524,7 @@ cAudioManager::ProcessProjectiles() m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = i; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.m_bEmittingVolume = emittingVol; m_sQueueSample.m_nLoopStart = @@ -6532,8 +6532,8 @@ cAudioManager::ProcessProjectiles() m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); m_sQueueSample.field_56 = 0; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -6562,8 +6562,8 @@ cAudioManager::ProcessRainOnVehicle(cVehicleParams *params) if(veh->m_bRainSamplesCounter > 4) veh->m_bRainSamplesCounter = 68; m_sQueueSample.m_nSampleIndex = (m_anRandomTable[1] & 3) + SFX_CAR_RAIN_1; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 9; m_sQueueSample.m_nFrequency = m_anRandomTable[1] % 4000 + 28000; m_sQueueSample.m_nLoopCount = 1; @@ -6573,8 +6573,8 @@ cAudioManager::ProcessRainOnVehicle(cVehicleParams *params) m_sQueueSample.field_48 = 0.0f; m_sQueueSample.m_fSoundIntensity = 22.0f; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bReverbFlag = 0; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = false; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -6599,7 +6599,7 @@ cAudioManager::ProcessReverseGear(cVehicleParams *params) int32 emittingVol; float modificator; - if(params->m_fDistance >= 900.f) return 0; + if(params->m_fDistance >= 900.f) return false; veh = params->m_pVehicle; if(veh->bEngineOn && (veh->m_fGasPedal < 0.0f || !veh->m_nCurrentGear)) { CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); @@ -6622,8 +6622,8 @@ cAudioManager::ProcessReverseGear(cVehicleParams *params) m_sQueueSample.m_counter = 61; m_sQueueSample.m_nSampleIndex = SFX_REVERSE_GEAR; } - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 3; m_sQueueSample.m_nFrequency = (6000.f * modificator) + 7000; m_sQueueSample.m_nLoopCount = 0; @@ -6635,12 +6635,12 @@ cAudioManager::ProcessReverseGear(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 5; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } - return 1; + return true; } void @@ -6665,10 +6665,10 @@ cAudioManager::ProcessSawMillScriptObject(uint8 sound) ComputeVolume(30, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_nSampleIndex = SFX_SAWMILL_LOOP; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SAWMILL_LOOP); m_sQueueSample.m_counter = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.field_56 = 0; m_sQueueSample.field_16 = 5; @@ -6677,8 +6677,8 @@ cAudioManager::ProcessSawMillScriptObject(uint8 sound) m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } time = CTimer::GetTimeInMilliseconds(); @@ -6687,19 +6687,19 @@ cAudioManager::ProcessSawMillScriptObject(uint8 sound) ComputeVolume(70, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_nSampleIndex = SFX_SAWMILL_CUT_WOOD; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_counter = 1; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.field_56 = 1; m_sQueueSample.field_16 = 3; m_sQueueSample.field_48 = 2.0f; m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); gSawMillNextTime = time + 2000 + m_anRandomTable[3] % 4000; } @@ -6743,10 +6743,10 @@ cAudioManager::ProcessShopScriptObject(uint8 sound) ComputeVolume(30, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_nSampleIndex = SFX_SHOP_LOOP; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_SHOP_LOOP); m_sQueueSample.m_counter = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.field_56 = 0; m_sQueueSample.field_16 = 5; @@ -6755,8 +6755,8 @@ cAudioManager::ProcessShopScriptObject(uint8 sound) m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } time = CTimer::GetTimeInMilliseconds(); @@ -6766,11 +6766,11 @@ cAudioManager::ProcessShopScriptObject(uint8 sound) if(m_sQueueSample.m_bVolume) { rand = m_anRandomTable[1] & 1; m_sQueueSample.m_nSampleIndex = rand + SFX_SHOP_TILL_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_counter = rand + 1; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.field_56 = 1; m_sQueueSample.field_16 = 3; @@ -6778,8 +6778,8 @@ cAudioManager::ProcessShopScriptObject(uint8 sound) m_sQueueSample.m_bEmittingVolume = 70; m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); gShopNextTime = time + 3000 + m_anRandomTable[3] % 7000; } @@ -6817,7 +6817,7 @@ cAudioManager::ProcessTrainNoise(cVehicleParams *params) uint8 emittingVol; float speedMultipler; - if(params->m_fDistance >= 90000.f) return 0; + if(params->m_fDistance >= 90000.f) return false; if(params->m_fVelocityChange > 0.0f) { CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); @@ -6829,8 +6829,8 @@ cAudioManager::ProcessTrainNoise(cVehicleParams *params) if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 32; m_sQueueSample.m_nSampleIndex = SFX_TRAIN_FAR; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 2; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_TRAIN_FAR); @@ -6844,8 +6844,8 @@ cAudioManager::ProcessTrainNoise(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 300.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 3; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -6854,8 +6854,8 @@ cAudioManager::ProcessTrainNoise(cVehicleParams *params) if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 33; m_sQueueSample.m_nSampleIndex = SFX_TRAIN_NEAR; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 5; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_TRAIN_NEAR) + @@ -6868,13 +6868,13 @@ cAudioManager::ProcessTrainNoise(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 70.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 3; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } } - return 1; + return true; } void @@ -6975,7 +6975,7 @@ cAudioManager::ProcessVehicleDoors(cVehicleParams *params) int32 emittingVol; float velocity; - if(params->m_fDistance >= 1600.f) return 0; + if(params->m_fDistance >= 1600.f) return false; automobile = (CAutomobile *)params->m_pVehicle; CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); @@ -6995,8 +6995,8 @@ cAudioManager::ProcessVehicleDoors(cVehicleParams *params) m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency( m_sQueueSample.m_nSampleIndex) + RandomDisplacement(1000); - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 10; m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.m_bEmittingVolume = emittingVol; @@ -7005,15 +7005,15 @@ cAudioManager::ProcessVehicleDoors(cVehicleParams *params) m_sQueueSample.field_48 = 1.0f; m_sQueueSample.m_fSoundIntensity = 40.0f; m_sQueueSample.field_56 = 1; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 1; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = true; AddSampleToRequestedQueue(); } } } } } - return 1; + return true; } WRAPPER @@ -7040,8 +7040,8 @@ cAudioManager::ProcessVehicleHorn(cVehicleParams *params) m_sQueueSample.m_counter = 4; m_sQueueSample.m_nSampleIndex = CarSounds[params->m_nIndex].m_nHornSample; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 2; m_sQueueSample.m_nFrequency = CarSounds[params->m_nIndex].m_nHornFrequency; @@ -7055,8 +7055,8 @@ cAudioManager::ProcessVehicleHorn(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 40.0; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 3; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } return; @@ -7072,8 +7072,8 @@ cAudioManager::ProcessVehicleHorn(cVehicleParams *params) m_sQueueSample.m_counter = 4; m_sQueueSample.m_nSampleIndex = CarSounds[params->m_nIndex].m_nHornSample; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 2; m_sQueueSample.m_nFrequency = CarSounds[params->m_nIndex].m_nHornFrequency; @@ -7087,8 +7087,8 @@ cAudioManager::ProcessVehicleHorn(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 40.0; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 3; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -7109,7 +7109,7 @@ cAudioManager::ProcessVehicleReverseWarning(cVehicleParams *params) { CVehicle *veh = params->m_pVehicle; - if(params->m_fDistance >= 2500.f) return 0; + if(params->m_fDistance >= 2500.f) return false; if(veh->bEngineOn && veh->m_fGasPedal < 0.0f) { CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); @@ -7117,8 +7117,8 @@ cAudioManager::ProcessVehicleReverseWarning(cVehicleParams *params) if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 12; m_sQueueSample.m_nSampleIndex = SFX_REVERSE_WARNING; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 2; m_sQueueSample.m_nFrequency = (100 * m_sQueueSample.m_nEntityIndex & 1023) + @@ -7132,12 +7132,12 @@ cAudioManager::ProcessVehicleReverseWarning(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 50.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 3; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } - return 1; + return true; } bool @@ -7149,7 +7149,7 @@ cAudioManager::ProcessVehicleRoadNoise(cVehicleParams *params) int sampleFreq; float velocity; - if(params->m_fDistance >= 9025.f) return 0; + if(params->m_fDistance >= 9025.f) return false; if(params->m_pTransmission) { if(params->m_pVehicle->m_vecMoveSpeed.z) { velocity = Abs(params->m_fVelocityChange); @@ -7160,8 +7160,8 @@ cAudioManager::ProcessVehicleRoadNoise(cVehicleParams *params) m_sQueueSample.m_bVolume = ComputeVolume(emittingVol, 95.f, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 0; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 3; if(params->m_pVehicle->m_nSurfaceTouched == SURFACE_PUDDLE) { m_sQueueSample.m_nSampleIndex = SFX_BOAT_WATER_LOOP; @@ -7184,14 +7184,14 @@ cAudioManager::ProcessVehicleRoadNoise(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 95.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 4; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } } } - return 1; + return true; } void @@ -7225,8 +7225,8 @@ cAudioManager::ProcessVehicleSirenOrAlarm(cVehicleParams *params) m_sQueueSample.m_nSampleIndex = CarSounds[params->m_nIndex].m_nSirenOrAlarmSample; m_sQueueSample.m_nFrequency = CarSounds[params->m_nIndex].m_nSirenOrAlarmFrequency; } - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 1; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.m_bEmittingVolume = 80; @@ -7237,8 +7237,8 @@ cAudioManager::ProcessVehicleSirenOrAlarm(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 110.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 5; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); return; } @@ -7321,8 +7321,8 @@ cAudioManager::ProcessVehicleSkidding(cVehicleParams *params) break; } - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 8; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.m_bEmittingVolume = emittingVol; @@ -7333,8 +7333,8 @@ cAudioManager::ProcessVehicleSkidding(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 40.0; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 3; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -7353,13 +7353,13 @@ void cAudioManager::ProcessWaterCannon(int32) if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_fSoundIntensity = 900.0f; m_sQueueSample.m_nSampleIndex = SFX_JUMBO_TAXI; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = 15591; m_sQueueSample.field_16 = 5; m_sQueueSample.m_counter = i; m_sQueueSample.field_48 = 2.0f; m_sQueueSample.field_76 = 8; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.field_56 = 0; m_sQueueSample.m_bEmittingVolume = 50; @@ -7367,8 +7367,8 @@ void cAudioManager::ProcessWaterCannon(int32) SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -7385,12 +7385,12 @@ cAudioManager::ProcessWeather(int32 id) if(m_asAudioEntities[id].m_AudioEvents && m_asAudioEntities[id].m_awAudioEvent[0] == SOUND_LIGHTNING) { if(m_asAudioEntities[id].m_afVolume[0] >= 10.f) { m_sQueueSample.m_nSampleIndex = SFX_EXPLOSION_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = RandomDisplacement(500) + 4000; vol = (m_asAudioEntities[id].m_afVolume[0] - 10.f) + 40; } else { m_sQueueSample.m_nSampleIndex = SFX_EXPLOSION_2; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = RandomDisplacement(500) + 4000; vol = (m_asAudioEntities[id].m_afVolume[0]) + 35; } @@ -7400,14 +7400,14 @@ cAudioManager::ProcessWeather(int32 id) m_sQueueSample.m_counter = counter++; m_sQueueSample.field_16 = 0; m_sQueueSample.m_bOffset = (m_anRandomTable[2] & 15) + 55; - m_sQueueSample.m_bIsDistant = 1; + m_sQueueSample.m_bIsDistant = true; m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.field_56 = 1; m_sQueueSample.m_bEmittingVolume = m_sQueueSample.m_bVolume; m_sQueueSample.m_nLoopStart = 0; m_sQueueSample.m_nLoopEnd = -1; - m_sQueueSample.m_bReverbFlag = 0; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = false; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } if(CWeather::Rain > 0.0f && (!CCullZones::CamNoRain() || !CCullZones::PlayerNoRain())) { @@ -7416,18 +7416,18 @@ cAudioManager::ProcessWeather(int32 id) SampleManager.GetSampleBaseFrequency(SFX_RAIN); m_sQueueSample.m_bVolume = (uint8)(25.f * CWeather::Rain); m_sQueueSample.m_counter = 4; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.field_16 = 0; m_sQueueSample.m_bOffset = 63; - m_sQueueSample.m_bIsDistant = 1; + m_sQueueSample.m_bIsDistant = true; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 30; - m_sQueueSample.m_bReverbFlag = 0; + m_sQueueSample.m_bReverbFlag = false; m_sQueueSample.m_bEmittingVolume = m_sQueueSample.m_bVolume; m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -7441,7 +7441,7 @@ cAudioManager::ProcessWetRoadNoise(cVehicleParams *params) int freq; float velChange; - if(params->m_fDistance >= 900.f) return 0; + if(params->m_fDistance >= 900.f) return false; if(params->m_pTransmission) { if(params->m_pVehicle->m_vecMoveSpeed.z) { velChange = Abs(params->m_fVelocityChange); @@ -7454,8 +7454,8 @@ cAudioManager::ProcessWetRoadNoise(cVehicleParams *params) if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 1; m_sQueueSample.m_nSampleIndex = SFX_ROAD_NOISE; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 3; modificator = m_sQueueSample.m_fDistance * 1.f / 3.f * 0.5f; freq = SampleManager.GetSampleBaseFrequency(SFX_ROAD_NOISE); @@ -7470,14 +7470,14 @@ cAudioManager::ProcessWetRoadNoise(cVehicleParams *params) m_sQueueSample.m_fSoundIntensity = 30.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 4; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } } } - return 1; + return true; } void @@ -7501,10 +7501,10 @@ cAudioManager::ProcessWorkShopScriptObject(uint8 sound) ComputeVolume(30, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_nSampleIndex = SFX_WORKSHOP_1; - m_sQueueSample.m_bBankIndex = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_WORKSHOP_1); m_sQueueSample.m_counter = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.field_56 = 0; m_sQueueSample.field_16 = 5; @@ -7513,8 +7513,8 @@ cAudioManager::ProcessWorkShopScriptObject(uint8 sound) m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } } @@ -7745,15 +7745,15 @@ bool cAudioManager::SetupJumboEngineSound(uint8, int32) { EAXJMP(0x56F140); } bool cAudioManager::SetupJumboFlySound(uint8 emittingVol) { - if(m_sQueueSample.m_fDistance >= 440.0f) return 0; + if(m_sQueueSample.m_fDistance >= 440.0f) return false; int32 vol = ComputeVolume(emittingVol, 440.0f, m_sQueueSample.m_fDistance); m_sQueueSample.m_bVolume = vol; if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_nSampleIndex = SFX_JUMBO_DIST_FLY; m_sQueueSample.m_counter = 0; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 1; m_sQueueSample.m_bEmittingVolume = emittingVol; m_sQueueSample.m_nLoopCount = 0; @@ -7762,26 +7762,26 @@ cAudioManager::SetupJumboFlySound(uint8 emittingVol) m_sQueueSample.m_fSoundIntensity = 440.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_48 = 4.0f; - m_sQueueSample.m_bReverbFlag = 1; + m_sQueueSample.m_bReverbFlag = true; m_sQueueSample.field_76 = 5; m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex); AddSampleToRequestedQueue(); } - return 1; + return true; } bool cAudioManager::SetupJumboRumbleSound(uint8 emittingVol) { - if(m_sQueueSample.m_fDistance >= 240.f) return 0; + if(m_sQueueSample.m_fDistance >= 240.f) return false; m_sQueueSample.m_bVolume = ComputeVolume(emittingVol, 240.f, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 5; m_sQueueSample.m_nSampleIndex = SFX_JUMBO_RUMBLE; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 1; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = true; m_sQueueSample.field_16 = 1; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_JUMBO_RUMBLE); m_sQueueSample.m_nLoopCount = 0; @@ -7793,8 +7793,8 @@ cAudioManager::SetupJumboRumbleSound(uint8 emittingVol) m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 12; m_sQueueSample.m_bOffset = 0; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); m_sQueueSample.m_counter = 6; m_sQueueSample.m_nSampleIndex = SFX_JUMBO_RUMBLE; @@ -7802,13 +7802,13 @@ cAudioManager::SetupJumboRumbleSound(uint8 emittingVol) m_sQueueSample.m_bOffset = maxVolume; AddSampleToRequestedQueue(); } - return 1; + return true; } bool cAudioManager::SetupJumboTaxiSound(uint8 vol) { - if(m_sQueueSample.m_fDistance >= 180.f) return 0; + if(m_sQueueSample.m_fDistance >= 180.f) return false; uint8 emittingVol = (vol >> 1) + ((vol >> 1) * m_sQueueSample.m_fDistance / 180); @@ -7818,8 +7818,8 @@ cAudioManager::SetupJumboTaxiSound(uint8 vol) if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 1; m_sQueueSample.m_nSampleIndex = SFX_JUMBO_TAXI; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 1; m_sQueueSample.m_nFrequency = GetJumboTaxiFreq(); m_sQueueSample.m_nLoopCount = 0; @@ -7830,25 +7830,25 @@ cAudioManager::SetupJumboTaxiSound(uint8 vol) m_sQueueSample.m_fSoundIntensity = 180.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 4; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } - return 1; + return true; } bool cAudioManager::SetupJumboWhineSound(uint8 emittingVol, int32 freq) { - if(m_sQueueSample.m_fDistance >= 170.f) return 0; + if(m_sQueueSample.m_fDistance >= 170.f) return false; m_sQueueSample.m_bVolume = ComputeVolume(emittingVol, 170.f, m_sQueueSample.m_fDistance); if(m_sQueueSample.m_bVolume) { m_sQueueSample.m_counter = 2; m_sQueueSample.m_nSampleIndex = SFX_JUMBO_WHINE; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 0; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = false; m_sQueueSample.field_16 = 1; m_sQueueSample.m_nFrequency = freq; m_sQueueSample.m_nLoopCount = 0; @@ -7859,11 +7859,11 @@ cAudioManager::SetupJumboWhineSound(uint8 emittingVol, int32 freq) m_sQueueSample.m_fSoundIntensity = 170.0f; m_sQueueSample.field_56 = 0; m_sQueueSample.field_76 = 4; - m_sQueueSample.m_bReverbFlag = 1; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bReverbFlag = true; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } - return 1; + return true; } void diff --git a/src/audio/AudioManager.h b/src/audio/AudioManager.h index dff1948f..f48a0b38 100644 --- a/src/audio/AudioManager.h +++ b/src/audio/AudioManager.h @@ -140,7 +140,7 @@ public: int32 m_counter; int32 m_nSampleIndex; uint8 m_bBankIndex; - uint8 m_bIsDistant; + bool m_bIsDistant; uint8 field_14; uint8 field_15; int32 field_16; @@ -164,9 +164,9 @@ public: uint8 field_58; uint8 field_59; CVector m_vecPos; - uint8 m_bReverbFlag; + bool m_bReverbFlag; uint8 m_bLoopsRemaining; - uint8 m_bRequireReflection; + bool m_bRequireReflection; uint8 m_bOffset; int32 field_76; uint8 m_bIsProcessed; diff --git a/src/audio/PoliceRadio.cpp b/src/audio/PoliceRadio.cpp index d90ed4b4..42ad3829 100644 --- a/src/audio/PoliceRadio.cpp +++ b/src/audio/PoliceRadio.cpp @@ -124,8 +124,8 @@ cAudioManager::DoPoliceRadioCrackle() m_sQueueSample.m_nEntityIndex = m_nPoliceChannelEntity; m_sQueueSample.m_counter = 0; m_sQueueSample.m_nSampleIndex = SFX_POLICE_RADIO_CRACKLE; - m_sQueueSample.m_bBankIndex = 0; - m_sQueueSample.m_bIsDistant = 1; + m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; + m_sQueueSample.m_bIsDistant = true; m_sQueueSample.field_16 = 10; m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_POLICE_RADIO_CRACKLE); m_sQueueSample.m_bVolume = m_anRandomTable[2] % 20 + 15; @@ -134,10 +134,10 @@ cAudioManager::DoPoliceRadioCrackle() m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(SFX_POLICE_RADIO_CRACKLE); m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(SFX_POLICE_RADIO_CRACKLE); m_sQueueSample.field_56 = 0; - m_sQueueSample.m_bReverbFlag = 0; + m_sQueueSample.m_bReverbFlag = false; m_sQueueSample.m_bOffset = 63; m_sQueueSample.field_76 = 3; - m_sQueueSample.m_bRequireReflection = 0; + m_sQueueSample.m_bRequireReflection = false; AddSampleToRequestedQueue(); } diff --git a/src/audio/sampman.h b/src/audio/sampman.h index ae27cdbf..4b546911 100644 --- a/src/audio/sampman.h +++ b/src/audio/sampman.h @@ -17,6 +17,7 @@ enum SAMPLEBANK_MAIN, SAMPLEBANK_PED, MAX_SAMPLEBANKS, + SAMPLEBANK_INVALID }; #define MAX_PEDSFX 7 From 03b995c6efb4b6b559b61dd0f789b16c0d8b474f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?eray=20or=C3=A7unus?= Date: Sun, 2 Feb 2020 16:51:33 +0300 Subject: [PATCH 2/9] Some fixes and some cosmetic things --- src/control/Garages.cpp | 4 ++-- src/control/Garages.h | 2 +- src/control/Script.cpp | 2 +- src/core/re3.cpp | 1 - src/peds/Ped.cpp | 12 ++++-------- src/peds/Ped.h | 1 - src/render/Renderer.cpp | 8 ++++---- src/render/VisibilityPlugins.cpp | 2 +- 8 files changed, 13 insertions(+), 19 deletions(-) diff --git a/src/control/Garages.cpp b/src/control/Garages.cpp index dc77a154..04bfb5a2 100644 --- a/src/control/Garages.cpp +++ b/src/control/Garages.cpp @@ -93,11 +93,11 @@ int32 CGarages::QueryCarsCollected(int16 garage) void CGarages::GivePlayerDetonator() { FindPlayerPed()->GiveWeapon(WEAPONTYPE_DETONATOR, 1); - FindPlayerPed()->m_weapons[FindPlayerPed()->GetWeaponSlot(WEAPONTYPE_DETONATOR)].m_eWeaponState = WEAPONSTATE_READY; + FindPlayerPed()->GetWeapon(FindPlayerPed()->GetWeaponSlot(WEAPONTYPE_DETONATOR)).m_eWeaponState = WEAPONSTATE_READY; } WRAPPER bool CGarages::HasThisCarBeenCollected(int16 garage, uint8 id) { EAXJMP(0x426D50); } -WRAPPER void CGarages::ChangeGarageType(int16 garage, eGarageType type) { EAXJMP(0x4222A0); } +WRAPPER void CGarages::ChangeGarageType(int16 garage, eGarageType type, int32 unk) { EAXJMP(0x4222A0); } WRAPPER bool CGarages::HasResprayHappened(int16 garage) { EAXJMP(0x4274F0); } void CGarage::OpenThisGarage() diff --git a/src/control/Garages.h b/src/control/Garages.h index 945922fe..7cb25445 100644 --- a/src/control/Garages.h +++ b/src/control/Garages.h @@ -146,7 +146,7 @@ public: static void DeActivateGarage(int16); static int32 QueryCarsCollected(int16); static bool HasThisCarBeenCollected(int16, uint8); - static void ChangeGarageType(int16, eGarageType); + static void ChangeGarageType(int16, eGarageType, int32); static bool HasResprayHappened(int16); static void GivePlayerDetonator(); }; diff --git a/src/control/Script.cpp b/src/control/Script.cpp index a3d4a747..84d4f179 100644 --- a/src/control/Script.cpp +++ b/src/control/Script.cpp @@ -6176,7 +6176,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command) } case COMMAND_CHANGE_GARAGE_TYPE: CollectParameters(&m_nIp, 2); - CGarages::ChangeGarageType(ScriptParams[0], (eGarageType)ScriptParams[1]); + CGarages::ChangeGarageType(ScriptParams[0], (eGarageType)ScriptParams[1], 0); return 0; case COMMAND_ACTIVATE_CRUSHER_CRANE: { diff --git a/src/core/re3.cpp b/src/core/re3.cpp index d3b8200d..989a05b5 100644 --- a/src/core/re3.cpp +++ b/src/core/re3.cpp @@ -350,7 +350,6 @@ DebugMenuPopulate(void) DebugMenuAddCmd("Debug", "Make peds follow you in formation", LetThemFollowYou); #ifdef TOGGLEABLE_BETA_FEATURES - DebugMenuAddVarBool8("Debug", "Toggle unused fight feature", (int8*)&CPed::bUnusedFightThingOnPlayer, nil); DebugMenuAddVarBool8("Debug", "Toggle banned particles", (int8*)&CParticle::bEnableBannedParticles, nil); DebugMenuAddVarBool8("Debug", "Toggle popping heads on headshot", (int8*)&CPed::bPopHeadsOnHeadshot, nil); DebugMenuAddVarBool8("Debug", "Toggle peds running to phones to report crimes", (int8*)&CPed::bMakePedsRunToPhonesToReportCrimes, nil); diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index 797262d4..f7578bac 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -273,7 +273,6 @@ static char WaitStateText[][16] = { }; #ifdef TOGGLEABLE_BETA_FEATURES -bool CPed::bUnusedFightThingOnPlayer = false; bool CPed::bPopHeadsOnHeadshot = false; bool CPed::bMakePedsRunToPhonesToReportCrimes = false; #endif @@ -1068,6 +1067,7 @@ CPed::FinishedAttackCB(CAnimBlendAssociation *attackAssoc, void *arg) if (attackAssoc) { switch (attackAssoc->animId) { case ANIM_WEAPON_START_THROW: + // what?! if ((!ped->IsPlayer() || ((CPlayerPed*)ped)->m_bHaveTargetSelected) && ped->IsPlayer()) { attackAssoc->blendDelta = -1000.0f; newAnim = CAnimManager::AddAnimation(ped->GetClump(), ASSOCGRP_STD, ANIM_WEAPON_THROWU); @@ -1929,13 +1929,13 @@ CPed::LineUpPedWithCar(PedLineUpPhase phase) float limitedDest = CGeneral::LimitRadianAngle(m_fRotationDest); float timeUntilStateChange = (m_nPedStateTimer - CTimer::GetTimeInMilliseconds())/600.0f; - m_vecOffsetSeek.z = 0.0f; if (timeUntilStateChange <= 0.0f) { m_vecOffsetSeek.x = 0.0f; m_vecOffsetSeek.y = 0.0f; - } else { - neededPos -= timeUntilStateChange * m_vecOffsetSeek; } + m_vecOffsetSeek.z = 0.0f; + + neededPos -= timeUntilStateChange * m_vecOffsetSeek; if (PI + m_fRotationCur < limitedDest) { limitedDest -= 2 * PI; @@ -4827,10 +4827,6 @@ CPed::StartFightAttack(uint8 buttonPressure) animAssoc->SetFinishCallback(FinishFightMoveCB, this); m_fightState = FIGHTSTATE_NO_MOVE; m_takeAStepAfterAttack = false; -#ifdef TOGGLEABLE_BETA_FEATURES - m_takeAStepAfterAttack = IsPlayer() && bUnusedFightThingOnPlayer; -#endif - bIsAttacking = true; if (IsPlayer()) diff --git a/src/peds/Ped.h b/src/peds/Ped.h index b421bc83..50c1fc39 100644 --- a/src/peds/Ped.h +++ b/src/peds/Ped.h @@ -824,7 +824,6 @@ public: static CPedAudioData (&CommentWaitTime)[38]; #ifdef TOGGLEABLE_BETA_FEATURES - static bool bUnusedFightThingOnPlayer; static bool bPopHeadsOnHeadshot; static bool bMakePedsRunToPhonesToReportCrimes; #endif diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 78a4e5b4..ff9f5755 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -413,7 +413,7 @@ CRenderer::SetupEntityVisibility(CEntity *ent) // Make sure our atomic uses the right geometry and not // that of an atomic for another draw distance. if(RpAtomicGetGeometry(a) != RpAtomicGetGeometry(rwobj)) - RpAtomicSetGeometry(rwobj, RpAtomicGetGeometry(a), 0); + RpAtomicSetGeometry(rwobj, RpAtomicGetGeometry(a), rpATOMICSAMEBOUNDINGSPHERE); // originally 5 (mistake?) mi->IncreaseAlpha(); if(ent->m_rwObject == nil || !ent->bIsVisible) return VIS_INVISIBLE; @@ -463,7 +463,7 @@ CRenderer::SetupEntityVisibility(CEntity *ent) assert(ent->m_rwObject); RpAtomic *rwobj = (RpAtomic*)ent->m_rwObject; if(RpAtomicGetGeometry(a) != RpAtomicGetGeometry(rwobj)) - RpAtomicSetGeometry(rwobj, RpAtomicGetGeometry(a), 0); + RpAtomicSetGeometry(rwobj, RpAtomicGetGeometry(a), rpATOMICSAMEBOUNDINGSPHERE); // originally 5 (mistake?) mi->IncreaseAlpha(); if(ent->m_rwObject == nil || !ent->bIsVisible) return VIS_INVISIBLE; @@ -528,7 +528,7 @@ CRenderer::SetupBigBuildingVisibility(CEntity *ent) // Make sure our atomic uses the right geometry and not // that of an atomic for another draw distance. if(RpAtomicGetGeometry(a) != RpAtomicGetGeometry(rwobj)) - RpAtomicSetGeometry(rwobj, RpAtomicGetGeometry(a), 0); + RpAtomicSetGeometry(rwobj, RpAtomicGetGeometry(a), rpATOMICSAMEBOUNDINGSPHERE); // originally 5 (mistake?) if(!ent->IsVisibleComplex()) return 0; if(mi->m_drawLast){ @@ -558,7 +558,7 @@ CRenderer::SetupBigBuildingVisibility(CEntity *ent) assert(ent->m_rwObject); RpAtomic *rwobj = (RpAtomic*)ent->m_rwObject; if(RpAtomicGetGeometry(a) != RpAtomicGetGeometry(rwobj)) - RpAtomicSetGeometry(rwobj, RpAtomicGetGeometry(a), 0); + RpAtomicSetGeometry(rwobj, RpAtomicGetGeometry(a), rpATOMICSAMEBOUNDINGSPHERE); // originally 5 (mistake?) if(ent->IsVisibleComplex()) CVisibilityPlugins::InsertEntityIntoSortedList(ent, dist); return 0; diff --git a/src/render/VisibilityPlugins.cpp b/src/render/VisibilityPlugins.cpp index bbaa08ce..e01bbb92 100644 --- a/src/render/VisibilityPlugins.cpp +++ b/src/render/VisibilityPlugins.cpp @@ -248,7 +248,7 @@ CVisibilityPlugins::RenderFadingAtomic(RpAtomic *atomic, float camdist) RpGeometrySetFlags(geo, flags | rpGEOMETRYMODULATEMATERIALCOLOR); RpGeometryForAllMaterials(geo, SetAlphaCB, (void*)alpha); if(geo != RpAtomicGetGeometry(atomic)) - RpAtomicSetGeometry(atomic, geo, 0); + RpAtomicSetGeometry(atomic, geo, rpATOMICSAMEBOUNDINGSPHERE); // originally 5 (mistake?) AtomicDefaultRenderCallBack(atomic); RpGeometryForAllMaterials(geo, SetAlphaCB, (void*)255); RpGeometrySetFlags(geo, flags); From ce0687db27ddd244c0f046cb0c8229f335aae571 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?eray=20or=C3=A7unus?= Date: Mon, 3 Feb 2020 21:03:48 +0300 Subject: [PATCH 3/9] A bug fix and VC ports for veh. enter/exit --- src/peds/Ped.cpp | 65 ++++++++++++++++++++++++++++++------- src/vehicles/Automobile.cpp | 4 +++ 2 files changed, 57 insertions(+), 12 deletions(-) diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index f7578bac..922de3ce 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -718,7 +718,7 @@ CheckForPedsOnGroundToAttack(CPed *attacker, CPed **pedOnGround) } if (pedOnGround) - * pedOnGround = currentPed; + *pedOnGround = currentPed; return stateToReturn; } @@ -11060,6 +11060,7 @@ CPed::PedAnimPullPedOutCB(CAnimBlendAssociation* animAssoc, void* arg) int padNo; if (ped->IsPlayer()) { + // BUG? This will cause crash if m_nPedType is bigger then 1, there are only 2 pads switch (ped->m_nPedType) { case PEDTYPE_PLAYER1: padNo = 0; @@ -11073,9 +11074,6 @@ CPed::PedAnimPullPedOutCB(CAnimBlendAssociation* animAssoc, void* arg) case PEDTYPE_PLAYER4: padNo = 3; break; - default: - // FIX: that was "break" - return; } CPad *pad = CPad::GetPad(padNo); @@ -11175,6 +11173,7 @@ CPed::PedAnimStepOutCarCB(CAnimBlendAssociation* animAssoc, void* arg) int padNo; if (ped->IsPlayer()) { + // BUG? This will cause crash if m_nPedType is bigger then 1, there are only 2 pads switch (ped->m_nPedType) { case PEDTYPE_PLAYER1: padNo = 0; @@ -11188,9 +11187,6 @@ CPed::PedAnimStepOutCarCB(CAnimBlendAssociation* animAssoc, void* arg) case PEDTYPE_PLAYER4: padNo = 3; break; - default: - // FIX: that was "break" - return; } CPad* pad = CPad::GetPad(padNo); bool engineIsIntact = false; @@ -11417,6 +11413,34 @@ CPed::PedSetInCarCB(CAnimBlendAssociation *animAssoc, void *arg) if (!veh) return; +#ifdef VC_PED_PORTS + // Situation of entering car as a driver while there is already a driver exiting atm. + CPed *driver = veh->pDriver; + if (driver && driver->m_nPedState == PED_DRIVING && !veh->bIsBus && driver->m_objective == OBJECTIVE_LEAVE_VEHICLE + && (ped->m_objective == OBJECTIVE_ENTER_CAR_AS_DRIVER || ped->m_nPedState == PED_CARJACK)) { + + if (!ped->IsPlayer() && (ped->CharCreatedBy != MISSION_CHAR || driver->IsPlayer())) { + ped->QuitEnteringCar(); + return; + } + if (driver->CharCreatedBy == MISSION_CHAR) { + PedSetOutCarCB(nil, veh->pDriver); + if (driver->m_pMyVehicle) { + driver->PositionPedOutOfCollision(); + } else { + driver->m_pMyVehicle = veh; + driver->PositionPedOutOfCollision(); + driver->m_pMyVehicle = nil; + } + veh->pDriver = nil; + } else { + driver->SetDead(); + driver->FlagToDestroyWhenNextProcessed(); + veh->pDriver = nil; + } + } +#endif + if (!ped->IsNotInWreckedVehicle() || ped->DyingOrDead()) return; @@ -11446,7 +11470,7 @@ CPed::PedSetInCarCB(CAnimBlendAssociation *animAssoc, void *arg) if (veh->IsBoat()) { if (ped->IsPlayer()) { -#ifdef VC_PED_PORTS +#if defined(FIX_BUGS) || defined(VC_PED_PORTS) CCarCtrl::RegisterVehicleOfInterest(veh); #endif if (veh->m_status == STATUS_SIMPLE) { @@ -11499,7 +11523,10 @@ CPed::PedSetInCarCB(CAnimBlendAssociation *animAssoc, void *arg) #endif } } - } else if (ped->m_objective == OBJECTIVE_ENTER_CAR_AS_PASSENGER) { + } + // This shouldn't happen at all. Passengers can't enter with PED_CARJACK. Even though they did, we shouldn't call AddPassenger in here and SetDriver in below. +#ifndef VC_PED_PORTS + else if (ped->m_objective == OBJECTIVE_ENTER_CAR_AS_PASSENGER) { if (ped->m_nPedState == PED_CARJACK) { veh->AddPassenger(ped, 0); ped->m_nPedState = PED_DRIVING; @@ -11509,6 +11536,7 @@ CPed::PedSetInCarCB(CAnimBlendAssociation *animAssoc, void *arg) veh->AutoPilot.m_nCruiseSpeed = 17; } } +#endif if (ped->m_objective == OBJECTIVE_ENTER_CAR_AS_DRIVER || ped->m_nPedState == PED_CARJACK) { veh->SetDriver(ped); @@ -11572,6 +11600,10 @@ CPed::PedSetInCarCB(CAnimBlendAssociation *animAssoc, void *arg) ped->m_prevObjective = OBJECTIVE_NONE; ped->RestorePreviousObjective(); +#ifdef VC_PED_PORTS + if(veh->pDriver && ped->CharCreatedBy == RANDOM_CHAR) + veh->AutoPilot.m_nCruiseSpeed = 17; +#endif } veh->m_nGettingInFlags &= ~GetCarDoorFlag(ped->m_vehEnterType); @@ -13098,13 +13130,22 @@ CPed::ProcessObjective(void) m_objectiveTimer = 0; } } + // fall through } case OBJECTIVE_ENTER_CAR_AS_DRIVER: { if (!m_carInObjective || bInVehicle) { - bObjectiveCompleted = true; - bScriptObjectiveCompleted = true; - RestorePreviousState(); +#ifdef VC_PED_PORTS + if (bInVehicle && m_pMyVehicle != m_carInObjective) + { + SetExitCar(m_pMyVehicle, 0); + } +#endif + { + bObjectiveCompleted = true; + bScriptObjectiveCompleted = true; + RestorePreviousState(); + } } else { if (m_leaveCarTimer > CTimer::GetTimeInMilliseconds()) { SetMoveState(PEDMOVE_STILL); diff --git a/src/vehicles/Automobile.cpp b/src/vehicles/Automobile.cpp index d6032457..a79f619c 100644 --- a/src/vehicles/Automobile.cpp +++ b/src/vehicles/Automobile.cpp @@ -3885,6 +3885,9 @@ CAutomobile::IsRoomForPedToLeaveCar(uint32 component, CVector *doorOffset) } CVector dist = doorPos - seatPos; + + // Removing that makes this func. return false for van doors. + doorPos.z += 0.5f; float length = dist.Magnitude(); CVector pedPos = seatPos + dist*((length+0.6f)/length); @@ -4193,6 +4196,7 @@ GetCurrentAtomicObjectCB(RwObject *object, void *data) } CColPoint aTempPedColPts[32]; // this name doesn't make any sense + // they probably copied it from Ped (both serves same purpose) and didn't change the name CObject* CAutomobile::SpawnFlyingComponent(int32 component, uint32 type) From 9896217608d15453d3e2fe0c7a21c16591d0ab49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?eray=20or=C3=A7unus?= Date: Tue, 4 Feb 2020 00:27:48 +0300 Subject: [PATCH 4/9] few little things --- src/peds/Ped.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index 922de3ce..543dae57 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -2120,18 +2120,16 @@ CPed::SortPeds(CPed **list, int min, int max) int left = max; int right; for(right = min; right <= left; ){ - // Those 1.0s are my addition to make sure loop always run for first time. - for (float rightDist = middleDist-1.0f; middleDist > rightDist; right++) { + float rightDist, leftDist; + do { rightDiff = GetPosition() - list[right]->GetPosition(); rightDist = rightDiff.Magnitude(); - } - right--; + } while (middleDist > rightDist && ++right); - for (float leftDist = middleDist+1.0f; middleDist < leftDist; left--) { + do { leftDiff = GetPosition() - list[left]->GetPosition(); leftDist = leftDiff.Magnitude(); - } - left++; + } while (middleDist < leftDist && left--); if (right <= left) { CPed *ped = list[right]; @@ -13136,10 +13134,9 @@ CPed::ProcessObjective(void) { if (!m_carInObjective || bInVehicle) { #ifdef VC_PED_PORTS - if (bInVehicle && m_pMyVehicle != m_carInObjective) - { + if (bInVehicle && m_pMyVehicle != m_carInObjective) { SetExitCar(m_pMyVehicle, 0); - } + } else #endif { bObjectiveCompleted = true; From f1863676bbd3d99d70ab3160dad325d851550567 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Tue, 4 Feb 2020 22:05:17 +0200 Subject: [PATCH 5/9] CullZone fix --- src/core/ZoneCull.cpp | 6 +++--- src/render/VisibilityPlugins.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/core/ZoneCull.cpp b/src/core/ZoneCull.cpp index 7b22a550..4a2bea4f 100644 --- a/src/core/ZoneCull.cpp +++ b/src/core/ZoneCull.cpp @@ -462,7 +462,7 @@ CCullZone::DoStuffEnteringZone_OneBuilding(uint16 i) }else{ i -= 6000; for(j = 0; j < 3; j++) - DoStuffLeavingZone_OneBuilding(CCullZones::aIndices[i+j]); + DoStuffEnteringZone_OneBuilding(CCullZones::aIndices[i+j]); } } @@ -481,7 +481,7 @@ CCullZone::DoStuffEnteringZone_OneTreadablePlus10m(uint16 i) }else{ i -= 6000; for(j = 0; j < 3; j++) - DoStuffLeavingZone_OneBuilding(CCullZones::aIndices[i+j]); + DoStuffEnteringZone_OneTreadablePlus10m(CCullZones::aIndices[i+j]); } } @@ -499,7 +499,7 @@ CCullZone::DoStuffEnteringZone_OneTreadable(uint16 i) }else{ i -= 6000; for(j = 0; j < 3; j++) - DoStuffLeavingZone_OneBuilding(CCullZones::aIndices[i+j]); + DoStuffEnteringZone_OneTreadable(CCullZones::aIndices[i+j]); } } diff --git a/src/render/VisibilityPlugins.cpp b/src/render/VisibilityPlugins.cpp index e01bbb92..74cd2590 100644 --- a/src/render/VisibilityPlugins.cpp +++ b/src/render/VisibilityPlugins.cpp @@ -44,7 +44,7 @@ CVisibilityPlugins::Initialise(void) m_alphaList.Init(20); m_alphaList.head.item.sort = 0.0f; m_alphaList.tail.item.sort = 100000000.0f; - m_alphaEntityList.Init(350); // TODO: set back to 150 when things are fixed + m_alphaEntityList.Init(150); m_alphaEntityList.head.item.sort = 0.0f; m_alphaEntityList.tail.item.sort = 100000000.0f; } From a3e5ccde474297ab7c3fb509dcb08c4fc2f9c7be Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Thu, 6 Feb 2020 19:35:24 +0200 Subject: [PATCH 6/9] cMusicManager --- src/audio/AudioManager.h | 1 + src/audio/DMAudio.cpp | 2 +- src/audio/DMAudio.h | 2 +- src/audio/MusicManager.cpp | 867 ++++++++++++++++++++++++++++++++---- src/audio/MusicManager.h | 64 +-- src/audio/audio_enums.h | 400 ++++++++--------- src/core/Camera.h | 1 + src/core/ControllerConfig.h | 2 + src/core/World.cpp | 5 +- src/skel/win/win.cpp | 2 +- 10 files changed, 1024 insertions(+), 322 deletions(-) diff --git a/src/audio/AudioManager.h b/src/audio/AudioManager.h index f48a0b38..bd34c800 100644 --- a/src/audio/AudioManager.h +++ b/src/audio/AudioManager.h @@ -337,6 +337,7 @@ public: uint32 GetFrameCounter() const { return m_nTimeOfRecentCrime; } float GetReflectionsDistance(int32 idx) const { return m_afReflectionsDistances[idx]; } int32 GetRandomNumber(int32 idx) const { return m_anRandomTable[idx]; } + bool IsMissionAudioPlaying() const { return m_sMissionAudio.m_bPlayStatus == 1; } // "Should" be in alphabetic order, except "getXTalkSfx" void AddDetailsToRequestedOrderList(uint8 sample); /// ok (check once more) diff --git a/src/audio/DMAudio.cpp b/src/audio/DMAudio.cpp index 25b20179..a01c85ae 100644 --- a/src/audio/DMAudio.cpp +++ b/src/audio/DMAudio.cpp @@ -301,7 +301,7 @@ cDMAudio::ClearMissionAudio(void) AudioManager.ClearMissionAudio(); } -int32 +uint8 cDMAudio::GetRadioInCar(void) { return MusicManager.GetRadioInCar(); diff --git a/src/audio/DMAudio.h b/src/audio/DMAudio.h index a6910b58..125263f0 100644 --- a/src/audio/DMAudio.h +++ b/src/audio/DMAudio.h @@ -253,7 +253,7 @@ public: bool IsMissionAudioSampleFinished(void); void ClearMissionAudio(void); - int32 GetRadioInCar(void); + uint8 GetRadioInCar(void); void SetRadioInCar(uint32 radio); void SetRadioChannel(int8 radio, int32 pos); }; diff --git a/src/audio/MusicManager.cpp b/src/audio/MusicManager.cpp index 1d059a46..5b94514b 100644 --- a/src/audio/MusicManager.cpp +++ b/src/audio/MusicManager.cpp @@ -1,5 +1,8 @@ #include "common.h" +#include #include "MusicManager.h" +#include "AudioManager.h" +#include "ControllerConfig.h" #include "Camera.h" #include "Font.h" #include "Hud.h" @@ -15,35 +18,51 @@ cMusicManager &MusicManager = *(cMusicManager *)0x8F3964; int32 &gNumRetunePresses = *(int32 *)0x650B80; wchar *pCurrentStation = (wchar *)0x650B9C; uint8 &cDisplay = *(uint8 *)0x650BA1; +int32 &gRetuneCounter = *(int32*)0x650B84; +bool& bHasStarted = *(bool*)0x650B7C; + +cMusicManager::cMusicManager() +{ + m_bIsInitialised = false; + m_bDisabled = false; + m_nMusicMode = MUSICMODE_DISABLED; + m_nCurrentStreamedSound = NO_STREAMED_SOUND; + m_nPreviousStreamedSound = NO_STREAMED_SOUND; + m_bFrontendTrackFinished = false; + m_bPlayInFrontend = false; + m_bSetNextStation = false; + m_nAnnouncement = NO_STREAMED_SOUND; + m_bPreviousPlayerInCar = false; + m_bPlayerInCar = false; + m_bAnnouncementInProgress = false; + m_bDontServiceAmbienceTrack = false; + bHasStarted = false; +} bool cMusicManager::PlayerInCar() { if(!FindPlayerVehicle()) return false; - else { - int32 State = CWorld::Players[CWorld::PlayerInFocus].m_pPed->m_nPedState; - if(State == PED_DRAG_FROM_CAR || State == PED_EXIT_CAR || State == PED_ARRESTED) - return false; + int32 State = FindPlayerPed()->m_nPedState; - switch(FindPlayerVehicle()->m_modelIndex) { - case MI_FIRETRUCK: - case MI_AMBULAN: - case MI_MRWHOOP: - case MI_PREDATOR: - case MI_TRAIN: - case MI_SPEEDER: - case MI_REEFER: - case MI_GHOST: return false; - default: return true; - } + if(State == PED_DRAG_FROM_CAR || State == PED_EXIT_CAR || State == PED_ARRESTED) + return false; + + switch(FindPlayerVehicle()->m_modelIndex) { + case MI_FIRETRUCK: + case MI_AMBULAN: + case MI_MRWHOOP: + case MI_PREDATOR: + case MI_TRAIN: + case MI_SPEEDER: + case MI_REEFER: + case MI_GHOST: return false; + default: return true; } } -#if 0 -WRAPPER void cMusicManager::DisplayRadioStationName(void) { EAXJMP(0x57E6D0); } -#else void cMusicManager::DisplayRadioStationName() { @@ -51,13 +70,13 @@ cMusicManager::DisplayRadioStationName() int8 gStreamedSound; int8 gRetuneCounter; - if(!CTimer::GetIsPaused() && !TheCamera.m_WideScreenOn && cMusicManager::PlayerInCar() && + if(!CTimer::GetIsPaused() && !TheCamera.m_WideScreenOn && PlayerInCar() && !CReplay::IsPlayingBack()) { - if(MusicManager.m_bPlayerInCar && !MusicManager.m_bPreviousPlayerInCar) + if(m_bPlayerInCar && !m_bPreviousPlayerInCar) pCurrentStation = nil; if(SampleManager.IsMP3RadioChannelAvailable()) { - gStreamedSound = MusicManager.m_nCurrentStreamedSound; + gStreamedSound = m_nCurrentStreamedSound; if(gStreamedSound == STREAMED_SOUND_CITY_AMBIENT || gStreamedSound == STREAMED_SOUND_WATER_AMBIENT) { @@ -74,15 +93,15 @@ cMusicManager::DisplayRadioStationName() if(pRetune == POLICE_RADIO) { pRetune = RADIO_OFF; } else if(pRetune > POLICE_RADIO) { - pRetune = pRetune - 11; + pRetune = pRetune - RADIO_OFF; } } else { - gStreamedSound = MusicManager.m_nCurrentStreamedSound; + gStreamedSound = m_nCurrentStreamedSound; pRetune = gNumRetunePresses + gStreamedSound; if(pRetune >= USERTRACK) { gRetuneCounter = gNumRetunePresses; - pRetune = MusicManager.m_nCurrentStreamedSound; + pRetune = m_nCurrentStreamedSound; if(gStreamedSound == STREAMED_SOUND_WATER_AMBIENT) pRetune = RADIO_OFF; @@ -119,13 +138,13 @@ cMusicManager::DisplayRadioStationName() if(pRetune > CHATTERBOX && !SampleManager.IsMP3RadioChannelAvailable()) { return; } if(string && pCurrentStation != string || - MusicManager.m_nCurrentStreamedSound == STREAMED_SOUND_RADIO_MP3_PLAYER && - MusicManager.m_nPreviousStreamedSound != STREAMED_SOUND_RADIO_MP3_PLAYER) { + m_nCurrentStreamedSound == STREAMED_SOUND_RADIO_MP3_PLAYER && + m_nPreviousStreamedSound != STREAMED_SOUND_RADIO_MP3_PLAYER) { pCurrentStation = string; cDisplay = 60; } else { - if(!cDisplay) return; - --cDisplay; + if(cDisplay == 0) return; + cDisplay--; } CFont::SetJustifyOff(); @@ -147,97 +166,769 @@ cMusicManager::DisplayRadioStationName() CFont::DrawFonts(); } } -#endif -WRAPPER -void +bool cMusicManager::Initialise() { - EAXJMP(0x57CF70); + int pos; + + if (!IsInitialised()) { + time_t timevalue = time(0); + if (timevalue == -1) { + pos = AudioManager.GetRandomNumber(0); + } else { + tm *pTm = localtime(&timevalue); + if (pTm->tm_sec == 0) + pTm->tm_sec = AudioManager.GetRandomNumber(0); + if (pTm->tm_min == 0) + pTm->tm_min = AudioManager.GetRandomNumber(1); + if (pTm->tm_hour == 0) + pTm->tm_hour = AudioManager.GetRandomNumber(2); + if (pTm->tm_mday == 0) + pTm->tm_mday = AudioManager.GetRandomNumber(3); + if (pTm->tm_mon == 0) + pTm->tm_mon = AudioManager.GetRandomNumber(4); + if (pTm->tm_year == 0) + pTm->tm_year = AudioManager.GetRandomNumber(3); + if (pTm->tm_wday == 0) + pTm->tm_wday = AudioManager.GetRandomNumber(2); + pos = pTm->tm_yday + * pTm->tm_wday + * pTm->tm_year + * pTm->tm_mon + * pTm->tm_mday + * pTm->tm_hour * pTm->tm_hour + * pTm->tm_min * pTm->tm_min + * pTm->tm_sec * pTm->tm_sec * pTm->tm_sec * pTm->tm_sec; + } + + for (int i = 0; i < TOTAL_STREAMED_SOUNDS; i++) { + m_aTracks[i].m_nLength = SampleManager.GetStreamedFileLength(i); + m_aTracks[i].m_nPosition = pos * AudioManager.GetRandomNumber(i % 5) % m_aTracks[i].m_nLength; + m_aTracks[i].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + } + + m_bResetTimers = false; + m_nResetTime = 0; + m_nTimer = m_nLastTrackServiceTime = CTimer::GetTimeInMillisecondsPauseMode(); + m_bDoTrackService = false; + m_bIgnoreTimeDelay = false; + m_bRadioSetByScript = false; + m_nRadioStation = HEAD_RADIO; + m_nRadioPosition = -1; + m_nRadioInCar = NO_STREAMED_SOUND; + gNumRetunePresses = 0; + gRetuneCounter = 0; + m_bIsInitialised = true; + } + return m_bIsInitialised; } -WRAPPER void cMusicManager::Terminate() { - EAXJMP(0x57D140); + if (!IsInitialised()) return; + + if (SampleManager.IsStreamPlaying(0)) { + SampleManager.StopStreamedFile(0); + m_nCurrentStreamedSound = NO_STREAMED_SOUND; + m_nPreviousStreamedSound = NO_STREAMED_SOUND; + } + m_bIsInitialised = false; } -WRAPPER void -cMusicManager::ChangeMusicMode(int32 mode) +cMusicManager::ChangeMusicMode(uint8 mode) { - EAXJMP(0x57D310); + if (!IsInitialised()) return; + + uint8 mode2; + switch (mode) + { + case MUSICMODE_FRONTEND: mode2 = MUSICMODE_FRONTEND; break; + case MUSICMODE_GAME: mode2 = MUSICMODE_GAME; break; + case MUSICMODE_CUTSCENE: mode2 = MUSICMODE_CUTSCENE; break; + case MUSICMODE_DISABLE: mode2 = MUSICMODE_DISABLED; break; + default: return; + } + + if (mode2 != m_nMusicMode || mode == MUSICMODE_FRONTEND && mode2 == MUSICMODE_FRONTEND) { + switch (mode) + { + case MUSICMODE_FRONTEND: + case MUSICMODE_GAME: + case MUSICMODE_CUTSCENE: + case MUSICMODE_DISABLED: + if (SampleManager.IsStreamPlaying(0)) { + if (m_nCurrentStreamedSound < TOTAL_STREAMED_SOUNDS) { + m_aTracks[m_nCurrentStreamedSound].m_nPosition = SampleManager.GetStreamedFilePosition(0); + m_aTracks[m_nCurrentStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + } + SampleManager.StopStreamedFile(0); + } + m_nCurrentStreamedSound = NO_STREAMED_SOUND; + m_nPreviousStreamedSound = NO_STREAMED_SOUND; + m_bFrontendTrackFinished = false; + m_bPlayInFrontend = false; + m_bSetNextStation = false; + m_bPreviousPlayerInCar = false; + m_bPlayerInCar = false; + m_bAnnouncementInProgress = false; + m_nTimer = m_nLastTrackServiceTime = CTimer::GetTimeInMillisecondsPauseMode(); + m_bDoTrackService = false; + m_bIgnoreTimeDelay = true; + m_bDontServiceAmbienceTrack = false; + m_nMusicMode = mode2; + break; + default: return; + } + } } -WRAPPER -void -cMusicManager::StopFrontEndTrack() -{ - EAXJMP(0x57E3D0); -} - -WRAPPER void -cMusicManager::PlayAnnouncement(uint8) -{ - EAXJMP(0x57E430); -} - -WRAPPER void -cMusicManager::PlayFrontEndTrack(uint8, uint8) -{ - EAXJMP(0x57E2E0); -} - -WRAPPER void -cMusicManager::PreloadCutSceneMusic(uint8) -{ - EAXJMP(0x57E210); -} - -WRAPPER void -cMusicManager::PlayPreloadedCutSceneMusic(void) -{ - EAXJMP(0x57E290); -} - -WRAPPER void -cMusicManager::StopCutSceneMusic(void) -{ - EAXJMP(0x57E2B0); -} - -WRAPPER int32 +uint8 cMusicManager::GetRadioInCar(void) { - EAXJMP(0x57D1D0); + if (!m_bIsInitialised) return HEAD_RADIO; + if (PlayerInCar()) { + CVehicle *veh = FindPlayerVehicle(); + if (veh != nil){ + if (UsesPoliceRadio(veh)) { + if (m_nRadioInCar == NO_STREAMED_SOUND || CReplay::IsPlayingBack() && AudioManager.m_bUserPause) + return POLICE_RADIO; + return m_nRadioInCar; + } else return veh->m_nRadioStation; + } + } + + if (m_nRadioInCar == NO_STREAMED_SOUND || CReplay::IsPlayingBack() && AudioManager.m_bUserPause) + return RADIO_OFF; + return m_nRadioInCar; } -WRAPPER void -cMusicManager::SetRadioInCar(uint32) +void +cMusicManager::SetRadioInCar(uint32 station) { - EAXJMP(0x57D2C0); + if (m_bIsInitialised) { + if (!PlayerInCar()) { + m_nRadioInCar = station; + return; + } + CVehicle *veh = FindPlayerVehicle(); + if (veh == nil) return; + if (UsesPoliceRadio(veh)) + m_nRadioInCar = station; + else + veh->m_nRadioStation = station; + } } -WRAPPER void -cMusicManager::SetRadioChannelByScript(uint8, int32) +void +cMusicManager::SetRadioChannelByScript(uint8 station, int32 pos) { - EAXJMP(0x57D180); + if (m_bIsInitialised && station < RADIO_OFF) { + m_bRadioSetByScript = true; + m_nRadioStation = station; + m_nRadioPosition = pos == -1 ? -1 : pos % m_aTracks[station].m_nLength; + } } -WRAPPER + void cMusicManager::ResetMusicAfterReload() { - EAXJMP(0x57CF30); + m_bRadioSetByScript = false; + m_nRadioStation = 0; + m_nRadioPosition = -1; + m_nAnnouncement = NO_STREAMED_SOUND; + m_bAnnouncementInProgress = false; + m_bSetNextStation = false; + gRetuneCounter = 0; + gNumRetunePresses = 0; } -WRAPPER -void cMusicManager::ResetTimers(int32) { EAXJMP(0x57D420); } -WRAPPER +void +cMusicManager::ResetTimers(int32 time) +{ + m_bResetTimers = true; + m_nResetTime = time; +} + void cMusicManager::Service() { - EAXJMP(0x57D440); + if (m_bResetTimers) { + m_bResetTimers = false; + m_nLastTrackServiceTime = m_nResetTime; + } + + if (!m_bIsInitialised || m_bDisabled) return; + + if (m_nMusicMode == MUSICMODE_CUTSCENE) { + SampleManager.SetStreamedVolumeAndPan(AudioManager.maxVolume, 63, 1, 0); + return; + } + + m_nTimer = CTimer::GetTimeInMillisecondsPauseMode(); + if (m_nTimer > (m_nLastTrackServiceTime + 2000) || m_bIgnoreTimeDelay) { + m_bIgnoreTimeDelay = false; + m_bDoTrackService = true; + m_nLastTrackServiceTime = m_nTimer; + } else m_bDoTrackService = false; + + if (m_nCurrentStreamedSound == NO_STREAMED_SOUND && SampleManager.IsStreamPlaying(0)) + SampleManager.StopStreamedFile(0); + else switch (m_nMusicMode) { + case MUSICMODE_FRONTEND: ServiceFrontEndMode(); break; + case MUSICMODE_GAME: ServiceGameMode(); break; + } } + +void +cMusicManager::ServiceFrontEndMode() +{ + if (m_nCurrentStreamedSound < TOTAL_STREAMED_SOUNDS) { + if (m_bFrontendTrackFinished) { + if (!SampleManager.IsStreamPlaying(0)) { + switch (m_nCurrentStreamedSound) + { + case STREAMED_SOUND_MISSION_COMPLETED: + if (!AudioManager.m_bUserPause) + ChangeMusicMode(MUSICMODE_GAME); + break; + case STREAMED_SOUND_GAME_COMPLETED: + ChangeMusicMode(MUSICMODE_GAME); + break; + default: + break; + } + m_nCurrentStreamedSound = NO_STREAMED_SOUND; + m_nPreviousStreamedSound = NO_STREAMED_SOUND; + } + } else if (bHasStarted) { + if (!SampleManager.IsStreamPlaying(0)) + SampleManager.StartStreamedFile(m_nCurrentStreamedSound, 0, 0); + } else { + SampleManager.SetStreamedVolumeAndPan(0, 63, 0, 0); + if (!SampleManager.StartStreamedFile(m_nCurrentStreamedSound, m_nCurrentStreamedSound < STREAMED_SOUND_RADIO_POLICE ? GetTrackStartPos(m_nCurrentStreamedSound) : 0, 0)) + return; + SampleManager.SetStreamedVolumeAndPan(100, 63, 0, 0); + if (m_bPlayInFrontend) bHasStarted = true; + else m_bFrontendTrackFinished = true; + } + } + if (SampleManager.IsStreamPlaying(0)) + SampleManager.SetStreamedVolumeAndPan((CPad::GetPad(0)->bDisplayNoControllerMessage || CPad::GetPad(0)->bObsoleteControllerMessage) ? 0 : 100, 63, 0, 0); +} + +void +cMusicManager::ServiceGameMode() +{ + bool bRadioOff = false; + static int8 nFramesSinceCutsceneEnded = -1; + + m_bPreviousPlayerInCar = m_bPlayerInCar; + m_bPlayerInCar = PlayerInCar(); + m_nPreviousStreamedSound = m_nCurrentStreamedSound; + if (m_bPlayerInCar) { + if (FindPlayerPed() != nil + && !FindPlayerPed()->DyingOrDead() + && CPad::GetPad(0)->ChangeStationJustDown() + && !CReplay::IsPlayingBack() + && FindPlayerVehicle() != nil + && !UsesPoliceRadio(FindPlayerVehicle())) { + gRetuneCounter = 30; + gNumRetunePresses++; + AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_FRONTEND_RADIO_CHANGE, 1.0f); + if (SampleManager.IsMP3RadioChannelAvailable()) { + if (gNumRetunePresses > RADIO_OFF) + gNumRetunePresses -= RADIO_OFF; + } + } + } else { + nFramesSinceCutsceneEnded = -1; + } + + if (AudioManager.m_bPreviousUserPause) + m_bPreviousPlayerInCar = false; + if (!m_bPlayerInCar) { + if (m_bPreviousPlayerInCar) { + if (m_nCurrentStreamedSound != STREAMED_SOUND_RADIO_POLICE) + m_nRadioInCar = m_nCurrentStreamedSound; + } + ServiceAmbience(); + return; + } + + if (m_bPreviousPlayerInCar) { + if (m_nAnnouncement < TOTAL_STREAMED_SOUNDS + && (m_nCurrentStreamedSound < STREAMED_SOUND_CITY_AMBIENT || m_bAnnouncementInProgress) + && ServiceAnnouncement()) + { + if (m_bAnnouncementInProgress) { + m_bSetNextStation = false; + return; + } + m_nPreviousStreamedSound = m_nCurrentStreamedSound; + m_nCurrentStreamedSound = GetCarTuning(); + } + if (SampleManager.IsMP3RadioChannelAvailable() + && m_nCurrentStreamedSound != STREAMED_SOUND_RADIO_MP3_PLAYER + && ControlsManager.GetIsKeyboardKeyJustDown(rsF9)) + { + m_nPreviousStreamedSound = m_nCurrentStreamedSound; + m_nCurrentStreamedSound = STREAMED_SOUND_RADIO_MP3_PLAYER; + if (FindPlayerVehicle() != nil) + FindPlayerVehicle()->m_nRadioStation = STREAMED_SOUND_RADIO_MP3_PLAYER; + AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_FRONTEND_RADIO_CHANGE, 1.0f); + gRetuneCounter = 0; + gNumRetunePresses = 0; + m_bSetNextStation = false; + } + if (gNumRetunePresses) { + if (gRetuneCounter != 0) gRetuneCounter--; + else m_bSetNextStation = true; + } + if (gRetuneCounter) + AudioManager.DoPoliceRadioCrackle(); + if (m_bSetNextStation) { + m_bSetNextStation = false; + m_nPreviousStreamedSound = m_nCurrentStreamedSound; + m_nCurrentStreamedSound = GetNextCarTuning(); + if (m_nCurrentStreamedSound == STREAMED_SOUND_CITY_AMBIENT || m_nCurrentStreamedSound == STREAMED_SOUND_WATER_AMBIENT) + bRadioOff = true; + + if (m_nPreviousStreamedSound == STREAMED_SOUND_CITY_AMBIENT || m_nPreviousStreamedSound == STREAMED_SOUND_WATER_AMBIENT) + AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_FRONTEND_RADIO_CHANGE, 0.0f); + } + if (m_nCurrentStreamedSound < STREAMED_SOUND_CITY_AMBIENT) { + if (ChangeRadioChannel()) { + ServiceTrack(); + } else { + m_bPlayerInCar = false; + if (FindPlayerVehicle()) + FindPlayerVehicle()->m_nRadioStation = m_nCurrentStreamedSound; + m_nCurrentStreamedSound = NO_STREAMED_SOUND; + } + if (CTimer::GetIsSlowMotionActive()) { + if (TheCamera.pTargetEntity != nil) { + float dist = (TheCamera.pTargetEntity->GetPosition() - TheCamera.GetPosition()).MagnitudeSqr(); + if (dist >= 3025.0f) { + SampleManager.SetStreamedVolumeAndPan(0, 63, 0, 0); + } else if (dist >= 100.0f) { + int8 volume = ((45.0f - (Sqrt(dist) - 10.0f)) / 45.0f * 100.0f); + int8 pan; + if (AudioManager.IsMissionAudioPlaying()) + volume /= 4; + if (volume != 0) { + CVector trVec; + AudioManager.TranslateEntity(&TheCamera.pTargetEntity->GetPosition(), &trVec); + pan = AudioManager.ComputePan(55.0f, &trVec); + } else { + pan = 0; + } + if (gRetuneCounter) + volume /= 4; + SampleManager.SetStreamedVolumeAndPan(volume, pan, 0, 0); + } else if (AudioManager.IsMissionAudioPlaying()) { + SampleManager.SetStreamedVolumeAndPan(25, 63, 0, 0); + } else if (gRetuneCounter) { + SampleManager.SetStreamedVolumeAndPan(25, 63, 0, 0); + } else { + SampleManager.SetStreamedVolumeAndPan(100, 63, 0, 0); + } + } + } else if (AudioManager.IsMissionAudioPlaying()) { + SampleManager.SetStreamedVolumeAndPan(25, 63, 0, 0); + nFramesSinceCutsceneEnded = 0; + } else { + int8 volume; + if (nFramesSinceCutsceneEnded == -1) { + volume = 100; + } else if (nFramesSinceCutsceneEnded >= 20) { + if (nFramesSinceCutsceneEnded >= 40) { + nFramesSinceCutsceneEnded = -1; + volume = 100; + } else { + volume = 3 * (nFramesSinceCutsceneEnded - 20) + 25; + nFramesSinceCutsceneEnded++; + } + } else { + nFramesSinceCutsceneEnded++; + volume = 25; + } + if (gRetuneCounter) volume /= 4; + SampleManager.SetStreamedVolumeAndPan(volume, 63, 0, 0); + } + return; + } + if (bRadioOff) { + m_nCurrentStreamedSound = m_nPreviousStreamedSound; + if (FindPlayerVehicle() != nil) + FindPlayerVehicle()->m_nRadioStation = RADIO_OFF; + AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, SOUND_FRONTEND_NO_RADIO, 0.0f); + } + ServiceAmbience(); + return; + } + if (m_bRadioSetByScript) { + if (UsesPoliceRadio(FindPlayerVehicle())) { + m_nCurrentStreamedSound = STREAMED_SOUND_RADIO_POLICE; + } else { + m_nCurrentStreamedSound = m_nRadioStation; + if (FindPlayerVehicle()->m_nRadioStation == m_nCurrentStreamedSound) { + m_nPreviousStreamedSound = NO_STREAMED_SOUND; + SampleManager.SetStreamedVolumeAndPan(0, 63, 0, 0); + SampleManager.StopStreamedFile(0); + } + if (m_nRadioPosition != -1) { + m_aTracks[m_nCurrentStreamedSound].m_nPosition = m_nRadioPosition; + m_aTracks[m_nCurrentStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + } + } + } else { + m_nCurrentStreamedSound = GetCarTuning(); + } + if (m_nCurrentStreamedSound >= RADIO_OFF) { + ServiceAmbience(); + return; + } + if (ChangeRadioChannel()) { + if (m_bRadioSetByScript) { + m_bRadioSetByScript = false; + FindPlayerVehicle()->m_nRadioStation = m_nCurrentStreamedSound; + } + } else { + m_bPlayerInCar = false; + m_nCurrentStreamedSound = NO_STREAMED_SOUND; + } +} + +void +cMusicManager::StopFrontEndTrack() +{ + if (IsInitialised() && !m_bDisabled && m_nMusicMode == MUSICMODE_FRONTEND && m_nCurrentStreamedSound != NO_STREAMED_SOUND) { + m_aTracks[m_nCurrentStreamedSound].m_nPosition = SampleManager.GetStreamedFilePosition(0); + m_aTracks[m_nCurrentStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + SampleManager.StopStreamedFile(0); + m_nPreviousStreamedSound = NO_STREAMED_SOUND; + m_nCurrentStreamedSound = NO_STREAMED_SOUND; + } +} + +void +cMusicManager::PlayAnnouncement(uint8 announcement) +{ + if (IsInitialised() && !m_bDisabled && !m_bAnnouncementInProgress) + m_nAnnouncement = announcement; +} + +void +cMusicManager::PlayFrontEndTrack(uint8 track, uint8 bPlayInFrontend) +{ + if (IsInitialised() && !m_bDisabled && track < TOTAL_STREAMED_SOUNDS) { + if (m_nMusicMode == MUSICMODE_GAME) { + if (m_nCurrentStreamedSound != NO_STREAMED_SOUND) { + if (m_bAnnouncementInProgress) { + m_nAnnouncement = NO_STREAMED_SOUND; + m_bAnnouncementInProgress = false; + } + m_aTracks[m_nCurrentStreamedSound].m_nPosition = SampleManager.GetStreamedFilePosition(0); + m_aTracks[m_nCurrentStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + } + SampleManager.StopStreamedFile(0); + } else if (m_nMusicMode == MUSICMODE_FRONTEND) { + if (m_nCurrentStreamedSound != NO_STREAMED_SOUND) { + m_aTracks[m_nCurrentStreamedSound].m_nPosition = SampleManager.GetStreamedFilePosition(0); + m_aTracks[m_nCurrentStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + } + SampleManager.StopStreamedFile(0); + } + + m_nPreviousStreamedSound = m_nCurrentStreamedSound; + m_nCurrentStreamedSound = track; + m_bPlayInFrontend = !!bPlayInFrontend; + m_bFrontendTrackFinished = false; + m_bDoTrackService = true; + bHasStarted = false; + if (m_nCurrentStreamedSound < STREAMED_SOUND_RADIO_POLICE) { + gRetuneCounter = 0; + gNumRetunePresses = 0; + } + } +} + +void +cMusicManager::PreloadCutSceneMusic(uint8 track) +{ + if (IsInitialised() && !m_bDisabled && track < TOTAL_STREAMED_SOUNDS && m_nMusicMode == MUSICMODE_CUTSCENE) { + AudioManager.ResetPoliceRadio(); + while (SampleManager.IsStreamPlaying(0)) + SampleManager.StopStreamedFile(0); + SampleManager.PreloadStreamedFile(track, 0); + SampleManager.SetStreamedVolumeAndPan(AudioManager.maxVolume, 63, 1, 0); + m_nCurrentStreamedSound = track; + } +} + +void +cMusicManager::PlayPreloadedCutSceneMusic(void) +{ + if (IsInitialised() && !m_bDisabled && m_nMusicMode == MUSICMODE_CUTSCENE) + SampleManager.StartPreloadedStreamedFile(0); +} + +void +cMusicManager::StopCutSceneMusic(void) +{ + if (IsInitialised() && !m_bDisabled && m_nMusicMode == MUSICMODE_CUTSCENE) { + SampleManager.StopStreamedFile(0); + m_nCurrentStreamedSound = NO_STREAMED_SOUND; + } +} + +uint32 +cMusicManager::GetTrackStartPos(uint8 track) +{ + uint32 result; + uint32 timer = m_aTracks[track].m_nLastPosCheckTimer; + if (CTimer::GetTimeInMillisecondsPauseMode() <= timer) { + result = m_aTracks[track].m_nPosition; + m_aTracks[track].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + } else + result = min(CTimer::GetTimeInMillisecondsPauseMode() - timer, 90000) + m_aTracks[track].m_nPosition; + + if (result > m_aTracks[track].m_nLength) result %= m_aTracks[track].m_nLength; + return result; +} + + +bool +cMusicManager::UsesPoliceRadio(CVehicle *veh) +{ + switch (veh->GetModelIndex()) + { + case MI_FBICAR: + case MI_POLICE: + case MI_ENFORCER: + case MI_PREDATOR: + case MI_RHINO: + case MI_BARRACKS: + return true; + } + return false; +} + +void +cMusicManager::ServiceAmbience() +{ + uint8 volume; + + if (m_bAnnouncementInProgress) { + m_nAnnouncement = NO_STREAMED_SOUND; + m_bAnnouncementInProgress = false; + } + if (m_nCurrentStreamedSound < STREAMED_SOUND_CITY_AMBIENT) { + if (SampleManager.IsStreamPlaying(0)) { + m_aTracks[m_nCurrentStreamedSound].m_nPosition = SampleManager.GetStreamedFilePosition(0); + m_aTracks[m_nCurrentStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + SampleManager.StopStreamedFile(0); + m_nCurrentStreamedSound = NO_STREAMED_SOUND; + return; + } + m_nCurrentStreamedSound = STREAMED_SOUND_CITY_AMBIENT; + } + if (CWorld::Players[CWorld::PlayerInFocus].m_WBState != WBSTATE_PLAYING && !SampleManager.IsStreamPlaying(0)) { + m_nCurrentStreamedSound = NO_STREAMED_SOUND; + return; + } + + m_nPreviousStreamedSound = m_nCurrentStreamedSound; + m_nCurrentStreamedSound = TheCamera.DistanceToWater <= 45.0f ? STREAMED_SOUND_WATER_AMBIENT : STREAMED_SOUND_CITY_AMBIENT; + + if (m_nCurrentStreamedSound == m_nPreviousStreamedSound) { + ComputeAmbienceVol(false, volume); + SampleManager.SetStreamedVolumeAndPan(volume, 63, 1, 0); + if (m_bDontServiceAmbienceTrack) { + if (SampleManager.IsStreamPlaying(0)) + m_bDontServiceAmbienceTrack = false; + } else ServiceTrack(); + } else { + if (m_nPreviousStreamedSound < TOTAL_STREAMED_SOUNDS) { + m_aTracks[m_nPreviousStreamedSound].m_nPosition = SampleManager.GetStreamedFilePosition(0); + m_aTracks[m_nPreviousStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + SampleManager.StopStreamedFile(0); + } + uint32 pos = GetTrackStartPos(m_nCurrentStreamedSound); + SampleManager.SetStreamedVolumeAndPan(0, 63, 1, 0); + if (SampleManager.StartStreamedFile(m_nCurrentStreamedSound, pos, 0)) { + ComputeAmbienceVol(true, volume); + SampleManager.SetStreamedVolumeAndPan(volume, 63, 1, 0); + m_bDontServiceAmbienceTrack = true; + } else + m_nCurrentStreamedSound = NO_STREAMED_SOUND; + } +} + +void +cMusicManager::ComputeAmbienceVol(uint8 reset, uint8 &outVolume) +{ + static float fVol = 0.0f; + + if (reset) + fVol = 0.0f; + else if (fVol < 60.0f) + fVol += 1.0f; + + if (TheCamera.DistanceToWater > 70.0f) + outVolume = fVol; + else if (TheCamera.DistanceToWater > 45.0f) + outVolume = (TheCamera.DistanceToWater - 45.0f) / 25.0f * fVol; + else if (TheCamera.DistanceToWater > 20.0f) + outVolume = (45.0f - TheCamera.DistanceToWater) / 25.0f * fVol; + else + outVolume = fVol; +} + +void +cMusicManager::ServiceTrack() +{ + if (m_bDoTrackService) { + if (!SampleManager.IsStreamPlaying(0)) + SampleManager.StartStreamedFile(m_nCurrentStreamedSound, 0, 0); + } +} + +bool +cMusicManager::ServiceAnnouncement() +{ + static int8 cCheck = 0; + if (m_bAnnouncementInProgress) { + if (!SampleManager.IsStreamPlaying(0)) { + m_nAnnouncement = NO_STREAMED_SOUND; + m_bAnnouncementInProgress = false; + } + return true; + } + + if (++cCheck >= 30) { + cCheck = 0; + int pos = SampleManager.GetStreamedFilePosition(0); + if (SampleManager.IsStreamPlaying(0)) { + if (m_nCurrentStreamedSound != NO_STREAMED_SOUND) { + m_aTracks[m_nCurrentStreamedSound].m_nPosition = pos; + m_aTracks[m_nCurrentStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + SampleManager.StopStreamedFile(0); + } + } + + SampleManager.SetStreamedVolumeAndPan(0, 63, 0, 0); + if (SampleManager.StartStreamedFile(m_nAnnouncement, 0, 0)) { + SampleManager.SetStreamedVolumeAndPan(AudioManager.IsMissionAudioPlaying() ? 25 : 100, 63, 0, 0); + m_bAnnouncementInProgress = true; + m_nPreviousStreamedSound = m_nCurrentStreamedSound; + m_nCurrentStreamedSound = m_nAnnouncement; + return true; + } + + if (cCheck != 0) cCheck--; + else cCheck = 30; + return false; + } + + return false; +} + +uint8 +cMusicManager::GetCarTuning() +{ + CVehicle *veh = FindPlayerVehicle(); + if (veh == nil) return RADIO_OFF; + if (UsesPoliceRadio(veh)) return POLICE_RADIO; + if (veh->m_nRadioStation == USERTRACK && !SampleManager.IsMP3RadioChannelAvailable()) + veh->m_nRadioStation = AudioManager.GetRandomNumber(2) % USERTRACK; + return veh->m_nRadioStation; +} + +uint8 +cMusicManager::GetNextCarTuning() +{ + CVehicle *veh = FindPlayerVehicle(); + if (veh == nil) return RADIO_OFF; + if (UsesPoliceRadio(veh)) return POLICE_RADIO; + if (gNumRetunePresses != 0) { + if (SampleManager.IsMP3RadioChannelAvailable()) { + if (veh->m_nRadioStation == RADIO_OFF) + veh->m_nRadioStation = POLICE_RADIO; + veh->m_nRadioStation += gNumRetunePresses; + if (veh->m_nRadioStation == POLICE_RADIO) + veh->m_nRadioStation = RADIO_OFF; + else if (veh->m_nRadioStation > POLICE_RADIO) + veh->m_nRadioStation -= RADIO_OFF; + } else if (gNumRetunePresses + veh->m_nRadioStation >= USERTRACK) { + while (gNumRetunePresses) { + if (veh->m_nRadioStation == RADIO_OFF) + veh->m_nRadioStation = HEAD_RADIO; + else if (veh->m_nRadioStation < USERTRACK) + ++veh->m_nRadioStation; + + if (veh->m_nRadioStation == USERTRACK) + veh->m_nRadioStation = RADIO_OFF; + --gNumRetunePresses; + } + } else + veh->m_nRadioStation += gNumRetunePresses; + gNumRetunePresses = 0; + } + return veh->m_nRadioStation; +} + +bool +cMusicManager::ChangeRadioChannel() +{ + if (m_nCurrentStreamedSound != m_nPreviousStreamedSound) { + if (m_nPreviousStreamedSound < TOTAL_STREAMED_SOUNDS) { + m_aTracks[m_nPreviousStreamedSound].m_nPosition = SampleManager.GetStreamedFilePosition(0); + m_aTracks[m_nPreviousStreamedSound].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); + SampleManager.SetStreamedVolumeAndPan(0, 63, 0, 0); + SampleManager.StopStreamedFile(0); + } + if (SampleManager.IsStreamPlaying(0)) + return false; + if (!SampleManager.StartStreamedFile(m_nCurrentStreamedSound, GetTrackStartPos(m_nCurrentStreamedSound), 0)) + return false; + SampleManager.SetStreamedVolumeAndPan(AudioManager.IsMissionAudioPlaying() ? 25 : 100, 63, 0, 0); + } + return true; +} + +STARTPATCHES +InjectHook(0x57E4B0, &cMusicManager::PlayerInCar, PATCH_JUMP); +InjectHook(0x57E6D0, &cMusicManager::DisplayRadioStationName, PATCH_JUMP); +InjectHook(0x57CF70, &cMusicManager::Initialise, PATCH_JUMP); +InjectHook(0x57D140, &cMusicManager::Terminate, PATCH_JUMP); +InjectHook(0x57D1D0, &cMusicManager::GetRadioInCar, PATCH_JUMP); +InjectHook(0x57D2C0, &cMusicManager::SetRadioInCar, PATCH_JUMP); +InjectHook(0x57D180, &cMusicManager::SetRadioChannelByScript, PATCH_JUMP); +InjectHook(0x57CF30, &cMusicManager::ResetMusicAfterReload, PATCH_JUMP); +InjectHook(0x57E6A0, &cMusicManager::UsesPoliceRadio, PATCH_JUMP); +InjectHook(0x57D310, &cMusicManager::ChangeMusicMode, PATCH_JUMP); +InjectHook(0x57D420, &cMusicManager::ResetTimers, PATCH_JUMP); +InjectHook(0x57D440, &cMusicManager::Service, PATCH_JUMP); +InjectHook(0x57D530, &cMusicManager::ServiceFrontEndMode, PATCH_JUMP); +InjectHook(0x57E3D0, &cMusicManager::StopFrontEndTrack, PATCH_JUMP); +InjectHook(0x57E430, &cMusicManager::PlayAnnouncement, PATCH_JUMP); +InjectHook(0x57E2E0, &cMusicManager::PlayFrontEndTrack, PATCH_JUMP); +InjectHook(0x57E210, &cMusicManager::PreloadCutSceneMusic, PATCH_JUMP); +InjectHook(0x57E290, &cMusicManager::PlayPreloadedCutSceneMusic, PATCH_JUMP); +InjectHook(0x57E2B0, &cMusicManager::StopCutSceneMusic, PATCH_JUMP); +InjectHook(0x57E450, &cMusicManager::GetTrackStartPos, PATCH_JUMP); +InjectHook(0x57D690, &cMusicManager::ServiceGameMode, PATCH_JUMP); +InjectHook(0x57DCB0, &cMusicManager::ServiceAmbience, PATCH_JUMP); +InjectHook(0x57DEA0, &cMusicManager::ComputeAmbienceVol, PATCH_JUMP); +InjectHook(0x57E100, &cMusicManager::ServiceTrack, PATCH_JUMP); +InjectHook(0x57DFC0, &cMusicManager::ServiceAnnouncement, PATCH_JUMP); +InjectHook(0x57E530, &cMusicManager::GetCarTuning, PATCH_JUMP); +InjectHook(0x57E5A0, &cMusicManager::GetNextCarTuning, PATCH_JUMP); +InjectHook(0x57E130, &cMusicManager::ChangeRadioChannel, PATCH_JUMP); +ENDPATCHES \ No newline at end of file diff --git a/src/audio/MusicManager.h b/src/audio/MusicManager.h index 709fe56a..5c255069 100644 --- a/src/audio/MusicManager.h +++ b/src/audio/MusicManager.h @@ -2,7 +2,7 @@ #include "audio_enums.h" -class tMP3Sample +class tStreamedSample { public: uint32 m_nLength; @@ -10,52 +10,46 @@ public: uint32 m_nLastPosCheckTimer; }; +class CVehicle; + class cMusicManager { public: bool m_bIsInitialised; - uint8 field_1; + bool m_bDisabled; uint8 m_nMusicMode; uint8 m_nCurrentStreamedSound; uint8 m_nPreviousStreamedSound; - uint8 field_5; - uint8 field_6; - uint8 field_7; - bool m_bAnnouncement; + bool m_bFrontendTrackFinished; + bool m_bPlayInFrontend; + bool m_bSetNextStation; + uint8 m_nAnnouncement; bool m_bPreviousPlayerInCar; bool m_bPlayerInCar; bool m_bAnnouncementInProgress; - tMP3Sample m_asMP3Samples[TOTAL_STREAMED_SOUNDS]; - uint8 field_2364; - uint8 field_2365; - uint8 field_2366; - uint8 field_2367; - uint32 field_2368; - uint32 field_2372; - uint32 field_2376; - uint8 field_2380; - uint8 field_2381; - uint8 field_2382; + tStreamedSample m_aTracks[TOTAL_STREAMED_SOUNDS]; + bool m_bResetTimers; + uint32 m_nResetTime; + uint32 m_nLastTrackServiceTime; + uint32 m_nTimer; + bool m_bDoTrackService; + bool m_bIgnoreTimeDelay; + bool m_bDontServiceAmbienceTrack; bool m_bRadioSetByScript; uint8 m_nRadioStation; - uint8 field_2385; - uint8 field_2386; - uint8 field_2387; - uint32 m_nRadioPosition; - bool m_bRadioInCar; - uint8 field_2393; - uint8 field_2394; - uint8 field_2395; + int32 m_nRadioPosition; + uint8 m_nRadioInCar; public: + cMusicManager(); bool IsInitialised() { return m_bIsInitialised; } uint32 GetMusicMode() { return m_nMusicMode; } uint8 GetCurrentTrack() { return m_nCurrentStreamedSound; } - void Initialise(); + bool Initialise(); void Terminate(); - void ChangeMusicMode(int32 mode); + void ChangeMusicMode(uint8 mode); void StopFrontEndTrack(); bool PlayerInCar(); @@ -66,7 +60,7 @@ public: void PreloadCutSceneMusic(uint8); void PlayPreloadedCutSceneMusic(void); void StopCutSceneMusic(void); - int32 GetRadioInCar(void); + uint8 GetRadioInCar(void); void SetRadioInCar(uint32); void SetRadioChannelByScript(uint8, int32); @@ -74,6 +68,20 @@ public: void ResetTimers(int32); void Service(); + void ServiceFrontEndMode(); + void ServiceGameMode(); + void ServiceAmbience(); + void ServiceTrack(); + + bool UsesPoliceRadio(CVehicle *veh); + uint32 GetTrackStartPos(uint8); + + void ComputeAmbienceVol(uint8 reset, uint8& outVolume); + bool ServiceAnnouncement(); + + uint8 GetCarTuning(); + uint8 GetNextCarTuning(); + bool ChangeRadioChannel(); }; static_assert(sizeof(cMusicManager) == 0x95C, "cMusicManager: error"); diff --git a/src/audio/audio_enums.h b/src/audio/audio_enums.h index 86f9f87f..8136ff66 100644 --- a/src/audio/audio_enums.h +++ b/src/audio/audio_enums.h @@ -21,210 +21,210 @@ enum eMusicMode MUSICMODE_FRONTEND = 0, MUSICMODE_GAME, MUSICMODE_CUTSCENE, - MUSICMODE_OFF, - MUSICMODE_4, + MUSICMODE_DISABLE, + MUSICMODE_DISABLED, }; enum eStreamedSounds { - STREAMED_SOUND_RADIO_HEAD = 0, - STREAMED_SOUND_RADIO_CLASSIC = 1, - STREAMED_SOUND_RADIO_KJAH = 2, - STREAMED_SOUND_RADIO_RISE = 3, - STREAMED_SOUND_RADIO_LIPS = 4, - STREAMED_SOUND_RADIO_GAME = 5, - STREAMED_SOUND_RADIO_MSX = 6, - STREAMED_SOUND_RADIO_FLASH = 7, - STREAMED_SOUND_RADIO_CHAT = 8, - STREAMED_SOUND_RADIO_MP3_PLAYER = 9, - STREAMED_SOUND_RADIO_POLICE = 10, - STREAMED_SOUND_CITY_AMBIENT = 11, - STREAMED_SOUND_WATER_AMBIENT = 12, - STREAMED_SOUND_ANNOUNCE_COMMERCIAL_OPEN = 13, - STREAMED_SOUND_ANNOUNCE_SUBURBAN_OPEN = 14, - STREAMED_SOUND_NEWS_INTRO = 15, - STREAMED_SOUND_BANK_INTRO = 16, - STREAMED_SOUND_CUTSCENE_LUIGI1_LG = 17, - STREAMED_SOUND_CUTSCENE_LUIGI2_DSB = 18, - STREAMED_SOUND_CUTSCENE_LUIGI3_DM = 19, - STREAMED_SOUND_CUTSCENE_LUIGI4_PAP = 20, - STREAMED_SOUND_CUTSCENE_LUIGI5_TFB = 21, - STREAMED_SOUND_CUTSCENE_JOEY0_DM2 = 22, - STREAMED_SOUND_CUTSCENE_JOEY1_LFL = 23, - STREAMED_SOUND_CUTSCENE_JOEY2_KCL = 24, - STREAMED_SOUND_CUTSCENE_JOEY3_VH = 25, - STREAMED_SOUND_CUTSCENE_JOEY4_ETH = 26, - STREAMED_SOUND_CUTSCENE_JOEY5_DST = 27, - STREAMED_SOUND_CUTSCENE_JOEY6_TBJ = 28, - STREAMED_SOUND_CUTSCENE_TONI1_TOL = 29, - STREAMED_SOUND_CUTSCENE_TONI2_TPU = 30, - STREAMED_SOUND_CUTSCENE_TONI3_MAS = 31, - STREAMED_SOUND_CUTSCENE_TONI4_TAT = 32, - STREAMED_SOUND_CUTSCENE_TONI5_BF = 33, - STREAMED_SOUND_CUTSCENE_SAL0_MAS = 34, - STREAMED_SOUND_CUTSCENE_SAL1_PF = 35, - STREAMED_SOUND_CUTSCENE_SAL2_CTG = 36, - STREAMED_SOUND_CUTSCENE_SAL3_RTC = 37, - STREAMED_SOUND_CUTSCENE_SAL5_LRQ = 38, - STREAMED_SOUND_CUTSCENE_SAL4_BDBA = 39, - STREAMED_SOUND_CUTSCENE_SAL4_BDBB = 40, - STREAMED_SOUND_CUTSCENE_SAL2_CTG2 = 41, - STREAMED_SOUND_CUTSCENE_SAL4_BDBD = 42, - STREAMED_SOUND_CUTSCENE_SAL5_LRQB = 43, - STREAMED_SOUND_CUTSCENE_SAL5_LRQC = 44, - STREAMED_SOUND_CUTSCENE_ASUKA_1_SSO = 45, - STREAMED_SOUND_CUTSCENE_ASUKA_2_PP = 46, - STREAMED_SOUND_CUTSCENE_ASUKA_3_SS = 47, - STREAMED_SOUND_CUTSCENE_ASUKA_4_PDR = 48, - STREAMED_SOUND_CUTSCENE_ASUKA_5_K2FT = 49, - STREAMED_SOUND_CUTSCENE_KENJI1_KBO = 50, - STREAMED_SOUND_CUTSCENE_KENJI2_GIS = 51, - STREAMED_SOUND_CUTSCENE_KENJI3_DS = 52, - STREAMED_SOUND_CUTSCENE_KENJI4_SHI = 53, - STREAMED_SOUND_CUTSCENE_KENJI5_SD = 54, - STREAMED_SOUND_CUTSCENE_RAY0_PDR2 = 55, - STREAMED_SOUND_CUTSCENE_RAY1_SW = 56, - STREAMED_SOUND_CUTSCENE_RAY2_AP = 57, - STREAMED_SOUND_CUTSCENE_RAY3_ED = 58, - STREAMED_SOUND_CUTSCENE_RAY4_GF = 59, - STREAMED_SOUND_CUTSCENE_RAY5_PB = 60, - STREAMED_SOUND_CUTSCENE_RAY6_MM = 61, - STREAMED_SOUND_CUTSCENE_DONALD1_STOG = 62, - STREAMED_SOUND_CUTSCENE_DONALD2_KK = 63, - STREAMED_SOUND_CUTSCENE_DONALD3_ADO = 64, - STREAMED_SOUND_CUTSCENE_DONALD5_ES = 65, - STREAMED_SOUND_CUTSCENE_DONALD7_MLD = 66, - STREAMED_SOUND_CUTSCENE_DONALD4_GTA = 67, - STREAMED_SOUND_CUTSCENE_DONALD4_GTA2 = 68, - STREAMED_SOUND_CUTSCENE_DONALD6_STS = 69, - STREAMED_SOUND_CUTSCENE_ASUKA6_BAIT = 70, - STREAMED_SOUND_CUTSCENE_ASUKA7_ETG = 71, - STREAMED_SOUND_CUTSCENE_ASUKA8_PS = 72, - STREAMED_SOUND_CUTSCENE_ASUKA9_ASD = 73, - STREAMED_SOUND_CUTSCENE_KENJI4_SHI2 = 74, - STREAMED_SOUND_CUTSCENE_CATALINA1_TEX = 75, - STREAMED_SOUND_CUTSCENE_ELBURRO1_PH1 = 76, - STREAMED_SOUND_CUTSCENE_ELBURRO2_PH2 = 77, - STREAMED_SOUND_CUTSCENE_ELBURRO3_PH3 = 78, - STREAMED_SOUND_CUTSCENE_ELBURRO4_PH4 = 79, - STREAMED_SOUND_CUTSCENE_YARDIE_PH1 = 80, - STREAMED_SOUND_CUTSCENE_YARDIE_PH2 = 81, - STREAMED_SOUND_CUTSCENE_YARDIE_PH3 = 82, - STREAMED_SOUND_CUTSCENE_YARDIE_PH4 = 83, - STREAMED_SOUND_CUTSCENE_HOODS_PH1 = 84, - STREAMED_SOUND_CUTSCENE_HOODS_PH2 = 85, - STREAMED_SOUND_CUTSCENE_HOODS_PH3 = 86, - STREAMED_SOUND_CUTSCENE_HOODS_PH4 = 87, - STREAMED_SOUND_CUTSCENE_HOODS_PH5 = 88, - STREAMED_SOUND_CUTSCENE_MARTY_PH1 = 89, - STREAMED_SOUND_CUTSCENE_MARTY_PH2 = 90, - STREAMED_SOUND_CUTSCENE_MARTY_PH3 = 91, - STREAMED_SOUND_CUTSCENE_MARTY_PH4 = 92, - STREAMED_SOUND_MISSION_COMPLETED = 93, - STREAMED_SOUND_GAME_COMPLETED = 94, - STREAMED_SOUND_MISSION_LIB_A1 = 95, - STREAMED_SOUND_MISSION_LIB_A2 = 96, - STREAMED_SOUND_MISSION_LIB_A = 97, - STREAMED_SOUND_MISSION_LIB_B = 98, - STREAMED_SOUND_MISSION_LIB_C = 99, - STREAMED_SOUND_MISSION_LIB_D = 100, - STREAMED_SOUND_MISSION_L2_A = 101, - STREAMED_SOUND_MISSION_J4T_1 = 102, - STREAMED_SOUND_MISSION_J4T_2 = 103, - STREAMED_SOUND_MISSION_J4T_3 = 104, - STREAMED_SOUND_MISSION_J4T_4 = 105, - STREAMED_SOUND_MISSION_J4_A = 106, - STREAMED_SOUND_MISSION_J4_B = 107, - STREAMED_SOUND_MISSION_J4_C = 108, - STREAMED_SOUND_MISSION_J4_D = 109, - STREAMED_SOUND_MISSION_J4_E = 110, - STREAMED_SOUND_MISSION_J4_F = 111, - STREAMED_SOUND_MISSION_J6_1 = 112, - STREAMED_SOUND_MISSION_J6_A = 113, - STREAMED_SOUND_MISSION_J6_B = 114, - STREAMED_SOUND_MISSION_J6_C = 115, - STREAMED_SOUND_MISSION_J6_D = 116, - STREAMED_SOUND_MISSION_T4_A = 117, - STREAMED_SOUND_MISSION_S1_A = 118, - STREAMED_SOUND_MISSION_S1_A1 = 119, - STREAMED_SOUND_MISSION_S1_B = 120, - STREAMED_SOUND_MISSION_S1_C = 121, - STREAMED_SOUND_MISSION_S1_C1 = 122, - STREAMED_SOUND_MISSION_S1_D = 123, - STREAMED_SOUND_MISSION_S1_E = 124, - STREAMED_SOUND_MISSION_S1_F = 125, - STREAMED_SOUND_MISSION_S1_G = 126, - STREAMED_SOUND_MISSION_S1_H = 127, - STREAMED_SOUND_MISSION_S1_I = 128, - STREAMED_SOUND_MISSION_S1_J = 129, - STREAMED_SOUND_MISSION_S1_K = 130, - STREAMED_SOUND_MISSION_S1_L = 131, - STREAMED_SOUND_MISSION_S3_A = 132, - STREAMED_SOUND_MISSION_S3_B = 133, - STREAMED_SOUND_MISSION_EL3_A = 134, - STREAMED_SOUND_MISSION_MF1_A = 135, - STREAMED_SOUND_MISSION_MF2_A = 136, - STREAMED_SOUND_MISSION_MF3_A = 137, - STREAMED_SOUND_MISSION_MF3_B = 138, - STREAMED_SOUND_MISSION_MF3_B1 = 139, - STREAMED_SOUND_MISSION_MF3_C = 140, - STREAMED_SOUND_MISSION_MF4_A = 141, - STREAMED_SOUND_MISSION_MF4_B = 142, - STREAMED_SOUND_MISSION_MF4_C = 143, - STREAMED_SOUND_MISSION_A1_A = 144, - STREAMED_SOUND_MISSION_A3_A = 145, - STREAMED_SOUND_MISSION_A5_A = 146, - STREAMED_SOUND_MISSION_A4_A = 147, - STREAMED_SOUND_MISSION_A4_B = 148, - STREAMED_SOUND_MISSION_A4_C = 149, - STREAMED_SOUND_MISSION_A4_D = 150, - STREAMED_SOUND_MISSION_K1_A = 151, - STREAMED_SOUND_MISSION_K3_A = 152, - STREAMED_SOUND_MISSION_R1_A = 153, - STREAMED_SOUND_MISSION_R2_A = 154, - STREAMED_SOUND_MISSION_R2_B = 155, - STREAMED_SOUND_MISSION_R2_C = 156, - STREAMED_SOUND_MISSION_R2_D = 157, - STREAMED_SOUND_MISSION_R2_E = 158, - STREAMED_SOUND_MISSION_R2_F = 159, - STREAMED_SOUND_MISSION_R2_G = 160, - STREAMED_SOUND_MISSION_R2_H = 161, - STREAMED_SOUND_MISSION_R5_A = 162, - STREAMED_SOUND_MISSION_R6_A = 163, - STREAMED_SOUND_MISSION_R6_A1 = 164, - STREAMED_SOUND_MISSION_R6_B = 165, - STREAMED_SOUND_MISSION_LO2_A = 166, - STREAMED_SOUND_MISSION_LO6_A = 167, - STREAMED_SOUND_MISSION_YD2_A = 168, - STREAMED_SOUND_MISSION_YD2_B = 169, - STREAMED_SOUND_MISSION_YD2_C = 170, - STREAMED_SOUND_MISSION_YD2_C1 = 171, - STREAMED_SOUND_MISSION_YD2_D = 172, - STREAMED_SOUND_MISSION_YD2_E = 173, - STREAMED_SOUND_MISSION_YD2_F = 174, - STREAMED_SOUND_MISSION_YD2_G = 175, - STREAMED_SOUND_MISSION_YD2_H = 176, - STREAMED_SOUND_MISSION_YD2_ASS = 177, - STREAMED_SOUND_MISSION_YD2_OK = 178, - STREAMED_SOUND_MISSION_H5_A = 179, - STREAMED_SOUND_MISSION_H5_B = 180, - STREAMED_SOUND_MISSION_H5_C = 181, - STREAMED_SOUND_MISSION_AMMU_A = 182, - STREAMED_SOUND_MISSION_AMMU_B = 183, - STREAMED_SOUND_MISSION_AMMU_C = 184, - STREAMED_SOUND_MISSION_DOOR_1 = 185, - STREAMED_SOUND_MISSION_DOOR_2 = 186, - STREAMED_SOUND_MISSION_DOOR_3 = 187, - STREAMED_SOUND_MISSION_DOOR_4 = 188, - STREAMED_SOUND_MISSION_DOOR_5 = 189, - STREAMED_SOUND_MISSION_DOOR_6 = 190, - STREAMED_SOUND_MISSION_T3_A = 191, - STREAMED_SOUND_MISSION_T3_B = 192, - STREAMED_SOUND_MISSION_T3_C = 193, - STREAMED_SOUND_MISSION_K1_B = 194, - STREAMED_SOUND_MISSION_CAT1 = 195, - TOTAL_STREAMED_SOUNDS = 196, - NO_STREAMED_SOUND = 197, + STREAMED_SOUND_RADIO_HEAD, + STREAMED_SOUND_RADIO_CLASSIC, + STREAMED_SOUND_RADIO_KJAH, + STREAMED_SOUND_RADIO_RISE, + STREAMED_SOUND_RADIO_LIPS, + STREAMED_SOUND_RADIO_GAME, + STREAMED_SOUND_RADIO_MSX, + STREAMED_SOUND_RADIO_FLASH, + STREAMED_SOUND_RADIO_CHAT, + STREAMED_SOUND_RADIO_MP3_PLAYER, + STREAMED_SOUND_RADIO_POLICE, + STREAMED_SOUND_CITY_AMBIENT, + STREAMED_SOUND_WATER_AMBIENT, + STREAMED_SOUND_ANNOUNCE_COMMERCIAL_OPEN, + STREAMED_SOUND_ANNOUNCE_SUBURBAN_OPEN, + STREAMED_SOUND_NEWS_INTRO, + STREAMED_SOUND_BANK_INTRO, + STREAMED_SOUND_CUTSCENE_LUIGI1_LG, + STREAMED_SOUND_CUTSCENE_LUIGI2_DSB, + STREAMED_SOUND_CUTSCENE_LUIGI3_DM, + STREAMED_SOUND_CUTSCENE_LUIGI4_PAP, + STREAMED_SOUND_CUTSCENE_LUIGI5_TFB, + STREAMED_SOUND_CUTSCENE_JOEY0_DM2, + STREAMED_SOUND_CUTSCENE_JOEY1_LFL, + STREAMED_SOUND_CUTSCENE_JOEY2_KCL, + STREAMED_SOUND_CUTSCENE_JOEY3_VH, + STREAMED_SOUND_CUTSCENE_JOEY4_ETH, + STREAMED_SOUND_CUTSCENE_JOEY5_DST, + STREAMED_SOUND_CUTSCENE_JOEY6_TBJ, + STREAMED_SOUND_CUTSCENE_TONI1_TOL, + STREAMED_SOUND_CUTSCENE_TONI2_TPU, + STREAMED_SOUND_CUTSCENE_TONI3_MAS, + STREAMED_SOUND_CUTSCENE_TONI4_TAT, + STREAMED_SOUND_CUTSCENE_TONI5_BF, + STREAMED_SOUND_CUTSCENE_SAL0_MAS, + STREAMED_SOUND_CUTSCENE_SAL1_PF, + STREAMED_SOUND_CUTSCENE_SAL2_CTG, + STREAMED_SOUND_CUTSCENE_SAL3_RTC, + STREAMED_SOUND_CUTSCENE_SAL5_LRQ, + STREAMED_SOUND_CUTSCENE_SAL4_BDBA, + STREAMED_SOUND_CUTSCENE_SAL4_BDBB, + STREAMED_SOUND_CUTSCENE_SAL2_CTG2, + STREAMED_SOUND_CUTSCENE_SAL4_BDBD, + STREAMED_SOUND_CUTSCENE_SAL5_LRQB, + STREAMED_SOUND_CUTSCENE_SAL5_LRQC, + STREAMED_SOUND_CUTSCENE_ASUKA_1_SSO, + STREAMED_SOUND_CUTSCENE_ASUKA_2_PP, + STREAMED_SOUND_CUTSCENE_ASUKA_3_SS, + STREAMED_SOUND_CUTSCENE_ASUKA_4_PDR, + STREAMED_SOUND_CUTSCENE_ASUKA_5_K2FT, + STREAMED_SOUND_CUTSCENE_KENJI1_KBO, + STREAMED_SOUND_CUTSCENE_KENJI2_GIS, + STREAMED_SOUND_CUTSCENE_KENJI3_DS, + STREAMED_SOUND_CUTSCENE_KENJI4_SHI, + STREAMED_SOUND_CUTSCENE_KENJI5_SD, + STREAMED_SOUND_CUTSCENE_RAY0_PDR2, + STREAMED_SOUND_CUTSCENE_RAY1_SW, + STREAMED_SOUND_CUTSCENE_RAY2_AP, + STREAMED_SOUND_CUTSCENE_RAY3_ED, + STREAMED_SOUND_CUTSCENE_RAY4_GF, + STREAMED_SOUND_CUTSCENE_RAY5_PB, + STREAMED_SOUND_CUTSCENE_RAY6_MM, + STREAMED_SOUND_CUTSCENE_DONALD1_STOG, + STREAMED_SOUND_CUTSCENE_DONALD2_KK, + STREAMED_SOUND_CUTSCENE_DONALD3_ADO, + STREAMED_SOUND_CUTSCENE_DONALD5_ES, + STREAMED_SOUND_CUTSCENE_DONALD7_MLD, + STREAMED_SOUND_CUTSCENE_DONALD4_GTA, + STREAMED_SOUND_CUTSCENE_DONALD4_GTA2, + STREAMED_SOUND_CUTSCENE_DONALD6_STS, + STREAMED_SOUND_CUTSCENE_ASUKA6_BAIT, + STREAMED_SOUND_CUTSCENE_ASUKA7_ETG, + STREAMED_SOUND_CUTSCENE_ASUKA8_PS, + STREAMED_SOUND_CUTSCENE_ASUKA9_ASD, + STREAMED_SOUND_CUTSCENE_KENJI4_SHI2, + STREAMED_SOUND_CUTSCENE_CATALINA1_TEX, + STREAMED_SOUND_CUTSCENE_ELBURRO1_PH1, + STREAMED_SOUND_CUTSCENE_ELBURRO2_PH2, + STREAMED_SOUND_CUTSCENE_ELBURRO3_PH3, + STREAMED_SOUND_CUTSCENE_ELBURRO4_PH4, + STREAMED_SOUND_CUTSCENE_YARDIE_PH1, + STREAMED_SOUND_CUTSCENE_YARDIE_PH2, + STREAMED_SOUND_CUTSCENE_YARDIE_PH3, + STREAMED_SOUND_CUTSCENE_YARDIE_PH4, + STREAMED_SOUND_CUTSCENE_HOODS_PH1, + STREAMED_SOUND_CUTSCENE_HOODS_PH2, + STREAMED_SOUND_CUTSCENE_HOODS_PH3, + STREAMED_SOUND_CUTSCENE_HOODS_PH4, + STREAMED_SOUND_CUTSCENE_HOODS_PH5, + STREAMED_SOUND_CUTSCENE_MARTY_PH1, + STREAMED_SOUND_CUTSCENE_MARTY_PH2, + STREAMED_SOUND_CUTSCENE_MARTY_PH3, + STREAMED_SOUND_CUTSCENE_MARTY_PH4, + STREAMED_SOUND_MISSION_COMPLETED, + STREAMED_SOUND_GAME_COMPLETED, + STREAMED_SOUND_MISSION_LIB_A1, + STREAMED_SOUND_MISSION_LIB_A2, + STREAMED_SOUND_MISSION_LIB_A, + STREAMED_SOUND_MISSION_LIB_B, + STREAMED_SOUND_MISSION_LIB_C, + STREAMED_SOUND_MISSION_LIB_D, + STREAMED_SOUND_MISSION_L2_A, + STREAMED_SOUND_MISSION_J4T_1, + STREAMED_SOUND_MISSION_J4T_2, + STREAMED_SOUND_MISSION_J4T_3, + STREAMED_SOUND_MISSION_J4T_4, + STREAMED_SOUND_MISSION_J4_A, + STREAMED_SOUND_MISSION_J4_B, + STREAMED_SOUND_MISSION_J4_C, + STREAMED_SOUND_MISSION_J4_D, + STREAMED_SOUND_MISSION_J4_E, + STREAMED_SOUND_MISSION_J4_F, + STREAMED_SOUND_MISSION_J6_1, + STREAMED_SOUND_MISSION_J6_A, + STREAMED_SOUND_MISSION_J6_B, + STREAMED_SOUND_MISSION_J6_C, + STREAMED_SOUND_MISSION_J6_D, + STREAMED_SOUND_MISSION_T4_A, + STREAMED_SOUND_MISSION_S1_A, + STREAMED_SOUND_MISSION_S1_A1, + STREAMED_SOUND_MISSION_S1_B, + STREAMED_SOUND_MISSION_S1_C, + STREAMED_SOUND_MISSION_S1_C1, + STREAMED_SOUND_MISSION_S1_D, + STREAMED_SOUND_MISSION_S1_E, + STREAMED_SOUND_MISSION_S1_F, + STREAMED_SOUND_MISSION_S1_G, + STREAMED_SOUND_MISSION_S1_H, + STREAMED_SOUND_MISSION_S1_I, + STREAMED_SOUND_MISSION_S1_J, + STREAMED_SOUND_MISSION_S1_K, + STREAMED_SOUND_MISSION_S1_L, + STREAMED_SOUND_MISSION_S3_A, + STREAMED_SOUND_MISSION_S3_B, + STREAMED_SOUND_MISSION_EL3_A, + STREAMED_SOUND_MISSION_MF1_A, + STREAMED_SOUND_MISSION_MF2_A, + STREAMED_SOUND_MISSION_MF3_A, + STREAMED_SOUND_MISSION_MF3_B, + STREAMED_SOUND_MISSION_MF3_B1, + STREAMED_SOUND_MISSION_MF3_C, + STREAMED_SOUND_MISSION_MF4_A, + STREAMED_SOUND_MISSION_MF4_B, + STREAMED_SOUND_MISSION_MF4_C, + STREAMED_SOUND_MISSION_A1_A, + STREAMED_SOUND_MISSION_A3_A, + STREAMED_SOUND_MISSION_A5_A, + STREAMED_SOUND_MISSION_A4_A, + STREAMED_SOUND_MISSION_A4_B, + STREAMED_SOUND_MISSION_A4_C, + STREAMED_SOUND_MISSION_A4_D, + STREAMED_SOUND_MISSION_K1_A, + STREAMED_SOUND_MISSION_K3_A, + STREAMED_SOUND_MISSION_R1_A, + STREAMED_SOUND_MISSION_R2_A, + STREAMED_SOUND_MISSION_R2_B, + STREAMED_SOUND_MISSION_R2_C, + STREAMED_SOUND_MISSION_R2_D, + STREAMED_SOUND_MISSION_R2_E, + STREAMED_SOUND_MISSION_R2_F, + STREAMED_SOUND_MISSION_R2_G, + STREAMED_SOUND_MISSION_R2_H, + STREAMED_SOUND_MISSION_R5_A, + STREAMED_SOUND_MISSION_R6_A, + STREAMED_SOUND_MISSION_R6_A1, + STREAMED_SOUND_MISSION_R6_B, + STREAMED_SOUND_MISSION_LO2_A, + STREAMED_SOUND_MISSION_LO6_A, + STREAMED_SOUND_MISSION_YD2_A, + STREAMED_SOUND_MISSION_YD2_B, + STREAMED_SOUND_MISSION_YD2_C, + STREAMED_SOUND_MISSION_YD2_C1, + STREAMED_SOUND_MISSION_YD2_D, + STREAMED_SOUND_MISSION_YD2_E, + STREAMED_SOUND_MISSION_YD2_F, + STREAMED_SOUND_MISSION_YD2_G, + STREAMED_SOUND_MISSION_YD2_H, + STREAMED_SOUND_MISSION_YD2_ASS, + STREAMED_SOUND_MISSION_YD2_OK, + STREAMED_SOUND_MISSION_H5_A, + STREAMED_SOUND_MISSION_H5_B, + STREAMED_SOUND_MISSION_H5_C, + STREAMED_SOUND_MISSION_AMMU_A, + STREAMED_SOUND_MISSION_AMMU_B, + STREAMED_SOUND_MISSION_AMMU_C, + STREAMED_SOUND_MISSION_DOOR_1, + STREAMED_SOUND_MISSION_DOOR_2, + STREAMED_SOUND_MISSION_DOOR_3, + STREAMED_SOUND_MISSION_DOOR_4, + STREAMED_SOUND_MISSION_DOOR_5, + STREAMED_SOUND_MISSION_DOOR_6, + STREAMED_SOUND_MISSION_T3_A, + STREAMED_SOUND_MISSION_T3_B, + STREAMED_SOUND_MISSION_T3_C, + STREAMED_SOUND_MISSION_K1_B, + STREAMED_SOUND_MISSION_CAT1, + TOTAL_STREAMED_SOUNDS, + NO_STREAMED_SOUND, }; enum AudioEntityHandle { diff --git a/src/core/Camera.h b/src/core/Camera.h index 3e67903f..6b631ee2 100644 --- a/src/core/Camera.h +++ b/src/core/Camera.h @@ -515,6 +515,7 @@ int m_iModeObbeCamIsInForCar; void dtor(void) { this->CCamera::~CCamera(); } }; +static_assert(offsetof(CCamera, DistanceToWater) == 0xe4, "CCamera: error"); static_assert(offsetof(CCamera, m_WideScreenOn) == 0x70, "CCamera: error"); static_assert(offsetof(CCamera, WorldViewerBeingUsed) == 0x75, "CCamera: error"); static_assert(offsetof(CCamera, m_uiNumberOfTrainCamNodes) == 0x84, "CCamera: error"); diff --git a/src/core/ControllerConfig.h b/src/core/ControllerConfig.h index e04f9583..458e457c 100644 --- a/src/core/ControllerConfig.h +++ b/src/core/ControllerConfig.h @@ -116,6 +116,8 @@ public: #ifdef __DINPUT_INCLUDED__ DIJOYSTATE2 m_OldState; DIJOYSTATE2 m_NewState; +#else + uint8 ___padd[0x110 * 2]; #endif wchar m_aActionNames[MAX_CONTROLLERACTIONS][ACTIONNAME_LENGTH]; bool m_aButtonStates[MAX_BUTTONS]; diff --git a/src/core/World.cpp b/src/core/World.cpp index 0b389e42..c914b647 100644 --- a/src/core/World.cpp +++ b/src/core/World.cpp @@ -864,10 +864,9 @@ CVehicle* FindPlayerVehicle(void) { CPlayerPed *ped = FindPlayerPed(); - if(ped->InVehicle()) + if(ped && ped->InVehicle()) return ped->m_pMyVehicle; - else - return nil; + return nil; } CVehicle* diff --git a/src/skel/win/win.cpp b/src/skel/win/win.cpp index 2492c2de..337055c5 100644 --- a/src/skel/win/win.cpp +++ b/src/skel/win/win.cpp @@ -2134,7 +2134,7 @@ _WinMain(HINSTANCE instance, CPad::ResetCheats(); CPad::StopPadsShaking(); - DMAudio.ChangeMusicMode(MUSICMODE_OFF); + DMAudio.ChangeMusicMode(MUSICMODE_DISABLE); CTimer::Stop(); From d1700b32570da625e6d8b0605b792cfac79e7d7c Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Fri, 7 Feb 2020 21:38:38 +0200 Subject: [PATCH 7/9] Fixed random sound volume --- src/audio/AudioManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp index 9cd22533..89abee8d 100644 --- a/src/audio/AudioManager.cpp +++ b/src/audio/AudioManager.cpp @@ -8141,7 +8141,7 @@ cAudioManager::AdjustSamplesVolume() for(int i = 0; i < m_bSampleRequestQueuesStatus[m_bActiveSampleQueue]; i++) { tSound* pSample = &m_asSamples[m_bActiveSampleQueue][m_abSampleQueueIndexTable[m_bActiveSampleQueue][i] + 1]; - if(!pSample->m_bBankIndex) // all non-speech sounds on PC + if(!pSample->m_bIsDistant) pSample->m_bEmittingVolume = ComputeEmittingVolume( pSample->m_bEmittingVolume, pSample->m_fSoundIntensity, pSample->m_fDistance); } From f307839a2b9ee23a67ada9cff60fa6a1b9d2b708 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?eray=20or=C3=A7unus?= Date: Thu, 13 Feb 2020 02:33:21 +0300 Subject: [PATCH 8/9] CPlayerPed done --- README.md | 1 - src/core/Frontend.cpp | 2 +- src/core/Pad.h | 2 + src/core/Wanted.cpp | 1 + src/core/Wanted.h | 1 + src/peds/Ped.h | 4 +- src/peds/PlayerPed.cpp | 364 +++++++++++++++++++++++++++++++- src/peds/PlayerPed.h | 3 +- src/save/GenericGameStorage.cpp | 2 - src/save/GenericGameStorage.h | 3 +- src/save/PCSave.cpp | 2 + src/save/PCSave.h | 2 + 12 files changed, 369 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 3bcd6824..ba6d04c3 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,6 @@ CMotionBlurStreaks CObject CPacManPickups CPedPath -CPlayerPed CPopulation CRadar CRecordDataForChase diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 113ae345..751ca23f 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -448,7 +448,7 @@ void CMenuManager::Draw() str = TheText.Get(aScreens[m_nCurrScreen].m_aEntries[0].m_EntryName); break; case MENUPAGE_SAVE_OVERWRITE_CONFIRM: - if (Slots[m_nCurrSaveSlot] == SLOT_EMPTY) + if (Slots[m_nCurrSaveSlot + 1] == SLOT_EMPTY) str = TheText.Get("FESZ_QZ"); else str = TheText.Get(aScreens[m_nCurrScreen].m_aEntries[0].m_EntryName); diff --git a/src/core/Pad.h b/src/core/Pad.h index 03b734cb..f4a07cae 100644 --- a/src/core/Pad.h +++ b/src/core/Pad.h @@ -389,6 +389,8 @@ public: bool GetRightShoulder1JustDown() { return !!(NewState.RightShoulder1 && !OldState.RightShoulder1); } bool GetRightShoulder2JustDown() { return !!(NewState.RightShoulder2 && !OldState.RightShoulder2); } bool GetStartJustDown() { return !!(NewState.Start && !OldState.Start); } + bool GetLeftStickXJustDown() { return !!(NewState.LeftStickX && !OldState.LeftStickX); } + bool GetLeftStickYJustDown() { return !!(NewState.LeftStickY && !OldState.LeftStickY); } bool GetTriangle() { return !!NewState.Triangle; } bool GetCircle() { return !!NewState.Circle; } diff --git a/src/core/Wanted.cpp b/src/core/Wanted.cpp index bafe0ae1..7af753e8 100644 --- a/src/core/Wanted.cpp +++ b/src/core/Wanted.cpp @@ -13,6 +13,7 @@ int32 &CWanted::MaximumWantedLevel = *(int32*)0x5F7714; // 6 int32 &CWanted::nMaximumWantedLevel = *(int32*)0x5F7718; // 6400 WRAPPER void CWanted::Reset() { EAXJMP(0x4AD790) }; +WRAPPER void CWanted::Update() { EAXJMP(0x4AD7B0) }; void CWanted::Initialise() diff --git a/src/core/Wanted.h b/src/core/Wanted.h index c908a4e5..f6dbe8d0 100644 --- a/src/core/Wanted.h +++ b/src/core/Wanted.h @@ -78,6 +78,7 @@ public: void ReportCrimeNow(eCrimeType type, const CVector &coors, bool policeDoesntCare); void UpdateWantedLevel(); void Reset(); + void Update(); bool IsIgnored(void) { return m_bIgnoredByCops || m_bIgnoredByEveryone; } diff --git a/src/peds/Ped.h b/src/peds/Ped.h index 50c1fc39..b18b23fc 100644 --- a/src/peds/Ped.h +++ b/src/peds/Ped.h @@ -530,8 +530,8 @@ public: void AimGun(void); void KillPedWithCar(CVehicle *veh, float impulse); void Say(uint16 audio); - void SetLookFlag(CEntity *target, bool unknown); - void SetLookFlag(float direction, bool unknown); + void SetLookFlag(CEntity *target, bool keepTryingToLook); + void SetLookFlag(float direction, bool keepTryingToLook); void SetLookTimer(int time); void SetDie(AnimationId anim, float arg1, float arg2); void SetDead(void); diff --git a/src/peds/PlayerPed.cpp b/src/peds/PlayerPed.cpp index b5256cff..78a1de99 100644 --- a/src/peds/PlayerPed.cpp +++ b/src/peds/PlayerPed.cpp @@ -11,13 +11,13 @@ #include "Darkel.h" #include "CarCtrl.h" +#define PAD_MOVE_TO_GAME_WORLD_MOVE 60.0f + CPlayerPed::~CPlayerPed() { delete m_pWanted; } -WRAPPER void CPlayerPed::ProcessControl(void) { EAXJMP(0x4EFD90); } - CPlayerPed::CPlayerPed(void) : CPed(PEDTYPE_PLAYER1) { m_fMoveSpeed = 0.0f; @@ -30,13 +30,13 @@ CPlayerPed::CPlayerPed(void) : CPed(PEDTYPE_PLAYER1) m_currentWeapon = WEAPONTYPE_UNARMED; m_nSelectedWepSlot = WEAPONTYPE_UNARMED; m_nSpeedTimer = 0; - m_bSpeedTimerFlag = 0; + m_bSpeedTimerFlag = false; m_pPointGunAt = nil; m_nPedState = PED_IDLE; m_fMaxStamina = 150.0f; m_fCurrentStamina = m_fMaxStamina; m_fStaminaProgress = 0.0f; - m_bShouldEvade = 0; + m_bShouldEvade = false; field_1367 = 0; m_nShotDelay = 0; field_1376 = 0.0f; @@ -651,12 +651,12 @@ CPlayerPed::PlayerControlFighter(CPad *padUsed) { float leftRight = padUsed->GetPedWalkLeftRight(); float upDown = padUsed->GetPedWalkUpDown(); - float padMove = Sqrt(upDown * upDown + leftRight * leftRight); + float padMove = CVector2D(leftRight, upDown).Magnitude(); if (padMove > 0.0f) { m_fRotationDest = CGeneral::GetRadianAngleBetweenPoints(0.0f, 0.0f, -leftRight, upDown) - TheCamera.Orientation; - m_takeAStepAfterAttack = padMove > 120.0f; - if (padUsed->GetSprint() && padMove > 60.0f) + m_takeAStepAfterAttack = padMove > 2 * PAD_MOVE_TO_GAME_WORLD_MOVE; + if (padUsed->GetSprint() && padMove > 1 * PAD_MOVE_TO_GAME_WORLD_MOVE) bIsAttacking = false; } @@ -676,8 +676,8 @@ CPlayerPed::PlayerControl1stPersonRunAround(CPad *padUsed) { float leftRight = padUsed->GetPedWalkLeftRight(); float upDown = padUsed->GetPedWalkUpDown(); - float padMove = Sqrt(upDown * upDown + leftRight * leftRight); - float padMoveInGameUnit = padMove / 60.0f; + float padMove = CVector2D(leftRight, upDown).Magnitude(); + float padMoveInGameUnit = padMove / PAD_MOVE_TO_GAME_WORLD_MOVE; if (padMoveInGameUnit > 0.0f) { m_fRotationDest = CGeneral::LimitRadianAngle(TheCamera.Orientation); m_fMoveSpeed = min(padMoveInGameUnit, 0.07f * CTimer::GetTimeStep() + m_fMoveSpeed); @@ -1066,18 +1066,364 @@ CPlayerPed::ProcessPlayerWeapon(CPad *padUsed) m_bHasLockOnTarget = m_pPointGunAt != nil; } +void +CPlayerPed::PlayerControlZelda(CPad *padUsed) +{ + bool doSmoothSpray = DoWeaponSmoothSpray(); + float camOrientation = TheCamera.Orientation; + float leftRight = padUsed->GetPedWalkLeftRight(); + float upDown = padUsed->GetPedWalkUpDown(); + float padMoveInGameUnit; + bool smoothSprayWithoutMove = false; + + if (doSmoothSpray && upDown > 0.0f) { + padMoveInGameUnit = 0.0f; + smoothSprayWithoutMove = true; + } else { + padMoveInGameUnit = CVector2D(leftRight, upDown).Magnitude() / PAD_MOVE_TO_GAME_WORLD_MOVE; + } + + if (padMoveInGameUnit > 0.0f || smoothSprayWithoutMove) { + float padHeading = CGeneral::GetRadianAngleBetweenPoints(0.0f, 0.0f, -leftRight, upDown); + float neededTurn = CGeneral::LimitRadianAngle(padHeading - camOrientation); + if (doSmoothSpray) { + if (GetWeapon()->m_eWeaponType == WEAPONTYPE_FLAMETHROWER || GetWeapon()->m_eWeaponType == WEAPONTYPE_COLT45 + || GetWeapon()->m_eWeaponType == WEAPONTYPE_UZI) + m_fRotationDest = m_fRotationCur - leftRight / 128.0f * (PI / 80.0f) * CTimer::GetTimeStep(); + else + m_fRotationDest = m_fRotationCur - leftRight / 128.0f * (PI / 128.0f) * CTimer::GetTimeStep(); + } else { + m_fRotationDest = neededTurn; + } + + float maxAcc = 0.07f * CTimer::GetTimeStep(); + m_fMoveSpeed = min(padMoveInGameUnit, m_fMoveSpeed + maxAcc); + + } else { + m_fMoveSpeed = 0.0f; + } + + if (m_nPedState == PED_JUMP) { + if (bIsInTheAir) { + if (bUsesCollision && !bHitSteepSlope && + (!bHitSomethingLastFrame || m_vecDamageNormal.z > 0.6f) + && m_fDistanceTravelled < CTimer::GetTimeStep() * 0.02 && m_vecMoveSpeed.MagnitudeSqr() < 0.01f) { + + float angleSin = Sin(m_fRotationCur); // originally sin(DEGTORAD(RADTODEG(m_fRotationCur))) o_O + float angleCos = Cos(m_fRotationCur); + ApplyMoveForce(-angleSin * 3.0f, 3.0f * angleCos, 0.05f); + } + } else if (bIsLanding) { + m_fMoveSpeed = 0.0f; + } + } + + if (!(CWeaponInfo::GetWeaponInfo(GetWeapon()->m_eWeaponType)->m_bHeavy) + && padUsed->GetSprint()) { + m_nMoveState = PEDMOVE_SPRINT; + } + if (m_nPedState != PED_FIGHT) + SetRealMoveAnim(); + + if (!bIsInTheAir && !(CWeaponInfo::GetWeaponInfo(GetWeapon()->m_eWeaponType)->m_bHeavy) + && padUsed->JumpJustDown() && m_nPedState != PED_JUMP) { + ClearAttack(); + ClearWeaponTarget(); + if (m_bShouldEvade && m_pEvadingFrom) { + SetEvasiveDive((CPhysical*)m_pEvadingFrom, 1); + m_bShouldEvade = false; + m_pEvadingFrom = nil; + } else { + SetJump(); + } + } +} + +void +CPlayerPed::ProcessControl(void) +{ + if (m_bShouldEvade) + m_bShouldEvade = false; //--m_bShouldEvade; + + if (!m_bShouldEvade) + m_pEvadingFrom = nil; + + if (m_pCurrentPhysSurface && m_pCurrentPhysSurface->IsVehicle() && ((CVehicle*)m_pCurrentPhysSurface)->IsBoat()) { + bTryingToReachDryLand = true; + } else if (!(((uint8)CTimer::GetFrameCounter() + m_randomSeed) & 0xF)) { + CVehicle *nearVeh = (CVehicle*)CWorld::TestSphereAgainstWorld(GetPosition(), 7.0f, nil, + false, true, false, false, false, false); + if (nearVeh && nearVeh->IsBoat()) + bTryingToReachDryLand = true; + else + bTryingToReachDryLand = false; + } + CPed::ProcessControl(); + if (bWasPostponed) + return; + + CPad *padUsed = CPad::GetPad(0); + m_pWanted->Update(); + CEntity::PruneReferences(); + + if (m_nMoveState != PEDMOVE_RUN && m_nMoveState != PEDMOVE_SPRINT) + RestoreSprintEnergy(1.0f); + else if (m_nMoveState == PEDMOVE_RUN) + RestoreSprintEnergy(0.3f); + + if (m_nPedState == PED_DEAD) { + ClearWeaponTarget(); + return; + } + if (m_nPedState == PED_DIE) { + ClearWeaponTarget(); + if (CTimer::GetTimeInMilliseconds() > (uint32)m_bloodyFootprintCount + 4000) + SetDead(); + return; + } + if (m_nPedState == PED_DRIVING && m_objective != OBJECTIVE_LEAVE_VEHICLE) { + if (m_pMyVehicle->IsCar() && ((CAutomobile*)m_pMyVehicle)->Damage.GetDoorStatus(DOOR_FRONT_LEFT) == DOOR_STATUS_SWINGING) { + CAnimBlendAssociation *rollDoorAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_ROLLDOOR); + if (!rollDoorAssoc) { + rollDoorAssoc = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_CAR_ROLLDOOR_LOW); + } + + // These comparisons are wrong, they return uint16 + if (m_pMyVehicle->m_nGettingOutFlags & CAR_DOOR_FLAG_LF || rollDoorAssoc || padUsed + && (padUsed->GetAccelerate() != 0.0f || padUsed->GetSteeringLeftRight() != 0.0f + || padUsed->GetBrake() != 0.0f)) { + + if (rollDoorAssoc) + m_pMyVehicle->ProcessOpenDoor(CAR_DOOR_LF, ANIM_CAR_ROLLDOOR, rollDoorAssoc->currentTime); + } else { + m_pMyVehicle->m_nGettingOutFlags |= CAR_DOOR_FLAG_LF; + if (m_pMyVehicle->bLowVehicle) + rollDoorAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_ROLLDOOR_LOW); + else + rollDoorAssoc = CAnimManager::AddAnimation(GetClump(), ASSOCGRP_STD, ANIM_CAR_ROLLDOOR); + + rollDoorAssoc->SetFinishCallback(PedAnimDoorCloseRollingCB, this); + } + } + return; + } + if (m_objective == OBJECTIVE_NONE) + m_nMoveState = PEDMOVE_STILL; + if (bIsLanding) + RunningLand(padUsed); + if (padUsed && padUsed->WeaponJustDown() && m_nPedState != PED_SNIPER_MODE) { + + // ...Really? + eWeaponType playerWeapon = FindPlayerPed()->GetWeapon()->m_eWeaponType; + if (playerWeapon == WEAPONTYPE_SNIPERRIFLE) { + DMAudio.PlayFrontEndSound(SOUND_WEAPON_SNIPER_SHOT_NO_ZOOM, 0); + } else if (playerWeapon == WEAPONTYPE_ROCKETLAUNCHER) { + DMAudio.PlayFrontEndSound(SOUND_WEAPON_ROCKET_SHOT_NO_ZOOM, 0); + } + } + + switch (m_nPedState) { + case PED_NONE: + case PED_IDLE: + case PED_FLEE_POS: + case PED_FLEE_ENTITY: + case PED_ATTACK: + case PED_FIGHT: + case PED_AIM_GUN: + if (!RpAnimBlendClumpGetFirstAssociation(GetClump(), ASSOC_FLAG400)) { + if (TheCamera.Cams[0].Using3rdPersonMouseCam()) { + if (padUsed) + PlayerControl1stPersonRunAround(padUsed); + } else if (m_nPedState == PED_FIGHT) { + if (padUsed) + PlayerControlFighter(padUsed); + } else if (padUsed) { + PlayerControlZelda(padUsed); + } + } + if (IsPedInControl() && padUsed) + ProcessPlayerWeapon(padUsed); + break; + case PED_LOOK_ENTITY: + case PED_LOOK_HEADING: + case PED_WANDER_RANGE: + case PED_WANDER_PATH: + case PED_PURSUE: + case PED_FOLLOW_PATH: + case PED_ROCKET_ODE: + case PED_DUMMY: + case PED_PAUSE: + case PED_FACE_PHONE: + case PED_MAKE_CALL: + case PED_CHAT: + case PED_MUG: + case PED_AI_CONTROL: + case PED_FOLLOW_ROUTE: + case PED_CPR: + case PED_SOLICIT: + case PED_BUY_ICECREAM: + case PED_INVESTIGATE: + case PED_STEP_AWAY: + case PED_ON_FIRE: + case PED_UNKNOWN: + case PED_STATES_NO_AI: + case PED_STAGGER: + case PED_DIVE_AWAY: + case PED_STATES_NO_ST: + case PED_ARREST_PLAYER: + case PED_DRIVING: + case PED_PASSENGER: + case PED_TAXI_PASSENGER: + case PED_OPEN_DOOR: + case PED_DIE: + case PED_DEAD: + case PED_HANDS_UP: + break; + case PED_SEEK_ENTITY: + m_vecSeekPos = m_pSeekTarget->GetPosition(); + + // fall through + case PED_SEEK_POS: + switch (m_nMoveState) { + case PEDMOVE_STILL: + m_fMoveSpeed = 1.0f; + break; + case PEDMOVE_RUN: + m_fMoveSpeed = 1.8f; + break; + case PEDMOVE_SPRINT: + m_fMoveSpeed = 2.5f; + break; + default: + m_fMoveSpeed = 0.0f; + break; + } + SetRealMoveAnim(); + if (Seek()) { + RestorePreviousState(); + SetMoveState(PEDMOVE_STILL); + } + break; + case PED_SNIPER_MODE: + if (FindPlayerPed()->GetWeapon()->m_eWeaponType == WEAPONTYPE_M16) { + if (padUsed) + PlayerControlM16(padUsed); + } else if (padUsed) { + PlayerControlSniper(padUsed); + } + break; + case PED_SEEK_CAR: + case PED_SEEK_IN_BOAT: + if (bVehEnterDoorIsBlocked || bKindaStayInSamePlace) { + m_fMoveSpeed = 0.0f; + } else { + m_fMoveSpeed = min(2.0f, 2.0f * (m_vecSeekPos - GetPosition()).Magnitude2D()); + } + if (padUsed && !padUsed->ArePlayerControlsDisabled()) { + if (padUsed->GetTarget() || padUsed->GetLeftStickXJustDown() || padUsed->GetLeftStickYJustDown() || + padUsed->GetDPadUpJustDown() || padUsed->GetDPadDownJustDown() || padUsed->GetDPadLeftJustDown() || + padUsed->GetDPadRightJustDown()) { + + RestorePreviousState(); + if (m_objective == OBJECTIVE_ENTER_CAR_AS_PASSENGER || m_objective == OBJECTIVE_ENTER_CAR_AS_DRIVER) { + RestorePreviousObjective(); + } + } + } + if (padUsed && padUsed->GetSprint()) + m_nMoveState = PEDMOVE_SPRINT; + SetRealMoveAnim(); + break; + case PED_JUMP: + if (padUsed) + PlayerControlZelda(padUsed); + if (bIsLanding) + break; + + // This has been added later it seems + return; + case PED_FALL: + case PED_GETUP: + case PED_ENTER_TRAIN: + case PED_EXIT_TRAIN: + case PED_CARJACK: + case PED_DRAG_FROM_CAR: + case PED_ENTER_CAR: + case PED_STEAL_CAR: + case PED_EXIT_CAR: + ClearWeaponTarget(); + break; + case PED_ARRESTED: + if (m_nLastPedState == PED_DRAG_FROM_CAR && m_pVehicleAnim) + BeingDraggedFromCar(); + break; + } + if (padUsed && IsPedShootable()) { + ProcessWeaponSwitch(padUsed); + GetWeapon()->Update(m_audioEntityId); + } + ProcessAnimGroups(); + if (padUsed) { + if (TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_FOLLOWPED + && TheCamera.Cams[TheCamera.ActiveCam].DirectionWasLooking == LOOKING_BEHIND) { + + m_lookTimer = 0; + float camAngle = CGeneral::LimitRadianAngle(TheCamera.Cams[TheCamera.ActiveCam].Front.Heading()); + float angleBetweenPlayerAndCam = Abs(camAngle - m_fRotationCur); + if (m_nPedState != PED_ATTACK + && angleBetweenPlayerAndCam > DEGTORAD(30.0f) && angleBetweenPlayerAndCam < DEGTORAD(330.0f)) { + + if (angleBetweenPlayerAndCam > DEGTORAD(150.0f) && angleBetweenPlayerAndCam < DEGTORAD(210.0f)) { + float rightTurnAngle = CGeneral::LimitRadianAngle(m_fRotationCur - DEGTORAD(150.0f)); + float leftTurnAngle = CGeneral::LimitRadianAngle(DEGTORAD(150.0f) + m_fRotationCur); + if (m_fLookDirection != 999999.0f) { + if (Abs(rightTurnAngle - m_fLookDirection) < Abs(leftTurnAngle - m_fLookDirection)) + camAngle = rightTurnAngle; + else + camAngle = leftTurnAngle; + } else { + camAngle = rightTurnAngle; + } + } + SetLookFlag(camAngle, true); + SetLookTimer(CTimer::GetTimeStepInMilliseconds() * 5.0f); + } else { + ClearLookFlag(); + } + } + } + if (m_nMoveState == PEDMOVE_SPRINT && bIsLooking) { + ClearLookFlag(); + SetLookTimer(250); + } + + if (m_vecMoveSpeed.Magnitude2D() < 0.1f) { + if (m_nSpeedTimer) { + if (CTimer::GetTimeInMilliseconds() > m_nSpeedTimer) + m_bSpeedTimerFlag = true; + } else { + m_nSpeedTimer = CTimer::GetTimeInMilliseconds() + 500; + } + } else { + m_nSpeedTimer = 0; + m_bSpeedTimerFlag = false; + } +} + class CPlayerPed_ : public CPlayerPed { public: CPlayerPed* ctor(void) { return ::new (this) CPlayerPed(); } void dtor(void) { CPlayerPed::~CPlayerPed(); } void SetMoveAnim_(void) { CPlayerPed::SetMoveAnim(); } + void ProcessControl_(void) { CPlayerPed::ProcessControl(); } }; STARTPATCHES InjectHook(0x4EF7E0, &CPlayerPed_::ctor, PATCH_JUMP); InjectHook(0x4EFB30, &CPlayerPed_::dtor, PATCH_JUMP); InjectHook(0x4F3760, &CPlayerPed_::SetMoveAnim_, PATCH_JUMP); + InjectHook(0x4EFD90, &CPlayerPed_::ProcessControl_, PATCH_JUMP); InjectHook(0x4F28A0, &CPlayerPed::ClearWeaponTarget, PATCH_JUMP); InjectHook(0x4F3700, &CPlayerPed::AnnoyPlayerPed, PATCH_JUMP); InjectHook(0x4F36C0, &CPlayerPed::GetPlayerInfoForThisPlayerPed, PATCH_JUMP); diff --git a/src/peds/PlayerPed.h b/src/peds/PlayerPed.h index 0bba7ed3..0da15412 100644 --- a/src/peds/PlayerPed.h +++ b/src/peds/PlayerPed.h @@ -17,7 +17,7 @@ public: bool m_bSpeedTimerFlag; bool m_bShouldEvade; int8 field_1367; - int32 m_nSpeedTimer; + uint32 m_nSpeedTimer; int32 m_nShotDelay; float field_1376; // m_fAttackButtonCounter? bool m_bHaveTargetSelected; // may have better name @@ -75,6 +75,7 @@ public: bool FindWeaponLockOnTarget(void); void ProcessAnimGroups(void); void ProcessPlayerWeapon(CPad*); + void PlayerControlZelda(CPad*); static void SetupPlayerPed(int32); static void DeactivatePlayerPed(int32); diff --git a/src/save/GenericGameStorage.cpp b/src/save/GenericGameStorage.cpp index 8d3137f1..5a55dbd5 100644 --- a/src/save/GenericGameStorage.cpp +++ b/src/save/GenericGameStorage.cpp @@ -28,8 +28,6 @@ char SaveFileNameJustSaved[260]; int (&Slots)[SLOT_COUNT+1] = *(int(*)[SLOT_COUNT+1])*(uintptr*)0x72803C; CDate &CompileDateAndTime = *(CDate*)0x72BCB8; -C_PcSave &PcSaveHelper = *(C_PcSave*)0x8E2C60; - #define ReadDataFromBufferPointer(buf, to) memcpy(&to, buf, sizeof(to)); buf += align4bytes(sizeof(to)); #define WriteDataToBufferPointer(buf, from) memcpy(buf, &from, sizeof(from)); buf += align4bytes(sizeof(from)); diff --git a/src/save/GenericGameStorage.h b/src/save/GenericGameStorage.h index b8be1e79..e22dfc7e 100644 --- a/src/save/GenericGameStorage.h +++ b/src/save/GenericGameStorage.h @@ -34,5 +34,4 @@ extern int (&Slots)[SLOT_COUNT+1]; extern char SaveFileNameJustSaved[260]; // 8F2570 -const char TopLineEmptyFile[] = "THIS FILE IS NOT VALID YET"; -extern C_PcSave &PcSaveHelper; \ No newline at end of file +const char TopLineEmptyFile[] = "THIS FILE IS NOT VALID YET"; \ No newline at end of file diff --git a/src/save/PCSave.cpp b/src/save/PCSave.cpp index 02bd08ad..2702bd6e 100644 --- a/src/save/PCSave.cpp +++ b/src/save/PCSave.cpp @@ -8,6 +8,8 @@ const char* _psGetUserFilesFolder(); +C_PcSave &PcSaveHelper = *(C_PcSave*)0x8E2C60; + void C_PcSave::SetSaveDirectory(const char *path) { diff --git a/src/save/PCSave.h b/src/save/PCSave.h index a11d6b86..c58a5c9e 100644 --- a/src/save/PCSave.h +++ b/src/save/PCSave.h @@ -36,3 +36,5 @@ public: bool PcClassSaveRoutine(int32 a2, uint8 *data, uint32 size); static void SetSaveDirectory(const char *path); }; + +extern C_PcSave &PcSaveHelper; From 89be27734b6c51339cdb29b508954d990ac948c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?eray=20or=C3=A7unus?= Date: Thu, 13 Feb 2020 23:34:36 +0300 Subject: [PATCH 9/9] a fix --- src/peds/Ped.cpp | 2 +- src/peds/PlayerPed.cpp | 22 +++++++++++----------- src/peds/PlayerPed.h | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index 543dae57..44aaae5b 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -4534,7 +4534,7 @@ CPed::SetEvasiveDive(CPhysical *reason, uint8 onlyRandomJump) } } else { if (IsPlayer()) { - ((CPlayerPed*)this)->m_bShouldEvade = 5; + ((CPlayerPed*)this)->m_nEvadeAmount = 5; ((CPlayerPed*)this)->m_pEvadingFrom = reason; reason->RegisterReference((CEntity**) &((CPlayerPed*)this)->m_pEvadingFrom); return; diff --git a/src/peds/PlayerPed.cpp b/src/peds/PlayerPed.cpp index 78a1de99..22ebefe0 100644 --- a/src/peds/PlayerPed.cpp +++ b/src/peds/PlayerPed.cpp @@ -36,7 +36,7 @@ CPlayerPed::CPlayerPed(void) : CPed(PEDTYPE_PLAYER1) m_fMaxStamina = 150.0f; m_fCurrentStamina = m_fMaxStamina; m_fStaminaProgress = 0.0f; - m_bShouldEvade = false; + m_nEvadeAmount = 0; field_1367 = 0; m_nShotDelay = 0; field_1376 = 0.0f; @@ -230,7 +230,7 @@ CPlayerPed::SetInitialState(void) m_animGroup = ASSOCGRP_PLAYER; m_fMoveSpeed = 0.0f; m_nSelectedWepSlot = WEAPONTYPE_UNARMED; - m_bShouldEvade = false; + m_nEvadeAmount = 0; m_pEvadingFrom = nil; bIsPedDieAnimPlaying = false; SetRealMoveAnim(); @@ -661,9 +661,9 @@ CPlayerPed::PlayerControlFighter(CPad *padUsed) } if (!CWeaponInfo::GetWeaponInfo(GetWeapon()->m_eWeaponType)->m_bHeavy && padUsed->JumpJustDown()) { - if (m_bShouldEvade && m_pEvadingFrom) { + if (m_nEvadeAmount != 0 && m_pEvadingFrom) { SetEvasiveDive((CPhysical*)m_pEvadingFrom, 1); - m_bShouldEvade = false; + m_nEvadeAmount = 0; m_pEvadingFrom = nil; } else { SetJump(); @@ -710,9 +710,9 @@ CPlayerPed::PlayerControl1stPersonRunAround(CPad *padUsed) && padUsed->JumpJustDown() && m_nPedState != PED_JUMP) { ClearAttack(); ClearWeaponTarget(); - if (m_bShouldEvade && m_pEvadingFrom) { + if (m_nEvadeAmount != 0 && m_pEvadingFrom) { SetEvasiveDive((CPhysical*)m_pEvadingFrom, 1); - m_bShouldEvade = false; + m_nEvadeAmount = 0; m_pEvadingFrom = nil; } else { SetJump(); @@ -1129,9 +1129,9 @@ CPlayerPed::PlayerControlZelda(CPad *padUsed) && padUsed->JumpJustDown() && m_nPedState != PED_JUMP) { ClearAttack(); ClearWeaponTarget(); - if (m_bShouldEvade && m_pEvadingFrom) { + if (m_nEvadeAmount != 0 && m_pEvadingFrom) { SetEvasiveDive((CPhysical*)m_pEvadingFrom, 1); - m_bShouldEvade = false; + m_nEvadeAmount = 0; m_pEvadingFrom = nil; } else { SetJump(); @@ -1142,10 +1142,10 @@ CPlayerPed::PlayerControlZelda(CPad *padUsed) void CPlayerPed::ProcessControl(void) { - if (m_bShouldEvade) - m_bShouldEvade = false; //--m_bShouldEvade; + if (m_nEvadeAmount != 0) + --m_nEvadeAmount; - if (!m_bShouldEvade) + if (m_nEvadeAmount == 0) m_pEvadingFrom = nil; if (m_pCurrentPhysSurface && m_pCurrentPhysSurface->IsVehicle() && ((CVehicle*)m_pCurrentPhysSurface)->IsBoat()) { diff --git a/src/peds/PlayerPed.h b/src/peds/PlayerPed.h index 0da15412..b27cd983 100644 --- a/src/peds/PlayerPed.h +++ b/src/peds/PlayerPed.h @@ -15,7 +15,7 @@ public: float m_fStaminaProgress; int8 m_nSelectedWepSlot; // eWeaponType bool m_bSpeedTimerFlag; - bool m_bShouldEvade; + uint8 m_nEvadeAmount; int8 field_1367; uint32 m_nSpeedTimer; int32 m_nShotDelay;