Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files
Merge remote-tracking branch 'upstream/lcs' into lcs
  • Loading branch information
Nick007J committed Jul 2, 2021
2 parents 73e112a + dd790b0 commit 10cc444482b52d6e82b624bbbb7d87c48dcf48e2
Showing with 814 additions and 750 deletions.
  1. +14 −12 src/audio/AudioLogic.cpp
  2. +4 −4 src/audio/AudioManager.cpp
  3. +6 −3 src/audio/AudioScriptObject.cpp
  4. +18 −1 src/audio/MusicManager.cpp
  5. +5 −5 src/audio/oal/stream.cpp
  6. +1 −1 src/audio/sampman_miles.cpp
  7. +54 −102 src/audio/sampman_oal.cpp
  8. +31 −29 src/control/AutoPilot.cpp
  9. +2 −2 src/control/CarCtrl.cpp
  10. +6 −5 src/control/GameLogic.cpp
  11. +14 −10 src/control/Garages.cpp
  12. +4 −3 src/control/Phones.cpp
  13. +5 −4 src/control/Pickups.cpp
  14. +19 −19 src/control/Replay.cpp
  15. +16 −16 src/control/Restart.cpp
  16. +2 −2 src/control/Script4.cpp
  17. +58 −41 src/control/Script5.cpp
  18. +3 −2 src/control/SetPieces.cpp
  19. +9 −9 src/core/Cam.cpp
  20. +5 −5 src/core/Camera.cpp
  21. +1 −1 src/core/FileLoader.cpp
  22. +14 −14 src/core/Frontend.cpp
  23. +2 −2 src/core/Frontend_PS2.cpp
  24. +1 −1 src/core/General.h
  25. +1 −1 src/core/PlayerInfo.cpp
  26. +12 −6 src/core/Pools.cpp
  27. +16 −15 src/core/Radar.cpp
  28. +1 −1 src/core/Ropes.cpp
  29. +2 −2 src/core/World.cpp
  30. +43 −32 src/core/Zones.cpp
  31. +2 −2 src/core/Zones.h
  32. +2 −211 src/core/common.h
  33. +1 −0 src/core/config.h
  34. +4 −2 src/entities/Entity.cpp
  35. +8 −8 src/entities/Physical.cpp
  36. +114 −0 src/extras/debugmenu.h
  37. +1 −1 src/extras/screendroplets.cpp
  38. +3 −3 src/objects/Object.cpp
  39. +1 −1 src/objects/Stinger.cpp
  40. +3 −0 src/peds/CopPed.cpp
  41. +2 −1 src/peds/Gangs.cpp
  42. +1 −0 src/peds/Ped.cpp
  43. +4 −4 src/peds/PedFight.cpp
  44. +8 −8 src/peds/PedIK.cpp
  45. +2 −1 src/peds/PedType.cpp
  46. +8 −7 src/peds/PlayerPed.cpp
  47. +1 −1 src/peds/Population.cpp
  48. +2 −0 src/render/Console.h
  49. +1 −1 src/render/Coronas.cpp
  50. +4 −3 src/render/Fluff.cpp
  51. +2 −2 src/render/Glass.cpp
  52. +3 −3 src/render/Hud.cpp
  53. +9 −9 src/render/MBlur.cpp
  54. +10 −9 src/render/Particle.cpp
  55. +0 −1 src/render/SpecialFX.cpp
  56. +4 −4 src/render/Sprite.cpp
  57. +20 −20 src/render/WaterLevel.cpp
  58. +1 −1 src/render/Weather.cpp
  59. +2 −10 src/rw/TexRead.cpp
  60. +4 −0 src/save/GenericGameStorage.cpp
  61. +4 −0 src/save/PCSave.cpp
  62. +115 −0 src/save/SaveBuf.h
  63. +1 −1 src/skel/crossplatform.h
  64. +14 −13 src/vehicles/Automobile.cpp
  65. +9 −8 src/vehicles/Bike.cpp
  66. +12 −11 src/vehicles/Boat.cpp
  67. +12 −8 src/vehicles/CarGen.cpp
  68. +4 −3 src/vehicles/Cranes.cpp
  69. +2 −2 src/vehicles/Door.cpp
  70. +1 −1 src/vehicles/Heli.cpp
  71. +1 −1 src/vehicles/Transmission.cpp
  72. +41 −38 src/vehicles/Vehicle.cpp
  73. +2 −1 src/weapons/Weapon.cpp
