Add macros to set sample loop offsets

This commit is contained in:
Sergeanur
2021-06-12 19:19:31 +03:00
parent edc25a689f
commit 939d0c59a3
5 changed files with 105 additions and 165 deletions

View File

@@ -17,8 +17,10 @@ public:
uint8 m_nVolume;
float m_fDistance;
int32 m_nLoopCount;
#ifndef GTA_PS2
int32 m_nLoopStart;
int32 m_nLoopEnd;
#endif
uint8 m_nEmittingVolume;
float m_fSpeedMultiplier;
float m_fSoundIntensity;
@@ -498,6 +500,23 @@ public:
#endif
};
/*
Manual loop points are not on PS2 so let's have these macros to avoid massive ifndefs.
Setting these manually was pointless anyway since they never change from sdt values.
What were they thinking?
*/
#ifndef GTA_PS2
#define RESET_LOOP_OFFSETS \
m_sQueueSample.m_nLoopStart = 0; \
m_sQueueSample.m_nLoopEnd = -1;
#define SET_LOOP_OFFSETS(sample) \
m_sQueueSample.m_nLoopStart = SampleManager.GetSampleLoopStartOffset(sample); \
m_sQueueSample.m_nLoopEnd = SampleManager.GetSampleLoopEndOffset(sample);
#else
#define RESET_LOOP_OFFSETS
#define SET_LOOP_OFFSETS(sample)
#endif
#if defined(AUDIO_MSS) && !defined(PS2_AUDIO_CHANNELS)
static_assert(sizeof(cAudioManager) == 19220, "cAudioManager: error");
#endif