mirror of
https://github.com/GTAmodding/re3.git
synced 2024-11-15 11:29:02 +00:00
ProcessWaterCannon bug and refractoring (#773)
* fix audio bug and some refractoring * mark original bugs
This commit is contained in:
parent
b84dc2bc9b
commit
9cf38634b9
1 changed files with 20 additions and 8 deletions
|
@ -813,7 +813,7 @@ cAudioManager::ProcessVehicleRoadNoise(cVehicleParams *params)
|
||||||
|
|
||||||
int32 emittingVol;
|
int32 emittingVol;
|
||||||
uint32 freq;
|
uint32 freq;
|
||||||
float modificator;
|
float multiplier;
|
||||||
int sampleFreq;
|
int sampleFreq;
|
||||||
float velocity;
|
float velocity;
|
||||||
|
|
||||||
|
@ -836,9 +836,9 @@ cAudioManager::ProcessVehicleRoadNoise(cVehicleParams *params)
|
||||||
freq = 6050 * emittingVol / 30 + 16000;
|
freq = 6050 * emittingVol / 30 + 16000;
|
||||||
} else {
|
} else {
|
||||||
m_sQueueSample.m_nSampleIndex = SFX_ROAD_NOISE;
|
m_sQueueSample.m_nSampleIndex = SFX_ROAD_NOISE;
|
||||||
modificator = m_sQueueSample.m_fDistance / 190.f;
|
multiplier = (m_sQueueSample.m_fDistance / SOUND_INTENSITY) * 0.5f;
|
||||||
sampleFreq = SampleManager.GetSampleBaseFrequency(SFX_ROAD_NOISE);
|
sampleFreq = SampleManager.GetSampleBaseFrequency(SFX_ROAD_NOISE);
|
||||||
freq = (sampleFreq * modificator) + ((3 * sampleFreq) / 4);
|
freq = (sampleFreq * multiplier) + ((3 * sampleFreq) / 4);
|
||||||
}
|
}
|
||||||
m_sQueueSample.m_nFrequency = freq;
|
m_sQueueSample.m_nFrequency = freq;
|
||||||
m_sQueueSample.m_nLoopCount = 0;
|
m_sQueueSample.m_nLoopCount = 0;
|
||||||
|
@ -866,7 +866,7 @@ cAudioManager::ProcessWetRoadNoise(cVehicleParams *params)
|
||||||
|
|
||||||
float relativeVelocity;
|
float relativeVelocity;
|
||||||
int32 emittingVol;
|
int32 emittingVol;
|
||||||
float modificator;
|
float multiplier;
|
||||||
int freq;
|
int freq;
|
||||||
float velChange;
|
float velChange;
|
||||||
|
|
||||||
|
@ -886,9 +886,13 @@ cAudioManager::ProcessWetRoadNoise(cVehicleParams *params)
|
||||||
m_sQueueSample.m_nBankIndex = SFX_BANK_0;
|
m_sQueueSample.m_nBankIndex = SFX_BANK_0;
|
||||||
m_sQueueSample.m_bIs2D = false;
|
m_sQueueSample.m_bIs2D = false;
|
||||||
m_sQueueSample.m_nReleasingVolumeModificator = 3;
|
m_sQueueSample.m_nReleasingVolumeModificator = 3;
|
||||||
modificator = m_sQueueSample.m_fDistance / 6.f;
|
#ifdef FIX_BUGS
|
||||||
|
multiplier = (m_sQueueSample.m_fDistance / SOUND_INTENSITY) * 0.5f;
|
||||||
|
#else
|
||||||
|
multiplier = (m_sQueueSample.m_fDistance / 3.0f) * 0.5f;
|
||||||
|
#endif
|
||||||
freq = SampleManager.GetSampleBaseFrequency(SFX_ROAD_NOISE);
|
freq = SampleManager.GetSampleBaseFrequency(SFX_ROAD_NOISE);
|
||||||
m_sQueueSample.m_nFrequency = freq + freq * modificator;
|
m_sQueueSample.m_nFrequency = freq + freq * multiplier;
|
||||||
m_sQueueSample.m_nLoopCount = 0;
|
m_sQueueSample.m_nLoopCount = 0;
|
||||||
m_sQueueSample.m_nEmittingVolume = emittingVol;
|
m_sQueueSample.m_nEmittingVolume = emittingVol;
|
||||||
m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex);
|
m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex);
|
||||||
|
@ -6488,17 +6492,25 @@ cAudioManager::ProcessFires(int32)
|
||||||
void
|
void
|
||||||
cAudioManager::ProcessWaterCannon(int32)
|
cAudioManager::ProcessWaterCannon(int32)
|
||||||
{
|
{
|
||||||
const float SOUND_INTENSITY = 900.0f;
|
const float SOUND_INTENSITY = 30.0f;
|
||||||
|
|
||||||
for (int32 i = 0; i < NUM_WATERCANNONS; i++) {
|
for (int32 i = 0; i < NUM_WATERCANNONS; i++) {
|
||||||
if (CWaterCannons::aCannons[i].m_nId) {
|
if (CWaterCannons::aCannons[i].m_nId) {
|
||||||
m_sQueueSample.m_vecPos = CWaterCannons::aCannons[0].m_avecPos[CWaterCannons::aCannons[i].m_nCur];
|
m_sQueueSample.m_vecPos = CWaterCannons::aCannons[0].m_avecPos[CWaterCannons::aCannons[i].m_nCur];
|
||||||
float distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos);
|
float distSquared = GetDistanceSquared(m_sQueueSample.m_vecPos);
|
||||||
if (distSquared < SOUND_INTENSITY) {
|
if (distSquared < SQR(SOUND_INTENSITY)) {
|
||||||
m_sQueueSample.m_fDistance = Sqrt(distSquared);
|
m_sQueueSample.m_fDistance = Sqrt(distSquared);
|
||||||
|
#ifdef FIX_BUGS
|
||||||
|
m_sQueueSample.m_nVolume = ComputeVolume(50, SOUND_INTENSITY, m_sQueueSample.m_fDistance);
|
||||||
|
#else
|
||||||
m_sQueueSample.m_nVolume = ComputeVolume(50, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance);
|
m_sQueueSample.m_nVolume = ComputeVolume(50, m_sQueueSample.m_fSoundIntensity, m_sQueueSample.m_fDistance);
|
||||||
|
#endif
|
||||||
if (m_sQueueSample.m_nVolume != 0) {
|
if (m_sQueueSample.m_nVolume != 0) {
|
||||||
|
#ifdef FIX_BUGS
|
||||||
m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY;
|
m_sQueueSample.m_fSoundIntensity = SOUND_INTENSITY;
|
||||||
|
#else
|
||||||
|
m_sQueueSample.m_fSoundIntensity = SQR(SOUND_INTENSITY);
|
||||||
|
#endif
|
||||||
m_sQueueSample.m_nSampleIndex = SFX_JUMBO_TAXI;
|
m_sQueueSample.m_nSampleIndex = SFX_JUMBO_TAXI;
|
||||||
m_sQueueSample.m_nBankIndex = SFX_BANK_0;
|
m_sQueueSample.m_nBankIndex = SFX_BANK_0;
|
||||||
m_sQueueSample.m_nFrequency = 15591;
|
m_sQueueSample.m_nFrequency = 15591;
|
||||||
|
|
Loading…
Reference in a new issue