summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/audio/AudioManager.cpp294
-rw-r--r--src/peds/Ped.h3
2 files changed, 63 insertions, 234 deletions
diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp
index 0c4b007f..6418dfc3 100644
--- a/src/audio/AudioManager.cpp
+++ b/src/audio/AudioManager.cpp
@@ -7135,13 +7135,7 @@ struct tVehicleSampleData {
char gap_25[3];
};
-// int32 *GearFreqAdj = (int32 *)0x606A50;
-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] = {
+const tVehicleSampleData aVehicleSettings[70] = {
{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_8, 8, "", SFX_CAR_HORN_PORSCHE, 11025, SFX_CAR_ALARM_1, 10928, 1},
@@ -7216,6 +7210,8 @@ const tVehicleSampleData CarSounds[70] = {
void
cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *automobile)
{
+ static int32 GearFreqAdj[] = { 6000, 6000, 3400, 1200, 0, -1000 };
+
cTransmission *transmission;
float velocityChange;
float relativeVelocityChange;
@@ -7298,7 +7294,7 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *
} else {
freqModifier = 0;
}
- engineSoundType = CarSounds[params->m_nIndex].m_bEngineSoundType;
+ engineSoundType = aVehicleSettings[params->m_nIndex].m_bEngineSoundType;
soundOffset = 3 * (engineSoundType - 1);
if(accelerateState <= 0) {
if(params->m_fVelocityChange < -0.001f) {
@@ -8218,7 +8214,6 @@ cAudioManager::ProcessVehicleEngine(cVehicleParams *params)
CAutomobile *automobile;
float relativeGearChange;
float relativeChange;
- float reverseRelativechange;
uint8 volume;
eSfxSample accelerationSample;
int32 freq = 0; // uinitialized variable
@@ -8251,36 +8246,28 @@ cAudioManager::ProcessVehicleEngine(cVehicleParams *params)
currentGear = params->m_pVehicle->m_nCurrentGear;
if(automobile->m_nWheelsOnGround) {
if(automobile->bIsHandbrakeOn) {
- if(0.f == params->m_fVelocityChange)
+ if(params->m_fVelocityChange == 0.0f)
traction = 0.9f;
} else if(params->m_pVehicle->m_status == STATUS_SIMPLE) {
- traction = 0.f;
+ traction = 0.0f;
} else {
switch(transmission->nDriveType) {
case '4':
- for(int32 i = 0;
- i <
- ARRAY_SIZE(automobile->m_aWheelState);
- i++) {
- if(automobile->m_aWheelState[i] ==
- WHEEL_STATE_SPINNING)
+ for(int32 i = 0; i < ARRAY_SIZE(automobile->m_aWheelState); i++) {
+ if(automobile->m_aWheelState[i] == WHEEL_STATE_SPINNING)
traction += 0.05f;
}
break;
case 'F':
- if(automobile->m_aWheelState[0] ==
- WHEEL_STATE_SPINNING)
+ if(automobile->m_aWheelState[0] == WHEEL_STATE_SPINNING)
traction += 0.1f;
- if(automobile->m_aWheelState[2] ==
- WHEEL_STATE_SPINNING)
+ if(automobile->m_aWheelState[2] == WHEEL_STATE_SPINNING)
traction += 0.1f;
break;
case 'R':
- if(automobile->m_aWheelState[1] ==
- WHEEL_STATE_SPINNING)
+ if(automobile->m_aWheelState[1] == WHEEL_STATE_SPINNING)
traction += 0.1f;
- if(automobile->m_aWheelState[3] ==
- WHEEL_STATE_SPINNING)
+ if(automobile->m_aWheelState[3] == WHEEL_STATE_SPINNING)
traction += 0.1f;
break;
}
@@ -8288,44 +8275,16 @@ cAudioManager::ProcessVehicleEngine(cVehicleParams *params)
if(transmission->fMaxVelocity <= 0.f) {
relativeChange = 0.f;
} else if(currentGear) {
- if((params->m_fVelocityChange -
- transmission->Gears[currentGear]
- .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) {
+ relativeGearChange = Min(1.0f, (params->m_fVelocityChange - transmission->Gears[currentGear].fShiftDownVelocity) / transmission->fMaxVelocity * 2.5f);
+ if(traction == 0.0f && automobile->m_status != STATUS_SIMPLE && params->m_fVelocityChange >= transmission->Gears[1].fShiftUpVelocity) {
traction = 0.7f;
}
- relativeChange =
- traction * automobile->m_fGasPedalAudio *
- 0.95f +
- (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;
- }
- }
+ relativeChange = traction * automobile->m_fGasPedalAudio * 0.95f + (1.0f - traction) * relativeGearChange;
+ } else
+ relativeChange = Min(1.0f, 1.0f - Abs((params->m_fVelocityChange - transmission->Gears[0].fShiftDownVelocity) / transmission->fMaxReverseVelocity));
} else {
if(automobile->m_nDriveWheelsOnGround)
- automobile->m_fGasPedalAudio =
- automobile->m_fGasPedalAudio * 0.4f;
+ automobile->m_fGasPedalAudio *= 0.4f;
relativeChange = automobile->m_fGasPedalAudio;
}
modificator = relativeChange;
@@ -8338,9 +8297,8 @@ cAudioManager::ProcessVehicleEngine(cVehicleParams *params)
volume =
ComputeVolume(120, 50.f, m_sQueueSample.m_fDistance);
} else {
- emittingVol = modificator * 4 / 3 * 40.f + 80.f;
- volume = ComputeVolume(emittingVol, 50.f,
- m_sQueueSample.m_fDistance);
+ emittingVol = modificator * 4.0f / 3.0f * 40.f + 80.f;
+ volume = ComputeVolume(emittingVol, 50.f, m_sQueueSample.m_fDistance);
}
} else {
modificator = 0.f;
@@ -8351,98 +8309,73 @@ cAudioManager::ProcessVehicleEngine(cVehicleParams *params)
if(m_sQueueSample.m_bVolume) {
if(automobile->m_status == STATUS_SIMPLE) {
if(modificator < 0.02f) {
- m_sQueueSample.m_nSampleIndex =
- CarSounds[params->m_nIndex].m_bEngineSoundType +
- SFX_CAR_REV_10;
+ m_sQueueSample.m_nSampleIndex = aVehicleSettings[params->m_nIndex].m_bEngineSoundType + SFX_CAR_REV_10;
freq = 10000.f * modificator + 22050;
m_sQueueSample.m_nCounter = 52;
- m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.m_bIs2D = 0;
+ m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN;
+ m_sQueueSample.m_bIs2D = false;
m_sQueueSample.m_nReleasingVolumeModificator = 3;
- m_sQueueSample.m_nFrequency =
- freq +
- 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_nFrequency =
- m_sQueueSample.m_nFrequency >> 1;
+ m_sQueueSample.m_nFrequency = freq + 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_nFrequency /= 2;
m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.m_bEmittingVolume = emittingVol;
- m_sQueueSample.m_nLoopStart =
- SampleManager.GetSampleLoopStartOffset(
- m_sQueueSample.m_nSampleIndex);
- m_sQueueSample.m_nLoopEnd =
- SampleManager.GetSampleLoopEndOffset(
- m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_fSpeedMultiplier = 6.0f;
m_sQueueSample.m_fSoundIntensity = 50.0f;
m_sQueueSample.m_bReleasingSoundFlag = false;
m_sQueueSample.m_nReleasingVolumeDivider = 8;
- m_sQueueSample.m_bReverbFlag = 1;
- m_sQueueSample.m_bRequireReflection = 0;
+ m_sQueueSample.m_bReverbFlag = true;
+ m_sQueueSample.m_bRequireReflection = false;
AddSampleToRequestedQueue();
return;
}
accelerationSample =
- CarSounds[params->m_nIndex].m_nAccelerationSampleIndex;
+ aVehicleSettings[params->m_nIndex].m_nAccelerationSampleIndex;
} else {
if(automobile->m_fGasPedal < 0.05f) {
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
// 1 postion later
freq = 10000.f * modificator + 22050;
m_sQueueSample.m_nCounter = 52;
- m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.m_bIs2D = 0;
+ m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN;
+ m_sQueueSample.m_bIs2D = false;
m_sQueueSample.m_nReleasingVolumeModificator = 3;
- m_sQueueSample.m_nFrequency =
- freq +
- 100 * m_sQueueSample.m_nEntityIndex % 1000;
- if(m_sQueueSample.m_nSampleIndex ==
- SFX_CAR_IDLE_6 ||
+ m_sQueueSample.m_nFrequency = freq + 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_nFrequency =
- m_sQueueSample.m_nFrequency >> 1;
+ m_sQueueSample.m_nFrequency = m_sQueueSample.m_nFrequency >> 1;
m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.m_bEmittingVolume = emittingVol;
- m_sQueueSample.m_nLoopStart =
- SampleManager.GetSampleLoopStartOffset(
- m_sQueueSample.m_nSampleIndex);
- m_sQueueSample.m_nLoopEnd =
- SampleManager.GetSampleLoopEndOffset(
- m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset( m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_fSpeedMultiplier = 6.0f;
m_sQueueSample.m_fSoundIntensity = 50.0f;
m_sQueueSample.m_bReleasingSoundFlag = false;
m_sQueueSample.m_nReleasingVolumeDivider = 8;
- m_sQueueSample.m_bReverbFlag = 1;
- m_sQueueSample.m_bRequireReflection = 0;
+ m_sQueueSample.m_bReverbFlag = true;
+ m_sQueueSample.m_bRequireReflection = false;
AddSampleToRequestedQueue();
return;
}
- accelerationSample =
- CarSounds[params->m_nIndex].m_nAccelerationSampleIndex;
+ accelerationSample = aVehicleSettings[params->m_nIndex].m_nAccelerationSampleIndex;
}
m_sQueueSample.m_nSampleIndex = accelerationSample;
m_sQueueSample.m_nCounter = 2;
- m_sQueueSample.m_bBankIndex = 0;
- m_sQueueSample.m_bIs2D = 0;
+ m_sQueueSample.m_bBankIndex = SAMPLEBANK_MAIN;
+ m_sQueueSample.m_bIs2D = false;
m_sQueueSample.m_nReleasingVolumeModificator = 3;
- m_sQueueSample.m_nFrequency =
- freq + 100 * m_sQueueSample.m_nEntityIndex % 1000;
+ m_sQueueSample.m_nFrequency = freq + 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_nFrequency =
- m_sQueueSample.m_nFrequency >> 1;
+ m_sQueueSample.m_nFrequency /= 2;
m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.m_bEmittingVolume = emittingVol;
- m_sQueueSample.m_nLoopStart =
- SampleManager.GetSampleLoopStartOffset(
- m_sQueueSample.m_nSampleIndex);
- m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(
- m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(m_sQueueSample.m_nSampleIndex);
+ m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_fSpeedMultiplier = 6.0f;
m_sQueueSample.m_fSoundIntensity = 50.0f;
m_sQueueSample.m_bReleasingSoundFlag = false;
@@ -8486,12 +8419,12 @@ cAudioManager::ProcessVehicleHorn(cVehicleParams *params)
if(m_sQueueSample.m_bVolume) {
m_sQueueSample.m_nCounter = 4;
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_bIs2D = false;
m_sQueueSample.m_nReleasingVolumeModificator = 2;
m_sQueueSample.m_nFrequency =
- CarSounds[params->m_nIndex].m_nHornFrequency;
+ aVehicleSettings[params->m_nIndex].m_nHornFrequency;
m_sQueueSample.m_nLoopCount = 0;
m_sQueueSample.m_bEmittingVolume = 80;
m_sQueueSample.m_nLoopStart =
@@ -8542,7 +8475,7 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params)
case SOUND_CAR_DOOR_CLOSE_BACK_RIGHT:
maxDist = 2500.f;
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 2: m_sQueueSample.m_nSampleIndex = SFX_TRUCK_DOOR_CLOSE; 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:
maxDist = 2500.f;
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 2: m_sQueueSample.m_nSampleIndex = SFX_TRUCK_DOOR_OPEN; 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_fSoundIntensity = 35.0f;
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:
emittingVol = 60;
maxDist = 1600.f;
@@ -8998,6 +8823,7 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params)
m_sQueueSample.m_fSoundIntensity = 40.0f;
maxDist = 1600.f;
break;
+ default: continue;
}
if(params->m_fDistance < maxDist) {
CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance);
@@ -9007,10 +8833,10 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params)
if(m_sQueueSample.m_bVolume) {
if(noReflections) {
m_sQueueSample.m_nLoopCount = 0;
- m_sQueueSample.m_bReleasingSoundFlag = 0;
+ m_sQueueSample.m_bReleasingSoundFlag = false;
} else {
m_sQueueSample.m_nLoopCount = 1;
- m_sQueueSample.m_bReleasingSoundFlag = 1;
+ m_sQueueSample.m_bReleasingSoundFlag = true;
}
m_sQueueSample.m_nLoopStart =
SampleManager.GetSampleLoopStartOffset(
@@ -9018,7 +8844,7 @@ cAudioManager::ProcessVehicleOneShots(cVehicleParams *params)
m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(
m_sQueueSample.m_nSampleIndex);
m_sQueueSample.m_bEmittingVolume = emittingVol;
- m_sQueueSample.m_bReverbFlag = 1;
+ m_sQueueSample.m_bReverbFlag = true;
m_sQueueSample.m_bIs2D = false;
AddSampleToRequestedQueue();
}
@@ -9152,15 +8978,15 @@ cAudioManager::ProcessVehicleSirenOrAlarm(cVehicleParams *params)
m_sQueueSample.m_nCounter = 60;
} else {
m_sQueueSample.m_nSampleIndex =
- CarSounds[params->m_nIndex].m_nSirenOrAlarmSample;
+ aVehicleSettings[params->m_nIndex].m_nSirenOrAlarmSample;
m_sQueueSample.m_nFrequency =
- CarSounds[params->m_nIndex].m_nSirenOrAlarmFrequency;
+ aVehicleSettings[params->m_nIndex].m_nSirenOrAlarmFrequency;
}
} else {
m_sQueueSample.m_nSampleIndex =
- CarSounds[params->m_nIndex].m_nSirenOrAlarmSample;
+ aVehicleSettings[params->m_nIndex].m_nSirenOrAlarmSample;
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_bIs2D = false;
diff --git a/src/peds/Ped.h b/src/peds/Ped.h
index f4caafd8..2de30df6 100644
--- a/src/peds/Ped.h
+++ b/src/peds/Ped.h
@@ -567,6 +567,9 @@ public:
bool CanSeeEntity(CEntity*, float);
void RestorePreviousObjective(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 SetObjective(eObjective, int16, int16);