Merge pull request #706 from theR4K/miami

Miami
This commit is contained in:
Sergeanur 2020-09-21 19:55:51 +03:00 committed by GitHub
commit bde17bb395
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 1068 additions and 730 deletions

3
.gitignore vendored
View File

@ -351,4 +351,5 @@ MigrationBackup/
vendor/glew-2.1.0/ vendor/glew-2.1.0/
vendor/glfw-3.3.2.bin.WIN32/ vendor/glfw-3.3.2.bin.WIN32/
vendor/glfw-3.3.2.bin.WIN64/ vendor/glfw-3.3.2.bin.WIN64/
/vendor/glfw-3.3.2

View File

@ -165,7 +165,7 @@ cAudioManager::SetUpLoopingCollisionSound(const cAudioCollision &col, uint8 coun
if(m_sQueueSample.m_nVolume) { if(m_sQueueSample.m_nVolume) {
m_sQueueSample.m_nCounter = counter; m_sQueueSample.m_nCounter = counter;
m_sQueueSample.m_vecPos = col.m_vecPosition; m_sQueueSample.m_vecPos = col.m_vecPosition;
m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nBankIndex = SFX_BANK_0;
m_sQueueSample.m_bIs2D = false; m_sQueueSample.m_bIs2D = false;
m_sQueueSample.m_nReleasingVolumeModificator = 7; m_sQueueSample.m_nReleasingVolumeModificator = 7;
m_sQueueSample.m_nLoopCount = 0; m_sQueueSample.m_nLoopCount = 0;
@ -306,7 +306,7 @@ cAudioManager::SetUpOneShotCollisionSound(const cAudioCollision &col)
m_sQueueSample.m_nCounter = counter++; m_sQueueSample.m_nCounter = counter++;
if(counter >= 255) counter = 28; if(counter >= 255) counter = 28;
m_sQueueSample.m_vecPos = col.m_vecPosition; m_sQueueSample.m_vecPos = col.m_vecPosition;
m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nBankIndex = SFX_BANK_0;
m_sQueueSample.m_bIs2D = false; m_sQueueSample.m_bIs2D = false;
m_sQueueSample.m_nReleasingVolumeModificator = 11; m_sQueueSample.m_nReleasingVolumeModificator = 11;
m_sQueueSample.m_nLoopCount = 1; m_sQueueSample.m_nLoopCount = 1;

File diff suppressed because it is too large Load Diff

View File

@ -86,7 +86,7 @@ cAudioManager::Terminate()
m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal = 0; m_sAudioScriptObjectManager.m_nScriptObjectEntityTotal = 0;
PreTerminateGameSpecificShutdown(); PreTerminateGameSpecificShutdown();
for (uint32 i = 0; i < MAX_SAMPLEBANKS; i++) { for (uint32 i = 0; i < MAX_SFX_BANKS; i++) {
if (SampleManager.IsSampleBankLoaded(i)) if (SampleManager.IsSampleBankLoaded(i))
SampleManager.UnloadSampleBank(i); SampleManager.UnloadSampleBank(i);
} }
@ -934,7 +934,7 @@ cAudioManager::ClearActiveSamples()
m_asActiveSamples[i].m_nEntityIndex = AEHANDLE_NONE; m_asActiveSamples[i].m_nEntityIndex = AEHANDLE_NONE;
m_asActiveSamples[i].m_nCounter = 0; m_asActiveSamples[i].m_nCounter = 0;
m_asActiveSamples[i].m_nSampleIndex = NO_SAMPLE; m_asActiveSamples[i].m_nSampleIndex = NO_SAMPLE;
m_asActiveSamples[i].m_nBankIndex = SAMPLEBANK_INVALID; m_asActiveSamples[i].m_nBankIndex = INVALID_SFX_BANK;
m_asActiveSamples[i].m_bIs2D = false; m_asActiveSamples[i].m_bIs2D = false;
m_asActiveSamples[i].m_nReleasingVolumeModificator = 5; m_asActiveSamples[i].m_nReleasingVolumeModificator = 5;
m_asActiveSamples[i].m_nFrequency = 0; m_asActiveSamples[i].m_nFrequency = 0;

View File

@ -3,6 +3,7 @@
#include "audio_enums.h" #include "audio_enums.h"
#include "AudioCollision.h" #include "AudioCollision.h"
#include "PoliceRadio.h" #include "PoliceRadio.h"
#include "VehicleModelInfo.h"
class tSound class tSound
{ {
@ -143,6 +144,7 @@ public:
class cVehicleParams class cVehicleParams
{ {
public: public:
eVehicleType m_VehicleType;
bool m_bDistanceCalculated; bool m_bDistanceCalculated;
float m_fDistance; float m_fDistance;
CVehicle *m_pVehicle; CVehicle *m_pVehicle;
@ -345,7 +347,7 @@ public:
void ProcessPedOneShots(cPedParams *params); void ProcessPedOneShots(cPedParams *params);
void ProcessPhysical(int32 id); void ProcessPhysical(int32 id);
void ProcessPlane(cVehicleParams *params); void ProcessPlane(cVehicleParams *params);
void ProcessPlayersVehicleEngine(cVehicleParams *params, CAutomobile *automobile); void ProcessPlayersVehicleEngine(cVehicleParams *params, CVehicle* veh);
void ProcessProjectiles(); void ProcessProjectiles();
void ProcessRainOnVehicle(cVehicleParams *params); void ProcessRainOnVehicle(cVehicleParams *params);
void ProcessReverb() const; void ProcessReverb() const;
@ -358,6 +360,7 @@ public:
void ProcessVehicle(CVehicle *vehicle); void ProcessVehicle(CVehicle *vehicle);
bool ProcessVehicleDoors(cVehicleParams *params); bool ProcessVehicleDoors(cVehicleParams *params);
void ProcessVehicleEngine(cVehicleParams *params); void ProcessVehicleEngine(cVehicleParams *params);
void UpdateGasPedalAudio(CVehicle* veh, int vehType);
void ProcessVehicleHorn(cVehicleParams *params); void ProcessVehicleHorn(cVehicleParams *params);
void ProcessVehicleOneShots(cVehicleParams *params); void ProcessVehicleOneShots(cVehicleParams *params);
bool ProcessVehicleReverseWarning(cVehicleParams *params); bool ProcessVehicleReverseWarning(cVehicleParams *params);
@ -410,7 +413,6 @@ public:
void Terminate(); void Terminate();
void TranslateEntity(Const CVector *v1, CVector *v2) const; void TranslateEntity(Const CVector *v1, CVector *v2) const;
void UpdateGasPedalAudio(CAutomobile *automobile);
void UpdateReflections(); void UpdateReflections();
bool UsesReverseWarning(int32 model) const; bool UsesReverseWarning(int32 model) const;
bool UsesSiren(int32 model) const; bool UsesSiren(int32 model) const;

View File

@ -103,7 +103,7 @@ cAudioManager::DoPoliceRadioCrackle()
m_sQueueSample.m_nEntityIndex = m_nPoliceChannelEntity; m_sQueueSample.m_nEntityIndex = m_nPoliceChannelEntity;
m_sQueueSample.m_nCounter = 0; m_sQueueSample.m_nCounter = 0;
m_sQueueSample.m_nSampleIndex = SFX_POLICE_RADIO_CRACKLE; m_sQueueSample.m_nSampleIndex = SFX_POLICE_RADIO_CRACKLE;
m_sQueueSample.m_nBankIndex = SAMPLEBANK_MAIN; m_sQueueSample.m_nBankIndex = SFX_BANK_0;
m_sQueueSample.m_bIs2D = true; m_sQueueSample.m_bIs2D = true;
m_sQueueSample.m_nReleasingVolumeModificator = 10; m_sQueueSample.m_nReleasingVolumeModificator = 10;
m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_POLICE_RADIO_CRACKLE); m_sQueueSample.m_nFrequency = SampleManager.GetSampleBaseFrequency(SFX_POLICE_RADIO_CRACKLE);

View File

@ -16,85 +16,101 @@ struct tSample {
#ifdef GTA_PS2 #ifdef GTA_PS2
#define PS2BANK(e) e #define PS2BANK(e) e
#else #else
#define PS2BANK(e) e = SAMPLEBANK_MAIN #define PS2BANK(e) e = SFX_BANK_0
#endif // GTA_PS2 #endif // GTA_PS2
enum enum
{ {
SAMPLEBANK_MAIN, SFX_BANK_0,
#ifdef GTA_PS2
SFX_BANK_GENERIC_EXTRA,
SFX_BANK_PED_COMMENTS,
SFX_BANK_FRONT_END_MENU,
#else
SFX_BANK_GENERIC_EXTRA = SFX_BANK_0,
SFX_BANK_FRONT_END_MENU = SFX_BANK_0,
CAR_SAMPLEBANKS_OFFSET, SFX_BANK_PED_COMMENTS,
SAMPLEBANK_CAR_PACARD = CAR_SAMPLEBANKS_OFFSET, MAX_SFX_BANKS,
SAMPLEBANK_CAR_PATHFINDER, INVALID_SFX_BANK,
SAMPLEBANK_CAR_PORSCHE, #endif
SAMPLEBANK_CAR_SPIDER,
SAMPLEBANK_CAR_MERC,
SAMPLEBANK_CAR_MACKTRUCK,
SAMPLEBANK_CAR_HOTROD,
SAMPLEBANK_CAR_COBRA,
SAMPLEBANK_CAR_NONE,
PS2BANK(SAMPLEBANK_FRONTEND), CAR_SFX_BANKS_OFFSET,
SFX_BANK_PONTIAC = CAR_SFX_BANKS_OFFSET,
SFX_BANK_PORSCHE,
SFX_BANK_SPIDER,
SFX_BANK_MERC,
SFX_BANK_TRUCK,
SFX_BANK_HOTROD,
SFX_BANK_COBRA,
SFX_BANK_PONTIAC_SLOW,
SFX_BANK_CADILLAC,
SFX_BANK_PATHFINDER,
SFX_BANK_PACARD,
SFX_BANK_GOLF_CART,
SFX_BANK_CAR_CHAINSAW,
SFX_BANK_RC,
SFX_BANK_RC_HELI,
SFX_BANK_CAR_UNUSED_4,
PS2BANK(SAMPLEBANK_TRAIN), // bikes
SFX_BANK_VTWIN,
SFX_BANK_MOPED,
SFX_BANK_HONDA250,
SFX_BANK_SPORTS_BIKE,
SFX_BANK_BIKE_UNUSED_1,
SFX_BANK_BIKE_UNUSED_2,
SFX_BANK_BIKE_UNUSED_3,
SFX_BANK_BIKE_UNUSED_4,
SFX_BANK_BIKE_UNUSED_5,
SFX_BANK_BIKE_UNUSED_6,
PS2BANK(SAMPLEBANK_BUILDING_CLUB_1), // heli
PS2BANK(SAMPLEBANK_BUILDING_CLUB_2), SFX_BANK_HELI_APACHE,
PS2BANK(SAMPLEBANK_BUILDING_CLUB_3), SFX_BANK_HELI_UNUSED_1,
PS2BANK(SAMPLEBANK_BUILDING_CLUB_4), SFX_BANK_HELI_UNUSED_2,
PS2BANK(SAMPLEBANK_BUILDING_CLUB_5), SFX_BANK_HELI_UNUSED_3,
PS2BANK(SAMPLEBANK_BUILDING_CLUB_6), SFX_BANK_HELI_UNUSED_4,
PS2BANK(SAMPLEBANK_BUILDING_CLUB_7),
PS2BANK(SAMPLEBANK_BUILDING_CLUB_8),
PS2BANK(SAMPLEBANK_BUILDING_CLUB_9),
PS2BANK(SAMPLEBANK_BUILDING_CLUB_10),
PS2BANK(SAMPLEBANK_BUILDING_CLUB_11),
PS2BANK(SAMPLEBANK_BUILDING_CLUB_12),
PS2BANK(SAMPLEBANK_BUILDING_CLUB_RAGGA),
PS2BANK(SAMPLEBANK_BUILDING_STRIP_CLUB_1),
PS2BANK(SAMPLEBANK_BUILDING_STRIP_CLUB_2),
PS2BANK(SAMPLEBANK_BUILDING_WORKSHOP),
PS2BANK(SAMPLEBANK_BUILDING_PIANO_BAR),
PS2BANK(SAMPLEBANK_BUILDING_SAWMILL),
PS2BANK(SAMPLEBANK_BUILDING_DOG_FOOD_FACTORY),
PS2BANK(SAMPLEBANK_BUILDING_LAUNDERETTE),
PS2BANK(SAMPLEBANK_BUILDING_RESTAURANT_CHINATOWN),
PS2BANK(SAMPLEBANK_BUILDING_RESTAURANT_ITALY),
PS2BANK(SAMPLEBANK_BUILDING_RESTAURANT_GENERIC_1),
PS2BANK(SAMPLEBANK_BUILDING_RESTAURANT_GENERIC_2),
PS2BANK(SAMPLEBANK_BUILDING_AIRPORT),
PS2BANK(SAMPLEBANK_BUILDING_SHOP),
PS2BANK(SAMPLEBANK_BUILDING_CINEMA),
PS2BANK(SAMPLEBANK_BUILDING_DOCKS),
PS2BANK(SAMPLEBANK_BUILDING_HOME),
PS2BANK(SAMPLEBANK_BUILDING_PORN_1),
PS2BANK(SAMPLEBANK_BUILDING_PORN_2),
PS2BANK(SAMPLEBANK_BUILDING_PORN_3),
PS2BANK(SAMPLEBANK_BUILDING_POLICE_BALL),
PS2BANK(SAMPLEBANK_BUILDING_BANK_ALARM),
PS2BANK(SAMPLEBANK_BUILDING_RAVE_INDUSTRIAL),
PS2BANK(SAMPLEBANK_BUILDING_RAVE_COMMERCIAL),
PS2BANK(SAMPLEBANK_BUILDING_RAVE_SUBURBAN),
PS2BANK(SAMPLEBANK_BUILDING_RAVE_COMMERCIAL_2),
PS2BANK(SAMPLEBANK_BUILDING_39), // plane
PS2BANK(SAMPLEBANK_BUILDING_40), SFX_BANK_PLANE_SEAPLANE,
PS2BANK(SAMPLEBANK_BUILDING_41), SFX_BANK_PLANE_UNUSED_1,
PS2BANK(SAMPLEBANK_BUILDING_42), SFX_BANK_PLANE_UNUSED_2,
PS2BANK(SAMPLEBANK_BUILDING_43), SFX_BANK_PLANE_UNUSED_3,
PS2BANK(SAMPLEBANK_BUILDING_44), SFX_BANK_PLANE_UNUSED_4,
PS2BANK(SAMPLEBANK_BUILDING_45), PS2BANK(SFX_BANK_BUILDING_BANK_ALARM),
PS2BANK(SAMPLEBANK_BUILDING_46), PS2BANK(SFX_BANK_BUILDING_SNORING),
PS2BANK(SAMPLEBANK_BUILDING_47), PS2BANK(SFX_BANK_BUILDING_BAR_1),
PS2BANK(SFX_BANK_BUILDING_BAR_2),
PS2BANK(SAMPLEBANK_EXTRAS), PS2BANK(SFX_BANK_BUILDING_BAR_3),
PS2BANK(SFX_BANK_BUILDING_BAR_4),
SAMPLEBANK_PED, PS2BANK(SFX_BANK_BUILDING_MALIBU_1),
MAX_SAMPLEBANKS, PS2BANK(SFX_BANK_BUILDING_MALIBU_2),
SAMPLEBANK_INVALID PS2BANK(SFX_BANK_BUILDING_MALIBU_3),
PS2BANK(SFX_BANK_BUILDING_STRIP_1),
PS2BANK(SFX_BANK_BUILDING_STRIP_2),
PS2BANK(SFX_BANK_BUILDING_STRIP_3),
PS2BANK(SFX_BANK_BUILDING_CHURCH),
PS2BANK(SFX_BANK_BUILDING_FAN_1),
PS2BANK(SFX_BANK_BUILDING_FAN_2),
PS2BANK(SFX_BANK_BUILDING_INSECT_1),
PS2BANK(SFX_BANK_BUILDING_INSECT_2),
PS2BANK(SFX_BANK_BUILDING_18),
PS2BANK(SFX_BANK_BUILDING_19),
PS2BANK(SFX_BANK_BUILDING_20),
PS2BANK(SFX_BANK_BUILDING_21),
PS2BANK(SFX_BANK_FOOTSTEPS_GRASS),
PS2BANK(SFX_BANK_FOOTSTEPS_GRAVEL),
PS2BANK(SFX_BANK_FOOTSTEPS_WOOD),
PS2BANK(SFX_BANK_FOOTSTEPS_METAL),
PS2BANK(SFX_BANK_FOOTSTEPS_WATER),
PS2BANK(SFX_BANK_FOOTSTEPS_SAND),
#ifdef GTA_PS2
MAX_SFX_BANKS,
INVALID_SFX_BANK
#endif
}; };
#define MAX_PEDSFX 7 #define MAX_PEDSFX 7
#define PED_BLOCKSIZE 79000 #define PED_BLOCKSIZE 79000
@ -226,7 +242,7 @@ public:
}; };
extern cSampleManager SampleManager; extern cSampleManager SampleManager;
extern uint32 BankStartOffset[MAX_SAMPLEBANKS]; extern uint32 BankStartOffset[MAX_SFX_BANKS];
#ifdef AUDIO_OPUS #ifdef AUDIO_OPUS
static char StreamedNameTable[][25] = { static char StreamedNameTable[][25] = {

View File

@ -21,7 +21,7 @@
#pragma comment( lib, "mss32.lib" ) #pragma comment( lib, "mss32.lib" )
cSampleManager SampleManager; cSampleManager SampleManager;
uint32 BankStartOffset[MAX_SAMPLEBANKS]; uint32 BankStartOffset[MAX_SFX_BANKS];
/////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////
char SampleBankDescFilename[] = "AUDIO\\SFX.SDT"; char SampleBankDescFilename[] = "AUDIO\\SFX.SDT";
@ -29,10 +29,10 @@ char SampleBankDataFilename[] = "AUDIO\\SFX.RAW";
FILE *fpSampleDescHandle; FILE *fpSampleDescHandle;
FILE *fpSampleDataHandle; FILE *fpSampleDataHandle;
bool bSampleBankLoaded [MAX_SAMPLEBANKS]; bool bSampleBankLoaded [MAX_SFX_BANKS];
int32 nSampleBankDiscStartOffset [MAX_SAMPLEBANKS]; int32 nSampleBankDiscStartOffset [MAX_SFX_BANKS];
int32 nSampleBankSize [MAX_SAMPLEBANKS]; int32 nSampleBankSize [MAX_SFX_BANKS];
int32 nSampleBankMemoryStartAddress[MAX_SAMPLEBANKS]; int32 nSampleBankMemoryStartAddress[MAX_SFX_BANKS];
int32 _nSampleDataEndOffset; int32 _nSampleDataEndOffset;
int32 nPedSlotSfx [MAX_PEDSFX]; int32 nPedSlotSfx [MAX_PEDSFX];
@ -1007,7 +1007,7 @@ cSampleManager::Initialise(void)
_nSampleDataEndOffset = 0; _nSampleDataEndOffset = 0;
for ( int32 i = 0; i < MAX_SAMPLEBANKS; i++ ) for ( int32 i = 0; i < MAX_SFX_BANKS; i++ )
{ {
bSampleBankLoaded[i] = false; bSampleBankLoaded[i] = false;
nSampleBankDiscStartOffset[i] = 0; nSampleBankDiscStartOffset[i] = 0;
@ -1059,14 +1059,14 @@ cSampleManager::Initialise(void)
return false; return false;
} }
nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN] = (int32)AIL_mem_alloc_lock(nSampleBankSize[SAMPLEBANK_MAIN]); nSampleBankMemoryStartAddress[SFX_BANK_0] = (int32)AIL_mem_alloc_lock(nSampleBankSize[SFX_BANK_0]);
if ( !nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN] ) if ( !nSampleBankMemoryStartAddress[SFX_BANK_0] )
{ {
Terminate(); Terminate();
return false; return false;
} }
nSampleBankMemoryStartAddress[SAMPLEBANK_PED] = (int32)AIL_mem_alloc_lock(PED_BLOCKSIZE*MAX_PEDSFX); nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = (int32)AIL_mem_alloc_lock(PED_BLOCKSIZE*MAX_PEDSFX);
} }
@ -1287,7 +1287,7 @@ cSampleManager::Initialise(void)
TRACE("bank"); TRACE("bank");
LoadSampleBank(SAMPLEBANK_MAIN); LoadSampleBank(SFX_BANK_0);
// mp3 // mp3
TRACE("mp3"); TRACE("mp3");
@ -1382,16 +1382,16 @@ cSampleManager::Terminate(void)
_DeleteMP3Entries(); _DeleteMP3Entries();
if ( nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN] != 0 ) if ( nSampleBankMemoryStartAddress[SFX_BANK_0] != 0 )
{ {
AIL_mem_free_lock((void *)nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN]); AIL_mem_free_lock((void *)nSampleBankMemoryStartAddress[SFX_BANK_0]);
nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN] = 0; nSampleBankMemoryStartAddress[SFX_BANK_0] = 0;
} }
if ( nSampleBankMemoryStartAddress[SAMPLEBANK_PED] != 0 ) if ( nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] != 0 )
{ {
AIL_mem_free_lock((void *)nSampleBankMemoryStartAddress[SAMPLEBANK_PED]); AIL_mem_free_lock((void *)nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS]);
nSampleBankMemoryStartAddress[SAMPLEBANK_PED] = 0; nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = 0;
} }
if ( DIG ) if ( DIG )
@ -1546,7 +1546,7 @@ cSampleManager::LoadSampleBank(uint8 nBank)
if ( MusicManager.IsInitialised() if ( MusicManager.IsInitialised()
&& MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE && MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE
&& nBank != SAMPLEBANK_MAIN ) && nBank != SFX_BANK_0 )
{ {
return false; return false;
} }
@ -1643,10 +1643,10 @@ cSampleManager::LoadPedComment(uint32 nComment)
if ( fseek(fpSampleDataHandle, m_aSamples[nComment].nOffset, SEEK_SET) != 0 ) if ( fseek(fpSampleDataHandle, m_aSamples[nComment].nOffset, SEEK_SET) != 0 )
return false; return false;
if ( fread((void *)(nSampleBankMemoryStartAddress[SAMPLEBANK_PED] + PED_BLOCKSIZE*nCurrentPedSlot), 1, m_aSamples[nComment].nSize, fpSampleDataHandle) != m_aSamples[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;
nPedSlotSfxAddr[nCurrentPedSlot] = nSampleBankMemoryStartAddress[SAMPLEBANK_PED] + PED_BLOCKSIZE*nCurrentPedSlot; nPedSlotSfxAddr[nCurrentPedSlot] = nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BLOCKSIZE*nCurrentPedSlot;
nPedSlotSfx [nCurrentPedSlot] = nComment; nPedSlotSfx [nCurrentPedSlot] = nComment;
if ( ++nCurrentPedSlot >= MAX_PEDSFX ) if ( ++nCurrentPedSlot >= MAX_PEDSFX )
@ -1658,13 +1658,13 @@ cSampleManager::LoadPedComment(uint32 nComment)
int32 int32
cSampleManager::GetBankContainingSound(uint32 offset) cSampleManager::GetBankContainingSound(uint32 offset)
{ {
if ( offset >= BankStartOffset[SAMPLEBANK_PED] ) if ( offset >= BankStartOffset[SFX_BANK_PED_COMMENTS] )
return SAMPLEBANK_PED; return SFX_BANK_PED_COMMENTS;
if ( offset >= BankStartOffset[SAMPLEBANK_MAIN] ) if ( offset >= BankStartOffset[SFX_BANK_0] )
return SAMPLEBANK_MAIN; return SFX_BANK_0;
return SAMPLEBANK_INVALID; return INVALID_SFX_BANK;
} }
int32 int32
@ -2410,7 +2410,7 @@ cSampleManager::IsStreamPlaying(uint8 nStream)
bool bool
cSampleManager::InitialiseSampleBanks(void) cSampleManager::InitialiseSampleBanks(void)
{ {
int32 nBank = SAMPLEBANK_MAIN; int32 nBank = SFX_BANK_0;
fpSampleDescHandle = fopen(SampleBankDescFilename, "rb"); fpSampleDescHandle = fopen(SampleBankDescFilename, "rb");
if ( fpSampleDescHandle == NULL ) if ( fpSampleDescHandle == NULL )
@ -2437,17 +2437,17 @@ cSampleManager::InitialiseSampleBanks(void)
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_SAMPLEBANKS) break; if (nBank >= MAX_SFX_BANKS) break;
#endif #endif
if ( BankStartOffset[nBank] == BankStartOffset[SAMPLEBANK_MAIN] + i ) if ( BankStartOffset[nBank] == BankStartOffset[SFX_BANK_0] + i )
{ {
nSampleBankDiscStartOffset[nBank] = m_aSamples[i].nOffset; nSampleBankDiscStartOffset[nBank] = m_aSamples[i].nOffset;
nBank++; nBank++;
} }
} }
nSampleBankSize[SAMPLEBANK_MAIN] = nSampleBankDiscStartOffset[SAMPLEBANK_PED] - nSampleBankDiscStartOffset[SAMPLEBANK_MAIN]; nSampleBankSize[SFX_BANK_0] = nSampleBankDiscStartOffset[SFX_BANK_PED_COMMENTS] - nSampleBankDiscStartOffset[SFX_BANK_0];
nSampleBankSize[SAMPLEBANK_PED] = _nSampleDataEndOffset - nSampleBankDiscStartOffset[SAMPLEBANK_PED]; nSampleBankSize[SFX_BANK_PED_COMMENTS] = _nSampleDataEndOffset - nSampleBankDiscStartOffset[SFX_BANK_PED_COMMENTS];
return true; return true;
} }