@@ -998,8 +998,8 @@ cAudioManager::ProcessModelVehicle(cVehicleParams& params)
freq = 25000;
}
if (isPlayerVeh) {
volume = clamp2(volume, prevVolume, 7);
freq = clamp2(freq, prevFreq, 800);
volume = Clamp2(volume, prevVolume, 7);
freq = Clamp2(freq, prevFreq, 800);
}
if (volume > 0) {
CalculateDistance(params.m_bDistanceCalculated, params.m_fDistance);
@@ -1047,8 +1047,8 @@ cAudioManager::ProcessModelVehicle(cVehicleParams& params)
freq = Min(22000, (8000 * acceletateState / 255 + 14000) * 3.0f * Abs(params.m_fVelocityChange));
}
if (isPlayerVeh && !vehSlowdown) {
volume = clamp2(volume, prevVolume, 7);
freq = clamp2(freq, prevFreq, 800);
volume = Clamp2(volume, prevVolume, 7);
freq = Clamp2(freq, prevFreq, 800);
}
if (!vehSlowdown)
#ifdef THIS_IS_STUPID
@@ -1127,7 +1127,7 @@ cAudioManager::ProcessModelHeliVehicle(cVehicleParams& params)
}
if (acceletateState < brakeState)
acceletateState = brakeState;
freq = clamp2(5 * acceletateState + 22050, prevFreq, 30);
freq = Clamp2(5 * acceletateState + 22050, prevFreq, 30);
CalculateDistance(params.m_bDistanceCalculated, params.m_fDistance);
m_sQueueSample.m_nVolume = ComputeVolume(70, SOUND_INTENSITY, m_sQueueSample.m_fDistance);
if (m_sQueueSample.m_nVolume != 0) {
@@ -1667,8 +1667,8 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams& params, CVehicle* veh
bHandbrakeOnLastFrame = FALSE;
}
if (CReplay::IsPlayingBack()) {
accelerateState = (255.0f * clamp(params.m_pVehicle->m_fGasPedal, 0.0f, 1.0f));
brakeState = (255.0f * clamp(params.m_pVehicle->m_fBrakePedal, 0.0f, 1.0f));
accelerateState = (255.0f * Clamp(params.m_pVehicle->m_fGasPedal, 0.0f, 1.0f));
brakeState = (255.0f * Clamp(params.m_pVehicle->m_fBrakePedal, 0.0f, 1.0f));
} else {
accelerateState = Pads[0].GetAccelerate();
brakeState = Pads[0].GetBrake();
@@ -1820,7 +1820,7 @@ cAudioManager::ProcessPlayersVehicleEngine(cVehicleParams& params, CVehicle* veh
}
}
relativeVelocityChange = 2.0f * params.m_fVelocityChange / params.m_pTransmission->fMaxVelocity;
accelerationMultipler = clamp(relativeVelocityChange, 0.0f, 1.0f);
accelerationMultipler = Clamp(relativeVelocityChange, 0.0f, 1.0f);
gasPedalAudio = accelerationMultipler;
/*switch (engineSoundType) {
case SFX_BANK_MOPED:
@@ -3595,7 +3595,7 @@ cAudioManager::ProcessCarHeli(cVehicleParams& params)
m_sQueueSample.m_nFrequency = 14287 + Min(1.0f, freqModifier) * 3713;
if (propellerSpeed < 1.0f)
m_sQueueSample.m_nFrequency = (propellerSpeed + 1.0f) * (m_sQueueSample.m_nFrequency / 2.0f);
m_sQueueSample.m_nFrequency = clamp2(m_sQueueSample.m_nFrequency, freqFrontPrev, 197);
m_sQueueSample.m_nFrequency = Clamp2(m_sQueueSample.m_nFrequency, freqFrontPrev, 197);
freqFrontPrev = m_sQueueSample.m_nFrequency;

m_sQueueSample.m_bIs2D = FALSE;
@@ -3651,7 +3651,7 @@ cAudioManager::ProcessCarHeli(cVehicleParams& params)
if (propellerSpeed < 1.0f)
m_sQueueSample.m_nFrequency = (propellerSpeed + 1) * (m_sQueueSample.m_nFrequency / 2);

m_sQueueSample.m_nFrequency = clamp2(m_sQueueSample.m_nFrequency, freqPropellerPrev, 98);
m_sQueueSample.m_nFrequency = Clamp2(m_sQueueSample.m_nFrequency, freqPropellerPrev, 98);
freqPropellerPrev = m_sQueueSample.m_nFrequency;
} else {
m_sQueueSample.m_nSampleIndex = SFX_CAR_HELI_MAI2;
@@ -3720,7 +3720,7 @@ cAudioManager::ProcessCarHeli(cVehicleParams& params)
m_sQueueSample.m_nFrequency = 14287 + Min(1.0f, freqModifier) * 3713;
if (propellerSpeed < 1.0f)
m_sQueueSample.m_nFrequency = (propellerSpeed + 1) * (m_sQueueSample.m_nFrequency / 2.0f);
m_sQueueSample.m_nFrequency = clamp2(m_sQueueSample.m_nFrequency, freqSkimmerPrev, 197);
m_sQueueSample.m_nFrequency = Clamp2(m_sQueueSample.m_nFrequency, freqSkimmerPrev, 197);
freqSkimmerPrev = m_sQueueSample.m_nFrequency;

m_sQueueSample.m_nSampleIndex = SFX_SEAPLANE_PRO4;
@@ -11483,8 +11483,10 @@ cAudioManager::ProcessMissionAudioSlot(uint8 slot)
if (!m_nUserPause) {
if (nCheckPlayingDelay[slot]) {
--nCheckPlayingDelay[slot];
} else if (GetMissionScriptPoliceAudioPlayingStatus() == PLAY_STATUS_FINISHED || m_sMissionAudio.m_nMissionAudioCounter[slot]-- == 0) {
} else if ((g_bMissionAudioLoadFailed[slot] && m_sMissionAudio.m_nMissionAudioCounter[slot]-- == 0) || GetMissionScriptPoliceAudioPlayingStatus() == PLAY_STATUS_FINISHED) {
m_sMissionAudio.m_nPlayStatus[slot] = PLAY_STATUS_FINISHED;
//if (m_sMissionAudio.m_nSampleIndex[slot] >= STREAMED_SOUND_MISSION_MOB_01A && m_sMissionAudio.m_nSampleIndex[slot] <= STREAMED_SOUND_MISSION_MOB_99A)
// m_sMissionAudio.m_bIsMobile[slot] = FALSE;
m_sMissionAudio.m_nSampleIndex[slot] = NO_SAMPLE;
//SampleManager.StopStreamedFile(slot + 1);
SampleManager.StopChannel(slot + CHANNEL_MISSION_AUDIO_1);
@@ -333,7 +333,7 @@ cAudioManager::Get3DProviderName(uint8 id) const
if (!m_bIsInitialised)
return nil;
#ifdef AUDIO_OAL
id = clamp(id, 0, SampleManager.GetNum3DProvidersAvailable() - 1);
id = Clamp(id, 0, SampleManager.GetNum3DProvidersAvailable() - 1);
#else
// We don't want that either since it will crash the game, but skipping for now
if (id >= SampleManager.GetNum3DProvidersAvailable())
@@ -533,7 +533,7 @@ cAudioManager::ComputeDopplerEffectedFrequency(uint32 oldFreq, float position1,
if (dist != 0.0f) {
float speedOfSource = (dist / m_nTimeSpent) * speedMultiplier;
if (m_fSpeedOfSound > Abs(speedOfSource)) {
speedOfSource = clamp2(speedOfSource, 0.0f, 1.5f);
speedOfSource = Clamp2(speedOfSource, 0.0f, 1.5f);
newFreq = (oldFreq * m_fSpeedOfSound) / (speedOfSource + m_fSpeedOfSound);
}
}
@@ -897,11 +897,11 @@ cAudioManager::ProcessActiveQueues()
sample.m_fSpeedMultiplier);

if (sample.m_nFrequency != m_asActiveSamples[j].m_nFrequency) {
m_asActiveSamples[j].m_nFrequency = clamp2((int32)sample.m_nFrequency, (int32)m_asActiveSamples[j].m_nFrequency, 6000);
m_asActiveSamples[j].m_nFrequency = Clamp2((int32)sample.m_nFrequency, (int32)m_asActiveSamples[j].m_nFrequency, 6000);
SampleManager.SetChannelFrequency(j, m_asActiveSamples[j].m_nFrequency);
}
if (sample.m_nEmittingVolume != m_asActiveSamples[j].m_nEmittingVolume) {
vol = clamp2((int8)sample.m_nEmittingVolume, (int8)m_asActiveSamples[j].m_nEmittingVolume, 10);
vol = Clamp2((int8)sample.m_nEmittingVolume, (int8)m_asActiveSamples[j].m_nEmittingVolume, 10);

if (field_4) {
emittingVol = 2 * Min(63, vol);
@@ -3,6 +3,7 @@
#include "AudioScriptObject.h"
#include "Pools.h"
#include "DMAudio.h"
#include "SaveBuf.h"

cAudioScriptObject::cAudioScriptObject()
{
@@ -53,12 +54,14 @@ cAudioScriptObject::LoadAllAudioScriptObjects(uint8 *buf, uint32 size)

CheckSaveHeader(buf, 'A', 'U', 'D', '\0', size - SAVE_HEADER_SIZE);

int32 pool_size = ReadSaveBuf<int32>(buf);
int32 pool_size;
ReadSaveBuf(&pool_size, buf);
for (int32 i = 0; i < pool_size; i++) {
int handle = ReadSaveBuf<int32>(buf);
int32 handle;
ReadSaveBuf(&handle, buf);
cAudioScriptObject *p = new(handle) cAudioScriptObject;
assert(p != nil);
*p = ReadSaveBuf<cAudioScriptObject>(buf);
ReadSaveBuf(p, buf);
p->AudioEntity = DMAudio.CreateLoopingScriptObject(p);
}

@@ -310,7 +310,18 @@ cMusicManager::ChangeMusicMode(uint8 mode)

switch (mode)
{
case MUSICMODE_FRONTEND: m_nUpcomingMusicMode = MUSICMODE_FRONTEND; break;
case MUSICMODE_FRONTEND:
m_nUpcomingMusicMode = MUSICMODE_FRONTEND;

#ifdef PAUSE_RADIO_IN_FRONTEND
// rewind those streams we weren't listening right now
for( uint32 i = STREAMED_SOUND_RADIO_HEAD; i < STREAMED_SOUND_CUTSCENE_BIKER; i++ ) {
m_aTracks[i].m_nPosition = GetTrackStartPos(i);
m_aTracks[i].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode();
}
#endif

break;
case MUSICMODE_GAME: m_nUpcomingMusicMode = MUSICMODE_GAME; break;
case MUSICMODE_CUTSCENE:
m_nUpcomingMusicMode = MUSICMODE_CUTSCENE;
@@ -414,6 +425,12 @@ cMusicManager::ServiceFrontEndMode()
{
static bool8 bRadioStatsRecorded = FALSE;

#ifdef PAUSE_RADIO_IN_FRONTEND
// pause radio
for( uint32 i = STREAMED_SOUND_RADIO_HEAD; i < STREAMED_SOUND_CUTSCENE_BIKER; i++ )
m_aTracks[i].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode();
#endif

if (m_bAnnouncementInProgress) {
SampleManager.StopStreamedFile();
if (SampleManager.IsStreamPlaying())
@@ -162,7 +162,7 @@ class CImaADPCMDecoder
else
StepIndex--;

StepIndex = clamp(StepIndex, 0, 88);
StepIndex = Clamp(StepIndex, 0, 88);

int delta = step >> 3;
if (adpcm & 1) delta += step >> 2;
@@ -171,7 +171,7 @@ class CImaADPCMDecoder
if (adpcm & 8) delta = -delta;

int newSample = Sample + delta;
Sample = clamp(newSample, -32768, 32767);
Sample = Clamp(newSample, -32768, 32767);
return Sample;
}
};
@@ -716,7 +716,7 @@ class CVagDecoder
static short quantize(double sample)
{
int a = int(sample + 0.5);
return short(clamp(a, -32768, 32767));
return short(Clamp(a, -32768, 32767));
}

void Decode(void* _inbuf, int16* _outbuf, size_t size)
@@ -1448,10 +1448,10 @@ void CStream::SetVolume(uint32 nVol)

void CStream::SetPan(uint8 nPan)
{
m_nPan = clamp((int8)nPan - 63, 0, 63);
m_nPan = Clamp((int8)nPan - 63, 0, 63);
SetPosition(0, (m_nPan - 63) / 64.0f, 0.0f, Sqrt(1.0f - SQR((m_nPan - 63) / 64.0f)));

m_nPan = clamp((int8)nPan + 64, 64, 127);
m_nPan = Clamp((int8)nPan + 64, 64, 127);
SetPosition(1, (m_nPan - 63) / 64.0f, 0.0f, Sqrt(1.0f - SQR((m_nPan - 63) / 64.0f)));

m_nPan = nPan;
@@ -1750,7 +1750,7 @@ cSampleManager::UpdateReverb(void)
#undef CALCULATE_RATIO
#undef MIN_DIST

fRatio = clamp(fRatio, 0.0f, 0.6f);
fRatio = Clamp(fRatio, 0.0f, 0.6f);

if ( fRatio == _fPrevEaxRatioDestination )
return FALSE;

0 comments on commit 10cc444

Please sign in to comment.