summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/audio/AudioLogic.cpp164
-rw-r--r--src/audio/AudioManager.cpp16
-rw-r--r--src/audio/AudioManager.h7
3 files changed, 58 insertions, 129 deletions
diff --git a/src/audio/AudioLogic.cpp b/src/audio/AudioLogic.cpp
index ba9d7006..dfeb8dde 100644
--- a/src/audio/AudioLogic.cpp
+++ b/src/audio/AudioLogic.cpp
@@ -716,11 +716,8 @@ enum
FIRE_HYDRANT_MAX_DIST = 35,
FIRE_HYDRANT_VOLUME = 40,
- BRIDGE_MOTOR_MAX_DIST = 400,
- BRIDGE_MOTOR_VOLUME = MAX_VOLUME,
- BRIDGE_MAX_DIST = BRIDGE_MOTOR_MAX_DIST + 50,
-
- BRIDGE_WARNING_VOLUME = 100,
+ BRIDGE_MAX_DIST = 300,
+ BRIDGE_WARNING_VOLUME = 70,
MISSION_AUDIO_MAX_DIST = 80,
MISSION_AUDIO_VOLUME = 127,
@@ -9749,124 +9746,55 @@ void
cAudioManager::ProcessBridge()
{
float dist;
- bool8 distCalculated = FALSE;
- if (CBridge::pLiftRoad) {
- m_sQueueSample.m_vecPos = CBridge::pLiftRoad->GetPosition();
+ if (CBridge::State != STATE_BRIDGE_LOCKED && CBridge::State != STATE_LIFT_PART_IS_DOWN && CBridge::State != STATE_BRIDGE_ALWAYS_UNLOCKED) {
+ m_sQueueSample.m_vecPos = CVector(-123.0f, -627.0f, 41.0f);
dist = GetDistanceSquared(m_sQueueSample.m_vecPos);
if (dist < SQR(BRIDGE_MAX_DIST)) {
- CalculateDistance(distCalculated, dist);
- switch (CBridge::State) {
- case STATE_BRIDGE_LOCKED:
- case STATE_LIFT_PART_IS_UP:
- case STATE_LIFT_PART_ABOUT_TO_MOVE_UP:
- ProcessBridgeWarning();
- break;
- case STATE_LIFT_PART_MOVING_DOWN:
- case STATE_LIFT_PART_MOVING_UP:
- ProcessBridgeWarning();
- ProcessBridgeMotor();
- break;
- default:
- break;
+ m_sQueueSample.m_fDistance = Sqrt(dist);
+ m_sQueueSample.m_nVolume = ComputeVolume(BRIDGE_WARNING_VOLUME, BRIDGE_MAX_DIST, m_sQueueSample.m_fDistance);
+ if (m_sQueueSample.m_nVolume > 0) {
+ m_sQueueSample.m_MaxDistance = BRIDGE_MAX_DIST;
+ m_sQueueSample.m_nBankIndex = SFX_BANK_0;
+ m_sQueueSample.m_nCounter = 0;
+ m_sQueueSample.m_bIs2D = FALSE;
+ m_sQueueSample.m_nLoopCount = 0;
+ SET_EMITTING_VOLUME(BRIDGE_WARNING_VOLUME);
+ SET_LOOP_OFFSETS(SFX_BRIDGE_OPEN_WARNING)
+ m_sQueueSample.m_bStatic = FALSE;
+ SET_SOUND_REFLECTION(FALSE);
+ m_sQueueSample.m_nSampleIndex = SFX_BRIDGE_OPEN_WARNING;
+ m_sQueueSample.m_nFrequency = 12000;
+ m_sQueueSample.m_nPriority = 3;
+ m_sQueueSample.m_fSpeedMultiplier = 3.0f;
+ m_sQueueSample.m_nFramesToPlay = 5;
+ SET_SOUND_REVERB(FALSE);
+ AddSampleToRequestedQueue();
}
- ProcessBridgeOneShots();
- }
- }
-}
-
-void
-cAudioManager::ProcessBridgeWarning()
-{
-/*
- if (!CStats::CommercialPassed)
- return;
-
- if (m_sQueueSample.m_fDistance < BRIDGE_MAX_DIST) {
- m_sQueueSample.m_nVolume = ComputeVolume(BRIDGE_WARNING_VOLUME, BRIDGE_MAX_DIST, m_sQueueSample.m_fDistance);
- if (m_sQueueSample.m_nVolume > 0) {
- m_sQueueSample.m_nCounter = 0;
- m_sQueueSample.m_nSampleIndex = SFX_BRIDGE_OPEN_WARNING;
- m_sQueueSample.m_nBankIndex = SFX_BANK_GENERIC_EXTRA;
- m_sQueueSample.m_bIs2D = FALSE;
- m_sQueueSample.m_nPriority = 1;
- m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_BRIDGE_OPEN_WARNING);
- m_sQueueSample.m_nLoopCount = 0;
- SET_EMITTING_VOLUME(BRIDGE_WARNING_VOLUME);
- SET_LOOP_OFFSETS(m_sQueueSample.m_nSampleIndex)
- m_sQueueSample.m_fSpeedMultiplier = 2.0f;
- m_sQueueSample.m_MaxDistance = BRIDGE_MAX_DIST;
- m_sQueueSample.m_bStatic = FALSE;
- m_sQueueSample.m_nFramesToPlay = 8;
- SET_SOUND_REVERB(FALSE);
- SET_SOUND_REFLECTION(FALSE);
- AddSampleToRequestedQueue();
}
- }
-*/
-}
-
-void
-cAudioManager::ProcessBridgeMotor()
-{
- if (m_sQueueSample.m_fDistance < BRIDGE_MOTOR_MAX_DIST) {
- m_sQueueSample.m_nVolume = ComputeVolume(BRIDGE_MOTOR_VOLUME, BRIDGE_MOTOR_MAX_DIST, m_sQueueSample.m_fDistance);
- if (m_sQueueSample.m_nVolume > 0) {
- m_sQueueSample.m_nCounter = 1;
- m_sQueueSample.m_nSampleIndex = SFX_FISHING_BOAT_IDLE; // todo check sfx name
- m_sQueueSample.m_nBankIndex = SFX_BANK_0;
- m_sQueueSample.m_bIs2D = FALSE;
- m_sQueueSample.m_nPriority = 1;
- m_sQueueSample.m_nFrequency = 5500;
- m_sQueueSample.m_nLoopCount = 0;
- SET_EMITTING_VOLUME(BRIDGE_MOTOR_VOLUME);
- SET_LOOP_OFFSETS(m_sQueueSample.m_nSampleIndex)
- m_sQueueSample.m_fSpeedMultiplier = 2.0f;
- m_sQueueSample.m_MaxDistance = BRIDGE_MOTOR_MAX_DIST;
- m_sQueueSample.m_bStatic = FALSE;
- m_sQueueSample.m_nFramesToPlay = 3;
- SET_SOUND_REVERB(FALSE);
- AddSampleToRequestedQueue();
- }
- }
-}
-
-void
-cAudioManager::ProcessBridgeOneShots()
-{
- float maxDist;
-
- if (CBridge::State == STATE_LIFT_PART_IS_UP && CBridge::OldState == STATE_LIFT_PART_MOVING_UP) {
- maxDist = BRIDGE_MOTOR_MAX_DIST;
- m_sQueueSample.m_nSampleIndex = SFX_COL_CONTAINER_1;
- } else if (CBridge::State == STATE_LIFT_PART_IS_DOWN && CBridge::OldState == STATE_LIFT_PART_MOVING_DOWN) {
- maxDist = BRIDGE_MOTOR_MAX_DIST;
- m_sQueueSample.m_nSampleIndex = SFX_COL_CONTAINER_1;
- } else if (CBridge::State == STATE_LIFT_PART_MOVING_UP && CBridge::OldState == STATE_LIFT_PART_ABOUT_TO_MOVE_UP) {
- maxDist = BRIDGE_MOTOR_MAX_DIST;
- m_sQueueSample.m_nSampleIndex = SFX_COL_CONTAINER_1;
- } else if (CBridge::State == STATE_LIFT_PART_MOVING_DOWN && CBridge::OldState == STATE_LIFT_PART_IS_UP) {
- maxDist = BRIDGE_MOTOR_MAX_DIST;
- m_sQueueSample.m_nSampleIndex = SFX_COL_CONTAINER_1;
- } else return;
-
- if (m_sQueueSample.m_fDistance < maxDist) {
- m_sQueueSample.m_nVolume = ComputeVolume(BRIDGE_MOTOR_VOLUME, maxDist, m_sQueueSample.m_fDistance);
- if (m_sQueueSample.m_nVolume > 0) {
- m_sQueueSample.m_nCounter = 2;
- m_sQueueSample.m_nBankIndex = SFX_BANK_0;
- m_sQueueSample.m_bIs2D = FALSE;
- m_sQueueSample.m_nPriority = 1;
- m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(m_sQueueSample.m_nSampleIndex);
- m_sQueueSample.m_nLoopCount = 1;
- SET_EMITTING_VOLUME(BRIDGE_MOTOR_VOLUME);
- RESET_LOOP_OFFSETS
- m_sQueueSample.m_fSpeedMultiplier = 2.0f;
- m_sQueueSample.m_MaxDistance = maxDist;
- m_sQueueSample.m_bStatic = TRUE;
- SET_SOUND_REVERB(FALSE);
- SET_SOUND_REFLECTION(FALSE);
- AddSampleToRequestedQueue();
+ m_sQueueSample.m_vecPos = CVector(-440.0f, -631.0f, 41.0f);
+ dist = GetDistanceSquared(m_sQueueSample.m_vecPos);
+ if (dist < SQR(BRIDGE_MAX_DIST)) {
+ m_sQueueSample.m_fDistance = Sqrt(dist);
+ m_sQueueSample.m_nVolume = ComputeVolume(BRIDGE_WARNING_VOLUME, BRIDGE_MAX_DIST, m_sQueueSample.m_fDistance);
+ if (m_sQueueSample.m_nVolume > 0) {
+ m_sQueueSample.m_MaxDistance = BRIDGE_MAX_DIST;
+ m_sQueueSample.m_nBankIndex = SFX_BANK_0;
+ m_sQueueSample.m_nCounter = 1;
+ m_sQueueSample.m_bIs2D = FALSE;
+ m_sQueueSample.m_nLoopCount = 0;
+ SET_EMITTING_VOLUME(BRIDGE_WARNING_VOLUME);
+ SET_LOOP_OFFSETS(SFX_BRIDGE_OPEN_WARNING)
+ m_sQueueSample.m_bStatic = FALSE;
+ SET_SOUND_REFLECTION(FALSE);
+ m_sQueueSample.m_nSampleIndex = SFX_BRIDGE_OPEN_WARNING;
+ m_sQueueSample.m_nFrequency = 12000;
+ m_sQueueSample.m_nPriority = 3;
+ m_sQueueSample.m_fSpeedMultiplier = 3.0f;
+ m_sQueueSample.m_nFramesToPlay = 5;
+ SET_SOUND_REVERB(FALSE);
+ AddSampleToRequestedQueue();
+ }
}
}
}
diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp
index c3466b59..27385bf2 100644
--- a/src/audio/AudioManager.cpp
+++ b/src/audio/AudioManager.cpp
@@ -1390,18 +1390,20 @@ cAudioManager::ClearActiveSamples()
}
void
-cAudioManager::LoadBankIfNecessary(uint8 bank)
+cAudioManager::GenerateIntegerRandomNumberTable()
{
- if(!SampleManager.IsSampleBankLoaded(bank))
- SampleManager.LoadSampleBank(bank);
+ for (uint32 i = 0; i < ARRAY_SIZE(m_anRandomTable); i++)
+ m_anRandomTable[i] = myrand();
}
+#ifdef GTA_PS2
void
-cAudioManager::GenerateIntegerRandomNumberTable()
+cAudioManager::LoadBankIfNecessary(uint8 bank)
{
- for (uint32 i = 0; i < ARRAY_SIZE(m_anRandomTable); i++)
- m_anRandomTable[i] = myrand();
+ if(!SampleManager.IsSampleBankLoaded(bank))
+ SampleManager.LoadSampleBank(bank);
}
+#endif
void
cAudioManager::DirectlyEnqueueSample(uint32 sample, uint8 bank, uint32 counter, uint32 priority, uint32 freq, uint8 volume, uint8 framesToPlay, uint32 notStereo)
@@ -1418,7 +1420,7 @@ cAudioManager::DirectlyEnqueueSample(uint32 sample, uint8 bank, uint32 counter,
SET_EMITTING_VOLUME(volume);
m_sQueueSample.m_nPriority = priority;
m_sQueueSample.m_nFramesToPlay = framesToPlay;
- m_sQueueSample.m_bReflections = FALSE;
+ SET_SOUND_REFLECTION(FALSE);
m_sQueueSample.m_nLoopCount = 0;
SET_LOOP_OFFSETS(sample)
#ifdef FIX_BUGS
diff --git a/src/audio/AudioManager.h b/src/audio/AudioManager.h
index c5436cc0..23231ece 100644
--- a/src/audio/AudioManager.h
+++ b/src/audio/AudioManager.h
@@ -359,7 +359,9 @@ public:
void ClearRequestedQueue(); // inlined in vc
void ClearActiveSamples();
void GenerateIntegerRandomNumberTable();
- void LoadBankIfNecessary(uint8 bank);
+#ifdef GTA_PS2
+ void LoadBankIfNecessary(uint8 bank); // this is used only on PS2 but technically not a platform code
+#endif
void DirectlyEnqueueSample(uint32 sample, uint8 bank, uint32 counter, uint32 priority, uint32 freq, uint8 volume, uint8 framesToPlay, uint32 notStereo = 0);
#ifdef EXTERNAL_3D_SOUND // actually must have been && AUDIO_MSS as well
@@ -577,9 +579,6 @@ public:
#ifdef GTA_BRIDGE
void ProcessBridge();
- void ProcessBridgeWarning();
- void ProcessBridgeMotor();
- void ProcessBridgeOneShots();
#endif
// mission audio