View File

@ -43,7 +43,7 @@
cSampleManager SampleManager; cSampleManager SampleManager;
bool _bSampmanInitialised = false; bool _bSampmanInitialised = false;
uint32 BankStartOffset[MAX_SAMPLEBANKS]; uint32 BankStartOffset[MAX_SFX_BANKS];
int prevprovider=-1; int prevprovider=-1;
int curprovider=-1; int curprovider=-1;
@ -77,10 +77,10 @@ OggOpusFile *fpSampleDataHandle;
#else #else
FILE *fpSampleDataHandle; FILE *fpSampleDataHandle;
#endif #endif
bool bSampleBankLoaded [MAX_SAMPLEBANKS]; bool bSampleBankLoaded [MAX_SFX_BANKS];
int32 nSampleBankDiscStartOffset [MAX_SAMPLEBANKS]; int32 nSampleBankDiscStartOffset [MAX_SFX_BANKS];
int32 nSampleBankSize [MAX_SAMPLEBANKS]; int32 nSampleBankSize [MAX_SFX_BANKS];
uintptr nSampleBankMemoryStartAddress[MAX_SAMPLEBANKS]; uintptr nSampleBankMemoryStartAddress[MAX_SFX_BANKS];
int32 _nSampleDataEndOffset; int32 _nSampleDataEndOffset;
int32 nPedSlotSfx [MAX_PEDSFX]; int32 nPedSlotSfx [MAX_PEDSFX];
@ -574,7 +574,7 @@ cSampleManager::Initialise(void)
fpSampleDescHandle = NULL; fpSampleDescHandle = NULL;
fpSampleDataHandle = NULL; fpSampleDataHandle = NULL;
for ( int32 i = 0; i < MAX_SAMPLEBANKS; i++ ) for ( int32 i = 0; i < MAX_SFX_BANKS; i++ )
{ {
bSampleBankLoaded[i] = false; bSampleBankLoaded[i] = false;
nSampleBankDiscStartOffset[i] = 0; nSampleBankDiscStartOffset[i] = 0;
@ -619,17 +619,17 @@ cSampleManager::Initialise(void)
return false; return false;
} }
nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN] = (uintptr)malloc(nSampleBankSize[SAMPLEBANK_MAIN]); nSampleBankMemoryStartAddress[SFX_BANK_0] = (uintptr)malloc(nSampleBankSize[SFX_BANK_0]);
ASSERT(nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN] != 0); ASSERT(nSampleBankMemoryStartAddress[SFX_BANK_0] != 0);
if ( nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN] == 0 ) if ( nSampleBankMemoryStartAddress[SFX_BANK_0] == 0 )
{ {
Terminate(); Terminate();
return false; return false;
} }
nSampleBankMemoryStartAddress[SAMPLEBANK_PED] = (uintptr)malloc(PED_BLOCKSIZE*MAX_PEDSFX); nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = (uintptr)malloc(PED_BLOCKSIZE*MAX_PEDSFX);
ASSERT(nSampleBankMemoryStartAddress[SAMPLEBANK_PED] != 0); ASSERT(nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] != 0);
} }
@ -677,7 +677,7 @@ cSampleManager::Initialise(void)
#endif #endif
} }
LoadSampleBank(SAMPLEBANK_MAIN); LoadSampleBank(SFX_BANK_0);
return true; return true;
} }
@ -699,16 +699,16 @@ cSampleManager::Terminate(void)
CStream::Terminate(); CStream::Terminate();
if ( nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN] != 0 ) if ( nSampleBankMemoryStartAddress[SFX_BANK_0] != 0 )
{ {
free((void *)nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN]); free((void *)nSampleBankMemoryStartAddress[SFX_BANK_0]);
nSampleBankMemoryStartAddress[SAMPLEBANK_MAIN] = 0; nSampleBankMemoryStartAddress[SFX_BANK_0] = 0;
} }
if ( nSampleBankMemoryStartAddress[SAMPLEBANK_PED] != 0 ) if ( nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] != 0 )
{ {
free((void *)nSampleBankMemoryStartAddress[SAMPLEBANK_PED]); free((void *)nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS]);
nSampleBankMemoryStartAddress[SAMPLEBANK_PED] = 0; nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] = 0;
} }
_bSampmanInitialised = false; _bSampmanInitialised = false;
@ -790,14 +790,14 @@ cSampleManager::SetMonoMode(uint8 nMode)
bool bool
cSampleManager::LoadSampleBank(uint8 nBank) cSampleManager::LoadSampleBank(uint8 nBank)
{ {
ASSERT( nBank < MAX_SAMPLEBANKS ); ASSERT( nBank < MAX_SFX_BANKS);
if ( CTimer::GetIsCodePaused() ) if ( CTimer::GetIsCodePaused() )
return false; return false;
if ( MusicManager.IsInitialised() if ( MusicManager.IsInitialised()
&& MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE && MusicManager.GetMusicMode() == MUSICMODE_CUTSCENE
&& nBank != SAMPLEBANK_MAIN ) && nBank != SFX_BANK_0 )
{ {
return false; return false;
} }
@ -831,7 +831,7 @@ cSampleManager::LoadSampleBank(uint8 nBank)
void void
cSampleManager::UnloadSampleBank(uint8 nBank) cSampleManager::UnloadSampleBank(uint8 nBank)
{ {
ASSERT( nBank < MAX_SAMPLEBANKS ); ASSERT( nBank < MAX_SFX_BANKS);
bSampleBankLoaded[nBank] = false; bSampleBankLoaded[nBank] = false;
} }
@ -839,7 +839,7 @@ cSampleManager::UnloadSampleBank(uint8 nBank)
bool bool
cSampleManager::IsSampleBankLoaded(uint8 nBank) cSampleManager::IsSampleBankLoaded(uint8 nBank)
{ {
ASSERT( nBank < MAX_SAMPLEBANKS ); ASSERT( nBank < MAX_SFX_BANKS);
return bSampleBankLoaded[nBank]; return bSampleBankLoaded[nBank];
} }
@ -932,7 +932,7 @@ cSampleManager::LoadPedComment(uint32 nComment)
if ( fseek(fpSampleDataHandle, m_aSamples[nComment].nOffset, SEEK_SET) != 0 ) if ( fseek(fpSampleDataHandle, m_aSamples[nComment].nOffset, SEEK_SET) != 0 )
return false; return false;
if ( fread((void *)(nSampleBankMemoryStartAddress[SAMPLEBANK_PED] + PED_BLOCKSIZE*nCurrentPedSlot), 1, m_aSamples[nComment].nSize, fpSampleDataHandle) != m_aSamples[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
@ -940,7 +940,7 @@ cSampleManager::LoadPedComment(uint32 nComment)
alBufferData(pedBuffers[nCurrentPedSlot], alBufferData(pedBuffers[nCurrentPedSlot],
AL_FORMAT_MONO16, AL_FORMAT_MONO16,
(void *)(nSampleBankMemoryStartAddress[SAMPLEBANK_PED] + PED_BLOCKSIZE*nCurrentPedSlot), (void *)(nSampleBankMemoryStartAddress[SFX_BANK_PED_COMMENTS] + PED_BLOCKSIZE*nCurrentPedSlot),
m_aSamples[nComment].nSize, m_aSamples[nComment].nSize,
m_aSamples[nComment].nFrequency); m_aSamples[nComment].nFrequency);
@ -953,13 +953,13 @@ cSampleManager::LoadPedComment(uint32 nComment)
int32 int32
cSampleManager::GetBankContainingSound(uint32 offset) cSampleManager::GetBankContainingSound(uint32 offset)
{ {
if ( offset >= BankStartOffset[SAMPLEBANK_PED] ) if ( offset >= BankStartOffset[SFX_BANK_PED_COMMENTS] )
return SAMPLEBANK_PED; return SFX_BANK_PED_COMMENTS;
if ( offset >= BankStartOffset[SAMPLEBANK_MAIN] ) if ( offset >= BankStartOffset[SFX_BANK_0] )
return SAMPLEBANK_MAIN; return SFX_BANK_0;
return SAMPLEBANK_INVALID; return INVALID_SFX_BANK;
} }
int32 int32
@ -1460,7 +1460,7 @@ cSampleManager::Service(void)
bool bool
cSampleManager::InitialiseSampleBanks(void) cSampleManager::InitialiseSampleBanks(void)
{ {
int32 nBank = SAMPLEBANK_MAIN; int32 nBank = SFX_BANK_0;
fpSampleDescHandle = fopen(SampleBankDescFilename, "rb"); fpSampleDescHandle = fopen(SampleBankDescFilename, "rb");
if ( fpSampleDescHandle == NULL ) if ( fpSampleDescHandle == NULL )
@ -1492,17 +1492,17 @@ cSampleManager::InitialiseSampleBanks(void)
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_SAMPLEBANKS) break; if (nBank >= MAX_SFX_BANKS) break;
#endif #endif
if ( BankStartOffset[nBank] == BankStartOffset[SAMPLEBANK_MAIN] + i ) if ( BankStartOffset[nBank] == BankStartOffset[SFX_BANK_0] + i )
{ {
nSampleBankDiscStartOffset[nBank] = m_aSamples[i].nOffset; nSampleBankDiscStartOffset[nBank] = m_aSamples[i].nOffset;
nBank++; nBank++;
} }
} }
nSampleBankSize[SAMPLEBANK_MAIN] = nSampleBankDiscStartOffset[SAMPLEBANK_PED] - nSampleBankDiscStartOffset[SAMPLEBANK_MAIN]; nSampleBankSize[SFX_BANK_0] = nSampleBankDiscStartOffset[SFX_BANK_PED_COMMENTS] - nSampleBankDiscStartOffset[SFX_BANK_0];
nSampleBankSize[SAMPLEBANK_PED] = _nSampleDataEndOffset - nSampleBankDiscStartOffset[SAMPLEBANK_PED]; nSampleBankSize[SFX_BANK_PED_COMMENTS] = _nSampleDataEndOffset - nSampleBankDiscStartOffset[SFX_BANK_PED_COMMENTS];
return true; return true;
} }

View File

@ -1121,15 +1121,19 @@ CMenuManager::DrawStandardMenus(bool drawCurrScreen)
rightText = TheText.Get("FEA_ADP"); rightText = TheText.Get("FEA_ADP");
else { else {
char* provider = DMAudio.Get3DProviderName(m_nPrefsAudio3DProviderIndex); char* provider = DMAudio.Get3DProviderName(m_nPrefsAudio3DProviderIndex);
if (provider != NULL) {
if (!strcmp(strupr(provider), "DIRECTSOUND3D HARDWARE SUPPORT")) { if (!strcmp(strupr(provider), "DIRECTSOUND3D HARDWARE SUPPORT")) {
strcpy(provider, "DSOUND3D HARDWARE SUPPORT"); strcpy(provider, "DSOUND3D HARDWARE SUPPORT");
}
else if (!strcmp(strupr(provider), "DIRECTSOUND3D SOFTWARE EMULATION")) {
strcpy(provider, "DSOUND3D SOFTWARE EMULATION");
}
AsciiToUnicode(provider, unicodeTemp);
rightText = unicodeTemp;
} }
else if (!strcmp(strupr(provider), "DIRECTSOUND3D SOFTWARE EMULATION")) { else {
strcpy(provider, "DSOUND3D SOFTWARE EMULATION"); rightText = TheText.Get("not defined");
} }
AsciiToUnicode(provider, unicodeTemp);
rightText = unicodeTemp;
} }
break; break;
case MENUACTION_SPEAKERCONF: { case MENUACTION_SPEAKERCONF: {

View File

@ -24,7 +24,7 @@ enum {
ATOMIC_FLAG_NOCULL = 0x800, ATOMIC_FLAG_NOCULL = 0x800,
}; };
enum eVehicleType { enum eVehicleType : uint8{
VEHICLE_TYPE_CAR, VEHICLE_TYPE_CAR,
VEHICLE_TYPE_BOAT, VEHICLE_TYPE_BOAT,
VEHICLE_TYPE_TRAIN, VEHICLE_TYPE_TRAIN,

View File

@ -129,7 +129,7 @@ CBike::CBike(int32 id, uint8 CreatedBy)
m_fTireTemperature = 1.0f; m_fTireTemperature = 1.0f;
m_fBrakeDestabilization = 0.0f; m_fBrakeDestabilization = 0.0f;
field_490 = 0; m_fVelocityChangeForAudio = 0;
for(i = 0; i < 2; i++){ for(i = 0; i < 2; i++){
m_aWheelRotation[i] = 0.0f; m_aWheelRotation[i] = 0.0f;

View File

@ -77,7 +77,7 @@ public:
int16 m_doingBurnout; int16 m_doingBurnout;
float m_fTireTemperature; float m_fTireTemperature;
float m_fBrakeDestabilization; float m_fBrakeDestabilization;
uint32 field_490; float m_fVelocityChangeForAudio;
float m_fFireBlowUpTimer; float m_fFireBlowUpTimer;
CPhysical *m_aGroundPhysical[4]; CPhysical *m_aGroundPhysical[4];
CVector m_aGroundOffset[4]; CVector m_aGroundOffset[4];