Коммит ee93e4bc создал по автору Sergeanur's avatar Sergeanur
Просмотр файлов

Audio: refactoring, type fixes, renaming cAudioManager fields

владелец 9ecca45b
......@@ -18,7 +18,7 @@ cAudioManager::ReportCollision(CEntity *entity1, CEntity *entity2, uint8 surface
CVector v1;
CVector v2;
if(!m_bIsInitialised || m_nCollisionEntity < 0 || m_nUserPause ||
if(!m_bIsInitialised || m_nCollisionEntity < 0 || m_bIsPaused ||
(velocity < 0.0016f && collisionPower < 0.01f))
return;
......
Это отличие свёрнуто
......@@ -24,9 +24,9 @@ cAudioManager::cAudioManager()
m_fSpeedOfSound = SPEED_OF_SOUND / TIME_SPENT;
m_nTimeSpent = TIME_SPENT;
m_nActiveSamples = NUM_CHANNELS_GENERIC;
m_nActiveSampleQueue = 1;
m_nActiveQueue = 1;
ClearRequestedQueue();
m_nActiveSampleQueue = 0;
m_nActiveQueue = 0;
ClearRequestedQueue();
ClearActiveSamples();
GenerateIntegerRandomNumberTable();
......@@ -35,11 +35,11 @@ cAudioManager::cAudioManager()
m_bDynamicAcousticModelingStatus = TRUE;
#endif
for (int i = 0; i < NUM_AUDIOENTITIES; i++) {
for (uint32 i = 0; i < NUM_AUDIOENTITIES; i++) {
m_asAudioEntities[i].m_bIsUsed = FALSE;
m_anAudioEntityIndices[i] = NUM_AUDIOENTITIES;
m_aAudioEntityOrderList[i] = NUM_AUDIOENTITIES;
}
m_nAudioEntitiesTotal = 0;
m_nAudioEntitiesCount = 0;
m_FrameCounter = 0;
m_bReduceReleasingPriority = FALSE;
m_bTimerJustReset = FALSE;
......@@ -64,7 +64,7 @@ cAudioManager::Initialise()
if (m_nActiveSamples <= 1) {
Terminate();
} else {
--m_nActiveSamples;
m_nActiveSamples--;
#else
{
m_nActiveSamples = NUM_CHANNELS_GENERIC;
......@@ -86,10 +86,10 @@ cAudioManager::Terminate()
for (uint32 i = 0; i < NUM_AUDIOENTITIES; i++) {
m_asAudioEntities[i].m_bIsUsed = FALSE;
m_anAudioEntityIndices[i] = ARRAY_SIZE(m_anAudioEntityIndices);
m_aAudioEntityOrderList[i] = ARRAY_SIZE(m_aAudioEntityOrderList);
}
m_nAudioEntitiesTotal = 0;
m_nAudioEntitiesCount = 0;
m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal = 0;
PreTerminateGameSpecificShutdown();
......@@ -115,8 +115,8 @@ cAudioManager::Service()
m_bTimerJustReset = FALSE;
}
if (m_bIsInitialised) {
m_nPreviousUserPause = m_nUserPause;
m_nUserPause = CTimer::GetIsUserPaused();
m_bWasPaused = m_bIsPaused;
m_bIsPaused = CTimer::GetIsUserPaused();
#ifdef AUDIO_REFLECTIONS
UpdateReflections();
#endif
......@@ -138,12 +138,12 @@ cAudioManager::CreateEntity(eAudioType type, void *entity)
#ifdef FIX_BUGS
// since sound could still play after entity deletion let's make sure we don't override one that is in use
// find all the free entity IDs that are being used by queued samples
int32 stillUsedEntities[NUM_CHANNELS_GENERIC * NUM_SOUNDS_SAMPLES_BANKS];
int32 stillUsedEntities[NUM_CHANNELS_GENERIC * NUM_SOUND_QUEUES];
uint32 stillUsedEntitiesCount = 0;
for (uint8 i = 0; i < NUM_SOUNDS_SAMPLES_BANKS; i++)
for (uint8 j = 0; j < m_SampleRequestQueuesStatus[i]; j++) {
tSound &sound = m_asSamples[i][m_abSampleQueueIndexTable[i][j]];
for (uint8 i = 0; i < NUM_SOUND_QUEUES; i++)
for (uint8 j = 0; j < m_nRequestedCount[i]; j++) {
tSound &sound = m_aRequestedQueue[i][m_aRequestedOrderList[i][j]];
if (sound.m_nEntityIndex < 0) continue;
if (!m_asAudioEntities[sound.m_nEntityIndex].m_bIsUsed) {
bool found = false;
......@@ -159,7 +159,7 @@ cAudioManager::CreateEntity(eAudioType type, void *entity)
}
#endif
for (uint32 i = 0; i < ARRAY_SIZE(m_asAudioEntities); i++) {
for (uint32 i = 0; i < NUM_AUDIOENTITIES; i++) {
if (!m_asAudioEntities[i].m_bIsUsed) {
#ifdef FIX_BUGS
// skip if ID is still used by queued sample
......@@ -184,7 +184,7 @@ cAudioManager::CreateEntity(eAudioType type, void *entity)
m_asAudioEntities[i].m_awAudioEvent[2] = SOUND_NO_SOUND;
m_asAudioEntities[i].m_awAudioEvent[3] = SOUND_NO_SOUND;
m_asAudioEntities[i].m_AudioEvents = 0;
m_anAudioEntityIndices[m_nAudioEntitiesTotal++] = i;
m_aAudioEntityOrderList[m_nAudioEntitiesCount++] = i;
return i;
}
}
......@@ -196,11 +196,11 @@ cAudioManager::DestroyEntity(int32 id)
{
if (m_bIsInitialised && id >= 0 && id < NUM_AUDIOENTITIES && m_asAudioEntities[id].m_bIsUsed) {
m_asAudioEntities[id].m_bIsUsed = FALSE;
for (int32 i = 0; i < m_nAudioEntitiesTotal; ++i) {
if (id == m_anAudioEntityIndices[i]) {
for (uint32 i = 0; i < m_nAudioEntitiesCount; i++) {
if (id == m_aAudioEntityOrderList[i]) {
if (i < NUM_AUDIOENTITIES - 1)
memmove(&m_anAudioEntityIndices[i], &m_anAudioEntityIndices[i + 1], NUM_AUDIOENTITY_EVENTS * (m_nAudioEntitiesTotal - (i + 1)));
m_anAudioEntityIndices[--m_nAudioEntitiesTotal] = NUM_AUDIOENTITIES;
memmove(&m_aAudioEntityOrderList[i], &m_aAudioEntityOrderList[i + 1], NUM_AUDIOENTITY_EVENTS * (m_nAudioEntitiesCount - (i + 1)));
m_aAudioEntityOrderList[--m_nAudioEntitiesCount] = NUM_AUDIOENTITIES;
return;
}
}
......@@ -257,13 +257,13 @@ cAudioManager::PlayOneShot(int32 index, uint16 sound, float vol)
if (entity.m_AudioEvents < ARRAY_SIZE(entity.m_awAudioEvent)) {
entity.m_awAudioEvent[i] = sound;
entity.m_afVolume[i] = vol;
++entity.m_AudioEvents;
entity.m_AudioEvents++;
}
return;
}
if (OneShotPriority[entity.m_awAudioEvent[i]] > OneShotPriority[sound])
break;
++i;
i++;
}
if (i < NUM_AUDIOENTITY_EVENTS - 1) {
memmove(&entity.m_awAudioEvent[i + 1], &entity.m_awAudioEvent[i], (NUM_AUDIOENTITY_EVENTS - 1 - i) * NUM_AUDIOENTITY_EVENTS / 2);
......@@ -272,7 +272,7 @@ cAudioManager::PlayOneShot(int32 index, uint16 sound, float vol)
entity.m_awAudioEvent[i] = sound;
entity.m_afVolume[i] = vol;
if (entity.m_AudioEvents < ARRAY_SIZE(entity.m_awAudioEvent))
++entity.m_AudioEvents;
entity.m_AudioEvents++;
}
}
}
......@@ -317,14 +317,14 @@ cAudioManager::ResetTimers(uint32 time)
m_bTimerJustReset = TRUE;
m_nTimer = time;
ClearRequestedQueue();
if (m_nActiveSampleQueue) {
m_nActiveSampleQueue = 0;
if (m_nActiveQueue) {
m_nActiveQueue = 0;
ClearRequestedQueue();
m_nActiveSampleQueue = 1;
m_nActiveQueue = 1;
} else {
m_nActiveSampleQueue = 1;
m_nActiveQueue = 1;
ClearRequestedQueue();
m_nActiveSampleQueue = 0;
m_nActiveQueue = 0;
}
ClearActiveSamples();
ClearMissionAudio();
......@@ -344,7 +344,7 @@ cAudioManager::DestroyAllGameCreatedEntities()
cAudioScriptObject *entity;
if (m_bIsInitialised) {
for (uint32 i = 0; i < ARRAY_SIZE(m_asAudioEntities); i++) {
for (uint32 i = 0; i < NUM_AUDIOENTITIES; i++) {
if (m_asAudioEntities[i].m_bIsUsed) {
switch (m_asAudioEntities[i].m_nType) {
case AUDIOTYPE_PHYSICAL:
......@@ -422,13 +422,13 @@ cAudioManager::SetCurrent3DProvider(uint8 which)
#else
if (!m_bIsInitialised)
return -1;
for (uint8 i = 0; i < m_nActiveSamples + 1; ++i)
for (uint8 i = 0; i < m_nActiveSamples + 1; i++)
SampleManager.StopChannel(i);
ClearRequestedQueue();
if (m_nActiveSampleQueue == 0)
m_nActiveSampleQueue = 1;
if (m_nActiveQueue == 0)
m_nActiveQueue = 1;
else
m_nActiveSampleQueue = 0;
m_nActiveQueue = 0;
ClearRequestedQueue();
ClearActiveSamples();
int8 current = SampleManager.SetCurrent3DProvider(which);
......@@ -436,7 +436,7 @@ cAudioManager::SetCurrent3DProvider(uint8 which)
#ifdef EXTERNAL_3D_SOUND
m_nActiveSamples = SampleManager.GetMaximumSupportedChannels();
if (m_nActiveSamples > 1)
--m_nActiveSamples;
m_nActiveSamples--;
#endif
}
return current;
......@@ -514,23 +514,23 @@ cAudioManager::ServiceSoundEffects()
if(CTimer::GetLogicalFramesPassed() != 0)
#endif
m_bReduceReleasingPriority = (m_FrameCounter++ % 5) == 0;
if (m_nUserPause && !m_nPreviousUserPause) {
if (m_bIsPaused && !m_bWasPaused) {
for (int32 i = 0; i < NUM_CHANNELS; i++)
SampleManager.StopChannel(i);
ClearRequestedQueue();
if (m_nActiveSampleQueue) {
m_nActiveSampleQueue = 0;
if (m_nActiveQueue) {
m_nActiveQueue = 0;
ClearRequestedQueue();
m_nActiveSampleQueue = 1;
m_nActiveQueue = 1;
} else {
m_nActiveSampleQueue = 1;
m_nActiveQueue = 1;
ClearRequestedQueue();
m_nActiveSampleQueue = 0;
m_nActiveQueue = 0;
}
ClearActiveSamples();
}
m_nActiveSampleQueue = m_nActiveSampleQueue == 1 ? 0 : 1;
m_nActiveQueue = m_nActiveQueue == 1 ? 0 : 1;
ProcessReverb();
ProcessSpecial();
ClearRequestedQueue();
......@@ -547,7 +547,7 @@ cAudioManager::ServiceSoundEffects()
#ifdef AUDIO_OAL
SampleManager.Service();
#endif
for (int32 i = 0; i < m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal; ++i) {
for (int32 i = 0; i < m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal; i++) {
cAudioScriptObject *object = (cAudioScriptObject *)m_asAudioEntities[m_sAudioScriptObjectManager.m_anScriptObjectEntityIndices[i]].m_pEntity;
delete object;
m_asAudioEntities[m_sAudioScriptObjectManager.m_anScriptObjectEntityIndices[i]].m_pEntity = nil;
......@@ -636,9 +636,9 @@ cAudioManager::RandomDisplacement(uint32 seed)
void
cAudioManager::InterrogateAudioEntities()
{
for (int32 i = 0; i < m_nAudioEntitiesTotal; i++) {
ProcessEntity(m_anAudioEntityIndices[i]);
m_asAudioEntities[m_anAudioEntityIndices[i]].m_AudioEvents = 0;
for (uint32 i = 0; i < m_nAudioEntitiesCount; i++) {
ProcessEntity(m_aAudioEntityOrderList[i]);
m_asAudioEntities[m_aAudioEntityOrderList[i]].m_AudioEvents = 0;
}
}
......@@ -653,13 +653,13 @@ cAudioManager::AddSampleToRequestedQueue()
if (m_sQueueSample.m_nSampleIndex < TOTAL_AUDIO_SAMPLES) {
finalPriority = m_sQueueSample.m_nPriority * (MAX_VOLUME - m_sQueueSample.m_nVolume);
sampleIndex = m_SampleRequestQueuesStatus[m_nActiveSampleQueue];
sampleIndex = m_nRequestedCount[m_nActiveQueue];
if (sampleIndex >= m_nActiveSamples) {
sampleIndex = m_abSampleQueueIndexTable[m_nActiveSampleQueue][m_nActiveSamples - 1];
if (m_asSamples[m_nActiveSampleQueue][sampleIndex].m_nFinalPriority <= finalPriority)
sampleIndex = m_aRequestedOrderList[m_nActiveQueue][m_nActiveSamples - 1];
if (m_aRequestedQueue[m_nActiveQueue][sampleIndex].m_nFinalPriority <= finalPriority)
return;
} else {
++m_SampleRequestQueuesStatus[m_nActiveSampleQueue];
m_nRequestedCount[m_nActiveQueue]++;
}
#if GTA_VERSION < GTA3_PC_10
if (m_sQueueSample.m_bStatic) {
......@@ -688,7 +688,7 @@ cAudioManager::AddSampleToRequestedQueue()
m_sQueueSample.m_bReverb = FALSE;
#endif
m_asSamples[m_nActiveSampleQueue][sampleIndex] = m_sQueueSample;
m_aRequestedQueue[m_nActiveQueue][sampleIndex] = m_sQueueSample;
AddDetailsToRequestedOrderList(sampleIndex);
#ifdef AUDIO_REFLECTIONS
......@@ -704,15 +704,15 @@ cAudioManager::AddDetailsToRequestedOrderList(uint8 sample)
uint32 i = 0;
if (sample != 0) {
for (; i < sample; i++) {
if (m_asSamples[m_nActiveSampleQueue][m_abSampleQueueIndexTable[m_nActiveSampleQueue][i]].m_nFinalPriority >
m_asSamples[m_nActiveSampleQueue][sample].m_nFinalPriority)
if (m_aRequestedQueue[m_nActiveQueue][m_aRequestedOrderList[m_nActiveQueue][i]].m_nFinalPriority >
m_aRequestedQueue[m_nActiveQueue][sample].m_nFinalPriority)
break;
}
if (i < sample) {
memmove(&m_abSampleQueueIndexTable[m_nActiveSampleQueue][i + 1], &m_abSampleQueueIndexTable[m_nActiveSampleQueue][i], m_nActiveSamples - i - 1);
memmove(&m_aRequestedOrderList[m_nActiveQueue][i + 1], &m_aRequestedOrderList[m_nActiveQueue][i], m_nActiveSamples - i - 1);
}
}
m_abSampleQueueIndexTable[m_nActiveSampleQueue][i] = sample;
m_aRequestedOrderList[m_nActiveQueue][i] = sample;
}
#ifdef AUDIO_REFLECTIONS
......@@ -810,17 +810,17 @@ cAudioManager::AddReleasingSounds()
bool8 toProcess[44];
#endif
int8 queue = m_nActiveSampleQueue == 0 ? 1 : 0;
uint8 queue = m_nActiveQueue == 0 ? 1 : 0;
for (int32 i = 0; i < m_SampleRequestQueuesStatus[queue]; i++) {
tSound &sample = m_asSamples[queue][m_abSampleQueueIndexTable[queue][i]];
for (uint8 i = 0; i < m_nRequestedCount[queue]; i++) {
tSound &sample = m_aRequestedQueue[queue][m_aRequestedOrderList[queue][i]];
if (sample.m_bIsPlayingFinished)
continue;
toProcess[i] = FALSE;
for (int32 j = 0; j < m_SampleRequestQueuesStatus[m_nActiveSampleQueue]; j++) {
if (sample.m_nEntityIndex == m_asSamples[m_nActiveSampleQueue][m_abSampleQueueIndexTable[m_nActiveSampleQueue][j]].m_nEntityIndex &&
sample.m_nCounter == m_asSamples[m_nActiveSampleQueue][m_abSampleQueueIndexTable[m_nActiveSampleQueue][j]].m_nCounter) {
for (uint8 j = 0; j < m_nRequestedCount[m_nActiveQueue]; j++) {
if (sample.m_nEntityIndex == m_aRequestedQueue[m_nActiveQueue][m_aRequestedOrderList[m_nActiveQueue][j]].m_nEntityIndex &&
sample.m_nCounter == m_aRequestedQueue[m_nActiveQueue][m_aRequestedOrderList[m_nActiveQueue][j]].m_nCounter) {
toProcess[i] = TRUE;
break;
}
......@@ -954,18 +954,18 @@ cAudioManager::ProcessActiveQueues()
#endif
#ifdef USE_TIME_SCALE_FOR_AUDIO
float timeScale = m_nUserPause ? 1.0f : CTimer::GetTimeScale();
float timeScale = m_bIsPaused ? 1.0f : CTimer::GetTimeScale();
#endif
for (int32 i = 0; i < m_nActiveSamples; i++) {
m_asSamples[m_nActiveSampleQueue][i].m_bIsBeingPlayed = FALSE;
for (uint8 i = 0; i < m_nActiveSamples; i++) {
m_aRequestedQueue[m_nActiveQueue][i].m_bIsBeingPlayed = FALSE;
m_asActiveSamples[i].m_bIsBeingPlayed = FALSE;
}
for (int32 i = 0; i < m_SampleRequestQueuesStatus[m_nActiveSampleQueue]; i++) {
tSound &sample = m_asSamples[m_nActiveSampleQueue][m_abSampleQueueIndexTable[m_nActiveSampleQueue][i]];
for (uint8 i = 0; i < m_nRequestedCount[m_nActiveQueue]; i++) {
tSound &sample = m_aRequestedQueue[m_nActiveQueue][m_aRequestedOrderList[m_nActiveQueue][i]];
if (sample.m_nSampleIndex != NO_SAMPLE) {
for (int32 j = 0; j < m_nActiveSamples; j++) {
for (uint8 j = 0; j < m_nActiveSamples; j++) {
if (sample.m_nEntityIndex == m_asActiveSamples[j].m_nEntityIndex && sample.m_nCounter == m_asActiveSamples[j].m_nCounter &&
sample.m_nSampleIndex == m_asActiveSamples[j].m_nSampleIndex) {
if (sample.m_nLoopCount > 0) {
......@@ -1052,15 +1052,15 @@ cAudioManager::ProcessActiveQueues()
}
}
}
for (int32 i = 0; i < m_nActiveSamples; i++) {
for (uint8 i = 0; i < m_nActiveSamples; i++) {
if (m_asActiveSamples[i].m_nSampleIndex != NO_SAMPLE && !m_asActiveSamples[i].m_bIsBeingPlayed) {
SampleManager.StopChannel(i);
m_asActiveSamples[i].m_nSampleIndex = NO_SAMPLE;
m_asActiveSamples[i].m_nEntityIndex = AEHANDLE_NONE;
}
}
for (uint8 i = 0; i < m_SampleRequestQueuesStatus[m_nActiveSampleQueue]; i++) {
tSound &sample = m_asSamples[m_nActiveSampleQueue][m_abSampleQueueIndexTable[m_nActiveSampleQueue][i]];
for (uint8 i = 0; i < m_nRequestedCount[m_nActiveQueue]; i++) {
tSound &sample = m_aRequestedQueue[m_nActiveQueue][m_aRequestedOrderList[m_nActiveQueue][i]];
if (!sample.m_bIsBeingPlayed && !sample.m_bIsPlayingFinished && m_asAudioEntities[sample.m_nEntityIndex].m_bIsUsed && sample.m_nSampleIndex < NO_SAMPLE) {
#ifdef AUDIO_REFLECTIONS
if (sample.m_nCounter > 255 && sample.m_nLoopCount > 0 && sample.m_nReflectionDelay > 0) { // check if reflection
......@@ -1154,10 +1154,9 @@ cAudioManager::ProcessActiveQueues()
void
cAudioManager::ClearRequestedQueue()
{
for (int32 i = 0; i < m_nActiveSamples; i++) {
m_abSampleQueueIndexTable[m_nActiveSampleQueue][i] = m_nActiveSamples;
}
m_SampleRequestQueuesStatus[m_nActiveSampleQueue] = 0;
for (uint8 i = 0; i < m_nActiveSamples; i++)
m_aRequestedOrderList[m_nActiveQueue][i] = m_nActiveSamples;
m_nRequestedCount[m_nActiveQueue] = 0;
}
void
......@@ -1212,17 +1211,16 @@ cAudioManager::LoadBankIfNecessary(uint8 bank)
void
cAudioManager::GenerateIntegerRandomNumberTable()
{
for (int32 i = 0; i < ARRAY_SIZE(m_anRandomTable); i++) {
for (uint32 i = 0; i < ARRAY_SIZE(m_anRandomTable); i++)
m_anRandomTable[i] = myrand();
}
}
#ifdef EXTERNAL_3D_SOUND
void
cAudioManager::AdjustSamplesVolume()
{
for (int i = 0; i < m_SampleRequestQueuesStatus[m_nActiveSampleQueue]; i++) {
tSound *pSample = &m_asSamples[m_nActiveSampleQueue][m_abSampleQueueIndexTable[m_nActiveSampleQueue][i]];
for (uint8 i = 0; i < m_nRequestedCount[m_nActiveQueue]; i++) {
tSound *pSample = &m_aRequestedQueue[m_nActiveQueue][m_aRequestedOrderList[m_nActiveQueue][i]];
if (!pSample->m_bIs2D)
pSample->m_nEmittingVolume = ComputeEmittingVolume(pSample->m_nEmittingVolume, pSample->m_MaxDistance, pSample->m_fDistance);
......
......@@ -58,7 +58,7 @@ public:
bool8 m_bIsBeingPlayed; // Set to TRUE when the sound was added or changed on current frame to avoid it being overwritten
bool8 m_bIsPlayingFinished; // Not sure about the name. Set to TRUE when sampman channel becomes free
#if GTA_VERSION < GTA3_PC_10
int32 unk; // Only on PS2, used by static non-looped sounds (AFAIK)
int32 unk; // (inherited from GTA 2) Only on PS2, used by static non-looped sounds (AFAIK)
// Looks like it's keeping a number of frames left to play with the purpose of setting m_bIsPlayingFinished=TRUE once value reaches 0
// Default value is -3 for whatever reason
#endif
......@@ -219,16 +219,16 @@ public:
#endif
float m_fSpeedOfSound;
bool8 m_bTimerJustReset;
int32 m_nTimer;
uint32 m_nTimer;
tSound m_sQueueSample;
uint8 m_nActiveSampleQueue;
tSound m_asSamples[NUM_SOUNDS_SAMPLES_BANKS][NUM_CHANNELS_GENERIC];
uint8 m_abSampleQueueIndexTable[NUM_SOUNDS_SAMPLES_BANKS][NUM_CHANNELS_GENERIC];
uint8 m_SampleRequestQueuesStatus[NUM_SOUNDS_SAMPLES_BANKS];
uint8 m_nActiveQueue;
tSound m_aRequestedQueue[NUM_SOUND_QUEUES][NUM_CHANNELS_GENERIC];
uint8 m_aRequestedOrderList[NUM_SOUND_QUEUES][NUM_CHANNELS_GENERIC];
uint8 m_nRequestedCount[NUM_SOUND_QUEUES];
tSound m_asActiveSamples[NUM_CHANNELS_GENERIC];
tAudioEntity m_asAudioEntities[NUM_AUDIOENTITIES];
int32 m_anAudioEntityIndices[NUM_AUDIOENTITIES];
int32 m_nAudioEntitiesTotal;
uint32 m_aAudioEntityOrderList[NUM_AUDIOENTITIES];
uint32 m_nAudioEntitiesCount;
#ifdef AUDIO_REFLECTIONS
CVector m_avecReflectionsPos[MAX_REFLECTIONS];
float m_afReflectionsDistances[MAX_REFLECTIONS];
......@@ -253,13 +253,13 @@ public:
uint8 m_nMissionAudioLoadingStatus;
uint8 m_nMissionAudioPlayStatus;
bool8 m_bIsMissionAudioPlaying;
int32 m_nMissionAudioFramesToPlay;
int32 m_nMissionAudioFramesToPlay; // possibly unsigned
bool8 m_bIsMissionAudioAllowedToPlay;
int32 m_anRandomTable[5];
uint8 m_nTimeSpent;
bool8 m_nUserPause;
bool8 m_nPreviousUserPause;
bool8 m_bIsPaused;
bool8 m_bWasPaused;
uint32 m_FrameCounter;
cAudioManager();
......
......@@ -363,14 +363,14 @@ cMusicManager::GetRadioInCar(void)
CVehicle *veh = FindPlayerVehicle();
if (veh != nil){
if (UsesPoliceRadio(veh)) {
if (m_nRadioInCar == NO_TRACK || (CReplay::IsPlayingBack() && !AudioManager.m_nUserPause))
if (m_nRadioInCar == NO_TRACK || (CReplay::IsPlayingBack() && !AudioManager.m_bIsPaused))
return POLICE_RADIO;
return m_nRadioInCar;
} else return veh->m_nRadioStation;
}
}
if (m_nRadioInCar == NO_TRACK || (CReplay::IsPlayingBack() && !AudioManager.m_nUserPause))
if (m_nRadioInCar == NO_TRACK || (CReplay::IsPlayingBack() && !AudioManager.m_bIsPaused))
return RADIO_OFF;
return m_nRadioInCar;
}
......@@ -418,7 +418,7 @@ cMusicManager::ResetMusicAfterReload()
void
cMusicManager::ResetTimers(int32 time)
cMusicManager::ResetTimers(uint32 time)
{
m_bResetTimers = TRUE;
m_nResetTime = time;
......@@ -469,7 +469,7 @@ cMusicManager::ServiceFrontEndMode()
switch (m_nNextTrack)
{
case STREAMED_SOUND_MISSION_COMPLETED:
if (!AudioManager.m_nUserPause)
if (!AudioManager.m_bIsPaused)
ChangeMusicMode(MUSICMODE_GAME);
break;
case STREAMED_SOUND_GAME_COMPLETED:
......@@ -543,7 +543,7 @@ cMusicManager::ServiceGameMode()
nFramesSinceCutsceneEnded = -1;
}
if (AudioManager.m_nPreviousUserPause)
if (AudioManager.m_bWasPaused)
m_bPreviousPlayerInCar = FALSE;
if (!m_bPlayerInCar) {
if (m_bPreviousPlayerInCar) {
......
......@@ -66,7 +66,7 @@ public:
void ResetMusicAfterReload();
void ResetTimers(int32);
void ResetTimers(uint32);
void Service();
void ServiceFrontEndMode();
void ServiceGameMode();
......
......@@ -149,7 +149,7 @@ cAudioManager::ServicePoliceRadio()
if(!m_bIsInitialised) return;
if(!m_nUserPause) {
if(!m_bIsPaused) {
bool8 crimeReport = SetupCrimeReport();
#ifdef FIX_BUGS // Crash at 0x5fe6ef
if(CReplay::IsPlayingBack() || !FindPlayerPed() || !FindPlayerPed()->m_pWanted)
......@@ -188,14 +188,14 @@ cAudioManager::ServicePoliceRadioChannel(uint8 wantedLevel)
if (!m_bIsInitialised) return;
if (m_nUserPause) {
if (m_bIsPaused) {
if (SampleManager.GetChannelUsedFlag(CHANNEL_POLICE_RADIO)) SampleManager.StopChannel(CHANNEL_POLICE_RADIO);
if (g_nMissionAudioSfx != TOTAL_AUDIO_SAMPLES && bMissionAudioPhysicalPlayingStatus == PLAY_STATUS_PLAYING &&
SampleManager.IsStreamPlaying(1)) {
SampleManager.PauseStream(TRUE, 1);
}
} else {
if (m_nPreviousUserPause && g_nMissionAudioSfx != TOTAL_AUDIO_SAMPLES &&
if (m_bWasPaused && g_nMissionAudioSfx != TOTAL_AUDIO_SAMPLES &&
bMissionAudioPhysicalPlayingStatus == PLAY_STATUS_PLAYING) {
SampleManager.PauseStream(FALSE, 1);
}
......
......@@ -129,7 +129,7 @@ enum Config {
NUM_PED_COMMENTS_BANKS = 2,
NUM_PED_COMMENTS_SLOTS = 20,
NUM_SOUNDS_SAMPLES_BANKS = 2,
NUM_SOUND_QUEUES = 2,
NUM_AUDIOENTITIES = 200,
NUM_SCRIPT_MAX_ENTITIES = 40,
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать