sirenes and more marks for audio. also fix cAudioMrg size

This commit is contained in:
Roman Masanin 2020-10-12 20:55:19 +03:00
parent e34261d3ef
commit a4fd1a9f39
4 changed files with 21 additions and 35 deletions

View file

@ -2027,33 +2027,17 @@ cAudioManager::ProcessVehicleHorn(cVehicleParams *params)
} }
bool bool
cAudioManager::UsesSiren(int32 model) const cAudioManager::UsesSiren(cVehicleParams *params) const
{ {
switch (model) { params->m_pVehicle->UsesSiren();
case FIRETRUK:
case AMBULAN:
case FBICAR:
case POLICE:
case ENFORCER:
case PREDATOR:
return true;
default:
return false;
}
} }
bool bool
cAudioManager::UsesSirenSwitching(int32 model) const cAudioManager::UsesSirenSwitching(cVehicleParams *params) const
{ {
switch (model) { if (params->m_nIndex == FIRETRUK || params->m_nIndex == MRWHOOP)
case AMBULAN:
case POLICE:
case ENFORCER:
case PREDATOR:
return true;
default:
return false; return false;
} return params->m_pVehicle->UsesSiren();
} }
bool bool

View file

@ -275,6 +275,7 @@ cAudioManager::ResetTimers(uint32 time)
SampleManager.SetEffectsFadeVolume(0); SampleManager.SetEffectsFadeVolume(0);
SampleManager.SetMusicFadeVolume(0); SampleManager.SetMusicFadeVolume(0);
MusicManager.ResetMusicAfterReload(); MusicManager.ResetMusicAfterReload();
m_bIsPlayerShutUp = false;
#ifdef AUDIO_OAL #ifdef AUDIO_OAL
SampleManager.Service(); SampleManager.Service();
#endif #endif

View file

@ -76,6 +76,7 @@ public:
uint8 m_nIndexMap[NUM_PED_COMMENTS_BANKS][NUM_PED_COMMENTS_SLOTS]; uint8 m_nIndexMap[NUM_PED_COMMENTS_BANKS][NUM_PED_COMMENTS_SLOTS];
uint8 m_nCommentsInBank[NUM_PED_COMMENTS_BANKS]; uint8 m_nCommentsInBank[NUM_PED_COMMENTS_BANKS];
uint8 m_nActiveBank; uint8 m_nActiveBank;
uint32 field_48C;
cPedComments() cPedComments()
{ {
@ -93,7 +94,7 @@ public:
void Process(); void Process();
}; };
VALIDATE_SIZE(cPedComments, 1164); VALIDATE_SIZE(cPedComments, 0x490);
class CEntity; class CEntity;
@ -286,8 +287,8 @@ public:
bool HasAirBrakes(int32 model) const; // done bool HasAirBrakes(int32 model) const; // done
void Initialise(); // done void Initialise(); // done
void InitialisePoliceRadio(); void InitialisePoliceRadio(); //done
void InitialisePoliceRadioZones(); void InitialisePoliceRadioZones(); //done
void InterrogateAudioEntities(); // done void InterrogateAudioEntities(); // done
bool IsAudioInitialised() const; // done bool IsAudioInitialised() const; // done
bool IsMissionAudioSampleFinished(uint8 slot); // done bool IsMissionAudioSampleFinished(uint8 slot); // done
@ -370,17 +371,17 @@ public:
void ProcessEscalators(); // done void ProcessEscalators(); // done
void ProcessExtraSounds(); // done void ProcessExtraSounds(); // done
int32 RandomDisplacement(uint32 seed) const; // int32 RandomDisplacement(uint32 seed) const; // done
void ReacquireDigitalHandle() const; // done void ReacquireDigitalHandle() const; // done
void ReleaseDigitalHandle() const; // done void ReleaseDigitalHandle() const; // done
void ReportCollision(CEntity *entity1, CEntity *entity2, uint8 surface1, uint8 surface2, float collisionPower, float intensity2); // done void ReportCollision(CEntity *entity1, CEntity *entity2, uint8 surface1, uint8 surface2, float collisionPower, float intensity2); // done
void ReportCrime(int32 crime, const CVector *pos); // done void ReportCrime(int32 crime, const CVector *pos); // done
void ResetAudioLogicTimers(uint32 timer); // done void ResetAudioLogicTimers(uint32 timer); // done
void ResetPoliceRadio(); // void ResetPoliceRadio(); // done
void ResetTimers(uint32 time); // void ResetTimers(uint32 time); // done
void Service(); //done void Service(); //done
void ServiceCollisions(); void ServiceCollisions(); //done
void ServicePoliceRadio(); void ServicePoliceRadio();
void ServicePoliceRadioChannel(int32 wantedLevel); void ServicePoliceRadioChannel(int32 wantedLevel);
void ServiceSoundEffects(); void ServiceSoundEffects();
@ -408,13 +409,13 @@ public:
void SetupPedComments(cPedParams *params, uint32 sound); void SetupPedComments(cPedParams *params, uint32 sound);
void SetupSuspectLastSeenReport(); void SetupSuspectLastSeenReport();
void Terminate(); void Terminate(); //done
void TranslateEntity(Const CVector *v1, CVector *v2) const; void TranslateEntity(Const CVector *v1, CVector *v2) const; //done
void UpdateReflections(); void UpdateReflections();
bool UsesReverseWarning(int32 model) const; //done bool UsesReverseWarning(int32 model) const; //done
bool UsesSiren(int32 model) const; bool UsesSiren(cVehicleParams *params) const; //done
bool UsesSirenSwitching(int32 model) const; bool UsesSirenSwitching(cVehicleParams* params) const; //done
CVehicle *FindVehicleOfPlayer(); //done CVehicle *FindVehicleOfPlayer(); //done
void SetPedTalkingStatus(CPed *ped, uint8 status); void SetPedTalkingStatus(CPed *ped, uint8 status);

View file

@ -374,7 +374,7 @@ cMusicManager::Service()
field_399A = true; field_399A = true;
if (!field_3999 && !AudioManager.m_nUserPause && AudioManager.m_nPreviousUserPause) if (!field_3999 && !AudioManager.m_nUserPause && AudioManager.m_nPreviousUserPause)
field_3999 = true; field_3999 = true;
if (AudioManager.field_5554 % 4 == 0) { if (AudioManager.m_FrameCounter % 4 == 0) {
gNumRetunePresses = 0; gNumRetunePresses = 0;
gRetuneCounter = 0; gRetuneCounter = 0;
field_2 = false; field_2 = false;
@ -422,7 +422,7 @@ cMusicManager::ServiceFrontEndMode()
m_nPlayingTrack = NO_TRACK; m_nPlayingTrack = NO_TRACK;
} }
if (AudioManager.field_5554 % 4 != 0) return; if (AudioManager.m_FrameCounter % 4 != 0) return;
if (!field_398F && !field_3995) { if (!field_398F && !field_3995) {
m_nStreamedTrack = m_nFrontendTrack; m_nStreamedTrack = m_nFrontendTrack;
@ -893,7 +893,7 @@ cMusicManager::ServiceTrack(CVehicle *veh, CPed *ped)
{ {
field_398F = true; field_398F = true;
SampleManager.SetStreamedVolumeAndPan(0, 63, 0, 0); SampleManager.SetStreamedVolumeAndPan(0, 63, 0, 0);
if (!(AudioManager.field_5554 & 1)) { if (!(AudioManager.m_FrameCounter & 1)) {
if (field_3995 || !SampleManager.IsStreamPlaying(0)) { if (field_3995 || !SampleManager.IsStreamPlaying(0)) {
bRadioStatsRecorded2 = false; bRadioStatsRecorded2 = false;
if (SampleManager.IsStreamPlaying(0)) { if (SampleManager.IsStreamPlaying(0)) {