Use PS2-y global names on SampMan

This commit is contained in:
erorcun 2021-06-27 17:53:14 +03:00
parent a923728877
commit 091a65996e
6 changed files with 273 additions and 273 deletions

View File

@ -58,69 +58,69 @@ enum LOADING_STATUS { LOADING_STATUS_NOT_LOADED = 0, LOADING_STATUS_LOADED, LOAD
void
cAudioManager::PreInitialiseGameSpecificSetup() const
{
BankStartOffset[SFX_BANK_0] = SAMPLEBANK_START;
gBankStartOffset[SFX_BANK_0] = SAMPLEBANK_START;
#ifdef GTA_PS2
BankStartOffset[SFX_BANK_PACARD] = SFX_CAR_ACCEL_1;
BankStartOffset[SFX_BANK_PATHFINDER] = SFX_CAR_ACCEL_2;
BankStartOffset[SFX_BANK_PORSCHE] = SFX_CAR_ACCEL_3;
BankStartOffset[SFX_BANK_SPIDER] = SFX_CAR_ACCEL_4;
BankStartOffset[SFX_BANK_MERC] = SFX_CAR_ACCEL_5;
BankStartOffset[SFX_BANK_TRUCK] = SFX_CAR_ACCEL_6;
BankStartOffset[SFX_BANK_HOTROD] = SFX_CAR_ACCEL_7;
BankStartOffset[SFX_BANK_COBRA] = SFX_CAR_ACCEL_8;
BankStartOffset[SFX_BANK_NONE] = SFX_CAR_ACCEL_9;
BankStartOffset[SFX_BANK_FRONT_END_MENU] = SFX_PAGE_CHANGE_AND_BACK_LEFT;
BankStartOffset[SFX_BANK_TRAIN] = SFX_TRAIN_STATION_AMBIENCE_LOOP;
BankStartOffset[SFX_BANK_BUILDING_CLUB_1] = SFX_CLUB_1;
BankStartOffset[SFX_BANK_BUILDING_CLUB_2] = SFX_CLUB_2;
BankStartOffset[SFX_BANK_BUILDING_CLUB_3] = SFX_CLUB_3;
BankStartOffset[SFX_BANK_BUILDING_CLUB_4] = SFX_CLUB_4;
BankStartOffset[SFX_BANK_BUILDING_CLUB_5] = SFX_CLUB_5;
BankStartOffset[SFX_BANK_BUILDING_CLUB_6] = SFX_CLUB_6;
BankStartOffset[SFX_BANK_BUILDING_CLUB_7] = SFX_CLUB_7;
BankStartOffset[SFX_BANK_BUILDING_CLUB_8] = SFX_CLUB_8;
BankStartOffset[SFX_BANK_BUILDING_CLUB_9] = SFX_CLUB_9;
BankStartOffset[SFX_BANK_BUILDING_CLUB_10] = SFX_CLUB_10;
BankStartOffset[SFX_BANK_BUILDING_CLUB_11] = SFX_CLUB_11;
BankStartOffset[SFX_BANK_BUILDING_CLUB_12] = SFX_CLUB_12;
BankStartOffset[SFX_BANK_BUILDING_CLUB_RAGGA] = SFX_CLUB_RAGGA;
BankStartOffset[SFX_BANK_BUILDING_STRIP_CLUB_1] = SFX_STRIP_CLUB_1;
BankStartOffset[SFX_BANK_BUILDING_STRIP_CLUB_2] = SFX_STRIP_CLUB_2;
BankStartOffset[SFX_BANK_BUILDING_WORKSHOP] = SFX_WORKSHOP_1;
BankStartOffset[SFX_BANK_BUILDING_PIANO_BAR] = SFX_PIANO_BAR_1;
BankStartOffset[SFX_BANK_BUILDING_SAWMILL] = SFX_SAWMILL_LOOP;
BankStartOffset[SFX_BANK_BUILDING_DOG_FOOD_FACTORY] = SFX_DOG_FOOD_FACTORY;
BankStartOffset[SFX_BANK_BUILDING_LAUNDERETTE] = SFX_LAUNDERETTE_LOOP;
BankStartOffset[SFX_BANK_BUILDING_RESTAURANT_CHINATOWN] = SFX_RESTAURANT_CHINATOWN;
BankStartOffset[SFX_BANK_BUILDING_RESTAURANT_ITALY] = SFX_RESTAURANT_ITALY;
BankStartOffset[SFX_BANK_BUILDING_RESTAURANT_GENERIC_1] = SFX_RESTAURANT_GENERIC_1;
BankStartOffset[SFX_BANK_BUILDING_RESTAURANT_GENERIC_2] = SFX_RESTAURANT_GENERIC_2;
BankStartOffset[SFX_BANK_BUILDING_AIRPORT] = SFX_AIRPORT_ANNOUNCEMENT_1;
BankStartOffset[SFX_BANK_BUILDING_SHOP] = SFX_SHOP_LOOP;
BankStartOffset[SFX_BANK_BUILDING_CINEMA] = SFX_CINEMA_BASS_1;
BankStartOffset[SFX_BANK_BUILDING_DOCKS] = SFX_DOCKS_FOGHORN;
BankStartOffset[SFX_BANK_BUILDING_HOME] = SFX_HOME_1;
BankStartOffset[SFX_BANK_BUILDING_PORN_1] = SFX_PORN_1_LOOP;
BankStartOffset[SFX_BANK_BUILDING_PORN_2] = SFX_PORN_2_LOOP;
BankStartOffset[SFX_BANK_BUILDING_PORN_3] = SFX_PORN_3_LOOP;
BankStartOffset[SFX_BANK_BUILDING_POLICE_BALL] = SFX_POLICE_BALL_1;
BankStartOffset[SFX_BANK_BUILDING_BANK_ALARM] = SFX_BANK_ALARM_1;
BankStartOffset[SFX_BANK_BUILDING_RAVE_INDUSTRIAL] = SFX_RAVE_INDUSTRIAL;
BankStartOffset[SFX_BANK_BUILDING_RAVE_COMMERCIAL] = SFX_RAVE_COMMERCIAL;
BankStartOffset[SFX_BANK_BUILDING_RAVE_SUBURBAN] = SFX_RAVE_SUBURBAN;
BankStartOffset[SFX_BANK_BUILDING_RAVE_COMMERCIAL_2] = SFX_RAVE_COMMERCIAL_2;
BankStartOffset[SFX_BANK_BUILDING_39] = SFX_CLUB_1_1;
BankStartOffset[SFX_BANK_BUILDING_40] = SFX_CLUB_1_2;
BankStartOffset[SFX_BANK_BUILDING_41] = SFX_CLUB_1_3;
BankStartOffset[SFX_BANK_BUILDING_42] = SFX_CLUB_1_4;
BankStartOffset[SFX_BANK_BUILDING_43] = SFX_CLUB_1_5;
BankStartOffset[SFX_BANK_BUILDING_44] = SFX_CLUB_1_6;
BankStartOffset[SFX_BANK_BUILDING_45] = SFX_CLUB_1_7;
BankStartOffset[SFX_BANK_BUILDING_46] = SFX_CLUB_1_8;
BankStartOffset[SFX_BANK_BUILDING_47] = SFX_CLUB_1_9;
BankStartOffset[SFX_BANK_GENERIC_EXTRA] = SFX_EXPLOSION_1;
gBankStartOffset[SFX_BANK_PACARD] = SFX_CAR_ACCEL_1;
gBankStartOffset[SFX_BANK_PATHFINDER] = SFX_CAR_ACCEL_2;
gBankStartOffset[SFX_BANK_PORSCHE] = SFX_CAR_ACCEL_3;
gBankStartOffset[SFX_BANK_SPIDER] = SFX_CAR_ACCEL_4;
gBankStartOffset[SFX_BANK_MERC] = SFX_CAR_ACCEL_5;
gBankStartOffset[SFX_BANK_TRUCK] = SFX_CAR_ACCEL_6;
gBankStartOffset[SFX_BANK_HOTROD] = SFX_CAR_ACCEL_7;
gBankStartOffset[SFX_BANK_COBRA] = SFX_CAR_ACCEL_8;
gBankStartOffset[SFX_BANK_NONE] = SFX_CAR_ACCEL_9;
gBankStartOffset[SFX_BANK_FRONT_END_MENU] = SFX_PAGE_CHANGE_AND_BACK_LEFT;
gBankStartOffset[SFX_BANK_TRAIN] = SFX_TRAIN_STATION_AMBIENCE_LOOP;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_1] = SFX_CLUB_1;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_2] = SFX_CLUB_2;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_3] = SFX_CLUB_3;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_4] = SFX_CLUB_4;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_5] = SFX_CLUB_5;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_6] = SFX_CLUB_6;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_7] = SFX_CLUB_7;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_8] = SFX_CLUB_8;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_9] = SFX_CLUB_9;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_10] = SFX_CLUB_10;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_11] = SFX_CLUB_11;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_12] = SFX_CLUB_12;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_RAGGA] = SFX_CLUB_RAGGA;
gBankStartOffset[SFX_BANK_BUILDING_STRIP_CLUB_1] = SFX_STRIP_CLUB_1;
gBankStartOffset[SFX_BANK_BUILDING_STRIP_CLUB_2] = SFX_STRIP_CLUB_2;
gBankStartOffset[SFX_BANK_BUILDING_WORKSHOP] = SFX_WORKSHOP_1;
gBankStartOffset[SFX_BANK_BUILDING_PIANO_BAR] = SFX_PIANO_BAR_1;
gBankStartOffset[SFX_BANK_BUILDING_SAWMILL] = SFX_SAWMILL_LOOP;
gBankStartOffset[SFX_BANK_BUILDING_DOG_FOOD_FACTORY] = SFX_DOG_FOOD_FACTORY;
gBankStartOffset[SFX_BANK_BUILDING_LAUNDERETTE] = SFX_LAUNDERETTE_LOOP;
gBankStartOffset[SFX_BANK_BUILDING_RESTAURANT_CHINATOWN] = SFX_RESTAURANT_CHINATOWN;
gBankStartOffset[SFX_BANK_BUILDING_RESTAURANT_ITALY] = SFX_RESTAURANT_ITALY;
gBankStartOffset[SFX_BANK_BUILDING_RESTAURANT_GENERIC_1] = SFX_RESTAURANT_GENERIC_1;
gBankStartOffset[SFX_BANK_BUILDING_RESTAURANT_GENERIC_2] = SFX_RESTAURANT_GENERIC_2;
gBankStartOffset[SFX_BANK_BUILDING_AIRPORT] = SFX_AIRPORT_ANNOUNCEMENT_1;
gBankStartOffset[SFX_BANK_BUILDING_SHOP] = SFX_SHOP_LOOP;
gBankStartOffset[SFX_BANK_BUILDING_CINEMA] = SFX_CINEMA_BASS_1;
gBankStartOffset[SFX_BANK_BUILDING_DOCKS] = SFX_DOCKS_FOGHORN;
gBankStartOffset[SFX_BANK_BUILDING_HOME] = SFX_HOME_1;
gBankStartOffset[SFX_BANK_BUILDING_PORN_1] = SFX_PORN_1_LOOP;
gBankStartOffset[SFX_BANK_BUILDING_PORN_2] = SFX_PORN_2_LOOP;
gBankStartOffset[SFX_BANK_BUILDING_PORN_3] = SFX_PORN_3_LOOP;
gBankStartOffset[SFX_BANK_BUILDING_POLICE_BALL] = SFX_POLICE_BALL_1;
gBankStartOffset[SFX_BANK_BUILDING_BANK_ALARM] = SFX_BANK_ALARM_1;
gBankStartOffset[SFX_BANK_BUILDING_RAVE_INDUSTRIAL] = SFX_RAVE_INDUSTRIAL;
gBankStartOffset[SFX_BANK_BUILDING_RAVE_COMMERCIAL] = SFX_RAVE_COMMERCIAL;
gBankStartOffset[SFX_BANK_BUILDING_RAVE_SUBURBAN] = SFX_RAVE_SUBURBAN;
gBankStartOffset[SFX_BANK_BUILDING_RAVE_COMMERCIAL_2] = SFX_RAVE_COMMERCIAL_2;
gBankStartOffset[SFX_BANK_BUILDING_39] = SFX_CLUB_1_1;
gBankStartOffset[SFX_BANK_BUILDING_40] = SFX_CLUB_1_2;
gBankStartOffset[SFX_BANK_BUILDING_41] = SFX_CLUB_1_3;
gBankStartOffset[SFX_BANK_BUILDING_42] = SFX_CLUB_1_4;
gBankStartOffset[SFX_BANK_BUILDING_43] = SFX_CLUB_1_5;
gBankStartOffset[SFX_BANK_BUILDING_44] = SFX_CLUB_1_6;
gBankStartOffset[SFX_BANK_BUILDING_45] = SFX_CLUB_1_7;
gBankStartOffset[SFX_BANK_BUILDING_46] = SFX_CLUB_1_8;
gBankStartOffset[SFX_BANK_BUILDING_47] = SFX_CLUB_1_9;
gBankStartOffset[SFX_BANK_GENERIC_EXTRA] = SFX_EXPLOSION_1;
#endif // GTA_PS2
BankStartOffset[SFX_BANK_PED_COMMENTS] = SAMPLEBANK_PED_START;
gBankStartOffset[SFX_BANK_PED_COMMENTS] = SAMPLEBANK_PED_START;
}
void

