Revert "Use PS2-y global names on SampMan"

We know that they changed all those names on PC.

This reverts commit 091a65996e.
This commit is contained in:
erorcun 2021-06-27 17:59:43 +03:00
parent 091a65996e
commit 53a4b6936b
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 void
cAudioManager::PreInitialiseGameSpecificSetup() const cAudioManager::PreInitialiseGameSpecificSetup() const
{ {
gBankStartOffset[SFX_BANK_0] = SAMPLEBANK_START; BankStartOffset[SFX_BANK_0] = SAMPLEBANK_START;
#ifdef GTA_PS2 #ifdef GTA_PS2
gBankStartOffset[SFX_BANK_PACARD] = SFX_CAR_ACCEL_1; BankStartOffset[SFX_BANK_PACARD] = SFX_CAR_ACCEL_1;
gBankStartOffset[SFX_BANK_PATHFINDER] = SFX_CAR_ACCEL_2; BankStartOffset[SFX_BANK_PATHFINDER] = SFX_CAR_ACCEL_2;
gBankStartOffset[SFX_BANK_PORSCHE] = SFX_CAR_ACCEL_3; BankStartOffset[SFX_BANK_PORSCHE] = SFX_CAR_ACCEL_3;
gBankStartOffset[SFX_BANK_SPIDER] = SFX_CAR_ACCEL_4; BankStartOffset[SFX_BANK_SPIDER] = SFX_CAR_ACCEL_4;
gBankStartOffset[SFX_BANK_MERC] = SFX_CAR_ACCEL_5; BankStartOffset[SFX_BANK_MERC] = SFX_CAR_ACCEL_5;
gBankStartOffset[SFX_BANK_TRUCK] = SFX_CAR_ACCEL_6; BankStartOffset[SFX_BANK_TRUCK] = SFX_CAR_ACCEL_6;
gBankStartOffset[SFX_BANK_HOTROD] = SFX_CAR_ACCEL_7; BankStartOffset[SFX_BANK_HOTROD] = SFX_CAR_ACCEL_7;
gBankStartOffset[SFX_BANK_COBRA] = SFX_CAR_ACCEL_8; BankStartOffset[SFX_BANK_COBRA] = SFX_CAR_ACCEL_8;
gBankStartOffset[SFX_BANK_NONE] = SFX_CAR_ACCEL_9; BankStartOffset[SFX_BANK_NONE] = SFX_CAR_ACCEL_9;
gBankStartOffset[SFX_BANK_FRONT_END_MENU] = SFX_PAGE_CHANGE_AND_BACK_LEFT; BankStartOffset[SFX_BANK_FRONT_END_MENU] = SFX_PAGE_CHANGE_AND_BACK_LEFT;
gBankStartOffset[SFX_BANK_TRAIN] = SFX_TRAIN_STATION_AMBIENCE_LOOP; BankStartOffset[SFX_BANK_TRAIN] = SFX_TRAIN_STATION_AMBIENCE_LOOP;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_1] = SFX_CLUB_1; BankStartOffset[SFX_BANK_BUILDING_CLUB_1] = SFX_CLUB_1;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_2] = SFX_CLUB_2; BankStartOffset[SFX_BANK_BUILDING_CLUB_2] = SFX_CLUB_2;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_3] = SFX_CLUB_3; BankStartOffset[SFX_BANK_BUILDING_CLUB_3] = SFX_CLUB_3;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_4] = SFX_CLUB_4; BankStartOffset[SFX_BANK_BUILDING_CLUB_4] = SFX_CLUB_4;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_5] = SFX_CLUB_5; BankStartOffset[SFX_BANK_BUILDING_CLUB_5] = SFX_CLUB_5;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_6] = SFX_CLUB_6; BankStartOffset[SFX_BANK_BUILDING_CLUB_6] = SFX_CLUB_6;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_7] = SFX_CLUB_7; BankStartOffset[SFX_BANK_BUILDING_CLUB_7] = SFX_CLUB_7;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_8] = SFX_CLUB_8; BankStartOffset[SFX_BANK_BUILDING_CLUB_8] = SFX_CLUB_8;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_9] = SFX_CLUB_9; BankStartOffset[SFX_BANK_BUILDING_CLUB_9] = SFX_CLUB_9;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_10] = SFX_CLUB_10; BankStartOffset[SFX_BANK_BUILDING_CLUB_10] = SFX_CLUB_10;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_11] = SFX_CLUB_11; BankStartOffset[SFX_BANK_BUILDING_CLUB_11] = SFX_CLUB_11;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_12] = SFX_CLUB_12; BankStartOffset[SFX_BANK_BUILDING_CLUB_12] = SFX_CLUB_12;
gBankStartOffset[SFX_BANK_BUILDING_CLUB_RAGGA] = SFX_CLUB_RAGGA; BankStartOffset[SFX_BANK_BUILDING_CLUB_RAGGA] = SFX_CLUB_RAGGA;
gBankStartOffset[SFX_BANK_BUILDING_STRIP_CLUB_1] = SFX_STRIP_CLUB_1; BankStartOffset[SFX_BANK_BUILDING_STRIP_CLUB_1] = SFX_STRIP_CLUB_1;
gBankStartOffset[SFX_BANK_BUILDING_STRIP_CLUB_2] = SFX_STRIP_CLUB_2; BankStartOffset[SFX_BANK_BUILDING_STRIP_CLUB_2] = SFX_STRIP_CLUB_2;
gBankStartOffset[SFX_BANK_BUILDING_WORKSHOP] = SFX_WORKSHOP_1; BankStartOffset[SFX_BANK_BUILDING_WORKSHOP] = SFX_WORKSHOP_1;
gBankStartOffset[SFX_BANK_BUILDING_PIANO_BAR] = SFX_PIANO_BAR_1; BankStartOffset[SFX_BANK_BUILDING_PIANO_BAR] = SFX_PIANO_BAR_1;
gBankStartOffset[SFX_BANK_BUILDING_SAWMILL] = SFX_SAWMILL_LOOP; BankStartOffset[SFX_BANK_BUILDING_SAWMILL] = SFX_SAWMILL_LOOP;
gBankStartOffset[SFX_BANK_BUILDING_DOG_FOOD_FACTORY] = SFX_DOG_FOOD_FACTORY; BankStartOffset[SFX_BANK_BUILDING_DOG_FOOD_FACTORY] = SFX_DOG_FOOD_FACTORY;
gBankStartOffset[SFX_BANK_BUILDING_LAUNDERETTE] = SFX_LAUNDERETTE_LOOP; BankStartOffset[SFX_BANK_BUILDING_LAUNDERETTE] = SFX_LAUNDERETTE_LOOP;
gBankStartOffset[SFX_BANK_BUILDING_RESTAURANT_CHINATOWN] = SFX_RESTAURANT_CHINATOWN; BankStartOffset[SFX_BANK_BUILDING_RESTAURANT_CHINATOWN] = SFX_RESTAURANT_CHINATOWN;
gBankStartOffset[SFX_BANK_BUILDING_RESTAURANT_ITALY] = SFX_RESTAURANT_ITALY; BankStartOffset[SFX_BANK_BUILDING_RESTAURANT_ITALY] = SFX_RESTAURANT_ITALY;
gBankStartOffset[SFX_BANK_BUILDING_RESTAURANT_GENERIC_1] = SFX_RESTAURANT_GENERIC_1; BankStartOffset[SFX_BANK_BUILDING_RESTAURANT_GENERIC_1] = SFX_RESTAURANT_GENERIC_1;
gBankStartOffset[SFX_BANK_BUILDING_RESTAURANT_GENERIC_2] = SFX_RESTAURANT_GENERIC_2; BankStartOffset[SFX_BANK_BUILDING_RESTAURANT_GENERIC_2] = SFX_RESTAURANT_GENERIC_2;
gBankStartOffset[SFX_BANK_BUILDING_AIRPORT] = SFX_AIRPORT_ANNOUNCEMENT_1; BankStartOffset[SFX_BANK_BUILDING_AIRPORT] = SFX_AIRPORT_ANNOUNCEMENT_1;
gBankStartOffset[SFX_BANK_BUILDING_SHOP] = SFX_SHOP_LOOP; BankStartOffset[SFX_BANK_BUILDING_SHOP] = SFX_SHOP_LOOP;
gBankStartOffset[SFX_BANK_BUILDING_CINEMA] = SFX_CINEMA_BASS_1; BankStartOffset[SFX_BANK_BUILDING_CINEMA] = SFX_CINEMA_BASS_1;
gBankStartOffset[SFX_BANK_BUILDING_DOCKS] = SFX_DOCKS_FOGHORN; BankStartOffset[SFX_BANK_BUILDING_DOCKS] = SFX_DOCKS_FOGHORN;
gBankStartOffset[SFX_BANK_BUILDING_HOME] = SFX_HOME_1; BankStartOffset[SFX_BANK_BUILDING_HOME] = SFX_HOME_1;
gBankStartOffset[SFX_BANK_BUILDING_PORN_1] = SFX_PORN_1_LOOP; BankStartOffset[SFX_BANK_BUILDING_PORN_1] = SFX_PORN_1_LOOP;
gBankStartOffset[SFX_BANK_BUILDING_PORN_2] = SFX_PORN_2_LOOP; BankStartOffset[SFX_BANK_BUILDING_PORN_2] = SFX_PORN_2_LOOP;
gBankStartOffset[SFX_BANK_BUILDING_PORN_3] = SFX_PORN_3_LOOP; BankStartOffset[SFX_BANK_BUILDING_PORN_3] = SFX_PORN_3_LOOP;
gBankStartOffset[SFX_BANK_BUILDING_POLICE_BALL] = SFX_POLICE_BALL_1; BankStartOffset[SFX_BANK_BUILDING_POLICE_BALL] = SFX_POLICE_BALL_1;
gBankStartOffset[SFX_BANK_BUILDING_BANK_ALARM] = SFX_BANK_ALARM_1; BankStartOffset[SFX_BANK_BUILDING_BANK_ALARM] = SFX_BANK_ALARM_1;
gBankStartOffset[SFX_BANK_BUILDING_RAVE_INDUSTRIAL] = SFX_RAVE_INDUSTRIAL; BankStartOffset[SFX_BANK_BUILDING_RAVE_INDUSTRIAL] = SFX_RAVE_INDUSTRIAL;
gBankStartOffset[SFX_BANK_BUILDING_RAVE_COMMERCIAL] = SFX_RAVE_COMMERCIAL; BankStartOffset[SFX_BANK_BUILDING_RAVE_COMMERCIAL] = SFX_RAVE_COMMERCIAL;
gBankStartOffset[SFX_BANK_BUILDING_RAVE_SUBURBAN] = SFX_RAVE_SUBURBAN; BankStartOffset[SFX_BANK_BUILDING_RAVE_SUBURBAN] = SFX_RAVE_SUBURBAN;
gBankStartOffset[SFX_BANK_BUILDING_RAVE_COMMERCIAL_2] = SFX_RAVE_COMMERCIAL_2; BankStartOffset[SFX_BANK_BUILDING_RAVE_COMMERCIAL_2] = SFX_RAVE_COMMERCIAL_2;
gBankStartOffset[SFX_BANK_BUILDING_39] = SFX_CLUB_1_1; BankStartOffset[SFX_BANK_BUILDING_39] = SFX_CLUB_1_1;
gBankStartOffset[SFX_BANK_BUILDING_40] = SFX_CLUB_1_2; BankStartOffset[SFX_BANK_BUILDING_40] = SFX_CLUB_1_2;
gBankStartOffset[SFX_BANK_BUILDING_41] = SFX_CLUB_1_3; BankStartOffset[SFX_BANK_BUILDING_41] = SFX_CLUB_1_3;
gBankStartOffset[SFX_BANK_BUILDING_42] = SFX_CLUB_1_4; BankStartOffset[SFX_BANK_BUILDING_42] = SFX_CLUB_1_4;
gBankStartOffset[SFX_BANK_BUILDING_43] = SFX_CLUB_1_5; BankStartOffset[SFX_BANK_BUILDING_43] = SFX_CLUB_1_5;
gBankStartOffset[SFX_BANK_BUILDING_44] = SFX_CLUB_1_6; BankStartOffset[SFX_BANK_BUILDING_44] = SFX_CLUB_1_6;
gBankStartOffset[SFX_BANK_BUILDING_45] = SFX_CLUB_1_7; BankStartOffset[SFX_BANK_BUILDING_45] = SFX_CLUB_1_7;
gBankStartOffset[SFX_BANK_BUILDING_46] = SFX_CLUB_1_8; BankStartOffset[SFX_BANK_BUILDING_46] = SFX_CLUB_1_8;
gBankStartOffset[SFX_BANK_BUILDING_47] = SFX_CLUB_1_9; BankStartOffset[SFX_BANK_BUILDING_47] = SFX_CLUB_1_9;
gBankStartOffset[SFX_BANK_GENERIC_EXTRA] = SFX_EXPLOSION_1; BankStartOffset[SFX_BANK_GENERIC_EXTRA] = SFX_EXPLOSION_1;
#endif // GTA_PS2 #endif // GTA_PS2
gBankStartOffset[SFX_BANK_PED_COMMENTS] = SAMPLEBANK_PED_START; BankStartOffset[SFX_BANK_PED_COMMENTS] = SAMPLEBANK_PED_START;
} }
void void

View File

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

View File

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

View File

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

View File

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

View File

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