Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Nikolay Korolev 2020-04-27 12:20:28 +03:00
commit 9df04961ce
2 changed files with 63 additions and 234 deletions

View File

@ -7135,13 +7135,7 @@ struct tVehicleSampleData {
char gap_25[3]; char gap_25[3];
}; };
// int32 *GearFreqAdj = (int32 *)0x606A50; const tVehicleSampleData aVehicleSettings[70] = {
int32 GearFreqAdj[] = {112, 23, 0, 0, 112, 23, 0, 0, 72, 13, 0, 0,
176, 4, 0, 0, 0, 0, 0, 0, 24, 252, 255, 255};
// tVehicleSampleData *CarSounds = (tVehicleSampleData *)0x606204;
const tVehicleSampleData CarSounds[70] = {
{SFX_CAR_REV_2, 2, "", SFX_CAR_HORN_JEEP, 26513, SFX_CAR_ALARM_1, 9935, 1}, {SFX_CAR_REV_2, 2, "", SFX_CAR_HORN_JEEP, 26513, SFX_CAR_ALARM_1, 9935, 1},
{SFX_CAR_REV_1, 1, "", SFX_CAR_HORN_56CHEV, 11487, SFX_CAR_ALARM_1, 9935, 0}, {SFX_CAR_REV_1, 1, "", SFX_CAR_HORN_56CHEV, 11487, SFX_CAR_ALARM_1, 9935, 0},
{SFX_CAR_REV_8, 8, "", SFX_CAR_HORN_PORSCHE, 11025, SFX_CAR_ALARM_1, 10928, 1}, {SFX_CAR_REV_8, 8, "", SFX_CAR_HORN_PORSCHE, 11025, SFX_CAR_ALARM_1, 10928, 1},
@ -7216,6 +7210,8 @@ const tVehicleSampleData CarSounds[70] = {
void void
cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *automobile) cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *automobile)
{ {
static int32 GearFreqAdj[] = { 6000, 6000, 3400, 1200, 0, -1000 };
cTransmission *transmission; cTransmission *transmission;
float velocityChange; float velocityChange;
float relativeVelocityChange; float relativeVelocityChange;
@ -7298,7 +7294,7 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *
} else { } else {
freqModifier = 0; freqModifier = 0;
} }
engineSoundType = CarSounds[params->m_nIndex].m_bEngineSoundType; engineSoundType = aVehicleSettings[params->m_nIndex].m_bEngineSoundType;
soundOffset = 3 * (engineSoundType - 1); soundOffset = 3 * (engineSoundType - 1);
if(accelerateState <= 0) { if(accelerateState <= 0) {
if(params->m_fVelocityChange < -0.001f) { if(params->m_fVelocityChange < -0.001f) {
@ -8218,7 +8214,6 @@ cAudioManager::ProcessVehicleEngine(cVehicleParams *params)
CAutomobile *automobile; CAutomobile *automobile;
float relativeGearChange; float relativeGearChange;
float relativeChange; float relativeChange;
float reverseRelativechange;
uint8 volume; uint8 volume;
eSfxSample accelerationSample; eSfxSample accelerationSample;
int32 freq = 0; // uinitialized variable int32 freq = 0; // uinitialized variable
@ -8251,36 +8246,28 @@ cAudioManager::ProcessVehicleEngine(cVehicleParams *params)
currentGear = params->m_pVehicle->m_nCurrentGear; currentGear = params->m_pVehicle->m_nCurrentGear;
if(automobile->m_nWheelsOnGround) { if(automobile->m_nWheelsOnGround) {
if(automobile->bIsHandbrakeOn) { if(automobile->bIsHandbrakeOn) {
if(0.f == params->m_fVelocityChange) if(params->m_fVelocityChange == 0.0f)
traction = 0.9f; traction = 0.9f;
} else if(params->m_pVehicle->m_status == STATUS_SIMPLE) { } else if(params->m_pVehicle->m_status == STATUS_SIMPLE) {
traction = 0.f; traction = 0.0f;
} else { } else {
switch(transmission->nDriveType) { switch(transmission->nDriveType) {
case '4': case '4':
for(int32 i = 0; for(int32 i = 0; i < ARRAY_SIZE(automobile->m_aWheelState); i++) {
i < if(automobile->m_aWheelState[i] == WHEEL_STATE_SPINNING)
ARRAY_SIZE(automobile->m_aWheelState);
i++) {
if(automobile->m_aWheelState[i] ==
WHEEL_STATE_SPINNING)
traction += 0.05f; traction += 0.05f;
} }
break; break;
case 'F': case 'F':
if(automobile->m_aWheelState[0] == if(automobile->m_aWheelState[0] == WHEEL_STATE_SPINNING)
WHEEL_STATE_SPINNING)
traction += 0.1f; traction += 0.1f;
if(automobile->m_aWheelState[2] == if(automobile->m_aWheelState[2] == WHEEL_STATE_SPINNING)
WHEEL_STATE_SPINNING)
traction += 0.1f; traction += 0.1f;
break; break;
case 'R': case 'R':
if(automobile->m_aWheelState[1] == if(automobile->m_aWheelState[1] == WHEEL_STATE_SPINNING)
WHEEL_STATE_SPINNING)
traction += 0.1f; traction += 0.1f;
if(automobile->m_aWheelState[3] == if(automobile->m_aWheelState[3] == WHEEL_STATE_SPINNING)
WHEEL_STATE_SPINNING)
traction += 0.1f; traction += 0.1f;
break; break;
} }
@ -8288,44 +8275,16 @@ cAudioManager::ProcessVehicleEngine(cVehicleParams *params)
if(transmission->fMaxVelocity <= 0.f) { if(transmission->fMaxVelocity <= 0.f) {
relativeChange = 0.f; relativeChange = 0.f;
} else if(currentGear) { } else if(currentGear) {
if((params->m_fVelocityChange - relativeGearChange = Min(1.0f, (params->m_fVelocityChange - transmission->Gears[currentGear].fShiftDownVelocity) / transmission->fMaxVelocity * 2.5f);
transmission->Gears[currentGear] if(traction == 0.0f && automobile->m_status != STATUS_SIMPLE && params->m_fVelocityChange >= transmission->Gears[1].fShiftUpVelocity) {
.fShiftDownVelocity) /
transmission->fMaxVelocity * 2.5f <=
1.f)
relativeGearChange =
(params->m_fVelocityChange -
transmission->Gears[currentGear]
.fShiftDownVelocity) /
transmission->fMaxVelocity * 2.5f;
else
relativeGearChange = 1.f;
if(0.f == traction &&
automobile->m_status != STATUS_SIMPLE &&
params->m_fVelocityChange >=
transmission->Gears[1].fShiftUpVelocity) {
traction = 0.7f; traction = 0.7f;
} }
relativeChange = relativeChange = traction * automobile->m_fGasPedalAudio * 0.95f + (1.0f - traction) * relativeGearChange;
traction * automobile->m_fGasPedalAudio * } else
0.95f + relativeChange = Min(1.0f, 1.0f - Abs((params->m_fVelocityChange - transmission->Gears[0].fShiftDownVelocity) / transmission->fMaxReverseVelocity));
(1.f - traction) * relativeGearChange;
} else {
reverseRelativechange = Abs(
(params->m_fVelocityChange -
transmission->Gears[0].fShiftDownVelocity) /
transmission->fMaxReverseVelocity);
if(1.f - reverseRelativechange <= 1.f) {
relativeChange =
1.f - reverseRelativechange;
} else {
relativeChange = 1.f;
}
}
} else { } else {
if(automobile->m_nDriveWheelsOnGround) if(automobile->m_nDriveWheelsOnGround)
automobile->m_fGasPedalAudio = automobile->m_fGasPedalAudio *= 0.4f;
automobile->m_fGasPedalAudio * 0.4f;
relativeChange = automobile->m_fGasPedalAudio; relativeChange = automobile->m_fGasPedalAudio;
} }
modificator = relativeChange; modificator = relativeChange;
@ -8338,9 +8297,8 @@ cAudioManager::ProcessVehicleEngine(cVehicleParams *params)
volume = volume =
ComputeVolume(120, 50.f, m_sQueueSample.m_fDistance); ComputeVolume(120, 50.f, m_sQueueSample.m_fDistance);
} else { } else {
emittingVol = modificator * 4 / 3 * 40.f + 80.f; emittingVol = modificator * 4.0f / 3.0f * 40.f + 80.f;
volume = ComputeVolume(emittingVol, 50.f, volume = ComputeVolume(emittingVol, 50.f, m_sQueueSample.m_fDistance);
m_sQueueSample.m_fDistance);
} }
} else { } else {
modificator = 0.f; modificator = 0.f;
@ -8351,98 +8309,73 @@ cAudioManager::ProcessVehicleEngine(cVehicleParams *params)
if(m_sQueueSample.m_bVolume) { if(m_sQueueSample.m_bVolume) {
if(automobile->m_status == STATUS_SIMPLE) { if(automobile->m_status == STATUS_SIMPLE) {
if(modificator < 0.02f) { if(modificator < 0.02f) {
m_sQueueSample.m_nSampleIndex = m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_bEngineSoundType + SFX_CAR_REV_10;
CarSounds[params->m_nIndex].m_bEngineSoundType +
SFX_CAR_REV_10;
freq = 10000.f * modificator + 22050; freq = 10000.f * modificator + 22050;
m_sQueueSample.m_nCounter = 52; m_sQueueSample.m_nCounter = 52;
m_sQueueSample.m_bBankIndex = 0; m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN;
m_sQueueSample.m_bIs2D = 0; m_sQueueSample.m_bIs2D = false;
m_sQueueSample.m_nReleasingVolumeModificator = 3; m_sQueueSample.m_nReleasingVolumeModificator = 3;
m_sQueueSample.m_nFrequency = m_sQueueSample.m_nFrequency = freq + 100 * m_sQueueSample.m_nEntityIndex % 1000;
freq + if(m_sQueueSample.m_nSampleIndex == SFX_CAR_IDLE_6 || m_sQueueSample.m_nSampleIndex == SFX_CAR_REV_6)
100 * m_sQueueSample.m_nEntityIndex % 1000; m_sQueueSample.m_nFrequency /= 2;
if(m_sQueueSample.m_nSampleIndex ==
SFX_CAR_IDLE_6 ||
m_sQueueSample.m_nSampleIndex == SFX_CAR_REV_6)
m_sQueueSample.m_nFrequency =
m_sQueueSample.m_nFrequency >> 1;
m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.m_bEmittingVolume = emittingVol; m_sQueueSample.m_bEmittingVolume = emittingVol;
m_sQueueSample.m_nLoopStart = m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex);
SampleManager.GetSampleLoopStartOffset( m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_nLoopEnd =
SampleManager.GetSampleLoopEndOffset(
m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_fSpeedMultiplier = 6.0f; m_sQueueSample.m_fSpeedMultiplier = 6.0f;
m_sQueueSample.m_fSoundIntensity = 50.0f; m_sQueueSample.m_fSoundIntensity = 50.0f;
m_sQueueSample.m_bReleasingSoundFlag = false; m_sQueueSample.m_bReleasingSoundFlag = false;
m_sQueueSample.m_nReleasingVolumeDivider = 8; m_sQueueSample.m_nReleasingVolumeDivider = 8;
m_sQueueSample.m_bReverbFlag = 1; m_sQueueSample.m_bReverbFlag = true;
m_sQueueSample.m_bRequireReflection = 0; m_sQueueSample.m_bRequireReflection = false;
AddSampleToRequestedQueue(); AddSampleToRequestedQueue();
return; return;
} }
accelerationSample = accelerationSample =
CarSounds[params->m_nIndex].m_nAccelerationSampleIndex; aVehicleSettings[params->m_nIndex].m_nAccelerationSampleIndex;
} else { } else {
if(automobile->m_fGasPedal < 0.05f) { if(automobile->m_fGasPedal < 0.05f) {
m_sQueueSample.m_nSampleIndex = m_sQueueSample.m_nSampleIndex =
CarSounds[params->m_nIndex].m_bEngineSoundType + aVehicleSettings[params->m_nIndex].m_bEngineSoundType +
SFX_CAR_REV_10; // to recheck idle sounds start SFX_CAR_REV_10; // to recheck idle sounds start
// 1 postion later // 1 postion later
freq = 10000.f * modificator + 22050; freq = 10000.f * modificator + 22050;
m_sQueueSample.m_nCounter = 52; m_sQueueSample.m_nCounter = 52;
m_sQueueSample.m_bBankIndex = 0; m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN;
m_sQueueSample.m_bIs2D = 0; m_sQueueSample.m_bIs2D = false;
m_sQueueSample.m_nReleasingVolumeModificator = 3; m_sQueueSample.m_nReleasingVolumeModificator = 3;
m_sQueueSample.m_nFrequency = m_sQueueSample.m_nFrequency = freq + 100 * m_sQueueSample.m_nEntityIndex % 1000;
freq + if(m_sQueueSample.m_nSampleIndex == SFX_CAR_IDLE_6 ||
100 * m_sQueueSample.m_nEntityIndex % 1000;
if(m_sQueueSample.m_nSampleIndex ==
SFX_CAR_IDLE_6 ||
m_sQueueSample.m_nSampleIndex == SFX_CAR_REV_6) m_sQueueSample.m_nSampleIndex == SFX_CAR_REV_6)
m_sQueueSample.m_nFrequency = m_sQueueSample.m_nFrequency = m_sQueueSample.m_nFrequency >> 1;
m_sQueueSample.m_nFrequency >> 1;
m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.m_bEmittingVolume = emittingVol; m_sQueueSample.m_bEmittingVolume = emittingVol;
m_sQueueSample.m_nLoopStart = m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset( m_sQueueSample.m_nSampleIndex);
SampleManager.GetSampleLoopStartOffset( m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_nLoopEnd =
SampleManager.GetSampleLoopEndOffset(
m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_fSpeedMultiplier = 6.0f; m_sQueueSample.m_fSpeedMultiplier = 6.0f;
m_sQueueSample.m_fSoundIntensity = 50.0f; m_sQueueSample.m_fSoundIntensity = 50.0f;
m_sQueueSample.m_bReleasingSoundFlag = false; m_sQueueSample.m_bReleasingSoundFlag = false;
m_sQueueSample.m_nReleasingVolumeDivider = 8; m_sQueueSample.m_nReleasingVolumeDivider = 8;
m_sQueueSample.m_bReverbFlag = 1; m_sQueueSample.m_bReverbFlag = true;
m_sQueueSample.m_bRequireReflection = 0; m_sQueueSample.m_bRequireReflection = false;
AddSampleToRequestedQueue(); AddSampleToRequestedQueue();
return; return;
} }
accelerationSample = accelerationSample = aVehicleSettings[params->m_nIndex].m_nAccelerationSampleIndex;
CarSounds[params->m_nIndex].m_nAccelerationSampleIndex;
} }
m_sQueueSample.m_nSampleIndex = accelerationSample; m_sQueueSample.m_nSampleIndex = accelerationSample;
m_sQueueSample.m_nCounter = 2; m_sQueueSample.m_nCounter = 2;
m_sQueueSample.m_bBankIndex = 0; m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN;
m_sQueueSample.m_bIs2D = 0; m_sQueueSample.m_bIs2D = false;
m_sQueueSample.m_nReleasingVolumeModificator = 3; m_sQueueSample.m_nReleasingVolumeModificator = 3;
m_sQueueSample.m_nFrequency = m_sQueueSample.m_nFrequency = freq + 100 * m_sQueueSample.m_nEntityIndex % 1000;
freq + 100 * m_sQueueSample.m_nEntityIndex % 1000;
if(m_sQueueSample.m_nSampleIndex == SFX_CAR_IDLE_6 || if(m_sQueueSample.m_nSampleIndex == SFX_CAR_IDLE_6 ||
m_sQueueSample.m_nSampleIndex == SFX_CAR_REV_6) m_sQueueSample.m_nSampleIndex == SFX_CAR_REV_6)
m_sQueueSample.m_nFrequency = m_sQueueSample.m_nFrequency /= 2;
m_sQueueSample.m_nFrequency >> 1;
m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.m_bEmittingVolume = emittingVol; m_sQueueSample.m_bEmittingVolume = emittingVol;
m_sQueueSample.m_nLoopStart = m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex);
SampleManager.GetSampleLoopStartOffset( m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(
m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_fSpeedMultiplier = 6.0f; m_sQueueSample.m_fSpeedMultiplier = 6.0f;
m_sQueueSample.m_fSoundIntensity = 50.0f; m_sQueueSample.m_fSoundIntensity = 50.0f;
m_sQueueSample.m_bReleasingSoundFlag = false; m_sQueueSample.m_bReleasingSoundFlag = false;
@ -8486,12 +8419,12 @@ cAudioManager::ProcessVehicleHorn(cVehicleParams *params)
if(m_sQueueSample.m_bVolume) { if(m_sQueueSample.m_bVolume) {
m_sQueueSample.m_nCounter = 4; m_sQueueSample.m_nCounter = 4;
m_sQueueSample.m_nSampleIndex = m_sQueueSample.m_nSampleIndex =
CarSounds[params->m_nIndex].m_nHornSample; aVehicleSettings[params->m_nIndex].m_nHornSample;
m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN;
m_sQueueSample.m_bIs2D = false; m_sQueueSample.m_bIs2D = false;
m_sQueueSample.m_nReleasingVolumeModificator = 2; m_sQueueSample.m_nReleasingVolumeModificator = 2;
m_sQueueSample.m_nFrequency = m_sQueueSample.m_nFrequency =
CarSounds[params->m_nIndex].m_nHornFrequency; aVehicleSettings[params->m_nIndex].m_nHornFrequency;
m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.m_bEmittingVolume = 80; m_sQueueSample.m_bEmittingVolume = 80;
m_sQueueSample.m_nLoopStart = m_sQueueSample.m_nLoopStart =
@ -8542,7 +8475,7 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params)
case SOUND_CAR_DOOR_CLOSE_BACK_RIGHT: case SOUND_CAR_DOOR_CLOSE_BACK_RIGHT:
maxDist = 2500.f; maxDist = 2500.f;
emittingVol = m_anRandomTable[2] % 5 + 122; emittingVol = m_anRandomTable[2] % 5 + 122;
switch(CarSounds[params->m_nIndex].m_bDoorType) { switch(aVehicleSettings[params->m_nIndex].m_bDoorType) {
case 0: m_sQueueSample.m_nSampleIndex = SFX_OLD_CAR_DOOR_CLOSE; break; case 0: m_sQueueSample.m_nSampleIndex = SFX_OLD_CAR_DOOR_CLOSE; break;
case 2: m_sQueueSample.m_nSampleIndex = SFX_TRUCK_DOOR_CLOSE; break; case 2: m_sQueueSample.m_nSampleIndex = SFX_TRUCK_DOOR_CLOSE; break;
case 3: m_sQueueSample.m_nSampleIndex = SFX_AIR_BRAKES; break; case 3: m_sQueueSample.m_nSampleIndex = SFX_AIR_BRAKES; break;
@ -8568,7 +8501,7 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params)
case SOUND_CAR_DOOR_OPEN_BACK_RIGHT: case SOUND_CAR_DOOR_OPEN_BACK_RIGHT:
maxDist = 2500.f; maxDist = 2500.f;
emittingVol = m_anRandomTable[1] % 10 + 117; emittingVol = m_anRandomTable[1] % 10 + 117;
switch(CarSounds[params->m_nIndex].m_bDoorType) { switch(aVehicleSettings[params->m_nIndex].m_bDoorType) {
case 0: m_sQueueSample.m_nSampleIndex = SFX_OLD_CAR_DOOR_OPEN; break; case 0: m_sQueueSample.m_nSampleIndex = SFX_OLD_CAR_DOOR_OPEN; break;
case 2: m_sQueueSample.m_nSampleIndex = SFX_TRUCK_DOOR_OPEN; break; case 2: m_sQueueSample.m_nSampleIndex = SFX_TRUCK_DOOR_OPEN; break;
case 3: m_sQueueSample.m_nSampleIndex = SFX_AIR_BRAKES; break; case 3: m_sQueueSample.m_nSampleIndex = SFX_AIR_BRAKES; break;
@ -8620,114 +8553,6 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params)
m_sQueueSample.m_fSpeedMultiplier = 2.0f; m_sQueueSample.m_fSpeedMultiplier = 2.0f;
m_sQueueSample.m_fSoundIntensity = 35.0f; m_sQueueSample.m_fSoundIntensity = 35.0f;
break; break;
case SOUND_E:
case SOUND_F:
case SOUND_STEP_START:
case SOUND_STEP_END:
case SOUND_FALL_LAND:
case SOUND_FALL_COLLAPSE:
case SOUND_FIGHT_PUNCH_33:
case SOUND_FIGHT_KICK_34:
case SOUND_FIGHT_HEADBUTT_35:
case SOUND_FIGHT_PUNCH_36:
case SOUND_FIGHT_PUNCH_37:
case SOUND_FIGHT_CLOSE_PUNCH_38:
case SOUND_FIGHT_PUNCH_39:
case SOUND_FIGHT_PUNCH_OR_KICK_BELOW_40:
case SOUND_FIGHT_PUNCH_41:
case SOUND_FIGHT_PUNCH_FROM_BEHIND_42:
case SOUND_FIGHT_KNEE_OR_KICK_43:
case SOUND_FIGHT_KICK_44:
case SOUND_WEAPON_BAT_ATTACK:
case SOUND_WEAPON_RELOAD:
case SOUND_WEAPON_AK47_BULLET_ECHO:
case SOUND_WEAPON_UZI_BULLET_ECHO:
case SOUND_WEAPON_M16_BULLET_ECHO:
case SOUND_WEAPON_FLAMETHROWER_FIRE:
case SOUND_WEAPON_SNIPER_SHOT_NO_ZOOM:
case SOUND_WEAPON_ROCKET_SHOT_NO_ZOOM:
case SOUND_WEAPON_HIT_PED:
case SOUND_GARAGE_NO_MONEY:
case SOUND_GARAGE_BAD_VEHICLE:
case SOUND_GARAGE_OPENING:
case SOUND_GARAGE_BOMB_ALREADY_SET:
case SOUND_GARAGE_BOMB1_SET:
case SOUND_GARAGE_BOMB2_SET:
case SOUND_GARAGE_BOMB3_SET:
case SOUND_40:
case SOUND_41:
case SOUND_GARAGE_VEHICLE_DECLINED:
case SOUND_GARAGE_VEHICLE_ACCEPTED:
case SOUND_GARAGE_DOOR_CLOSED:
case SOUND_GARAGE_DOOR_OPENED:
case SOUND_CRANE_PICKUP:
case SOUND_PICKUP_WEAPON_BOUGHT:
case SOUND_PICKUP_WEAPON:
case SOUND_PICKUP_HEALTH:
case SOUND_4A:
case SOUND_4B:
case SOUND_PICKUP_ADRENALINE:
case SOUND_PICKUP_ARMOUR:
case SOUND_PICKUP_BONUS:
case SOUND_PICKUP_MONEY:
case SOUND_PICKUP_HIDDEN_PACKAGE:
case SOUND_PICKUP_PACMAN_PILL:
case SOUND_PICKUP_PACMAN_PACKAGE:
case SOUND_PICKUP_FLOAT_PACKAGE:
case SOUND_RAMPAGE_START:
case SOUND_RAMPAGE_ONGOING:
case SOUND_RAMPAGE_PASSED:
case SOUND_RAMPAGE_FAILED:
case SOUND_RAMPAGE_KILL:
case SOUND_RAMPAGE_CAR_BLOWN:
case SOUND_EVIDENCE_PICKUP:
case SOUND_UNLOAD_GOLD:
case SOUND_PAGER:
case SOUND_PED_DEATH:
case SOUND_PED_DAMAGE:
case SOUND_PED_HIT:
case SOUND_PED_LAND:
case SOUND_PED_BULLET_HIT:
case SOUND_PED_BOMBER:
case SOUND_PED_BURNING:
case SOUND_PED_ARREST_FBI:
case SOUND_PED_ARREST_SWAT:
case SOUND_PED_ARREST_COP:
case SOUND_PED_HANDS_UP:
case SOUND_PED_HANDS_COWER:
case SOUND_PED_FLEE_SPRINT:
case SOUND_PED_CAR_JACKING:
case SOUND_PED_MUGGING:
case SOUND_PED_CAR_JACKED:
case SOUND_PED_ROBBED:
case SOUND_PED_TAXI_WAIT:
case SOUND_PED_ATTACK:
case SOUND_PED_DEFEND:
case SOUND_PED_PURSUIT_ARMY:
case SOUND_PED_PURSUIT_FBI:
case SOUND_PED_PURSUIT_SWAT:
case SOUND_PED_PURSUIT_COP:
case SOUND_PED_HEALING:
case SOUND_PED_7B:
case SOUND_PED_LEAVE_VEHICLE:
case SOUND_PED_EVADE:
case SOUND_PED_FLEE_RUN:
case SOUND_PED_CAR_COLLISION:
case SOUND_PED_SOLICIT:
case SOUND_PED_EXTINGUISHING_FIRE:
case SOUND_PED_WAIT_DOUBLEBACK:
case SOUND_PED_CHAT_SEXY:
case SOUND_PED_CHAT_EVENT:
case SOUND_PED_CHAT:
case SOUND_PED_TAXI_CALL:
case SOUND_INJURED_PED_MALE_OUCH:
case SOUND_INJURED_PED_FEMALE:
case SOUND_8A:
case SOUND_RACE_START_3:
case SOUND_RACE_START_2:
case SOUND_RACE_START_1:
case SOUND_RACE_START_GO:
case SOUND_SPLASH: continue;
case SOUND_CAR_ENGINE_START: case SOUND_CAR_ENGINE_START:
emittingVol = 60; emittingVol = 60;
maxDist = 1600.f; maxDist = 1600.f;
@ -8998,6 +8823,7 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params)
m_sQueueSample.m_fSoundIntensity = 40.0f; m_sQueueSample.m_fSoundIntensity = 40.0f;
maxDist = 1600.f; maxDist = 1600.f;
break; break;
default: continue;
} }
if(params->m_fDistance < maxDist) { if(params->m_fDistance < maxDist) {
CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance);
@ -9007,10 +8833,10 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params)
if(m_sQueueSample.m_bVolume) { if(m_sQueueSample.m_bVolume) {
if(noReflections) { if(noReflections) {
m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.m_bReleasingSoundFlag = 0; m_sQueueSample.m_bReleasingSoundFlag = false;
} else { } else {
m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.m_nLoopCount = 1;
m_sQueueSample.m_bReleasingSoundFlag = 1; m_sQueueSample.m_bReleasingSoundFlag = true;
} }
m_sQueueSample.m_nLoopStart = m_sQueueSample.m_nLoopStart =
SampleManager.GetSampleLoopStartOffset( SampleManager.GetSampleLoopStartOffset(
@ -9018,7 +8844,7 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params)
m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset( m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(
m_sQueueSample.m_nSampleIndex); m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_bEmittingVolume = emittingVol; m_sQueueSample.m_bEmittingVolume = emittingVol;
m_sQueueSample.m_bReverbFlag = 1; m_sQueueSample.m_bReverbFlag = true;
m_sQueueSample.m_bIs2D = false; m_sQueueSample.m_bIs2D = false;
AddSampleToRequestedQueue(); AddSampleToRequestedQueue();
} }
@ -9152,15 +8978,15 @@ cAudioManager::ProcessVehicleSirenOrAlarm(cVehicleParams *params)
m_sQueueSample.m_nCounter = 60; m_sQueueSample.m_nCounter = 60;
} else { } else {
m_sQueueSample.m_nSampleIndex = m_sQueueSample.m_nSampleIndex =
CarSounds[params->m_nIndex].m_nSirenOrAlarmSample; aVehicleSettings[params->m_nIndex].m_nSirenOrAlarmSample;
m_sQueueSample.m_nFrequency = m_sQueueSample.m_nFrequency =
CarSounds[params->m_nIndex].m_nSirenOrAlarmFrequency; aVehicleSettings[params->m_nIndex].m_nSirenOrAlarmFrequency;
} }
} else { } else {
m_sQueueSample.m_nSampleIndex = m_sQueueSample.m_nSampleIndex =
CarSounds[params->m_nIndex].m_nSirenOrAlarmSample; aVehicleSettings[params->m_nIndex].m_nSirenOrAlarmSample;
m_sQueueSample.m_nFrequency = m_sQueueSample.m_nFrequency =
CarSounds[params->m_nIndex].m_nSirenOrAlarmFrequency; aVehicleSettings[params->m_nIndex].m_nSirenOrAlarmFrequency;
} }
m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN;
m_sQueueSample.m_bIs2D = false; m_sQueueSample.m_bIs2D = false;

View File

@ -567,6 +567,9 @@ public:
bool CanSeeEntity(CEntity*, float); bool CanSeeEntity(CEntity*, float);
void RestorePreviousObjective(void); void RestorePreviousObjective(void);
void SetIdle(void); void SetIdle(void);
#ifdef _MSC_VER
__declspec(noinline) // workaround for a compiler bug, hooray MS :P
#endif
void SetObjective(eObjective, void*); void SetObjective(eObjective, void*);
void SetObjective(eObjective); void SetObjective(eObjective);
void SetObjective(eObjective, int16, int16); void SetObjective(eObjective, int16, int16);