View File

@ -17,7 +17,7 @@ bool bChannelsCreated = false;
int32 CChannel::channelsThatNeedService = 0;
uint8 tempStereoBuffer[PED_BLOCKSIZE * 2];
uint8 tempStereoBuffer[PED_BUFFERSIZE * 2];
void
CChannel::InitChannels()

View File

@ -96,7 +96,7 @@ enum
};
#define MAX_PEDSFX 7
#define PED_BLOCKSIZE 79000
#define PED_BUFFERSIZE 79000
#define MAXPROVIDERS 64
@ -130,7 +130,7 @@ class cSampleManager
bool8 m_bInitialised;
uint8 m_nNumberOfProviders;
char *m_aAudioProviders[MAXPROVIDERS];
tSample m_aSamples[TOTAL_AUDIO_SAMPLES];
tSample m_aSampleDataTable[TOTAL_AUDIO_SAMPLES];
public:
@ -217,7 +217,7 @@ public:
};
extern cSampleManager SampleManager;
extern uint32 BankStartOffset[MAX_SFX_BANKS];
extern uint32 gBankStartOffset[MAX_SFX_BANKS];
#ifdef AUDIO_OAL
extern int defaultProvider;

View File

@ -20,27 +20,27 @@
#pragma comment( lib, "mss32.lib" )
cSampleManager SampleManager;
uint32 BankStartOffset[MAX_SFX_BANKS];
uint32 gBankStartOffset[MAX_SFX_BANKS];
///////////////////////////////////////////////////////////////
char SampleBankDescFilename[] = "AUDIO\\SFX.SDT";
char SampleBankDataFilename[] = "AUDIO\\SFX.RAW";
FILE *fpSampleDescHandle;
FILE *fpSampleDataHandle;
bool8 bSampleBankLoaded [MAX_SFX_BANKS];
int32 nSampleBankDiscStartOffset [MAX_SFX_BANKS];
int32 nSampleBankSize [MAX_SFX_BANKS];
int32 nSampleBankMemoryStartAddress[MAX_SFX_BANKS];
FILE *gFileHandleSampleDesc;
FILE *gFileHandleSampleData;
bool8 gBankLoaded [MAX_SFX_BANKS];
int32 gSampleBankDiscStartOffset [MAX_SFX_BANKS];
int32 gSampleBankSize [MAX_SFX_BANKS];
int32 gSampleBankMemoryStartAddress[MAX_SFX_BANKS];
int32 _nSampleDataEndOffset;
int32 nPedSlotSfx [MAX_PEDSFX];
int32 nPedSlotSfxAddr[MAX_PEDSFX];
uint8 nCurrentPedSlot;
int32 gPedSfx [MAX_PEDSFX];
int32 gPedSfxAddr[MAX_PEDSFX];
uint8 gCurPedIndex;
uint8 nChannelVolume[MAXCHANNELS+MAX2DCHANNELS];
uint8 gChannelVolume[MAXCHANNELS+MAX2DCHANNELS];
uint32 nStreamLength[TOTAL_STREAMED_SOUNDS];
uint32 gStreamLength[TOTAL_STREAMED_SOUNDS];
///////////////////////////////////////////////////////////////
struct tMP3Entry
@ -851,11 +851,11 @@ cSampleManager::Initialise(void)
{
for ( int32 i = 0; i < TOTAL_AUDIO_SAMPLES; i++ )
{
m_aSamples[i].nOffset = 0;
m_aSamples[i].nSize = 0;
m_aSamples[i].nFrequency = 22050;
m_aSamples[i].nLoopStart = 0;
m_aSamples[i].nLoopEnd = -1;
m_aSampleDataTable[i].nOffset = 0;
m_aSampleDataTable[i].nSize = 0;
m_aSampleDataTable[i].nFrequency = 22050;
m_aSampleDataTable[i].nLoopStart = 0;
m_aSampleDataTable[i].nLoopEnd = -1;
}
m_nEffectsVolume = MAX_VOLUME;
@ -890,17 +890,17 @@ cSampleManager::Initialise(void)
// banks
TRACE("banks");
{
fpSampleDescHandle = NULL;
fpSampleDataHandle = NULL;
gFileHandleSampleDesc = NULL;
gFileHandleSampleData = NULL;
_nSampleDataEndOffset = 0;
for ( int32 i = 0; i < MAX_SFX_BANKS; i++ )
{
bSampleBankLoaded[i] = FALSE;
nSampleBankDiscStartOffset[i] = 0;
nSampleBankSize[i] = 0;
nSampleBankMemoryStartAddress[i] = 0;
gBankLoaded[i] = FALSE;
gSampleBankDiscStartOffset[i] = 0;
gSampleBankSize[i] = 0;
gSampleBankMemoryStartAddress[i] = 0;
}
}
@ -909,18 +909,18 @@ cSampleManager::Initialise(void)
{
for ( int32 i = 0; i < MAX_PEDSFX; i++ )
{
nPedSlotSfx[i] = NO_SAMPLE;
nPedSlotSfxAddr[i] = 0;
gPedSfx[i] = NO_SAMPLE;
gPedSfxAddr[i] = 0;
}
nCurrentPedSlot = 0;
gCurPedIndex = 0;
}
// channel volume
TRACE("vol");
{
for ( int32 i = 0; i < MAXCHANNELS+MAX2DCHANNELS; i++ )
nChannelVolume[i] = 0;
gChannelVolume[i] = 0;
}
TRACE("mss");
@ -947,14 +947,14 @@ cSampleManager::Initialise(void)
return FALSE;
}
nSampleBankMemoryStartAddress[SFX_BANK_0] = (int32)AIL_mem_alloc_lock(nSampleBankSize[SFX_BANK_0]);
if ( !nSampleBankMemoryStartAddress[SFX_BANK_0] )
gSampleBankMemoryStartAddress[SFX_BANK_0] = (int32)AIL_mem_alloc_lock(gSampleBankSize[SFX_BANK_0]);
if ( !gSampleBankMemoryStartAddress[SFX_BANK_0] )
{
Terminate();
return FALSE;
}
nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = (int32)AIL_mem_alloc_lock(PED_BLOCKSIZE*MAX_PEDSFX);
gSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = (int32)AIL_mem_alloc_lock(PED_BUFFERSIZE*MAX_PEDSFX);
}
@ -962,7 +962,7 @@ cSampleManager::Initialise(void)
TRACE("cache");
FILE *cacheFile = fopen("audio\\sound.cache", "rb");
if (cacheFile) {
fread(nStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
fread(gStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
fclose(cacheFile);
m_bInitialised = TRUE;
}else {
@ -1016,7 +1016,7 @@ cSampleManager::Initialise(void)
AIL_close_stream(mp3Stream[0]);
mp3Stream[0] = NULL;
nStreamLength[i] = tatalms;
gStreamLength[i] = tatalms;
}
else
{
@ -1115,7 +1115,7 @@ cSampleManager::Initialise(void)
strcpy(m_szCDRomRootPath, rootpath);
for ( int32 i = 0; i < TOTAL_STREAMED_SOUNDS; i++ )
nStreamLength[i] = streamLength[i];
gStreamLength[i] = streamLength[i];
_bUseHDDAudio = TRUE;
}
@ -1125,7 +1125,7 @@ cSampleManager::Initialise(void)
#endif
#ifdef AUDIO_CACHE
cacheFile = fopen("audio\\sound.cache", "wb");
fwrite(nStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
fwrite(gStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
fclose(cacheFile);
}
#endif
@ -1188,12 +1188,12 @@ cSampleManager::Initialise(void)
if ( nNumMP3s != 0 )
{
nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] = 0;
gStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] = 0;
for ( tMP3Entry *e = _pMP3List; e != NULL; e = e->pNext )
{
e->nTrackStreamPos = nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER];
nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] += e->nTrackLength;
e->nTrackStreamPos = gStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER];
gStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] += e->nTrackLength;
}
time_t t = time(NULL);
@ -1270,16 +1270,16 @@ cSampleManager::Terminate(void)
_DeleteMP3Entries();
if ( nSampleBankMemoryStartAddress[SFX_BANK_0] != 0 )
if ( gSampleBankMemoryStartAddress[SFX_BANK_0] != 0 )
{
AIL_mem_free_lock((void *)nSampleBankMemoryStartAddress[SFX_BANK_0]);
nSampleBankMemoryStartAddress[SFX_BANK_0] = 0;
AIL_mem_free_lock((void *)gSampleBankMemoryStartAddress[SFX_BANK_0]);
gSampleBankMemoryStartAddress[SFX_BANK_0] = 0;
}
if ( nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] != 0 )
if ( gSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] != 0 )
{
AIL_mem_free_lock((void *)nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS]);
nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = 0;
AIL_mem_free_lock((void *)gSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS]);
gSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = 0;
}
if ( DIG )
@ -1363,10 +1363,10 @@ cSampleManager::UpdateEffectsVolume(void) //[Y], cSampleManager::UpdateSoundBuff
{
if ( opened_samples[i] && GetChannelUsedFlag(i) )
{
if ( nChannelVolume[i] )
if ( gChannelVolume[i] )
{
AIL_set_3D_sample_volume(opened_samples[i],
m_nEffectsFadeVolume * nChannelVolume[i] * m_nEffectsVolume >> 14);
m_nEffectsFadeVolume * gChannelVolume[i] * m_nEffectsVolume >> 14);
}
}
}
@ -1376,10 +1376,10 @@ cSampleManager::UpdateEffectsVolume(void) //[Y], cSampleManager::UpdateSoundBuff
{
if ( GetChannelUsedFlag(i - MAXCHANNELS) )
{
if ( nChannelVolume[i - MAXCHANNELS] )
if ( gChannelVolume[i - MAXCHANNELS] )
{
AIL_set_sample_volume(opened_2dsamples[i - MAXCHANNELS],
m_nEffectsFadeVolume * nChannelVolume[i - MAXCHANNELS] * m_nEffectsVolume >> 14);
m_nEffectsFadeVolume * gChannelVolume[i - MAXCHANNELS] * m_nEffectsVolume >> 14);
}
}
}
@ -1433,13 +1433,13 @@ cSampleManager::LoadSampleBank(uint8 nBank)
return FALSE;
}
if ( fseek(fpSampleDataHandle, nSampleBankDiscStartOffset[nBank], SEEK_SET) != 0 )
if ( fseek(gFileHandleSampleData, gSampleBankDiscStartOffset[nBank], SEEK_SET) != 0 )
return FALSE;
if ( fread((void *)nSampleBankMemoryStartAddress[nBank], 1, nSampleBankSize[nBank],fpSampleDataHandle) != nSampleBankSize[nBank] )
if ( fread((void *)gSampleBankMemoryStartAddress[nBank], 1, gSampleBankSize[nBank],gFileHandleSampleData) != gSampleBankSize[nBank] )
return FALSE;
bSampleBankLoaded[nBank] = TRUE;
gBankLoaded[nBank] = TRUE;
return TRUE;
}
@ -1447,13 +1447,13 @@ cSampleManager::LoadSampleBank(uint8 nBank)
void
cSampleManager::UnloadSampleBank(uint8 nBank)
{
bSampleBankLoaded[nBank] = FALSE;
gBankLoaded[nBank] = FALSE;
}
bool8
cSampleManager::IsSampleBankLoaded(uint8 nBank)
{
return bSampleBankLoaded[nBank];
return gBankLoaded[nBank];
}
bool8
@ -1463,12 +1463,12 @@ cSampleManager::IsPedCommentLoaded(uint32 nComment)
for ( int32 i = 0; i < _TODOCONST(3); i++ )
{
slot = nCurrentPedSlot - i - 1;
slot = gCurPedIndex - i - 1;
#ifdef FIX_BUGS
if (slot < 0)
slot += ARRAY_SIZE(nPedSlotSfx);
slot += ARRAY_SIZE(gPedSfx);
#endif
if ( nComment == nPedSlotSfx[slot] )
if ( nComment == gPedSfx[slot] )
return TRUE;
}
@ -1482,12 +1482,12 @@ cSampleManager::_GetPedCommentSlot(uint32 nComment)
for ( int32 i = 0; i < _TODOCONST(3); i++ )
{
slot = nCurrentPedSlot - i - 1;
slot = gCurPedIndex - i - 1;
#ifdef FIX_BUGS
if (slot < 0)
slot += ARRAY_SIZE(nPedSlotSfx);
slot += ARRAY_SIZE(gPedSfx);
#endif
if ( nComment == nPedSlotSfx[slot] )
if ( nComment == gPedSfx[slot] )
return slot;
}
@ -1522,17 +1522,17 @@ cSampleManager::LoadPedComment(uint32 nComment)
}
}
if ( fseek(fpSampleDataHandle, m_aSamples[nComment].nOffset, SEEK_SET) != 0 )
if ( fseek(gFileHandleSampleData, m_aSampleDataTable[nComment].nOffset, SEEK_SET) != 0 )
return FALSE;
if ( fread((void *)(nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BLOCKSIZE*nCurrentPedSlot), 1, m_aSamples[nComment].nSize, fpSampleDataHandle) != m_aSamples[nComment].nSize )
if ( fread((void *)(gSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BUFFERSIZE*gCurPedIndex), 1, m_aSampleDataTable[nComment].nSize, gFileHandleSampleData) != m_aSampleDataTable[nComment].nSize )
return FALSE;
nPedSlotSfxAddr[nCurrentPedSlot] = nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BLOCKSIZE*nCurrentPedSlot;
nPedSlotSfx [nCurrentPedSlot] = nComment;
gPedSfxAddr[gCurPedIndex] = gSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BUFFERSIZE*gCurPedIndex;
gPedSfx [gCurPedIndex] = nComment;
if ( ++nCurrentPedSlot >= MAX_PEDSFX )
nCurrentPedSlot = 0;
if ( ++gCurPedIndex >= MAX_PEDSFX )
gCurPedIndex = 0;
return TRUE;
}
@ -1540,10 +1540,10 @@ cSampleManager::LoadPedComment(uint32 nComment)
int32
cSampleManager::GetBankContainingSound(uint32 offset)
{
if ( offset >= BankStartOffset[SFX_BANK_PED_COMMENTS] )
if ( offset >= gBankStartOffset[SFX_BANK_PED_COMMENTS] )
return SFX_BANK_PED_COMMENTS;
if ( offset >= BankStartOffset[SFX_BANK_0] )
if ( offset >= gBankStartOffset[SFX_BANK_0] )
return SFX_BANK_0;
return INVALID_SFX_BANK;
@ -1552,25 +1552,25 @@ cSampleManager::GetBankContainingSound(uint32 offset)
int32
cSampleManager::GetSampleBaseFrequency(uint32 nSample)
{
return m_aSamples[nSample].nFrequency;
return m_aSampleDataTable[nSample].nFrequency;
}
int32
cSampleManager::GetSampleLoopStartOffset(uint32 nSample)
{
return m_aSamples[nSample].nLoopStart;
return m_aSampleDataTable[nSample].nLoopStart;
}
int32
cSampleManager::GetSampleLoopEndOffset(uint32 nSample)
{
return m_aSamples[nSample].nLoopEnd;
return m_aSampleDataTable[nSample].nLoopEnd;
}
uint32
cSampleManager::GetSampleLength(uint32 nSample)
{
return m_aSamples[nSample].nSize >> 1;
return m_aSampleDataTable[nSample].nSize >> 1;
}
bool8
@ -1700,7 +1700,7 @@ cSampleManager::InitialiseChannel(uint32 nChannel, uint32 nSfx, uint8 nBank)
if ( !IsSampleBankLoaded(nBank) )
return FALSE;
addr = nSampleBankMemoryStartAddress[nBank] + m_aSamples[nSfx].nOffset - m_aSamples[BankStartOffset[nBank]].nOffset;
addr = gSampleBankMemoryStartAddress[nBank] + m_aSampleDataTable[nSfx].nOffset - m_aSampleDataTable[gBankStartOffset[nBank]].nOffset;
}
else
{
@ -1709,14 +1709,14 @@ cSampleManager::InitialiseChannel(uint32 nChannel, uint32 nSfx, uint8 nBank)
int32 slot = _GetPedCommentSlot(nSfx);
addr = nPedSlotSfxAddr[slot];
addr = gPedSfxAddr[slot];
}
if ( b2d )
{
if ( opened_2dsamples[nChannel - MAXCHANNELS] )
{
AIL_set_sample_address(opened_2dsamples[nChannel - MAXCHANNELS], (void *)addr, m_aSamples[nSfx].nSize);
AIL_set_sample_address(opened_2dsamples[nChannel - MAXCHANNELS], (void *)addr, m_aSampleDataTable[nSfx].nSize);
return TRUE;
}
else
@ -1729,8 +1729,8 @@ cSampleManager::InitialiseChannel(uint32 nChannel, uint32 nSfx, uint8 nBank)
info.format = WAVE_FORMAT_PCM;
info.data_ptr = (void *)addr;
info.channels = 1;
info.data_len = m_aSamples[nSfx].nSize;
info.rate = m_aSamples[nSfx].nFrequency;
info.data_len = m_aSampleDataTable[nSfx].nSize;
info.rate = m_aSampleDataTable[nSfx].nFrequency;
info.bits = 16;
if ( AIL_set_3D_sample_info(opened_samples[nChannel], &info) == 0 )
@ -1749,18 +1749,18 @@ cSampleManager::SetChannelEmittingVolume(uint32 nChannel, uint32 nVolume)
uint32 vol = nVolume;
if ( vol > MAX_VOLUME ) vol = MAX_VOLUME;
nChannelVolume[nChannel] = vol;
gChannelVolume[nChannel] = vol;
// increase the volume for JB.MP3 and S4_BDBD.MP3
if ( MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE
&& MusicManager.GetNextTrack() != STREAMED_SOUND_NEWS_INTRO
&& MusicManager.GetNextTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD )
{
nChannelVolume[nChannel] >>= 2;
gChannelVolume[nChannel] >>= 2;
}
if ( opened_samples[nChannel] )
AIL_set_3D_sample_volume(opened_samples[nChannel], m_nEffectsFadeVolume*nChannelVolume[nChannel]*m_nEffectsVolume >> 14);
AIL_set_3D_sample_volume(opened_samples[nChannel], m_nEffectsFadeVolume*gChannelVolume[nChannel]*m_nEffectsVolume >> 14);
}
@ -1788,14 +1788,14 @@ cSampleManager::SetChannelVolume(uint32 nChannel, uint32 nVolume)
{
case CHANNEL_POLICE_RADIO:
{
nChannelVolume[nChannel] = vol;
gChannelVolume[nChannel] = vol;
// increase the volume for JB.MP3 and S4_BDBD.MP3
if ( MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE
&& MusicManager.GetNextTrack() != STREAMED_SOUND_NEWS_INTRO
&& MusicManager.GetNextTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD )
{
nChannelVolume[nChannel] >>= 2;
gChannelVolume[nChannel] >>= 2;
}
if ( opened_2dsamples[nChannel - MAXCHANNELS] )
@ -2065,7 +2065,7 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
// Just switched to MP3 player
if ( !_bIsMp3Active && i == 0 )
{
if ( nPos > nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] )
if ( nPos > gStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] )
position = 0;
tMP3Entry *e = _pMP3List;
@ -2253,7 +2253,7 @@ int32
cSampleManager::GetStreamedFileLength(uint8 nStream)
{
if ( m_bInitialised )
return nStreamLength[nStream];
return gStreamLength[nStream];
return 0;
}
@ -2280,42 +2280,42 @@ cSampleManager::InitialiseSampleBanks(void)
{
int32 nBank = SFX_BANK_0;
fpSampleDescHandle = fopen(SampleBankDescFilename, "rb");
if ( fpSampleDescHandle == NULL )
gFileHandleSampleDesc = fopen(SampleBankDescFilename, "rb");
if ( gFileHandleSampleDesc == NULL )
return FALSE;
fpSampleDataHandle = fopen(SampleBankDataFilename, "rb");
if ( fpSampleDataHandle == NULL )
gFileHandleSampleData = fopen(SampleBankDataFilename, "rb");
if ( gFileHandleSampleData == NULL )
{
fclose(fpSampleDescHandle);
fpSampleDescHandle = NULL;
fclose(gFileHandleSampleDesc);
gFileHandleSampleDesc = NULL;
return FALSE;
}
fseek(fpSampleDataHandle, 0, SEEK_END);
_nSampleDataEndOffset = ftell(fpSampleDataHandle);
rewind(fpSampleDataHandle);
fseek(gFileHandleSampleData, 0, SEEK_END);
_nSampleDataEndOffset = ftell(gFileHandleSampleData);
rewind(gFileHandleSampleData);
fread(m_aSamples, sizeof(tSample), TOTAL_AUDIO_SAMPLES, fpSampleDescHandle);
fread(m_aSampleDataTable, sizeof(tSample), TOTAL_AUDIO_SAMPLES, gFileHandleSampleDesc);
fclose(fpSampleDescHandle);
fpSampleDescHandle = NULL;
fclose(gFileHandleSampleDesc);
gFileHandleSampleDesc = NULL;
for ( int32 i = 0; i < TOTAL_AUDIO_SAMPLES; i++ )
{
#ifdef FIX_BUGS
if (nBank >= MAX_SFX_BANKS) break;
#endif
if ( BankStartOffset[nBank] == BankStartOffset[SFX_BANK_0] + i )
if ( gBankStartOffset[nBank] == gBankStartOffset[SFX_BANK_0] + i )
{
nSampleBankDiscStartOffset[nBank] = m_aSamples[i].nOffset;
gSampleBankDiscStartOffset[nBank] = m_aSampleDataTable[i].nOffset;
nBank++;
}
}
nSampleBankSize[SFX_BANK_0] = nSampleBankDiscStartOffset[SFX_BANK_PED_COMMENTS] - nSampleBankDiscStartOffset[SFX_BANK_0];
nSampleBankSize[SFX_BANK_PED_COMMENTS] = _nSampleDataEndOffset - nSampleBankDiscStartOffset[SFX_BANK_PED_COMMENTS];
gSampleBankSize[SFX_BANK_0] = gSampleBankDiscStartOffset[SFX_BANK_PED_COMMENTS] - gSampleBankDiscStartOffset[SFX_BANK_0];
gSampleBankSize[SFX_BANK_PED_COMMENTS] = _nSampleDataEndOffset - gSampleBankDiscStartOffset[SFX_BANK_PED_COMMENTS];
return TRUE;
}

View File

@ -6,7 +6,7 @@
cSampleManager SampleManager;
bool8 _bSampmanInitialised = FALSE;
uint32 BankStartOffset[MAX_SFX_BANKS];
uint32 gBankStartOffset[MAX_SFX_BANKS];
uint32 nNumMP3s;
cSampleManager::cSampleManager(void)

View File

@ -47,9 +47,9 @@
//TODO: fix eax3 reverb
cSampleManager SampleManager;
bool8 _bSampmanInitialised = FALSE;
bool8 gInitialised = FALSE;
uint32 BankStartOffset[MAX_SFX_BANKS];
uint32 gBankStartOffset[MAX_SFX_BANKS];
int prevprovider=-1;
int curprovider=-1;
@ -79,26 +79,26 @@ int defaultProvider;
char SampleBankDescFilename[] = "audio/sfx.SDT";
char SampleBankDataFilename[] = "audio/sfx.RAW";
FILE *fpSampleDescHandle;
FILE *gFileHandleSampleDesc;
#ifdef OPUS_SFX
OggOpusFile *fpSampleDataHandle;
OggOpusFile *gFileHandleSampleData;
#else
FILE *fpSampleDataHandle;
FILE *gFileHandleSampleData;
#endif
bool8 bSampleBankLoaded [MAX_SFX_BANKS];
int32 nSampleBankDiscStartOffset [MAX_SFX_BANKS];
int32 nSampleBankSize [MAX_SFX_BANKS];
uintptr nSampleBankMemoryStartAddress[MAX_SFX_BANKS];
bool8 gBankLoaded [MAX_SFX_BANKS];
int32 gSampleBankDiscStartOffset [MAX_SFX_BANKS];
int32 gSampleBankSize [MAX_SFX_BANKS];
uintptr gSampleBankMemoryStartAddress[MAX_SFX_BANKS];
int32 _nSampleDataEndOffset;
int32 nPedSlotSfx [MAX_PEDSFX];
int32 nPedSlotSfxAddr[MAX_PEDSFX];
uint8 nCurrentPedSlot;
int32 gPedSfx [MAX_PEDSFX];
int32 gPedSfxAddr[MAX_PEDSFX];
uint8 gCurPedIndex;
CChannel aChannel[NUM_CHANNELS];
uint8 nChannelVolume[NUM_CHANNELS];
uint8 gChannelVolume[NUM_CHANNELS];
uint32 nStreamLength[TOTAL_STREAMED_SOUNDS];
uint32 gStreamLength[TOTAL_STREAMED_SOUNDS];
ALuint ALStreamSources[MAX_STREAMS][2];
ALuint ALStreamBuffers[MAX_STREAMS][NUM_STREAMBUFFERS];
@ -779,7 +779,7 @@ void cSampleManager::ReacquireDigitalHandle(void)
bool8
cSampleManager::Initialise(void)
{
if ( _bSampmanInitialised )
if ( gInitialised )
return TRUE;
EFXInit();
@ -788,11 +788,11 @@ cSampleManager::Initialise(void)
{
for ( int32 i = 0; i < TOTAL_AUDIO_SAMPLES; i++ )
{
m_aSamples[i].nOffset = 0;
m_aSamples[i].nSize = 0;
m_aSamples[i].nFrequency = 22050;
m_aSamples[i].nLoopStart = 0;
m_aSamples[i].nLoopEnd = -1;
m_aSampleDataTable[i].nOffset = 0;
m_aSampleDataTable[i].nSize = 0;
m_aSampleDataTable[i].nFrequency = 22050;
m_aSampleDataTable[i].nLoopStart = 0;
m_aSampleDataTable[i].nLoopEnd = -1;
}
m_nEffectsVolume = MAX_VOLUME;
@ -820,31 +820,31 @@ cSampleManager::Initialise(void)
}
{
fpSampleDescHandle = NULL;
fpSampleDataHandle = NULL;
gFileHandleSampleDesc = NULL;
gFileHandleSampleData = NULL;
for ( int32 i = 0; i < MAX_SFX_BANKS; i++ )
{
bSampleBankLoaded[i] = FALSE;
nSampleBankDiscStartOffset[i] = 0;
nSampleBankSize[i] = 0;
nSampleBankMemoryStartAddress[i] = 0;
gBankLoaded[i] = FALSE;
gSampleBankDiscStartOffset[i] = 0;
gSampleBankSize[i] = 0;
gSampleBankMemoryStartAddress[i] = 0;
}
}
{
for ( int32 i = 0; i < MAX_PEDSFX; i++ )
{
nPedSlotSfx[i] = NO_SAMPLE;
nPedSlotSfxAddr[i] = 0;
gPedSfx[i] = NO_SAMPLE;
gPedSfxAddr[i] = 0;
}
nCurrentPedSlot = 0;
gCurPedIndex = 0;
}
{
for ( int32 i = 0; i < NUM_CHANNELS; i++ )
nChannelVolume[i] = 0;
gChannelVolume[i] = 0;
}
add_providers();
@ -922,14 +922,14 @@ cSampleManager::Initialise(void)
{
for ( int32 i = 0; i < TOTAL_STREAMED_SOUNDS; i++ )
nStreamLength[i] = 0;
gStreamLength[i] = 0;
}
#ifdef AUDIO_CACHE
FILE *cacheFile = fcaseopen("audio\\sound.cache", "rb");
if (cacheFile) {
debug("Loadind audio cache (If game crashes around here, then your cache is corrupted, remove audio/sound.cache)\n");
fread(nStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
fread(gStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
fclose(cacheFile);
} else
{
@ -944,7 +944,7 @@ cSampleManager::Initialise(void)
delete aStream[0];
aStream[0] = NULL;
nStreamLength[i] = tatalms;
gStreamLength[i] = tatalms;
} else
USERERROR("Can't open '%s'\n", StreamedNameTable[i]);
}
@ -952,7 +952,7 @@ cSampleManager::Initialise(void)
cacheFile = fcaseopen("audio\\sound.cache", "wb");
if(cacheFile) {
debug("Saving audio cache\n");
fwrite(nStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
fwrite(gStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
fclose(cacheFile);
} else {
debug("Cannot save audio cache\n");
@ -967,17 +967,17 @@ cSampleManager::Initialise(void)
return FALSE;
}
nSampleBankMemoryStartAddress[SFX_BANK_0] = (uintptr)malloc(nSampleBankSize[SFX_BANK_0]);
ASSERT(nSampleBankMemoryStartAddress[SFX_BANK_0] != 0);
gSampleBankMemoryStartAddress[SFX_BANK_0] = (uintptr)malloc(gSampleBankSize[SFX_BANK_0]);
ASSERT(gSampleBankMemoryStartAddress[SFX_BANK_0] != 0);
if ( nSampleBankMemoryStartAddress[SFX_BANK_0] == 0 )
if ( gSampleBankMemoryStartAddress[SFX_BANK_0] == 0 )
{
Terminate();
return FALSE;
}
nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = (uintptr)malloc(PED_BLOCKSIZE*MAX_PEDSFX);
ASSERT(nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] != 0);
gSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = (uintptr)malloc(PED_BUFFERSIZE*MAX_PEDSFX);
ASSERT(gSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] != 0);
LoadSampleBank(SFX_BANK_0);
}
@ -992,7 +992,7 @@ cSampleManager::Initialise(void)
}
{
_bSampmanInitialised = TRUE;
gInitialised = TRUE;
if ( defaultProvider >= 0 && defaultProvider < m_nNumberOfProviders )
{
@ -1014,12 +1014,12 @@ cSampleManager::Initialise(void)
if ( nNumMP3s != 0 )
{
nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] = 0;
gStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] = 0;
for ( tMP3Entry *e = _pMP3List; e != NULL; e = e->pNext )
{
e->nTrackStreamPos = nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER];
nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] += e->nTrackLength;
e->nTrackStreamPos = gStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER];
gStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] += e->nTrackLength;
}
time_t t = time(NULL);
@ -1130,19 +1130,19 @@ cSampleManager::Terminate(void)
CStream::Terminate();
if ( nSampleBankMemoryStartAddress[SFX_BANK_0] != 0 )
if ( gSampleBankMemoryStartAddress[SFX_BANK_0] != 0 )
{
free((void *)nSampleBankMemoryStartAddress[SFX_BANK_0]);
nSampleBankMemoryStartAddress[SFX_BANK_0] = 0;
free((void *)gSampleBankMemoryStartAddress[SFX_BANK_0]);
gSampleBankMemoryStartAddress[SFX_BANK_0] = 0;
}
if ( nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] != 0 )
if ( gSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] != 0 )
{
free((void *)nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS]);
nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = 0;
free((void *)gSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS]);
gSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = 0;
}
_bSampmanInitialised = FALSE;
gInitialised = FALSE;
}
bool8 cSampleManager::CheckForAnAudioFileOnCD(void)
@ -1158,14 +1158,14 @@ char cSampleManager::GetCDAudioDriveLetter(void)
void
cSampleManager::UpdateEffectsVolume(void)
{
if ( _bSampmanInitialised )
if ( gInitialised )
{
for ( int32 i = 0; i < NUM_CHANNELS; i++ )
{
if ( GetChannelUsedFlag(i) )
{
if ( nChannelVolume[i] != 0 )
aChannel[i].SetVolume(m_nEffectsFadeVolume*nChannelVolume[i]*m_nEffectsVolume >> 14);
if ( gChannelVolume[i] != 0 )
aChannel[i].SetVolume(m_nEffectsFadeVolume*gChannelVolume[i]*m_nEffectsVolume >> 14);
}
}
}
@ -1220,10 +1220,10 @@ cSampleManager::LoadSampleBank(uint8 nBank)
#ifdef OPUS_SFX
int samplesRead = 0;
int samplesSize = nSampleBankSize[nBank] / 2;
op_pcm_seek(fpSampleDataHandle, 0);
int samplesSize = gSampleBankSize[nBank] / 2;
op_pcm_seek(gFileHandleSampleData, 0);
while (samplesSize > 0) {
int size = op_read(fpSampleDataHandle, (opus_int16 *)(nSampleBankMemoryStartAddress[nBank] + samplesRead), samplesSize, NULL);
int size = op_read(gFileHandleSampleData, (opus_int16 *)(gSampleBankMemoryStartAddress[nBank] + samplesRead), samplesSize, NULL);
if (size <= 0) {
// huh?
//assert(0);
@ -1233,13 +1233,13 @@ cSampleManager::LoadSampleBank(uint8 nBank)
samplesSize -= size;
}
#else
if ( fseek(fpSampleDataHandle, nSampleBankDiscStartOffset[nBank], SEEK_SET) != 0 )
if ( fseek(gFileHandleSampleData, gSampleBankDiscStartOffset[nBank], SEEK_SET) != 0 )
return FALSE;
if ( fread((void *)nSampleBankMemoryStartAddress[nBank], 1, nSampleBankSize[nBank], fpSampleDataHandle) != nSampleBankSize[nBank] )
if ( fread((void *)gSampleBankMemoryStartAddress[nBank], 1, gSampleBankSize[nBank], gFileHandleSampleData) != gSampleBankSize[nBank] )
return FALSE;
#endif
bSampleBankLoaded[nBank] = TRUE;
gBankLoaded[nBank] = TRUE;
return TRUE;
}
@ -1249,7 +1249,7 @@ cSampleManager::UnloadSampleBank(uint8 nBank)
{
ASSERT( nBank < MAX_SFX_BANKS);
bSampleBankLoaded[nBank] = FALSE;
gBankLoaded[nBank] = FALSE;
}
bool8
@ -1257,7 +1257,7 @@ cSampleManager::IsSampleBankLoaded(uint8 nBank)
{
ASSERT( nBank < MAX_SFX_BANKS);
return bSampleBankLoaded[nBank];
return gBankLoaded[nBank];
}
bool8
@ -1269,12 +1269,12 @@ cSampleManager::IsPedCommentLoaded(uint32 nComment)
for ( int32 i = 0; i < _TODOCONST(3); i++ )
{
slot = nCurrentPedSlot - i - 1;
slot = gCurPedIndex - i - 1;
#ifdef FIX_BUGS
if (slot < 0)
slot += ARRAY_SIZE(nPedSlotSfx);
slot += ARRAY_SIZE(gPedSfx);
#endif
if ( nComment == nPedSlotSfx[slot] )
if ( nComment == gPedSfx[slot] )
return TRUE;
}
@ -1289,12 +1289,12 @@ cSampleManager::_GetPedCommentSlot(uint32 nComment)
for (int32 i = 0; i < _TODOCONST(3); i++)
{
slot = nCurrentPedSlot - i - 1;
slot = gCurPedIndex - i - 1;
#ifdef FIX_BUGS
if (slot < 0)
slot += ARRAY_SIZE(nPedSlotSfx);
slot += ARRAY_SIZE(gPedSfx);
#endif
if (nComment == nPedSlotSfx[slot])
if (nComment == gPedSfx[slot])
return slot;
}
@ -1333,10 +1333,10 @@ cSampleManager::LoadPedComment(uint32 nComment)
#ifdef OPUS_SFX
int samplesRead = 0;
int samplesSize = m_aSamples[nComment].nSize / 2;
op_pcm_seek(fpSampleDataHandle, m_aSamples[nComment].nOffset / 2);
int samplesSize = m_aSampleDataTable[nComment].nSize / 2;
op_pcm_seek(gFileHandleSampleData, m_aSampleDataTable[nComment].nOffset / 2);
while (samplesSize > 0) {
int size = op_read(fpSampleDataHandle, (opus_int16 *)(nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BLOCKSIZE * nCurrentPedSlot + samplesRead),
int size = op_read(gFileHandleSampleData, (opus_int16 *)(gSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BUFFERSIZE * gCurPedIndex + samplesRead),
samplesSize, NULL);
if (size <= 0) {
return FALSE;
@ -1345,17 +1345,17 @@ cSampleManager::LoadPedComment(uint32 nComment)
samplesSize -= size;
}
#else
if ( fseek(fpSampleDataHandle, m_aSamples[nComment].nOffset, SEEK_SET) != 0 )
if ( fseek(gFileHandleSampleData, m_aSampleDataTable[nComment].nOffset, SEEK_SET) != 0 )
return FALSE;
if ( fread((void *)(nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BLOCKSIZE*nCurrentPedSlot), 1, m_aSamples[nComment].nSize, fpSampleDataHandle) != m_aSamples[nComment].nSize )
if ( fread((void *)(gSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BUFFERSIZE*gCurPedIndex), 1, m_aSampleDataTable[nComment].nSize, gFileHandleSampleData) != m_aSampleDataTable[nComment].nSize )
return FALSE;
#endif
nPedSlotSfx[nCurrentPedSlot] = nComment;
gPedSfx[gCurPedIndex] = nComment;
if ( ++nCurrentPedSlot >= MAX_PEDSFX )
nCurrentPedSlot = 0;
if ( ++gCurPedIndex >= MAX_PEDSFX )
gCurPedIndex = 0;
return TRUE;
}
@ -1363,10 +1363,10 @@ cSampleManager::LoadPedComment(uint32 nComment)
int32
cSampleManager::GetBankContainingSound(uint32 offset)
{
if ( offset >= BankStartOffset[SFX_BANK_PED_COMMENTS] )
if ( offset >= gBankStartOffset[SFX_BANK_PED_COMMENTS] )
return SFX_BANK_PED_COMMENTS;
if ( offset >= BankStartOffset[SFX_BANK_0] )
if ( offset >= gBankStartOffset[SFX_BANK_0] )
return SFX_BANK_0;
return INVALID_SFX_BANK;
@ -1376,28 +1376,28 @@ int32
cSampleManager::GetSampleBaseFrequency(uint32 nSample)
{
ASSERT( nSample < TOTAL_AUDIO_SAMPLES );
return m_aSamples[nSample].nFrequency;
return m_aSampleDataTable[nSample].nFrequency;
}
int32
cSampleManager::GetSampleLoopStartOffset(uint32 nSample)
{
ASSERT( nSample < TOTAL_AUDIO_SAMPLES );
return m_aSamples[nSample].nLoopStart;
return m_aSampleDataTable[nSample].nLoopStart;
}
int32
cSampleManager::GetSampleLoopEndOffset(uint32 nSample)
{
ASSERT( nSample < TOTAL_AUDIO_SAMPLES );
return m_aSamples[nSample].nLoopEnd;
return m_aSampleDataTable[nSample].nLoopEnd;
}
uint32
cSampleManager::GetSampleLength(uint32 nSample)
{
ASSERT( nSample < TOTAL_AUDIO_SAMPLES );
return m_aSamples[nSample].nSize / sizeof(uint16);
return m_aSampleDataTable[nSample].nSize / sizeof(uint16);
}
bool8 cSampleManager::UpdateReverb(void)
@ -1496,7 +1496,7 @@ cSampleManager::InitialiseChannel(uint32 nChannel, uint32 nSfx, uint8 nBank)
if ( !IsSampleBankLoaded(nBank) )
return FALSE;
addr = nSampleBankMemoryStartAddress[nBank] + m_aSamples[nSfx].nOffset - m_aSamples[BankStartOffset[nBank]].nOffset;
addr = gSampleBankMemoryStartAddress[nBank] + m_aSampleDataTable[nSfx].nOffset - m_aSampleDataTable[gBankStartOffset[nBank]].nOffset;
}
else
{
@ -1504,7 +1504,7 @@ cSampleManager::InitialiseChannel(uint32 nChannel, uint32 nSfx, uint8 nBank)
return FALSE;
int32 slot = _GetPedCommentSlot(nSfx);
addr = (nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BLOCKSIZE * slot);
addr = (gSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BUFFERSIZE * slot);
}
if ( GetChannelUsedFlag(nChannel) )
@ -1516,7 +1516,7 @@ cSampleManager::InitialiseChannel(uint32 nChannel, uint32 nSfx, uint8 nBank)
aChannel[nChannel].Reset();
if ( aChannel[nChannel].HasSource() )
{
aChannel[nChannel].SetSampleData ((void*)addr, m_aSamples[nSfx].nSize, m_aSamples[nSfx].nFrequency);
aChannel[nChannel].SetSampleData ((void*)addr, m_aSampleDataTable[nSfx].nSize, m_aSampleDataTable[nSfx].nFrequency);
aChannel[nChannel].SetLoopPoints (0, -1);
aChannel[nChannel].SetPitch (1.0f);
return TRUE;
@ -1533,18 +1533,18 @@ cSampleManager::SetChannelEmittingVolume(uint32 nChannel, uint32 nVolume)
uint32 vol = nVolume;
if ( vol > MAX_VOLUME ) vol = MAX_VOLUME;
nChannelVolume[nChannel] = vol;
gChannelVolume[nChannel] = vol;
// reduce channel volume when JB.MP3 or S4_BDBD.MP3 playing
if ( MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE
&& MusicManager.GetNextTrack() != STREAMED_SOUND_NEWS_INTRO
&& MusicManager.GetNextTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD )
{
nChannelVolume[nChannel] = vol / 4;
gChannelVolume[nChannel] = vol / 4;
}
// no idea, does this one looks like a bug or it's SetChannelVolume ?
aChannel[nChannel].SetVolume(m_nEffectsFadeVolume*nChannelVolume[nChannel]*m_nEffectsVolume >> 14);
aChannel[nChannel].SetVolume(m_nEffectsFadeVolume*gChannelVolume[nChannel]*m_nEffectsVolume >> 14);
}
void
@ -1573,14 +1573,14 @@ cSampleManager::SetChannelVolume(uint32 nChannel, uint32 nVolume)
uint32 vol = nVolume;
if ( vol > MAX_VOLUME ) vol = MAX_VOLUME;
nChannelVolume[nChannel] = vol;
gChannelVolume[nChannel] = vol;
// reduce the volume for JB.MP3 and S4_BDBD.MP3
if ( MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE
&& MusicManager.GetNextTrack() != STREAMED_SOUND_NEWS_INTRO
&& MusicManager.GetNextTrack() != STREAMED_SOUND_CUTSCENE_SAL4_BDBD )
{
nChannelVolume[nChannel] = vol / 4;
gChannelVolume[nChannel] = vol / 4;
}
aChannel[nChannel].SetVolume(m_nEffectsFadeVolume*vol*m_nEffectsVolume >> 14);
@ -1727,7 +1727,7 @@ cSampleManager::StartStreamedFile(uint8 nFile, uint32 nPos, uint8 nStream)
// Switched to MP3 player just now
if ( !_bIsMp3Active && i == 0 )
{
if ( nPos > nStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] )
if ( nPos > gStreamLength[STREAMED_SOUND_RADIO_MP3_PLAYER] )
position = 0;
tMP3Entry *e = _pMP3List;
@ -1935,7 +1935,7 @@ cSampleManager::GetStreamedFileLength(uint8 nStream)
{
ASSERT( nStream < TOTAL_STREAMED_SOUNDS );
return nStreamLength[nStream];
return gStreamLength[nStream];
}
bool8
@ -1977,47 +1977,47 @@ cSampleManager::InitialiseSampleBanks(void)
{
int32 nBank = SFX_BANK_0;
fpSampleDescHandle = fcaseopen(SampleBankDescFilename, "rb");
if ( fpSampleDescHandle == NULL )
gFileHandleSampleDesc = fcaseopen(SampleBankDescFilename, "rb");
if ( gFileHandleSampleDesc == NULL )
return FALSE;
#ifndef OPUS_SFX
fpSampleDataHandle = fcaseopen(SampleBankDataFilename, "rb");
if ( fpSampleDataHandle == NULL )
gFileHandleSampleData = fcaseopen(SampleBankDataFilename, "rb");
if ( gFileHandleSampleData == NULL )
{
fclose(fpSampleDescHandle);
fpSampleDescHandle = NULL;
fclose(gFileHandleSampleDesc);
gFileHandleSampleDesc = NULL;
return FALSE;
}
fseek(fpSampleDataHandle, 0, SEEK_END);
int32 _nSampleDataEndOffset = ftell(fpSampleDataHandle);
rewind(fpSampleDataHandle);
fseek(gFileHandleSampleData, 0, SEEK_END);
int32 _nSampleDataEndOffset = ftell(gFileHandleSampleData);
rewind(gFileHandleSampleData);
#else
int e;
fpSampleDataHandle = op_open_file(SampleBankDataFilename, &e);
gFileHandleSampleData = op_open_file(SampleBankDataFilename, &e);
#endif
fread(m_aSamples, sizeof(tSample), TOTAL_AUDIO_SAMPLES, fpSampleDescHandle);
fread(m_aSampleDataTable, sizeof(tSample), TOTAL_AUDIO_SAMPLES, gFileHandleSampleDesc);
#ifdef OPUS_SFX
int32 _nSampleDataEndOffset = m_aSamples[TOTAL_AUDIO_SAMPLES - 1].nOffset + m_aSamples[TOTAL_AUDIO_SAMPLES - 1].nSize;
int32 _nSampleDataEndOffset = m_aSampleDataTable[TOTAL_AUDIO_SAMPLES - 1].nOffset + m_aSampleDataTable[TOTAL_AUDIO_SAMPLES - 1].nSize;
#endif
fclose(fpSampleDescHandle);
fpSampleDescHandle = NULL;
fclose(gFileHandleSampleDesc);
gFileHandleSampleDesc = NULL;
for ( int32 i = 0; i < TOTAL_AUDIO_SAMPLES; i++ )
{
#ifdef FIX_BUGS
if (nBank >= MAX_SFX_BANKS) break;
#endif
if ( BankStartOffset[nBank] == BankStartOffset[SFX_BANK_0] + i )
if ( gBankStartOffset[nBank] == gBankStartOffset[SFX_BANK_0] + i )
{
nSampleBankDiscStartOffset[nBank] = m_aSamples[i].nOffset;
gSampleBankDiscStartOffset[nBank] = m_aSampleDataTable[i].nOffset;
nBank++;
}
}
nSampleBankSize[SFX_BANK_0] = nSampleBankDiscStartOffset[SFX_BANK_PED_COMMENTS] - nSampleBankDiscStartOffset[SFX_BANK_0];
nSampleBankSize[SFX_BANK_PED_COMMENTS] = _nSampleDataEndOffset - nSampleBankDiscStartOffset[SFX_BANK_PED_COMMENTS];
gSampleBankSize[SFX_BANK_0] = gSampleBankDiscStartOffset[SFX_BANK_PED_COMMENTS] - gSampleBankDiscStartOffset[SFX_BANK_0];
gSampleBankSize[SFX_BANK_PED_COMMENTS] = _nSampleDataEndOffset - gSampleBankDiscStartOffset[SFX_BANK_PED_COMMENTS];
return TRUE;
}