2021-01-23 22:13:40 +00:00
# include "common.h"
2020-05-16 17:29:13 +00:00
# include "AudioManager.h"
# include "audio_enums.h"
# include "Automobile.h"
# include "Boat.h"
# include "Bridge.h"
# include "Camera.h"
# include "Cranes.h"
# include "DMAudio.h"
# include "Entity.h"
# include "Explosion.h"
# include "Fire.h"
# include "Garages.h"
# include "General.h"
# include "HandlingMgr.h"
# include "Heli.h"
# include "ModelIndices.h"
# include "MusicManager.h"
# include "Pad.h"
2021-08-29 06:42:32 +00:00
# include "ParticleObject.h"
2020-05-16 17:29:13 +00:00
# include "Ped.h"
# include "Physical.h"
# include "Placeable.h"
# include "Plane.h"
# include "PlayerPed.h"
# include "Pools.h"
# include "Projectile.h"
# include "ProjectileInfo.h"
# include "Replay.h"
# include "Stats.h"
# include "SurfaceTable.h"
# include "Train.h"
# include "Transmission.h"
# include "Vehicle.h"
# include "WaterCannon.h"
# include "Weather.h"
# include "ZoneCull.h"
# include "sampman.h"
2020-09-18 17:32:25 +00:00
# include "Bike.h"
2020-09-22 00:28:14 +00:00
# include "WindModifiers.h"
2020-09-22 16:32:05 +00:00
# include "Fluff.h"
2020-10-18 20:03:03 +00:00
# include "Script.h"
2021-01-16 13:44:59 +00:00
# include "Wanted.h"
2020-09-14 18:47:00 +00:00
2021-05-23 13:47:16 +00:00
# ifndef GTA_PS2
# define CHANNEL_PLAYER_VEHICLE_ENGINE m_nActiveSamples
# endif
2020-05-16 17:29:13 +00:00
void
2021-07-27 21:41:34 +00:00
cAudioManager : : PreInitialiseGameSpecificSetup ( )
2020-05-16 17:29:13 +00:00
{
2020-09-20 22:55:22 +00:00
BankStartOffset [ SFX_BANK_0 ] = SAMPLEBANK_START ;
2020-06-06 00:45:24 +00:00
# ifdef GTA_PS2
BankStartOffset [ SAMPLEBANK_CAR_PACARD ] = SFX_CAR_ACCEL_1 ;
BankStartOffset [ SAMPLEBANK_CAR_PATHFINDER ] = SFX_CAR_ACCEL_2 ;
BankStartOffset [ SAMPLEBANK_CAR_PORSCHE ] = SFX_CAR_ACCEL_3 ;
BankStartOffset [ SAMPLEBANK_CAR_SPIDER ] = SFX_CAR_ACCEL_4 ;
BankStartOffset [ SAMPLEBANK_CAR_MERC ] = SFX_CAR_ACCEL_5 ;
BankStartOffset [ SAMPLEBANK_CAR_MACKTRUCK ] = SFX_CAR_ACCEL_6 ;
BankStartOffset [ SAMPLEBANK_CAR_HOTROD ] = SFX_CAR_ACCEL_7 ;
BankStartOffset [ SAMPLEBANK_CAR_COBRA ] = SFX_CAR_ACCEL_8 ;
BankStartOffset [ SAMPLEBANK_CAR_NONE ] = SFX_CAR_ACCEL_9 ;
BankStartOffset [ SAMPLEBANK_FRONTEND ] = SFX_PAGE_CHANGE_AND_BACK_LEFT ;
BankStartOffset [ SAMPLEBANK_TRAIN ] = SFX_TRAIN_STATION_AMBIENCE_LOOP ;
BankStartOffset [ SAMPLEBANK_BUILDING_CLUB_1 ] = SFX_CLUB_1 ;
BankStartOffset [ SAMPLEBANK_BUILDING_CLUB_2 ] = SFX_CLUB_2 ;
BankStartOffset [ SAMPLEBANK_BUILDING_CLUB_3 ] = SFX_CLUB_3 ;
BankStartOffset [ SAMPLEBANK_BUILDING_CLUB_4 ] = SFX_CLUB_4 ;
BankStartOffset [ SAMPLEBANK_BUILDING_CLUB_5 ] = SFX_CLUB_5 ;
BankStartOffset [ SAMPLEBANK_BUILDING_CLUB_6 ] = SFX_CLUB_6 ;
BankStartOffset [ SAMPLEBANK_BUILDING_CLUB_7 ] = SFX_CLUB_7 ;
BankStartOffset [ SAMPLEBANK_BUILDING_CLUB_8 ] = SFX_CLUB_8 ;
BankStartOffset [ SAMPLEBANK_BUILDING_CLUB_9 ] = SFX_CLUB_9 ;
BankStartOffset [ SAMPLEBANK_BUILDING_CLUB_10 ] = SFX_CLUB_10 ;
BankStartOffset [ SAMPLEBANK_BUILDING_CLUB_11 ] = SFX_CLUB_11 ;
BankStartOffset [ SAMPLEBANK_BUILDING_CLUB_12 ] = SFX_CLUB_12 ;
BankStartOffset [ SAMPLEBANK_BUILDING_CLUB_RAGGA ] = SFX_CLUB_RAGGA ;
BankStartOffset [ SAMPLEBANK_BUILDING_STRIP_CLUB_1 ] = SFX_STRIP_CLUB_1 ;
BankStartOffset [ SAMPLEBANK_BUILDING_STRIP_CLUB_2 ] = SFX_STRIP_CLUB_2 ;
BankStartOffset [ SAMPLEBANK_BUILDING_WORKSHOP ] = SFX_WORKSHOP_1 ;
BankStartOffset [ SAMPLEBANK_BUILDING_PIANO_BAR ] = SFX_PIANO_BAR_1 ;
BankStartOffset [ SAMPLEBANK_BUILDING_SAWMILL ] = SFX_SAWMILL_LOOP ;
BankStartOffset [ SAMPLEBANK_BUILDING_DOG_FOOD_FACTORY ] = SFX_DOG_FOOD_FACTORY ;
BankStartOffset [ SAMPLEBANK_BUILDING_LAUNDERETTE ] = SFX_LAUNDERETTE_LOOP ;
BankStartOffset [ SAMPLEBANK_BUILDING_RESTAURANT_CHINATOWN ] = SFX_RESTAURANT_CHINATOWN ;
BankStartOffset [ SAMPLEBANK_BUILDING_RESTAURANT_ITALY ] = SFX_RESTAURANT_ITALY ;
BankStartOffset [ SAMPLEBANK_BUILDING_RESTAURANT_GENERIC_1 ] = SFX_RESTAURANT_GENERIC_1 ;
BankStartOffset [ SAMPLEBANK_BUILDING_RESTAURANT_GENERIC_2 ] = SFX_RESTAURANT_GENERIC_2 ;
BankStartOffset [ SAMPLEBANK_BUILDING_AIRPORT ] = SFX_AIRPORT_ANNOUNCEMENT_1 ;
BankStartOffset [ SAMPLEBANK_BUILDING_SHOP ] = SFX_SHOP_LOOP ;
BankStartOffset [ SAMPLEBANK_BUILDING_CINEMA ] = SFX_CINEMA_BASS_1 ;
BankStartOffset [ SAMPLEBANK_BUILDING_DOCKS ] = SFX_DOCKS_FOGHORN ;
BankStartOffset [ SAMPLEBANK_BUILDING_HOME ] = SFX_HOME_1 ;
BankStartOffset [ SAMPLEBANK_BUILDING_PORN_1 ] = SFX_PORN_1_LOOP ;
BankStartOffset [ SAMPLEBANK_BUILDING_PORN_2 ] = SFX_PORN_2_LOOP ;
BankStartOffset [ SAMPLEBANK_BUILDING_PORN_3 ] = SFX_PORN_3_LOOP ;
BankStartOffset [ SAMPLEBANK_BUILDING_POLICE_BALL ] = SFX_POLICE_BALL_1 ;
BankStartOffset [ SAMPLEBANK_BUILDING_BANK_ALARM ] = SFX_BANK_ALARM_1 ;
BankStartOffset [ SAMPLEBANK_BUILDING_RAVE_INDUSTRIAL ] = SFX_RAVE_INDUSTRIAL ;
BankStartOffset [ SAMPLEBANK_BUILDING_RAVE_COMMERCIAL ] = SFX_RAVE_COMMERCIAL ;
BankStartOffset [ SAMPLEBANK_BUILDING_RAVE_SUBURBAN ] = SFX_RAVE_SUBURBAN ;
BankStartOffset [ SAMPLEBANK_BUILDING_RAVE_COMMERCIAL_2 ] = SFX_RAVE_COMMERCIAL_2 ;
BankStartOffset [ SAMPLEBANK_BUILDING_39 ] = SFX_CLUB_1_1 ;
BankStartOffset [ SAMPLEBANK_BUILDING_40 ] = SFX_CLUB_1_2 ;
BankStartOffset [ SAMPLEBANK_BUILDING_41 ] = SFX_CLUB_1_3 ;
BankStartOffset [ SAMPLEBANK_BUILDING_42 ] = SFX_CLUB_1_4 ;
BankStartOffset [ SAMPLEBANK_BUILDING_43 ] = SFX_CLUB_1_5 ;
BankStartOffset [ SAMPLEBANK_BUILDING_44 ] = SFX_CLUB_1_6 ;
BankStartOffset [ SAMPLEBANK_BUILDING_45 ] = SFX_CLUB_1_7 ;
BankStartOffset [ SAMPLEBANK_BUILDING_46 ] = SFX_CLUB_1_8 ;
BankStartOffset [ SAMPLEBANK_BUILDING_47 ] = SFX_CLUB_1_9 ;
BankStartOffset [ SAMPLEBANK_EXTRAS ] = SFX_EXPLOSION_1 ;
# endif // GTA_PS2
2020-09-20 22:55:22 +00:00
BankStartOffset [ SFX_BANK_PED_COMMENTS ] = SAMPLEBANK_PED_START ;
2020-05-16 17:29:13 +00:00
}
void
cAudioManager : : PostInitialiseGameSpecificSetup ( )
{
m_nFireAudioEntity = CreateEntity ( AUDIOTYPE_FIRE , & gFireManager ) ;
if ( m_nFireAudioEntity > = 0 )
2021-05-22 10:08:26 +00:00
SetEntityStatus ( m_nFireAudioEntity , TRUE ) ;
2020-05-16 17:29:13 +00:00
m_nCollisionEntity = CreateEntity ( AUDIOTYPE_COLLISION , ( void * ) 1 ) ;
if ( m_nCollisionEntity > = 0 )
2021-05-22 10:08:26 +00:00
SetEntityStatus ( m_nCollisionEntity , TRUE ) ;
2020-05-16 17:29:13 +00:00
m_nFrontEndEntity = CreateEntity ( AUDIOTYPE_FRONTEND , ( void * ) 1 ) ;
if ( m_nFrontEndEntity > = 0 )
2021-05-22 10:08:26 +00:00
SetEntityStatus ( m_nFrontEndEntity , TRUE ) ;
2020-05-16 17:29:13 +00:00
m_nProjectileEntity = CreateEntity ( AUDIOTYPE_PROJECTILE , ( void * ) 1 ) ;
if ( m_nProjectileEntity > = 0 )
2021-05-22 10:08:26 +00:00
SetEntityStatus ( m_nProjectileEntity , TRUE ) ;
2020-05-16 17:29:13 +00:00
m_nWaterCannonEntity = CreateEntity ( AUDIOTYPE_WATERCANNON , ( void * ) 1 ) ;
if ( m_nWaterCannonEntity > = 0 )
2021-05-22 10:08:26 +00:00
SetEntityStatus ( m_nWaterCannonEntity , TRUE ) ;
2020-05-16 17:29:13 +00:00
m_nPoliceChannelEntity = CreateEntity ( AUDIOTYPE_POLICERADIO , ( void * ) 1 ) ;
if ( m_nPoliceChannelEntity > = 0 )
2021-05-22 10:08:26 +00:00
SetEntityStatus ( m_nPoliceChannelEntity , TRUE ) ;
2021-08-21 10:02:07 +00:00
2020-06-08 11:29:55 +00:00
m_nEscalatorEntity = CreateEntity ( AUDIOTYPE_ESCALATOR , ( void * ) 1 ) ;
if ( m_nEscalatorEntity > = 0 )
2021-05-22 10:08:26 +00:00
SetEntityStatus ( m_nEscalatorEntity , TRUE ) ;
2020-06-08 11:29:55 +00:00
m_nExtraSoundsEntity = CreateEntity ( AUDIOTYPE_EXTRA_SOUNDS , ( void * ) 1 ) ;
if ( m_nExtraSoundsEntity > = 0 )
2021-05-22 10:08:26 +00:00
SetEntityStatus ( m_nExtraSoundsEntity , TRUE ) ;
2020-06-08 11:29:55 +00:00
2021-08-21 10:02:07 +00:00
# ifdef GTA_BRIDGE
m_nBridgeEntity = CreateEntity ( AUDIOTYPE_BRIDGE , ( void * ) 1 ) ;
if ( m_nBridgeEntity > = 0 )
SetEntityStatus ( m_nBridgeEntity , TRUE ) ;
# endif // GTA_BRIDGE
2020-05-16 17:29:13 +00:00
2021-08-21 10:02:07 +00:00
for ( int i = 0 ; i < MISSION_AUDIO_SLOTS ; i + + ) {
m_nMissionAudioSampleIndex [ i ] = NO_SAMPLE ;
m_nMissionAudioLoadingStatus [ i ] = LOADING_STATUS_NOT_LOADED ;
m_nMissionAudioPlayStatus [ i ] = PLAY_STATUS_STOPPED ;
m_bIsMissionAudioPlaying [ i ] = FALSE ;
m_bIsMissionAudioAllowedToPlay [ i ] = FALSE ;
m_bIsMissionAudio2D [ i ] = TRUE ;
m_nMissionAudioFramesToPlay [ i ] = 0 ;
m_bIsMissionAudioPhoneCall [ i ] = FALSE ;
m_nGlobalSfxVolumeMultiplier = 127 ;
}
2020-06-08 07:34:31 +00:00
2020-05-16 17:29:13 +00:00
ResetAudioLogicTimers ( CTimer : : GetTimeInMilliseconds ( ) ) ;
2021-05-22 10:08:26 +00:00
m_bIsPlayerShutUp = FALSE ;
2020-11-02 09:05:23 +00:00
m_nPlayerMood = PLAYER_MOOD_CALM ;
2020-10-12 15:09:58 +00:00
m_nPlayerMoodTimer = 0 ;
2020-05-16 17:29:13 +00:00
}
2020-10-12 15:09:58 +00:00
2020-05-16 17:29:13 +00:00
void
cAudioManager : : PreTerminateGameSpecificShutdown ( )
{
2020-06-08 11:29:55 +00:00
# ifdef GTA_BRIDGE
2020-05-16 17:29:13 +00:00
if ( m_nBridgeEntity > = 0 ) {
DestroyEntity ( m_nBridgeEntity ) ;
m_nBridgeEntity = AEHANDLE_NONE ;
}
2020-06-08 11:29:55 +00:00
# endif
if ( m_nEscalatorEntity > = 0 ) {
DestroyEntity ( m_nEscalatorEntity ) ;
m_nEscalatorEntity = AEHANDLE_NONE ;
}
if ( m_nExtraSoundsEntity > = 0 ) {
DestroyEntity ( m_nExtraSoundsEntity ) ;
m_nExtraSoundsEntity = AEHANDLE_NONE ;
}
2020-05-16 17:29:13 +00:00
if ( m_nPoliceChannelEntity > = 0 ) {
DestroyEntity ( m_nPoliceChannelEntity ) ;
m_nPoliceChannelEntity = AEHANDLE_NONE ;
}
if ( m_nWaterCannonEntity > = 0 ) {
DestroyEntity ( m_nWaterCannonEntity ) ;
m_nWaterCannonEntity = AEHANDLE_NONE ;
}
if ( m_nFireAudioEntity > = 0 ) {
DestroyEntity ( m_nFireAudioEntity ) ;
m_nFireAudioEntity = AEHANDLE_NONE ;
}
if ( m_nCollisionEntity > = 0 ) {
DestroyEntity ( m_nCollisionEntity ) ;
m_nCollisionEntity = AEHANDLE_NONE ;
}
if ( m_nFrontEndEntity > = 0 ) {
DestroyEntity ( m_nFrontEndEntity ) ;
m_nFrontEndEntity = AEHANDLE_NONE ;
}
if ( m_nProjectileEntity > = 0 ) {
DestroyEntity ( m_nProjectileEntity ) ;
m_nProjectileEntity = AEHANDLE_NONE ;
}
}
void
cAudioManager : : PostTerminateGameSpecificShutdown ( )
{
;
}
void
cAudioManager : : ResetAudioLogicTimers ( uint32 timer )
{
2021-08-25 05:49:58 +00:00
for ( uint32 i = 0 ; i < m_nAudioEntitiesCount ; i + + ) {
if ( m_asAudioEntities [ m_aAudioEntityOrderList [ i ] ] . m_nType = = AUDIOTYPE_PHYSICAL ) {
CPed * ped = ( CPed * ) m_asAudioEntities [ m_aAudioEntityOrderList [ i ] ] . m_pEntity ;
2020-05-16 17:29:13 +00:00
if ( ped - > IsPed ( ) ) {
ped - > m_lastSoundStart = timer ;
ped - > m_soundStart = timer + m_anRandomTable [ 0 ] % 3000 ;
}
}
}
2020-06-08 07:34:31 +00:00
ClearMissionAudio ( 0 ) ;
ClearMissionAudio ( 1 ) ;
2021-05-23 13:47:16 +00:00
SampleManager . StopChannel ( CHANNEL_POLICE_RADIO ) ;
2020-05-16 17:29:13 +00:00
}
void
2021-07-27 21:41:34 +00:00
cAudioManager : : ProcessReverb ( )
2020-05-16 17:29:13 +00:00
{
2021-08-19 07:53:14 +00:00
# ifdef AUDIO_REVERB
2020-05-16 17:29:13 +00:00
# ifdef FIX_BUGS
2021-05-23 13:47:16 +00:00
const uint32 numChannels = NUM_CHANNELS_GENERIC ;
2020-05-16 17:29:13 +00:00
# else
2021-05-23 13:47:16 +00:00
const uint32 numChannels = NUM_CHANNELS_GENERIC + 1 ;
2020-05-16 17:29:13 +00:00
# endif
2020-10-18 20:03:03 +00:00
if ( SampleManager . UpdateReverb ( ) & & m_bDynamicAcousticModelingStatus ) {
2021-05-23 13:47:16 +00:00
# ifndef GTA_PS2
2020-10-18 20:03:03 +00:00
for ( uint32 i = 0 ; i < numChannels ; i + + ) {
2021-08-20 11:28:55 +00:00
if ( m_asActiveSamples [ i ] . m_bReverb )
2021-05-22 10:08:26 +00:00
SampleManager . SetChannelReverbFlag ( i , TRUE ) ;
2020-05-16 17:29:13 +00:00
}
2021-05-23 13:47:16 +00:00
# endif
2020-05-16 17:29:13 +00:00
}
2021-08-19 07:53:14 +00:00
# endif // AUDIO_REVERB
2020-05-16 17:29:13 +00:00
}
float
2021-07-27 21:41:34 +00:00
cAudioManager : : GetDistanceSquared ( const CVector & v )
2020-05-16 17:29:13 +00:00
{
const CVector & c = TheCamera . GetPosition ( ) ;
return sq ( v . x - c . x ) + sq ( v . y - c . y ) + sq ( ( v . z - c . z ) * 0.2f ) ;
}
void
2021-05-22 10:08:26 +00:00
cAudioManager : : CalculateDistance ( bool8 & distCalculated , float dist )
2020-05-16 17:29:13 +00:00
{
if ( ! distCalculated ) {
2020-12-25 15:22:18 +00:00
m_sQueueSample . m_fDistance = Sqrt ( dist ) ;
2021-05-22 10:08:26 +00:00
distCalculated = TRUE ;
2020-05-16 17:29:13 +00:00
}
}
2021-07-27 21:41:34 +00:00
CVehicle *
cAudioManager : : FindVehicleOfPlayer ( )
2020-09-09 16:37:44 +00:00
{
CVehicle * vehicle = FindPlayerVehicle ( ) ;
CPlayerPed * ped = FindPlayerPed ( ) ;
if ( vehicle = = nil & & ped ! = nil ) {
CEntity * attachedTo = ped - > m_attachedTo ;
if ( attachedTo & & attachedTo - > IsVehicle ( ) )
vehicle = ( CVehicle * ) attachedTo ;
}
return vehicle ;
}
2020-05-16 17:29:13 +00:00
void
cAudioManager : : ProcessSpecial ( )
{
2020-11-04 08:37:17 +00:00
CPlayerPed * playerPed ;
2021-08-18 15:37:43 +00:00
CVehicle * remoteVehicle ;
2020-10-18 20:03:03 +00:00
2021-08-25 05:49:58 +00:00
if ( m_bIsPaused ) {
if ( ! m_bWasPaused ) {
2020-05-18 17:17:24 +00:00
SampleManager . SetEffectsFadeVolume ( MAX_VOLUME ) ;
SampleManager . SetMusicFadeVolume ( MAX_VOLUME ) ;
2020-05-16 17:29:13 +00:00
}
} else {
2020-10-18 20:03:03 +00:00
if ( ! CReplay : : IsPlayingBack ( ) )
ProcessPlayerMood ( ) ;
2021-08-18 15:37:43 +00:00
remoteVehicle = CWorld : : Players [ CWorld : : PlayerInFocus ] . m_pRemoteVehicle ;
2020-10-18 20:03:03 +00:00
playerPed = FindPlayerPed ( ) ;
2021-08-18 15:37:43 +00:00
if ( playerPed ) {
2020-10-18 20:03:03 +00:00
if ( playerPed - > m_audioEntityId > = 0 & & m_asAudioEntities [ playerPed - > m_audioEntityId ] . m_bIsUsed ) {
2021-08-18 15:37:43 +00:00
if ( ! playerPed - > EnteringCar ( ) & & ! playerPed - > bInVehicle & & ! remoteVehicle )
SampleManager . StopChannel ( CHANNEL_PLAYER_VEHICLE_ENGINE ) ;
2020-10-18 20:03:03 +00:00
}
2020-05-16 17:29:13 +00:00
}
}
}
void
cAudioManager : : ProcessEntity ( int32 id )
{
2020-12-25 06:59:32 +00:00
if ( m_asAudioEntities [ id ] . m_bStatus ) {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nEntityIndex = id ;
switch ( m_asAudioEntities [ id ] . m_nType ) {
case AUDIOTYPE_PHYSICAL :
2021-08-25 05:49:58 +00:00
if ( ! m_bIsPaused ) {
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2020-05-16 17:29:13 +00:00
ProcessPhysical ( id ) ;
}
break ;
case AUDIOTYPE_EXPLOSION :
2021-08-25 05:49:58 +00:00
if ( ! m_bIsPaused ) {
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2020-05-16 17:29:13 +00:00
ProcessExplosions ( id ) ;
}
break ;
case AUDIOTYPE_FIRE :
2021-08-25 05:49:58 +00:00
if ( ! m_bIsPaused ) {
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2020-05-16 17:29:13 +00:00
ProcessFires ( id ) ;
}
break ;
case AUDIOTYPE_WEATHER :
2021-08-25 05:49:58 +00:00
if ( ! m_bIsPaused ) {
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2020-09-22 00:28:14 +00:00
if ( CGame : : currArea = = AREA_MAIN_MAP | | CGame : : currArea = = AREA_EVERYWHERE )
ProcessWeather ( id ) ;
2020-05-16 17:29:13 +00:00
}
break ;
2020-05-26 15:25:34 +00:00
/* case AUDIOTYPE_CRANE:
2021-08-25 05:49:58 +00:00
if ( ! m_bIsPaused ) {
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2020-05-16 17:29:13 +00:00
ProcessCrane ( ) ;
}
2020-05-26 15:25:34 +00:00
break ; */
2020-05-16 17:29:13 +00:00
case AUDIOTYPE_SCRIPTOBJECT :
2021-08-25 05:49:58 +00:00
if ( ! m_bIsPaused ) {
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2020-05-16 17:29:13 +00:00
ProcessScriptObject ( id ) ;
}
break ;
2020-05-26 15:25:34 +00:00
# ifdef GTA_BRIDGE
2020-05-16 17:29:13 +00:00
case AUDIOTYPE_BRIDGE :
2021-08-25 05:49:58 +00:00
if ( ! m_bIsPaused ) {
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2020-05-16 17:29:13 +00:00
ProcessBridge ( ) ;
}
break ;
2020-05-26 15:25:34 +00:00
# endif
2020-05-16 17:29:13 +00:00
case AUDIOTYPE_FRONTEND :
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( FALSE ) ;
2020-05-16 17:29:13 +00:00
ProcessFrontEnd ( ) ;
break ;
case AUDIOTYPE_PROJECTILE :
2021-08-25 05:49:58 +00:00
if ( ! m_bIsPaused ) {
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2020-05-16 17:29:13 +00:00
ProcessProjectiles ( ) ;
}
break ;
case AUDIOTYPE_GARAGE :
2021-08-25 05:49:58 +00:00
if ( ! m_bIsPaused )
2020-05-16 17:29:13 +00:00
ProcessGarages ( ) ;
break ;
case AUDIOTYPE_FIREHYDRANT :
2021-08-25 05:49:58 +00:00
if ( ! m_bIsPaused ) {
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2020-05-16 17:29:13 +00:00
ProcessFireHydrant ( ) ;
}
break ;
case AUDIOTYPE_WATERCANNON :
2021-08-25 05:49:58 +00:00
if ( ! m_bIsPaused ) {
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2020-05-16 17:29:13 +00:00
ProcessWaterCannon ( id ) ;
}
break ;
2020-09-22 00:28:14 +00:00
case AUDIOTYPE_ESCALATOR :
2021-08-25 05:49:58 +00:00
if ( ! m_bIsPaused ) {
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2020-09-22 16:32:05 +00:00
ProcessEscalators ( ) ;
2020-09-22 00:28:14 +00:00
}
break ;
case AUDIOTYPE_EXTRA_SOUNDS :
2021-08-25 05:49:58 +00:00
if ( ! m_bIsPaused ) {
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2020-09-22 00:28:14 +00:00
ProcessExtraSounds ( ) ;
}
break ;
2020-05-16 17:29:13 +00:00
default :
return ;
}
}
}
void
cAudioManager : : ProcessPhysical ( int32 id )
{
CPhysical * entity = ( CPhysical * ) m_asAudioEntities [ id ] . m_pEntity ;
if ( entity ) {
switch ( entity - > GetType ( ) ) {
case ENTITY_TYPE_VEHICLE :
ProcessVehicle ( ( CVehicle * ) m_asAudioEntities [ id ] . m_pEntity ) ;
break ;
case ENTITY_TYPE_PED :
ProcessPed ( ( CPhysical * ) m_asAudioEntities [ id ] . m_pEntity ) ;
break ;
default :
return ;
}
}
}
2021-08-29 06:42:32 +00:00
enum
{
CAR_HELI_MAX_DIST = 250 ,
CAR_HELI_ENGINE_MAX_DIST = 140 ,
CAR_HELI_ENGINE_START_MAX_DIST = 30 ,
CAR_HELI_ENGINE_START_VOLUME = 70 ,
CAR_HELI_SEAPLANE_MAX_DIST = 20 ,
CAR_HELI_SEAPLANE_VOLUME = 100 ,
CAR_HELI_REAR_MAX_DIST = 27 ,
CAR_HELI_REAR_VOLUME = 25 ,
FLAT_TYRE_MAX_DIST = 60 ,
FLAT_TYRE_VOLUME = 100 ,
RAIN_ON_VEHICLE_MAX_DIST = 22 ,
RAIN_ON_VEHICLE_VOLUME = 30 ,
REVERSE_GEAR_MAX_DIST = 30 ,
REVERSE_GEAR_VOLUME = 24 ,
MODEL_CAR_ENGINE_MAX_DIST = 35 ,
MODEL_CAR_ENGINE_VOLUME = 90 ,
MODEL_HELI_ENGINE_VOLUME = 70 ,
VEHICLE_ROAD_NOISE_MAX_DIST = 95 ,
VEHICLE_ROAD_NOISE_VOLUME = 30 ,
WET_ROAD_NOISE_MAX_DIST = 30 ,
WET_ROAD_NOISE_VOLUME = 23 ,
VEHICLE_ENGINE_MAX_DIST = 50 ,
VEHICLE_ENGINE_BASE_VOLUME = 75 ,
VEHICLE_ENGINE_FULL_VOLUME = 90 ,
CESNA_IDLE_MAX_DIST = 200 ,
CESNA_REV_MAX_DIST = 90 ,
CESNA_VOLUME = 80 ,
PLAYER_VEHICLE_ENGINE_VOLUME = 120 ,
VEHICLE_SKIDDING_MAX_DIST = 40 ,
VEHICLE_SKIDDING_VOLUME = 50 ,
VEHICLE_HORN_MAX_DIST = 40 ,
VEHICLE_HORN_VOLUME = 80 ,
VEHICLE_SIREN_MAX_DIST = 110 ,
VEHICLE_SIREN_VOLUME = 80 ,
VEHICLE_REVERSE_WARNING_MAX_DIST = 50 ,
VEHICLE_REVERSE_WARNING_VOLUME = 60 ,
VEHICLE_DOORS_MAX_DIST = 40 ,
VEHICLE_DOORS_VOLUME = 100 ,
AIR_BRAKES_MAX_DIST = 30 ,
AIR_BRAKES_VOLUME = 70 ,
ENGINE_DAMAGE_MAX_DIST = 40 ,
ENGINE_DAMAGE_VOLUME = 6 ,
ENGINE_DAMAGE_ON_FIRE_VOLUME = 60 ,
CAR_BOMB_TICK_MAX_DIST = 40 ,
CAR_BOMB_TICK_VOLUME = 60 ,
VEHICLE_ONE_SHOT_HELI_BLADE_MAX_DIST = 35 ,
VEHICLE_ONE_SHOT_HELI_BLADE_VOLUME = 70 ,
VEHICLE_ONE_SHOT_CAR_TYRE_POP_MAX_DIST = 60 ,
VEHICLE_ONE_SHOT_CAR_TYRE_POP_VOLUME = 117 ,
VEHICLE_ONE_SHOT_DOOR_MAX_DIST = 50 ,
VEHICLE_ONE_SHOT_DOOR_OPEN_VOLUME = 122 ,
VEHICLE_ONE_SHOT_DOOR_CLOSE_VOLUME = 117 ,
VEHICLE_ONE_SHOT_WINDSHIELD_CRACK_MAX_DIST = 40 ,
VEHICLE_ONE_SHOT_WINDSHIELD_CRACK_VOLUME = 80 ,
VEHICLE_ONE_SHOT_CAR_JUMP_MAX_DIST = 35 ,
VEHICLE_ONE_SHOT_CAR_JUMP_VOLUME = 80 ,
VEHICLE_ONE_SHOT_CAR_ENGINE_START_MAX_DIST = 40 ,
VEHICLE_ONE_SHOT_CAR_ENGINE_START_VOLUME = 60 ,
VEHICLE_ONE_SHOT_CAR_LIGHT_BREAK_VOLUME = 30 ,
VEHICLE_ONE_SHOT_CAR_HYDRAULIC_MAX_DIST = 35 ,
VEHICLE_ONE_SHOT_CAR_HYDRAULIC_VOLUME = 55 ,
VEHICLE_ONE_SHOT_CAR_SPLASH_MAX_DIST = 60 ,
VEHICLE_ONE_SHOT_CAR_SPLASH_VOLUME = 35 ,
VEHICLE_ONE_SHOT_BOAT_SLOWDOWN_MAX_DIST = 50 ,
VEHICLE_ONE_SHOT_TRAIN_DOOR_MAX_DIST = 35 ,
VEHICLE_ONE_SHOT_TRAIN_DOOR_VOLUME = 70 ,
VEHICLE_ONE_SHOT_CAR_TANK_TURRET_MAX_DIST = 40 ,
VEHICLE_ONE_SHOT_CAR_TANK_TURRET_VOLUME = 90 ,
VEHICLE_ONE_SHOT_CAR_BOMB_TICK_MAX_DIST = 30 ,
VEHICLE_ONE_SHOT_CAR_BOMB_TICK_VOLUME = CAR_BOMB_TICK_VOLUME ,
VEHICLE_ONE_SHOT_PLANE_ON_GROUND_MAX_DIST = 180 ,
VEHICLE_ONE_SHOT_PLANE_ON_GROUND_VOLUME = 75 ,
VEHICLE_ONE_SHOT_WEAPON_SHOT_FIRED_MAX_DIST = 120 ,
VEHICLE_ONE_SHOT_WEAPON_SHOT_FIRED_VOLUME = 65 ,
VEHICLE_ONE_SHOT_WEAPON_HIT_VEHICLE_MAX_DIST = 40 ,
VEHICLE_ONE_SHOT_WEAPON_HIT_VEHICLE_VOLUME = 90 ,
VEHICLE_ONE_SHOT_BOMB_ARMED_MAX_DIST = 50 ,
VEHICLE_ONE_SHOT_BOMB_ARMED_VOLUME = 50 ,
VEHICLE_ONE_SHOT_WATER_FALL_MAX_DIST = 40 ,
VEHICLE_ONE_SHOT_WATER_FALL_VOLUME = 90 ,
VEHICLE_ONE_SHOT_SPLATTER_MAX_DIST = 40 ,
VEHICLE_ONE_SHOT_SPLATTER_VOLUME = 55 ,
VEHICLE_ONE_SHOT_CAR_PED_COLLISION_MAX_DIST = 40 ,
TRAIN_NOISE_FAR_MAX_DIST = 300 ,
TRAIN_NOISE_NEAR_MAX_DIST = 70 ,
TRAIN_NOISE_VOLUME = 75 ,
BOAT_ENGINE_MAX_DIST = 90 ,
BOAT_ENGINE_REEFER_IDLE_VOLUME = 80 ,
BOAT_ENGINE_LOW_ACCEL_VOLUME = 45 ,
BOAT_ENGINE_HIGH_ACCEL_MIN_VOLUME = 15 ,
BOAT_ENGINE_HIGH_ACCEL_VOLUME_MULT = 105 ,
BOAT_MOVING_OVER_WATER_MAX_DIST = 50 ,
BOAT_MOVING_OVER_WATER_VOLUME = 30 ,
JUMBO_MAX_DIST = 440 ,
JUMBO_RUMBLE_SOUND_MAX_DIST = 240 ,
JUMBO_ENGINE_SOUND_MAX_DIST = 180 ,
JUMBO_WHINE_SOUND_MAX_DIST = 170 ,
PED_ONE_SHOT_SHIRT_FLAP_MAX_DIST = 15 ,
PED_ONE_SHOT_SHIRT_FLAP_VOLUME = 90 ,
PED_ONE_SHOT_MINIGUN_MAX_DIST = 150 ,
PED_ONE_SHOT_MINIGUN_VOLUME = MAX_VOLUME ,
PED_ONE_SHOT_SKATING_MAX_DIST = 20 ,
PED_ONE_SHOT_SKATING_VOLUME = 70 ,
PED_ONE_SHOT_STEP_MAX_DIST = 20 ,
PED_ONE_SHOT_STEP_VOLUME = 45 ,
PED_ONE_SHOT_FALL_MAX_DIST = 30 ,
PED_ONE_SHOT_FALL_VOLUME = 80 ,
PED_ONE_SHOT_PUNCH_MAX_DIST = 30 ,
PED_ONE_SHOT_PUNCH_VOLUME = 100 ,
PED_ONE_SHOT_WEAPON_COLT45_VOLUME = 90 ,
PED_ONE_SHOT_WEAPON_UZI_VOLUME = 70 ,
PED_ONE_SHOT_WEAPON_SHOTGUN_VOLUME = 100 ,
PED_ONE_SHOT_WEAPON_M4_VOLUME = 90 ,
PED_ONE_SHOT_WEAPON_M16_VOLUME = MAX_VOLUME ,
PED_ONE_SHOT_WEAPON_SNIPERRIFLE_VOLUME = 110 ,
PED_ONE_SHOT_WEAPON_ROCKETLAUNCHER_VOLUME = 80 ,
PED_ONE_SHOT_WEAPON_FLAMETHROWER_MAX_DIST = 60 ,
PED_ONE_SHOT_WEAPON_FLAMETHROWER_VOLUME = 90 ,
PED_ONE_SHOT_WEAPON_RELOAD_MAX_DIST = 30 ,
PED_ONE_SHOT_WEAPON_RELOAD_VOLUME = 75 ,
PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST = 120 ,
PED_ONE_SHOT_WEAPON_BULLET_ECHO_VOLUME = 80 ,
PED_ONE_SHOT_WEAPON_FLAMETHROWER_FIRE_MAX_DIST = 60 ,
PED_ONE_SHOT_WEAPON_FLAMETHROWER_FIRE_VOLUME = 70 ,
PED_ONE_SHOT_WEAPON_CHAINSAW_MAX_DIST = 60 ,
PED_ONE_SHOT_WEAPON_CHAINSAW_IDLE_MAX_DIST = 50 ,
PED_ONE_SHOT_WEAPON_CHAINSAW_VOLUME = 100 ,
PED_ONE_SHOT_WEAPON_HIT_PED_MAX_DIST = 30 ,
PED_ONE_SHOT_WEAPON_HIT_PED_VOLUME = 90 ,
PED_ONE_SHOT_SPLASH_MAX_DIST = 40 ,
PED_ONE_SHOT_SPLASH_PED_VOLUME = 70 ,
PED_COMMENT_MAX_DIST = 40 ,
PED_COMMENT_POLICE_HELI_MAX_DIST = 400 ,
EXPLOSION_DEFAULT_MAX_DIST = 200 ,
EXPLOSION_MOLOTOV_MAX_DIST = 150 ,
EXPLOSION_MINE_MAX_DIST = 200 ,
FIRE_DEFAULT_MAX_DIST = 80 ,
FIRE_DEFAULT_VOLUME = 80 ,
FIRE_BUILDING_MAX_DIST = 80 ,
FIRE_BUILDING_VOLUME = 100 ,
FIRE_PED_MAX_DIST = 25 ,
FIRE_PED_VOLUME = 60 ,
FIRE_EXTINGUISH_VOLUME = 100 ,
WATER_CANNON_MAX_DIST = 30 ,
WATER_CANNON_VOLUME = 50 ,
SCRIPT_OBJECT_SEAPLANE_LOW_FUEL_MAX_DIST = 1000 ,
SCRIPT_OBJECT_SEAPLANE_LOW_FUEL_VOLUME = 100 ,
SCRIPT_OBJECT_WILLIE_CARD_SWIPE_MAX_DIST = 40 ,
SCRIPT_OBJECT_WILLIE_CARD_SWIPE_VOLUME = 70 ,
SCRIPT_OBJECT_GATE_MAX_DIST = 40 ,
SCRIPT_OBJECT_BULLET_HIT_GROUND_MAX_DIST = 50 ,
SCRIPT_OBJECT_BULLET_HIT_GROUND_VOLUME = 90 ,
SCRIPT_OBJECT_PAYPHONE_RINGING_MAX_DIST = 80 ,
SCRIPT_OBJECT_PAYPHONE_RINGING_VOLUME = 80 ,
SCRIPT_OBJECT_GLASS_BREAK_MAX_DIST = 60 ,
SCRIPT_OBJECT_GLASS_BREAK_LONG_VOLUME = 70 ,
SCRIPT_OBJECT_GLASS_BREAK_SHORT_VOLUME = 60 ,
SCRIPT_OBJECT_GLASS_LIGHT_BREAK_MAX_DIST = 55 ,
SCRIPT_OBJECT_GLASS_LIGHT_BREAK_VOLUME = 25 ,
SCRIPT_OBJECT_BOX_DESTROYED_MAX_DIST = 60 ,
SCRIPT_OBJECT_BOX_DESTROYED_VOLUME = 80 ,
SCRIPT_OBJECT_METAL_COLLISION_VOLUME = 70 ,
SCRIPT_OBJECT_TIRE_COLLISION_VOLUME = 60 ,
SCRIPT_OBJECT_HIT_BALL_VOLUME = 60 ,
SCRIPT_OBJECT_GUNSHELL_MAX_DIST = 20 ,
SCRIPT_OBJECT_GUNSHELL_VOLUME = 30 ,
SCRIPT_OBJECT_POLICE_CELL_DOOR_CLUNK_MAX_DIST = 40 ,
SCRIPT_OBJECT_POLICE_CELL_DOOR_CLUNK_VOLUME = 60 ,
SCRIPT_OBJECT_GARAGE_DOOR_CLUNK_MAX_DIST = 80 ,
SCRIPT_OBJECT_GARAGE_DOOR_CLUNK_VOLUME = 60 ,
//SCRIPT_OBJECT_SHORT_MAX_DIST = 30,
SCRIPT_OBJECT_LONG_MAX_DIST = 80 ,
SCRIPT_OBJECT_DEFAULT_VOLUME = MAX_VOLUME ,
SCRIPT_OBJECT_BANK_ALARM_VOLUME = 90 ,
SCRIPT_OBJECT_SNORING_MAX_DIST = 6 ,
SCRIPT_OBJECT_SNORING_VOLUME = 25 ,
SCRIPT_OBJECT_GARAGE_DOOR_SLIDING_VOLUME = 90 ,
SCRIPT_OBJECT_SHOOTING_RANGE_TARGET_MOVING_MAX_DIST = 40 ,
SCRIPT_OBJECT_SHOOTING_RANGE_TARGET_MOVING_VOLUME = 60 ,
SCRIPT_OBJECT_NEW_WATERFALL_VOLUME = 30 ,
FRONTEND_VOLUME = 127 ,
//CRANE_MAX_DIST = 80,
//CRANE_VOLUME = 100,
PROJECTILE_ROCKET_MAX_DIST = 90 ,
PROJECTILE_ROCKET_VOLUME = MAX_VOLUME ,
PROJECTILE_MOLOTOV_MAX_DIST = 30 ,
PROJECTILE_MOLOTOV_VOLUME = 50 ,
PROJECTILE_TEARGAS_MAX_DIST = 40 ,
PROJECTILE_TEARGAS_VOLUME = 80 ,
ESCALATOR_MAX_DIST = 30 ,
ESCALATOR_VOLUME = 26 ,
ARCADE_MAX_DIST = 18 ,
ARCADE_VOLUME = 50 ,
GARAGES_MAX_DIST = 80 ,
GARAGES_VOLUME = 90 ,
GARAGES_DOOR_VOLUME = 60 ,
FIRE_HYDRANT_MAX_DIST = 35 ,
FIRE_HYDRANT_VOLUME = 40 ,
BRIDGE_MOTOR_MAX_DIST = 400 ,
BRIDGE_MOTOR_VOLUME = MAX_VOLUME ,
BRIDGE_MAX_DIST = BRIDGE_MOTOR_MAX_DIST + 50 ,
BRIDGE_WARNING_VOLUME = 100 ,
MISSION_AUDIO_MAX_DIST = 80 ,
MISSION_AUDIO_VOLUME = 80 ,
} ;
2020-05-16 17:29:13 +00:00
# pragma region VEHICLE AUDIO
enum eVehicleModel {
LANDSTAL ,
IDAHO ,
STINGER ,
LINERUN ,
PEREN ,
SENTINEL ,
2020-05-16 21:33:52 +00:00
RIO ,
2020-05-16 17:29:13 +00:00
FIRETRUK ,
TRASH ,
STRETCH ,
MANANA ,
INFERNUS ,
2020-05-16 21:33:52 +00:00
VOODOO ,
2020-05-16 17:29:13 +00:00
PONY ,
MULE ,
CHEETAH ,
AMBULAN ,
FBICAR ,
MOONBEAM ,
ESPERANT ,
TAXI ,
2020-05-16 21:33:52 +00:00
WASHING ,
2020-05-16 17:29:13 +00:00
BOBCAT ,
MRWHOOP ,
BFINJECT ,
2020-05-16 21:33:52 +00:00
HUNTER ,
2020-05-16 17:29:13 +00:00
POLICE ,
ENFORCER ,
SECURICA ,
BANSHEE ,
PREDATOR ,
BUS ,
RHINO ,
BARRACKS ,
2020-05-16 21:33:52 +00:00
CUBAN ,
2020-05-16 17:29:13 +00:00
CHOPPER ,
2020-05-16 21:33:52 +00:00
ANGEL ,
2020-05-16 17:29:13 +00:00
COACH ,
CABBIE ,
STALLION ,
RUMPO ,
RCBANDIT ,
2020-05-16 21:33:52 +00:00
ROMERO ,
PACKER ,
SENTXS ,
ADMIRAL ,
SQUALO ,
SEASPAR ,
PIZZABOY ,
GANGBUR ,
2020-05-16 17:29:13 +00:00
AIRTRAIN ,
DEADDODO ,
SPEEDER ,
REEFER ,
2020-05-16 21:33:52 +00:00
TROPIC ,
2020-05-16 17:29:13 +00:00
FLATBED ,
YANKEE ,
2020-05-16 21:33:52 +00:00
CADDY ,
ZEBRA ,
TOPFUN ,
SKIMMER ,
PCJ600 ,
FAGGIO ,
FREEWAY ,
RCBARON ,
RCRAIDER ,
GLENDALE ,
OCEANIC ,
SANCHEZ ,
SPARROW ,
PATRIOT ,
LOVEFIST ,
COASTG ,
DINGHY ,
HERMES ,
SABRE ,
SABRETUR ,
PHEONIX ,
WALTON ,
REGINA ,
COMET ,
DELUXO ,
BURRITO ,
SPAND ,
MARQUIS ,
BAGGAGE ,
KAUFMAN ,
MAVERICK ,
VCNMAV ,
RANCHER ,
FBIRANCH ,
VIRGO ,
GREENWOO ,
JETMAX ,
HOTRING ,
SANDKING ,
BLISTAC ,
POLMAV ,
BOXVILLE ,
BENSON ,
MESA ,
RCGOBLIN ,
HOTRINA ,
HOTRINB ,
BLOODRA ,
BLOODRB ,
VICECHEE ,
2020-09-26 23:26:35 +00:00
CAR237 ,
CAR238 ,
CAR239 ,
MAX_CARS ,
2020-05-16 21:33:52 +00:00
// HACK so this compiles
// TODO(MIAMI): check it out
DODO = - 1
2020-05-16 17:29:13 +00:00
} ;
2020-05-23 19:48:50 +00:00
enum
{
2020-09-26 23:26:35 +00:00
OLD_DOOR = 0 ,
NEW_DOOR ,
TRUCK_DOOR ,
BUS_DOOR ,
2020-05-23 19:48:50 +00:00
} ;
2020-05-16 17:29:13 +00:00
struct tVehicleSampleData {
eSfxSample m_nAccelerationSampleIndex ;
2020-06-06 00:45:24 +00:00
uint8 m_nBank ;
2020-05-16 17:29:13 +00:00
eSfxSample m_nHornSample ;
int32 m_nHornFrequency ;
uint8 m_nSirenOrAlarmSample ;
int32 m_nSirenOrAlarmFrequency ;
uint8 m_bDoorType ;
} ;
2020-09-26 23:26:35 +00:00
const tVehicleSampleData aVehicleSettings [ MAX_CARS ] = {
{ SFX_CAR_REV_10 , SFX_BANK_PATHFINDER , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9935 , OLD_DOOR } ,
{ SFX_CAR_REV_11 , SFX_BANK_PACARD , SFX_CAR_HORN_56CHEV , 11487 , SFX_CAR_HORN_JEEP , 9900 , OLD_DOOR } ,
{ SFX_CAR_REV_2 , SFX_BANK_PORSCHE , SFX_CAR_HORN_PORSCHE , 11025 , SFX_CAR_HORN_JEEP , 9890 , NEW_DOOR } ,
{ SFX_CAR_REV_5 , SFX_BANK_TRUCK , SFX_CAR_HORN_TRUCK , 29711 , SFX_CAR_HORN_JEEP , 9960 , TRUCK_DOOR } ,
{ SFX_CAR_REV_11 , SFX_BANK_PACARD , SFX_CAR_HORN_56CHEV , 12893 , SFX_CAR_HORN_JEEP , 9500 , OLD_DOOR } ,
{ SFX_CAR_REV_4 , SFX_BANK_MERC , SFX_CAR_HORN_BMW328 , 10706 , SFX_CAR_HORN_JEEP , 9600 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_TRUCK , 29711 , SFX_CAR_HORN_JEEP , 9700 , NEW_DOOR } ,
{ SFX_CAR_REV_5 , SFX_BANK_TRUCK , SFX_CAR_HORN_TRUCK , 29711 , SFX_POLICE_SIREN_SLOW , 10588 , TRUCK_DOOR } ,
{ SFX_CAR_REV_5 , SFX_BANK_TRUCK , SFX_CAR_HORN_TRUCK , 31478 , SFX_CAR_HORN_JEEP , 9800 , TRUCK_DOOR } ,
{ SFX_CAR_REV_11 , SFX_BANK_PACARD , SFX_CAR_HORN_BMW328 , 9538 , SFX_CAR_HORN_JEEP , 9900 , NEW_DOOR } ,
{ SFX_CAR_REV_11 , SFX_BANK_PACARD , SFX_CAR_HORN_56CHEV , 10842 , SFX_CAR_HORN_JEEP , 10000 , OLD_DOOR } ,
{ SFX_CAR_REV_7 , SFX_BANK_COBRA , SFX_CAR_HORN_BMW328 , 12017 , SFX_CAR_HORN_JEEP , 9900 , NEW_DOOR } ,
{ SFX_CAR_REV_9 , SFX_BANK_CADILLAC , SFX_CAR_HORN_JEEP , 22293 , SFX_CAR_HORN_JEEP , 9800 , NEW_DOOR } ,
{ SFX_CAR_REV_3 , SFX_BANK_SPIDER , SFX_CAR_HORN_BUS2 , 18000 , SFX_CAR_HORN_JEEP , 9700 , OLD_DOOR } ,
{ SFX_CAR_REV_3 , SFX_BANK_SPIDER , SFX_CAR_HORN_BUS , 18286 , SFX_CAR_HORN_JEEP , 9600 , OLD_DOOR } ,
{ SFX_CAR_REV_2 , SFX_BANK_PORSCHE , SFX_CAR_HORN_PORSCHE , 11025 , SFX_CAR_HORN_JEEP , 9500 , NEW_DOOR } ,
{ SFX_CAR_REV_3 , SFX_BANK_SPIDER , SFX_CAR_HORN_JEEP , 22295 , SFX_AMBULANCE_SIREN_SLOW , 12688 , OLD_DOOR } ,
{ SFX_CAR_REV_4 , SFX_BANK_MERC , SFX_CAR_HORN_PORSCHE , 9271 , SFX_POLICE_SIREN_SLOW , 11471 , NEW_DOOR } ,
{ SFX_CAR_REV_11 , SFX_BANK_PACARD , SFX_CAR_HORN_56CHEV , 12170 , SFX_CAR_HORN_JEEP , 9400 , OLD_DOOR } ,
{ SFX_CAR_REV_11 , SFX_BANK_PACARD , SFX_CAR_HORN_BMW328 , 11000 , SFX_CAR_HORN_JEEP , 9300 , OLD_DOOR } ,
{ SFX_CAR_REV_10 , SFX_BANK_PATHFINDER , SFX_CAR_HORN_BMW328 , 10796 , SFX_CAR_HORN_JEEP , 9200 , NEW_DOOR } ,
{ SFX_CAR_REV_4 , SFX_BANK_MERC , SFX_CAR_HORN_BMW328 , 10500 , SFX_CAR_HORN_JEEP , 9100 , NEW_DOOR } ,
{ SFX_CAR_REV_10 , SFX_BANK_PATHFINDER , SFX_CAR_HORN_PICKUP , 10924 , SFX_CAR_HORN_JEEP , 9000 , OLD_DOOR } ,
{ SFX_CAR_REV_3 , SFX_BANK_SPIDER , SFX_CAR_HORN_PICKUP , 11025 , SFX_ICE_CREAM_TUNE , 11025 , OLD_DOOR } ,
{ SFX_CAR_REV_6 , SFX_BANK_HOTROD , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9100 , OLD_DOOR } ,
{ SFX_HELI_APACHE_1 , SFX_BANK_HELI_APACHE , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9200 , NEW_DOOR } ,
{ SFX_CAR_REV_4 , SFX_BANK_MERC , SFX_CAR_HORN_BMW328 , 10706 , SFX_POLICE_SIREN_SLOW , 10511 , NEW_DOOR } ,
{ SFX_CAR_REV_3 , SFX_BANK_SPIDER , SFX_CAR_HORN_BUS , 17260 , SFX_POLICE_SIREN_SLOW , 11029 , OLD_DOOR } ,
{ SFX_CAR_REV_3 , SFX_BANK_SPIDER , SFX_CAR_HORN_PICKUP , 8670 , SFX_CAR_HORN_JEEP , 9300 , OLD_DOOR } ,
{ SFX_CAR_REV_7 , SFX_BANK_COBRA , SFX_CAR_HORN_PORSCHE , 10400 , SFX_CAR_HORN_JEEP , 9400 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_JEEP , 26513 , SFX_POLICE_SIREN_SLOW , 11912 , NEW_DOOR } ,
{ SFX_CAR_REV_5 , SFX_BANK_TRUCK , SFX_CAR_HORN_BUS2 , 11652 , SFX_CAR_HORN_JEEP , 9500 , BUS_DOOR } ,
{ SFX_CAR_REV_5 , SFX_BANK_TRUCK , SFX_CAR_HORN_TRUCK , 29711 , SFX_CAR_HORN_JEEP , 9600 , TRUCK_DOOR } ,
{ SFX_CAR_REV_5 , SFX_BANK_TRUCK , SFX_CAR_HORN_TRUCK , 28043 , SFX_CAR_HORN_JEEP , 9700 , TRUCK_DOOR } ,
{ SFX_CAR_REV_6 , SFX_BANK_HOTROD , SFX_CAR_HORN_JEEP , 25400 , SFX_CAR_HORN_JEEP , 9800 , OLD_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9900 , NEW_DOOR } ,
{ SFX_CAR_REV_17 , SFX_BANK_VTWIN , SFX_CAR_HORN_JEEP , 26313 , SFX_CAR_HORN_JEEP , 10000 , NEW_DOOR } ,
{ SFX_CAR_REV_5 , SFX_BANK_TRUCK , SFX_CAR_HORN_BUS , 16291 , SFX_CAR_HORN_JEEP , 10100 , BUS_DOOR } ,
{ SFX_CAR_REV_11 , SFX_BANK_PACARD , SFX_CAR_HORN_56CHEV , 10842 , SFX_CAR_HORN_JEEP , 9900 , OLD_DOOR } ,
{ SFX_CAR_REV_11 , SFX_BANK_PACARD , SFX_CAR_HORN_56CHEV , 10233 , SFX_CAR_HORN_JEEP , 9800 , NEW_DOOR } ,
{ SFX_CAR_REV_3 , SFX_BANK_SPIDER , SFX_CAR_HORN_PICKUP , 8670 , SFX_CAR_HORN_JEEP , 9700 , OLD_DOOR } ,
{ SFX_RC_REV , SFX_BANK_RC , SFX_CAR_HORN_PICKUP , 20000 , SFX_CAR_HORN_JEEP , 9600 , NEW_DOOR } ,
{ SFX_CAR_REV_11 , SFX_BANK_PACARD , SFX_CAR_HORN_JEEP , 21043 , SFX_CAR_HORN_JEEP , 9500 , NEW_DOOR } ,
{ SFX_CAR_REV_5 , SFX_BANK_TRUCK , SFX_CAR_HORN_TRUCK , 29000 , SFX_CAR_HORN_JEEP , 9400 , TRUCK_DOOR } ,
{ SFX_CAR_REV_1 , CAR_SFX_BANKS_OFFSET , SFX_CAR_HORN_BMW328 , 9003 , SFX_CAR_HORN_JEEP , 9300 , NEW_DOOR } ,
{ SFX_CAR_REV_4 , SFX_BANK_MERC , SFX_CAR_HORN_PORSCHE , 12375 , SFX_CAR_HORN_JEEP , 9200 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_BUS2 , 15554 , SFX_CAR_HORN_JEEP , 9100 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_BUS2 , 13857 , SFX_CAR_HORN_JEEP , 9000 , TRUCK_DOOR } ,
{ SFX_MOPED_REV , SFX_BANK_MOPED , SFX_CAR_HORN_JEEP , 30000 , SFX_CAR_HORN_JEEP , 9100 , NEW_DOOR } ,
{ SFX_CAR_REV_7 , SFX_BANK_COBRA , SFX_CAR_HORN_JEEP , 22043 , SFX_CAR_HORN_JEEP , 9200 , OLD_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_JEEP , 21043 , SFX_CAR_HORN_JEEP , 9300 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_JEEP , 21043 , SFX_CAR_HORN_JEEP , 9400 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_JEEP , 21043 , SFX_CAR_HORN_JEEP , 9500 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_JEEP , 21043 , SFX_CAR_HORN_JEEP , 9600 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_JEEP , 21043 , SFX_CAR_HORN_JEEP , 9700 , NEW_DOOR } ,
{ SFX_CAR_REV_5 , SFX_BANK_TRUCK , SFX_CAR_HORN_TRUCK , 28043 , SFX_CAR_HORN_JEEP , 9800 , TRUCK_DOOR } ,
{ SFX_CAR_REV_3 , SFX_BANK_SPIDER , SFX_CAR_HORN_BUS , 18286 , SFX_CAR_HORN_JEEP , 9900 , OLD_DOOR } ,
{ SFX_CAR_REV_12 , SFX_BANK_GOLF_CART , SFX_CAR_HORN_JEEP , 28500 , SFX_CAR_HORN_JEEP , 9800 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , CAR_SFX_BANKS_OFFSET , SFX_CAR_HORN_56CHEV , 10842 , SFX_CAR_HORN_JEEP , 9700 , OLD_DOOR } ,
{ SFX_CAR_REV_8 , SFX_BANK_PONTIAC_SLOW , SFX_CAR_HORN_BUS2 , 18000 , SFX_CAR_HORN_JEEP , 9700 , OLD_DOOR } ,
{ SFX_SEAPLANE_PRO1 , SFX_BANK_PLANE_SEAPLANE , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9700 , NEW_DOOR } ,
{ SFX_CAR_REV_20 , SFX_BANK_SPORTS_BIKE , SFX_CAR_HORN_JEEP , 27000 , SFX_CAR_HORN_JEEP , 9600 , NEW_DOOR } ,
{ SFX_MOPED_REV , SFX_BANK_MOPED , SFX_CAR_HORN_JEEP , 31000 , SFX_CAR_HORN_JEEP , 9500 , NEW_DOOR } ,
{ SFX_CAR_REV_17 , SFX_BANK_VTWIN , SFX_CAR_HORN_PICKUP , 11000 , SFX_CAR_HORN_JEEP , 9400 , NEW_DOOR } ,
{ SFX_RC_REV , SFX_BANK_RC , SFX_CAR_HORN_JEEP , 30000 , SFX_CAR_HORN_JEEP , 15000 , NEW_DOOR } ,
{ SFX_CAR_RC_HELI , SFX_BANK_RC_HELI , SFX_CAR_HORN_JEEP , 30000 , SFX_CAR_HORN_JEEP , 15000 , NEW_DOOR } ,
{ SFX_CAR_REV_9 , SFX_BANK_CADILLAC , SFX_CAR_HORN_56CHEV , 10300 , SFX_CAR_HORN_JEEP , 9100 , OLD_DOOR } ,
{ SFX_CAR_REV_9 , SFX_BANK_CADILLAC , SFX_CAR_HORN_56CHEV , 10500 , SFX_CAR_HORN_JEEP , 9000 , OLD_DOOR } ,
{ SFX_CAR_REV_19 , SFX_BANK_HONDA250 , SFX_CAR_HORN_JEEP , 30000 , SFX_CAR_HORN_JEEP , 9000 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9100 , TRUCK_DOOR } ,
{ SFX_CAR_REV_3 , SFX_BANK_SPIDER , SFX_CAR_HORN_TRUCK , 28000 , SFX_CAR_HORN_JEEP , 9200 , TRUCK_DOOR } ,
{ SFX_CAR_REV_7 , SFX_BANK_COBRA , SFX_CAR_HORN_PICKUP , 11200 , SFX_CAR_HORN_JEEP , 9300 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9400 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9500 , NEW_DOOR } ,
{ SFX_CAR_REV_9 , SFX_BANK_CADILLAC , SFX_CAR_HORN_56CHEV , 10700 , SFX_CAR_HORN_JEEP , 9600 , OLD_DOOR } ,
{ SFX_CAR_REV_1 , CAR_SFX_BANKS_OFFSET , SFX_CAR_HORN_BMW328 , 9000 , SFX_CAR_HORN_JEEP , 9700 , OLD_DOOR } ,
{ SFX_CAR_REV_6 , SFX_BANK_HOTROD , SFX_CAR_HORN_BMW328 , 9200 , SFX_CAR_HORN_JEEP , 9800 , OLD_DOOR } ,
{ SFX_CAR_REV_7 , SFX_BANK_COBRA , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9900 , NEW_DOOR } ,
{ SFX_CAR_REV_11 , SFX_BANK_PACARD , SFX_CAR_HORN_56CHEV , 10540 , SFX_CAR_HORN_JEEP , 9935 , TRUCK_DOOR } ,
{ SFX_CAR_REV_8 , SFX_BANK_PONTIAC_SLOW , SFX_CAR_HORN_PICKUP , 11000 , SFX_CAR_HORN_JEEP , 9700 , NEW_DOOR } ,
{ SFX_CAR_REV_2 , SFX_BANK_PORSCHE , SFX_CAR_HORN_BMW328 , 9500 , SFX_CAR_HORN_JEEP , 9800 , NEW_DOOR } ,
{ SFX_CAR_REV_7 , SFX_BANK_COBRA , SFX_CAR_HORN_BMW328 , 9700 , SFX_CAR_HORN_JEEP , 9700 , NEW_DOOR } ,
{ SFX_CAR_REV_8 , SFX_BANK_PONTIAC_SLOW , SFX_CAR_HORN_BUS2 , 18000 , SFX_CAR_HORN_JEEP , 9600 , OLD_DOOR } ,
{ SFX_CAR_REV_3 , SFX_BANK_SPIDER , SFX_CAR_HORN_BUS , 18000 , SFX_CAR_HORN_JEEP , 9500 , TRUCK_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9400 , NEW_DOOR } ,
{ SFX_CAR_REV_8 , SFX_BANK_PONTIAC_SLOW , SFX_CAR_HORN_JEEP , 27513 , SFX_CAR_HORN_JEEP , 9300 , NEW_DOOR } ,
{ SFX_CAR_REV_8 , SFX_BANK_PONTIAC_SLOW , SFX_CAR_HORN_56CHEV , 10700 , SFX_CAR_HORN_JEEP , 9200 , OLD_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9100 , TRUCK_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9000 , TRUCK_DOOR } ,
{ SFX_CAR_REV_10 , SFX_BANK_PATHFINDER , SFX_CAR_HORN_BUS2 , 18000 , SFX_CAR_HORN_JEEP , 9100 , TRUCK_DOOR } ,
{ SFX_CAR_REV_1 , CAR_SFX_BANKS_OFFSET , SFX_CAR_HORN_BUS2 , 17900 , SFX_POLICE_SIREN_SLOW , 10511 , TRUCK_DOOR } ,
{ SFX_CAR_REV_4 , SFX_BANK_MERC , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9200 , NEW_DOOR } ,
{ SFX_CAR_REV_8 , SFX_BANK_PONTIAC_SLOW , SFX_CAR_HORN_BMW328 , 9600 , SFX_CAR_HORN_JEEP , 9300 , NEW_DOOR } ,
{ SFX_CAR_REV_4 , SFX_BANK_0 , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9400 , NEW_DOOR } ,
{ SFX_CAR_REV_7 , SFX_BANK_COBRA , SFX_CAR_HORN_PORSCHE , 10000 , SFX_CAR_HORN_JEEP , 9500 , OLD_DOOR } ,
{ SFX_CAR_REV_6 , SFX_BANK_HOTROD , SFX_CAR_HORN_PORSCHE , 10500 , SFX_CAR_HORN_JEEP , 9600 , OLD_DOOR } ,
{ SFX_CAR_REV_10 , SFX_BANK_PATHFINDER , SFX_CAR_HORN_JEEP , 25513 , SFX_CAR_HORN_JEEP , 9700 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , SFX_BANK_0 , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9800 , NEW_DOOR } ,
{ SFX_CAR_REV_3 , SFX_BANK_SPIDER , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9900 , NEW_DOOR } ,
{ SFX_CAR_REV_10 , SFX_BANK_PATHFINDER , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9800 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , CAR_SFX_BANKS_OFFSET , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9700 , NEW_DOOR } ,
{ SFX_CAR_RC_HELI , SFX_BANK_RC_HELI , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9600 , NEW_DOOR } ,
{ SFX_CAR_REV_6 , SFX_BANK_HOTROD , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9700 , NEW_DOOR } ,
{ SFX_CAR_REV_7 , SFX_BANK_COBRA , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9600 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , CAR_SFX_BANKS_OFFSET , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9500 , NEW_DOOR } ,
{ SFX_CAR_REV_9 , SFX_BANK_CADILLAC , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9400 , NEW_DOOR } ,
{ SFX_CAR_REV_2 , SFX_BANK_PORSCHE , SFX_CAR_HORN_PORSCHE , 11025 , SFX_POLICE_SIREN_SLOW , 11000 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , CAR_SFX_BANKS_OFFSET , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9200 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , CAR_SFX_BANKS_OFFSET , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9300 , NEW_DOOR } ,
{ SFX_CAR_REV_1 , CAR_SFX_BANKS_OFFSET , SFX_CAR_HORN_JEEP , 26513 , SFX_CAR_HORN_JEEP , 9400 , NEW_DOOR } } ;
2021-05-22 10:08:26 +00:00
bool8 bPlayerJustEnteredCar ;
2021-08-29 06:42:32 +00:00
Const static bool8 HornPattern [ 8 ] [ 44 ] = {
2021-05-22 10:08:26 +00:00
{ FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE ,
FALSE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , FALSE , FALSE } ,
{ FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE ,
TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE } ,
{ FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE ,
FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE } ,
{ FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , TRUE ,
TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE } ,
{ FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE ,
FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE } ,
{ FALSE , FALSE , TRUE , TRUE , TRUE , FALSE , FALSE , FALSE , TRUE , TRUE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE ,
FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE } ,
{ FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , FALSE , FALSE , TRUE , TRUE , TRUE , FALSE , FALSE , TRUE , TRUE , TRUE , FALSE , FALSE , TRUE , TRUE ,
TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE } ,
{ FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE ,
FALSE , FALSE , FALSE , FALSE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE } ,
2020-05-16 17:29:13 +00:00
} ;
2021-07-27 21:41:34 +00:00
void
cAudioManager : : ProcessVehicle ( CVehicle * veh )
2020-05-16 17:29:13 +00:00
{
cVehicleParams params ;
2020-09-15 19:06:18 +00:00
2021-08-29 06:42:32 +00:00
if ( FindVehicleOfPlayer ( ) ! = veh ) {
switch ( CGame : : currArea )
{
case AREA_OVALRING :
case AREA_BLOOD :
case AREA_DIRT :
case AREA_EVERYWHERE :
case AREA_MALL :
case AREA_MAIN_MAP :
break ;
default :
2020-09-15 19:06:18 +00:00
return ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
}
m_sQueueSample . m_vecPos = veh - > GetPosition ( ) ;
params . m_bDistanceCalculated = FALSE ;
params . m_pVehicle = veh ;
params . m_fDistance = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
params . m_pTransmission = veh - > pHandling ! = nil ? & veh - > pHandling - > Transmission : nil ;
params . m_nIndex = veh - > m_modelIndex - MI_FIRST_VEHICLE ;
if ( veh - > GetStatus ( ) = = STATUS_SIMPLE )
params . m_fVelocityChange = veh - > AutoPilot . m_fMaxTrafficSpeed * 0.02f ;
else
params . m_fVelocityChange = DotProduct ( veh - > m_vecMoveSpeed , veh - > GetForward ( ) ) ;
params . m_VehicleType = veh - > m_vehType ;
if ( CGame : : currArea = = AREA_MALL & & FindVehicleOfPlayer ( ) ! = veh ) {
ProcessVehicleOneShots ( params ) ;
ProcessVehicleSirenOrAlarm ( params ) ;
ProcessEngineDamage ( params ) ;
return ;
}
switch ( params . m_VehicleType ) {
case VEHICLE_TYPE_CAR :
UpdateGasPedalAudio ( veh , params . m_VehicleType ) ;
if ( veh - > m_modelIndex = = MI_RCBANDIT | | veh - > m_modelIndex = = MI_RCBARON ) {
ProcessModelVehicle ( params ) ;
ProcessEngineDamage ( params ) ;
} else if ( veh - > m_modelIndex = = MI_RCRAIDER | | veh - > m_modelIndex = = MI_RCGOBLIN ) {
ProcessModelHeliVehicle ( params ) ;
ProcessEngineDamage ( params ) ;
} else {
switch ( veh - > GetVehicleAppearance ( ) ) {
case VEHICLE_APPEARANCE_HELI :
ProcessCarHeli ( params ) ;
ProcessVehicleFlatTyre ( params ) ;
2020-11-08 17:31:24 +00:00
ProcessEngineDamage ( params ) ;
2021-08-29 06:42:32 +00:00
break ;
case VEHICLE_APPEARANCE_BOAT :
case VEHICLE_APPEARANCE_PLANE :
break ;
default :
if ( ProcessVehicleRoadNoise ( params ) ) {
ProcessReverseGear ( params ) ;
if ( CWeather : : WetRoads > 0.0f )
ProcessWetRoadNoise ( params ) ;
ProcessVehicleSkidding ( params ) ;
2020-11-08 17:31:24 +00:00
ProcessVehicleFlatTyre ( params ) ;
2021-08-29 06:42:32 +00:00
ProcessVehicleHorn ( params ) ;
ProcessVehicleSirenOrAlarm ( params ) ;
if ( UsesReverseWarning ( params . m_nIndex ) )
ProcessVehicleReverseWarning ( params ) ;
if ( HasAirBrakes ( params . m_nIndex ) )
ProcessAirBrakes ( params ) ;
ProcessCarBombTick ( params ) ;
ProcessVehicleEngine ( params ) ;
2020-11-08 17:31:24 +00:00
ProcessEngineDamage ( params ) ;
2021-08-29 06:42:32 +00:00
ProcessVehicleDoors ( params ) ;
2020-09-15 19:06:18 +00:00
}
2021-08-29 06:42:32 +00:00
break ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
}
ProcessVehicleOneShots ( params ) ;
( ( CAutomobile * ) veh ) - > m_fVelocityChangeForAudio = params . m_fVelocityChange ;
break ;
case VEHICLE_TYPE_BOAT :
if ( veh - > m_modelIndex = = MI_SKIMMER )
2020-11-08 17:31:24 +00:00
ProcessCarHeli ( params ) ;
2021-08-29 06:42:32 +00:00
else
ProcessBoatEngine ( params ) ;
ProcessBoatMovingOverWater ( params ) ;
ProcessVehicleOneShots ( params ) ;
break ;
case VEHICLE_TYPE_HELI :
ProcessCarHeli ( params ) ;
ProcessVehicleOneShots ( params ) ;
break ;
case VEHICLE_TYPE_PLANE :
ProcessPlane ( params ) ;
ProcessVehicleOneShots ( params ) ;
ProcessVehicleFlatTyre ( params ) ;
break ;
case VEHICLE_TYPE_BIKE :
UpdateGasPedalAudio ( veh , params . m_VehicleType ) ;
if ( ProcessVehicleRoadNoise ( params ) ) {
if ( CWeather : : WetRoads > 0.0f )
ProcessWetRoadNoise ( params ) ;
ProcessVehicleSkidding ( params ) ;
ProcessVehicleHorn ( params ) ;
ProcessVehicleSirenOrAlarm ( params ) ;
ProcessCarBombTick ( params ) ;
ProcessEngineDamage ( params ) ;
ProcessVehicleEngine ( params ) ;
2020-11-08 17:31:24 +00:00
ProcessVehicleFlatTyre ( params ) ;
2020-09-13 18:45:42 +00:00
}
2021-08-29 06:42:32 +00:00
ProcessVehicleOneShots ( params ) ;
( ( CBike * ) veh ) - > m_fVelocityChangeForAudio = params . m_fVelocityChange ;
break ;
default :
break ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
ProcessRainOnVehicle ( params ) ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
bool8
2021-07-27 21:41:34 +00:00
cAudioManager : : ProcessCarHeli ( cVehicleParams & params )
2020-05-16 17:29:13 +00:00
{
2021-07-27 21:41:34 +00:00
CAutomobile * automobile ;
CBoat * boat ;
2020-10-17 13:57:36 +00:00
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2021-07-27 21:41:34 +00:00
int16 brakeState ;
int16 accelerateState ;
uint32 freq ;
float propellerSpeed ;
float freqModifier ; //may be relate to angle with horison
float cameraAngle ;
bool8 distanceCalculatedOld ;
float distanceOld ;
CVector vecPosOld ;
2020-10-17 13:57:36 +00:00
2021-07-27 21:41:34 +00:00
float volumeModifier ; //TODO find better name
bool8 hunterBool ;
2021-08-29 06:42:32 +00:00
CMatrix cameraMatrix ;
2021-07-27 21:41:34 +00:00
boat = nil ;
automobile = nil ;
hunterBool = FALSE ;
2021-08-29 06:42:32 +00:00
static uint32 freqFrontPrev = 14287 ;
static uint32 freqPropellerPrev = 7143 ;
static uint32 freqSkimmerPrev = 14287 ;
2020-10-17 13:57:36 +00:00
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( CAR_HELI_MAX_DIST ) ) {
if ( FindPlayerVehicle ( ) = = params . m_pVehicle ) {
accelerateState = Pads [ 0 ] . GetAccelerate ( ) ;
brakeState = Pads [ 0 ] . GetBrake ( ) ;
} else {
accelerateState = params . m_pVehicle - > m_fGasPedal * 255.0f ;
brakeState = params . m_pVehicle - > m_fBrakePedal * 255.0f ;
}
cameraMatrix = TheCamera . GetMatrix ( ) ;
freqModifier = DotProduct ( cameraMatrix . GetUp ( ) , CVector ( 0.0f , 1.0f , 0.0f ) ) ;
freqModifier = ABS ( freqModifier ) ;
cameraAngle = ( DotProduct ( params . m_pVehicle - > GetMatrix ( ) . GetForward ( ) , cameraMatrix . GetForward ( ) ) + 1.0f ) / 2.0f ;
if ( params . m_pVehicle - > GetModelIndex ( ) = = MI_SKIMMER ) {
boat = ( CBoat * ) params . m_pVehicle ;
propellerSpeed = boat - > m_fMovingSpeed * 50.0f / 11.0f ;
} else if ( params . m_VehicleType = = VEHICLE_TYPE_HELI ) {
propellerSpeed = 1.0f ;
} else {
automobile = ( CAutomobile * ) params . m_pVehicle ;
propellerSpeed = automobile - > m_aWheelSpeed [ 1 ] * 50.0f / 11.0f ;
}
if ( propellerSpeed = = 0.0f )
return TRUE ;
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
propellerSpeed = Min ( 1.0f , propellerSpeed ) ;
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
//sound on long distances
if ( m_sQueueSample . m_fDistance < 40.0f ) {
if ( m_sQueueSample . m_fDistance < 25.0f )
Vol = 0 ;
else
Vol = ( m_sQueueSample . m_fDistance - 25.0f ) * ( 75.0f * propellerSpeed ) / 15.0f ;
} else
Vol = propellerSpeed * 75.0f ;
if ( Vol > 0 ) {
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , CAR_HELI_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 88 ;
if ( boat ! = nil ) {
m_sQueueSample . m_nSampleIndex = SFX_SEAPLANE_PRO3 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
if ( accelerateState > 0 | | brakeState > 0 )
m_sQueueSample . m_nFrequency = 4600 + Min ( 1.0f , ( Max ( accelerateState , brakeState ) / 255.0f ) * freqModifier ) * 563 ;
else
m_sQueueSample . m_nFrequency = 3651 + Min ( 1.0f , freqModifier ) * 949 ;
} else {
m_sQueueSample . m_nSampleIndex = SFX_HELI_1 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
}
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 2 ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 6.0f ;
m_sQueueSample . m_MaxDistance = CAR_HELI_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 5 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
2021-07-27 21:41:34 +00:00
}
2020-05-16 17:29:13 +00:00
}
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
CVector backPropellerPos ;
if ( automobile ! = nil )
automobile - > GetComponentWorldPosition ( CAR_BOOT , backPropellerPos ) ;
else if ( params . m_VehicleType = = VEHICLE_TYPE_HELI )
2021-07-27 21:41:34 +00:00
# ifdef FIX_BUGS
2021-08-29 06:42:32 +00:00
backPropellerPos =
2021-07-27 21:41:34 +00:00
# endif
2021-08-29 06:42:32 +00:00
params . m_pVehicle - > GetMatrix ( ) * CVector ( 0.0f , - 10.0f , 0.0f ) ;
else
backPropellerPos = m_sQueueSample . m_vecPos ;
2020-05-16 17:29:13 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( CAR_HELI_ENGINE_MAX_DIST ) ) {
if ( propellerSpeed < 0.4f )
volumeModifier = 0.0f ;
else
volumeModifier = ( propellerSpeed - 0.4f ) * 5.0f / 3.0f ;
if ( ! boat ) {
freq = Min ( 1300 , 7000 * freqModifier ) ;
if ( FindPlayerVehicle ( ) = = params . m_pVehicle & & ( accelerateState > 0 | | brakeState > 0 ) & & freq < 1300 ) //unnesesary freqModifier alredy <= 1300
freq = 1300 ;
if ( params . m_pVehicle - > GetModelIndex ( ) = = MI_HUNTER )
hunterBool = TRUE ;
}
2020-05-16 17:29:13 +00:00
2021-08-29 06:42:32 +00:00
//sound from front of helicopter
Vol = ( 1.0f - cameraAngle ) * volumeModifier * MAX_VOLUME ;
if ( ! boat ) {
if ( accelerateState > 0 | | brakeState > 0 )
m_sQueueSample . m_nFrequency = 18000 + Min ( 1.0f , freqModifier * ( Max ( accelerateState , brakeState ) / 255.0f ) ) * 2204 ;
else
m_sQueueSample . m_nFrequency = 14287 + Min ( 1.0f , freqModifier ) * 3713 ;
if ( propellerSpeed < 1.0f )
m_sQueueSample . m_nFrequency = ( propellerSpeed + 1.0f ) * ( m_sQueueSample . m_nFrequency > > 1 ) ;
m_sQueueSample . m_nFrequency = Clamp2 ( m_sQueueSample . m_nFrequency , freqFrontPrev , 197 ) ;
freqFrontPrev = m_sQueueSample . m_nFrequency ;
}
2020-05-16 17:29:13 +00:00
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , CAR_HELI_ENGINE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 3 ;
if ( hunterBool ) {
m_sQueueSample . m_nSampleIndex = SFX_HELI_APACHE_1 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nFrequency = ( volumeModifier + 1.0f ) * 16000 + freq ;
} else if ( boat ) {
m_sQueueSample . m_nSampleIndex = SFX_SEAPLANE_PRO1 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
} else {
m_sQueueSample . m_nSampleIndex = SFX_CAR_HELI_MAI ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nFrequency = ( volumeModifier + 1.0f ) * 16000 + freq ;
}
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 1 ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 6.0f ;
m_sQueueSample . m_MaxDistance = CAR_HELI_ENGINE_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 5 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
2020-09-22 00:28:14 +00:00
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
//engine starting sound
if ( boat = = nil & & params . m_VehicleType ! = VEHICLE_TYPE_HELI & & m_sQueueSample . m_fDistance < CAR_HELI_ENGINE_START_MAX_DIST & & automobile - > bEngineOn & & propellerSpeed < 1.0f ) { //strange way to check if automobile != nil
Vol = ( 1.0f - propellerSpeed / 2.0f ) * CAR_HELI_ENGINE_START_VOLUME ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , CAR_HELI_ENGINE_START_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2021-07-27 21:41:34 +00:00
if ( hunterBool ) {
m_sQueueSample . m_nSampleIndex = SFX_HELI_APACHE_4 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
freq = 3000 * propellerSpeed + 30000 ;
2021-07-27 21:41:34 +00:00
} else {
m_sQueueSample . m_nSampleIndex = SFX_CAR_HELI_STA ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
freq = 3000 * propellerSpeed + 6000 ;
2021-07-27 21:41:34 +00:00
}
m_sQueueSample . m_nFrequency = freq ;
m_sQueueSample . m_nCounter = 12 ;
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 1 ;
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( Vol ) ;
2021-07-27 21:41:34 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 6.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = CAR_HELI_ENGINE_START_MAX_DIST ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 30 ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2021-07-27 21:41:34 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
2021-08-29 06:42:32 +00:00
//after accel rotor sound
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
Vol = ( ( cameraAngle + 1.0f ) * volumeModifier * MAX_VOLUME ) / 2.0f ;
if ( boat ) {
2021-07-27 21:41:34 +00:00
if ( accelerateState > 0 | | brakeState > 0 )
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = 9000 + Min ( 1.0f , ( Max ( accelerateState , brakeState ) / 255 ) * freqModifier ) * 1102 ;
2021-07-27 21:41:34 +00:00
else
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = 7143 + Min ( 1.0f , freqModifier ) * 1857 ;
2021-07-27 21:41:34 +00:00
if ( propellerSpeed < 1.0f )
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = ( propellerSpeed + 1 ) * ( m_sQueueSample . m_nFrequency > > 1 ) ;
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = Clamp2 ( m_sQueueSample . m_nFrequency , freqPropellerPrev , 98 ) ;
freqPropellerPrev = m_sQueueSample . m_nFrequency ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , CAR_HELI_ENGINE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nCounter = 1 ;
if ( hunterBool ) {
m_sQueueSample . m_nSampleIndex = SFX_HELI_APACHE_2 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nFrequency = ( volumeModifier + 1 ) * 16000 + freq ;
} else if ( boat ) {
m_sQueueSample . m_nSampleIndex = SFX_SEAPLANE_PRO2 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
} else {
m_sQueueSample . m_nSampleIndex = SFX_CAR_HELI_MAI2 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nFrequency = ( volumeModifier + 1 ) * 16000 + freq ;
}
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 1 ;
2020-10-17 13:57:36 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( Vol ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_fSpeedMultiplier = 6.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = CAR_HELI_ENGINE_MAX_DIST ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 5 ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-10-17 13:57:36 +00:00
AddSampleToRequestedQueue ( ) ;
}
2021-08-29 06:42:32 +00:00
if ( boat ) {
if ( TheCamera . Cams [ TheCamera . ActiveCam ] . Mode = = CCam : : MODE_FIXED & & m_sQueueSample . m_fDistance < CAR_HELI_SEAPLANE_MAX_DIST & & propellerSpeed > 0.0f ) {
m_sQueueSample . m_nVolume = ComputeVolume ( propellerSpeed * CAR_HELI_SEAPLANE_VOLUME , CAR_HELI_SEAPLANE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( accelerateState > 0 | | brakeState > 0 )
m_sQueueSample . m_nFrequency = 18000 + Min ( 1.0f , ( Max ( accelerateState , brakeState ) / 255.0f ) * freqModifier ) * 2204 ;
else
m_sQueueSample . m_nFrequency = 14287 + Min ( 1.0f , freqModifier ) * 3713 ;
if ( propellerSpeed < 1.0f )
m_sQueueSample . m_nFrequency = ( propellerSpeed + 1 ) * ( m_sQueueSample . m_nFrequency > > 1 ) ;
m_sQueueSample . m_nFrequency = Clamp2 ( m_sQueueSample . m_nFrequency , freqSkimmerPrev , 197 ) ;
freqSkimmerPrev = m_sQueueSample . m_nFrequency ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nSampleIndex = SFX_SEAPLANE_PRO4 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = 12 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( propellerSpeed * CAR_HELI_SEAPLANE_VOLUME ) ;
SET_LOOP_OFFSETS ( SFX_SEAPLANE_PRO4 )
m_sQueueSample . m_fSpeedMultiplier = 5.0f ;
m_sQueueSample . m_MaxDistance = CAR_HELI_SEAPLANE_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 7 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
}
} else {
//vacuum cleaner sound
vecPosOld = m_sQueueSample . m_vecPos ;
distanceCalculatedOld = params . m_bDistanceCalculated ;
distanceOld = params . m_fDistance ;
m_sQueueSample . m_vecPos = backPropellerPos ;
params . m_bDistanceCalculated = FALSE ;
params . m_fDistance = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
if ( params . m_fDistance < SQR ( CAR_HELI_REAR_MAX_DIST ) ) {
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
m_sQueueSample . m_nVolume = ComputeVolume ( volumeModifier * CAR_HELI_REAR_VOLUME , CAR_HELI_REAR_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 2 ;
m_sQueueSample . m_nSampleIndex = hunterBool ? SFX_HELI_APACHE_3 : SFX_CAR_HELI_REA ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 1 ;
m_sQueueSample . m_nFrequency = ( volumeModifier + 1.0f ) * 16000 ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( volumeModifier * CAR_HELI_REAR_VOLUME ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 6.0f ;
m_sQueueSample . m_MaxDistance = CAR_HELI_REAR_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 5 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
}
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_vecPos = vecPosOld ;
params . m_bDistanceCalculated = distanceCalculatedOld ;
params . m_fDistance = distanceOld ;
}
}
return TRUE ;
2020-10-17 13:57:36 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
2020-10-24 16:24:48 +00:00
void
2021-07-27 21:41:34 +00:00
cAudioManager : : ProcessRainOnVehicle ( cVehicleParams & params )
2020-10-24 16:24:48 +00:00
{
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( RAIN_ON_VEHICLE_MAX_DIST ) & & CWeather : : Rain > 0.01f & & ( ! CCullZones : : CamNoRain ( ) | | ! CCullZones : : PlayerNoRain ( ) ) ) {
CVehicle * veh = params . m_pVehicle ;
veh - > m_bRainAudioCounter + + ;
if ( veh - > m_bRainAudioCounter > = 2 ) {
veh - > m_bRainAudioCounter = 0 ;
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
uint8 Vol = RAIN_ON_VEHICLE_VOLUME * CWeather : : Rain ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , RAIN_ON_VEHICLE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = veh - > m_bRainSamplesCounter + + ;
if ( veh - > m_bRainSamplesCounter > 4 )
veh - > m_bRainSamplesCounter = 68 ;
m_sQueueSample . m_nSampleIndex = ( m_anRandomTable [ 1 ] & 3 ) + SFX_CAR_RAIN_1 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 9 ;
m_sQueueSample . m_nFrequency = m_anRandomTable [ 1 ] % 4000 + 28000 ;
m_sQueueSample . m_nLoopCount = 1 ;
SET_EMITTING_VOLUME ( Vol ) ;
RESET_LOOP_OFFSETS
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_MaxDistance = RAIN_ON_VEHICLE_MAX_DIST ;
m_sQueueSample . m_bStatic = TRUE ;
SET_SOUND_REVERB ( FALSE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
2020-05-16 17:29:13 +00:00
}
}
}
2021-05-22 10:08:26 +00:00
bool8
2021-07-27 21:41:34 +00:00
cAudioManager : : ProcessReverseGear ( cVehicleParams & params )
2020-05-16 17:29:13 +00:00
{
2021-08-29 06:42:32 +00:00
CVehicle * veh ;
CAutomobile * automobile ;
uint8 Vol ;
2021-07-27 21:41:34 +00:00
float modificator ;
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( REVERSE_GEAR_MAX_DIST ) ) {
veh = params . m_pVehicle ;
if ( veh - > GetModelIndex ( ) = = MI_CADDY )
return TRUE ;
if ( veh - > bEngineOn & & ( veh - > m_fGasPedal < 0.0f | | veh - > m_nCurrentGear = = 0 ) ) {
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
automobile = ( CAutomobile * ) params . m_pVehicle ;
if ( automobile - > m_nDriveWheelsOnGround > 0 )
modificator = params . m_fVelocityChange / params . m_pTransmission - > fMaxReverseVelocity ;
else {
if ( automobile - > m_nDriveWheelsOnGroundPrev > 0 )
automobile - > m_fGasPedalAudio * = 0.4f ;
modificator = automobile - > m_fGasPedalAudio ;
}
modificator = ABS ( modificator ) ;
Vol = ( REVERSE_GEAR_VOLUME * modificator ) ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , REVERSE_GEAR_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
if ( params . m_pVehicle - > m_fGasPedal < 0.0f ) {
m_sQueueSample . m_nCounter = 61 ;
m_sQueueSample . m_nSampleIndex = SFX_REVERSE_GEAR ;
} else {
m_sQueueSample . m_nCounter = 62 ;
m_sQueueSample . m_nSampleIndex = SFX_REVERSE_GEAR_2 ;
}
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFrequency = ( 6000 * modificator ) + 7000 ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
m_sQueueSample . m_MaxDistance = REVERSE_GEAR_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 5 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
2021-07-27 21:41:34 +00:00
}
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
return TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
2020-09-20 22:55:22 +00:00
void
2021-07-27 21:41:34 +00:00
cAudioManager : : ProcessModelHeliVehicle ( cVehicleParams & params )
2020-09-20 22:55:22 +00:00
{
2021-07-27 21:41:34 +00:00
static uint32 prevFreq = 22050 ;
2020-09-20 22:55:22 +00:00
2021-07-27 21:41:34 +00:00
uint32 freq ;
bool8 isPlayerVeh ;
int16 acceletateState ;
int16 brakeState ;
2020-09-20 22:55:22 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( MODEL_CAR_ENGINE_MAX_DIST ) ) {
if ( FindPlayerVehicle ( ) = = params . m_pVehicle )
isPlayerVeh = TRUE ;
else
# ifdef FIX_BUGS
isPlayerVeh = CWorld : : Players [ CWorld : : PlayerInFocus ] . m_pRemoteVehicle = = params . m_pVehicle ;
# else
isPlayerVeh = CWorld : : Players [ CWorld : : PlayerInFocus ] . m_pRemoteVehicle ! = nil ;
# endif
if ( isPlayerVeh ) {
brakeState = Pads [ 0 ] . GetBrake ( ) ;
acceletateState = Max ( Pads [ 0 ] . GetAccelerate ( ) , Abs ( Pads [ 0 ] . GetCarGunUpDown ( ) ) * 2 ) ;
} else {
acceletateState = 255.0f * params . m_pVehicle - > m_fGasPedal ;
brakeState = 255.0f * params . m_pVehicle - > m_fBrakePedal ;
}
if ( acceletateState < brakeState )
acceletateState = brakeState ;
freq = Clamp2 ( 5 * acceletateState + 22050 , ( int ) prevFreq , 30 ) ;
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
m_sQueueSample . m_nVolume = ComputeVolume ( MODEL_HELI_ENGINE_VOLUME , MODEL_CAR_ENGINE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 2 ;
m_sQueueSample . m_nSampleIndex = SFX_CAR_RC_HELI ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFrequency = freq ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( MODEL_HELI_ENGINE_VOLUME ) ;
SET_LOOP_OFFSETS ( SFX_CAR_RC_HELI )
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
m_sQueueSample . m_MaxDistance = MODEL_CAR_ENGINE_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 4 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
if ( isPlayerVeh )
prevFreq = freq ;
2020-09-20 22:55:22 +00:00
}
}
2020-05-16 17:29:13 +00:00
void
2021-07-27 21:41:34 +00:00
cAudioManager : : ProcessModelVehicle ( cVehicleParams & params )
2020-05-16 17:29:13 +00:00
{
2021-07-27 21:41:34 +00:00
static uint32 prevFreq = 14000 ;
2021-08-29 06:42:32 +00:00
static uint8 LastVol = 0 ;
2020-05-16 17:29:13 +00:00
2021-07-27 21:41:34 +00:00
uint32 freq ;
int16 acceletateState ;
int16 brakeState ;
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2021-07-27 21:41:34 +00:00
bool8 isPlayerVeh ;
bool8 vehSlowdown ;
2020-05-16 17:29:13 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( MODEL_CAR_ENGINE_MAX_DIST ) ) {
if ( FindPlayerVehicle ( ) = = params . m_pVehicle )
isPlayerVeh = TRUE ;
else
# ifdef FIX_BUGS
isPlayerVeh = CWorld : : Players [ CWorld : : PlayerInFocus ] . m_pRemoteVehicle = = params . m_pVehicle ;
# else
isPlayerVeh = CWorld : : Players [ CWorld : : PlayerInFocus ] . m_pRemoteVehicle ! = nil ;
# endif
if ( params . m_pVehicle - > m_modelIndex = = MI_RCBANDIT ) {
if ( ( ( CAutomobile * ) params . m_pVehicle ) - > m_nDriveWheelsOnGround ! = 0 ) {
Vol = Min ( 127 , 127.0f * Abs ( params . m_fVelocityChange ) * 3.0f ) ;
freq = 8000.0f * Abs ( params . m_fVelocityChange ) + 14000 ;
} else {
Vol = 127 ;
freq = 25000 ;
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
if ( isPlayerVeh ) {
Vol = Clamp2 ( Vol , LastVol , 7 ) ;
freq = Clamp2 ( freq , prevFreq , 800 ) ;
}
if ( Vol > 0 ) {
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , MODEL_CAR_ENGINE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nCounter = 2 ;
m_sQueueSample . m_nSampleIndex = SFX_RC_REV ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 1 ;
m_sQueueSample . m_nFrequency = freq ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( SFX_RC_REV )
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
m_sQueueSample . m_MaxDistance = MODEL_CAR_ENGINE_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nFramesToPlay = 4 ;
2021-08-29 06:42:32 +00:00
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
2021-07-27 21:41:34 +00:00
}
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
if ( isPlayerVeh ) {
2021-07-27 21:41:34 +00:00
prevFreq = freq ;
2021-08-29 06:42:32 +00:00
LastVol = Vol ;
}
} else if ( params . m_pVehicle ! = nil ) {
if ( isPlayerVeh ) {
acceletateState = Pads [ 0 ] . GetAccelerate ( ) ;
brakeState = Pads [ 0 ] . GetBrake ( ) ;
} else {
acceletateState = 255.0f * params . m_pVehicle - > m_fGasPedal ;
brakeState = 255.0f * params . m_pVehicle - > m_fBrakePedal ;
}
if ( acceletateState < brakeState )
acceletateState = brakeState ;
if ( acceletateState < = 0 ) {
vehSlowdown = TRUE ;
Vol = 127 ;
freq = 18000 ;
} else {
vehSlowdown = FALSE ;
Vol = Min ( 127 , ( 127 * acceletateState / 255 ) * 3.0f * Abs ( params . m_fVelocityChange ) ) ;
freq = Min ( 22000 , ( 8000 * acceletateState / 255 + 14000 ) * 3.0f * Abs ( params . m_fVelocityChange ) ) ;
}
if ( isPlayerVeh & & ! vehSlowdown ) {
Vol = Clamp2 ( Vol , LastVol , 7 ) ;
freq = Clamp2 ( freq , prevFreq , 800 ) ;
}
if ( ! vehSlowdown )
# ifdef THIS_IS_STUPID
freq + = 8000.0f * Abs ( DotProduct ( params . m_pVehicle - > GetUp ( ) , CVector ( 0.0f , 1.0f , 0.0f ) ) ) ;
# else
freq + = 8000.0f * Abs ( params . m_pVehicle - > GetUp ( ) . y ) ;
# endif
if ( params . m_pVehicle - > bIsDrowning )
Vol > > = 2 ;
if ( Vol > 0 ) {
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , MODEL_CAR_ENGINE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
if ( vehSlowdown ) {
m_sQueueSample . m_nCounter = 0 ;
m_sQueueSample . m_nSampleIndex = SFX_RC_IDLE ;
m_sQueueSample . m_nFramesToPlay = 6 ;
} else {
m_sQueueSample . m_nCounter = 2 ;
m_sQueueSample . m_nSampleIndex = SFX_RC_REV ;
m_sQueueSample . m_nFramesToPlay = 4 ;
}
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFrequency = freq ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
m_sQueueSample . m_MaxDistance = MODEL_CAR_ENGINE_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
}
if ( isPlayerVeh ) {
if ( vehSlowdown ) {
prevFreq = freq ;
LastVol = Vol ;
}
2021-07-27 21:41:34 +00:00
}
}
2020-05-16 17:29:13 +00:00
}
}
2021-08-29 06:42:32 +00:00
bool8
2021-07-27 21:41:34 +00:00
cAudioManager : : ProcessVehicleFlatTyre ( cVehicleParams & params )
2020-09-13 18:45:42 +00:00
{
2020-09-18 16:11:28 +00:00
CAutomobile * automobile ;
CBike * bike ;
2021-07-27 21:41:34 +00:00
bool8 wheelBurst ;
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2020-05-16 17:29:13 +00:00
2021-07-27 21:41:34 +00:00
float modifier ;
2020-05-16 17:29:13 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( FLAT_TYRE_MAX_DIST ) ) {
switch ( params . m_VehicleType ) {
case VEHICLE_TYPE_CAR :
automobile = ( CAutomobile * ) params . m_pVehicle ;
wheelBurst = FALSE ;
for ( int i = 0 ; i < 4 ; i + + )
if ( automobile - > Damage . GetWheelStatus ( i ) = = WHEEL_STATUS_BURST & & automobile - > m_aWheelTimer [ i ] > 0.0f )
wheelBurst = TRUE ;
if ( ! wheelBurst )
return TRUE ;
break ;
case VEHICLE_TYPE_BIKE :
bike = ( CBike * ) params . m_pVehicle ;
wheelBurst = FALSE ;
for ( int i = 0 ; i < 2 ; i + + )
if ( bike - > m_wheelStatus [ i ] = = WHEEL_STATUS_BURST & & bike - > m_aWheelTimer [ i ] > 0.0f )
wheelBurst = TRUE ;
if ( ! wheelBurst )
return TRUE ;
break ;
default :
return TRUE ;
}
modifier = Min ( 1.0f , Abs ( params . m_fVelocityChange ) / ( 0.3f * params . m_pTransmission - > fMaxVelocity ) ) ;
if ( modifier > 0.01f ) {
Vol = ( FLAT_TYRE_VOLUME * modifier ) ;
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , FLAT_TYRE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 95 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 5 ;
m_sQueueSample . m_nSampleIndex = SFX_TYRE_BURST_L ;
m_sQueueSample . m_nFrequency = ( 5500.0f * modifier ) + 8000 ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( SFX_TYRE_BURST_L )
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
m_sQueueSample . m_MaxDistance = FLAT_TYRE_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 3 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
return TRUE ;
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2021-07-27 21:41:34 +00:00
}
bool8
cAudioManager : : ProcessVehicleRoadNoise ( cVehicleParams & params )
{
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2021-07-27 21:41:34 +00:00
uint32 freq ;
float multiplier ;
int sampleFreq ;
float velocity ;
uint8 wheelsOnGround ;
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( VEHICLE_ROAD_NOISE_MAX_DIST ) ) {
switch ( params . m_VehicleType ) {
case VEHICLE_TYPE_CAR :
wheelsOnGround = ( ( CAutomobile * ) params . m_pVehicle ) - > m_nWheelsOnGround ;
break ;
case VEHICLE_TYPE_BIKE :
wheelsOnGround = ( ( CBike * ) params . m_pVehicle ) - > m_nWheelsOnGround ;
break ;
default :
wheelsOnGround = 4 ;
break ;
}
if ( ( params . m_pTransmission ! = nil ) & & ( wheelsOnGround > 0 ) ) {
velocity = Abs ( params . m_fVelocityChange ) ;
if ( velocity > 0.0f ) {
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
Vol = VEHICLE_ROAD_NOISE_VOLUME * Min ( 1.0f , velocity / ( 0.5f * params . m_pTransmission - > fMaxVelocity ) ) ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , VEHICLE_ROAD_NOISE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 0 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 3 ;
if ( params . m_pVehicle - > m_nSurfaceTouched = = SURFACE_WATER ) {
m_sQueueSample . m_nSampleIndex = SFX_BOAT_WATER_LOOP ;
freq = 6050 * Vol / VEHICLE_ROAD_NOISE_VOLUME + 16000 ;
} else {
m_sQueueSample . m_nSampleIndex = SFX_ROAD_NOISE ;
multiplier = ( m_sQueueSample . m_fDistance / VEHICLE_ROAD_NOISE_MAX_DIST ) * 0.5f ;
sampleFreq = SampleManager . GetSampleBaseFrequency ( SFX_ROAD_NOISE ) ;
freq = ( sampleFreq * multiplier ) + ( ( 3 * sampleFreq ) > > 2 ) ;
}
m_sQueueSample . m_nFrequency = freq ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 6.0f ;
m_sQueueSample . m_MaxDistance = VEHICLE_ROAD_NOISE_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 4 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
2021-07-27 21:41:34 +00:00
}
2020-09-14 18:47:00 +00:00
}
2021-08-29 06:42:32 +00:00
return TRUE ;
2020-09-14 18:47:00 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2021-07-27 21:41:34 +00:00
}
bool8
cAudioManager : : ProcessWetRoadNoise ( cVehicleParams & params )
{
float relativeVelocity ;
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2021-07-27 21:41:34 +00:00
float multiplier ;
int freq ;
2021-08-29 06:42:32 +00:00
float velChange ;
2021-07-27 21:41:34 +00:00
uint8 wheelsOnGround ;
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( WET_ROAD_NOISE_MAX_DIST ) ) {
switch ( params . m_VehicleType ) {
case VEHICLE_TYPE_CAR :
wheelsOnGround = ( ( CAutomobile * ) params . m_pVehicle ) - > m_nWheelsOnGround ;
break ;
case VEHICLE_TYPE_BIKE :
wheelsOnGround = ( ( CBike * ) params . m_pVehicle ) - > m_nWheelsOnGround ;
break ;
default :
wheelsOnGround = 4 ;
break ;
}
if ( ( params . m_pTransmission ! = nil ) & & ( wheelsOnGround > 0 ) ) {
velChange = Abs ( params . m_fVelocityChange ) ;
if ( velChange > 0.0f ) {
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
relativeVelocity = Min ( 1.0f , velChange / ( 0.5f * params . m_pTransmission - > fMaxVelocity ) ) ;
Vol = WET_ROAD_NOISE_VOLUME * relativeVelocity * CWeather : : WetRoads ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , WET_ROAD_NOISE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 1 ;
m_sQueueSample . m_nSampleIndex = SFX_ROAD_NOISE ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 3 ;
multiplier = ( m_sQueueSample . m_fDistance / WET_ROAD_NOISE_MAX_DIST ) * 0.5f ;
freq = SampleManager . GetSampleBaseFrequency ( SFX_ROAD_NOISE ) ;
m_sQueueSample . m_nFrequency = freq + freq * multiplier ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 6.0f ;
m_sQueueSample . m_MaxDistance = WET_ROAD_NOISE_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 4 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
}
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
return TRUE ;
2020-09-14 18:47:00 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
2021-08-16 07:00:10 +00:00
bool8
2021-07-27 21:41:34 +00:00
cAudioManager : : ProcessVehicleEngine ( cVehicleParams & params )
2020-05-16 17:29:13 +00:00
{
2021-08-29 06:42:32 +00:00
CAutomobile * automobile ;
2021-07-27 21:41:34 +00:00
float relativeGearChange ;
2021-08-29 06:42:32 +00:00
# ifdef FIX_BUGS
uint32 freq = 0 ; // uninitialized variable
# else
uint32 freq ;
# endif
uint8 Vol ;
cTransmission * transmission ;
uint8 currentGear ;
2021-07-27 21:41:34 +00:00
float modificator ;
2021-08-29 06:42:32 +00:00
uint8 wheelsOnGround ;
uint8 wheelsOnGroundPrev ;
CBike * bike ;
tWheelState * wheelState ;
float * gasPedalAudioPtr ;
bool8 isMoped = FALSE ;
bool8 isGolfCart = FALSE ;
float traction = 0.0f ;
if ( params . m_fDistance < SQR ( VEHICLE_ENGINE_MAX_DIST ) ) {
if ( FindPlayerVehicle ( ) = = params . m_pVehicle & & params . m_pVehicle - > GetStatus ( ) = = STATUS_WRECKED ) {
2021-08-16 07:00:10 +00:00
SampleManager . StopChannel ( CHANNEL_PLAYER_VEHICLE_ENGINE ) ;
return TRUE ;
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
if ( params . m_pVehicle - > bEngineOn ) {
2021-08-16 07:00:10 +00:00
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
2021-08-29 06:42:32 +00:00
if ( FindPlayerVehicle ( ) = = params . m_pVehicle & & params . m_pVehicle - > GetModelIndex ( ) ! = MI_CADDY )
2021-08-16 07:00:10 +00:00
ProcessPlayersVehicleEngine ( params , params . m_pVehicle ) ;
2021-08-29 06:42:32 +00:00
else {
transmission = params . m_pTransmission ;
if ( transmission ! = nil ) {
switch ( params . m_pVehicle - > GetModelIndex ( ) ) {
case MI_PIZZABOY :
case MI_FAGGIO :
isMoped = TRUE ;
currentGear = transmission - > nNumberOfGears ;
break ;
case MI_CADDY :
currentGear = transmission - > nNumberOfGears ;
isGolfCart = TRUE ;
break ;
default :
currentGear = params . m_pVehicle - > m_nCurrentGear ;
break ;
}
switch ( params . m_VehicleType ) {
case VEHICLE_TYPE_CAR :
automobile = ( CAutomobile * ) params . m_pVehicle ;
wheelsOnGround = automobile - > m_nDriveWheelsOnGround ;
wheelsOnGroundPrev = automobile - > m_nDriveWheelsOnGroundPrev ;
wheelState = automobile - > m_aWheelState ;
gasPedalAudioPtr = & automobile - > m_fGasPedalAudio ;
break ;
case VEHICLE_TYPE_BIKE :
bike = ( CBike * ) params . m_pVehicle ;
wheelsOnGround = bike - > m_nDriveWheelsOnGround ;
wheelsOnGroundPrev = bike - > m_nDriveWheelsOnGroundPrev ;
wheelState = bike - > m_aWheelState ;
gasPedalAudioPtr = & bike - > m_fGasPedalAudio ;
break ;
default :
debug ( " ** AUDIOLOG: Unrecognised vehicle type %d in ProcessVehicleEngine() * \n " , params . m_VehicleType ) ;
return TRUE ;
}
if ( wheelsOnGround > 0 ) {
if ( params . m_pVehicle - > bIsHandbrakeOn & & ( ! isMoped | | ! isGolfCart ) ) { // what a weird check
if ( params . m_fVelocityChange = = 0.0f )
traction = 0.9f ;
} else if ( params . m_pVehicle - > GetStatus ( ) = = STATUS_SIMPLE | | isMoped | | isGolfCart ) {
2021-08-16 07:00:10 +00:00
traction = 0.0f ;
2021-07-27 21:41:34 +00:00
} else {
2021-08-16 07:00:10 +00:00
switch ( transmission - > nDriveType ) {
case ' 4 ' :
if ( params . m_VehicleType = = VEHICLE_TYPE_BIKE ) {
2021-08-25 05:49:58 +00:00
for ( uint8 i = 0 ; i < 2 ; i + + )
2021-08-16 07:00:10 +00:00
if ( wheelState [ i ] = = WHEEL_STATE_SPINNING )
traction + = 0.1f ;
} else {
2021-08-25 05:49:58 +00:00
for ( uint8 i = 0 ; i < 4 ; i + + )
2021-08-16 07:00:10 +00:00
if ( wheelState [ i ] = = WHEEL_STATE_SPINNING )
traction + = 0.05f ;
}
break ;
case ' F ' :
if ( params . m_VehicleType = = VEHICLE_TYPE_BIKE ) {
if ( wheelState [ BIKEWHEEL_FRONT ] = = WHEEL_STATE_SPINNING )
traction + = 0.2f ;
} else {
if ( wheelState [ CARWHEEL_FRONT_LEFT ] = = WHEEL_STATE_SPINNING )
traction + = 0.1f ;
if ( wheelState [ CARWHEEL_FRONT_RIGHT ] = = WHEEL_STATE_SPINNING )
traction + = 0.1f ;
}
break ;
case ' R ' :
if ( params . m_VehicleType = = VEHICLE_TYPE_BIKE ) {
if ( wheelState [ BIKEWHEEL_REAR ] = = WHEEL_STATE_SPINNING )
traction + = 0.2f ;
} else {
if ( wheelState [ CARWHEEL_REAR_LEFT ] = = WHEEL_STATE_SPINNING )
traction + = 0.1f ;
if ( wheelState [ CARWHEEL_REAR_RIGHT ] = = WHEEL_STATE_SPINNING )
traction + = 0.1f ;
}
break ;
default :
break ;
}
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
if ( transmission - > fMaxVelocity > 0.0f ) {
if ( isMoped | | isGolfCart )
modificator = Min ( 1.0f , Abs ( params . m_fVelocityChange / transmission - > fMaxVelocity > 1.0f ) ) ;
else {
if ( currentGear > 0 ) {
relativeGearChange = Min ( 1.0f ,
params . m_fVelocityChange - transmission - > Gears [ currentGear ] . fShiftDownVelocity ) / transmission - > fMaxVelocity * 2.5f ;
if ( traction = = 0.0f & & params . m_pVehicle - > GetStatus ( ) ! = STATUS_SIMPLE & &
params . m_fVelocityChange < transmission - > Gears [ 1 ] . fShiftUpVelocity )
traction = 0.7f ;
modificator = traction * * gasPedalAudioPtr * 0.95f + ( 1.0f - traction ) * relativeGearChange ;
} else {
modificator = Min ( 1.0f ,
1.0f - Abs ( ( params . m_fVelocityChange - transmission - > Gears [ 0 ] . fShiftDownVelocity ) / transmission - > fMaxReverseVelocity ) ) ;
}
2021-08-16 07:00:10 +00:00
}
2021-08-29 06:42:32 +00:00
} else
modificator = 0.0f ;
} else {
if ( wheelsOnGroundPrev > 0 )
* gasPedalAudioPtr * = 0.4f ;
modificator = * gasPedalAudioPtr ;
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
if ( currentGear = = 0 | | wheelsOnGround > 0 ) {
if ( params . m_VehicleType = = VEHICLE_TYPE_BIKE )
freq = 22050 ;
else
freq = 13000 * modificator + 14000 ;
} else
freq = 1200 * currentGear + 18000 * modificator + 14000 ;
if ( modificator < 0.75f )
Vol = modificator / 0.75f * ( VEHICLE_ENGINE_FULL_VOLUME - VEHICLE_ENGINE_BASE_VOLUME ) + VEHICLE_ENGINE_BASE_VOLUME ;
else
Vol = VEHICLE_ENGINE_FULL_VOLUME ;
2021-08-16 07:00:10 +00:00
} else {
2021-08-29 06:42:32 +00:00
modificator = 0.0f ;
Vol = VEHICLE_ENGINE_BASE_VOLUME ;
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
if ( params . m_pVehicle - > bIsDrowning )
Vol > > = 2 ;
if ( isGolfCart ) {
Vol = 100 * modificator ;
freq = 2130 * modificator + 4270 ;
m_sQueueSample . m_nCounter = 2 ;
}
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , VEHICLE_ENGINE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
if ( ! isGolfCart ) {
if ( params . m_pVehicle - > GetStatus ( ) = = STATUS_SIMPLE ) {
if ( modificator < 0.02f ) {
m_sQueueSample . m_nSampleIndex = aVehicleSettings [ params . m_nIndex ] . m_nBank - CAR_SFX_BANKS_OFFSET + SFX_CAR_IDLE_1 ;
freq = 10000 * modificator + 22050 ;
m_sQueueSample . m_nCounter = 52 ;
} else {
m_sQueueSample . m_nSampleIndex = aVehicleSettings [ params . m_nIndex ] . m_nAccelerationSampleIndex ;
m_sQueueSample . m_nCounter = 2 ;
}
2021-08-16 07:00:10 +00:00
} else {
2021-08-29 06:42:32 +00:00
if ( params . m_pVehicle - > m_fGasPedal < 0.02f ) {
m_sQueueSample . m_nSampleIndex = aVehicleSettings [ params . m_nIndex ] . m_nBank - CAR_SFX_BANKS_OFFSET + SFX_CAR_IDLE_1 ;
freq = 10000 * modificator + 22050 ;
m_sQueueSample . m_nCounter = 52 ;
} else {
m_sQueueSample . m_nSampleIndex = aVehicleSettings [ params . m_nIndex ] . m_nAccelerationSampleIndex ;
m_sQueueSample . m_nCounter = 2 ;
}
2021-08-16 07:00:10 +00:00
}
2021-08-29 06:42:32 +00:00
}
if ( isGolfCart ) {
if ( FindVehicleOfPlayer ( ) = = params . m_pVehicle )
m_sQueueSample . m_nSampleIndex = SFX_CAR_AFTER_ACCEL_12 ;
else
m_sQueueSample . m_nSampleIndex = SFX_CAR_REV_12 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ; // TODO: PS2 bank
m_sQueueSample . m_nFrequency = freq + 20 * m_sQueueSample . m_nEntityIndex % 100 ;
2021-07-27 21:41:34 +00:00
} else {
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ; // TODO: PS2 bank
m_sQueueSample . m_nFrequency = freq + 100 * m_sQueueSample . m_nEntityIndex % 1000 ;
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 3 ;
if ( m_sQueueSample . m_nSampleIndex = = SFX_CAR_IDLE_5 | | m_sQueueSample . m_nSampleIndex = = SFX_CAR_REV_5 )
m_sQueueSample . m_nFrequency > > = 1 ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 6.0f ;
m_sQueueSample . m_MaxDistance = VEHICLE_ENGINE_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 8 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
2021-07-27 21:41:34 +00:00
}
}
}
2021-08-16 07:00:10 +00:00
return TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-08-16 07:00:10 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
2021-07-27 21:41:34 +00:00
void
cAudioManager : : UpdateGasPedalAudio ( CVehicle * veh , int vehType )
2020-05-16 17:29:13 +00:00
{
2021-07-27 21:41:34 +00:00
float gasPedal = Abs ( veh - > m_fGasPedal ) ;
float * gasPealAudioPtr ;
2020-07-16 19:30:55 +00:00
2021-07-27 21:41:34 +00:00
switch ( vehType ) {
case VEHICLE_TYPE_CAR : gasPealAudioPtr = & ( ( CAutomobile * ) veh ) - > m_fGasPedalAudio ; break ;
case VEHICLE_TYPE_BIKE : gasPealAudioPtr = & ( ( CBike * ) veh ) - > m_fGasPedalAudio ; break ;
default : return ;
2020-05-16 17:29:13 +00:00
}
2021-07-27 21:41:34 +00:00
if ( * gasPealAudioPtr < gasPedal )
* gasPealAudioPtr = Min ( * gasPealAudioPtr + 0.09f , gasPedal ) ;
else
* gasPealAudioPtr = Max ( * gasPealAudioPtr - 0.07f , gasPedal ) ;
2020-05-16 17:29:13 +00:00
}
2021-07-27 21:41:34 +00:00
void
cAudioManager : : PlayerJustGotInCar ( )
2020-05-16 17:29:13 +00:00
{
2021-07-27 21:41:34 +00:00
if ( m_bIsInitialised )
bPlayerJustEnteredCar = TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-07-27 21:41:34 +00:00
void
cAudioManager : : PlayerJustLeftCar ( void )
2020-05-16 17:29:13 +00:00
{
2021-07-27 21:41:34 +00:00
// UNUSED: This is a perfectly empty function.
}
2020-05-16 17:29:13 +00:00
2021-07-27 21:41:34 +00:00
void
2021-08-29 06:42:32 +00:00
cAudioManager : : AddPlayerCarSample ( uint8 Vol , uint32 freq , uint32 sample , uint8 bank , uint8 counter , bool8 bLooping )
2021-07-27 21:41:34 +00:00
{
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , VEHICLE_ENGINE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nCounter = counter ;
m_sQueueSample . m_nSampleIndex = sample ;
# ifdef GTA_PS2
m_sQueueSample . m_nBankIndex = bank ;
# else
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
# endif // GTA_PS2
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 0 ;
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nFrequency = freq ;
2021-08-29 06:42:32 +00:00
if ( bLooping ) {
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nFramesToPlay = 8 ;
2021-08-29 06:42:32 +00:00
} else
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( Vol ) ;
2021-07-27 21:41:34 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 6.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = VEHICLE_ENGINE_MAX_DIST ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2021-07-27 21:41:34 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
2020-10-16 21:27:28 +00:00
2021-07-27 21:41:34 +00:00
void
cAudioManager : : ProcessCesna ( cVehicleParams & params )
{
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( CESNA_IDLE_MAX_DIST ) ) {
2020-11-08 17:31:24 +00:00
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( CESNA_VOLUME , CESNA_IDLE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nCounter = 52 ;
m_sQueueSample . m_nSampleIndex = SFX_CESNA_IDLE ;
2020-10-16 21:27:28 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 0 ;
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nFrequency = 12500 ;
2020-10-16 21:27:28 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nFramesToPlay = 8 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( CESNA_VOLUME ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = CESNA_IDLE_MAX_DIST ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-10-16 21:27:28 +00:00
AddSampleToRequestedQueue ( ) ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( CESNA_REV_MAX_DIST ) ) {
m_sQueueSample . m_nVolume = ComputeVolume ( CESNA_VOLUME , CESNA_REV_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nCounter = 2 ;
m_sQueueSample . m_nSampleIndex = SFX_CESNA_REV ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nFrequency = 25000 ;
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nFramesToPlay = 4 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( CESNA_VOLUME ) ;
2021-07-27 21:41:34 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = CESNA_REV_MAX_DIST ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2021-07-27 21:41:34 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
2020-05-16 17:29:13 +00:00
}
}
2021-07-27 21:41:34 +00:00
void
cAudioManager : : ProcessPlayersVehicleEngine ( cVehicleParams & params , CVehicle * veh )
2020-05-16 17:29:13 +00:00
{
2021-07-27 21:41:34 +00:00
static int32 GearFreqAdj [ ] = { 6000 , 6000 , 3400 , 1200 , 0 , - 1000 } ;
2020-05-16 17:29:13 +00:00
2021-08-29 06:42:32 +00:00
float relativeVelocityChange ;
float accelerationMultipler ;
uint8 wheelInUseCounter ;
float time ;
int baseFreq ;
uint8 vol ;
int32 freq ;
2020-06-03 13:16:31 +00:00
2021-08-29 06:42:32 +00:00
int freqModifier ;
uint32 soundOffset ;
uint8 engineSoundType ;
2021-08-18 15:37:43 +00:00
int16 accelerateState ;
int16 brakeState ;
2021-08-29 06:42:32 +00:00
bool8 channelUsed ;
uint8 currentGear ;
float gasPedalAudio ;
CVector pos ;
bool8 slowingDown ;
tWheelState * wheelState ;
CAutomobile * automobile ;
CBike * bike ;
float * gasPedalAudioPtr ;
2021-07-27 21:41:34 +00:00
uint32 gearSoundLength ;
uint8 wheelsOnGround ;
uint8 wheelsOnGroundPrev ;
2020-06-03 13:16:31 +00:00
2021-07-27 21:41:34 +00:00
float velocityChangeForAudio ;
bool8 noGearBox ;
bool8 stuckInSand ;
2020-05-16 17:29:13 +00:00
2021-07-27 21:41:34 +00:00
static int16 LastAccel = 0 ;
static uint8 CurrentPretendGear = 1 ;
static bool8 bLostTractionLastFrame = FALSE ;
static bool8 bHandbrakeOnLastFrame = FALSE ;
2021-08-25 05:49:58 +00:00
static uint32 nCruising = 0 ;
2021-07-27 21:41:34 +00:00
static bool8 bAccelSampleStopped = TRUE ;
2020-10-16 21:27:28 +00:00
2021-08-19 05:45:56 +00:00
bool8 lostTraction = FALSE ;
bool8 isMoped = FALSE ;
bool8 processedAccelSampleStopped = FALSE ;
static uint32 gearSoundStartTime = CTimer : : GetTimeInMilliseconds ( ) ;
2021-08-21 05:42:00 +00:00
# ifdef GTA_PS2
uint8 nChannel = m_bIsSurround ? CHANNEL_DTS_PLAYER_VEHICLE_ENGINE : CHANNEL_PLAYER_VEHICLE_ENGINE ;
# else
uint8 nChannel = CHANNEL_PLAYER_VEHICLE_ENGINE ;
# endif
2021-07-27 21:41:34 +00:00
if ( bPlayerJustEnteredCar ) {
bAccelSampleStopped = TRUE ;
bPlayerJustEnteredCar = FALSE ;
nCruising = 0 ;
LastAccel = 0 ;
bLostTractionLastFrame = FALSE ;
CurrentPretendGear = 1 ;
bHandbrakeOnLastFrame = FALSE ;
}
2021-08-29 06:42:32 +00:00
# ifdef FIX_BUGS // fix acceleration sound on exiting the vehicle
2021-08-26 05:15:18 +00:00
if ( CReplay : : IsPlayingBack ( ) | | FindPlayerPed ( ) - > GetPedState ( ) = = PED_EXIT_CAR ) {
# else
2021-07-27 21:41:34 +00:00
if ( CReplay : : IsPlayingBack ( ) ) {
2021-08-26 05:15:18 +00:00
# endif
2021-08-29 06:42:32 +00:00
accelerateState = ( 255 * Clamp ( params . m_pVehicle - > m_fGasPedal , 0.0f , 1.0f ) ) ;
brakeState = ( 255 * Clamp ( params . m_pVehicle - > m_fBrakePedal , 0.0f , 1.0f ) ) ;
2021-07-27 21:41:34 +00:00
} else {
accelerateState = Pads [ 0 ] . GetAccelerate ( ) ;
brakeState = Pads [ 0 ] . GetBrake ( ) ;
}
2021-08-19 05:45:56 +00:00
slowingDown = params . m_fVelocityChange < - 0.001f ;
channelUsed = SampleManager . GetChannelUsedFlag ( nChannel ) ;
2021-08-29 06:42:32 +00:00
if ( params . m_pVehicle - > GetModelIndex ( ) = = MI_PIZZABOY | | params . m_pVehicle - > GetModelIndex ( ) = = MI_FAGGIO ) {
2021-07-27 21:41:34 +00:00
CurrentPretendGear = params . m_pTransmission - > nNumberOfGears ;
currentGear = CurrentPretendGear ;
if ( params . m_pVehicle - > bIsHandbrakeOn ) {
brakeState = 0 ;
nCruising = 0 ;
LastAccel = 0 ;
accelerateState = 0 ;
2021-08-29 06:42:32 +00:00
} else
2021-07-27 21:41:34 +00:00
nCruising = 1 ;
2021-08-18 15:37:43 +00:00
isMoped = TRUE ;
2021-08-29 06:42:32 +00:00
} else
2021-07-27 21:41:34 +00:00
currentGear = params . m_pVehicle - > m_nCurrentGear ;
2020-10-16 21:27:28 +00:00
2021-07-27 21:41:34 +00:00
switch ( params . m_VehicleType ) {
case VEHICLE_TYPE_CAR :
automobile = ( CAutomobile * ) params . m_pVehicle ;
wheelsOnGround = automobile - > m_nDriveWheelsOnGround ;
wheelsOnGroundPrev = automobile - > m_nDriveWheelsOnGroundPrev ;
gasPedalAudioPtr = & automobile - > m_fGasPedalAudio ;
wheelState = automobile - > m_aWheelState ;
velocityChangeForAudio = automobile - > m_fVelocityChangeForAudio ;
break ;
case VEHICLE_TYPE_BIKE :
bike = ( CBike * ) params . m_pVehicle ;
wheelsOnGround = bike - > m_nDriveWheelsOnGround ;
wheelsOnGroundPrev = bike - > m_nDriveWheelsOnGroundPrev ;
gasPedalAudioPtr = & bike - > m_fGasPedalAudio ;
wheelState = bike - > m_aWheelState ;
velocityChangeForAudio = bike - > m_fVelocityChangeForAudio ;
break ;
default :
debug ( " ** AUDIOLOG: Unrecognised vehicle type %d in ProcessVehicleEngine() * \n " , params . m_VehicleType ) ;
return ;
}
if ( ! isMoped ) {
switch ( params . m_pTransmission - > nDriveType ) {
case ' 4 ' :
if ( params . m_VehicleType ! = VEHICLE_TYPE_BIKE ) {
wheelInUseCounter = 0 ;
for ( uint8 i = 0 ; i < 4 ; i + + ) {
if ( wheelState [ i ] ! = WHEEL_STATE_NORMAL )
2021-08-25 05:49:58 +00:00
wheelInUseCounter + + ;
2021-07-27 21:41:34 +00:00
}
if ( wheelInUseCounter > 2 )
lostTraction = TRUE ;
}
break ;
case ' F ' :
if ( params . m_VehicleType = = VEHICLE_TYPE_BIKE ) {
if ( wheelState [ BIKEWHEEL_FRONT ] ! = WHEEL_STATE_NORMAL )
lostTraction = TRUE ;
2020-05-16 17:29:13 +00:00
} else {
2021-07-27 21:41:34 +00:00
if ( ( wheelState [ CARWHEEL_FRONT_LEFT ] ! = WHEEL_STATE_NORMAL | | wheelState [ CARWHEEL_FRONT_RIGHT ] ! = WHEEL_STATE_NORMAL ) & &
( wheelState [ CARWHEEL_REAR_LEFT ] ! = WHEEL_STATE_NORMAL | | wheelState [ CARWHEEL_REAR_RIGHT ] ! = WHEEL_STATE_NORMAL ) )
lostTraction = TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-07-27 21:41:34 +00:00
break ;
case ' R ' :
if ( params . m_VehicleType = = VEHICLE_TYPE_BIKE ) {
if ( wheelState [ BIKEWHEEL_REAR ] ! = WHEEL_STATE_NORMAL )
lostTraction = TRUE ;
} else {
if ( wheelState [ CARWHEEL_REAR_LEFT ] ! = WHEEL_STATE_NORMAL | | wheelState [ CARWHEEL_REAR_RIGHT ] ! = WHEEL_STATE_NORMAL )
lostTraction = TRUE ;
}
break ;
default :
break ;
2020-10-16 21:27:28 +00:00
}
}
2021-07-27 21:41:34 +00:00
if ( params . m_fVelocityChange ! = 0.0f ) {
time = params . m_pVehicle - > m_vecMoveSpeed . z / params . m_fVelocityChange ;
if ( time > 0.0f )
2021-08-29 06:42:32 +00:00
freqModifier = - ( Min ( 0.2f , time ) * 3000 * 5 ) ;
2021-07-27 21:41:34 +00:00
else
2021-08-29 06:42:32 +00:00
freqModifier = - ( Max ( - 0.2f , time ) * 3000 * 5 ) ;
2021-08-19 05:45:56 +00:00
if ( slowingDown )
2021-07-27 21:41:34 +00:00
freqModifier = - freqModifier ;
} else
freqModifier = 0 ;
2021-08-29 06:42:32 +00:00
2021-07-27 21:41:34 +00:00
if ( params . m_VehicleType = = VEHICLE_TYPE_BIKE & & bike - > bExtraSpeed )
freqModifier + = 1400 ;
2021-08-29 06:42:32 +00:00
2021-07-27 21:41:34 +00:00
gearSoundLength = 0 ;
engineSoundType = aVehicleSettings [ params . m_nIndex ] . m_nBank ;
soundOffset = 3 * ( engineSoundType - CAR_SFX_BANKS_OFFSET ) ;
noGearBox = FALSE ;
switch ( engineSoundType ) {
case SFX_BANK_PONTIAC :
gearSoundLength = 2526 ;
break ;
case SFX_BANK_PORSCHE :
gearSoundLength = 3587 ;
break ;
case SFX_BANK_SPIDER :
gearSoundLength = 4898 ;
break ;
case SFX_BANK_MERC :
gearSoundLength = 4003 ;
break ;
case SFX_BANK_TRUCK :
gearSoundLength = 6289 ;
break ;
case SFX_BANK_HOTROD :
gearSoundLength = 2766 ;
break ;
case SFX_BANK_COBRA :
gearSoundLength = 3523 ;
break ;
case SFX_BANK_PONTIAC_SLOW :
gearSoundLength = 2773 ;
break ;
case SFX_BANK_CADILLAC :
gearSoundLength = 2560 ;
break ;
case SFX_BANK_PATHFINDER :
gearSoundLength = 4228 ;
break ;
case SFX_BANK_PACARD :
gearSoundLength = 4648 ;
break ;
case SFX_BANK_VTWIN :
gearSoundLength = 3480 ;
break ;
case SFX_BANK_HONDA250 :
gearSoundLength = 2380 ;
break ;
case SFX_BANK_SPORTS_BIKE :
gearSoundLength = 2410 ;
break ;
default :
noGearBox = TRUE ;
break ;
}
2021-08-29 06:42:32 +00:00
if ( channelUsed & & nCruising = = 0 & & ! noGearBox ) {
2021-07-27 21:41:34 +00:00
gearSoundLength - = 1000 ;
if ( CTimer : : GetTimeInMilliseconds ( ) - gearSoundStartTime > gearSoundLength ) {
channelUsed = FALSE ;
gearSoundStartTime = CTimer : : GetTimeInMilliseconds ( ) ;
}
2021-08-29 06:42:32 +00:00
} else
gearSoundStartTime = CTimer : : GetTimeInMilliseconds ( ) ;
2021-07-27 21:41:34 +00:00
relativeVelocityChange = 2.0f * params . m_fVelocityChange / params . m_pTransmission - > fMaxVelocity ;
accelerationMultipler = Clamp ( relativeVelocityChange , 0.0f , 1.0f ) ;
gasPedalAudio = accelerationMultipler ;
switch ( engineSoundType ) {
case SFX_BANK_MOPED :
2021-08-25 05:49:58 +00:00
soundOffset + + ;
2021-07-27 21:41:34 +00:00
break ;
case SFX_BANK_HONDA250 :
soundOffset + = 2 ;
break ;
case SFX_BANK_SPORTS_BIKE :
soundOffset + = 3 ;
break ;
default :
break ;
}
2021-08-29 06:42:32 +00:00
if ( accelerateState > 0 ) {
2021-08-25 05:49:58 +00:00
if ( nCruising > 0 ) {
PlayCruising :
bAccelSampleStopped = TRUE ;
SampleManager . StopChannel ( nChannel ) ;
if ( ! isMoped & & ( accelerateState < 150 | | wheelsOnGround = = 0 | | brakeState > 0 | | params . m_pVehicle - > bIsHandbrakeOn
| | lostTraction | | currentGear < params . m_pTransmission - > nNumberOfGears - 1 ) ) {
nCruising = 0 ;
} else {
2021-08-29 06:42:32 +00:00
if ( accelerateState < 220 | | params . m_fVelocityChange + 0.001f < velocityChangeForAudio ) {
if ( nCruising > 3 )
nCruising - - ;
} else
2021-08-25 05:49:58 +00:00
if ( nCruising < 800 )
nCruising + + ;
freq = 27 * nCruising + freqModifier + 22050 ;
if ( engineSoundType = = SFX_BANK_TRUCK )
freq > > = 1 ;
2021-08-29 06:42:32 +00:00
AddPlayerCarSample ( PLAYER_VEHICLE_ENGINE_VOLUME , freq , soundOffset + SFX_CAR_AFTER_ACCEL_1 , engineSoundType , 64 , TRUE ) ;
2021-08-25 05:49:58 +00:00
}
} else {
2021-07-27 21:41:34 +00:00
stuckInSand = params . m_VehicleType = = VEHICLE_TYPE_CAR & & ( ( CAutomobile * ) params . m_pVehicle ) - > bStuckInSand ;
if ( accelerateState < 150 | | wheelsOnGround = = 0 | | params . m_pVehicle - > bIsHandbrakeOn | | lostTraction
| | ( currentGear < 2 & & params . m_fVelocityChange - velocityChangeForAudio < 0.01f ) | | brakeState > 0 ) {
2021-08-25 05:49:58 +00:00
if ( ( ( wheelsOnGround = = 0 | | params . m_pVehicle - > bIsHandbrakeOn | | lostTraction ) & & ! stuckInSand ) | | brakeState > 0 ) {
2021-07-27 21:41:34 +00:00
if ( wheelsOnGround = = 0 & & wheelsOnGroundPrev ! = 0 | | ( params . m_pVehicle - > bIsHandbrakeOn & & ! bHandbrakeOnLastFrame | | lostTraction & & ! bLostTractionLastFrame )
& & wheelsOnGround ! = 0 ) {
* gasPedalAudioPtr * = 0.6f ;
}
freqModifier = 0 ;
2021-08-25 05:49:58 +00:00
if ( engineSoundType = = SFX_BANK_GOLF_CART | | engineSoundType = = SFX_BANK_CAR_CHAINSAW )
baseFreq = ( 15000 * * gasPedalAudioPtr ) + 14000 ;
2021-07-27 21:41:34 +00:00
else
2021-08-25 05:49:58 +00:00
baseFreq = ( 25000 * * gasPedalAudioPtr ) + 14000 ;
2021-08-29 06:42:32 +00:00
vol = ( 25 * * gasPedalAudioPtr ) + 60 ;
2021-08-25 05:49:58 +00:00
} else {
baseFreq = ( 8000 * accelerationMultipler ) + 16000 ;
2021-08-29 06:42:32 +00:00
vol = ( 25 * accelerationMultipler ) + 60 ;
2021-08-25 05:49:58 +00:00
* gasPedalAudioPtr = accelerationMultipler ;
2021-07-27 21:41:34 +00:00
}
freq = freqModifier + baseFreq ;
if ( engineSoundType = = SFX_BANK_TRUCK )
2021-08-25 05:49:58 +00:00
freq > > = 1 ;
2021-07-27 21:41:34 +00:00
if ( channelUsed ) {
2021-08-19 05:45:56 +00:00
SampleManager . StopChannel ( nChannel ) ;
2021-07-27 21:41:34 +00:00
bAccelSampleStopped = TRUE ;
}
if ( params . m_pVehicle - > bIsDrowning )
2021-08-25 05:49:58 +00:00
vol > > = 2 ;
2021-07-27 21:41:34 +00:00
AddPlayerCarSample ( vol , freq , engineSoundType - CAR_SFX_BANKS_OFFSET + SFX_CAR_REV_1 , SFX_BANK_0 , 2 , TRUE ) ;
} else {
TranslateEntity ( & m_sQueueSample . m_vecPos , & pos ) ;
2021-08-12 11:57:16 +00:00
# ifndef EXTERNAL_3D_SOUND
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPan = ComputePan ( m_sQueueSample . m_fDistance , & pos ) ;
2021-08-12 11:57:16 +00:00
# endif
2021-07-27 21:41:34 +00:00
if ( bAccelSampleStopped ) {
if ( CurrentPretendGear ! = 1 | | currentGear ! = 2 )
CurrentPretendGear = Max ( 1 , currentGear - 1 ) ;
processedAccelSampleStopped = TRUE ;
bAccelSampleStopped = FALSE ;
}
2021-08-25 05:49:58 +00:00
2021-08-18 15:37:43 +00:00
if ( ! channelUsed ) {
if ( ! processedAccelSampleStopped ) {
if ( CurrentPretendGear < params . m_pTransmission - > nNumberOfGears - 1 )
2021-08-25 05:49:58 +00:00
CurrentPretendGear + + ;
2021-08-18 15:37:43 +00:00
else {
nCruising = 1 ;
params . m_pVehicle - > bAudioChangingGear = TRUE ;
goto PlayCruising ;
}
2021-07-27 21:41:34 +00:00
}
2021-08-25 05:49:58 +00:00
2021-07-27 21:41:34 +00:00
gearSoundStartTime = CTimer : : GetTimeInMilliseconds ( ) ;
params . m_pVehicle - > bAudioChangingGear = TRUE ;
2021-08-19 05:45:56 +00:00
# ifdef GTA_PS2
SampleManager . InitialiseChannel ( nChannel , soundOffset + SFX_CAR_ACCEL_1 , SFX_BANK_0 ) ;
# else
2021-07-27 21:41:34 +00:00
if ( ! SampleManager . InitialiseChannel ( CHANNEL_PLAYER_VEHICLE_ENGINE , soundOffset + SFX_CAR_ACCEL_1 , SFX_BANK_0 ) )
return ;
2021-08-24 12:25:51 +00:00
# endif
2021-07-27 21:41:34 +00:00
SampleManager . SetChannelLoopCount ( CHANNEL_PLAYER_VEHICLE_ENGINE , 1 ) ;
2021-08-24 12:25:51 +00:00
# ifndef GTA_PS2
2021-07-27 21:41:34 +00:00
SampleManager . SetChannelLoopPoints ( CHANNEL_PLAYER_VEHICLE_ENGINE , 0 , - 1 ) ;
2021-08-19 05:45:56 +00:00
# endif
2021-08-18 15:37:43 +00:00
}
2021-07-27 21:41:34 +00:00
2021-08-12 11:57:16 +00:00
# ifdef EXTERNAL_3D_SOUND
2021-08-29 06:42:32 +00:00
SampleManager . SetChannelEmittingVolume ( CHANNEL_PLAYER_VEHICLE_ENGINE , PLAYER_VEHICLE_ENGINE_VOLUME ) ;
2021-08-18 15:37:43 +00:00
SampleManager . SetChannel3DPosition ( CHANNEL_PLAYER_VEHICLE_ENGINE , pos . x , pos . y , pos . z ) ;
2021-08-29 06:42:32 +00:00
SampleManager . SetChannel3DDistances ( CHANNEL_PLAYER_VEHICLE_ENGINE , VEHICLE_ENGINE_MAX_DIST , VEHICLE_ENGINE_MAX_DIST / 4.0f ) ;
2021-08-12 11:57:16 +00:00
# else
2021-08-29 06:42:32 +00:00
SampleManager . SetChannelVolume ( nChannel , ComputeVolume ( PLAYER_VEHICLE_ENGINE_VOLUME , VEHICLE_ENGINE_MAX_DIST , m_sQueueSample . m_fDistance ) ) ;
2021-08-20 11:28:55 +00:00
SampleManager . SetChannelPan ( nChannel , m_sQueueSample . m_nPan ) ;
2021-08-12 11:57:16 +00:00
# endif
2021-08-18 15:37:43 +00:00
freq = GearFreqAdj [ CurrentPretendGear ] + freqModifier + 22050 ;
if ( engineSoundType = = SFX_BANK_TRUCK )
2021-08-25 05:49:58 +00:00
freq > > = 1 ;
2021-08-24 11:58:41 +00:00
# ifdef USE_TIME_SCALE_FOR_AUDIO
SampleManager . SetChannelFrequency ( nChannel , freq * CTimer : : GetTimeScale ( ) ) ;
# else
2021-08-19 05:45:56 +00:00
SampleManager . SetChannelFrequency ( nChannel , freq ) ;
2021-08-24 11:58:41 +00:00
# endif
2021-08-18 15:37:43 +00:00
if ( ! channelUsed ) {
2021-08-19 07:53:14 +00:00
# ifdef AUDIO_REVERB
2021-08-19 05:45:56 +00:00
SampleManager . SetChannelReverbFlag ( nChannel , m_bDynamicAcousticModelingStatus ! = FALSE ) ;
2021-08-19 07:53:14 +00:00
# endif
2021-08-19 05:45:56 +00:00
SampleManager . StartChannel ( nChannel ) ;
2021-07-27 21:41:34 +00:00
}
}
}
2021-08-29 06:42:32 +00:00
} else {
if ( slowingDown ) {
if ( channelUsed ) {
SampleManager . StopChannel ( nChannel ) ;
bAccelSampleStopped = TRUE ;
}
if ( wheelsOnGround = = 0 | | params . m_pVehicle - > bIsHandbrakeOn | | lostTraction )
gasPedalAudio = * gasPedalAudioPtr ;
else if ( params . m_VehicleType = = VEHICLE_TYPE_BIKE )
gasPedalAudio = 0.0f ;
else
gasPedalAudio = Min ( 1.0f , params . m_fVelocityChange / params . m_pTransmission - > fMaxReverseVelocity ) ;
* gasPedalAudioPtr = Max ( 0.0f , gasPedalAudio ) ;
} else if ( LastAccel > 0 ) {
if ( channelUsed ) {
SampleManager . StopChannel ( nChannel ) ;
bAccelSampleStopped = TRUE ;
}
nCruising = 0 ;
if ( wheelsOnGround = = 0
| | params . m_pVehicle - > bIsHandbrakeOn
| | lostTraction
| | params . m_fVelocityChange < 0.01f & & * gasPedalAudioPtr > 0.2f ) {
if ( params . m_pVehicle - > GetModelIndex ( ) = = MI_PIZZABOY | | params . m_pVehicle - > GetModelIndex ( ) = = MI_FAGGIO ) {
gasPedalAudio = 0.0f ;
} else {
* gasPedalAudioPtr * = 0.6f ;
gasPedalAudio = * gasPedalAudioPtr ;
}
}
if ( gasPedalAudio > 0.05f ) {
freq = ( 5000 * ( ( gasPedalAudio - 0.05f ) / 0.95f ) ) + 19000 ;
vol = ( 25 * ( ( gasPedalAudio - 0.05f ) / 0.95f ) ) + 40 ;
if ( params . m_pVehicle - > bIsDrowning )
vol > > = 2 ;
if ( engineSoundType = = SFX_BANK_TRUCK )
freq > > = 1 ;
AddPlayerCarSample ( vol , freq , soundOffset + SFX_CAR_FINGER_OFF_ACCEL_1 , engineSoundType , 63 , FALSE ) ;
}
}
freq = ( 10000 * gasPedalAudio ) + 22050 ;
vol = 110 - ( 40 * gasPedalAudio ) ;
if ( engineSoundType = = SFX_BANK_TRUCK )
freq > > = 1 ;
if ( params . m_pVehicle - > bIsDrowning )
vol > > = 2 ;
AddPlayerCarSample ( vol , freq , engineSoundType - CAR_SFX_BANKS_OFFSET + SFX_CAR_IDLE_1 , SFX_BANK_0 , 52 , TRUE ) ;
CurrentPretendGear = Max ( 1 , currentGear ) ;
2021-07-27 21:41:34 +00:00
}
LastAccel = accelerateState ;
2021-08-18 15:37:43 +00:00
2021-08-25 05:49:58 +00:00
bHandbrakeOnLastFrame = ! ! params . m_pVehicle - > bIsHandbrakeOn ;
2021-07-27 21:41:34 +00:00
bLostTractionLastFrame = lostTraction ;
}
bool8
cAudioManager : : ProcessVehicleSkidding ( cVehicleParams & params )
{
CAutomobile * automobile ;
CBike * bike ;
uint8 numWheels ;
uint8 wheelsOnGround ;
float gasPedalAudio ;
tWheelState * wheelStateArr ;
cTransmission * transmission ;
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2021-07-27 21:41:34 +00:00
float newSkidVal = 0.0f ;
float skidVal = 0.0f ;
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( VEHICLE_SKIDDING_MAX_DIST ) ) {
switch ( params . m_VehicleType ) {
case VEHICLE_TYPE_CAR :
automobile = ( CAutomobile * ) params . m_pVehicle ;
numWheels = 4 ;
wheelStateArr = automobile - > m_aWheelState ;
wheelsOnGround = automobile - > m_nWheelsOnGround ;
gasPedalAudio = automobile - > m_fGasPedalAudio ;
2021-07-27 21:41:34 +00:00
break ;
2021-08-29 06:42:32 +00:00
case VEHICLE_TYPE_BIKE :
bike = ( CBike * ) params . m_pVehicle ;
numWheels = 2 ;
wheelStateArr = bike - > m_aWheelState ;
wheelsOnGround = bike - > m_nWheelsOnGround ;
gasPedalAudio = bike - > m_fGasPedalAudio ;
2021-07-27 21:41:34 +00:00
break ;
default :
2021-08-29 06:42:32 +00:00
debug ( " \n * AUDIOLOG: ProcessVehicleSkidding() Unsupported vehicle type %d * \n " , params . m_VehicleType ) ;
return TRUE ;
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
if ( wheelsOnGround > 0 ) {
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
for ( uint8 i = 0 ; i < numWheels ; i + + ) {
if ( wheelStateArr [ i ] = = WHEEL_STATE_NORMAL )
continue ;
transmission = params . m_pTransmission ;
switch ( transmission - > nDriveType ) {
case ' 4 ' :
newSkidVal = GetVehicleDriveWheelSkidValue ( params . m_pVehicle , wheelStateArr [ i ] , gasPedalAudio , transmission , params . m_fVelocityChange ) ;
break ;
case ' F ' :
if ( i = = CARWHEEL_FRONT_LEFT | | i = = CARWHEEL_FRONT_RIGHT )
newSkidVal = GetVehicleDriveWheelSkidValue ( params . m_pVehicle , wheelStateArr [ i ] , gasPedalAudio , transmission , params . m_fVelocityChange ) ;
else
newSkidVal = GetVehicleNonDriveWheelSkidValue ( params . m_pVehicle , wheelStateArr [ i ] , transmission , params . m_fVelocityChange ) ;
break ;
case ' R ' :
if ( i = = CARWHEEL_REAR_LEFT | | i = = CARWHEEL_REAR_RIGHT )
newSkidVal = GetVehicleDriveWheelSkidValue ( params . m_pVehicle , wheelStateArr [ i ] , gasPedalAudio , transmission , params . m_fVelocityChange ) ;
else
newSkidVal = GetVehicleNonDriveWheelSkidValue ( params . m_pVehicle , wheelStateArr [ i ] , transmission , params . m_fVelocityChange ) ;
break ;
default :
break ;
}
skidVal = Max ( skidVal , newSkidVal ) ;
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
if ( skidVal > 0.0f ) {
Vol = VEHICLE_SKIDDING_VOLUME * skidVal ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , VEHICLE_SKIDDING_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 3 ;
switch ( params . m_pVehicle - > m_nSurfaceTouched ) {
case SURFACE_GRASS :
case SURFACE_HEDGE :
m_sQueueSample . m_nSampleIndex = SFX_RAIN ;
Vol > > = 2 ;
m_sQueueSample . m_nFrequency = 13000 * skidVal + 35000 ;
m_sQueueSample . m_nVolume > > = 2 ;
if ( m_sQueueSample . m_nVolume = = 0 )
return TRUE ;
break ;
case SURFACE_GRAVEL :
case SURFACE_MUD_DRY :
case SURFACE_SAND :
case SURFACE_WATER :
case SURFACE_SAND_BEACH :
m_sQueueSample . m_nSampleIndex = SFX_GRAVEL_SKID ;
m_sQueueSample . m_nFrequency = 6000 * skidVal + 10000 ;
break ;
default :
m_sQueueSample . m_nSampleIndex = SFX_SKID ;
m_sQueueSample . m_nFrequency = 5000 * skidVal + 11000 ;
if ( params . m_VehicleType = = VEHICLE_TYPE_BIKE )
m_sQueueSample . m_nFrequency + = 2000 ;
break ;
}
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 8 ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
m_sQueueSample . m_MaxDistance = VEHICLE_SKIDDING_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 3 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
}
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
return TRUE ;
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2021-07-27 21:41:34 +00:00
}
float
cAudioManager : : GetVehicleDriveWheelSkidValue ( CVehicle * veh , tWheelState wheelState , float gasPedalAudio , cTransmission * transmission , float velocityChange )
{
float relativeVelChange = 0.0f ;
float velChange ;
float relativeVel ;
switch ( wheelState )
{
case WHEEL_STATE_SPINNING :
if ( gasPedalAudio > 0.4f )
relativeVelChange = ( gasPedalAudio - 0.4f ) * ( 5.0f / 3.0f ) * 0.75f ;
break ;
case WHEEL_STATE_SKIDDING :
relativeVelChange = Min ( 1.0f , Abs ( velocityChange ) / transmission - > fMaxVelocity ) ;
break ;
case WHEEL_STATE_FIXED :
relativeVel = gasPedalAudio ;
if ( relativeVel > 0.4f )
relativeVel = ( gasPedalAudio - 0.4f ) * ( 5.0f / 3.0f ) ;
velChange = Abs ( velocityChange ) ;
if ( velChange > 0.04f )
relativeVelChange = Min ( 1.0f , velChange / transmission - > fMaxVelocity ) ;
if ( relativeVel > relativeVelChange )
relativeVelChange = relativeVel ;
break ;
default :
break ;
}
return Max ( relativeVelChange , Min ( 1.0f , Abs ( veh - > m_vecTurnSpeed . z ) * 20.0f ) ) ;
}
float
cAudioManager : : GetVehicleNonDriveWheelSkidValue ( CVehicle * veh , tWheelState wheelState , cTransmission * transmission , float velocityChange )
{
float relativeVelChange = 0.0f ;
if ( wheelState = = WHEEL_STATE_SKIDDING )
relativeVelChange = Min ( 1.0f , Abs ( velocityChange ) / transmission - > fMaxVelocity ) ;
return Max ( relativeVelChange , Min ( 1.0f , Abs ( veh - > m_vecTurnSpeed . z ) * 20.0f ) ) ;
}
bool8
cAudioManager : : ProcessVehicleHorn ( cVehicleParams & params )
{
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( VEHICLE_HORN_MAX_DIST ) ) {
if ( params . m_pVehicle - > m_bSirenOrAlarm & & UsesSirenSwitching ( params ) )
return TRUE ;
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_pVehicle - > GetModelIndex ( ) = = MI_MRWHOOP )
return TRUE ;
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_pVehicle - > IsAlarmOn ( ) )
return TRUE ;
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_pVehicle - > m_nCarHornTimer > 0 ) {
if ( params . m_pVehicle - > GetStatus ( ) ! = STATUS_PLAYER ) {
params . m_pVehicle - > m_nCarHornTimer = Min ( 44 , params . m_pVehicle - > m_nCarHornTimer ) ;
if ( params . m_pVehicle - > m_nCarHornTimer = = 44 )
params . m_pVehicle - > m_nCarHornPattern = ( m_FrameCounter + m_sQueueSample . m_nEntityIndex ) & 7 ;
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
if ( ! HornPattern [ params . m_pVehicle - > m_nCarHornPattern ] [ 44 - params . m_pVehicle - > m_nCarHornTimer ] )
return TRUE ;
}
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
m_sQueueSample . m_nVolume = ComputeVolume ( params . m_pVehicle - > bIsDrowning ? VEHICLE_HORN_VOLUME / 4 : VEHICLE_HORN_VOLUME , VEHICLE_HORN_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 4 ;
m_sQueueSample . m_nSampleIndex = aVehicleSettings [ params . m_nIndex ] . m_nHornSample ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 2 ;
m_sQueueSample . m_nFrequency = aVehicleSettings [ params . m_nIndex ] . m_nHornFrequency ;
m_sQueueSample . m_nLoopCount = 0 ;
2021-07-27 21:41:34 +00:00
# ifdef FIX_BUGS
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( params . m_pVehicle - > bIsDrowning ? VEHICLE_HORN_VOLUME / 4 : VEHICLE_HORN_VOLUME ) ;
2021-07-27 21:41:34 +00:00
# else
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( VEHICLE_HORN_VOLUME ) ;
2021-07-27 21:41:34 +00:00
# endif
2021-08-29 06:42:32 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 5.0f ;
m_sQueueSample . m_MaxDistance = VEHICLE_HORN_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 4 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
return TRUE ;
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2021-07-27 21:41:34 +00:00
}
bool8
cAudioManager : : UsesSiren ( cVehicleParams & params )
{
return params . m_pVehicle - > UsesSiren ( ) ;
}
bool8
cAudioManager : : UsesSirenSwitching ( cVehicleParams & params )
{
if ( params . m_nIndex = = FIRETRUK | | params . m_nIndex = = MRWHOOP )
return FALSE ;
return UsesSiren ( params ) ;
}
bool8
cAudioManager : : ProcessVehicleSirenOrAlarm ( cVehicleParams & params )
{
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( VEHICLE_SIREN_MAX_DIST ) ) {
CVehicle * veh = params . m_pVehicle ;
if ( veh - > m_bSirenOrAlarm | | veh - > IsAlarmOn ( ) ) {
if ( veh - > IsAlarmOn ( ) ) {
if ( CTimer : : GetTimeInMilliseconds ( ) > veh - > m_nCarHornTimer )
veh - > m_nCarHornTimer = CTimer : : GetTimeInMilliseconds ( ) + 750 ;
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
if ( veh - > m_nCarHornTimer < CTimer : : GetTimeInMilliseconds ( ) + 375 )
return TRUE ;
}
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
Vol = veh - > bIsDrowning ? VEHICLE_SIREN_VOLUME / 4 : VEHICLE_SIREN_VOLUME ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , VEHICLE_SIREN_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 5 ;
if ( UsesSiren ( params ) ) {
if ( params . m_pVehicle - > GetStatus ( ) = = STATUS_ABANDONED )
return TRUE ;
if ( veh - > m_nCarHornTimer > 0 & & params . m_nIndex ! = FIRETRUK & & params . m_nIndex ! = MRWHOOP ) {
m_sQueueSample . m_nSampleIndex = SFX_SIREN_FAST ;
if ( params . m_nIndex = = FBIRANCH )
m_sQueueSample . m_nFrequency = 12668 ;
else
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_SIREN_FAST ) ;
m_sQueueSample . m_nCounter = 60 ;
} else if ( params . m_nIndex = = VICECHEE ) {
m_sQueueSample . m_nSampleIndex = SFX_POLICE_SIREN_SLOW ;
m_sQueueSample . m_nFrequency = 11440 ;
} else {
m_sQueueSample . m_nSampleIndex = aVehicleSettings [ params . m_nIndex ] . m_nSirenOrAlarmSample ;
m_sQueueSample . m_nFrequency = aVehicleSettings [ params . m_nIndex ] . m_nSirenOrAlarmFrequency ;
}
} else {
m_sQueueSample . m_nSampleIndex = aVehicleSettings [ params . m_nIndex ] . m_nHornSample ;
m_sQueueSample . m_nFrequency = aVehicleSettings [ params . m_nIndex ] . m_nHornFrequency ;
}
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 1 ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 7.0f ;
m_sQueueSample . m_MaxDistance = VEHICLE_SIREN_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 5 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
2021-07-27 21:41:34 +00:00
}
}
2021-08-29 06:42:32 +00:00
return TRUE ;
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2021-07-27 21:41:34 +00:00
}
bool8
cAudioManager : : UsesReverseWarning ( uint32 model )
2020-05-16 17:29:13 +00:00
{
2020-09-15 19:06:18 +00:00
return model = = LINERUN | | model = = FIRETRUK | | model = = BUS | | model = = COACH | | model = = PACKER | | model = = FLATBED ;
2020-05-16 17:29:13 +00:00
}
2021-05-22 10:08:26 +00:00
bool8
2020-11-08 17:31:24 +00:00
cAudioManager : : ProcessVehicleReverseWarning ( cVehicleParams & params )
2020-05-16 17:29:13 +00:00
{
2020-11-08 17:31:24 +00:00
CVehicle * veh = params . m_pVehicle ;
2020-05-16 17:29:13 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( VEHICLE_REVERSE_WARNING_MAX_DIST ) ) {
if ( veh - > bEngineOn & & veh - > m_fGasPedal < 0.0f ) {
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
m_sQueueSample . m_nVolume = ComputeVolume ( veh - > bIsDrowning ? VEHICLE_REVERSE_WARNING_VOLUME / 4 : VEHICLE_REVERSE_WARNING_VOLUME , VEHICLE_REVERSE_WARNING_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 12 ;
m_sQueueSample . m_nSampleIndex = SFX_REVERSE_WARNING ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 2 ;
m_sQueueSample . m_nFrequency = ( 100 * m_sQueueSample . m_nEntityIndex % 1024 ) + SampleManager . GetSampleBaseFrequency ( SFX_REVERSE_WARNING ) ;
m_sQueueSample . m_nLoopCount = 0 ;
2020-10-17 18:30:48 +00:00
# ifdef FIX_BUGS
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( veh - > bIsDrowning ? VEHICLE_REVERSE_WARNING_VOLUME / 4 : VEHICLE_REVERSE_WARNING_VOLUME ) ;
2020-10-17 18:30:48 +00:00
# else
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( VEHICLE_REVERSE_WARNING_VOLUME ) ;
2020-10-17 18:30:48 +00:00
# endif
2021-08-29 06:42:32 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
m_sQueueSample . m_MaxDistance = VEHICLE_REVERSE_WARNING_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 3 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
return TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
2021-05-22 10:08:26 +00:00
bool8
2020-11-08 17:31:24 +00:00
cAudioManager : : ProcessVehicleDoors ( cVehicleParams & params )
2020-05-16 17:29:13 +00:00
{
CAutomobile * automobile ;
int8 doorState ;
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2020-05-16 17:29:13 +00:00
float velocity ;
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( VEHICLE_DOORS_MAX_DIST ) ) {
automobile = ( CAutomobile * ) params . m_pVehicle ;
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
for ( uint8 i = 0 ; i < ARRAY_SIZE ( automobile - > Doors ) ; i + + ) {
if ( automobile - > Damage . GetDoorStatus ( i ) = = DOOR_STATUS_SWINGING ) {
doorState = automobile - > Doors [ i ] . m_nDoorState ;
if ( doorState = = DOORST_OPEN | | doorState = = DOORST_CLOSED ) {
velocity = Min ( 0.3f , Abs ( automobile - > Doors [ i ] . m_fAngVel ) ) ;
if ( velocity > 0.0035f ) {
Vol = ( VEHICLE_DOORS_VOLUME * velocity / 0.3f ) ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , VEHICLE_DOORS_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = i + 6 ;
m_sQueueSample . m_nSampleIndex = m_anRandomTable [ 1 ] % 6 + SFX_COL_CAR_PANEL_1 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) + RandomDisplacement ( 1000 ) ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 10 ;
m_sQueueSample . m_nLoopCount = 1 ;
SET_EMITTING_VOLUME ( Vol ) ;
RESET_LOOP_OFFSETS
m_sQueueSample . m_fSpeedMultiplier = 1.0f ;
m_sQueueSample . m_MaxDistance = VEHICLE_DOORS_MAX_DIST ;
m_sQueueSample . m_bStatic = TRUE ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( TRUE ) ;
AddSampleToRequestedQueue ( ) ;
}
2020-05-16 17:29:13 +00:00
}
}
}
}
2021-08-29 06:42:32 +00:00
return TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
2021-05-22 10:08:26 +00:00
bool8
2020-11-08 17:31:24 +00:00
cAudioManager : : ProcessAirBrakes ( cVehicleParams & params )
2020-05-16 17:29:13 +00:00
{
CAutomobile * automobile ;
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2020-05-16 17:29:13 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( AIR_BRAKES_MAX_DIST ) ) {
automobile = ( CAutomobile * ) params . m_pVehicle ;
if ( automobile - > bEngineOn & & ( automobile - > m_fVelocityChangeForAudio > = 0.025f & & params . m_fVelocityChange < 0.025f | |
automobile - > m_fVelocityChangeForAudio < = - 0.025f & & params . m_fVelocityChange > 0.025f ) ) {
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
Vol = m_anRandomTable [ 0 ] % 10 + AIR_BRAKES_VOLUME ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , AIR_BRAKES_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 13 ;
m_sQueueSample . m_nSampleIndex = SFX_AIR_BRAKES ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_AIR_BRAKES ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 4 ) ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 10 ;
m_sQueueSample . m_nLoopCount = 1 ;
SET_EMITTING_VOLUME ( Vol ) ;
RESET_LOOP_OFFSETS
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_MaxDistance = AIR_BRAKES_MAX_DIST ;
m_sQueueSample . m_bStatic = TRUE ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
}
2021-05-22 10:08:26 +00:00
return TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
2021-05-22 10:08:26 +00:00
bool8
2021-07-27 21:41:34 +00:00
cAudioManager : : HasAirBrakes ( uint32 model )
2020-05-16 17:29:13 +00:00
{
2020-09-15 19:06:18 +00:00
return model = = LINERUN | | model = = FIRETRUK | | model = = TRASH | | model = = BUS | | model = = BARRACKS
| | model = = COACH | | model = = PACKER | | model = = FLATBED ;
2020-05-16 17:29:13 +00:00
}
2021-05-22 10:08:26 +00:00
bool8
2020-11-08 17:31:24 +00:00
cAudioManager : : ProcessEngineDamage ( cVehicleParams & params )
2020-05-16 17:29:13 +00:00
{
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2020-05-16 17:29:13 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( ENGINE_DAMAGE_MAX_DIST ) ) {
if ( params . m_pVehicle - > m_modelIndex = = MI_CADDY )
return TRUE ;
if ( params . m_pVehicle - > GetStatus ( ) = = STATUS_WRECKED | | params . m_pVehicle - > m_fHealth > = 390 )
return TRUE ;
if ( params . m_pVehicle - > m_fHealth < 250.0f ) {
Vol = 60 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_CAR_ON_FIRE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 7 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_CAR_ON_FIRE ) ;
2020-09-26 23:03:36 +00:00
} else {
2021-08-29 06:42:32 +00:00
Vol = 30 ;
2020-09-26 23:03:36 +00:00
m_sQueueSample . m_nSampleIndex = SFX_PALM_TREE_LO ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 7 ;
2020-09-26 23:03:36 +00:00
m_sQueueSample . m_nFrequency = 27000 ;
2020-05-16 17:29:13 +00:00
}
2020-11-08 17:31:24 +00:00
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
if ( params . m_pVehicle - > bIsDrowning )
2021-08-29 06:42:32 +00:00
Vol > > = 2 ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , ENGINE_DAMAGE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = 28 ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( Vol ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = ENGINE_DAMAGE_MAX_DIST ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 3 ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
2021-08-29 06:42:32 +00:00
return TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
2021-05-22 10:08:26 +00:00
bool8
2020-11-08 17:31:24 +00:00
cAudioManager : : ProcessCarBombTick ( cVehicleParams & params )
2020-05-16 17:29:13 +00:00
{
2020-09-27 00:35:15 +00:00
uint8 bombType ;
2020-05-16 17:29:13 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( CAR_BOMB_TICK_MAX_DIST ) ) {
if ( params . m_pVehicle - > bEngineOn ) {
switch ( params . m_VehicleType ) {
case VEHICLE_TYPE_CAR :
bombType = params . m_pVehicle - > m_bombType ;
break ;
case VEHICLE_TYPE_BIKE :
bombType = params . m_pVehicle - > m_bombType ;
break ;
default :
debug ( " \n * AUDIOLOG: ProcessCarBombTick() Unsupported vehicle type %d * \n " , params . m_VehicleType ) ;
return TRUE ;
}
if ( bombType = = CARBOMB_TIMEDACTIVE ) {
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
m_sQueueSample . m_nVolume = ComputeVolume ( CAR_BOMB_TICK_VOLUME , CAR_BOMB_TICK_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 35 ;
m_sQueueSample . m_nSampleIndex = SFX_COUNTDOWN ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 0 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_COUNTDOWN ) ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( CAR_BOMB_TICK_VOLUME ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
m_sQueueSample . m_MaxDistance = CAR_BOMB_TICK_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 3 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
2020-09-27 00:35:15 +00:00
}
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
return TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
void
2020-11-08 17:31:24 +00:00
cAudioManager : : ProcessVehicleOneShots ( cVehicleParams & params )
2020-05-16 17:29:13 +00:00
{
int16 event ;
2021-08-29 06:42:32 +00:00
uint8 Vol ;
float eventRelVol ;
float eventVol ;
bool8 bLoop ;
2021-08-18 12:49:06 +00:00
bool8 stereo ;
2020-05-16 17:29:13 +00:00
float maxDist ;
2021-08-29 06:42:32 +00:00
static uint8 WaveIndex = 41 ;
2020-10-25 21:11:04 +00:00
static uint8 GunIndex = 53 ;
2021-08-29 06:42:32 +00:00
cPedParams pedParams ;
static uint32 WaterFallFrame = 0 ;
2020-05-16 17:29:13 +00:00
2021-08-16 07:00:10 +00:00
for ( uint16 i = 0 ; i < m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_AudioEvents ; i + + ) {
2021-08-29 06:42:32 +00:00
bLoop = FALSE ;
2021-08-18 12:49:06 +00:00
stereo = FALSE ;
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
event = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_awAudioEvent [ i ] ;
switch ( event ) {
2021-08-29 06:42:32 +00:00
case SOUND_HELI_BLADE :
{
static uint8 HeliIndex = 89 ;
eventRelVol = ( ( CAutomobile * ) params . m_pVehicle ) - > m_aWheelSpeed [ 1 ] * 50.0f / 11.0f ;
if ( eventRelVol < 0.2f | | eventRelVol = = 1.0f )
continue ;
Vol = ( 1.0f - eventRelVol ) * VEHICLE_ONE_SHOT_HELI_BLADE_VOLUME ;
maxDist = SQR ( VEHICLE_ONE_SHOT_HELI_BLADE_MAX_DIST ) ;
m_sQueueSample . m_nSampleIndex = SFX_CAR_HELI_ROT ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = HeliIndex + + ;
if ( HeliIndex > 90 )
HeliIndex = 89 ;
m_sQueueSample . m_nFrequency = ( 8000 * eventRelVol ) + 16000 ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
m_sQueueSample . m_nPriority = 2 ;
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_HELI_BLADE_MAX_DIST ;
break ;
}
case SOUND_CAR_WINDSHIELD_CRACK :
maxDist = SQR ( VEHICLE_ONE_SHOT_WINDSHIELD_CRACK_MAX_DIST ) ;
m_sQueueSample . m_nSampleIndex = SFX_GLASS_CRACK ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = 68 ;
Vol = m_anRandomTable [ 1 ] % 30 + VEHICLE_ONE_SHOT_WINDSHIELD_CRACK_VOLUME ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_GLASS_CRACK ) ;
m_sQueueSample . m_nPriority = 5 ;
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_WINDSHIELD_CRACK_MAX_DIST ;
break ;
case SOUND_CAR_DOOR_OPEN_BONNET :
case SOUND_CAR_DOOR_OPEN_BUMPER :
case SOUND_CAR_DOOR_OPEN_FRONT_LEFT :
case SOUND_CAR_DOOR_OPEN_FRONT_RIGHT :
case SOUND_CAR_DOOR_OPEN_BACK_LEFT :
case SOUND_CAR_DOOR_OPEN_BACK_RIGHT :
maxDist = SQR ( VEHICLE_ONE_SHOT_DOOR_MAX_DIST ) ;
Vol = m_anRandomTable [ 1 ] % ( MAX_VOLUME - VEHICLE_ONE_SHOT_DOOR_CLOSE_VOLUME ) + VEHICLE_ONE_SHOT_DOOR_CLOSE_VOLUME ;
2020-11-08 17:31:24 +00:00
switch ( aVehicleSettings [ params . m_nIndex ] . m_bDoorType ) {
2020-09-26 23:26:35 +00:00
case OLD_DOOR :
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nSampleIndex = SFX_OLD_CAR_DOOR_OPEN ;
2020-05-16 17:29:13 +00:00
break ;
2020-11-01 19:42:45 +00:00
case NEW_DOOR :
2021-08-29 06:42:32 +00:00
default :
m_sQueueSample . m_nSampleIndex = SFX_NEW_CAR_DOOR_OPEN ;
2020-11-01 19:42:45 +00:00
break ;
2020-09-26 23:26:35 +00:00
case TRUCK_DOOR :
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nSampleIndex = SFX_TRUCK_DOOR_OPEN ;
2020-05-16 17:29:13 +00:00
break ;
2020-09-26 23:26:35 +00:00
case BUS_DOOR :
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_AIR_BRAKES ;
break ;
}
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-11-08 19:26:14 +00:00
# ifdef THIS_IS_STUPID
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nCounter = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_awAudioEvent [ i ] + 10 ;
2020-11-08 19:26:14 +00:00
# else
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nCounter = event + 10 ;
2020-11-08 19:26:14 +00:00
# endif
2020-11-08 17:31:24 +00:00
if ( params . m_pVehicle - > GetVehicleAppearance ( ) = = VEHICLE_APPEARANCE_HELI )
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = 23459 ;
2020-10-25 21:11:04 +00:00
else
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_DOOR_MAX_DIST ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SOUND_CAR_DOOR_CLOSE_BONNET :
case SOUND_CAR_DOOR_CLOSE_BUMPER :
case SOUND_CAR_DOOR_CLOSE_FRONT_LEFT :
case SOUND_CAR_DOOR_CLOSE_FRONT_RIGHT :
case SOUND_CAR_DOOR_CLOSE_BACK_LEFT :
case SOUND_CAR_DOOR_CLOSE_BACK_RIGHT :
maxDist = SQR ( VEHICLE_ONE_SHOT_DOOR_MAX_DIST ) ;
Vol = m_anRandomTable [ 2 ] % ( MAX_VOLUME - VEHICLE_ONE_SHOT_DOOR_OPEN_VOLUME ) + VEHICLE_ONE_SHOT_DOOR_OPEN_VOLUME ;
2020-11-08 17:31:24 +00:00
switch ( aVehicleSettings [ params . m_nIndex ] . m_bDoorType ) {
2020-09-26 23:26:35 +00:00
case OLD_DOOR :
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nSampleIndex = SFX_OLD_CAR_DOOR_CLOSE ;
break ;
case NEW_DOOR :
default :
m_sQueueSample . m_nSampleIndex = SFX_NEW_CAR_DOOR_CLOSE ;
2020-05-16 17:29:13 +00:00
break ;
2020-09-26 23:26:35 +00:00
case TRUCK_DOOR :
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nSampleIndex = SFX_TRUCK_DOOR_CLOSE ;
2020-05-16 17:29:13 +00:00
break ;
2020-09-26 23:26:35 +00:00
case BUS_DOOR :
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_AIR_BRAKES ;
break ;
}
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-11-08 19:26:14 +00:00
# ifdef THIS_IS_STUPID
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nCounter = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_awAudioEvent [ i ] + 22 ;
2020-11-08 19:26:14 +00:00
# else
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nCounter = event + 22 ;
2020-11-08 19:26:14 +00:00
# endif
2020-11-08 17:31:24 +00:00
if ( params . m_pVehicle - > GetVehicleAppearance ( ) = = VEHICLE_APPEARANCE_HELI )
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = 28062 ;
2020-10-25 21:11:04 +00:00
else
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency / 32 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_DOOR_MAX_DIST ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SOUND_CAR_ENGINE_START :
2020-11-08 17:31:24 +00:00
if ( params . m_pVehicle - > GetVehicleAppearance ( ) ! = VEHICLE_APPEARANCE_CAR
| | params . m_pVehicle - > m_modelIndex = = MI_CADDY )
2020-10-25 21:11:04 +00:00
continue ;
2021-08-29 06:42:32 +00:00
Vol = VEHICLE_ONE_SHOT_CAR_ENGINE_START_VOLUME ;
maxDist = SQR ( VEHICLE_ONE_SHOT_CAR_ENGINE_START_MAX_DIST ) ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_CAR_STARTER ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = 33 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_CAR_STARTER ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 1 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_CAR_ENGINE_START_MAX_DIST ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SOUND_WEAPON_HIT_VEHICLE :
m_sQueueSample . m_nSampleIndex = m_anRandomTable [ m_sQueueSample . m_nEntityIndex % ARRAY_SIZE ( m_anRandomTable ) ] % 6 + SFX_BULLET_CAR_1 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = 34 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
m_sQueueSample . m_nPriority = 7 ;
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_WEAPON_HIT_VEHICLE_MAX_DIST ;
maxDist = SQR ( VEHICLE_ONE_SHOT_WEAPON_HIT_VEHICLE_MAX_DIST ) ;
Vol = m_anRandomTable [ 3 ] % 20 + VEHICLE_ONE_SHOT_WEAPON_HIT_VEHICLE_VOLUME ;
break ;
case SOUND_BOMB_TIMED_ACTIVATED :
case SOUND_91 :
case SOUND_BOMB_ONIGNITION_ACTIVATED :
case SOUND_BOMB_TICK :
m_sQueueSample . m_nSampleIndex = SFX_ARM_BOMB ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = 36 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_ARM_BOMB ) ;
m_sQueueSample . m_nPriority = 0 ;
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_BOMB_ARMED_MAX_DIST ;
SET_SOUND_REFLECTION ( TRUE ) ;
Vol = VEHICLE_ONE_SHOT_BOMB_ARMED_VOLUME ;
maxDist = SQR ( VEHICLE_ONE_SHOT_BOMB_ARMED_MAX_DIST ) ;
break ;
case SOUND_CAR_LIGHT_BREAK :
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_GLASS_SHARD_1 ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = 37 ;
m_sQueueSample . m_nFrequency = 9 * SampleManager . GetSampleBaseFrequency ( SFX_GLASS_SHARD_1 ) / 10 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 3 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 5 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_WINDSHIELD_CRACK_MAX_DIST ;
maxDist = SQR ( VEHICLE_ONE_SHOT_WINDSHIELD_CRACK_MAX_DIST ) ;
Vol = m_anRandomTable [ 4 ] % 10 + VEHICLE_ONE_SHOT_CAR_LIGHT_BREAK_VOLUME ;
break ;
case SOUND_PLANE_ON_GROUND :
m_sQueueSample . m_nSampleIndex = SFX_JUMBO_LAND_WHEELS ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = 81 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_JUMBO_LAND_WHEELS ) ;
m_sQueueSample . m_nPriority = 2 ;
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_PLANE_ON_GROUND_MAX_DIST ;
maxDist = SQR ( VEHICLE_ONE_SHOT_PLANE_ON_GROUND_MAX_DIST ) ;
Vol = m_anRandomTable [ 4 ] % 25 + VEHICLE_ONE_SHOT_PLANE_ON_GROUND_VOLUME ;
break ;
case SOUND_CAR_JERK :
m_sQueueSample . m_nSampleIndex = SFX_SHAG_SUSPENSION ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = 87 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_SHAG_SUSPENSION ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 3 ) ;
m_sQueueSample . m_nPriority = 5 ;
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_CAR_HYDRAULIC_MAX_DIST ;
maxDist = SQR ( VEHICLE_ONE_SHOT_CAR_HYDRAULIC_MAX_DIST ) ;
Vol = m_anRandomTable [ 1 ] % 15 + VEHICLE_ONE_SHOT_CAR_HYDRAULIC_VOLUME ;
2020-05-16 17:29:13 +00:00
break ;
case SOUND_CAR_HYDRAULIC_1 :
2021-08-29 06:42:32 +00:00
case SOUND_CAR_HYDRAULIC_2 :
2020-05-25 16:36:09 +00:00
if ( event = = SOUND_CAR_HYDRAULIC_1 )
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nFrequency = 15600 ;
else
m_sQueueSample . m_nFrequency = 13118 ;
m_sQueueSample . m_nSampleIndex = SFX_SUSPENSION_FAST_MOVE ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = 51 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 3 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 5 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_CAR_HYDRAULIC_MAX_DIST ;
maxDist = SQR ( VEHICLE_ONE_SHOT_CAR_HYDRAULIC_MAX_DIST ) ;
Vol = m_anRandomTable [ 0 ] % 15 + VEHICLE_ONE_SHOT_CAR_HYDRAULIC_VOLUME ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SOUND_CAR_HYDRAULIC_3 :
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_SUSPENSION_SLOW_MOVE_LOOP ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = 86 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_SUSPENSION_SLOW_MOVE_LOOP ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 5 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_CAR_HYDRAULIC_MAX_DIST ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nFramesToPlay = 7 ;
2021-08-29 06:42:32 +00:00
bLoop = TRUE ;
maxDist = SQR ( VEHICLE_ONE_SHOT_CAR_HYDRAULIC_MAX_DIST ) ;
Vol = m_anRandomTable [ 0 ] % 15 + VEHICLE_ONE_SHOT_CAR_HYDRAULIC_VOLUME ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SOUND_WATER_FALL :
if ( m_FrameCounter < = WaterFallFrame )
continue ;
WaterFallFrame = m_FrameCounter + 6 ;
m_sQueueSample . m_nSampleIndex = SFX_SPLASH_1 ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nCounter = 15 ;
m_sQueueSample . m_nFrequency = RandomDisplacement ( 1000 ) + 16000 ;
m_sQueueSample . m_nPriority = 1 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_WATER_FALL_MAX_DIST ;
maxDist = SQR ( VEHICLE_ONE_SHOT_WATER_FALL_MAX_DIST ) ;
SET_SOUND_REFLECTION ( TRUE ) ;
Vol = m_anRandomTable [ 4 ] % 20 + VEHICLE_ONE_SHOT_WATER_FALL_VOLUME ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SOUND_CAR_BOMB_TICK :
m_sQueueSample . m_nSampleIndex = SFX_BOMB_BEEP ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = 80 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_BOMB_BEEP ) ;
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_CAR_BOMB_TICK_MAX_DIST ;
maxDist = SQR ( VEHICLE_ONE_SHOT_CAR_BOMB_TICK_MAX_DIST ) ;
SET_SOUND_REFLECTION ( TRUE ) ;
Vol = VEHICLE_ONE_SHOT_CAR_BOMB_TICK_VOLUME ;
break ;
case SOUND_CAR_SPLASH :
eventVol = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ;
if ( eventVol < = 150 )
2020-05-16 17:29:13 +00:00
continue ;
2021-08-29 06:42:32 +00:00
if ( eventVol > 800 )
m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] = 800 ;
eventRelVol = ( m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] - 150 ) / ( 800 - 150 ) ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = ( m_anRandomTable [ 0 ] & 1 ) + SFX_BOAT_SPLASH_1 ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = WaveIndex + + ;
if ( WaveIndex > 46 )
WaveIndex = 41 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = ( 7000 * eventRelVol ) + 6000 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_CAR_SPLASH_MAX_DIST ;
Vol = ( VEHICLE_ONE_SHOT_CAR_SPLASH_VOLUME * eventRelVol ) ;
maxDist = SQR ( VEHICLE_ONE_SHOT_CAR_SPLASH_MAX_DIST ) ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SOUND_CAR_JUMP :
case SOUND_CAR_JUMP_2 :
{
static uint8 iWheelIndex = 82 ;
maxDist = SQR ( VEHICLE_ONE_SHOT_CAR_JUMP_MAX_DIST ) ;
# ifdef THIS_IS_STUPID
if ( m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_awAudioEvent [ i ] = = SOUND_CAR_JUMP_2 ) {
# else
if ( event = = SOUND_CAR_JUMP_2 ) {
2020-10-25 21:11:04 +00:00
# endif
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nSampleIndex = SFX_TYRE_BURST_B ;
Vol = Max ( 50 , 2 * ( 60 * m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ) ) ;
} else {
m_sQueueSample . m_nSampleIndex = SFX_TYRE_BUMP ;
Vol = Max ( VEHICLE_ONE_SHOT_CAR_JUMP_VOLUME , 2 * ( 100 * m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ) ) ;
}
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nCounter = iWheelIndex + + ;
if ( iWheelIndex > 85 )
iWheelIndex = 82 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_TYRE_BUMP ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 4 ) ;
if ( params . m_VehicleType = = VEHICLE_TYPE_BIKE )
m_sQueueSample . m_nFrequency < < = 1 ;
m_sQueueSample . m_nPriority = 6 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_CAR_JUMP_MAX_DIST ;
2020-05-16 17:29:13 +00:00
break ;
}
2021-08-29 06:42:32 +00:00
case SOUND_CAR_TYRE_POP :
{
static uint8 WheelIndex = 91 ;
m_sQueueSample . m_nSampleIndex = SFX_TYRE_BURST ;
2020-09-26 01:10:00 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nCounter = WheelIndex + + ;
if ( WheelIndex > 94 )
WheelIndex = 91 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_TYRE_BURST ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( 2000 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 2 ;
2020-09-26 01:10:00 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_CAR_TYRE_POP_MAX_DIST ;
maxDist = SQR ( VEHICLE_ONE_SHOT_CAR_TYRE_POP_MAX_DIST ) ;
Vol = m_anRandomTable [ 4 ] % ( MAX_VOLUME - VEHICLE_ONE_SHOT_CAR_TYRE_POP_VOLUME ) + VEHICLE_ONE_SHOT_CAR_TYRE_POP_VOLUME ;
2020-09-26 01:10:00 +00:00
break ;
}
2021-08-29 06:42:32 +00:00
case SOUND_WEAPON_SHOT_FIRED :
2020-11-08 17:31:24 +00:00
switch ( params . m_pVehicle - > m_modelIndex ) {
2020-10-25 21:11:04 +00:00
case MI_HUNTER :
case MI_CHOPPER :
case MI_SEASPAR :
case MI_SPARROW :
case MI_MAVERICK :
case MI_VCNMAV :
2020-11-08 17:31:24 +00:00
if ( params . m_pVehicle - > m_modelIndex = = MI_HUNTER ) {
2020-10-25 21:11:04 +00:00
if ( Pads [ 0 ] . GetHandBrake ( ) = = 0 ) {
2021-08-29 06:42:32 +00:00
if ( FindVehicleOfPlayer ( ) ! = params . m_pVehicle ) {
2020-10-25 21:11:04 +00:00
m_sQueueSample . m_nSampleIndex = SFX_M60_LEFT ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
} else {
m_sQueueSample . m_nSampleIndex = SFX_ROCKET_LEFT ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
}
} else {
m_sQueueSample . m_nSampleIndex = SFX_M60_LEFT ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
}
} else {
m_sQueueSample . m_nSampleIndex = SFX_M60_LEFT ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
}
2021-08-29 06:42:32 +00:00
maxDist = SQR ( VEHICLE_ONE_SHOT_WEAPON_SHOT_FIRED_MAX_DIST ) ;
2020-10-25 21:11:04 +00:00
m_sQueueSample . m_nCounter = GunIndex + + ;
2021-08-29 06:42:32 +00:00
Vol = MAX_VOLUME ;
2020-10-25 21:11:04 +00:00
if ( GunIndex > 58 )
GunIndex = 53 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_M60_LEFT ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 4 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 2 ;
2020-10-25 21:11:04 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_WEAPON_SHOT_FIRED_MAX_DIST ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
stereo = TRUE ;
2020-10-25 21:11:04 +00:00
break ;
default :
2020-12-27 08:58:33 +00:00
{
2021-08-29 06:42:32 +00:00
maxDist = SQR ( VEHICLE_ONE_SHOT_WEAPON_SHOT_FIRED_MAX_DIST ) ;
2020-12-27 08:58:33 +00:00
# ifdef FIX_BUGS
2021-08-29 06:42:32 +00:00
uint32 sampleIndex ;
uint32 frequency ;
2020-12-27 08:58:33 +00:00
CPed * pPed = params . m_pVehicle - > pDriver ;
2021-02-11 10:13:03 +00:00
if ( ! pPed )
2021-08-18 14:31:34 +00:00
continue ;
2021-07-22 04:01:04 +00:00
if ( ! pPed - > HasWeaponSlot ( WEAPONSLOT_SUBMACHINEGUN ) | | ( params . m_pVehicle - > GetModelIndex ( ) = = MI_PREDATOR & & ! pPed - > IsPedDoingDriveByShooting ( ) ) ) {
2020-12-27 08:58:33 +00:00
sampleIndex = SFX_UZI_LEFT ;
frequency = SampleManager . GetSampleBaseFrequency ( sampleIndex ) ;
2021-08-29 06:42:32 +00:00
frequency + = RandomDisplacement ( frequency > > 5 ) ;
2020-12-27 08:58:33 +00:00
} else
switch ( pPed - > GetWeapon ( WEAPONSLOT_SUBMACHINEGUN ) . m_eWeaponType ) {
case WEAPONTYPE_TEC9 :
sampleIndex = SFX_TEC_LEFT ;
frequency = RandomDisplacement ( 500 ) + 17000 ;
break ;
case WEAPONTYPE_SILENCED_INGRAM :
sampleIndex = SFX_TEC_LEFT ;
frequency = RandomDisplacement ( 1000 ) + 34000 ;
break ;
case WEAPONTYPE_MP5 :
sampleIndex = SFX_MP5_LEFT ;
frequency = SampleManager . GetSampleBaseFrequency ( sampleIndex ) ;
2021-08-29 06:42:32 +00:00
frequency + = RandomDisplacement ( frequency > > 5 ) ;
2020-12-27 08:58:33 +00:00
break ;
default :
sampleIndex = SFX_UZI_LEFT ;
frequency = SampleManager . GetSampleBaseFrequency ( sampleIndex ) ;
2021-08-29 06:42:32 +00:00
frequency + = RandomDisplacement ( frequency > > 5 ) ;
2020-12-27 08:58:33 +00:00
break ;
}
m_sQueueSample . m_nSampleIndex = sampleIndex ;
# else
2020-10-25 21:11:04 +00:00
m_sQueueSample . m_nSampleIndex = SFX_UZI_LEFT ;
2020-12-27 08:58:33 +00:00
# endif
2020-10-25 21:11:04 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = GunIndex + + ;
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 2 ] % 15 + VEHICLE_ONE_SHOT_WEAPON_SHOT_FIRED_VOLUME ;
2020-12-27 08:58:33 +00:00
if ( GunIndex > 58 ) GunIndex = 53 ;
# ifdef FIX_BUGS
m_sQueueSample . m_nFrequency = frequency ;
# else
2020-10-25 21:11:04 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_UZI_LEFT ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 4 ) ;
2020-12-27 08:58:33 +00:00
# endif
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-10-25 21:11:04 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_WEAPON_SHOT_FIRED_MAX_DIST ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2020-10-25 21:11:04 +00:00
break ;
}
2020-12-27 08:58:33 +00:00
}
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
# ifdef GTA_TRAIN
case SOUND_TRAIN_DOOR_CLOSE :
case SOUND_TRAIN_DOOR_OPEN :
m_sQueueSample . m_nSampleIndex = SFX_AIR_BRAKES ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nCounter = 59 ;
m_sQueueSample . m_nFrequency = RandomDisplacement ( 1000 ) + 11025 ;
m_sQueueSample . m_nPriority = 5 ;
m_sQueueSample . m_fSpeedMultiplier = 5.0f ;
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_TRAIN_DOOR_MAX_DIST ;
maxDist = SQR ( VEHICLE_ONE_SHOT_TRAIN_DOOR_MAX_DIST ) ;
Vol = m_anRandomTable [ 1 ] % 20 + VEHICLE_ONE_SHOT_TRAIN_DOOR_VOLUME ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
# endif
case SOUND_SPLATTER :
{
static uint8 CrunchOffset = 0 ;
m_sQueueSample . m_nSampleIndex = CrunchOffset + SFX_PED_CRUNCH_1 ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nCounter = 48 ;
m_sQueueSample . m_nFrequency = RandomDisplacement ( 6000 ) + 16000 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 1 ;
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_SPLATTER_MAX_DIST ;
2021-08-25 05:49:58 +00:00
CrunchOffset + + ;
2021-08-29 06:42:32 +00:00
maxDist = SQR ( VEHICLE_ONE_SHOT_SPLATTER_MAX_DIST ) ;
Vol = m_anRandomTable [ 4 ] % 20 + VEHICLE_ONE_SHOT_SPLATTER_VOLUME ;
2021-07-27 21:41:34 +00:00
CrunchOffset % = 2 ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2021-07-27 21:41:34 +00:00
break ;
2020-12-25 17:53:36 +00:00
}
2021-08-29 06:42:32 +00:00
case SOUND_CAR_PED_COLLISION :
eventVol = Min ( 20.0f , m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ) ;
Vol = Min ( MAX_VOLUME , ( 3 * ( eventVol / 20 * MAX_VOLUME ) ) / 2 ) ;
if ( Vol = = 0 )
2021-07-27 21:41:34 +00:00
continue ;
2020-12-25 17:53:36 +00:00
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nSampleIndex = SFX_FIGHT_1 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = 50 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 4 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 1 ;
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_CAR_PED_COLLISION_MAX_DIST ;
maxDist = SQR ( VEHICLE_ONE_SHOT_CAR_PED_COLLISION_MAX_DIST ) ;
break ;
case SOUND_PED_HELI_PLAYER_FOUND :
pedParams . m_bDistanceCalculated = params . m_bDistanceCalculated ;
pedParams . m_fDistance = params . m_fDistance ;
SetupPedComments ( pedParams , SOUND_PED_HELI_PLAYER_FOUND ) ;
continue ;
case SOUND_PED_VCPA_PLAYER_FOUND :
pedParams . m_bDistanceCalculated = params . m_bDistanceCalculated ;
pedParams . m_fDistance = params . m_fDistance ;
SetupPedComments ( pedParams , SOUND_PED_VCPA_PLAYER_FOUND ) ;
continue ;
case SOUND_CAR_TANK_TURRET_ROTATE :
eventVol = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ;
if ( eventVol > 96.0f / 2500.0f )
eventVol = 96.0f / 2500.0f ;
m_sQueueSample . m_nSampleIndex = SFX_TANK_TURRET ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = 79 ;
m_sQueueSample . m_nFrequency = ( 3000 * eventVol / ( 96.0f / 2500.0f ) ) + 9000 ;
m_sQueueSample . m_nPriority = 2 ;
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
m_sQueueSample . m_nFramesToPlay = 3 ;
m_sQueueSample . m_MaxDistance = VEHICLE_ONE_SHOT_CAR_TANK_TURRET_MAX_DIST ;
Vol = ( 37 * eventVol / ( 96.0f / 2500.0f ) ) + VEHICLE_ONE_SHOT_CAR_TANK_TURRET_VOLUME ;
maxDist = SQR ( VEHICLE_ONE_SHOT_CAR_TANK_TURRET_MAX_DIST ) ;
bLoop = TRUE ;
2021-07-27 21:41:34 +00:00
break ;
default :
continue ;
}
if ( params . m_fDistance < maxDist ) {
2020-11-08 17:31:24 +00:00
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , m_sQueueSample . m_MaxDistance , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2021-08-29 06:42:32 +00:00
if ( bLoop ) {
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
2021-07-27 21:41:34 +00:00
} else {
m_sQueueSample . m_nLoopCount = 1 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-07-27 21:41:34 +00:00
}
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( Vol ) ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
if ( stereo ) {
2021-08-20 11:28:55 +00:00
if ( m_sQueueSample . m_fDistance < 0.2f * m_sQueueSample . m_MaxDistance ) {
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_bIs2D = TRUE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPan = 0 ;
2021-08-18 12:49:06 +00:00
} else {
stereo = FALSE ;
m_sQueueSample . m_bIs2D = FALSE ;
2021-07-27 21:41:34 +00:00
}
2021-08-18 12:49:06 +00:00
} else m_sQueueSample . m_bIs2D = FALSE ;
2021-07-27 21:41:34 +00:00
AddSampleToRequestedQueue ( ) ;
2021-08-18 12:49:06 +00:00
if ( stereo ) {
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPan = 127 ;
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nSampleIndex + + ;
m_sQueueSample . m_nCounter = GunIndex + + ;
if ( GunIndex > 58 )
GunIndex = 53 ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2021-07-27 21:41:34 +00:00
AddSampleToRequestedQueue ( ) ;
}
continue ;
2020-09-24 22:43:19 +00:00
2021-07-27 21:41:34 +00:00
}
}
2020-09-24 23:17:58 +00:00
}
2021-07-27 21:41:34 +00:00
}
2020-09-24 22:43:19 +00:00
2021-07-27 21:41:34 +00:00
# ifdef GTA_TRAIN
bool8
cAudioManager : : ProcessTrainNoise ( cVehicleParams & params )
{
CTrain * train ;
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2021-07-27 21:41:34 +00:00
float speedMultipler ;
2020-09-25 20:27:28 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( TRAIN_NOISE_FAR_MAX_DIST ) ) {
if ( params . m_fVelocityChange > 0.0f ) {
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
train = ( CTrain * ) params . m_pVehicle ;
speedMultipler = Min ( 1.0f , train - > m_fSpeed * 250.0f / 51.0f ) ;
Vol = ( TRAIN_NOISE_VOLUME * speedMultipler ) ;
if ( train - > m_fWagonPosition = = 0.0f ) {
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , TRAIN_NOISE_FAR_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 32 ;
m_sQueueSample . m_nSampleIndex = SFX_TRAIN_FAR ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 2 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_TRAIN_FAR ) ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
m_sQueueSample . m_MaxDistance = TRAIN_NOISE_FAR_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 3 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
2021-07-27 21:41:34 +00:00
}
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( TRAIN_NOISE_NEAR_MAX_DIST ) ) {
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , TRAIN_NOISE_NEAR_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 33 ;
m_sQueueSample . m_nSampleIndex = SFX_TRAIN_NEAR ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 5 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_TRAIN_NEAR ) + 100 * m_sQueueSample . m_nEntityIndex % 987 ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 6.0f ;
m_sQueueSample . m_MaxDistance = TRAIN_NOISE_NEAR_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 3 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
2021-07-27 21:41:34 +00:00
}
2020-09-25 01:57:11 +00:00
}
2021-08-29 06:42:32 +00:00
return TRUE ;
2020-09-25 01:57:11 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2021-07-27 21:41:34 +00:00
}
# endif
bool8
cAudioManager : : ProcessBoatEngine ( cVehicleParams & params )
{
CBoat * boat ;
float padRelativeAccerate ;
2020-09-25 01:57:11 +00:00
2021-07-27 21:41:34 +00:00
bool8 isV12 = FALSE ;
2021-08-29 06:42:32 +00:00
static uint32 LastFreq = 2000 ;
static uint8 LastVol = 0 ;
2020-09-25 20:27:28 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( BOAT_ENGINE_MAX_DIST ) ) {
2021-07-27 21:41:34 +00:00
boat = ( CBoat * ) params . m_pVehicle ;
if ( boat - > GetStatus ( ) = = STATUS_WRECKED )
return TRUE ;
2020-09-24 23:17:58 +00:00
2021-07-27 21:41:34 +00:00
float freqModificator ;
float volModificator ;
2021-08-29 06:42:32 +00:00
uint8 BaseVol ;
uint32 BaseFreq ;
2020-09-24 23:17:58 +00:00
2021-07-27 21:41:34 +00:00
switch ( boat - > GetModelIndex ( ) ) {
case MI_RIO :
2021-08-29 06:42:32 +00:00
freqModificator = 490 ;
volModificator = 60 ;
2021-07-27 21:41:34 +00:00
BaseVol = 20 ;
BaseFreq = 1888 ;
break ;
case MI_PREDATOR :
case MI_SQUALO :
case MI_SPEEDER :
case MI_COASTG :
case MI_DINGHY :
case MI_JETMAX :
2021-08-29 06:42:32 +00:00
freqModificator = 6000 ;
volModificator = 60 ;
2021-07-27 21:41:34 +00:00
isV12 = TRUE ;
BaseFreq = 9000 ;
BaseVol = 20 ;
break ;
case MI_REEFER :
2021-08-29 06:42:32 +00:00
freqModificator = 715 ;
volModificator = 80 ;
2021-07-27 21:41:34 +00:00
BaseVol = 0 ;
BaseFreq = 3775 ;
break ;
case MI_TROPIC :
case MI_MARQUIS :
2021-08-29 06:42:32 +00:00
freqModificator = 463 ;
volModificator = 60 ;
2021-07-27 21:41:34 +00:00
BaseVol = 20 ;
BaseFreq = 1782 ;
break ;
default :
return TRUE ;
2020-09-26 03:52:15 +00:00
}
2021-07-27 21:41:34 +00:00
bool8 bIsPlayerVeh ;
2020-09-24 23:17:58 +00:00
2021-07-27 21:41:34 +00:00
if ( FindPlayerVehicle ( ) = = params . m_pVehicle ) {
2021-08-29 06:42:32 +00:00
padRelativeAccerate = Max ( Pads [ 0 ] . GetAccelerate ( ) , Pads [ 0 ] . GetBrake ( ) ) / 255.0f ;
2021-07-27 21:41:34 +00:00
bIsPlayerVeh = TRUE ;
} else {
padRelativeAccerate = Max ( params . m_pVehicle - > m_fGasPedal , params . m_pVehicle - > m_fBrakePedal ) ;
bIsPlayerVeh = FALSE ;
}
2020-09-25 20:27:28 +00:00
2021-08-29 06:42:32 +00:00
uint32 Freq = BaseFreq + ( padRelativeAccerate * freqModificator ) ;
uint8 Vol = BaseVol + ( padRelativeAccerate * volModificator ) ;
2021-07-27 21:41:34 +00:00
if ( ! boat - > bPropellerInWater )
Freq = ( 9 * Freq ) / 8 ;
if ( bIsPlayerVeh ) {
if ( Freq > LastFreq ) {
if ( isV12 )
Freq = Min ( Freq , LastFreq + 100 ) ;
2020-09-27 00:35:15 +00:00
else
2021-07-27 21:41:34 +00:00
Freq = Min ( Freq , LastFreq + 15 ) ;
} else {
if ( isV12 )
Freq = Max ( Freq , LastFreq - 100 ) ;
else
Freq = Max ( Freq , LastFreq - 15 ) ;
}
if ( Vol > LastVol )
Vol = Min ( Vol , LastVol + 3 ) ;
else
Vol = Max ( Vol , LastVol - 3 ) ;
}
2020-09-25 20:27:28 +00:00
2021-07-27 21:41:34 +00:00
if ( Vol > 0 ) {
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , BOAT_ENGINE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nFrequency = Freq ;
m_sQueueSample . m_nCounter = 40 ;
if ( isV12 )
m_sQueueSample . m_nSampleIndex = SFX_BOAT_V12_LOOP ;
else
m_sQueueSample . m_nSampleIndex = SFX_BOAT_CRUISER_LOOP ;
2020-09-25 01:57:11 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-09-25 01:57:11 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-12 11:57:16 +00:00
SET_EMITTING_VOLUME ( Vol ) ;
2021-07-27 21:41:34 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = BOAT_ENGINE_MAX_DIST ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 7 ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-09-25 01:57:11 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
2020-09-26 02:41:10 +00:00
2021-07-27 21:41:34 +00:00
if ( boat - > GetModelIndex ( ) = = MI_REEFER ) {
2020-11-08 17:31:24 +00:00
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( BOAT_ENGINE_REEFER_IDLE_VOLUME , BOAT_ENGINE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_nFrequency = 6000 ;
m_sQueueSample . m_nCounter = 39 ;
m_sQueueSample . m_nSampleIndex = SFX_FISHING_BOAT_IDLE ;
m_sQueueSample . m_nFrequency + = ( m_sQueueSample . m_nEntityIndex * 65536 ) % 1000 ;
2021-06-12 16:37:55 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-09-25 01:57:11 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( BOAT_ENGINE_REEFER_IDLE_VOLUME ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2021-07-27 21:41:34 +00:00
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = BOAT_ENGINE_MAX_DIST ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 7 ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-09-25 01:57:11 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
2021-07-27 21:41:34 +00:00
if ( bIsPlayerVeh ) {
LastFreq = Freq ;
LastVol = Vol ;
}
return TRUE ;
2020-09-25 01:57:11 +00:00
}
2021-07-27 21:41:34 +00:00
return FALSE ;
2020-09-24 22:43:19 +00:00
}
2021-07-27 21:41:34 +00:00
bool8
cAudioManager : : ProcessBoatMovingOverWater ( cVehicleParams & params )
2020-09-25 20:27:28 +00:00
{
2021-07-27 21:41:34 +00:00
float velocityChange ;
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2021-07-27 21:41:34 +00:00
float multiplier ;
2020-09-25 20:27:28 +00:00
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( BOAT_MOVING_OVER_WATER_MAX_DIST ) ) {
velocityChange = Abs ( params . m_fVelocityChange ) ;
if ( velocityChange > 0.0005f & & ( ( CBoat * ) params . m_pVehicle ) - > bBoatInWater ) {
velocityChange = Min ( 0.75f , velocityChange ) ;
multiplier = ( velocityChange - 0.0005f ) / ( 1499.0f / 2000.0f ) ;
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
Vol = ( BOAT_MOVING_OVER_WATER_VOLUME * multiplier ) ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , BOAT_MOVING_OVER_WATER_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 38 ;
m_sQueueSample . m_nSampleIndex = SFX_BOAT_WATER_LOOP ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFrequency = ( 6050 * multiplier ) + 16000 ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
m_sQueueSample . m_MaxDistance = BOAT_MOVING_OVER_WATER_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 6 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
}
2021-07-27 21:41:34 +00:00
return TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
void
2020-11-08 17:31:24 +00:00
cAudioManager : : ProcessPlane ( cVehicleParams & params )
2020-05-16 17:29:13 +00:00
{
2020-11-08 17:31:24 +00:00
switch ( params . m_nIndex ) {
2020-05-16 17:29:13 +00:00
case AIRTRAIN :
ProcessJumbo ( params ) ;
break ;
case DEADDODO :
ProcessCesna ( params ) ;
break ;
default :
break ;
}
}
# pragma region JUMBO
uint8 gJumboVolOffsetPercentage ;
void
DoJumboVolOffset ( )
{
2021-07-28 06:39:57 +00:00
if ( ! ( AudioManager . m_FrameCounter % ( AudioManager . m_anRandomTable [ 0 ] % 6 + 3 ) ) )
gJumboVolOffsetPercentage = AudioManager . m_anRandomTable [ 1 ] % 60 ;
2020-05-16 17:29:13 +00:00
}
void
2020-11-08 17:31:24 +00:00
cAudioManager : : ProcessJumbo ( cVehicleParams & params )
2020-05-16 17:29:13 +00:00
{
2020-11-04 08:37:17 +00:00
CPlane * plane ;
2020-05-16 17:29:13 +00:00
float position ;
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( JUMBO_MAX_DIST ) ) {
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
plane = ( CPlane * ) params . m_pVehicle ;
DoJumboVolOffset ( ) ;
position = PlanePathPosition [ plane - > m_nPlaneId ] ;
if ( position > TakeOffPoint ) {
if ( 300.0f + TakeOffPoint < position ) {
if ( LandingPoint - 350.0f < position ) {
if ( position > LandingPoint ) {
if ( plane - > m_fSpeed > 0.103344f )
ProcessJumboDecel ( plane ) ;
else
ProcessJumboTaxi ( ) ;
}
else
ProcessJumboLanding ( plane ) ;
}
else
ProcessJumboFlying ( ) ;
} else
ProcessJumboTakeOff ( plane ) ;
2020-05-16 17:29:13 +00:00
} else {
2021-08-29 06:42:32 +00:00
if ( plane - > m_fSpeed > 0.103344f )
ProcessJumboAccel ( plane ) ;
else
ProcessJumboTaxi ( ) ;
2020-10-24 17:47:03 +00:00
}
2020-05-16 17:29:13 +00:00
}
}
void
cAudioManager : : ProcessJumboTaxi ( )
{
if ( SetupJumboFlySound ( 20 ) ) {
if ( SetupJumboTaxiSound ( 75 ) )
SetupJumboWhineSound ( 18 , 29500 ) ;
}
}
void
cAudioManager : : ProcessJumboAccel ( CPlane * plane )
{
2021-08-29 06:42:32 +00:00
uint32 engineFreq ;
uint8 vol ;
2020-05-16 17:29:13 +00:00
float modificator ;
2021-08-29 06:42:32 +00:00
float freqMult ;
2020-05-16 17:29:13 +00:00
if ( SetupJumboFlySound ( 20 ) ) {
2020-10-24 17:47:03 +00:00
modificator = Min ( 1.0f , ( plane - > m_fSpeed - 0.103344f ) * 1.6760077f ) ;
2021-08-29 06:42:32 +00:00
if ( SetupJumboRumbleSound ( MAX_VOLUME * modificator ) & & SetupJumboTaxiSound ( ( 1.0f - modificator ) * 75 ) ) {
if ( modificator > = 0.2f ) {
freqMult = 1 ;
2020-05-16 17:29:13 +00:00
engineFreq = 22050 ;
2020-05-18 17:17:24 +00:00
vol = MAX_VOLUME ;
2021-08-29 06:42:32 +00:00
} else {
freqMult = modificator * 5 ;
vol = freqMult * MAX_VOLUME ;
engineFreq = freqMult * 6050 + 16000 ;
2020-05-16 17:29:13 +00:00
}
SetupJumboEngineSound ( vol , engineFreq ) ;
2021-08-29 06:42:32 +00:00
SetupJumboWhineSound ( 18 , 14600 * freqMult + 29500 ) ;
2020-05-16 17:29:13 +00:00
}
}
}
void
cAudioManager : : ProcessJumboTakeOff ( CPlane * plane )
{
2021-08-29 06:42:32 +00:00
float modificator = ( PlanePathPosition [ plane - > m_nPlaneId ] - TakeOffPoint ) / 300 ;
if ( SetupJumboFlySound ( ( 107 * modificator ) + 20 ) & & SetupJumboRumbleSound ( MAX_VOLUME * ( 1.0f - modificator ) ) ) {
2020-05-18 17:17:24 +00:00
if ( SetupJumboEngineSound ( MAX_VOLUME , 22050 ) )
2021-08-29 06:42:32 +00:00
SetupJumboWhineSound ( 18 * ( 1.0f - modificator ) , 44100 ) ;
2020-05-16 17:29:13 +00:00
}
}
void
cAudioManager : : ProcessJumboFlying ( )
{
2020-05-18 17:17:24 +00:00
if ( SetupJumboFlySound ( MAX_VOLUME ) )
2020-05-16 17:29:13 +00:00
SetupJumboEngineSound ( 63 , 22050 ) ;
}
void
cAudioManager : : ProcessJumboLanding ( CPlane * plane )
{
2021-08-29 06:42:32 +00:00
float modificator = ( LandingPoint - PlanePathPosition [ plane - > m_nPlaneId ] ) / 350 ;
if ( SetupJumboFlySound ( 107 * modificator + 20 ) ) {
if ( SetupJumboTaxiSound ( 75 * ( 1.0f - modificator ) ) ) {
2020-05-18 17:17:24 +00:00
SetupJumboEngineSound ( MAX_VOLUME , 22050 ) ;
2021-08-29 06:42:32 +00:00
SetupJumboWhineSound ( 18 * ( 1.0f - modificator ) , 14600 * modificator + 29500 ) ;
2020-05-16 17:29:13 +00:00
}
}
}
void
cAudioManager : : ProcessJumboDecel ( CPlane * plane )
{
if ( SetupJumboFlySound ( 20 ) & & SetupJumboTaxiSound ( 75 ) ) {
2021-08-29 06:42:32 +00:00
float modificator = Min ( 1.0f , ( plane - > m_fSpeed - 0.103344f ) * 1.6760077f ) ;
SetupJumboEngineSound ( MAX_VOLUME * modificator , 6050 * modificator + 16000 ) ;
2020-05-16 17:29:13 +00:00
SetupJumboWhineSound ( 18 , 29500 ) ;
}
}
2021-05-22 10:08:26 +00:00
bool8
2020-05-16 17:29:13 +00:00
cAudioManager : : SetupJumboTaxiSound ( uint8 vol )
{
2021-08-29 06:42:32 +00:00
if ( m_sQueueSample . m_fDistance < JUMBO_ENGINE_SOUND_MAX_DIST ) {
uint8 Vol = ( vol > > 1 ) + ( ( vol > > 1 ) * m_sQueueSample . m_fDistance / JUMBO_ENGINE_SOUND_MAX_DIST ) ;
2020-05-16 17:29:13 +00:00
2021-08-29 06:42:32 +00:00
if ( m_sQueueSample . m_fDistance / JUMBO_ENGINE_SOUND_MAX_DIST < 0.7f )
Vol - = Vol * gJumboVolOffsetPercentage / 100 ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , JUMBO_ENGINE_SOUND_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2020-05-16 17:29:13 +00:00
2021-08-29 06:42:32 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 1 ;
m_sQueueSample . m_nSampleIndex = SFX_JUMBO_TAXI ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 1 ;
m_sQueueSample . m_nFrequency = GetJumboTaxiFreq ( ) ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
m_sQueueSample . m_MaxDistance = JUMBO_ENGINE_SOUND_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 4 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
return TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
2021-05-22 10:08:26 +00:00
bool8
2021-08-29 06:42:32 +00:00
cAudioManager : : SetupJumboWhineSound ( uint8 Vol , uint32 freq )
2020-05-16 17:29:13 +00:00
{
2021-08-29 06:42:32 +00:00
if ( m_sQueueSample . m_fDistance < JUMBO_WHINE_SOUND_MAX_DIST ) {
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , JUMBO_WHINE_SOUND_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 2 ;
m_sQueueSample . m_nSampleIndex = SFX_JUMBO_WHINE ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 1 ;
m_sQueueSample . m_nFrequency = freq ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
m_sQueueSample . m_MaxDistance = JUMBO_WHINE_SOUND_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 4 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
return TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
2021-05-22 10:08:26 +00:00
bool8
2021-08-29 06:42:32 +00:00
cAudioManager : : SetupJumboEngineSound ( uint8 Vol , uint32 freq )
2020-05-16 17:29:13 +00:00
{
2021-08-29 06:42:32 +00:00
if ( m_sQueueSample . m_fDistance < JUMBO_ENGINE_SOUND_MAX_DIST ) {
uint8 FinalVol = Vol - gJumboVolOffsetPercentage / 100 ;
m_sQueueSample . m_nVolume = ComputeVolume ( FinalVol , JUMBO_ENGINE_SOUND_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 3 ;
m_sQueueSample . m_nSampleIndex = SFX_JUMBO_ENGINE ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 1 ;
m_sQueueSample . m_nFrequency = freq ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( FinalVol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
m_sQueueSample . m_MaxDistance = JUMBO_ENGINE_SOUND_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 4 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
return TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
2021-05-22 10:08:26 +00:00
bool8
2021-08-29 06:42:32 +00:00
cAudioManager : : SetupJumboFlySound ( uint8 Vol )
2020-05-16 17:29:13 +00:00
{
2021-08-29 06:42:32 +00:00
if ( m_sQueueSample . m_fDistance < JUMBO_MAX_DIST ) {
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , JUMBO_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 0 ;
m_sQueueSample . m_nSampleIndex = SFX_JUMBO_DIST_FLY ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nPriority = 1 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_JUMBO_DIST_FLY ) ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
m_sQueueSample . m_MaxDistance = JUMBO_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 5 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
}
return TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
2021-05-22 10:08:26 +00:00
bool8
2021-08-29 06:42:32 +00:00
cAudioManager : : SetupJumboRumbleSound ( uint8 Vol )
2020-05-16 17:29:13 +00:00
{
2021-08-29 06:42:32 +00:00
if ( m_sQueueSample . m_fDistance < JUMBO_RUMBLE_SOUND_MAX_DIST ) {
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , JUMBO_RUMBLE_SOUND_MAX_DIST , m_sQueueSample . m_fDistance ) ;
if ( m_sQueueSample . m_nVolume > 0 ) {
m_sQueueSample . m_nCounter = 5 ;
m_sQueueSample . m_nSampleIndex = SFX_JUMBO_RUMBLE ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_bIs2D = TRUE ;
m_sQueueSample . m_nPriority = 1 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_JUMBO_RUMBLE ) ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_EMITTING_VOLUME ( Vol ) ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
m_sQueueSample . m_MaxDistance = JUMBO_RUMBLE_SOUND_MAX_DIST ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 12 ;
m_sQueueSample . m_nPan = 0 ;
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
AddSampleToRequestedQueue ( ) ;
m_sQueueSample . m_nCounter = 6 ;
m_sQueueSample . m_nSampleIndex = SFX_JUMBO_RUMBLE ;
m_sQueueSample . m_nFrequency + = 200 ;
m_sQueueSample . m_nPan = 127 ;
AddSampleToRequestedQueue ( ) ;
}
return TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
int32
2021-07-27 21:41:34 +00:00
cAudioManager : : GetJumboTaxiFreq ( )
2020-05-16 17:29:13 +00:00
{
2021-08-29 06:42:32 +00:00
return ( 1.0f / 180 * 10950 * m_sQueueSample . m_fDistance ) + 22050 ; // todo port fix to re3
2020-05-16 17:29:13 +00:00
}
# pragma endregion Some jumbo crap
# pragma endregion All the vehicle audio code
# pragma region PED AUDIO
void
cAudioManager : : ProcessPed ( CPhysical * ped )
{
cPedParams params ;
m_sQueueSample . m_vecPos = ped - > GetPosition ( ) ;
2021-05-22 10:08:26 +00:00
params . m_bDistanceCalculated = FALSE ;
2020-05-16 17:29:13 +00:00
params . m_pPed = ( CPed * ) ped ;
params . m_fDistance = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
2020-11-22 22:00:53 +00:00
ProcessPedOneShots ( params ) ;
2020-05-16 17:29:13 +00:00
}
void
2020-11-22 22:00:53 +00:00
cAudioManager : : ProcessPedOneShots ( cPedParams & params )
2020-05-16 17:29:13 +00:00
{
2021-08-29 06:42:32 +00:00
uint8 Vol ;
uint32 sampleIndex ;
2020-05-16 17:29:13 +00:00
2020-11-22 22:00:53 +00:00
CPed * ped = params . m_pPed ;
2020-05-16 17:29:13 +00:00
2021-05-22 10:08:26 +00:00
bool8 narrowSoundRange ;
2020-05-16 17:29:13 +00:00
int16 sound ;
2021-05-22 10:08:26 +00:00
bool8 stereo ;
2020-05-16 17:29:13 +00:00
CWeapon * weapon ;
2021-08-29 06:42:32 +00:00
# ifdef FIX_BUGS
float maxDist = 0.0f ; // uninitialized variable
# else
float maxDist ;
# endif
2020-05-16 17:29:13 +00:00
static uint8 iSound = 21 ;
2020-11-22 22:00:53 +00:00
static uint32 iSplashFrame = 0 ;
2020-05-16 17:29:13 +00:00
2020-11-22 22:00:53 +00:00
weapon = params . m_pPed - > GetWeapon ( ) ;
2020-05-16 17:29:13 +00:00
for ( uint32 i = 0 ; i < m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_AudioEvents ; i + + ) {
2021-05-22 10:08:26 +00:00
stereo = FALSE ;
narrowSoundRange = FALSE ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
sound = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_awAudioEvent [ i ] ;
switch ( sound ) {
2021-08-29 06:42:32 +00:00
case SOUND_SHIRT_WIND_FLAP :
if ( params . m_pPed - > IsPlayer ( ) & & params . m_pPed - > m_pMyVehicle ) {
if ( m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] > 0.0f ) {
if ( m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] > 1.0f )
m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] = 1.0f ;
Vol = PED_ONE_SHOT_SHIRT_FLAP_VOLUME * m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ;
switch ( params . m_pPed - > m_pMyVehicle - > GetModelIndex ( ) )
{
case MI_ANGEL :
case MI_FREEWAY :
m_sQueueSample . m_nSampleIndex = SFX_CAR_WIND_17 ;
break ;
case MI_PCJ600 :
m_sQueueSample . m_nSampleIndex = SFX_CAR_WIND_20 ;
break ;
case MI_SANCHEZ :
m_sQueueSample . m_nSampleIndex = SFX_CAR_WIND_19 ;
break ;
case MI_PIZZABOY :
case MI_FAGGIO :
m_sQueueSample . m_nSampleIndex = SFX_CAR_WIND_18 ;
break ;
default :
continue ;
} ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = 71 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_SHIRT_FLAP_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_SHIRT_FLAP_MAX_DIST ) ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
SET_EMITTING_VOLUME ( Vol ) ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 3 ;
}
}
continue ;
case SOUND_WEAPON_MINIGUN_ATTACK :
m_sQueueSample . m_nSampleIndex = SFX_MINIGUN_FIRE_LEFT ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = 68 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_MINIGUN_FIRE_LEFT ) ;
m_sQueueSample . m_nPriority = 2 ;
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_MINIGUN_MAX_DIST ;
Vol = PED_ONE_SHOT_MINIGUN_VOLUME ;
maxDist = SQR ( PED_ONE_SHOT_MINIGUN_MAX_DIST ) ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_LOOP_OFFSETS ( SFX_MINIGUN_FIRE_LEFT )
SET_EMITTING_VOLUME ( PED_ONE_SHOT_MINIGUN_VOLUME ) ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 3 ;
break ;
case SOUND_WEAPON_MINIGUN_2 :
m_sQueueSample . m_nSampleIndex = SFX_MINIGUN_FIRE_RIGHT ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = 69 ;
m_sQueueSample . m_nFrequency = 18569 ;
m_sQueueSample . m_nPriority = 2 ;
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_MINIGUN_MAX_DIST ;
Vol = PED_ONE_SHOT_MINIGUN_VOLUME * m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ;
maxDist = SQR ( PED_ONE_SHOT_MINIGUN_MAX_DIST ) ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_LOOP_OFFSETS ( SFX_MINIGUN_FIRE_RIGHT )
SET_EMITTING_VOLUME ( Vol ) ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 3 ;
break ;
case SOUND_WEAPON_MINIGUN_3 :
m_sQueueSample . m_nSampleIndex = SFX_MINIGUN_STOP ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = 69 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_MINIGUN_STOP ) ;
m_sQueueSample . m_nPriority = 4 ;
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_MINIGUN_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_MINIGUN_MAX_DIST ) ;
m_sQueueSample . m_nLoopCount = 1 ;
RESET_LOOP_OFFSETS
Vol = PED_ONE_SHOT_MINIGUN_VOLUME ;
SET_EMITTING_VOLUME ( PED_ONE_SHOT_MINIGUN_VOLUME ) ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_bStatic = TRUE ;
SET_SOUND_REFLECTION ( TRUE ) ;
break ;
case SOUND_SKATING :
{
uint32 soundParams = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ;
uint8 param1 = soundParams & 0xFF ;
uint32 param2 = soundParams > > 8 ;
m_sQueueSample . m_nSampleIndex = ( m_anRandomTable [ 3 ] & 1 ) + SFX_SKATE_1 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = iSound ;
stereo = TRUE ;
iSound + + ;
m_sQueueSample . m_nFrequency = m_anRandomTable [ 1 ] % 1000 + 17000 ;
if ( param2 = = 0 )
m_sQueueSample . m_nFrequency = ( 3 * m_sQueueSample . m_nFrequency ) > > 2 ;
m_sQueueSample . m_nPriority = 6 ;
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_SKATING_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_SKATING_MAX_DIST ) ;
m_sQueueSample . m_nLoopCount = 1 ;
RESET_LOOP_OFFSETS
Vol = ( m_anRandomTable [ 2 ] % 20 + PED_ONE_SHOT_SKATING_VOLUME ) * param1 / MAX_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_bStatic = TRUE ;
SET_SOUND_REFLECTION ( TRUE ) ;
break ;
}
case SOUND_FALL_LAND :
case SOUND_FALL_COLLAPSE :
if ( ped - > bIsInTheAir )
continue ;
maxDist = SQR ( PED_ONE_SHOT_FALL_MAX_DIST ) ;
Vol = m_anRandomTable [ 3 ] % 20 + PED_ONE_SHOT_FALL_VOLUME ;
if ( ped - > m_nSurfaceTouched = = SURFACE_WATER )
m_sQueueSample . m_nSampleIndex = ( m_anRandomTable [ 3 ] % 4 ) + SFX_FOOTSTEP_WATER_1 ;
else if ( sound = = SOUND_FALL_LAND )
m_sQueueSample . m_nSampleIndex = SFX_BODY_LAND ;
else
m_sQueueSample . m_nSampleIndex = SFX_BODY_LAND_AND_FALL ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = 1 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency / 17 ) ;
m_sQueueSample . m_nPriority = 2 ;
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_FALL_MAX_DIST ;
m_sQueueSample . m_nLoopCount = 1 ;
RESET_LOOP_OFFSETS
SET_EMITTING_VOLUME ( Vol ) ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_bStatic = TRUE ;
SET_SOUND_REFLECTION ( TRUE ) ;
break ;
2020-05-16 17:29:13 +00:00
case SOUND_STEP_START :
case SOUND_STEP_END :
2021-01-04 22:31:31 +00:00
if ( params . m_pPed - > bIsInTheAir )
continue ;
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 3 ] % 15 + PED_ONE_SHOT_STEP_VOLUME ;
2021-01-04 22:31:31 +00:00
if ( FindPlayerPed ( ) ! = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_pEntity )
2021-08-29 06:42:32 +00:00
Vol > > = 1 ;
maxDist = SQR ( PED_ONE_SHOT_STEP_MAX_DIST ) ;
2021-01-04 22:31:31 +00:00
switch ( params . m_pPed - > m_nSurfaceTouched ) {
case SURFACE_GRASS :
sampleIndex = m_anRandomTable [ 1 ] % 5 + SFX_FOOTSTEP_GRASS_1 ;
break ;
case SURFACE_GRAVEL :
case SURFACE_MUD_DRY :
sampleIndex = m_anRandomTable [ 4 ] % 5 + SFX_FOOTSTEP_GRAVEL_1 ;
break ;
case SURFACE_CAR :
case SURFACE_GARAGE_DOOR :
case SURFACE_CAR_PANEL :
case SURFACE_THICK_METAL_PLATE :
case SURFACE_SCAFFOLD_POLE :
case SURFACE_LAMP_POST :
case SURFACE_FIRE_HYDRANT :
case SURFACE_GIRDER :
case SURFACE_METAL_CHAIN_FENCE :
case SURFACE_CONTAINER :
case SURFACE_NEWS_VENDOR :
sampleIndex = m_anRandomTable [ 0 ] % 5 + SFX_FOOTSTEP_METAL_1 ;
break ;
case SURFACE_SAND :
sampleIndex = ( m_anRandomTable [ 4 ] & 3 ) + SFX_FOOTSTEP_SAND_1 ;
break ;
case SURFACE_WATER :
sampleIndex = ( m_anRandomTable [ 3 ] & 3 ) + SFX_FOOTSTEP_WATER_1 ;
break ;
case SURFACE_WOOD_CRATES :
case SURFACE_WOOD_BENCH :
case SURFACE_WOOD_SOLID :
sampleIndex = m_anRandomTable [ 2 ] % 5 + SFX_FOOTSTEP_WOOD_1 ;
break ;
case SURFACE_HEDGE :
sampleIndex = m_anRandomTable [ 2 ] % 5 + SFX_COL_VEG_1 ;
break ;
default :
sampleIndex = m_anRandomTable [ 2 ] % 5 + SFX_FOOTSTEP_CONCRETE_1 ;
break ;
2020-05-16 17:29:13 +00:00
}
2021-01-04 22:31:31 +00:00
m_sQueueSample . m_nSampleIndex = sampleIndex ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_awAudioEvent [ i ] - SOUND_STEP_START + 1 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency / 17 ) ;
switch ( params . m_pPed - > m_nMoveState ) {
case PEDMOVE_WALK :
2021-08-29 06:42:32 +00:00
Vol > > = 2 ;
2021-01-04 22:31:31 +00:00
m_sQueueSample . m_nFrequency = 9 * m_sQueueSample . m_nFrequency / 10 ;
break ;
case PEDMOVE_RUN :
2021-08-29 06:42:32 +00:00
Vol > > = 1 ;
2021-01-04 22:31:31 +00:00
m_sQueueSample . m_nFrequency = 11 * m_sQueueSample . m_nFrequency / 10 ;
break ;
case PEDMOVE_SPRINT :
m_sQueueSample . m_nFrequency = 12 * m_sQueueSample . m_nFrequency / 10 ;
break ;
default :
break ;
}
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 5 ;
2021-01-04 22:31:31 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_STEP_MAX_DIST ;
2021-01-04 22:31:31 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SOUND_WEAPON_AK47_BULLET_ECHO :
{
uint32 weaponType = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ;
switch ( weaponType ) {
case WEAPONTYPE_SPAS12_SHOTGUN :
m_sQueueSample . m_nSampleIndex = SFX_SPAS12_TAIL_LEFT ;
break ;
case WEAPONTYPE_M60 :
case WEAPONTYPE_HELICANNON :
m_sQueueSample . m_nSampleIndex = SFX_M60_TAIL_LEFT ;
case WEAPONTYPE_UZI :
case WEAPONTYPE_MP5 :
m_sQueueSample . m_nSampleIndex = SFX_UZI_END_LEFT ;
break ;
case WEAPONTYPE_TEC9 :
case WEAPONTYPE_SILENCED_INGRAM :
m_sQueueSample . m_nSampleIndex = SFX_TEC_TAIL ;
break ;
case WEAPONTYPE_M4 :
case WEAPONTYPE_RUGER :
case WEAPONTYPE_SNIPERRIFLE :
case WEAPONTYPE_LASERSCOPE :
m_sQueueSample . m_nSampleIndex = SFX_RUGER_TAIL ;
break ;
break ;
default :
2021-01-04 22:31:31 +00:00
continue ;
2020-05-16 17:29:13 +00:00
}
2021-01-04 22:31:31 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
narrowSoundRange = TRUE ;
switch ( weaponType ) {
case WEAPONTYPE_SILENCED_INGRAM :
m_sQueueSample . m_nFrequency = 26000 ;
break ;
case WEAPONTYPE_TEC9 :
m_sQueueSample . m_nFrequency = 13000 ;
break ;
case WEAPONTYPE_M4 :
m_sQueueSample . m_nFrequency = 15600 ;
break ;
case WEAPONTYPE_LASERSCOPE :
m_sQueueSample . m_nFrequency = 7904 ;
break ;
case WEAPONTYPE_SNIPERRIFLE :
m_sQueueSample . m_nFrequency = 9959 ;
break ;
default :
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
break ;
}
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 4 ) ;
m_sQueueSample . m_nPriority = 3 ;
2021-01-04 22:31:31 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ) ;
2021-01-04 22:31:31 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 4 ] % 10 + PED_ONE_SHOT_WEAPON_BULLET_ECHO_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
}
case SOUND_WEAPON_FLAMETHROWER_FIRE :
m_sQueueSample . m_nSampleIndex = SFX_FLAMETHROWER_START_LEFT ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_FLAMETHROWER_START_LEFT ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 4 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_FLAMETHROWER_FIRE_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_FLAMETHROWER_FIRE_MAX_DIST ) ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = PED_ONE_SHOT_WEAPON_FLAMETHROWER_FIRE_VOLUME ;
SET_EMITTING_VOLUME ( PED_ONE_SHOT_WEAPON_FLAMETHROWER_FIRE_VOLUME ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2020-11-22 22:00:53 +00:00
break ;
2020-05-16 17:29:13 +00:00
case SOUND_WEAPON_SHOT_FIRED :
2020-05-25 00:56:17 +00:00
weapon = ped - > GetWeapon ( ) ;
2020-11-22 22:00:53 +00:00
if ( ! weapon )
continue ;
2020-05-16 17:29:13 +00:00
switch ( weapon - > m_eWeaponType ) {
2021-08-29 06:42:32 +00:00
case WEAPONTYPE_PYTHON :
m_sQueueSample . m_nSampleIndex = SFX_PYTHON_LEFT ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = iSound + + ;
2021-05-22 10:08:26 +00:00
narrowSoundRange = TRUE ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_PYTHON_LEFT ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
m_sQueueSample . m_nPriority = 3 ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ) ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = MAX_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-11-22 22:00:53 +00:00
break ;
2020-05-16 17:29:13 +00:00
case WEAPONTYPE_COLT45 :
m_sQueueSample . m_nSampleIndex = SFX_COLT45_LEFT ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
2021-05-22 10:08:26 +00:00
narrowSoundRange = TRUE ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_COLT45_LEFT ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ) ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 1 ] % 10 + PED_ONE_SHOT_WEAPON_COLT45_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case WEAPONTYPE_ROCKET :
case WEAPONTYPE_ROCKETLAUNCHER :
m_sQueueSample . m_nSampleIndex = SFX_ROCKET_LEFT ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
2021-05-22 10:08:26 +00:00
narrowSoundRange = TRUE ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_ROCKET_LEFT ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
m_sQueueSample . m_nPriority = 1 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ) ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 0 ] % 20 + PED_ONE_SHOT_WEAPON_ROCKETLAUNCHER_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case WEAPONTYPE_FLAMETHROWER :
m_sQueueSample . m_nSampleIndex = SFX_FLAMETHROWER_LEFT ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nCounter = 9 ;
Vol = PED_ONE_SHOT_WEAPON_FLAMETHROWER_VOLUME ;
m_sQueueSample . m_nFrequency = ( 10 * m_sQueueSample . m_nEntityIndex % 2048 ) + SampleManager . GetSampleBaseFrequency ( SFX_FLAMETHROWER_LEFT ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_FLAMETHROWER_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_FLAMETHROWER_MAX_DIST ) ;
m_sQueueSample . m_nLoopCount = 0 ;
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
SET_EMITTING_VOLUME ( PED_ONE_SHOT_WEAPON_FLAMETHROWER_VOLUME ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 6 ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case WEAPONTYPE_M60 :
case WEAPONTYPE_HELICANNON :
m_sQueueSample . m_nSampleIndex = SFX_M60_LEFT ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
2021-05-22 10:08:26 +00:00
narrowSoundRange = TRUE ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_M60_LEFT ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ) ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = PED_ONE_SHOT_WEAPON_M16_VOLUME ;
SET_EMITTING_VOLUME ( PED_ONE_SHOT_WEAPON_M16_VOLUME ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case WEAPONTYPE_MP5 :
m_sQueueSample . m_nSampleIndex = SFX_MP5_LEFT ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
2021-05-22 10:08:26 +00:00
narrowSoundRange = TRUE ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_MP5_LEFT ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ) ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 3 ] % 15 + PED_ONE_SHOT_WEAPON_UZI_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-11-22 22:00:53 +00:00
break ;
2021-08-29 06:42:32 +00:00
case WEAPONTYPE_TEC9 :
m_sQueueSample . m_nSampleIndex = SFX_TEC_LEFT ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = iSound + + ;
2021-05-22 10:08:26 +00:00
narrowSoundRange = TRUE ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = RandomDisplacement ( 500 ) + 17000 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ) ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 3 ] % 15 + PED_ONE_SHOT_WEAPON_UZI_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-05-16 17:29:13 +00:00
break ;
2020-11-22 22:00:53 +00:00
case WEAPONTYPE_SILENCED_INGRAM :
m_sQueueSample . m_nSampleIndex = SFX_TEC_LEFT ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
2021-05-22 10:08:26 +00:00
narrowSoundRange = TRUE ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nFrequency = RandomDisplacement ( 1000 ) + 34000 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ) ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 3 ] % 15 + PED_ONE_SHOT_WEAPON_UZI_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-11-22 22:00:53 +00:00
break ;
2021-08-29 06:42:32 +00:00
case WEAPONTYPE_RUGER :
m_sQueueSample . m_nSampleIndex = SFX_RUGER_LEFT ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = iSound + + ;
2021-05-22 10:08:26 +00:00
narrowSoundRange = TRUE ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_RUGER_LEFT ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ) ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 3 ] % 15 + PED_ONE_SHOT_WEAPON_M4_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-05-16 17:29:13 +00:00
break ;
2020-11-22 22:00:53 +00:00
case WEAPONTYPE_M4 :
m_sQueueSample . m_nSampleIndex = SFX_RUGER_LEFT ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
2021-05-22 10:08:26 +00:00
narrowSoundRange = TRUE ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nFrequency = RandomDisplacement ( 1000 ) + 43150 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ) ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 3 ] % 15 + PED_ONE_SHOT_WEAPON_M4_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-11-22 22:00:53 +00:00
break ;
2021-08-29 06:42:32 +00:00
case WEAPONTYPE_UZI :
case WEAPONTYPE_MINIGUN :
m_sQueueSample . m_nSampleIndex = SFX_UZI_LEFT ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = iSound + + ;
2021-05-22 10:08:26 +00:00
narrowSoundRange = TRUE ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_UZI_LEFT ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ) ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 3 ] % 15 + PED_ONE_SHOT_WEAPON_UZI_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-11-22 22:00:53 +00:00
break ;
case WEAPONTYPE_SNIPERRIFLE :
case WEAPONTYPE_LASERSCOPE :
m_sQueueSample . m_nSampleIndex = SFX_SNIPER_LEFT ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = iSound + + ;
2021-05-22 10:08:26 +00:00
narrowSoundRange = TRUE ;
2020-11-22 22:00:53 +00:00
if ( weapon - > m_eWeaponType = = WEAPONTYPE_SNIPERRIFLE )
m_sQueueSample . m_nFrequency = 25472 ;
2020-05-16 17:29:13 +00:00
else
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nFrequency = 20182 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ) ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 4 ] % 10 + PED_ONE_SHOT_WEAPON_SNIPERRIFLE_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case WEAPONTYPE_SPAS12_SHOTGUN :
m_sQueueSample . m_nSampleIndex = SFX_SPAS12_LEFT ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
narrowSoundRange = TRUE ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_SPAS12_LEFT ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ) ;
m_sQueueSample . m_nLoopCount = 1 ;
RESET_LOOP_OFFSETS
Vol = m_anRandomTable [ 2 ] % 10 + PED_ONE_SHOT_WEAPON_SHOTGUN_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_bStatic = TRUE ;
SET_SOUND_REFLECTION ( TRUE ) ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-11-22 22:00:53 +00:00
break ;
2021-08-29 06:42:32 +00:00
case WEAPONTYPE_SHOTGUN :
case WEAPONTYPE_STUBBY_SHOTGUN :
m_sQueueSample . m_nSampleIndex = SFX_SHOTGUN_LEFT ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = iSound + + ;
2021-05-22 10:08:26 +00:00
narrowSoundRange = TRUE ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_SHOTGUN_LEFT ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_BULLET_ECHO_MAX_DIST ) ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 2 ] % 10 + PED_ONE_SHOT_WEAPON_SHOTGUN_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-08-29 06:42:32 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-05-16 17:29:13 +00:00
break ;
default :
continue ;
}
break ;
case SOUND_WEAPON_RELOAD :
2020-11-22 22:00:53 +00:00
switch ( ( int32 ) m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ) {
2020-05-16 17:29:13 +00:00
case WEAPONTYPE_COLT45 :
2020-11-22 22:00:53 +00:00
case WEAPONTYPE_PYTHON :
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_PISTOL_RELOAD ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_PISTOL_RELOAD ) + RandomDisplacement ( 300 ) ;
break ;
2020-11-22 22:00:53 +00:00
case WEAPONTYPE_TEC9 :
case WEAPONTYPE_UZI :
case WEAPONTYPE_SILENCED_INGRAM :
case WEAPONTYPE_MP5 :
2020-05-23 13:53:20 +00:00
case WEAPONTYPE_M4 :
2020-11-22 22:00:53 +00:00
case WEAPONTYPE_M60 :
case WEAPONTYPE_HELICANNON :
2020-05-26 15:25:34 +00:00
m_sQueueSample . m_nSampleIndex = SFX_AK47_RELOAD ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nFrequency = 39243 ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case WEAPONTYPE_SHOTGUN :
case WEAPONTYPE_SPAS12_SHOTGUN :
case WEAPONTYPE_STUBBY_SHOTGUN :
case WEAPONTYPE_RUGER :
m_sQueueSample . m_nSampleIndex = SFX_AK47_RELOAD ;
m_sQueueSample . m_nFrequency = 30290 ;
break ;
case WEAPONTYPE_ROCKET :
case WEAPONTYPE_ROCKETLAUNCHER :
m_sQueueSample . m_nSampleIndex = SFX_ROCKET_RELOAD ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_ROCKET_RELOAD ) ;
break ;
2020-05-16 17:29:13 +00:00
case WEAPONTYPE_SNIPERRIFLE :
2020-11-22 22:00:53 +00:00
case WEAPONTYPE_LASERSCOPE :
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_RIFLE_RELOAD ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_RIFLE_RELOAD ) ;
break ;
default :
continue ;
}
2021-08-29 06:42:32 +00:00
Vol = PED_ONE_SHOT_WEAPON_RELOAD_VOLUME ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
2021-05-22 10:08:26 +00:00
narrowSoundRange = TRUE ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nFrequency + = RandomDisplacement ( 300 ) ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 5 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_RELOAD_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_RELOAD_MAX_DIST ) ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( PED_ONE_SHOT_WEAPON_RELOAD_VOLUME ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SOUND_WEAPON_HIT_PED :
m_sQueueSample . m_nSampleIndex = SFX_BULLET_PED ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
2021-05-22 10:08:26 +00:00
narrowSoundRange = TRUE ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_BULLET_PED ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 3 ) ;
m_sQueueSample . m_nPriority = 7 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_HIT_PED_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_HIT_PED_MAX_DIST ) ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 0 ] % 20 + PED_ONE_SHOT_WEAPON_HIT_PED_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SOUND_WEAPON_CHAINSAW_MADECONTACT :
if ( FindVehicleOfPlayer ( ) )
continue ;
if ( ( int32 ) m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ! = ENTITY_TYPE_PED )
ReportCollision ( params . m_pPed , params . m_pPed , SURFACE_CAR , SURFACE_TARMAC , 0.0f , 0.09f ) ;
m_sQueueSample . m_nSampleIndex = SFX_CAR_CHAINSAW_ATTACK ;
# ifdef GTA_PS2
m_sQueueSample . m_nBankIndex = SFX_BANK_CAR_CHAINSAW ;
# else
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
# endif
m_sQueueSample . m_nCounter = 68 ;
m_sQueueSample . m_nFrequency = RandomDisplacement ( 500 ) + 22000 ;
m_sQueueSample . m_nPriority = 2 ;
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_CHAINSAW_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_CHAINSAW_MAX_DIST ) ;
m_sQueueSample . m_nLoopCount = 0 ;
Vol = PED_ONE_SHOT_WEAPON_CHAINSAW_VOLUME ;
SET_LOOP_OFFSETS ( SFX_CAR_CHAINSAW_ATTACK )
SET_EMITTING_VOLUME ( PED_ONE_SHOT_WEAPON_CHAINSAW_VOLUME ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 5 ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SOUND_WEAPON_CHAINSAW_ATTACK :
if ( FindVehicleOfPlayer ( ) )
continue ;
m_sQueueSample . m_nSampleIndex = SFX_CAR_CHAINSAW_ATTACK ;
# ifdef GTA_PS2
m_sQueueSample . m_nBankIndex = SFX_BANK_CAR_CHAINSAW ;
# else
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
# endif
m_sQueueSample . m_nCounter = 68 ;
m_sQueueSample . m_nFrequency = 27000 ;
m_sQueueSample . m_nPriority = 2 ;
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_CHAINSAW_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_CHAINSAW_MAX_DIST ) ;
m_sQueueSample . m_nLoopCount = 0 ;
Vol = PED_ONE_SHOT_WEAPON_CHAINSAW_VOLUME ;
SET_LOOP_OFFSETS ( SFX_CAR_CHAINSAW_ATTACK )
SET_EMITTING_VOLUME ( PED_ONE_SHOT_WEAPON_CHAINSAW_VOLUME ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 5 ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SOUND_WEAPON_CHAINSAW_IDLE :
if ( FindVehicleOfPlayer ( ) )
2020-11-22 22:00:53 +00:00
continue ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nSampleIndex = SFX_CAR_CHAINSAW_IDLE ;
# ifdef GTA_PS2
m_sQueueSample . m_nBankIndex = SFX_BANK_CAR_CHAINSAW ;
# else
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
# endif
m_sQueueSample . m_nCounter = 70 ;
m_sQueueSample . m_nFrequency = 27000 ;
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_CHAINSAW_IDLE_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_CHAINSAW_IDLE_MAX_DIST ) ;
m_sQueueSample . m_nLoopCount = 0 ;
Vol = PED_ONE_SHOT_WEAPON_CHAINSAW_VOLUME ;
SET_LOOP_OFFSETS ( SFX_CAR_CHAINSAW_IDLE )
SET_EMITTING_VOLUME ( PED_ONE_SHOT_WEAPON_CHAINSAW_VOLUME ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 5 ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SOUND_WEAPON_BAT_ATTACK :
case SOUND_WEAPON_KNIFE_ATTACK :
2020-11-22 22:00:53 +00:00
{
2021-08-29 06:42:32 +00:00
uint32 soundParams = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ; // wtf? storing int as float
uint8 damagerType = soundParams & 0xFF ;
uint32 weaponType = soundParams > > 8 ;
if ( damagerType = = ENTITY_TYPE_PED ) {
switch ( weaponType ) {
case WEAPONTYPE_SCREWDRIVER :
case WEAPONTYPE_KNIFE :
case WEAPONTYPE_CLEAVER :
case WEAPONTYPE_MACHETE :
case WEAPONTYPE_KATANA :
if ( sound = = SOUND_WEAPON_KNIFE_ATTACK )
m_sQueueSample . m_nSampleIndex = SFX_KNIFE_SLASH ;
else
m_sQueueSample . m_nSampleIndex = SFX_KNIFE_STAB ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
break ;
case WEAPONTYPE_HAMMER :
m_sQueueSample . m_nSampleIndex = m_anRandomTable [ 3 ] % 2 + SFX_HAMMER_HIT_1 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
break ;
default :
m_sQueueSample . m_nSampleIndex = SFX_BAT_HIT_LEFT ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nFrequency = RandomDisplacement ( 2000 ) + 22000 ;
stereo = TRUE ;
break ;
}
}
else {
m_sQueueSample . m_nSampleIndex = m_anRandomTable [ 4 ] % 6 + SFX_COL_CAR_PANEL_1 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 4 ) ;
2020-11-22 22:00:53 +00:00
}
m_sQueueSample . m_nCounter = iSound + + ;
2021-05-22 10:08:26 +00:00
narrowSoundRange = TRUE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_PUNCH_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_PUNCH_MAX_DIST ) ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 2 ] % 20 + PED_ONE_SHOT_PUNCH_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2020-11-22 22:00:53 +00:00
break ;
}
2021-08-29 06:42:32 +00:00
case SOUND_FIGHT_37 :
m_sQueueSample . m_nSampleIndex = SFX_FIGHT_1 ;
m_sQueueSample . m_nFrequency = 18000 ;
goto AddFightSound ;
case SOUND_FIGHT_38 :
m_sQueueSample . m_nSampleIndex = SFX_FIGHT_1 ;
m_sQueueSample . m_nFrequency = 16500 ;
goto AddFightSound ;
case SOUND_FIGHT_39 :
m_sQueueSample . m_nSampleIndex = SFX_FIGHT_1 ;
m_sQueueSample . m_nFrequency = 20000 ;
goto AddFightSound ;
case SOUND_FIGHT_40 :
case SOUND_186 :
m_sQueueSample . m_nSampleIndex = SFX_FIGHT_2 ;
m_sQueueSample . m_nFrequency = 18000 ;
goto AddFightSound ;
case SOUND_FIGHT_41 :
m_sQueueSample . m_nSampleIndex = SFX_FIGHT_2 ;
m_sQueueSample . m_nFrequency = 16500 ;
goto AddFightSound ;
case SOUND_FIGHT_42 :
m_sQueueSample . m_nSampleIndex = SFX_FIGHT_2 ;
m_sQueueSample . m_nFrequency = 20000 ;
goto AddFightSound ;
case SOUND_FIGHT_43 :
m_sQueueSample . m_nSampleIndex = SFX_FIGHT_4 ;
m_sQueueSample . m_nFrequency = 18000 ;
goto AddFightSound ;
case SOUND_FIGHT_44 :
m_sQueueSample . m_nSampleIndex = SFX_FIGHT_4 ;
m_sQueueSample . m_nFrequency = 16500 ;
goto AddFightSound ;
case SOUND_FIGHT_45 :
m_sQueueSample . m_nSampleIndex = SFX_FIGHT_4 ;
m_sQueueSample . m_nFrequency = 20000 ;
goto AddFightSound ;
case SOUND_FIGHT_46 :
case SOUND_187 :
m_sQueueSample . m_nSampleIndex = SFX_FIGHT_5 ;
m_sQueueSample . m_nFrequency = 18000 ;
goto AddFightSound ;
case SOUND_FIGHT_47 :
m_sQueueSample . m_nSampleIndex = SFX_FIGHT_5 ;
m_sQueueSample . m_nFrequency = 16500 ;
goto AddFightSound ;
case SOUND_FIGHT_48 :
m_sQueueSample . m_nSampleIndex = SFX_FIGHT_5 ;
m_sQueueSample . m_nFrequency = 20000 ;
AddFightSound :
{
uint32 soundParams = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ; // wtf? storing int as float
uint8 damagerType = soundParams & 0xFF ;
uint32 weaponType = soundParams > > 8 ;
if ( damagerType = = ENTITY_TYPE_PED ) {
if ( weaponType = = WEAPONTYPE_BRASSKNUCKLE ) {
CPed * ped = params . m_pPed ;
uint32 fightMove = ped - > m_curFightMove ;
if ( fightMove = = FIGHTMOVE_BACKLEFT | | fightMove = = FIGHTMOVE_STDPUNCH | | fightMove = = FIGHTMOVE_PUNCH | |
ped - > m_nPedState = = PED_ATTACK ) {
CEntity * damageEntity = ped - > m_pDamageEntity ;
if ( ! damageEntity )
m_sQueueSample . m_nSampleIndex = m_anRandomTable [ 3 ] % 2 + SFX_HAMMER_HIT_1 ;
else if ( damageEntity - > GetType ( ) ! = ENTITY_TYPE_PED )
m_sQueueSample . m_nSampleIndex = m_anRandomTable [ 3 ] % 2 + SFX_HAMMER_HIT_1 ;
else if ( ( ( CPed * ) damageEntity ) - > m_curFightMove ! = FIGHTMOVE_HITHEAD )
m_sQueueSample . m_nSampleIndex = m_anRandomTable [ 3 ] % 2 + SFX_HAMMER_HIT_1 ;
else
m_sQueueSample . m_nSampleIndex = SFX_HAMMER_HIT_1 ;
}
}
}
else {
m_sQueueSample . m_nSampleIndex = m_anRandomTable [ 4 ] % 6 + SFX_COL_CAR_PANEL_1 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency / 16 ) ;
}
}
2020-12-25 12:51:09 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nCounter = iSound ;
2021-08-29 06:42:32 +00:00
narrowSoundRange = TRUE ;
2021-08-25 05:49:58 +00:00
iSound + + ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_PUNCH_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_PUNCH_MAX_DIST ) ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 3 ] % 26 + PED_ONE_SHOT_PUNCH_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2020-11-22 22:00:53 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SOUND_SPLASH :
if ( m_FrameCounter < = iSplashFrame )
continue ;
iSplashFrame = m_FrameCounter + 6 ;
m_sQueueSample . m_nSampleIndex = SFX_SPLASH_1 ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
narrowSoundRange = TRUE ;
m_sQueueSample . m_nFrequency = RandomDisplacement ( 1400 ) + 20000 ;
m_sQueueSample . m_nPriority = 1 ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_SPLASH_MAX_DIST ;
maxDist = SQR ( PED_ONE_SHOT_SPLASH_MAX_DIST ) ;
2020-11-22 22:00:53 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-08-29 06:42:32 +00:00
RESET_LOOP_OFFSETS
Vol = m_anRandomTable [ 2 ] % 30 + PED_ONE_SHOT_SPLASH_PED_VOLUME ;
SET_EMITTING_VOLUME ( Vol ) ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_bStatic = TRUE ;
SET_SOUND_REFLECTION ( TRUE ) ;
break ;
case SOUND_MELEE_ATTACK_START :
{
uint32 weaponType = ( ( uint32 ) m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ) > > 8 ;
switch ( weaponType )
{
case WEAPONTYPE_SCREWDRIVER :
case WEAPONTYPE_KNIFE :
case WEAPONTYPE_CLEAVER :
case WEAPONTYPE_MACHETE :
case WEAPONTYPE_KATANA :
m_sQueueSample . m_nSampleIndex = SFX_KNIFE_SWING ;
break ;
default :
m_sQueueSample . m_nSampleIndex = SFX_GOLF_CLUB_SWING ;
break ;
2020-11-22 22:00:53 +00:00
}
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nCounter = iSound + + ;
narrowSoundRange = TRUE ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 4 ) ;
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_MaxDistance = PED_ONE_SHOT_WEAPON_HIT_PED_MAX_DIST ;
if ( weaponType = = WEAPONTYPE_UNARMED | | weaponType = = WEAPONTYPE_BRASSKNUCKLE )
Vol = m_anRandomTable [ 1 ] % 10 + 35 ;
else
Vol = m_anRandomTable [ 2 ] % 20 + 70 ;
maxDist = SQR ( PED_ONE_SHOT_WEAPON_HIT_PED_MAX_DIST ) ;
m_sQueueSample . m_nLoopCount = 1 ;
RESET_LOOP_OFFSETS
SET_EMITTING_VOLUME ( Vol ) ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_bStatic = TRUE ;
SET_SOUND_REFLECTION ( TRUE ) ;
break ;
}
2020-05-16 17:29:13 +00:00
default :
SetupPedComments ( params , sound ) ;
continue ;
}
2020-11-22 22:00:53 +00:00
if ( narrowSoundRange & & iSound > 60 )
2020-05-16 17:29:13 +00:00
iSound = 21 ;
2020-11-22 22:00:53 +00:00
if ( params . m_fDistance < maxDist ) {
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , m_sQueueSample . m_MaxDistance , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-11-22 22:00:53 +00:00
if ( stereo ) {
2021-08-20 11:28:55 +00:00
if ( m_sQueueSample . m_fDistance < 0.2f * m_sQueueSample . m_MaxDistance ) {
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = TRUE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPan = 0 ;
2021-08-29 06:42:32 +00:00
} else
2021-05-22 10:08:26 +00:00
stereo = FALSE ;
2020-05-16 17:29:13 +00:00
}
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
2020-11-22 22:00:53 +00:00
if ( stereo ) {
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPan = 127 ;
2021-08-25 05:49:58 +00:00
m_sQueueSample . m_nSampleIndex + + ;
2021-08-29 06:42:32 +00:00
if ( m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_awAudioEvent [ i ] = = SOUND_WEAPON_SHOT_FIRED & &
weapon - > m_eWeaponType = = WEAPONTYPE_FLAMETHROWER )
m_sQueueSample . m_nCounter + + ;
else {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
if ( iSound > 60 )
iSound = 21 ;
2021-08-29 06:42:32 +00:00
}
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
}
}
}
2020-09-09 16:37:44 +00:00
void
2021-05-22 10:08:26 +00:00
cAudioManager : : SetPedTalkingStatus ( CPed * ped , bool8 status )
2020-09-09 16:37:44 +00:00
{
if ( ped ! = nil )
ped - > m_canTalk = status ;
}
void
2020-10-25 07:42:24 +00:00
cAudioManager : : SetPlayersMood ( uint8 mood , uint32 time )
2020-09-09 16:37:44 +00:00
{
if ( ! m_bIsInitialised ) return ;
2020-09-09 21:32:51 +00:00
if ( mood < MAX_PLAYER_MOODS ) {
m_nPlayerMood = mood ;
m_nPlayerMoodTimer = CTimer : : GetTimeInMilliseconds ( ) + time ;
2020-09-09 16:37:44 +00:00
}
}
2021-07-27 21:41:34 +00:00
void
cAudioManager : : ProcessPlayerMood ( )
{
CPlayerPed * playerPed ;
uint32 curTime = CTimer : : GetTimeInMilliseconds ( ) ;
2021-08-29 06:42:32 +00:00
if ( m_nPlayerMoodTimer > curTime )
return ;
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
playerPed = FindPlayerPed ( ) ;
if ( ! playerPed )
return ;
2021-07-27 21:41:34 +00:00
2021-08-29 06:42:32 +00:00
if ( playerPed - > m_pWanted - > GetWantedLevel ( ) > 3 )
m_nPlayerMood = PLAYER_MOOD_ANGRY ;
else if ( playerPed - > m_pWanted - > GetWantedLevel ( ) > 1 )
m_nPlayerMood = PLAYER_MOOD_PISSED_OFF ;
else if ( CTheScripts : : GetLastMissionPassedTime ( ) ! = - 1 ) {
if ( curTime > = CTheScripts : : GetLastMissionPassedTime ( ) ) {
if ( curTime < CTheScripts : : GetLastMissionPassedTime ( ) + 180000 )
m_nPlayerMood = PLAYER_MOOD_WISECRACKING ;
else
m_nPlayerMood = PLAYER_MOOD_CALM ;
} else
CTheScripts : : GetLastMissionPassedTime ( ) = curTime ;
} else
m_nPlayerMood = PLAYER_MOOD_CALM ;
2021-07-27 21:41:34 +00:00
}
2020-05-16 17:29:13 +00:00
void
2020-11-22 22:00:53 +00:00
cAudioManager : : SetupPedComments ( cPedParams & params , uint16 sound )
2020-05-16 17:29:13 +00:00
{
2020-11-22 22:00:53 +00:00
CPed * ped = params . m_pPed ;
2021-08-29 06:42:32 +00:00
uint8 Vol ;
float maxDist ;
2020-05-16 17:29:13 +00:00
tPedComment pedComment ;
2020-10-24 16:10:51 +00:00
if ( ped ! = nil ) {
if ( ! ped - > m_canTalk ) return ;
2021-05-22 10:08:26 +00:00
m_bGenericSfx = FALSE ;
2020-10-24 16:10:51 +00:00
pedComment . m_nSampleIndex = GetPedCommentSfx ( ped , sound ) ;
2021-08-29 06:42:32 +00:00
if ( pedComment . m_nSampleIndex = = NO_SAMPLE )
return ;
maxDist = PED_COMMENT_MAX_DIST ;
2020-05-16 17:29:13 +00:00
} else {
2021-05-22 10:08:26 +00:00
m_bGenericSfx = TRUE ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
case SOUND_PED_HELI_PLAYER_FOUND :
2021-08-29 06:42:32 +00:00
maxDist = PED_COMMENT_POLICE_HELI_MAX_DIST ;
2021-07-28 06:39:57 +00:00
pedComment . m_nSampleIndex = m_anRandomTable [ m_sQueueSample . m_nEntityIndex % 4 ] % 20 + SFX_POLICE_HELI_1 ;
2020-05-16 17:29:13 +00:00
break ;
2020-10-24 16:10:51 +00:00
case SOUND_PED_VCPA_PLAYER_FOUND :
2021-08-29 06:42:32 +00:00
maxDist = PED_COMMENT_POLICE_HELI_MAX_DIST ;
2020-11-07 12:39:53 +00:00
# ifdef FIX_BUGS
pedComment . m_nSampleIndex = m_anRandomTable [ m_sQueueSample . m_nEntityIndex % 4 ] % 23 + SFX_POLICE_BOAT_1 ;
# else
pedComment . m_nSampleIndex = m_anRandomTable [ m_sQueueSample . m_nEntityIndex % 4 ] % 29 + SFX_POLICE_BOAT_1 ;
# endif
2020-05-16 17:29:13 +00:00
break ;
case SOUND_INJURED_PED_MALE_OUCH :
2021-08-29 06:42:32 +00:00
maxDist = PED_COMMENT_MAX_DIST ;
2021-07-28 06:39:57 +00:00
pedComment . m_nSampleIndex = m_anRandomTable [ m_sQueueSample . m_nEntityIndex % 4 ] % 41 + SFX_GENERIC_MALE_GRUNT_1 ;
2020-05-16 17:29:13 +00:00
break ;
case SOUND_INJURED_PED_FEMALE :
2021-08-29 06:42:32 +00:00
maxDist = PED_COMMENT_MAX_DIST ;
2021-07-28 06:39:57 +00:00
pedComment . m_nSampleIndex = m_anRandomTable [ m_sQueueSample . m_nEntityIndex % 4 ] % 33 + SFX_GENERIC_FEMALE_GRUNT_1 ;
2020-10-24 16:10:51 +00:00
break ;
2020-05-16 17:29:13 +00:00
default :
return ;
}
}
2021-08-29 06:42:32 +00:00
if ( params . m_fDistance < SQR ( maxDist ) ) {
2020-11-22 22:00:53 +00:00
CalculateDistance ( params . m_bDistanceCalculated , params . m_fDistance ) ;
2020-10-24 16:10:51 +00:00
if ( CWorld : : GetIsLineOfSightClear ( TheCamera . GetPosition ( ) , m_sQueueSample . m_vecPos , true , false , false , false , false , false ) )
2021-08-29 06:42:32 +00:00
Vol = PED_COMMENT_VOLUME ;
2020-10-24 16:10:51 +00:00
else
2021-08-29 06:42:32 +00:00
Vol = PED_COMMENT_VOLUME_BEHIND_WALL ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , maxDist , m_sQueueSample . m_fDistance ) ;
2020-10-24 16:10:51 +00:00
pedComment . m_nProcess = 10 ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-10-24 16:10:51 +00:00
pedComment . m_nEntityIndex = m_sQueueSample . m_nEntityIndex ;
pedComment . m_vecPos = m_sQueueSample . m_vecPos ;
pedComment . m_fDistance = m_sQueueSample . m_fDistance ;
2021-08-16 11:31:40 +00:00
pedComment . m_nVolume = m_sQueueSample . m_nVolume ;
# if defined(EXTERNAL_3D_SOUND) && defined(FIX_BUGS)
2021-08-29 06:42:32 +00:00
pedComment . m_nEmittingVolume = Vol ;
2021-08-16 11:31:40 +00:00
# endif
2020-10-24 16:10:51 +00:00
m_sPedComments . Add ( & pedComment ) ;
}
}
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetPedCommentSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2021-07-27 21:41:34 +00:00
if ( ped - > m_nPedState ! = PED_FALL | | sound = = SOUND_PED_DAMAGE | | sound = = SOUND_PED_HIT | | sound = = SOUND_PED_LAND ) {
2020-10-24 16:10:51 +00:00
if ( ped - > m_getUpTimer = = UINT32_MAX | | ped - > m_getUpTimer > CTimer : : GetTimeInMilliseconds ( ) ) {
if ( sound ! = SOUND_PED_DAMAGE & & sound ! = SOUND_PED_HIT & & sound ! = SOUND_PED_LAND ) return NO_SAMPLE ;
}
if ( ped - > IsPlayer ( ) ) return GetPlayerTalkSfx ( ped , sound ) ;
switch ( ped - > GetModelIndex ( ) ) {
case MI_PLAYER : return GetPlayerTalkSfx ( ped , sound ) ;
case MI_COP : return GetCopTalkSfx ( ped , sound ) ;
case MI_SWAT : return GetSwatTalkSfx ( ped , sound ) ;
case MI_FBI : return GetFBITalkSfx ( ped , sound ) ;
2021-07-25 19:27:00 +00:00
case MI_ARMY : return GetArmyTalkSfx ( ped , sound ) ;
2020-10-24 16:10:51 +00:00
case MI_MEDIC : return GetMedicTalkSfx ( ped , sound ) ;
case MI_FIREMAN : return GetFiremanTalkSfx ( ped , sound ) ;
case MI_MALE01 : return GetDefaultTalkSfx ( ped , sound ) ;
case MI_HFYST : return GetHFYSTTalkSfx ( ped , sound ) ;
case MI_HFOST : return GetHFOSTTalkSfx ( ped , sound ) ;
case MI_HMYST : return GetHMYSTTalkSfx ( ped , sound ) ;
case MI_HMOST : return GetHMOSTTalkSfx ( ped , sound ) ;
case MI_HFYRI : return GetHFYRITalkSfx ( ped , sound ) ;
case MI_HFORI : return GetHFORITalkSfx ( ped , sound ) ;
case MI_HMYRI : return GetHMYRITalkSfx ( ped , sound ) ;
case MI_HMORI : return GetHMORITalkSfx ( ped , sound ) ;
case MI_HFYBE : return GetHFYBETalkSfx ( ped , sound ) ;
case MI_HFOBE : return GetHFOBETalkSfx ( ped , sound ) ;
case MI_HMYBE : return GetHMYBETalkSfx ( ped , sound ) ;
case MI_HMOBE : return GetHMOBETalkSfx ( ped , sound ) ;
case MI_HFYBU : return GetHFYBUTalkSfx ( ped , sound ) ;
case MI_HFYMD : return GetHFYMDTalkSfx ( ped , sound ) ;
case MI_HFYCG : return GetHFYCGTalkSfx ( ped , sound ) ;
case MI_HFYPR : return GetHFYPRTalkSfx ( ped , sound ) ;
case MI_HFOTR : return GetHFOTRTalkSfx ( ped , sound ) ;
case MI_HMOTR : return GetHMOTRTalkSfx ( ped , sound ) ;
case MI_HMYAP : return GetHMYAPTalkSfx ( ped , sound ) ;
case MI_HMOCA : return GetHMOCATalkSfx ( ped , sound ) ;
case MI_BMODK : return GetBMODKTalkSfx ( ped , sound ) ;
case MI_BMYKR : return GetBMYCRTalkSfx ( ped , sound ) ;
case MI_BFYST : return GetBFYSTTalkSfx ( ped , sound ) ;
case MI_BFOST : return GetBFOSTTalkSfx ( ped , sound ) ;
case MI_BMYST : return GetBMYSTTalkSfx ( ped , sound ) ;
case MI_BMOST : return GetBMOSTTalkSfx ( ped , sound ) ;
case MI_BFYRI : return GetBFYRITalkSfx ( ped , sound ) ;
case MI_BFORI : return GetBFORITalkSfx ( ped , sound ) ;
case MI_BMYRI : return GetBMYRITalkSfx ( ped , sound ) ;
case MI_BFYBE : return GetBFYBETalkSfx ( ped , sound ) ;
case MI_BMYBE : return GetBMYBETalkSfx ( ped , sound ) ;
case MI_BFOBE : return GetBFOBETalkSfx ( ped , sound ) ;
case MI_BMOBE : return GetBMOBETalkSfx ( ped , sound ) ;
case MI_BMYBU : return GetBMYBUTalkSfx ( ped , sound ) ;
case MI_BFYPR : return GetBFYPRTalkSfx ( ped , sound ) ;
case MI_BFOTR : return GetBFOTRTalkSfx ( ped , sound ) ;
case MI_BMOTR : return GetBMOTRTalkSfx ( ped , sound ) ;
case MI_BMYPI : return GetBMYPITalkSfx ( ped , sound ) ;
case MI_BMYBB : return GetBMYBBTalkSfx ( ped , sound ) ;
case MI_WMYCR : return GetWMYCRTalkSfx ( ped , sound ) ;
case MI_WFYST : return GetWFYSTTalkSfx ( ped , sound ) ;
case MI_WFOST : return GetWFOSTTalkSfx ( ped , sound ) ;
case MI_WMYST : return GetWMYSTTalkSfx ( ped , sound ) ;
case MI_WMOST : return GetWMOSTTalkSfx ( ped , sound ) ;
case MI_WFYRI : return GetWFYRITalkSfx ( ped , sound ) ;
case MI_WFORI : return GetWFORITalkSfx ( ped , sound ) ;
case MI_WMYRI : return GetWMYRITalkSfx ( ped , sound ) ;
case MI_WMORI : return GetWMORITalkSfx ( ped , sound ) ;
case MI_WFYBE : return GetWFYBETalkSfx ( ped , sound ) ;
case MI_WMYBE : return GetWMYBETalkSfx ( ped , sound ) ;
case MI_WFOBE : return GetWFOBETalkSfx ( ped , sound ) ;
case MI_WMOBE : return GetWMOBETalkSfx ( ped , sound ) ;
case MI_WMYCW : return GetWMYCWTalkSfx ( ped , sound ) ;
case MI_WMYGO : return GetWMYGOTalkSfx ( ped , sound ) ;
case MI_WFOGO : return GetWFOGOTalkSfx ( ped , sound ) ;
case MI_WMOGO : return GetWMOGOTalkSfx ( ped , sound ) ;
case MI_WFYLG : return GetWFYLGTalkSfx ( ped , sound ) ;
case MI_WMYLG : return GetWMYLGTalkSfx ( ped , sound ) ;
case MI_WFYBU : return GetWFYBUTalkSfx ( ped , sound ) ;
case MI_WMYBU : return GetWMYBUTalkSfx ( ped , sound ) ;
case MI_WMOBU : return GetWMOBUTalkSfx ( ped , sound ) ;
case MI_WFYPR : return GetWFYPRTalkSfx ( ped , sound ) ;
case MI_WFOTR : return GetWFOTRTalkSfx ( ped , sound ) ;
case MI_WMOTR : return GetWMOTRTalkSfx ( ped , sound ) ;
case MI_WMYPI : return GetWMYPITalkSfx ( ped , sound ) ;
case MI_WMOCA : return GetWMOCATalkSfx ( ped , sound ) ;
case MI_WFYJG : return GetWFYJGTalkSfx ( ped , sound ) ;
case MI_WMYJG : return GetWMYJGTalkSfx ( ped , sound ) ;
case MI_WFYSK : return GetWFYSKTalkSfx ( ped , sound ) ;
case MI_WMYSK : return GetWMYSKTalkSfx ( ped , sound ) ;
case MI_WFYSH : return GetWFYSHTalkSfx ( ped , sound ) ;
case MI_WFOSH : return GetWFOSHTalkSfx ( ped , sound ) ;
case MI_JFOTO : return GetJFOTOTalkSfx ( ped , sound ) ;
case MI_JMOTO : return GetJMOTOTalkSfx ( ped , sound ) ;
case MI_CBA :
case MI_CBB : return GetCBTalkSfx ( ped , sound ) ;
case MI_HNA :
case MI_HNB : return GetHNTalkSfx ( ped , sound ) ;
case MI_SGA :
case MI_SGB : return GetSGTalkSfx ( ped , sound ) ;
case MI_CLA :
case MI_CLB : return GetCLTalkSfx ( ped , sound ) ;
case MI_GDA :
case MI_GDB : return GetGDTalkSfx ( ped , sound ) ;
case MI_BKA :
case MI_BKB : return GetBKTalkSfx ( ped , sound ) ;
case MI_PGA :
case MI_PGB : return GetPGTalkSfx ( ped , sound ) ;
case MI_VICE1 :
case MI_VICE2 :
case MI_VICE3 :
case MI_VICE4 :
case MI_VICE5 :
case MI_VICE7 :
2021-07-28 06:17:38 +00:00
case MI_VICE8 : return GetViceWhiteTalkSfx ( ped , sound ) ;
case MI_VICE6 : return GetViceBlackTalkSfx ( ped , sound ) ;
2020-10-24 16:10:51 +00:00
case MI_WFYG1 : return GetWFYG1TalkSfx ( ped , sound ) ;
case MI_WFYG2 : return GetWFYG2TalkSfx ( ped , sound ) ;
case MI_SPECIAL01 :
case MI_SPECIAL02 :
case MI_SPECIAL03 :
case MI_SPECIAL04 :
case MI_SPECIAL05 :
case MI_SPECIAL06 :
case MI_SPECIAL07 :
case MI_SPECIAL08 :
case MI_SPECIAL09 :
case MI_SPECIAL10 :
case MI_SPECIAL11 :
case MI_SPECIAL12 :
case MI_SPECIAL13 :
case MI_SPECIAL14 :
case MI_SPECIAL15 :
case MI_SPECIAL16 :
case MI_SPECIAL17 :
case MI_SPECIAL18 :
case MI_SPECIAL19 :
case MI_SPECIAL20 :
2021-07-28 22:52:49 +00:00
case MI_SPECIAL21 : return GetSpecialCharacterTalkSfx ( ped , ped - > GetModelIndex ( ) , sound ) ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
}
return NO_SAMPLE ;
}
void
2021-07-28 06:17:38 +00:00
cAudioManager : : GetPhrase ( uint32 & phrase , uint32 & prevPhrase , uint32 sample , uint32 maxOffset )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
phrase = sample + m_anRandomTable [ m_sQueueSample . m_nEntityIndex & 3 ] % maxOffset ;
2020-10-24 16:10:51 +00:00
// check if the same sfx like last time, if yes, then try use next one,
// if exceeded range, then choose first available sample
2020-11-07 12:39:53 +00:00
if ( phrase = = prevPhrase & & + + phrase > = sample + maxOffset )
phrase = sample ;
prevPhrase = phrase ;
2020-10-24 16:10:51 +00:00
}
# pragma region PED_COMMENTS
2020-11-07 12:39:53 +00:00
# define cooldown_phrase(count) static uint8 cooldown = 0;\
if ( cooldown ! = 0 ) { \
if ( + + cooldown = = count ) cooldown = 0 ; \
return NO_SAMPLE ; \
} \
cooldown = 1 ;
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetPlayerTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
2020-12-22 13:53:45 +00:00
if ( m_bIsPlayerShutUp ) return NO_SAMPLE ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_DEATH : return SFX_PLAYER_DEATH ;
2020-10-24 16:10:51 +00:00
case SOUND_PED_DAMAGE :
2021-05-12 00:26:54 +00:00
case SOUND_PED_BULLET_HIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_HIT_BULLET_1 , 33 ) ; break ;
2020-10-24 16:10:51 +00:00
case SOUND_PED_HIT :
2021-05-12 00:26:54 +00:00
case SOUND_PED_DEFEND : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_HIT_FIST_1 , 42 ) ; break ;
case SOUND_PED_LAND : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_HIT_GROUND_1 , 35 ) ; break ;
case SOUND_PED_BURNING : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_ON_FIRE_1 , 16 ) ; break ;
2020-10-24 16:10:51 +00:00
case SOUND_PED_PLAYER_REACTTOCOP :
switch ( m_nPlayerMood ) {
case PLAYER_MOOD_ANGRY :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_ANGRY_BUSTED_1 , 38 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_WISECRACKING :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_WISECRACKING_BUSTED_1 , 20 ) ;
2020-10-24 16:10:51 +00:00
break ;
default :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_CALM_BUSTED_1 , 22 ) ;
2020-10-24 16:10:51 +00:00
break ;
}
break ;
case SOUND_PED_ON_FIRE : {
2020-11-07 12:39:53 +00:00
cooldown_phrase ( 8 ) ;
2020-10-24 16:10:51 +00:00
switch ( m_nPlayerMood ) {
case PLAYER_MOOD_PISSED_OFF :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_PISSED_OFF_SHOOT_1 , 29 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_ANGRY :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_ANGRY_SHOOT_1 , 39 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_WISECRACKING :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_WISECRACKING_SHOOT_1 , 9 ) ;
2020-10-24 16:10:51 +00:00
break ;
default :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_CALM_SHOOT_1 , 35 ) ;
2020-10-24 16:10:51 +00:00
break ;
}
break ;
}
case SOUND_PED_AIMING : {
2020-11-07 12:39:53 +00:00
cooldown_phrase ( 8 ) ;
2020-10-24 16:10:51 +00:00
switch ( m_nPlayerMood ) {
case PLAYER_MOOD_PISSED_OFF :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_PISSED_OFF_PULL_GUN_1 , 25 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_ANGRY :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_ANGRY_PULL_GUN_1 , 52 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_WISECRACKING :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_WISECRACKING_PULL_GUN_1 , 19 ) ;
2020-10-24 16:10:51 +00:00
break ;
default :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_CALM_PULL_GUN_1 , 39 ) ;
2020-10-24 16:10:51 +00:00
break ;
}
break ;
}
case SOUND_PED_CAR_JACKING : {
2020-11-07 12:39:53 +00:00
cooldown_phrase ( 4 ) ;
2020-10-24 16:10:51 +00:00
switch ( m_nPlayerMood ) {
case PLAYER_MOOD_PISSED_OFF :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_PISSED_OFF_JACKING_1 , 36 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_ANGRY :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_ANGRY_JACKING_1 , 43 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_WISECRACKING :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_WISECRACKING_JACKING_1 , 18 ) ;
2020-10-24 16:10:51 +00:00
break ;
default :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_CALM_JACKING_1 , 40 ) ;
2020-10-24 16:10:51 +00:00
break ;
}
break ;
}
case SOUND_PED_MUGGING : {
2020-11-07 12:39:53 +00:00
cooldown_phrase ( 8 ) ;
2020-10-24 16:10:51 +00:00
switch ( m_nPlayerMood ) {
case PLAYER_MOOD_PISSED_OFF :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_PISSED_OFF_PICK_UP_CASH_1 , 25 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_ANGRY :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_ANGRY_PICK_UP_CASH_1 , 12 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_WISECRACKING :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_WISECRACKING_PICK_UP_CASH_1 , 23 ) ;
2020-10-24 16:10:51 +00:00
break ;
default :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_CALM_PICK_UP_CASH_1 , 11 ) ;
2020-10-24 16:10:51 +00:00
break ;
}
break ;
}
case SOUND_PED_CAR_JACKED : {
2020-11-07 12:39:53 +00:00
cooldown_phrase ( 4 ) ;
2020-10-24 16:10:51 +00:00
switch ( m_nPlayerMood ) {
case PLAYER_MOOD_PISSED_OFF :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_PISSED_OFF_JACKED_1 , 21 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_ANGRY :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_ANGRY_JACKED_1 , 33 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_WISECRACKING :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_WISECRACKING_JACKED_1 , 18 ) ;
2020-10-24 16:10:51 +00:00
break ;
default :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_CALM_JACKED_1 , 24 ) ;
2020-10-24 16:10:51 +00:00
break ;
}
break ;
}
2021-05-12 00:26:54 +00:00
case SOUND_PED_PLAYER_AFTERSEX : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_AFTERSEX_1 , 18 ) ; break ;
2020-10-24 16:10:51 +00:00
case SOUND_PED_PLAYER_BEFORESEX :
switch ( m_nPlayerMood ) {
case PLAYER_MOOD_ANGRY :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_ANGRY_SEX_1 , 18 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_WISECRACKING :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_WISECRACKING_SEX_1 , 10 ) ;
2020-10-24 16:10:51 +00:00
break ;
default :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_CALM_SEX_1 , 8 ) ;
2020-10-24 16:10:51 +00:00
break ;
}
break ;
case SOUND_PED_PLAYER_FARFROMCOPS : {
2020-11-07 12:39:53 +00:00
cooldown_phrase ( 4 ) ;
2020-10-24 16:10:51 +00:00
switch ( m_nPlayerMood ) {
case PLAYER_MOOD_ANGRY :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_ANGRY_CHASED_1 , 9 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_WISECRACKING :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_WISECRACKING_CHASED_1 , 7 ) ;
2020-10-24 16:10:51 +00:00
break ;
default :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_CALM_CHASED_1 , 20 ) ;
2020-10-24 16:10:51 +00:00
break ;
}
break ;
}
case SOUND_PED_ATTACK : {
2020-11-07 12:39:53 +00:00
cooldown_phrase ( 4 ) ;
2020-10-24 16:10:51 +00:00
switch ( m_nPlayerMood ) {
case PLAYER_MOOD_PISSED_OFF :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_PISSED_OFF_FIGHT_1 , 61 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_ANGRY :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_ANGRY_FIGHT_1 , 61 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_WISECRACKING :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_WISECRACKING_FIGHT_1 , 27 ) ;
2020-10-24 16:10:51 +00:00
break ;
default :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_CALM_FIGHT_1 , 47 ) ;
2020-10-24 16:10:51 +00:00
break ;
}
break ;
}
case SOUND_PED_CRASH_VEHICLE :
case SOUND_PED_CRASH_CAR :
case SOUND_PED_ANNOYED_DRIVER : {
2020-11-07 12:39:53 +00:00
cooldown_phrase ( 4 ) ;
2020-10-24 16:10:51 +00:00
switch ( m_nPlayerMood ) {
case PLAYER_MOOD_PISSED_OFF :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_PISSED_OFF_CRASH_1 , 44 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_ANGRY :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_ANGRY_CRASH_1 , 41 ) ;
2020-10-24 16:10:51 +00:00
break ;
case PLAYER_MOOD_WISECRACKING :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_WISECRACKING_CRASH_1 , 19 ) ;
2020-10-24 16:10:51 +00:00
break ;
default :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_CALM_CRASH_1 , 43 ) ;
2020-10-24 16:10:51 +00:00
break ;
}
break ;
}
case SOUND_PED_SOLICIT : {
2020-11-07 12:39:53 +00:00
cooldown_phrase ( 4 ) ;
switch ( m_nPlayerMood ) {
case PLAYER_MOOD_PISSED_OFF :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_PISSED_OFF_PICK_UP_HOOKER_1 , 17 ) ;
2020-11-07 12:39:53 +00:00
break ;
case PLAYER_MOOD_ANGRY :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_ANGRY_PICK_UP_HOOKER_1 , 6 ) ;
2020-11-07 12:39:53 +00:00
break ;
case PLAYER_MOOD_WISECRACKING :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_WISECRACKING_PICK_UP_HOOKER_1 , 11 ) ;
2020-11-07 12:39:53 +00:00
break ;
default :
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_CALM_PICK_UP_HOOKER_1 , 22 ) ;
2020-11-07 12:39:53 +00:00
break ;
2020-10-24 16:10:51 +00:00
}
break ;
}
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetGenericMaleTalkSfx ( CPed * ped , uint16 sound )
{
uint32 sfx ;
m_bGenericSfx = TRUE ;
switch ( sound ) {
case SOUND_PED_DEATH : GetPhrase ( sfx , ped - > m_lastComment , SFX_GENERIC_MALE_DEATH_1 , 41 ) ; break ;
case SOUND_PED_BULLET_HIT :
case SOUND_PED_DEFEND : GetPhrase ( sfx , ped - > m_lastComment , SFX_GENERIC_MALE_GRUNT_1 , 41 ) ; break ;
case SOUND_PED_BURNING : GetPhrase ( sfx , ped - > m_lastComment , SFX_GENERIC_MALE_FIRE_1 , 32 ) ; break ;
case SOUND_PED_FLEE_SPRINT : GetPhrase ( sfx , ped - > m_lastComment , SFX_GENERIC_MALE_PANIC_1 , 35 ) ; break ;
default : return NO_SAMPLE ;
}
return sfx ;
}
uint32
cAudioManager : : GetGenericFemaleTalkSfx ( CPed * ped , uint16 sound )
{
uint32 sfx ;
m_bGenericSfx = TRUE ;
switch ( sound ) {
case SOUND_PED_DEATH : GetPhrase ( sfx , ped - > m_lastComment , SFX_GENERIC_FEMALE_DEATH_1 , 22 ) ; break ;
case SOUND_PED_BULLET_HIT :
case SOUND_PED_DEFEND : GetPhrase ( sfx , ped - > m_lastComment , SFX_GENERIC_FEMALE_GRUNT_1 , 33 ) ; break ;
case SOUND_PED_BURNING : GetPhrase ( sfx , ped - > m_lastComment , SFX_GENERIC_FEMALE_FIRE_1 , 17 ) ; break ;
case SOUND_PED_FLEE_SPRINT : GetPhrase ( sfx , ped - > m_lastComment , SFX_GENERIC_FEMALE_PANIC_1 , 27 ) ; break ;
default : return NO_SAMPLE ;
}
return sfx ;
}
uint32
cAudioManager : : GetDefaultTalkSfx ( CPed * ped , uint16 sound )
{
uint32 sfx ;
switch ( sound ) {
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_GUN_PANIC_1 , 12 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_JACKED_1 , 12 ) ; break ;
# ifdef FIX_BUGS
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_JACKING_1 , 13 ) ; break ;
# endif
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_MUGGED_1 , 4 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_SAVED_1 , 4 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_TAXI_1 , 5 ) ; break ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_FIGHT_1 , 16 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_DODGE_1 , 19 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_RUN_1 , 19 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_GENERIC_CRASH_1 , 13 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_CAR_CRASH_1 , 15 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_BLOCKED_1 , 16 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_LOST_1 , 5 ) ; break ;
# ifdef FIX_BUGS
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_EYEING_1 , 6 ) ; break ;
# else
case SOUND_PED_CHAT_SEXY_FEMALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_EYEING_1 , 6 ) ; break ;
# endif
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_SHOCKED_1 , 6 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_BUMP_1 , 25 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_DEFAULT_VOICE_CHAT_1 , 25 ) ; break ;
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
uint32
cAudioManager : : GetCopTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
PedState objective ;
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_ARREST_COP : GetPhrase ( sfx , ped - > m_lastComment , SFX_COP_VOICE_1_ARREST_1 , 4 ) ; break ;
case SOUND_PED_PULLOUTWEAPON : GetPhrase ( sfx , ped - > m_lastComment , SFX_COP_VOICE_1_PULLOUTWEAPON_1 , 3 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_COP_VOICE_1_SAVED_1 , 2 ) ; break ;
case SOUND_PED_COP_TARGETING : GetPhrase ( sfx , ped - > m_lastComment , SFX_COP_VOICE_1_COP_TARGETING_1 , 4 ) ; break ;
case SOUND_PED_COP_MANYCOPSAROUND : GetPhrase ( sfx , ped - > m_lastComment , SFX_COP_VOICE_1_COP_MANYCOPSAROUND_1 , 2 ) ; break ;
case SOUND_PED_GUNAIMEDAT2 : GetPhrase ( sfx , ped - > m_lastComment , SFX_COP_VOICE_1_GUNAIMEDAT2_1 , 2 ) ; break ;
case SOUND_PED_COP_ALONE : GetPhrase ( sfx , ped - > m_lastComment , SFX_COP_VOICE_1_COP_ALONE_1 , 4 ) ; break ;
case SOUND_PED_GUNAIMEDAT3 : GetPhrase ( sfx , ped - > m_lastComment , SFX_COP_VOICE_1_GUNAIMEDAT2_1 , 2 ) ; break ;
case SOUND_PED_COP_ASK_FOR_ID : {
2020-11-07 12:39:53 +00:00
cooldown_phrase ( 4 ) ;
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_COP_VOICE_1_COP_ASK_FOR_ID_1 , 2 ) ;
2020-11-07 12:39:53 +00:00
break ;
2020-10-24 16:10:51 +00:00
}
case SOUND_PED_COP_LITTLECOPSAROUND :
objective = FindPlayerPed ( ) - > m_nPedState ;
if ( objective = = PED_ARRESTED | | objective = = PED_DEAD | | objective = = PED_DIE ) return NO_SAMPLE ;
2021-05-12 00:26:54 +00:00
GetPhrase ( sfx , ped - > m_lastComment , SFX_COP_VOICE_1_COP_LITTLECOPSAROUND_1 , 4 ) ;
2020-10-24 16:10:51 +00:00
break ;
2021-05-12 00:26:54 +00:00
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_COP_VOICE_1_FIGHT_1 , 4 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_COP_VOICE_1_DODGE_1 , 3 ) ; break ;
# ifdef FIX_BUGS
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_COP_VOICE_1_CAR_CRASH_1 , 4 ) ; break ;
# endif
2020-10-24 16:10:51 +00:00
case SOUND_PED_PED_COLLISION :
2021-05-12 00:26:54 +00:00
if ( FindPlayerPed ( ) - > m_pWanted - > GetWantedLevel ( ) > 0 )
GetPhrase ( sfx , ped - > m_lastComment , SFX_COP_VOICE_1_BUMP_1 , 5 ) ;
else
return NO_SAMPLE ;
2020-10-24 16:10:51 +00:00
break ;
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
2021-05-12 00:26:54 +00:00
return ( SFX_COP_VOICE_2_ARREST_1 - SFX_COP_VOICE_1_ARREST_1 ) * ( m_sQueueSample . m_nEntityIndex % 5 ) + sfx ;
2020-10-24 16:10:51 +00:00
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetSwatTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_COP_HELIPILOTPHRASE : GetPhrase ( sfx , ped - > m_lastComment , SFX_SWAT_VOICE_1_COP_HELIPILOTPHRASE_1 , 7 ) ; break ;
case SOUND_PED_COP_TARGETING : GetPhrase ( sfx , ped - > m_lastComment , SFX_SWAT_VOICE_1_COP_TARGETING_1 , 4 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_SWAT_VOICE_1_DODGE_1 , 3 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
2021-05-12 00:26:54 +00:00
sfx + = ( SFX_SWAT_VOICE_2_DODGE_1 - SFX_SWAT_VOICE_1_DODGE_1 ) * ( m_sQueueSample . m_nEntityIndex % 3 ) ;
2020-10-24 16:10:51 +00:00
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetFBITalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
# ifdef FIX_BUGS
case SOUND_PED_COP_TARGETING : GetPhrase ( sfx , ped - > m_lastComment , SFX_FBI_VOICE_1_COP_TARGETING_1 , 6 ) ; break ;
# else
case SOUND_PED_COP_TARGETING : GetPhrase ( sfx , ped - > m_lastComment , SFX_FBI_VOICE_1_COP_TARGETING_1 , 4 ) ; break ;
# endif
case SOUND_PED_COP_MANYCOPSAROUND : GetPhrase ( sfx , ped - > m_lastComment , SFX_FBI_VOICE_1_COP_MANYCOPSAROUND_1 , 3 ) ; break ;
case SOUND_PED_GUNAIMEDAT2 : sfx = SFX_FBI_VOICE_1_GUNAIMEDAT2_1 ; break ;
case SOUND_PED_GUNAIMEDAT3 : GetPhrase ( sfx , ped - > m_lastComment , SFX_FBI_VOICE_1_GUNAIMEDAT3_1 , 4 ) ; break ;
2020-10-24 16:10:51 +00:00
case SOUND_PED_CRASH_VEHICLE :
2021-05-12 00:26:54 +00:00
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_FBI_VOICE_1_CAR_CRASH_1 , 4 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
2021-05-12 00:26:54 +00:00
# ifdef FIX_BUGS
sfx + = ( SFX_FBI_VOICE_2_GUNAIMEDAT3_1 - SFX_FBI_VOICE_1_GUNAIMEDAT3_1 ) * ( m_sQueueSample . m_nEntityIndex % 3 ) ;
# else
2020-10-24 16:10:51 +00:00
sfx + = 16 * ( m_sQueueSample . m_nEntityIndex % 3 ) ;
2021-05-12 00:26:54 +00:00
# endif
2020-10-24 16:10:51 +00:00
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetArmyTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
return GetGenericMaleTalkSfx ( ped , sound ) ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetMedicTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_MEDIC_VOICE_1_FIGHT_1 , 6 ) ; break ;
case SOUND_PED_HEALING : GetPhrase ( sfx , ped - > m_lastComment , SFX_MEDIC_VOICE_1_AT_VICTIM_1 , 17 ) ; break ;
case SOUND_PED_LEAVE_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_MEDIC_VOICE_1_GET_OUT_VAN_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
2021-05-12 00:26:54 +00:00
sfx + = ( SFX_MEDIC_VOICE_2_FIGHT_1 - SFX_MEDIC_VOICE_1_FIGHT_1 ) * ( m_sQueueSample . m_nEntityIndex % 2 ) ;
2020-10-24 16:10:51 +00:00
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetFiremanTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
return GetGenericMaleTalkSfx ( ped , sound ) ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWFYG1TalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-07-28 06:17:38 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG1_GUN_COOL_1 , 6 ) ; break ;
case SOUND_PED_MUGGING : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG1_MUGGING_1 , 2 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG1_JACKED_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG1_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WFYG1_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_WFYG1_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG1_FIGHT_1 , 4 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG1_DODGE_1 , 9 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG1_RUN_1 , 2 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG1_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG1_CAR_CRASH_1 , 9 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG1_BLOCKED_1 , 7 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG1_LOST_1 , 3 ) ; break ;
case SOUND_PED_CHAT_SEXY_FEMALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG1_EYEING_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : return SFX_WFYG1_SHOCKED_1 ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG1_BUMP_1 , 11 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG1_CHAT_1 , 10 ) ; break ;
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
uint32
cAudioManager : : GetWFYG2TalkSfx ( CPed * ped , uint16 sound )
{
uint32 sfx ;
switch ( sound ) {
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG2_GUN_COOL_1 , 3 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG2_JACKED_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG2_MUGGED_1 , 2 ) ; break ;
2021-05-12 00:26:54 +00:00
# ifdef FIX_BUGS
2021-07-28 06:17:38 +00:00
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG2_TAXI_1 , 2 ) ; break ;
2021-05-12 00:26:54 +00:00
# else
2021-07-28 06:17:38 +00:00
case SOUND_PED_TAXI_WAIT : return SFX_WFYG2_TAXI_1 ;
2021-05-12 00:26:54 +00:00
# endif
2021-07-28 06:17:38 +00:00
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG2_FIGHT_1 , 5 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG2_DODGE_1 , 8 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG2_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG2_CAR_CRASH_1 , 9 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG2_BLOCKED_1 , 5 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : return SFX_WFYG2_LOST_1 ;
case SOUND_PED_CHAT_SEXY_FEMALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG2_EYEING_1 , 4 ) ; break ;
case SOUND_PED_CHAT_EVENT : return SFX_WFYG2_SHOCKED_1 ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG2_BUMP_1 , 11 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYG2_CHAT_1 , 9 ) ; break ;
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
2020-10-24 16:10:51 +00:00
}
2021-07-28 06:17:38 +00:00
2020-10-24 16:10:51 +00:00
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHFYSTTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYST_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYST_JACKING_1 , 4 ) ; break ;
case SOUND_PED_MUGGING : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYST_MUGGING_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYST_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYST_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_HFYST_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYST_FIGHT_1 , 7 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYST_DODGE_1 , 10 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYST_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYST_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYST_BLOCKED_1 , 7 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYST_LOST_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYST_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYST_CHAT_1 , 9 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHFOSTTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOST_GUN_COOL_1 , 6 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOST_JACKED_1 , 8 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOST_MUGGED_1 , 3 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOST_TAXI_1 , 2 ) ; break ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOST_FIGHT_1 , 8 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOST_DODGE_1 , 10 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOST_GENERIC_CRASH_1 , 11 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOST_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOST_BLOCKED_1 , 9 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOST_LOST_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOST_BUMP_1 , 12 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOST_CHAT_1 , 11 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHMYSTTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYST_GUN_PANIC_1 , 6 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_HMYST_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_HMYST_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYST_DODGE_1 , 6 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYST_RUN_1 , 4 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYST_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYST_EYEING_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYST_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYST_BUMP_1 , 13 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYST_CHAT_1 , 11 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHMOSTTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOST_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOST_JACKING_1 , 3 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOST_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOST_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_HMOST_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOST_FIGHT_1 , 8 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOST_DODGE_1 , 9 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOST_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOST_CAR_CRASH_1 , 7 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOST_BLOCKED_1 , 7 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOST_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : return SFX_HMOST_EYEING_1 ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOST_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOST_CHAT_1 , 11 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHFYRITalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYRI_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYRI_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYRI_MUGGED_1 , 4 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYRI_SAVED_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_HFYRI_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYRI_DODGE_1 , 10 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYRI_RUN_1 , 4 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYRI_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYRI_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYRI_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYRI_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYRI_SHOCKED_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYRI_BUMP_1 , 9 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHFORITalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFORI_GUN_PANIC_1 , 6 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFORI_JACKED_1 , 9 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFORI_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_HFORI_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_HFORI_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFORI_DODGE_1 , 6 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFORI_RUN_1 , 4 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFORI_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFORI_CAR_CRASH_1 , 7 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFORI_BLOCKED_1 , 6 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFORI_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_FEMALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFORI_EYEING_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFORI_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFORI_BUMP_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHMYRITalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYRI_GUN_PANIC_1 , 7 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYRI_JACKING_1 , 3 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYRI_JACKED_1 , 8 ) ; break ;
case SOUND_PED_ROBBED : return SFX_HMYRI_MUGGED_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYRI_FIGHT_1 , 5 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYRI_DODGE_1 , 9 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYRI_GENERIC_CRASH_1 , 12 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYRI_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYRI_BLOCKED_1 , 7 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYRI_SHOCKED_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYRI_BUMP_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHMORITalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMORI_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMORI_JACKED_1 , 8 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMORI_MUGGED_1 , 3 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMORI_TAXI_1 , 2 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMORI_DODGE_1 , 7 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMORI_RUN_1 , 6 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMORI_GENERIC_CRASH_1 , 11 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMORI_CAR_CRASH_1 , 6 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMORI_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMORI_LOST_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMORI_BUMP_1 , 11 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMORI_CHAT_1 , 8 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHFYBETalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBE_GUN_PANIC_1 , 7 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBE_JACKED_1 , 7 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_HFYBE_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBE_DODGE_1 , 11 ) ; break ;
# ifdef FIX_BUGS // assumption
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBE_RUN_1 , 7 ) ; break ;
# endif
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBE_GENERIC_CRASH_1 , 8 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBE_CAR_CRASH_1 , 6 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBE_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBE_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBE_BUMP_1 , 8 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBE_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHFOBETalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOBE_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOBE_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_HFOBE_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOBE_TAXI_1 , 2 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOBE_DODGE_1 , 7 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOBE_RUN_1 , 4 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOBE_GENERIC_CRASH_1 , 5 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOBE_CAR_CRASH_1 , 6 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOBE_BLOCKED_1 , 6 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOBE_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOBE_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOBE_BUMP_1 , 11 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOBE_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHMYBETalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYBE_GUN_PANIC_1 , 6 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYBE_JACKED_1 , 12 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_HMYBE_SAVED_1 ;
case SOUND_PED_INNOCENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYBE_INNOCENT_1 , 4 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_HMYBE_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYBE_FIGHT_1 , 8 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYBE_DODGE_1 , 7 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYBE_GENERIC_CRASH_1 , 10 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYBE_CAR_CRASH_1 , 7 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYBE_LOST_1 , 3 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYBE_EYEING_1 , 5 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYBE_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYBE_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYBE_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHMOBETalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOBE_GUN_PANIC_1 , 3 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOBE_JACKED_1 , 6 ) ; break ;
case SOUND_PED_INNOCENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOBE_INNOCENT_1 , 3 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOBE_DODGE_1 , 9 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOBE_BLOCKED_1 , 10 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOBE_EYEING_1 , 4 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOBE_BUMP_1 , 8 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHFYBUTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBU_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBU_JACKING_1 , 3 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBU_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBU_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_HFYBU_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_HFYBU_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBU_FIGHT_1 , 7 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBU_DODGE_1 , 10 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBU_GENERIC_CRASH_1 , 12 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBU_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBU_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBU_LOST_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYBU_BUMP_1 , 11 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHFYMDTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYMD_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYMD_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYMD_SAVED_1 , 3 ) ; break ;
# ifdef FIX_BUGS
case SOUND_PED_TAXI_WAIT : return SFX_HFYMD_TAXI_1 ;
# else
case SOUND_PED_TAXI_WAIT : return SFX_BFOBE_TAXI_1 ;
# endif
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYMD_FIGHT_1 , 9 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYMD_DODGE_1 , 8 ) ; break ;
case SOUND_PED_SOLICIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYMD_SOLICIT_1 , 15 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYMD_BUMP_1 , 9 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHFYCGTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYCG_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYCG_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_HFYCG_SAVED_1 ;
# ifdef FIX_BUGS
case SOUND_PED_TAXI_WAIT : return SFX_HFYCG_TAXI_1 ;
# else
case SOUND_PED_TAXI_WAIT : return SFX_BFOBE_TAXI_1 ;
# endif
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYCG_DODGE_1 , 8 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYCG_RUN_1 , 4 ) ; break ;
case SOUND_PED_SOLICIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYCG_SOLICIT_1 , 14 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYCG_BUMP_1 , 9 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHFYPRTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYPR_GUN_COOL_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYPR_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_HFYPR_SAVED_1 ;
case SOUND_PED_PLAYER_BEFORESEX : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYPR_FUCKING_1 , 8 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_HFYPR_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYPR_FIGHT_1 , 10 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYPR_DODGE_1 , 9 ) ; break ;
case SOUND_PED_SOLICIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYPR_SOLICIT_1 , 14 ) ; break ;
case SOUND_PED_CHAT_SEXY_FEMALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYPR_EYEING_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYPR_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFYPR_CHAT_1 , 12 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHFOTRTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOTR_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOTR_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_HFOTR_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOTR_TAXI_1 , 2 ) ; break ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOTR_FIGHT_1 , 6 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOTR_DODGE_1 , 8 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOTR_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOTR_BUMP_1 , 11 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HFOTR_CHAT_1 , 12 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHMOTRTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOTR_GUN_COOL_1 , 6 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOTR_SAVED_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_HMOTR_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOTR_FIGHT_1 , 7 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOTR_DODGE_1 , 11 ) ; break ;
case SOUND_PED_SOLICIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOTR_SOLICIT_1 , 8 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOTR_SHOCKED_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOTR_BUMP_1 , 8 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOTR_CHAT_1 , 9 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHMOCATalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOCA_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOCA_JACKING_1 , 11 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOCA_JACKED_1 , 10 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOCA_MUGGED_1 , 7 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_HMOCA_TAXI_1 ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOCA_RUN_1 , 2 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOCA_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOCA_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOCA_EYEING_1 , 2 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMOCA_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBMYCRTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYCR_GUN_COOL_1 , 6 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYCR_JACKING_1 , 12 ) ; break ;
case SOUND_PED_MUGGING : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYCR_MUGGING_1 , 6 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYCR_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYCR_MUGGED_1 , 3 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYCR_SAVED_1 , 2 ) ; break ;
case SOUND_PED_INNOCENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYCR_INNOCENT_1 , 4 ) ; break ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYCR_FIGHT_1 , 8 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYCR_DODGE_1 , 8 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYCR_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYCR_CAR_CRASH_1 , 9 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYCR_BLOCKED_1 , 12 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYCR_EYEING_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYCR_BUMP_1 , 11 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBFYSTTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYST_GUN_PANIC_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYST_JACKED_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYST_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYST_SAVED_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_BFYST_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYST_DODGE_1 , 9 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYST_RUN_1 , 6 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYST_GENERIC_CRASH_1 , 8 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYST_CAR_CRASH_1 , 9 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYST_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYST_LOST_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYST_BUMP_1 , 9 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYST_CHAT_1 , 9 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBFOSTTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOST_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOST_JACKED_1 , 8 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOST_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOST_SAVED_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_BFOST_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOST_DODGE_1 , 11 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOST_RUN_1 , 4 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOST_GENERIC_CRASH_1 , 8 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOST_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOST_BLOCKED_1 , 7 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOST_LOST_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOST_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOST_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBMYSTTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYST_GUN_COOL_1 , 6 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYST_JACKING_1 , 4 ) ; break ;
case SOUND_PED_MUGGING : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYST_MUGGING_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYST_JACKED_1 , 8 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYST_MUGGED_1 , 2 ) ; break ;
# ifdef FIX_BUGS
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYST_TAXI_1 , 2 ) ; break ;
# else
case SOUND_PED_TAXI_WAIT : return SFX_BMYST_TAXI_1 ;
# endif
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYST_FIGHT_1 , 6 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYST_DODGE_1 , 8 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYST_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYST_CAR_CRASH_1 , 9 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYST_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYST_BUMP_1 , 11 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYST_CHAT_1 , 12 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBMOSTTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOST_GUN_PANIC_1 , 9 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOST_MUGGED_1 , 4 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_BMOST_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_BMOST_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOST_FIGHT_1 , 7 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOST_DODGE_1 , 8 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOST_GENERIC_CRASH_1 , 13 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOST_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOST_LOST_1 , 6 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOST_EYEING_1 , 6 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOST_BUMP_1 , 17 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOST_CHAT_1 , 18 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBFYRITalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYRI_GUN_PANIC_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYRI_JACKING_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYRI_JACKED_1 , 8 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYRI_MUGGED_1 , 3 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYRI_SAVED_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_BFYRI_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYRI_DODGE_1 , 8 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYRI_RUN_1 , 6 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYRI_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYRI_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYRI_BLOCKED_1 , 9 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYRI_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_FEMALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYRI_EYEING_1 , 3 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYRI_SHOCKED_1 , 4 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYRI_BUMP_1 , 9 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBFORITalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFORI_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFORI_JACKED_1 , 4 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFORI_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_BFORI_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFORI_TAXI_1 , 2 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFORI_DODGE_1 , 9 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFORI_RUN_1 , 4 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFORI_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFORI_CAR_CRASH_1 , 7 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFORI_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFORI_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFORI_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFORI_BUMP_1 , 9 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBMYRITalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYRI_GUN_PANIC_1 , 7 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYRI_JACKED_1 , 4 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYRI_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_BMYRI_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_BMYRI_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYRI_DODGE_1 , 8 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYRI_RUN_1 , 4 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYRI_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYRI_CAR_CRASH_1 , 7 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYRI_BLOCKED_1 , 6 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYRI_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : return SFX_BMYRI_EYEING_1 ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYRI_SHOCKED_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYRI_BUMP_1 , 7 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBFYBETalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_GUN_COOL_1 , 6 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_JACKED_1 , 8 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_MUGGED_1 , 5 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_SAVED_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_TAXI_1 , 3 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_DODGE_1 , 10 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_RUN_1 , 6 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_GENERIC_CRASH_1 , 8 ) ; break ;
# ifdef FIX_BUGS
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_CAR_CRASH_1 , 10 ) ; break ;
# else
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_CAR_CRASH_1 , 8 ) ; break ;
# endif
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_BLOCKED_1 , 12 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_LOST_1 , 4 ) ; break ;
# ifdef FIX_BUGS
case SOUND_PED_CHAT_SEXY_FEMALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_EYEING_1 , 4 ) ; break ;
# else
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_EYEING_1 , 4 ) ; break ;
# endif
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_SHOCKED_1 , 4 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYBE_CHAT_1 , 16 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBMYBETalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBE_GUN_COOL_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBE_JACKING_1 , 3 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBE_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : return SFX_BMYBE_MUGGED_1 ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_BMYBE_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_BMYBE_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBE_FIGHT_1 , 8 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBE_DODGE_1 , 10 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBE_GENERIC_CRASH_1 , 8 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBE_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBE_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : return SFX_BMYBE_LOST_1 ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBE_EYEING_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBE_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBE_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBFOBETalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOBE_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOBE_JACKING_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOBE_JACKED_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOBE_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_BFOBE_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOBE_DODGE_1 , 9 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOBE_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOBE_CAR_CRASH_1 , 7 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOBE_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOBE_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOBE_BUMP_1 , 8 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOBE_CHAT_1 , 8 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBMOBETalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOBE_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOBE_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOBE_MUGGED_1 , 4 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOBE_SAVED_1 , 3 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_BMOBE_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOBE_FIGHT_1 , 10 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOBE_DODGE_1 , 11 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOBE_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOBE_CAR_CRASH_1 , 9 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOBE_SHOCKED_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOBE_BUMP_1 , 5 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOBE_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBMYBUTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBU_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBU_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBU_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_BMYBU_SAVED_1 ;
case SOUND_PED_INNOCENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBU_INNOCENT_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_BMYBU_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBU_FIGHT_1 , 5 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBU_DODGE_1 , 10 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBU_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBU_CAR_CRASH_1 , 7 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBU_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBU_EYEING_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBU_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBU_BUMP_1 , 7 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBFYPRTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYPR_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYPR_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_BFYPR_SAVED_1 ;
case SOUND_PED_PLAYER_BEFORESEX : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYPR_FUCKING_1 , 7 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYPR_TAXI_1 , 2 ) ; break ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYPR_FIGHT_1 , 7 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYPR_DODGE_1 , 7 ) ; break ;
case SOUND_PED_SOLICIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYPR_SOLICIT_1 , 13 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYPR_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYPR_BUMP_1 , 11 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFYPR_CHAT_1 , 13 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBFOTRTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOTR_GUN_COOL_1 , 6 ) ; break ;
case SOUND_PED_MUGGING : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOTR_MUGGING_1 , 3 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOTR_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_BFOTR_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_BFOTR_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOTR_FIGHT_1 , 6 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOTR_DODGE_1 , 9 ) ; break ;
case SOUND_PED_SOLICIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOTR_SOLICIT_1 , 5 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOTR_SHOCKED_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOTR_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BFOTR_CHAT_1 , 15 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBMOTRTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOTR_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOTR_SAVED_1 , 1 ) ; break ;
case SOUND_PED_INNOCENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOTR_INNOCENT_1 , 4 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_BMOTR_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOTR_DODGE_1 , 11 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOTR_RUN_1 , 7 ) ; break ;
case SOUND_PED_SOLICIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOTR_SOLICIT_1 , 7 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOTR_EYEING_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOTR_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMOTR_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBMYPITalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYPI_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYPI_JACKING_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYPI_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : return SFX_BMYPI_MUGGED_1 ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_BMYPI_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYPI_TAXI_1 , 2 ) ; break ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYPI_FIGHT_1 , 8 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYPI_DODGE_1 , 10 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYPI_GENERIC_CRASH_1 , 13 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYPI_CAR_CRASH_1 , 5 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYPI_BLOCKED_1 , 6 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYPI_EYEING_1 , 4 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYPI_BUMP_1 , 9 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBMYBBTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_JACKING_1 , 9 ) ; break ;
case SOUND_PED_MUGGING : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_MUGGING_1 , 8 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_JACKED_1 , 11 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_MUGGED_1 , 5 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_SAVED_1 , 6 ) ; break ;
case SOUND_PED_INNOCENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_INNOCENT_1 , 4 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_TAXI_1 , 3 ) ; break ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_FIGHT_1 , 12 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_DODGE_1 , 18 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_GENERIC_CRASH_1 , 9 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_CAR_CRASH_1 , 9 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_BLOCKED_1 , 13 ) ; break ;
case SOUND_PED_JEER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_JEER_1 , 16 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_EYEING_1 , 16 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_SHOCKED_1 , 6 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_BUMP_1 , 17 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMYBB_CHAT_1 , 21 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMYCRTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCR_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCR_JACKING_1 , 6 ) ; break ;
case SOUND_PED_MUGGING : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCR_MUGGING_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCR_MUGGED_1 , 3 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_WMYCR_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCR_FIGHT_1 , 7 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCR_DODGE_1 , 10 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCR_GENERIC_CRASH_1 , 9 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCR_CAR_CRASH_1 , 9 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCR_BUMP_1 , 18 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWFYSTTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYST_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYST_JACKING_1 , 4 ) ; break ;
case SOUND_PED_MUGGING : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYST_MUGGING_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYST_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYST_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WFYST_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_WFYST_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYST_FIGHT_1 , 7 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYST_DODGE_1 , 10 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYST_GENERIC_CRASH_1 , 8 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYST_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYST_BLOCKED_1 , 6 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : return SFX_WFYST_LOST_1 ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYST_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYST_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWFYSKTalkSfx ( CPed * ped , uint16 sound )
{
uint32 sfx ;
switch ( sound ) {
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSK_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSK_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSK_SAVED_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_WFYSK_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSK_FIGHT_1 , 11 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSK_DODGE_1 , 9 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSK_BLOCKED_1 , 11 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSK_BUMP_1 , 18 ) ; break ;
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
uint32
cAudioManager : : GetWMYSKTalkSfx ( CPed * ped , uint16 sound )
{
uint32 sfx ;
switch ( sound ) {
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYSK_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYSK_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYSK_SAVED_1 , 2 ) ; break ;
case SOUND_PED_INNOCENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYSK_INNOCENT_1 , 3 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_WMYSK_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYSK_FIGHT_1 , 5 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYSK_DODGE_1 , 10 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYSK_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYSK_EYEING_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYSK_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYSK_BUMP_1 , 14 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYSK_CHAT_1 , 13 ) ; break ;
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
uint32
cAudioManager : : GetWFOSTTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOST_GUN_PANIC_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOST_JACKED_1 , 8 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOST_MUGGED_1 , 5 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOST_SAVED_1 , 4 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_WFOST_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOST_DODGE_1 , 12 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOST_RUN_1 , 7 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOST_GENERIC_CRASH_1 , 10 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOST_CAR_CRASH_1 , 11 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOST_BLOCKED_1 , 12 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOST_LOST_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOST_BUMP_1 , 19 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOST_CHAT_1 , 16 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMYSTTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYST_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_MUGGING : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYST_MUGGING_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYST_JACKED_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : return SFX_WMYST_MUGGED_1 ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WMYST_SAVED_1 ;
case SOUND_PED_INNOCENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYST_INNOCENT_1 , 3 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYST_TAXI_1 , 2 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYST_DODGE_1 , 10 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYST_RUN_1 , 7 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYST_GENERIC_CRASH_1 , 5 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYST_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYST_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYST_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYST_EYEING_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYST_BUMP_1 , 11 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYST_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMOSTTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOST_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOST_JACKED_1 , 4 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOST_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WMOST_SAVED_1 ;
case SOUND_PED_INNOCENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOST_INNOCENT_1 , 3 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_WMOST_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOST_FIGHT_1 , 8 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOST_DODGE_1 , 8 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOST_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOST_CAR_CRASH_1 , 7 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOST_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_JEER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOST_JEER_1 , 4 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOST_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOST_EYEING_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOST_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOST_CHAT_1 , 9 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWFYRITalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYRI_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYRI_JACKED_1 , 7 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYRI_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WFYRI_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_WFYRI_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYRI_DODGE_1 , 9 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYRI_RUN_1 , 5 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYRI_GENERIC_CRASH_1 , 8 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYRI_CAR_CRASH_1 , 9 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYRI_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYRI_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_FEMALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYRI_EYEING_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYRI_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYRI_BUMP_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWFORITalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFORI_GUN_PANIC_1 , 6 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFORI_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFORI_MUGGED_1 , 3 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WFORI_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_WFORI_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFORI_FIGHT_1 , 7 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFORI_DODGE_1 , 11 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFORI_GENERIC_CRASH_1 , 8 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFORI_CAR_CRASH_1 , 10 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFORI_BLOCKED_1 , 7 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFORI_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFORI_SHOCKED_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFORI_BUMP_1 , 11 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMYRITalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYRI_GUN_PANIC_1 , 8 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYRI_JACKED_1 , 8 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WMYRI_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYRI_TAXI_1 , 2 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYRI_DODGE_1 , 9 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYRI_RUN_1 , 5 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYRI_GENERIC_CRASH_1 , 11 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYRI_CAR_CRASH_1 , 9 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYRI_BLOCKED_1 , 10 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : return SFX_WMYRI_LOST_1 ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYRI_EYEING_1 , 3 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYRI_SHOCKED_1 , 4 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYRI_BUMP_1 , 8 ) ; break ;
# ifdef FIX_BUGS
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYRI_CHAT_1 , 10 ) ; break ;
# endif
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMORITalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMORI_GUN_PANIC_1 , 9 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMORI_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMORI_MUGGED_1 , 4 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMORI_SAVED_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMORI_TAXI_1 , 2 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMORI_DODGE_1 , 10 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMORI_RUN_1 , 12 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMORI_GENERIC_CRASH_1 , 8 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMORI_CAR_CRASH_1 , 6 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMORI_BLOCKED_1 , 10 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMORI_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMORI_EYEING_1 , 3 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMORI_SHOCKED_1 , 4 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMORI_BUMP_1 , 14 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWFYBETalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBE_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBE_JACKED_1 , 4 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WFYBE_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_WFYBE_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBE_DODGE_1 , 8 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBE_RUN_1 , 5 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBE_GENERIC_CRASH_1 , 6 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBE_CAR_CRASH_1 , 6 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBE_BLOCKED_1 , 7 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBE_SHOCKED_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBE_BUMP_1 , 11 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBE_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMYBETalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBE_GUN_PANIC_1 , 8 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBE_JACKING_1 , 3 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBE_JACKED_1 , 7 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBE_DODGE_1 , 12 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBE_RUN_1 , 5 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBE_GENERIC_CRASH_1 , 8 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBE_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBE_BLOCKED_1 , 9 ) ; break ;
case SOUND_PED_JEER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBE_JEER_1 , 7 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBE_LOST_1 , 3 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBE_EYEING_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBE_SHOCKED_1 , 6 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBE_BUMP_1 , 14 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBE_CHAT_1 , 11 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWFOBETalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOBE_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOBE_JACKED_1 , 4 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOBE_SAVED_1 , 3 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOBE_TAXI_1 , 2 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOBE_DODGE_1 , 8 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOBE_RUN_1 , 7 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOBE_GENERIC_CRASH_1 , 10 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOBE_CAR_CRASH_1 , 7 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOBE_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOBE_SHOCKED_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOBE_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOBE_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMOBETalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_JACKING_1 , 4 ) ; break ;
case SOUND_PED_MUGGING : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_MUGGING_1 , 6 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_JACKED_1 , 8 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_SAVED_1 , 2 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_DODGE_1 , 8 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_RUN_1 , 4 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_BLOCKED_1 , 6 ) ; break ;
case SOUND_PED_JEER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_JEER_1 , 16 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_EYEING_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_BUMP_1 , 12 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMYCWTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCW_GUN_PANIC_1 , 6 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCW_JACKING_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCW_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : return SFX_WMYCW_MUGGED_1 ;
# ifdef FIX_BUGS
case SOUND_PED_INNOCENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCW_INNOCENT_1 , 3 ) ; break ;
# endif
case SOUND_PED_TAXI_WAIT : return SFX_WMYCW_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCW_FIGHT_1 , 8 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCW_DODGE_1 , 10 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCW_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCW_CAR_CRASH_1 , 9 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCW_BLOCKED_1 , 9 ) ; break ;
case SOUND_PED_JEER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCW_JEER_1 , 5 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCW_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCW_EYEING_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCW_BUMP_1 , 9 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYCW_CHAT_1 , 15 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMYGOTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYGO_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYGO_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYGO_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WMYGO_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYGO_TAXI_1 , 3 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYGO_DODGE_1 , 11 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYGO_RUN_1 , 6 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYGO_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYGO_CAR_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYGO_EYEING_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYGO_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYGO_BUMP_1 , 9 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYGO_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWFOGOTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOGO_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOGO_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOGO_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WFOGO_SAVED_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOGO_FIGHT_1 , 14 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOGO_DODGE_1 , 9 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOGO_RUN_1 , 2 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOGO_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOGO_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOGO_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOGO_BUMP_1 , 8 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOGO_CHAT_1 , 11 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMOGOTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOGO_GUN_PANIC_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOGO_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WMOGO_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_WMOGO_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOGO_FIGHT_1 , 13 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOGO_DODGE_1 , 12 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOGO_RUN_1 , 5 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOGO_GENERIC_CRASH_1 , 8 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOGO_CAR_CRASH_1 , 9 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOGO_EYEING_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOGO_SHOCKED_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOGO_BUMP_1 , 8 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOGO_CHAT_1 , 9 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWFYLGTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYLG_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WFYLG_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_WFYLG_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYLG_FIGHT_1 , 7 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYLG_DODGE_1 , 8 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYLG_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYLG_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMYLGTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYLG_GUN_COOL_1 , 6 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WMYLG_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_WMYLG_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYLG_FIGHT_1 , 7 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYLG_DODGE_1 , 9 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYLG_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYLG_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWFYBUTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBU_GUN_PANIC_1 , 8 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBU_JACKED_1 , 8 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBU_MUGGED_1 , 4 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBU_TAXI_1 , 2 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBU_RUN_1 , 8 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBU_GENERIC_CRASH_1 , 8 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBU_CAR_CRASH_1 , 9 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBU_SHOCKED_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYBU_BUMP_1 , 21 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMYBUTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBU_GUN_PANIC_1 , 6 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBU_JACKED_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : return SFX_WMYBU_MUGGED_1 ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBU_SAVED_1 , 2 ) ; break ;
case SOUND_PED_INNOCENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBU_INNOCENT_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBU_TAXI_1 , 2 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBU_DODGE_1 , 10 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBU_RUN_1 , 3 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBU_GENERIC_CRASH_1 , 5 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBU_CAR_CRASH_1 , 9 ) ; break ;
# ifdef FIX_BUGS
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBU_BLOCKED_1 , 9 ) ; break ;
# else
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBE_BLOCKED_1 , 6 ) ; break ;
# endif
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBU_LOST_1 , 5 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBU_EYEING_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBU_SHOCKED_1 , 5 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBU_BUMP_1 , 11 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYBU_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMOBUTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBU_GUN_PANIC_1 , 6 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBU_JACKED_1 , 7 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBU_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBU_SAVED_1 , 3 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBU_TAXI_1 , 2 ) ; break ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBU_FIGHT_1 , 3 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBU_DODGE_1 , 8 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBU_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBU_CAR_CRASH_1 , 7 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBU_BLOCKED_1 , 7 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBU_LOST_1 , 3 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBU_EYEING_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOBU_BUMP_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWFYPRTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYPR_GUN_COOL_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYPR_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WFYPR_SAVED_1 ;
case SOUND_PED_PLAYER_BEFORESEX : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYPR_FUCKING_1 , 5 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_WFYPR_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYPR_FIGHT_1 , 9 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYPR_DODGE_1 , 10 ) ; break ;
case SOUND_PED_SOLICIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYPR_SOLICIT_1 , 15 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYPR_BUMP_1 , 11 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYPR_CHAT_1 , 14 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWFOTRTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOTR_GUN_COOL_1 , 6 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WFOTR_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_WFOTR_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOTR_DODGE_1 , 9 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOTR_RUN_1 , 6 ) ; break ;
case SOUND_PED_SOLICIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOTR_SOLICIT_1 , 9 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOTR_BUMP_1 , 11 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOTR_CHAT_1 , 9 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMOTRTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOTR_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WMOTR_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_WMOTR_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOTR_FIGHT_1 , 6 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOTR_DODGE_1 , 17 ) ; break ;
case SOUND_PED_SOLICIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOTR_SOLICIT_1 , 7 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOTR_EYEING_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOTR_SHOCKED_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOTR_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOTR_CHAT_1 , 13 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMYPITalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYPI_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYPI_JACKING_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYPI_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYPI_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYPI_SAVED_1 , 2 ) ; break ;
case SOUND_PED_INNOCENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYPI_INNOCENT_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYPI_TAXI_1 , 4 ) ; break ;
# ifdef FIX_BUGS
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYPI_FIGHT_1 , 9 ) ; break ;
# else
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYPI_FIGHT_1 , 7 ) ; break ;
# endif
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYPI_DODGE_1 , 8 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYPI_GENERIC_CRASH_1 , 8 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYPI_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYPI_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYPI_EYEING_1 , 6 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYPI_BUMP_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWMOCATalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOCA_GUN_PANIC_1 , 6 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOCA_JACKING_1 , 11 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOCA_JACKED_1 , 10 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOCA_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WMOCA_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_WMOCA_TAXI_1 ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOCA_FIGHT_1 , 8 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOCA_DODGE_1 , 10 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOCA_GENERIC_CRASH_1 , 9 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOCA_CAR_CRASH_1 , 10 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOCA_BLOCKED_1 , 12 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOCA_EYEING_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMOCA_BUMP_1 , 6 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWFYSHTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2021-07-28 06:17:38 +00:00
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-07-28 06:17:38 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSH_GUN_COOL_1 , 9 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSH_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSH_SAVED_1 , 4 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSH_TAXI_1 , 2 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSH_DODGE_1 , 11 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSH_RUN_1 , 11 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSH_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSH_SHOCKED_1 , 5 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSH_BUMP_1 , 12 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYSH_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWFOSHTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOSH_GUN_COOL_1 , 10 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOSH_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOSH_SAVED_1 , 3 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_WFOSH_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOSH_DODGE_1 , 10 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOSH_RUN_1 , 9 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOSH_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOSH_SHOCKED_1 , 5 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOSH_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFOSH_CHAT_1 , 9 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetJFOTOTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_JFOTO_GUN_PANIC_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_JFOTO_JACKED_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_JFOTO_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_JFOTO_SAVED_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_JFOTO_TAXI_1 , 2 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_JFOTO_DODGE_1 , 9 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_JFOTO_RUN_1 , 5 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_JFOTO_GENERIC_CRASH_1 , 6 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_JFOTO_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_JFOTO_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : return SFX_JFOTO_LOST_1 ;
case SOUND_PED_CHAT_EVENT : return SFX_JFOTO_SHOCKED_1 ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_JFOTO_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_JFOTO_CHAT_1 , 13 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetJMOTOTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_JMOTO_GUN_PANIC_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_JMOTO_JACKED_1 , 4 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_JMOTO_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_JMOTO_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_JMOTO_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_JMOTO_DODGE_1 , 6 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_JMOTO_RUN_1 , 4 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_JMOTO_GENERIC_CRASH_1 , 6 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_JMOTO_CAR_CRASH_1 , 6 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_JMOTO_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : return SFX_JMOTO_LOST_1 ;
case SOUND_PED_CHAT_EVENT : return SFX_JMOTO_SHOCKED_1 ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_JMOTO_BUMP_1 , 8 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_JMOTO_CHAT_1 , 7 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHNTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_HAITIAN_GANG_1_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_HAITIAN_GANG_1_JACKING_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HAITIAN_GANG_1_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HAITIAN_GANG_1_MUGGED_1 , 3 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : sfx = SFX_HAITIAN_GANG_1_SAVED_1 ; break ;
case SOUND_PED_TAXI_WAIT : sfx = SFX_HAITIAN_GANG_1_TAXI_1 ; break ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HAITIAN_GANG_1_FIGHT_1 , 10 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HAITIAN_GANG_1_DODGE_1 , 10 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HAITIAN_GANG_1_GENERIC_CRASH_1 , 9 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_HAITIAN_GANG_1_CAR_CRASH_1 , 9 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HAITIAN_GANG_1_BLOCKED_1 , 9 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HAITIAN_GANG_1_LOST_1 , 4 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HAITIAN_GANG_1_EYEING_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HAITIAN_GANG_1_BUMP_1 , 12 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HAITIAN_GANG_1_CHAT_1 , 14 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
2021-05-12 00:26:54 +00:00
return ( SFX_HAITIAN_GANG_2_BLOCKED_1 - SFX_HAITIAN_GANG_1_BLOCKED_1 ) * ( m_sQueueSample . m_nEntityIndex % 3 ) + sfx ;
2020-10-24 16:10:51 +00:00
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBKTalkSfx ( CPed * ped , uint16 sound )
{
uint32 sfx ;
switch ( sound ) {
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_BIKER_GANG_1_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_BIKER_GANG_1_JACKING_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BIKER_GANG_1_JACKED_1 , 8 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BIKER_GANG_1_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : sfx = SFX_BIKER_GANG_1_SAVED_1 ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BIKER_GANG_1_TAXI_1 , 2 ) ; break ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BIKER_GANG_1_FIGHT_1 , 9 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BIKER_GANG_1_DODGE_1 , 9 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BIKER_GANG_1_GENERIC_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BIKER_GANG_1_BLOCKED_1 , 10 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_BIKER_GANG_1_LOST_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BIKER_GANG_1_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BIKER_GANG_1_CHAT_1 , 12 ) ; break ;
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return ( SFX_BIKER_GANG_2_BLOCKED_1 - SFX_BIKER_GANG_1_BLOCKED_1 ) * ( m_sQueueSample . m_nEntityIndex % 3 ) + sfx ;
}
uint32
cAudioManager : : GetCBTalkSfx ( CPed * ped , uint16 sound )
{
uint32 sfx ;
switch ( sound ) {
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_GANG_1_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_GANG_1_JACKING_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_GANG_1_JACKED_1 , 4 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_GANG_1_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : sfx = SFX_CUBAN_GANG_1_SAVED_1 ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_GANG_1_TAXI_1 , 2 ) ; break ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_GANG_1_FIGHT_1 , 9 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_GANG_1_DODGE_1 , 9 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_GANG_1_GENERIC_CRASH_1 , 8 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_GANG_1_CAR_CRASH_1 , 8 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_GANG_1_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_GANG_1_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_GANG_1_EYEING_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_GANG_1_BUMP_1 , 11 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_GANG_1_CHAT_1 , 10 ) ; break ;
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
return ( SFX_CUBAN_GANG_2_BLOCKED_1 - SFX_CUBAN_GANG_1_BLOCKED_1 ) * ( m_sQueueSample . m_nEntityIndex % 3 ) + sfx ;
}
uint32
cAudioManager : : GetSGTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_STREET_GANG_1_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_STREET_GANG_1_JACKING_1 , 5 ) ; break ;
case SOUND_PED_MUGGING : GetPhrase ( sfx , ped - > m_lastComment , SFX_STREET_GANG_1_MUGGING_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_STREET_GANG_1_JACKED_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_STREET_GANG_1_MUGGED_1 , 3 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : sfx = SFX_STREET_GANG_1_SAVED_1 ; break ;
case SOUND_PED_TAXI_WAIT : sfx = SFX_STREET_GANG_1_TAXI_1 ; break ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_STREET_GANG_1_FIGHT_1 , 10 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_STREET_GANG_1_DODGE_1 , 9 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_STREET_GANG_1_GENERIC_CRASH_1 , 6 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_STREET_GANG_1_CAR_CRASH_1 , 6 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_STREET_GANG_1_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_STREET_GANG_1_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_STREET_GANG_1_EYEING_1 , 3 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_STREET_GANG_1_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_STREET_GANG_1_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_STREET_GANG_1_CHAT_1 , 12 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
2021-05-12 00:26:54 +00:00
if ( ped - > GetModelIndex ( ) = = MI_SGB ) sfx + = ( SFX_STREET_GANG_2_BLOCKED_1 - SFX_STREET_GANG_1_BLOCKED_1 ) ;
2020-10-24 16:10:51 +00:00
return sfx ;
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetCLTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_LORD_GANG_1_GUN_COOL_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_LORD_GANG_1_JACKING_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_LORD_GANG_1_JACKED_1 , 6 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_LORD_GANG_1_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : sfx = SFX_CUBAN_LORD_GANG_1_SAVED_1 ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_LORD_GANG_1_TAXI_1 , 2 ) ; break ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_LORD_GANG_1_FIGHT_1 , 10 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_LORD_GANG_1_DODGE_1 , 13 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_LORD_GANG_1_GENERIC_CRASH_1 , 8 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_LORD_GANG_1_CAR_CRASH_1 , 10 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_LORD_GANG_1_BLOCKED_1 , 10 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_LORD_GANG_1_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_LORD_GANG_1_EYEING_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_LORD_GANG_1_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_CUBAN_LORD_GANG_1_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
2021-05-12 00:26:54 +00:00
return ( SFX_CUBAN_LORD_GANG_2_BLOCKED_1 - SFX_CUBAN_LORD_GANG_1_BLOCKED_1 ) * ( m_sQueueSample . m_nEntityIndex % 3 ) + sfx ;
2020-10-24 16:10:51 +00:00
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetGDTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_GUARD_DUTY_1_GUN_COOL_1 , 6 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_GUARD_DUTY_1_SAVED_1 , 2 ) ; break ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_GUARD_DUTY_1_FIGHT_1 , 7 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_GUARD_DUTY_1_DODGE_1 , 9 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_GUARD_DUTY_1_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_GUARD_DUTY_1_EYEING_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_GUARD_DUTY_1_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_GUARD_DUTY_1_BUMP_1 , 10 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_GUARD_DUTY_1_CHAT_1 , 10 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
2021-05-12 00:26:54 +00:00
return ( SFX_GUARD_DUTY_2_BUMP_1 - SFX_GUARD_DUTY_1_BUMP_1 ) * ( m_sQueueSample . m_nEntityIndex % 3 ) + sfx ;
2020-10-24 16:10:51 +00:00
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetPGTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_HANDS_UP : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_GANG_1_GUN_COOL_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_GANG_1_JACKING_1 , 5 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_GANG_1_JACKED_1 , 5 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_GANG_1_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : sfx = SFX_PLAYER_GANG_1_SAVED_1 ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_GANG_1_TAXI_1 , 2 ) ; break ;
case SOUND_PED_ATTACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_GANG_1_FIGHT_1 , 5 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_GANG_1_DODGE_1 , 7 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_GANG_1_GENERIC_CRASH_1 , 5 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_GANG_1_CAR_CRASH_1 , 5 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_GANG_1_BLOCKED_1 , 10 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_GANG_1_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_GANG_1_EYEING_1 , 2 ) ; break ;
case SOUND_PED_CHAT_EVENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_GANG_1_SHOCKED_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_GANG_1_BUMP_1 , 5 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_PLAYER_GANG_1_CHAT_1 , 8 ) ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
2021-05-12 00:26:54 +00:00
return ( SFX_PLAYER_GANG_2_BLOCKED_1 - SFX_PLAYER_GANG_1_BLOCKED_1 ) * ( m_sQueueSample . m_nEntityIndex % 3 ) + sfx ;
2020-10-24 16:10:51 +00:00
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetViceWhiteTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-05-12 00:26:54 +00:00
case SOUND_PED_ARREST_COP : GetPhrase ( sfx , ped - > m_lastComment , SFX_VICE_VOICE_1_ARREST_1 , 3 ) ; break ;
case SOUND_PED_MIAMIVICE_EXITING_CAR : sfx = SFX_VICE_VOICE_1_MIAMIVICE_EXITING_CAR_1 ; break ;
2020-10-24 16:10:51 +00:00
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
}
2021-05-12 00:26:54 +00:00
sfx + = ( SFX_VICE_VOICE_2_ARREST_1 - SFX_VICE_VOICE_1_ARREST_1 ) * ( m_sQueueSample . m_nEntityIndex % 5 ) ;
2020-10-24 16:10:51 +00:00
return sfx ;
2020-05-16 17:29:13 +00:00
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetViceBlackTalkSfx ( CPed * ped , uint16 sound )
2020-05-16 17:29:13 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-07-28 06:17:38 +00:00
case SOUND_PED_ARREST_COP : GetPhrase ( sfx , ped - > m_lastComment , SFX_VICE_VOICE_6_ARREST_1 , 3 ) ; break ;
case SOUND_PED_MIAMIVICE_EXITING_CAR : return SFX_VICE_VOICE_6_MIAMIVICE_EXITING_CAR_1 ;
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
2020-10-24 16:10:51 +00:00
}
return sfx ;
}
2020-05-16 21:33:52 +00:00
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetBMODKTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-07-28 06:17:38 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMODK_GUN_PANIC_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMODK_JACKED_1 , 9 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMODK_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_INNOCENT : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMODK_INNOCENT_1 , 3 ) ; break ;
case SOUND_PED_TAXI_WAIT : return SFX_BMODK_TAXI_1 ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMODK_DODGE_1 , 7 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMODK_RUN_1 , 4 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMODK_GENERIC_CRASH_1 , 7 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMODK_CAR_CRASH_1 , 10 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMODK_BLOCKED_1 , 8 ) ; break ;
case SOUND_PED_147 : // this is some cut behaviour, the guy was selling something
GetPhrase ( sfx , ped - > m_lastComment , SFX_BMODK_UNK_147_1 , 11 ) ;
// what is this? some sort of censorship?
switch ( sfx ) {
case SFX_BMODK_UNK_147_5 :
case SFX_BMODK_UNK_147_6 :
case SFX_BMODK_UNK_147_7 : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMODK_UNK_147_1 , 4 ) ; break ;
default : break ;
}
break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_BMODK_BUMP_1 , 10 ) ; break ;
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
2020-10-24 16:10:51 +00:00
}
return sfx ;
2020-05-16 17:29:13 +00:00
}
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetHMYAPTalkSfx ( CPed * ped , uint16 sound )
2020-05-16 17:29:13 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-07-28 06:17:38 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYAP_GUN_PANIC_1 , 7 ) ; break ;
case SOUND_PED_CAR_JACKING : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYAP_JACKING_1 , 4 ) ; break ;
case SOUND_PED_CAR_JACKED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYAP_JACKED_1 , 7 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYAP_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYAP_SAVED_1 , 2 ) ; break ;
case SOUND_PED_TAXI_WAIT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYAP_TAXI_1 , 2 ) ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYAP_DODGE_1 , 9 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYAP_RUN_1 , 6 ) ; break ;
case SOUND_PED_CRASH_VEHICLE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYAP_GENERIC_CRASH_1 , 6 ) ; break ;
case SOUND_PED_CRASH_CAR : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYAP_CAR_CRASH_1 , 9 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYAP_BLOCKED_1 , 9 ) ; break ;
case SOUND_PED_WAIT_DOUBLEBACK : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYAP_LOST_1 , 2 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYAP_EYEING_1 , 3 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYAP_BUMP_1 , 11 ) ; break ;
case SOUND_PED_CHAT : GetPhrase ( sfx , ped - > m_lastComment , SFX_HMYAP_CHAT_1 , 9 ) ; break ;
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
2020-10-24 16:10:51 +00:00
}
return sfx ;
}
2020-05-16 17:29:13 +00:00
2020-11-07 12:39:53 +00:00
uint32
2021-07-28 06:17:38 +00:00
cAudioManager : : GetWFYJGTalkSfx ( CPed * ped , uint16 sound )
2020-10-24 16:10:51 +00:00
{
2020-11-07 12:39:53 +00:00
uint32 sfx ;
2020-10-24 16:10:51 +00:00
switch ( sound ) {
2021-07-28 06:17:38 +00:00
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYJG_GUN_PANIC_1 , 4 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : sfx = SFX_WFYJG_SAVED_1 ; break ;
case SOUND_PED_TAXI_WAIT : sfx = SFX_WFYJG_TAXI_1 ; break ;
case SOUND_PED_EVADE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYJG_DODGE_1 , 8 ) ; break ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYJG_RUN_1 , 6 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WFYJG_BUMP_1 , 12 ) ; break ;
default : return GetGenericFemaleTalkSfx ( ped , sound ) ;
}
return sfx ;
}
uint32
cAudioManager : : GetWMYJGTalkSfx ( CPed * ped , uint16 sound )
{
uint32 sfx ;
switch ( sound ) {
case SOUND_PED_HANDS_COWER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYJG_GUN_PANIC_1 , 4 ) ; break ;
case SOUND_PED_ROBBED : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYJG_MUGGED_1 , 2 ) ; break ;
case SOUND_PED_ACCIDENTREACTION1 : return SFX_WMYJG_SAVED_1 ;
case SOUND_PED_TAXI_WAIT : return SFX_WMYJG_TAXI_1 ;
case SOUND_PED_FLEE_RUN : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYJG_RUN_1 , 5 ) ; break ;
case SOUND_PED_ANNOYED_DRIVER : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYJG_BLOCKED_1 , 10 ) ; break ;
case SOUND_PED_CHAT_SEXY_MALE : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYJG_EYEING_1 , 2 ) ; break ;
case SOUND_PED_PED_COLLISION : GetPhrase ( sfx , ped - > m_lastComment , SFX_WMYJG_BUMP_1 , 10 ) ; break ;
default : return GetGenericMaleTalkSfx ( ped , sound ) ;
2020-10-24 16:10:51 +00:00
}
return sfx ;
2020-05-16 17:29:13 +00:00
}
2021-07-28 22:52:49 +00:00
uint32
cAudioManager : : GetSpecialCharacterTalkSfx ( CPed * ped , int32 model , uint16 sound )
{
return NO_SAMPLE ;
}
void
cAudioManager : : DebugPlayPedComment ( int32 sound )
{
tPedComment pedComment ;
pedComment . m_nSampleIndex = sound ;
pedComment . m_nProcess = 10 ;
pedComment . m_nEntityIndex = 0 ;
pedComment . m_fDistance = 0.0f ;
2021-08-16 11:31:40 +00:00
pedComment . m_nVolume = 99 ;
# if defined(EXTERNAL_3D_SOUND) && defined(FIX_BUGS)
pedComment . m_nEmittingVolume = 99 ;
# endif
2021-07-28 22:52:49 +00:00
pedComment . m_vecPos = CWorld : : Players [ 0 ] . m_pPed - > GetPosition ( ) ;
m_sPedComments . Add ( & pedComment ) ;
}
2020-05-16 17:29:13 +00:00
void
cPedComments : : Add ( tPedComment * com )
{
uint8 index ;
2021-08-25 10:41:41 +00:00
// copypasted priority check from cAudioManager::AddSampleToRequestedQueue
if ( m_nPedCommentCount [ m_nActiveQueue ] > = NUM_PED_COMMENTS_SLOTS ) {
index = m_aPedCommentOrderList [ m_nActiveQueue ] [ NUM_PED_COMMENTS_SLOTS - 1 ] ;
if ( m_aPedCommentQueue [ m_nActiveQueue ] [ index ] . m_nVolume > com - > m_nVolume )
2020-05-16 17:29:13 +00:00
return ;
2021-08-25 05:49:58 +00:00
} else
2021-08-25 10:41:41 +00:00
index = m_nPedCommentCount [ m_nActiveQueue ] + + ;
2020-05-16 17:29:13 +00:00
2021-08-25 10:41:41 +00:00
m_aPedCommentQueue [ m_nActiveQueue ] [ index ] = * com ;
2020-05-16 17:29:13 +00:00
2021-08-25 10:41:41 +00:00
// this bit is basically copypasted cAudioManager::AddDetailsToRequestedOrderList
2021-08-25 05:49:58 +00:00
uint8 i = 0 ;
2020-05-16 17:29:13 +00:00
if ( index ! = 0 ) {
for ( i = 0 ; i < index ; i + + ) {
2021-08-25 10:41:41 +00:00
if ( m_aPedCommentQueue [ m_nActiveQueue ] [ m_aPedCommentOrderList [ m_nActiveQueue ] [ i ] ] . m_nVolume < m_aPedCommentQueue [ m_nActiveQueue ] [ index ] . m_nVolume )
2020-05-16 17:29:13 +00:00
break ;
}
if ( i < index )
2021-08-25 10:41:41 +00:00
memmove ( & m_aPedCommentOrderList [ m_nActiveQueue ] [ i + 1 ] , & m_aPedCommentOrderList [ m_nActiveQueue ] [ i ] , NUM_PED_COMMENTS_SLOTS - 1 - i ) ;
2020-05-16 17:29:13 +00:00
}
2021-08-25 10:41:41 +00:00
m_aPedCommentOrderList [ m_nActiveQueue ] [ i ] = index ;
2020-05-16 17:29:13 +00:00
}
void
cPedComments : : Process ( )
{
2020-11-07 12:39:53 +00:00
uint32 sampleIndex ;
2021-08-25 10:41:41 +00:00
uint8 queue ;
2020-10-24 16:10:51 +00:00
static uint8 counter = 0 ;
2021-08-25 10:41:41 +00:00
static uint32 prevSamples [ 10 ] = { NO_SAMPLE , NO_SAMPLE , NO_SAMPLE , NO_SAMPLE , NO_SAMPLE , NO_SAMPLE , NO_SAMPLE , NO_SAMPLE , NO_SAMPLE , NO_SAMPLE } ;
2020-10-24 16:10:51 +00:00
2021-08-29 06:42:32 +00:00
if ( AudioManager . m_bIsPaused ) return ;
2020-10-24 16:10:51 +00:00
2021-08-29 06:42:32 +00:00
if ( m_nPedCommentCount [ m_nActiveQueue ] ) {
2020-10-24 16:10:51 +00:00
for ( int i = 0 ; i < ARRAY_SIZE ( prevSamples ) ; i + + ) {
2021-08-25 10:41:41 +00:00
if ( m_aPedCommentQueue [ m_nActiveQueue ] [ m_aPedCommentOrderList [ m_nActiveQueue ] [ 0 ] ] . m_nSampleIndex = =
2020-10-24 16:10:51 +00:00
prevSamples [ ( counter + 1 + i ) % ARRAY_SIZE ( prevSamples ) ] ) {
2021-08-25 10:41:41 +00:00
m_aPedCommentQueue [ m_nActiveQueue ] [ m_aPedCommentOrderList [ m_nActiveQueue ] [ 0 ] ] . m_nProcess = - 1 ;
2021-08-23 08:16:53 +00:00
goto PedCommentAlreadyAdded ;
2020-10-24 16:10:51 +00:00
}
2020-05-16 17:29:13 +00:00
}
2021-08-25 10:41:41 +00:00
sampleIndex = m_aPedCommentQueue [ m_nActiveQueue ] [ m_aPedCommentOrderList [ m_nActiveQueue ] [ 0 ] ] . m_nSampleIndex ;
2021-08-23 08:16:53 +00:00
switch ( SampleManager . IsPedCommentLoaded ( sampleIndex ) ) { // yes, this was a switch
case FALSE :
2020-11-07 12:39:53 +00:00
# if defined(GTA_PC) && !defined(FIX_BUGS)
2021-08-23 08:16:53 +00:00
if ( ! m_bDelay )
2020-11-07 12:39:53 +00:00
# endif
2021-08-23 08:16:53 +00:00
SampleManager . LoadPedComment ( sampleIndex ) ;
break ;
case TRUE :
2021-08-25 10:41:41 +00:00
AudioManager . m_sQueueSample . m_nEntityIndex = m_aPedCommentQueue [ m_nActiveQueue ] [ m_aPedCommentOrderList [ m_nActiveQueue ] [ 0 ] ] . m_nEntityIndex ;
2021-08-23 08:16:53 +00:00
AudioManager . m_sQueueSample . m_nCounter = 0 ;
AudioManager . m_sQueueSample . m_nSampleIndex = sampleIndex ;
AudioManager . m_sQueueSample . m_nBankIndex = SFX_BANK_PED_COMMENTS ;
AudioManager . m_sQueueSample . m_nPriority = 3 ;
2021-08-25 10:41:41 +00:00
AudioManager . m_sQueueSample . m_nVolume = m_aPedCommentQueue [ m_nActiveQueue ] [ m_aPedCommentOrderList [ m_nActiveQueue ] [ 0 ] ] . m_nVolume ;
AudioManager . m_sQueueSample . m_fDistance = m_aPedCommentQueue [ m_nActiveQueue ] [ m_aPedCommentOrderList [ m_nActiveQueue ] [ 0 ] ] . m_fDistance ;
2021-08-23 08:16:53 +00:00
AudioManager . m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
# ifndef GTA_PS2
2021-08-23 08:16:53 +00:00
AudioManager . m_sQueueSample . m_nLoopStart = 0 ;
AudioManager . m_sQueueSample . m_nLoopEnd = - 1 ;
2021-06-12 16:59:28 +00:00
# endif
2021-08-12 11:57:16 +00:00
# ifdef EXTERNAL_3D_SOUND
2021-08-23 08:16:53 +00:00
# ifdef FIX_BUGS
2021-08-25 10:41:41 +00:00
AudioManager . m_sQueueSample . m_nEmittingVolume = m_aPedCommentQueue [ m_nActiveQueue ] [ m_aPedCommentOrderList [ m_nActiveQueue ] [ 0 ] ] . m_nEmittingVolume ;
2021-08-23 08:16:53 +00:00
# else
AudioManager . m_sQueueSample . m_nEmittingVolume = MAX_VOLUME ;
# endif // FIX_BUGS
2021-08-16 11:31:40 +00:00
# endif // EXTERNAL_3D_SOUND
2021-08-24 11:58:41 +00:00
# ifdef ATTACH_RELEASING_SOUNDS_TO_ENTITIES
2021-08-23 08:16:53 +00:00
// let's disable doppler because if sounds funny as the sound moves
// originally position of ped comment doesn't change so this has no effect anyway
AudioManager . m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
# else
AudioManager . m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
# endif
2021-08-29 06:42:32 +00:00
AudioManager . m_sQueueSample . m_MaxDistance = PED_COMMENT_MAX_DIST ;
2021-08-23 08:16:53 +00:00
AudioManager . m_sQueueSample . m_bStatic = TRUE ;
2021-08-25 10:41:41 +00:00
AudioManager . m_sQueueSample . m_vecPos = m_aPedCommentQueue [ m_nActiveQueue ] [ m_aPedCommentOrderList [ m_nActiveQueue ] [ 0 ] ] . m_vecPos ;
2021-08-19 07:53:14 +00:00
# ifdef AUDIO_REVERB
2021-08-23 08:16:53 +00:00
AudioManager . m_sQueueSample . m_bReverb = TRUE ;
2021-08-19 07:53:14 +00:00
# endif // AUDIO_REVERB
2021-08-18 12:49:06 +00:00
# ifdef AUDIO_REFLECTIONS
2021-08-23 08:16:53 +00:00
AudioManager . m_sQueueSample . m_bReflections = TRUE ;
2021-08-18 12:49:06 +00:00
# endif // AUDIO_REFLECTIONS
2021-08-23 08:16:53 +00:00
AudioManager . m_sQueueSample . m_bIs2D = FALSE ;
2020-11-07 12:39:53 +00:00
# ifdef FIX_BUGS
2021-08-23 08:16:53 +00:00
if ( ( sampleIndex > = SFX_POLICE_BOAT_1 & & sampleIndex < = SFX_POLICE_BOAT_23 ) | |
( sampleIndex > = SFX_POLICE_HELI_1 & & sampleIndex < = SFX_POLICE_HELI_20 ) )
2021-08-29 06:42:32 +00:00
AudioManager . m_sQueueSample . m_MaxDistance = PED_COMMENT_POLICE_HELI_MAX_DIST ;
2021-08-24 11:58:41 +00:00
# ifndef ATTACH_RELEASING_SOUNDS_TO_ENTITIES
2021-08-23 08:16:53 +00:00
else if ( sampleIndex > = SFX_PLAYER_ANGRY_BUSTED_1 & & sampleIndex < = SFX_PLAYER_ON_FIRE_16 ) { // check if player sfx
AudioManager . m_sQueueSample . m_bIs2D = TRUE ;
AudioManager . m_sQueueSample . m_nPan = 63 ;
}
2021-08-24 11:58:41 +00:00
# endif // ATTACH_RELEASING_SOUNDS_TO_ENTITIES
2020-11-07 12:39:53 +00:00
# endif // FIX_BUGS
2021-08-23 08:16:53 +00:00
AudioManager . m_sQueueSample . m_nFrequency =
SampleManager . GetSampleBaseFrequency ( AudioManager . m_sQueueSample . m_nSampleIndex ) + AudioManager . RandomDisplacement ( 750 ) ;
2021-08-24 11:58:41 +00:00
# ifndef USE_TIME_SCALE_FOR_AUDIO
if ( CTimer : : GetIsSlowMotionActive ( ) )
AudioManager . m_sQueueSample . m_nFrequency > > = 1 ;
# endif
2021-08-25 10:41:41 +00:00
m_aPedCommentQueue [ m_nActiveQueue ] [ m_aPedCommentOrderList [ m_nActiveQueue ] [ 0 ] ] . m_nProcess = - 1 ;
2021-08-23 08:16:53 +00:00
prevSamples [ counter + + ] = sampleIndex ;
if ( counter = = 10 ) counter = 0 ;
AudioManager . AddSampleToRequestedQueue ( ) ;
2020-11-07 12:39:53 +00:00
# if defined(GTA_PC) && !defined(FIX_BUGS)
2021-08-23 08:16:53 +00:00
m_nDelayTimer = CTimer : : GetTimeInMilliseconds ( ) ;
m_bDelay = TRUE ;
2020-11-07 12:39:53 +00:00
# endif
2021-08-23 08:16:53 +00:00
break ;
default :
break ;
2020-05-16 17:29:13 +00:00
}
2020-05-25 16:36:09 +00:00
}
2021-08-25 10:41:41 +00:00
2021-08-23 08:16:53 +00:00
PedCommentAlreadyAdded :
2021-08-25 10:41:41 +00:00
// Switch queue
if ( m_nActiveQueue = = 0 ) {
queue = 0 ;
m_nActiveQueue = 1 ;
2020-05-25 16:36:09 +00:00
} else {
2021-08-25 10:41:41 +00:00
queue = 1 ;
m_nActiveQueue = 0 ;
}
for ( uint8 i = 0 ; i < m_nPedCommentCount [ queue ] ; i + + ) {
if ( m_aPedCommentQueue [ queue ] [ m_aPedCommentOrderList [ queue ] [ i ] ] . m_nProcess > 0 ) {
m_aPedCommentQueue [ queue ] [ m_aPedCommentOrderList [ queue ] [ i ] ] . m_nProcess - - ;
Add ( & m_aPedCommentQueue [ queue ] [ m_aPedCommentOrderList [ queue ] [ i ] ] ) ;
2020-05-16 17:29:13 +00:00
}
}
2020-05-25 16:36:09 +00:00
2021-08-25 10:41:41 +00:00
// clear queue
for ( uint8 i = 0 ; i < NUM_PED_COMMENTS_SLOTS ; i + + )
m_aPedCommentOrderList [ queue ] [ i ] = NUM_PED_COMMENTS_SLOTS ;
m_nPedCommentCount [ queue ] = 0 ;
2020-11-07 12:39:53 +00:00
# if defined(GTA_PC) && !defined(FIX_BUGS)
2020-10-24 16:10:51 +00:00
if ( m_bDelay )
2021-05-22 10:08:26 +00:00
if ( CTimer : : GetTimeInMilliseconds ( ) - m_nDelayTimer > 6000 ) m_bDelay = FALSE ;
2020-11-07 12:39:53 +00:00
# endif
2020-05-16 17:29:13 +00:00
}
2020-11-07 12:39:53 +00:00
# undef cooldown_phrase
2020-05-16 17:29:13 +00:00
# pragma endregion
# pragma endregion All the ped audio code
void
2021-08-29 06:42:32 +00:00
cAudioManager : : ProcessExplosions ( int32 id )
2020-05-16 17:29:13 +00:00
{
uint8 type ;
float distSquared ;
for ( uint8 i = 0 ; i < ARRAY_SIZE ( gaExplosion ) ; i + + ) {
2020-10-05 00:04:35 +00:00
if ( CExplosion : : DoesExplosionMakeSound ( i ) & & CExplosion : : GetExplosionActiveCounter ( i ) = = 1 ) {
2020-05-16 17:29:13 +00:00
CExplosion : : ResetExplosionActiveCounter ( i ) ;
type = CExplosion : : GetExplosionType ( i ) ;
switch ( type ) {
case EXPLOSION_GRENADE :
case EXPLOSION_ROCKET :
case EXPLOSION_BARREL :
case EXPLOSION_TANK_GRENADE :
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = EXPLOSION_DEFAULT_MAX_DIST ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_EXPLOSION_2 ;
2020-10-05 00:04:35 +00:00
m_sQueueSample . m_nFrequency = RandomDisplacement ( 1000 ) + 19000 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 0 ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2020-05-16 17:29:13 +00:00
break ;
case EXPLOSION_MINE :
case EXPLOSION_HELI_BOMB :
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = EXPLOSION_MINE_MAX_DIST ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_ROCKET_LEFT ;
m_sQueueSample . m_nFrequency = RandomDisplacement ( 1000 ) + 12347 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 0 ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case EXPLOSION_MOLOTOV :
m_sQueueSample . m_MaxDistance = EXPLOSION_MOLOTOV_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_EXPLOSION_3 ;
m_sQueueSample . m_nFrequency = RandomDisplacement ( 1000 ) + 19000 ;
m_sQueueSample . m_nPriority = 0 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
SET_SOUND_REFLECTION ( FALSE ) ;
break ;
2020-05-16 17:29:13 +00:00
default :
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = EXPLOSION_DEFAULT_MAX_DIST ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_EXPLOSION_1 ;
2020-10-05 00:04:35 +00:00
m_sQueueSample . m_nFrequency = RandomDisplacement ( 1000 ) + 19500 ;
2020-05-16 17:29:13 +00:00
if ( type = = EXPLOSION_HELI )
2020-10-05 00:04:35 +00:00
m_sQueueSample . m_nFrequency = 8 * m_sQueueSample . m_nFrequency / 10 ; //same *= 8 / 10;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 0 ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_GENERIC_EXTRA ;
2021-08-18 12:49:06 +00:00
# ifdef FIX_BUGS
SET_SOUND_REFLECTION ( TRUE ) ;
# endif
2020-05-16 17:29:13 +00:00
break ;
}
2020-10-05 00:04:35 +00:00
m_sQueueSample . m_vecPos = * CExplosion : : GetExplosionPosition ( i ) ;
2020-05-16 17:29:13 +00:00
distSquared = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
2021-08-20 11:28:55 +00:00
if ( distSquared < SQR ( m_sQueueSample . m_MaxDistance ) ) {
2020-12-25 15:22:18 +00:00
m_sQueueSample . m_fDistance = Sqrt ( distSquared ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( MAX_VOLUME , m_sQueueSample . m_MaxDistance , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = i ;
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-08-12 11:57:16 +00:00
SET_EMITTING_VOLUME ( MAX_VOLUME ) ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
}
}
}
void
2021-08-29 06:42:32 +00:00
cAudioManager : : ProcessFires ( int32 id )
2020-05-16 17:29:13 +00:00
{
CEntity * entity ;
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2020-05-16 17:29:13 +00:00
float distSquared ;
for ( uint8 i = 0 ; i < NUM_FIRES ; i + + ) {
if ( gFireManager . m_aFires [ i ] . m_bIsOngoing & & gFireManager . m_aFires [ i ] . m_bAudioSet ) {
entity = gFireManager . m_aFires [ i ] . m_pEntity ;
if ( entity ) {
switch ( entity - > GetType ( ) ) {
case ENTITY_TYPE_BUILDING :
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = FIRE_BUILDING_MAX_DIST ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_CAR_ON_FIRE ;
2021-08-29 06:42:32 +00:00
Vol = FIRE_BUILDING_VOLUME ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nFrequency = 8 * SampleManager . GetSampleBaseFrequency ( SFX_CAR_ON_FIRE ) / 10 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency + = i * ( m_sQueueSample . m_nFrequency > > 6 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 6 ;
2020-05-16 17:29:13 +00:00
break ;
case ENTITY_TYPE_PED :
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = FIRE_PED_MAX_DIST ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_PED_ON_FIRE ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_PED_ON_FIRE ) ;
2021-08-29 06:42:32 +00:00
Vol = FIRE_PED_VOLUME ;
m_sQueueSample . m_nFrequency + = i * ( m_sQueueSample . m_nFrequency > > 6 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 10 ;
2020-05-16 17:29:13 +00:00
break ;
default :
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = FIRE_DEFAULT_MAX_DIST ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_CAR_ON_FIRE ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_CAR_ON_FIRE ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency + = i * ( m_sQueueSample . m_nFrequency > > 6 ) ;
Vol = FIRE_DEFAULT_VOLUME ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 8 ;
2020-05-16 17:29:13 +00:00
}
} else {
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = FIRE_DEFAULT_MAX_DIST ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_CAR_ON_FIRE ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_CAR_ON_FIRE ) ;
2021-08-29 06:42:32 +00:00
Vol = FIRE_DEFAULT_VOLUME ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 8 ;
2020-05-16 17:29:13 +00:00
}
m_sQueueSample . m_vecPos = gFireManager . m_aFires [ i ] . m_vecPos ;
distSquared = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
2021-08-20 11:28:55 +00:00
if ( distSquared < SQR ( m_sQueueSample . m_MaxDistance ) ) {
2020-12-25 15:22:18 +00:00
m_sQueueSample . m_fDistance = Sqrt ( distSquared ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , m_sQueueSample . m_MaxDistance , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = i ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nFramesToPlay = 10 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( Vol ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
2020-10-24 16:43:11 +00:00
if ( gFireManager . m_aFires [ i ] . m_bExtinguishedWithWater ) {
2021-05-22 10:08:26 +00:00
gFireManager . m_aFires [ i ] . m_bExtinguishedWithWater = FALSE ;
2021-08-29 06:42:32 +00:00
Vol = FIRE_EXTINGUISH_VOLUME * gFireManager . m_aFires [ i ] . m_fWaterExtinguishCountdown ;
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , m_sQueueSample . m_MaxDistance , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-10-24 16:43:11 +00:00
m_sQueueSample . m_nSampleIndex = SFX_JUMBO_TAXI ;
m_sQueueSample . m_nFrequency = 19591 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency + = i * ( m_sQueueSample . m_nFrequency > > 6 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 9 ;
2020-10-24 16:43:11 +00:00
m_sQueueSample . m_nCounter = i + 40 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nFramesToPlay = 10 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-10-24 16:43:11 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( Vol ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-10-24 16:43:11 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
2020-05-16 17:29:13 +00:00
}
}
}
void
2021-08-29 06:42:32 +00:00
cAudioManager : : ProcessWaterCannon ( int32 id )
2020-05-16 17:29:13 +00:00
{
2021-08-25 05:49:58 +00:00
for ( uint32 i = 0 ; i < NUM_WATERCANNONS ; i + + ) {
2020-05-16 17:29:13 +00:00
if ( CWaterCannons : : aCannons [ i ] . m_nId ) {
m_sQueueSample . m_vecPos = CWaterCannons : : aCannons [ 0 ] . m_avecPos [ CWaterCannons : : aCannons [ i ] . m_nCur ] ;
float distSquared = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
2021-08-29 06:42:32 +00:00
if ( distSquared < SQR ( WATER_CANNON_MAX_DIST ) ) {
2020-12-25 15:22:18 +00:00
m_sQueueSample . m_fDistance = Sqrt ( distSquared ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( WATER_CANNON_VOLUME , WATER_CANNON_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = WATER_CANNON_MAX_DIST ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_JUMBO_TAXI ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nFrequency = 15591 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 5 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = i ;
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nFramesToPlay = 8 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( WATER_CANNON_VOLUME ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
}
}
}
# pragma region SCRIPT_OBJECTS
void
cAudioManager : : ProcessScriptObject ( int32 id )
{
2020-09-22 00:28:14 +00:00
if ( MusicManager . m_nMusicMode = = MUSICMODE_GAME ) {
2021-08-29 06:42:32 +00:00
cAudioScriptObject * entity = ( cAudioScriptObject * ) m_asAudioEntities [ id ] . m_pEntity ;
2020-09-22 00:28:14 +00:00
if ( entity ! = nil ) {
m_sQueueSample . m_vecPos = entity - > Posn ;
if ( m_asAudioEntities [ id ] . m_AudioEvents = = 1 )
ProcessOneShotScriptObject ( m_asAudioEntities [ id ] . m_awAudioEvent [ 0 ] ) ;
else
ProcessLoopingScriptObject ( entity - > AudioId ) ;
}
2020-05-16 17:29:13 +00:00
}
}
void
cAudioManager : : ProcessOneShotScriptObject ( uint8 sound )
{
CPlayerPed * playerPed ;
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2020-05-16 17:29:13 +00:00
float distSquared ;
static uint8 iSound = 0 ;
switch ( sound ) {
2021-08-29 06:42:32 +00:00
case SCRIPT_SOUND_SEAPLANE_LOW_FUEL :
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_SEAPLANE_LOW_FUEL_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_SEAPLANE_LOW ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
Vol = SCRIPT_OBJECT_SEAPLANE_LOW_FUEL_VOLUME ;
# ifdef FIX_BUGS
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_SEAPLANE_LOW ) ;
# else
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_CAR_HORN_JEEP ) ;
# endif
m_sQueueSample . m_nPriority = 1 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_bIs2D = TRUE ;
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
break ;
2020-12-25 15:22:18 +00:00
case SCRIPT_SOUND_WILLIE_CARD_SWIPE :
2021-08-29 06:42:32 +00:00
Vol = SCRIPT_OBJECT_WILLIE_CARD_SWIPE_VOLUME ;
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_WILLIE_CARD_SWIPE_MAX_DIST ;
2020-12-25 15:22:18 +00:00
m_sQueueSample . m_nSampleIndex = SFX_BOMB_BEEP ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nFrequency = 20159 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 1 ;
2020-12-25 15:22:18 +00:00
m_sQueueSample . m_fSpeedMultiplier = 1.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-12-25 15:22:18 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SCRIPT_SOUND_BOX_DESTROYED_1 :
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_BOX_DESTROYED_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_WOODEN_BOX_SMASH ;
2020-12-25 15:22:18 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = RandomDisplacement ( 1500 ) + 18600 ;
m_sQueueSample . m_nPriority = 3 ;
2020-12-25 15:22:18 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-29 06:42:32 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
Vol = m_anRandomTable [ 2 ] % 20 + SCRIPT_OBJECT_BOX_DESTROYED_VOLUME ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SCRIPT_SOUND_BOX_DESTROYED_2 :
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_BOX_DESTROYED_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_CARDBOARD_BOX_SMASH ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = RandomDisplacement ( 1500 ) + 18600 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-29 06:42:32 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
Vol = m_anRandomTable [ 2 ] % 20 + SCRIPT_OBJECT_BOX_DESTROYED_VOLUME ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SCRIPT_SOUND_METAL_COLLISION :
m_sQueueSample . m_MaxDistance = COLLISION_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = m_anRandomTable [ 3 ] % 5 + SFX_COL_CAR_1 ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 4 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-29 06:42:32 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
Vol = m_anRandomTable [ 2 ] % 30 + SCRIPT_OBJECT_METAL_COLLISION_VOLUME ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SCRIPT_SOUND_TIRE_COLLISION :
m_sQueueSample . m_MaxDistance = COLLISION_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_TYRE_BUMP ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 4 ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 2 ] % 30 + SCRIPT_OBJECT_TIRE_COLLISION_VOLUME ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SCRIPT_SOUND_HIT_BALL :
m_sQueueSample . m_MaxDistance = COLLISION_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_HIT_BALL ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 4 ) ;
m_sQueueSample . m_nPriority = 5 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-29 06:42:32 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
Vol = m_anRandomTable [ 2 ] % 30 + SCRIPT_OBJECT_HIT_BALL_VOLUME ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SCRIPT_SOUND_GUNSHELL_DROP :
playerPed = FindPlayerPed ( ) ;
if ( playerPed ) {
switch ( playerPed - > m_nSurfaceTouched ) {
case SURFACE_GRASS :
case SURFACE_GRAVEL :
case SURFACE_MUD_DRY :
case SURFACE_TRANSPARENT_CLOTH :
case SURFACE_PED :
case SURFACE_SAND :
case SURFACE_RUBBER :
case SURFACE_HEDGE :
case SURFACE_SAND_BEACH :
m_sQueueSample . m_nSampleIndex = SFX_BULLET_SHELL_HIT_GROUND_2 ;
m_sQueueSample . m_nFrequency = RandomDisplacement ( 600 ) + 10600 ;
m_sQueueSample . m_nPriority = 18 ;
break ;
case SURFACE_WATER :
return ;
default :
m_sQueueSample . m_nSampleIndex = SFX_BULLET_SHELL_HIT_GROUND_1 ;
m_sQueueSample . m_nFrequency = RandomDisplacement ( 1500 ) + 30000 ;
m_sQueueSample . m_nPriority = 15 ;
break ;
}
} else {
m_sQueueSample . m_nSampleIndex = SFX_BULLET_SHELL_HIT_GROUND_1 ;
m_sQueueSample . m_nFrequency = RandomDisplacement ( 1500 ) + 30000 ;
m_sQueueSample . m_nPriority = 15 ;
}
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_GUNSHELL_MAX_DIST ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 2 ] % 20 + SCRIPT_OBJECT_GUNSHELL_VOLUME ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SCRIPT_SOUND_GUNSHELL_DROP_SOFT :
m_sQueueSample . m_nSampleIndex = SFX_BULLET_SHELL_HIT_GROUND_2 ;
m_sQueueSample . m_nFrequency = RandomDisplacement ( 500 ) + 11000 ;
m_sQueueSample . m_nPriority = 18 ;
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_GUNSHELL_MAX_DIST ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-29 06:42:32 +00:00
Vol = m_anRandomTable [ 2 ] % 20 + SCRIPT_OBJECT_GUNSHELL_VOLUME ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SCRIPT_SOUND_SHOOTING_RANGE_TARGET_HIT :
case SCRIPT_SOUND_BULLET_HIT_GROUND_1 :
case SCRIPT_SOUND_BULLET_HIT_GROUND_2 :
case SCRIPT_SOUND_BULLET_HIT_GROUND_3 :
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_BULLET_HIT_GROUND_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = m_anRandomTable [ iSound % 5 ] % 3 + SFX_BULLET_WALL_1 ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
m_sQueueSample . m_nPriority = 9 ;
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_bIs2D = FALSE ;
Vol = m_anRandomTable [ 2 ] % 20 + SCRIPT_OBJECT_BULLET_HIT_GROUND_VOLUME ;
break ;
case SCRIPT_SOUND_PAYPHONE_RINGING :
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_PAYPHONE_RINGING_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_PHONE_RING ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
Vol = SCRIPT_OBJECT_PAYPHONE_RINGING_VOLUME ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_PHONE_RING ) ;
m_sQueueSample . m_nPriority = 1 ;
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
m_sQueueSample . m_bIs2D = FALSE ;
SET_SOUND_REFLECTION ( FALSE ) ;
break ;
case SCRIPT_SOUND_GLASS_BREAK_L :
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_GLASS_BREAK_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_GLASS_SMASH ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
Vol = SCRIPT_OBJECT_GLASS_BREAK_LONG_VOLUME ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_GLASS_SMASH ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SCRIPT_SOUND_GLASS_BREAK_S :
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_GLASS_BREAK_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_GLASS_SMASH ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
Vol = SCRIPT_OBJECT_GLASS_BREAK_SHORT_VOLUME ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_GLASS_SMASH ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SCRIPT_SOUND_GLASS_CRACK :
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_GLASS_BREAK_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_GLASS_CRACK ;
2020-12-25 15:22:18 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
Vol = SCRIPT_OBJECT_GLASS_BREAK_LONG_VOLUME ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_GLASS_CRACK ) ;
m_sQueueSample . m_nPriority = 3 ;
2020-12-25 15:22:18 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2020-12-25 15:22:18 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SCRIPT_SOUND_GLASS_LIGHT_BREAK :
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_GLASS_LIGHT_BREAK_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = ( m_anRandomTable [ 4 ] & 3 ) + SFX_GLASS_SHARD_1 ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = RandomDisplacement ( 2000 ) + 19000 ;
m_sQueueSample . m_nPriority = 9 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-29 06:42:32 +00:00
Vol = RandomDisplacement ( 11 ) + SCRIPT_OBJECT_GLASS_LIGHT_BREAK_VOLUME ;
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SCRIPT_SOUND_MALE_AMBULANCE_OUCH :
{
cPedParams pedParams ;
pedParams . m_fDistance = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
SetupPedComments ( pedParams , SOUND_INJURED_PED_MALE_OUCH ) ;
return ;
}
case SCRIPT_SOUND_FEMALE_AMBULANCE_OUCH :
{
cPedParams pedParams ;
pedParams . m_fDistance = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
SetupPedComments ( pedParams , SOUND_INJURED_PED_FEMALE ) ;
return ;
}
case SCRIPT_SOUND_POLICE_CELL_DOOR_CLUNK :
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_POLICE_CELL_DOOR_CLUNK_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_COL_GATE ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nFrequency = 10600 ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
m_sQueueSample . m_nPriority = 3 ;
Vol = SCRIPT_OBJECT_POLICE_CELL_DOOR_CLUNK_VOLUME ;
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
m_sQueueSample . m_bIs2D = FALSE ;
SET_SOUND_REFLECTION ( TRUE ) ;
break ;
case SCRIPT_SOUND_GARAGE_DOOR_CLUNK :
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_GARAGE_DOOR_CLUNK_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_COL_CAR_PANEL_2 ; // huh?
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = 22000 ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
m_sQueueSample . m_nPriority = 4 ;
Vol = SCRIPT_OBJECT_GARAGE_DOOR_CLUNK_VOLUME ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-29 06:42:32 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2020-05-16 17:29:13 +00:00
break ;
default :
return ;
}
distSquared = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
2021-08-20 11:28:55 +00:00
if ( distSquared < SQR ( m_sQueueSample . m_MaxDistance ) ) {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fDistance = Sqrt ( distSquared ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , m_sQueueSample . m_MaxDistance , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
m_sQueueSample . m_nLoopCount = 1 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( Vol ) ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
}
void
cAudioManager : : ProcessLoopingScriptObject ( uint8 sound )
{
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2020-05-16 17:29:13 +00:00
float distSquared ;
2020-12-22 13:53:45 +00:00
switch ( sound ) {
case SCRIPT_SOUND_NEW_BUILDING_BAR_1 :
m_sQueueSample . m_nSampleIndex = SFX_BUILDING_BAR_1 ;
2020-12-25 12:51:09 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_BUILDING_BAR_1 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_LONG_MAX_DIST ;
Vol = SCRIPT_OBJECT_DEFAULT_VOLUME ;
2020-12-22 13:53:45 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFramesToPlay = 15 ;
2020-12-25 00:29:18 +00:00
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-05-16 17:29:13 +00:00
break ;
2020-12-22 13:53:45 +00:00
case SCRIPT_SOUND_NEW_BUILDING_BAR_2 :
m_sQueueSample . m_nSampleIndex = SFX_BUILDING_BAR_2 ;
2020-12-25 12:51:09 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_BUILDING_BAR_2 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_LONG_MAX_DIST ;
Vol = SCRIPT_OBJECT_DEFAULT_VOLUME ;
2020-12-22 13:53:45 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFramesToPlay = 15 ;
2020-12-25 00:29:18 +00:00
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-05-16 17:29:13 +00:00
break ;
2020-12-22 13:53:45 +00:00
case SCRIPT_SOUND_NEW_BUILDING_BAR_3 :
m_sQueueSample . m_nSampleIndex = SFX_BUILDING_BAR_3 ;
2020-12-25 12:51:09 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_BUILDING_BAR_3 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_LONG_MAX_DIST ;
Vol = SCRIPT_OBJECT_DEFAULT_VOLUME ;
2020-12-22 13:53:45 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFramesToPlay = 15 ;
2020-12-25 00:29:18 +00:00
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-05-16 17:29:13 +00:00
break ;
2020-12-22 13:53:45 +00:00
case SCRIPT_SOUND_NEW_BUILDING_BAR_4 :
m_sQueueSample . m_nSampleIndex = SFX_BUILDING_BAR_4 ;
2020-12-25 12:51:09 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_BUILDING_BAR_4 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_LONG_MAX_DIST ;
Vol = SCRIPT_OBJECT_DEFAULT_VOLUME ;
2020-12-22 13:53:45 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFramesToPlay = 15 ;
2020-12-25 00:29:18 +00:00
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-05-16 17:29:13 +00:00
break ;
2020-12-22 13:53:45 +00:00
case SCRIPT_SOUND_NEW_BUILDING_MALIBU_1 :
2020-12-25 00:29:18 +00:00
if ( MusicManager . m_nPlayingTrack = = STREAMED_SOUND_MALIBU_AMBIENT ) return ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nSampleIndex = SFX_BUILDING_MALIBU_1 ;
2020-12-25 12:51:09 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_BUILDING_MALIBU_1 ;
2020-12-25 00:29:18 +00:00
MusicManager . SetMalibuClubTrackPos ( SCRIPT_SOUND_NEW_BUILDING_MALIBU_1 ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_LONG_MAX_DIST ;
Vol = SCRIPT_OBJECT_DEFAULT_VOLUME ;
2020-12-22 13:53:45 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFramesToPlay = 15 ;
2020-12-25 00:29:18 +00:00
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-05-16 17:29:13 +00:00
break ;
2020-12-22 13:53:45 +00:00
case SCRIPT_SOUND_NEW_BUILDING_MALIBU_2 :
2020-12-25 00:29:18 +00:00
if ( MusicManager . m_nPlayingTrack = = STREAMED_SOUND_MALIBU_AMBIENT ) return ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nSampleIndex = SFX_BUILDING_MALIBU_2 ;
2020-12-25 12:51:09 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_BUILDING_MALIBU_2 ;
2020-12-25 00:29:18 +00:00
MusicManager . SetMalibuClubTrackPos ( SCRIPT_SOUND_NEW_BUILDING_MALIBU_2 ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_LONG_MAX_DIST ;
Vol = SCRIPT_OBJECT_DEFAULT_VOLUME ;
2020-12-22 13:53:45 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFramesToPlay = 15 ;
2020-12-25 00:29:18 +00:00
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-12-22 13:53:45 +00:00
break ;
case SCRIPT_SOUND_NEW_BUILDING_MALIBU_3 :
2020-12-25 00:29:18 +00:00
if ( MusicManager . m_nPlayingTrack = = STREAMED_SOUND_MALIBU_AMBIENT ) return ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nSampleIndex = SFX_BUILDING_MALIBU_3 ;
2020-12-25 12:51:09 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_BUILDING_MALIBU_3 ;
2020-12-25 00:29:18 +00:00
MusicManager . SetMalibuClubTrackPos ( SCRIPT_SOUND_NEW_BUILDING_MALIBU_3 ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_LONG_MAX_DIST ;
Vol = SCRIPT_OBJECT_DEFAULT_VOLUME ;
2020-12-22 13:53:45 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFramesToPlay = 15 ;
2020-12-25 00:29:18 +00:00
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-12-22 13:53:45 +00:00
break ;
case SCRIPT_SOUND_NEW_BUILDING_STRIP_1 :
2020-12-25 00:29:18 +00:00
if ( MusicManager . m_nPlayingTrack = = STREAMED_SOUND_STRIPCLUB_AMBIENT ) return ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nSampleIndex = SFX_BUILDING_STRIP_1 ;
2020-12-25 12:51:09 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_BUILDING_STRIP_1 ;
2020-12-25 00:29:18 +00:00
MusicManager . SetStripClubTrackPos ( SCRIPT_SOUND_NEW_BUILDING_STRIP_1 ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_LONG_MAX_DIST ;
Vol = SCRIPT_OBJECT_DEFAULT_VOLUME ;
2020-12-22 13:53:45 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFramesToPlay = 15 ;
2020-12-25 00:29:18 +00:00
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-12-22 13:53:45 +00:00
break ;
case SCRIPT_SOUND_NEW_BUILDING_STRIP_2 :
2020-12-25 00:29:18 +00:00
if ( MusicManager . m_nPlayingTrack = = STREAMED_SOUND_STRIPCLUB_AMBIENT ) return ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nSampleIndex = SFX_BUILDING_STRIP_2 ;
2020-12-25 12:51:09 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_BUILDING_STRIP_2 ;
2020-12-25 00:29:18 +00:00
MusicManager . SetStripClubTrackPos ( SCRIPT_SOUND_NEW_BUILDING_STRIP_2 ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_LONG_MAX_DIST ;
Vol = SCRIPT_OBJECT_DEFAULT_VOLUME ;
2020-12-22 13:53:45 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFramesToPlay = 15 ;
2020-12-25 00:29:18 +00:00
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-12-22 13:53:45 +00:00
break ;
case SCRIPT_SOUND_NEW_BUILDING_STRIP_3 :
2020-12-25 00:29:18 +00:00
if ( MusicManager . m_nPlayingTrack = = STREAMED_SOUND_STRIPCLUB_AMBIENT ) return ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nSampleIndex = SFX_BUILDING_STRIP_3 ;
2020-12-25 12:51:09 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_BUILDING_STRIP_3 ;
2020-12-25 00:29:18 +00:00
MusicManager . SetStripClubTrackPos ( SCRIPT_SOUND_NEW_BUILDING_STRIP_3 ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_LONG_MAX_DIST ;
Vol = SCRIPT_OBJECT_DEFAULT_VOLUME ;
2020-12-22 13:53:45 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFramesToPlay = 15 ;
2020-12-25 00:29:18 +00:00
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-12-22 13:53:45 +00:00
break ;
case SCRIPT_SOUND_NEW_BUILDING_CHURCH :
m_sQueueSample . m_nSampleIndex = SFX_BUILDING_CHURCH ;
2020-12-25 12:51:09 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_BUILDING_CHURCH ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_LONG_MAX_DIST ;
Vol = SCRIPT_OBJECT_DEFAULT_VOLUME ;
2020-12-22 13:53:45 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFramesToPlay = 15 ;
2020-12-25 00:29:18 +00:00
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-12-22 13:53:45 +00:00
break ;
2021-08-29 06:42:32 +00:00
case SCRIPT_SOUND_SNORING_LOOP :
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_SNORING_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_BUILDING_SNORE ;
m_sQueueSample . m_nBankIndex = SFX_BANK_BUILDING_SNORING ;
Vol = SCRIPT_OBJECT_SNORING_VOLUME ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_BUILDING_SNORE ) ;
m_sQueueSample . m_nPriority = 6 ;
m_sQueueSample . m_nFramesToPlay = 3 ;
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
m_sQueueSample . m_bIs2D = FALSE ;
break ;
case SCRIPT_SOUND_BANK_ALARM_LOOP :
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_LONG_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_BUILDINGS_BANK_ALARM ;
m_sQueueSample . m_nBankIndex = SFX_BANK_BUILDING_BANK_ALARM ;
Vol = SCRIPT_OBJECT_BANK_ALARM_VOLUME ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_BUILDINGS_BANK_ALARM ) ;
m_sQueueSample . m_nPriority = 2 ;
m_sQueueSample . m_nFramesToPlay = 3 ;
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
m_sQueueSample . m_bIs2D = FALSE ;
break ;
case SCRIPT_SOUND_POLICE_CELL_DOOR_SLIDING_LOOP :
case SCRIPT_SOUND_GARAGE_DOOR_SLIDING_LOOP :
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_LONG_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_GARAGE_DOOR_LOOP ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
Vol = SCRIPT_OBJECT_GARAGE_DOOR_SLIDING_VOLUME ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_GARAGE_DOOR_LOOP ) ;
m_sQueueSample . m_nPriority = 3 ;
m_sQueueSample . m_nFramesToPlay = 3 ;
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
m_sQueueSample . m_bIs2D = FALSE ;
break ;
case SCRIPT_SOUND_SHOOTING_RANGE_TARGET_MOVING_LOOP :
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_SHOOTING_RANGE_TARGET_MOVING_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_TANK_TURRET ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
Vol = SCRIPT_OBJECT_SHOOTING_RANGE_TARGET_MOVING_VOLUME ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_TANK_TURRET ) ;
m_sQueueSample . m_nPriority = 4 ;
m_sQueueSample . m_nFramesToPlay = 3 ;
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
m_sQueueSample . m_bIs2D = FALSE ;
break ;
2020-12-22 13:53:45 +00:00
case SCRIPT_SOUND_NEW_WATERFALL :
2021-08-29 06:42:32 +00:00
Vol = SCRIPT_OBJECT_NEW_WATERFALL_VOLUME ;
m_sQueueSample . m_MaxDistance = SCRIPT_OBJECT_LONG_MAX_DIST ;
2020-12-22 13:53:45 +00:00
m_sQueueSample . m_nSampleIndex = SFX_BOAT_WATER_LOOP ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-12-22 13:53:45 +00:00
m_sQueueSample . m_nFrequency = 20812 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 4 ;
m_sQueueSample . m_nFramesToPlay = 9 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-12-22 13:53:45 +00:00
break ;
default : return ;
2020-05-16 17:29:13 +00:00
}
distSquared = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
2021-08-20 11:28:55 +00:00
if ( distSquared < SQR ( m_sQueueSample . m_MaxDistance ) ) {
2020-12-25 15:22:18 +00:00
m_sQueueSample . m_fDistance = Sqrt ( distSquared ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , m_sQueueSample . m_MaxDistance , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = 0 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( Vol ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
}
# pragma endregion All the code for script object audio on the map
void
cAudioManager : : ProcessWeather ( int32 id )
{
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2020-09-22 00:28:14 +00:00
float x ;
float y ;
float modifier ;
float wind ;
2020-05-25 00:56:17 +00:00
static uint8 iSound = 0 ;
2020-05-16 17:29:13 +00:00
2021-08-16 07:00:10 +00:00
if ( m_asAudioEntities [ id ] . m_AudioEvents > 0 & & m_asAudioEntities [ id ] . m_awAudioEvent [ 0 ] = = SOUND_LIGHTNING ) {
2021-08-29 06:42:32 +00:00
if ( m_asAudioEntities [ id ] . m_afVolume [ 0 ] < 10 ) {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_EXPLOSION_2 ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nFrequency = RandomDisplacement ( 500 ) + 4000 ;
2021-08-29 06:42:32 +00:00
Vol = ( m_asAudioEntities [ id ] . m_afVolume [ 0 ] * 10.0f * 0.1f ) ;
Vol + = 35 ;
2021-08-16 07:00:10 +00:00
} else {
m_sQueueSample . m_nSampleIndex = SFX_EXPLOSION_1 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_GENERIC_EXTRA ;
m_sQueueSample . m_nFrequency = RandomDisplacement ( 500 ) + 4000 ;
2021-08-29 06:42:32 +00:00
Vol = ( ( m_asAudioEntities [ id ] . m_afVolume [ 0 ] - 10.0f ) * 10.0f * 0.1f ) ;
Vol + = 40 ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = Vol ;
2020-09-22 00:28:14 +00:00
if ( TheCamera . SoundDistUp < 20.0f )
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume > > = 1 ;
2020-05-25 00:56:17 +00:00
if ( iSound = = 4 )
iSound = 0 ;
m_sQueueSample . m_nCounter = iSound + + ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nPan = ( m_anRandomTable [ 2 ] % 16 ) + 55 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = TRUE ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-08-12 11:57:16 +00:00
SET_EMITTING_VOLUME ( m_sQueueSample . m_nVolume ) ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( FALSE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
if ( CWeather : : Rain > 0.0f & & ( ! CCullZones : : CamNoRain ( ) | | ! CCullZones : : PlayerNoRain ( ) ) ) {
m_sQueueSample . m_nSampleIndex = SFX_RAIN ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_RAIN ) ;
2020-09-22 00:28:14 +00:00
m_sQueueSample . m_nVolume = ( uint8 ) ( 25.0f * CWeather : : Rain ) ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = 4 ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 0 ;
m_sQueueSample . m_nPan = 63 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = TRUE ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 30 ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( FALSE ) ;
2021-08-12 11:57:16 +00:00
SET_EMITTING_VOLUME ( m_sQueueSample . m_nVolume ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
2020-09-22 00:28:14 +00:00
x = 0.0f ;
y = 0.0f ;
CWindModifiers : : FindWindModifier ( TheCamera . GetPosition ( ) , & x , & y ) ;
modifier = Max ( Abs ( x ) , Abs ( y ) ) * 10.0f ;
modifier = Min ( 1.0f , modifier ) ;
wind = Max ( CWeather : : Wind , modifier ) ;
2020-12-25 00:29:18 +00:00
if ( wind > 0.0f & & CObject : : fDistToNearestTree < 75.0f ) {
2020-09-22 00:28:14 +00:00
m_sQueueSample . m_nSampleIndex = SFX_PALM_TREE_LO ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_PALM_TREE_LO ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ( m_anRandomTable [ 1 ] % 10 + 45.0f ) * ( 75.0f - CObject : : fDistToNearestTree ) / 75.0f * wind ;
2020-09-22 00:28:14 +00:00
m_sQueueSample . m_nCounter = 5 ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 1 ;
m_sQueueSample . m_nPan = 63 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = TRUE ;
2020-09-22 00:28:14 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 7 ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( FALSE ) ;
2021-08-12 11:57:16 +00:00
SET_EMITTING_VOLUME ( m_sQueueSample . m_nVolume ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-09-22 00:28:14 +00:00
AddSampleToRequestedQueue ( ) ;
CObject : : fDistToNearestTree = 999999.9f ;
}
2020-05-16 17:29:13 +00:00
}
void
cAudioManager : : ProcessFrontEnd ( )
{
2021-05-22 10:08:26 +00:00
bool8 stereo ;
bool8 processedPickup ;
bool8 processedMission ;
bool8 staticFreq ;
bool8 center ;
2020-05-16 17:29:13 +00:00
int16 sample ;
2020-05-25 00:56:17 +00:00
static uint8 iSound = 0 ;
2020-05-16 17:29:13 +00:00
static uint32 cPickupNextFrame = 0 ;
static uint32 cPartMisComNextFrame = 0 ;
2020-10-25 10:00:57 +00:00
static uint32 radioDial = SFX_RADIO_DIAL_1 ;
2020-05-16 17:29:13 +00:00
for ( uint32 i = 0 ; i < m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_AudioEvents ; i + + ) {
2021-05-22 10:08:26 +00:00
staticFreq = FALSE ;
processedPickup = FALSE ;
center = FALSE ;
processedMission = FALSE ;
stereo = FALSE ;
2020-05-16 17:29:13 +00:00
switch ( m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_awAudioEvent [ i ] ) {
case SOUND_WEAPON_SNIPER_SHOT_NO_ZOOM :
m_sQueueSample . m_nSampleIndex = SFX_ERROR_FIRE_RIFLE ;
break ;
case SOUND_WEAPON_ROCKET_SHOT_NO_ZOOM :
m_sQueueSample . m_nSampleIndex = SFX_ERROR_FIRE_ROCKET_LAUNCHER ;
break ;
2020-10-25 10:00:57 +00:00
case SOUND_GARAGE_NO_MONEY :
case SOUND_GARAGE_BAD_VEHICLE :
case SOUND_GARAGE_BOMB_ALREADY_SET :
m_sQueueSample . m_nSampleIndex = SFX_WEAPON_LEFT ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
staticFreq = TRUE ;
center = TRUE ;
2020-05-16 17:29:13 +00:00
break ;
2020-10-25 10:00:57 +00:00
case SOUND_GARAGE_OPENING :
case SOUND_71 : //case SOUND_41:
case SOUND_GARAGE_VEHICLE_DECLINED :
case SOUND_GARAGE_VEHICLE_ACCEPTED :
case SOUND_EVIDENCE_PICKUP :
case SOUND_UNLOAD_GOLD :
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
processedPickup = TRUE ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nSampleIndex = SFX_MONEY_LEFT ;
break ;
case SOUND_GARAGE_BOMB1_SET :
case SOUND_GARAGE_BOMB2_SET :
case SOUND_GARAGE_BOMB3_SET :
2020-12-26 05:31:53 +00:00
case SOUND_PICKUP_WEAPON_BOUGHT :
case SOUND_PICKUP_WEAPON :
2021-05-22 10:08:26 +00:00
center = TRUE ;
processedPickup = TRUE ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nSampleIndex = SFX_WEAPON_LEFT ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-10-25 10:00:57 +00:00
break ;
case SOUND_PICKUP_HEALTH :
case SOUND_81 : //case SOUND_4B:
case SOUND_PICKUP_ADRENALINE :
case SOUND_PICKUP_ARMOUR :
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
processedPickup = TRUE ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nSampleIndex = SFX_MONEY_LEFT ;
break ;
case SOUND_80 :
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
processedPickup = TRUE ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nSampleIndex = SFX_WEAPON_LEFT ;
2021-05-22 10:08:26 +00:00
center = TRUE ;
staticFreq = TRUE ;
2020-10-25 10:00:57 +00:00
break ;
case SOUND_PICKUP_BONUS :
case SOUND_FRONTEND_MENU_STARTING :
2021-01-30 11:52:48 +00:00
case SOUND_HUD :
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nSampleIndex = SFX_INFO_LEFT ;
2021-05-22 10:08:26 +00:00
center = TRUE ;
2020-10-25 10:00:57 +00:00
break ;
case SOUND_PICKUP_MONEY :
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
processedPickup = TRUE ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nSampleIndex = SFX_MONEY_LEFT ;
break ;
case SOUND_PICKUP_HIDDEN_PACKAGE :
case SOUND_PICKUP_PACMAN_PILL :
case SOUND_PICKUP_PACMAN_PACKAGE :
case SOUND_PICKUP_FLOAT_PACKAGE :
2021-05-22 10:08:26 +00:00
center = TRUE ;
processedPickup = TRUE ;
2020-05-26 15:25:34 +00:00
m_sQueueSample . m_nSampleIndex = SFX_PART_MISSION_COMPLETE_LEFT ;
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-05-16 17:29:13 +00:00
break ;
2020-10-25 10:00:57 +00:00
case SOUND_RACE_START_3 :
case SOUND_RACE_START_2 :
case SOUND_RACE_START_1 :
2020-05-16 17:29:13 +00:00
case SOUND_PART_MISSION_COMPLETE :
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-05-26 15:25:34 +00:00
m_sQueueSample . m_nSampleIndex = SFX_PART_MISSION_COMPLETE_LEFT ;
2021-05-22 10:08:26 +00:00
processedMission = TRUE ;
center = TRUE ;
2020-05-16 17:29:13 +00:00
break ;
2020-10-25 10:00:57 +00:00
case SOUND_RACE_START_GO :
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nSampleIndex = SFX_GO_LEFT ;
2021-05-22 10:08:26 +00:00
center = TRUE ;
2020-05-16 17:29:13 +00:00
break ;
2020-10-25 10:00:57 +00:00
case SOUND_CLOCK_TICK :
m_sQueueSample . m_nSampleIndex = SFX_TIMER ;
break ;
2021-01-30 11:52:48 +00:00
case SOUND_FRONTEND_RADIO_TURN_OFF :
case SOUND_FRONTEND_RADIO_TURN_ON :
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nSampleIndex = SFX_RADIO_CLICK ;
break ;
2021-01-30 11:52:48 +00:00
case SOUND_FRONTEND_HURRICANE :
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nSampleIndex = SFX_HURRICANE_MA ;
break ;
case SOUND_BULLETTRACE_1 :
case SOUND_BULLETTRACE_2 :
m_sQueueSample . m_nSampleIndex = ( m_anRandomTable [ 0 ] % 2 ) + SFX_BULLET_PASS_1 ;
break ;
case SOUND_AMMUNATION_IMRAN_ARM_BOMB :
m_sQueueSample . m_nSampleIndex = SFX_ARM_BOMB ;
break ;
2020-10-25 15:01:09 +00:00
case SOUND_RADIO_CHANGE :
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nSampleIndex = ( m_anRandomTable [ 1 ] % 2 ) ? radioDial + 1 : radioDial + 2 ;
if ( m_sQueueSample . m_nSampleIndex > SFX_RADIO_DIAL_12 )
m_sQueueSample . m_nSampleIndex - = 12 ;
radioDial = m_sQueueSample . m_nSampleIndex ;
2020-05-16 17:29:13 +00:00
break ;
2020-10-25 15:01:09 +00:00
case SOUND_FRONTEND_HIGHLIGHT_OPTION :
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-05-26 15:25:34 +00:00
m_sQueueSample . m_nSampleIndex = SFX_FE_HIGHLIGHT_LEFT ;
2020-05-16 17:29:13 +00:00
break ;
2020-10-25 15:01:09 +00:00
case SOUND_FRONTEND_ENTER_OR_ADJUST :
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-05-26 15:25:34 +00:00
m_sQueueSample . m_nSampleIndex = SFX_FE_SELECT_LEFT ;
2020-05-16 17:29:13 +00:00
break ;
2020-10-25 15:01:09 +00:00
case SOUND_FRONTEND_BACK :
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nSampleIndex = SFX_FE_BACK_LEFT ;
2020-05-16 17:29:13 +00:00
break ;
case SOUND_FRONTEND_FAIL :
2021-05-22 10:08:26 +00:00
stereo = TRUE ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nSampleIndex = SFX_FE_ERROR_LEFT ;
2020-05-16 17:29:13 +00:00
break ;
2020-10-25 10:00:57 +00:00
case SOUND_FRONTEND_AUDIO_TEST :
m_sQueueSample . m_nSampleIndex = m_anRandomTable [ 0 ] % 3 + SFX_FE_NOISE_BURST_1 ;
2020-05-16 17:29:13 +00:00
break ;
default :
continue ;
}
if ( processedPickup ) {
if ( m_FrameCounter < = cPickupNextFrame )
continue ;
cPickupNextFrame = m_FrameCounter + 5 ;
} else if ( processedMission ) {
if ( m_FrameCounter < = cPartMisComNextFrame )
continue ;
cPartMisComNextFrame = m_FrameCounter + 5 ;
}
sample = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_awAudioEvent [ i ] ;
2020-10-25 10:00:57 +00:00
2021-01-30 11:52:48 +00:00
if ( sample = = SOUND_FRONTEND_RADIO_TURN_OFF )
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nFrequency = 28509 ;
2021-01-30 11:52:48 +00:00
else if ( sample = = SOUND_FRONTEND_RADIO_TURN_ON )
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nFrequency = 32000 ;
else if ( sample = = SOUND_BULLETTRACE_1 | | sample = = SOUND_BULLETTRACE_2 ) {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 5 ) ;
2020-10-25 10:00:57 +00:00
} else if ( staticFreq )
m_sQueueSample . m_nFrequency = 5382 ;
else
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = FRONTEND_VOLUME ;
2020-10-25 10:00:57 +00:00
if ( m_sQueueSample . m_nSampleIndex = = SFX_HURRICANE_MA & & CWeather : : Wind > 1.0f )
m_sQueueSample . m_nVolume = ( CWeather : : Wind - 1.0f ) * m_sQueueSample . m_nVolume ;
2020-05-25 00:56:17 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_FRONT_END_MENU ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 0 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = TRUE ;
2021-08-12 11:57:16 +00:00
SET_EMITTING_VOLUME ( m_sQueueSample . m_nVolume ) ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2021-06-12 11:58:49 +00:00
if ( stereo ) {
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPan = 0 ;
2021-06-12 11:58:49 +00:00
m_sQueueSample . m_fDistance = 1.0f ;
} else {
2020-10-25 10:00:57 +00:00
sample = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_awAudioEvent [ i ] ;
if ( sample = = SOUND_BULLETTRACE_1 ) {
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPan = 20 ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nVolume = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 10 ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_fDistance = 100.0f ;
2021-06-12 11:58:49 +00:00
} else if ( sample = = SOUND_BULLETTRACE_2 ) {
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPan = 107 ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nVolume = m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_afVolume [ i ] ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 10 ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_fDistance = 100.0f ;
2021-06-12 11:58:49 +00:00
} else {
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPan = 63 ;
2021-06-12 11:58:49 +00:00
m_sQueueSample . m_fDistance = 1.0f ;
2020-10-25 10:00:57 +00:00
}
}
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( FALSE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
if ( stereo ) {
2021-08-25 05:49:58 +00:00
m_sQueueSample . m_nSampleIndex + + ;
2020-05-25 00:56:17 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPan = 127 - m_sQueueSample . m_nPan ;
2020-10-25 10:00:57 +00:00
AddSampleToRequestedQueue ( ) ;
}
if ( center ) {
2021-08-25 05:49:58 +00:00
m_sQueueSample . m_nSampleIndex + + ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPan = 63 ;
2020-10-25 10:00:57 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
}
2020-05-26 15:25:34 +00:00
/*void
2020-05-16 17:29:13 +00:00
cAudioManager : : ProcessCrane ( )
{
CCrane * crane = ( CCrane * ) m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_pEntity ;
float distSquared ;
2021-05-22 10:08:26 +00:00
bool8 distCalculated = FALSE ;
2020-05-16 17:29:13 +00:00
if ( crane ) {
if ( crane - > m_nCraneStatus = = CCrane : : ACTIVATED ) {
if ( crane - > m_nCraneState ! = CCrane : : IDLE ) {
m_sQueueSample . m_vecPos = crane - > m_pCraneEntity - > GetPosition ( ) ;
distSquared = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
2021-08-29 06:42:32 +00:00
if ( distSquared < SQR ( CRANE_MAX_DIST ) ) {
2020-05-16 17:29:13 +00:00
CalculateDistance ( distCalculated , distSquared ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( CRANE_VOLUME , CRANE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = 0 ;
m_sQueueSample . m_nSampleIndex = SFX_CRANE_MAGNET ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 2 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nFrequency = 6000 ;
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( CRANE_VOLUME ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = CRANE_MAX_DIST ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 3 ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
2021-08-29 06:42:32 +00:00
if ( m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_AudioEvents > 0 ) {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = 1 ;
m_sQueueSample . m_nSampleIndex = SFX_COL_CAR_2 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_COL_CAR_2 ) ;
m_sQueueSample . m_nLoopCount = 1 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
}
}
}
2020-05-26 15:25:34 +00:00
} */
2020-05-16 17:29:13 +00:00
void
cAudioManager : : ProcessProjectiles ( )
{
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2020-05-16 17:29:13 +00:00
2021-08-25 05:49:58 +00:00
for ( uint8 i = 0 ; i < NUM_PROJECTILES ; i + + ) {
2020-05-16 17:29:13 +00:00
if ( CProjectileInfo : : GetProjectileInfo ( i ) - > m_bInUse ) {
switch ( CProjectileInfo : : GetProjectileInfo ( i ) - > m_eWeaponType ) {
2020-10-17 13:57:36 +00:00
case WEAPONTYPE_TEARGAS :
2021-08-29 06:42:32 +00:00
Vol = PROJECTILE_TEARGAS_VOLUME ;
m_sQueueSample . m_MaxDistance = PROJECTILE_TEARGAS_MAX_DIST ;
2020-10-17 13:57:36 +00:00
m_sQueueSample . m_nSampleIndex = SFX_PALM_TREE_LO ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2020-10-17 13:57:36 +00:00
m_sQueueSample . m_nFrequency = 13879 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 7 ;
2020-05-16 17:29:13 +00:00
break ;
2020-10-17 13:57:36 +00:00
case WEAPONTYPE_ROCKET :
2021-08-29 06:42:32 +00:00
Vol = PROJECTILE_ROCKET_VOLUME ;
m_sQueueSample . m_MaxDistance = PROJECTILE_ROCKET_MAX_DIST ;
2020-10-17 13:57:36 +00:00
m_sQueueSample . m_nSampleIndex = SFX_ROCKET_FLY ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_ROCKET_FLY ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2020-10-17 13:57:36 +00:00
break ;
2021-08-29 06:42:32 +00:00
case WEAPONTYPE_MOLOTOV :
Vol = PROJECTILE_MOLOTOV_VOLUME ;
m_sQueueSample . m_MaxDistance = PROJECTILE_MOLOTOV_MAX_DIST ;
m_sQueueSample . m_nSampleIndex = SFX_PED_ON_FIRE ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nFrequency = 32 * SampleManager . GetSampleBaseFrequency ( SFX_PED_ON_FIRE ) / 25 ;
m_sQueueSample . m_nPriority = 7 ;
break ;
2020-05-16 17:29:13 +00:00
default :
2021-08-29 06:42:32 +00:00
continue ;
2020-05-16 17:29:13 +00:00
}
m_sQueueSample . m_fSpeedMultiplier = 4.0f ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nFramesToPlay = 3 ;
2020-10-17 18:30:48 +00:00
m_sQueueSample . m_vecPos = CProjectileInfo : : ms_apProjectile [ i ] - > GetPosition ( ) ;
2021-08-29 06:42:32 +00:00
float distSquared = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
2021-08-20 11:28:55 +00:00
if ( distSquared < SQR ( m_sQueueSample . m_MaxDistance ) ) {
2020-12-25 15:22:18 +00:00
m_sQueueSample . m_fDistance = Sqrt ( distSquared ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( Vol , m_sQueueSample . m_MaxDistance , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = i ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( Vol ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
}
}
}
2021-07-27 21:52:46 +00:00
void
cAudioManager : : ProcessEscalators ( )
{
float distance ;
for ( int i = 0 ; i < CEscalators : : NumEscalators ; i + + ) {
if ( ! CEscalators : : GetEscalator ( i ) . IsActive ( ) )
continue ;
m_sQueueSample . m_vecPos = CEscalators : : GetEscalator ( i ) . GetPosition ( ) ;
distance = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
2021-08-29 06:42:32 +00:00
if ( distance < SQR ( ESCALATOR_MAX_DIST ) ) {
2021-07-27 21:52:46 +00:00
m_sQueueSample . m_fDistance = Sqrt ( distance ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( ESCALATOR_VOLUME , ESCALATOR_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2021-07-27 21:52:46 +00:00
m_sQueueSample . m_nSampleIndex = SFX_BOAT_V12_LOOP ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nFrequency = i * 50 % 250 + 3973 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2021-07-27 21:52:46 +00:00
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nFramesToPlay = 5 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = ESCALATOR_MAX_DIST ;
2021-07-27 21:52:46 +00:00
m_sQueueSample . m_nCounter = i ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( ESCALATOR_VOLUME ) ;
2021-07-27 21:52:46 +00:00
SET_LOOP_OFFSETS ( SFX_BOAT_V12_LOOP )
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2021-07-27 21:52:46 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
}
}
//positon of arcade machines
CVector aVecExtraSoundPosition [ ] = { CVector ( - 1042.546f , 88.794f , 11.324f ) , CVector ( - 1004.476f , 181.697f , 11.324f ) } ;
void
cAudioManager : : ProcessExtraSounds ( )
{
float distance ;
for ( int i = 0 ; i < ARRAY_SIZE ( aVecExtraSoundPosition ) ; i + + ) {
m_sQueueSample . m_vecPos = aVecExtraSoundPosition [ i ] ;
distance = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
2021-08-29 06:42:32 +00:00
if ( distance < SQR ( ARCADE_MAX_DIST ) ) {
2021-07-27 21:52:46 +00:00
m_sQueueSample . m_fDistance = Sqrt ( distance ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( ARCADE_VOLUME , ARCADE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2021-07-27 21:52:46 +00:00
m_sQueueSample . m_nCounter = i ;
m_sQueueSample . m_nSampleIndex = SFX_ARCADE ;
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_ARCADE ) ;
m_sQueueSample . m_bIs2D = FALSE ;
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nPriority = 4 ;
2021-07-27 21:52:46 +00:00
m_sQueueSample . m_fSpeedMultiplier = 3.0f ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( ARCADE_VOLUME ) ;
2021-07-27 21:52:46 +00:00
SET_LOOP_OFFSETS ( SFX_ARCADE )
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = ARCADE_MAX_DIST ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nFramesToPlay = 3 ;
2021-07-27 21:52:46 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
}
}
2020-05-16 17:29:13 +00:00
void
cAudioManager : : ProcessGarages ( )
{
CEntity * entity ;
2020-12-07 00:30:38 +00:00
uint8 state ;
2020-05-16 17:29:13 +00:00
uint32 sampleIndex ;
uint8 j ;
float distSquared ;
2021-05-22 10:08:26 +00:00
bool8 distCalculated ;
2020-05-16 17:29:13 +00:00
static uint8 iSound = 32 ;
2021-08-25 05:49:58 +00:00
# ifdef FIX_BUGS
for ( uint32 i = 0 ; i < CGarages : : NumGarages ; i + + ) {
# else
for ( uint8 i = 0 ; i < CGarages : : NumGarages ; i + + ) {
# endif
2020-05-16 17:29:13 +00:00
if ( CGarages : : aGarages [ i ] . m_eGarageType = = GARAGE_NONE )
continue ;
entity = CGarages : : aGarages [ i ] . m_pDoor1 ;
2020-05-24 17:33:30 +00:00
if ( entity = = nil )
2020-05-16 17:29:13 +00:00
continue ;
m_sQueueSample . m_vecPos = entity - > GetPosition ( ) ;
2021-05-22 10:08:26 +00:00
distCalculated = FALSE ;
2020-05-16 17:29:13 +00:00
distSquared = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
2021-08-29 06:42:32 +00:00
if ( distSquared < SQR ( GARAGES_MAX_DIST ) ) {
2020-05-16 17:29:13 +00:00
state = CGarages : : aGarages [ i ] . m_eGarageState ;
2021-08-29 06:42:32 +00:00
if ( state = = GS_OPENING | | state = = GS_CLOSING | | state = = GS_AFTERDROPOFF ) {
2020-05-16 17:29:13 +00:00
CalculateDistance ( distCalculated , distSquared ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( GARAGES_VOLUME , GARAGES_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-05-16 17:29:13 +00:00
if ( CGarages : : aGarages [ i ] . m_eGarageType = = GARAGE_CRUSHER ) {
if ( CGarages : : aGarages [ i ] . m_eGarageState = = GS_AFTERDROPOFF ) {
2020-05-24 17:33:30 +00:00
if ( m_FrameCounter & 1 ) {
if ( m_anRandomTable [ 1 ] & 1 )
sampleIndex = m_anRandomTable [ 2 ] % 5 + SFX_COL_CAR_1 ;
else
sampleIndex = m_anRandomTable [ 2 ] % 6 + SFX_COL_CAR_PANEL_1 ;
m_sQueueSample . m_nSampleIndex = sampleIndex ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) > > 1 ;
m_sQueueSample . m_nFrequency + = RandomDisplacement ( m_sQueueSample . m_nFrequency > > 4 ) ;
2020-05-24 17:33:30 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2020-05-24 17:33:30 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
if ( iSound < 32 )
iSound = 32 ;
2021-08-29 06:42:32 +00:00
} else
goto CheckGarageEvents ; // premature exit to go straight to the for loop
2020-05-24 17:33:30 +00:00
} else {
m_sQueueSample . m_nSampleIndex = SFX_FISHING_BOAT_IDLE ;
m_sQueueSample . m_nFrequency = 6543 ;
m_sQueueSample . m_nCounter = i ;
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nFramesToPlay = 3 ;
m_sQueueSample . m_bStatic = FALSE ;
2020-05-16 17:29:13 +00:00
}
} else {
m_sQueueSample . m_nSampleIndex = SFX_GARAGE_DOOR_LOOP ;
m_sQueueSample . m_nFrequency = 13961 ;
2020-05-24 17:33:30 +00:00
m_sQueueSample . m_nCounter = i ;
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nFramesToPlay = 3 ;
m_sQueueSample . m_bStatic = FALSE ;
2020-05-16 17:29:13 +00:00
}
2020-05-24 17:33:30 +00:00
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 3 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( GARAGES_VOLUME ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = GARAGES_MAX_DIST ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
2020-05-24 17:33:30 +00:00
}
}
2021-08-29 06:42:32 +00:00
CheckGarageEvents :
2021-08-25 05:49:58 +00:00
for ( j = 0 ; j < m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_AudioEvents ; j + + ) {
2020-05-24 17:33:30 +00:00
switch ( m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_awAudioEvent [ j ] ) {
case SOUND_GARAGE_DOOR_CLOSED :
case SOUND_GARAGE_DOOR_OPENED :
2021-08-29 06:42:32 +00:00
if ( distSquared < SQR ( GARAGES_MAX_DIST ) ) {
2020-05-24 17:33:30 +00:00
CalculateDistance ( distCalculated , distSquared ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( GARAGES_DOOR_VOLUME , GARAGES_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-05-24 17:33:30 +00:00
if ( CGarages : : aGarages [ i ] . m_eGarageType = = GARAGE_CRUSHER ) {
m_sQueueSample . m_nSampleIndex = SFX_COL_CAR_PANEL_2 ;
m_sQueueSample . m_nFrequency = 6735 ;
} else if ( m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_awAudioEvent [ j ] = = SOUND_GARAGE_DOOR_OPENED ) {
m_sQueueSample . m_nSampleIndex = SFX_COL_CAR_PANEL_2 ;
m_sQueueSample . m_nFrequency = 22000 ;
} else {
m_sQueueSample . m_nSampleIndex = SFX_COL_GARAGE_DOOR_1 ;
m_sQueueSample . m_nFrequency = 18000 ;
}
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 4 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( GARAGES_DOOR_VOLUME ) ;
2020-05-24 17:33:30 +00:00
m_sQueueSample . m_fSpeedMultiplier = 0.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = GARAGES_MAX_DIST ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( TRUE ) ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2020-05-24 17:33:30 +00:00
m_sQueueSample . m_nLoopCount = 1 ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2020-05-24 17:33:30 +00:00
m_sQueueSample . m_nCounter = iSound + + ;
if ( iSound < 32 )
iSound = 32 ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( TRUE ) ;
2020-05-24 17:33:30 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
break ;
default :
break ;
2020-05-16 17:29:13 +00:00
}
}
}
}
void
cAudioManager : : ProcessFireHydrant ( )
{
float distSquared ;
2021-05-22 10:08:26 +00:00
bool8 distCalculated = FALSE ;
2020-05-16 17:29:13 +00:00
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_vecPos = ( ( CParticleObject * ) m_asAudioEntities [ m_sQueueSample . m_nEntityIndex ] . m_pEntity ) - > GetPosition ( ) ;
2020-05-16 17:29:13 +00:00
distSquared = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
2021-08-29 06:42:32 +00:00
if ( distSquared < SQR ( FIRE_HYDRANT_MAX_DIST ) ) {
2020-10-24 19:06:45 +00:00
CalculateDistance ( distCalculated , distSquared ) ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nVolume = ComputeVolume ( FIRE_HYDRANT_VOLUME , FIRE_HYDRANT_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-10-24 19:06:45 +00:00
m_sQueueSample . m_nCounter = 0 ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nSampleIndex = SFX_JUMBO_TAXI ;
2020-10-24 19:06:45 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nPriority = 4 ;
m_sQueueSample . m_nFrequency = 15591 ;
2020-10-24 19:06:45 +00:00
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( FIRE_HYDRANT_VOLUME ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
m_sQueueSample . m_MaxDistance = FIRE_HYDRANT_MAX_DIST ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 3 ;
2021-08-29 06:42:32 +00:00
SET_SOUND_REVERB ( TRUE ) ;
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
}
2020-05-26 15:25:34 +00:00
# ifdef GTA_BRIDGE
2020-05-16 17:29:13 +00:00
# pragma region BRIDGE
void
cAudioManager : : ProcessBridge ( )
{
float dist ;
2021-05-22 10:08:26 +00:00
bool8 distCalculated = FALSE ;
2020-05-16 17:29:13 +00:00
if ( CBridge : : pLiftRoad ) {
m_sQueueSample . m_vecPos = CBridge : : pLiftRoad - > GetPosition ( ) ;
dist = GetDistanceSquared ( m_sQueueSample . m_vecPos ) ;
2021-08-29 06:42:32 +00:00
if ( dist < SQR ( BRIDGE_MAX_DIST ) ) {
2020-05-16 17:29:13 +00:00
CalculateDistance ( distCalculated , dist ) ;
switch ( CBridge : : State ) {
case STATE_BRIDGE_LOCKED :
case STATE_LIFT_PART_IS_UP :
case STATE_LIFT_PART_ABOUT_TO_MOVE_UP :
ProcessBridgeWarning ( ) ;
break ;
case STATE_LIFT_PART_MOVING_DOWN :
case STATE_LIFT_PART_MOVING_UP :
ProcessBridgeWarning ( ) ;
ProcessBridgeMotor ( ) ;
break ;
default :
break ;
}
ProcessBridgeOneShots ( ) ;
}
}
}
void
cAudioManager : : ProcessBridgeWarning ( )
{
2021-08-29 06:42:32 +00:00
if ( ! CStats : : CommercialPassed )
return ;
if ( m_sQueueSample . m_fDistance < BRIDGE_MAX_DIST ) {
m_sQueueSample . m_nVolume = ComputeVolume ( BRIDGE_WARNING_VOLUME , BRIDGE_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = 0 ;
m_sQueueSample . m_nSampleIndex = SFX_BRIDGE_OPEN_WARNING ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_GENERIC_EXTRA ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 1 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( SFX_BRIDGE_OPEN_WARNING ) ;
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( BRIDGE_WARNING_VOLUME ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = BRIDGE_MAX_DIST ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 8 ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( FALSE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
}
void
cAudioManager : : ProcessBridgeMotor ( )
{
2021-08-29 06:42:32 +00:00
if ( m_sQueueSample . m_fDistance < BRIDGE_MOTOR_MAX_DIST ) {
m_sQueueSample . m_nVolume = ComputeVolume ( BRIDGE_MOTOR_VOLUME , BRIDGE_MOTOR_MAX_DIST , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = 1 ;
m_sQueueSample . m_nSampleIndex = SFX_FISHING_BOAT_IDLE ; // todo check sfx name
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 1 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nFrequency = 5500 ;
m_sQueueSample . m_nLoopCount = 0 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( BRIDGE_MOTOR_VOLUME ) ;
2021-06-12 16:59:28 +00:00
SET_LOOP_OFFSETS ( m_sQueueSample . m_nSampleIndex )
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = BRIDGE_MOTOR_MAX_DIST ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = FALSE ;
m_sQueueSample . m_nFramesToPlay = 3 ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( FALSE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
}
void
cAudioManager : : ProcessBridgeOneShots ( )
{
2021-08-29 06:42:32 +00:00
float maxDist ;
if ( CBridge : : State = = STATE_LIFT_PART_IS_UP & & CBridge : : OldState = = STATE_LIFT_PART_MOVING_UP ) {
maxDist = BRIDGE_MOTOR_MAX_DIST ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nSampleIndex = SFX_COL_CONTAINER_1 ;
2021-08-29 06:42:32 +00:00
} else if ( CBridge : : State = = STATE_LIFT_PART_IS_DOWN & & CBridge : : OldState = = STATE_LIFT_PART_MOVING_DOWN ) {
maxDist = BRIDGE_MOTOR_MAX_DIST ;
2020-05-23 19:48:50 +00:00
m_sQueueSample . m_nSampleIndex = SFX_COL_CONTAINER_1 ;
2021-08-29 06:42:32 +00:00
} else if ( CBridge : : State = = STATE_LIFT_PART_MOVING_UP & & CBridge : : OldState = = STATE_LIFT_PART_ABOUT_TO_MOVE_UP ) {
maxDist = BRIDGE_MOTOR_MAX_DIST ;
2020-05-23 19:48:50 +00:00
m_sQueueSample . m_nSampleIndex = SFX_COL_CONTAINER_1 ;
2021-08-29 06:42:32 +00:00
} else if ( CBridge : : State = = STATE_LIFT_PART_MOVING_DOWN & & CBridge : : OldState = = STATE_LIFT_PART_IS_UP ) {
maxDist = BRIDGE_MOTOR_MAX_DIST ;
2020-05-23 19:48:50 +00:00
m_sQueueSample . m_nSampleIndex = SFX_COL_CONTAINER_1 ;
2021-08-29 06:42:32 +00:00
} else return ;
2020-05-23 19:48:50 +00:00
2021-08-29 06:42:32 +00:00
if ( m_sQueueSample . m_fDistance < maxDist ) {
m_sQueueSample . m_nVolume = ComputeVolume ( BRIDGE_MOTOR_VOLUME , maxDist , m_sQueueSample . m_fDistance ) ;
2021-08-18 12:49:06 +00:00
if ( m_sQueueSample . m_nVolume > 0 ) {
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nCounter = 2 ;
2020-09-20 22:55:22 +00:00
m_sQueueSample . m_nBankIndex = SFX_BANK_0 ;
2021-05-22 10:08:26 +00:00
m_sQueueSample . m_bIs2D = FALSE ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_nPriority = 1 ;
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_nFrequency = SampleManager . GetSampleBaseFrequency ( m_sQueueSample . m_nSampleIndex ) ;
m_sQueueSample . m_nLoopCount = 1 ;
2021-08-29 06:42:32 +00:00
SET_EMITTING_VOLUME ( BRIDGE_MOTOR_VOLUME ) ;
2021-06-12 16:59:28 +00:00
RESET_LOOP_OFFSETS
2020-05-16 17:29:13 +00:00
m_sQueueSample . m_fSpeedMultiplier = 2.0f ;
2021-08-29 06:42:32 +00:00
m_sQueueSample . m_MaxDistance = maxDist ;
2021-08-20 11:28:55 +00:00
m_sQueueSample . m_bStatic = TRUE ;
2021-08-19 07:53:14 +00:00
SET_SOUND_REVERB ( FALSE ) ;
2021-08-18 12:49:06 +00:00
SET_SOUND_REFLECTION ( FALSE ) ;
2020-05-16 17:29:13 +00:00
AddSampleToRequestedQueue ( ) ;
}
}
}
# pragma endregion
2020-05-26 15:25:34 +00:00
# endif
2020-05-16 17:29:13 +00:00
# pragma region MISSION_AUDIO
2021-05-22 10:08:26 +00:00
bool8 g_bMissionAudioLoadFailed [ MISSION_AUDIO_SLOTS ] ;
2020-05-16 17:29:13 +00:00
struct MissionAudioData {
const char * m_pName ;
2021-08-29 06:42:32 +00:00
uint32 m_nId ;
2020-05-16 17:29:13 +00:00
} ;
2021-08-29 06:42:32 +00:00
Const MissionAudioData MissionAudioNameSfxAssoc [ ] = {
2020-05-27 00:29:54 +00:00
{ " mobring " , STREAMED_SOUND_MISSION_MOBR1 } , { " pagring " , STREAMED_SOUND_MISSION_PAGER } , { " carrev " , STREAMED_SOUND_MISSION_CARREV } ,
{ " bikerev " , STREAMED_SOUND_MISSION_BIKEREV } , { " liftop " , STREAMED_SOUND_MISSION_LIFTOP } , { " liftcl " , STREAMED_SOUND_MISSION_LIFTCL } ,
{ " liftrun " , STREAMED_SOUND_MISSION_LIFTRUN } , { " liftbel " , STREAMED_SOUND_MISSION_LIFTBEL } , { " inlift " , STREAMED_SOUND_MISSION_INLIFT } ,
{ " caml " , STREAMED_SOUND_MISSION_CAMERAL } , { " camr " , STREAMED_SOUND_MISSION_CAMERAR } , { " cheer1 " , STREAMED_SOUND_MISSION_CHEER1 } ,
{ " cheer2 " , STREAMED_SOUND_MISSION_CHEER2 } , { " cheer3 " , STREAMED_SOUND_MISSION_CHEER3 } , { " cheer4 " , STREAMED_SOUND_MISSION_CHEER4 } ,
{ " ooh1 " , STREAMED_SOUND_MISSION_OOH1 } , { " ooh2 " , STREAMED_SOUND_MISSION_OOH2 } , { " race1 " , STREAMED_SOUND_MISSION_RACE1 } ,
{ " race2 " , STREAMED_SOUND_MISSION_RACE2 } , { " race3 " , STREAMED_SOUND_MISSION_RACE3 } , { " race4 " , STREAMED_SOUND_MISSION_RACE4 } ,
{ " race5 " , STREAMED_SOUND_MISSION_RACE5 } , { " race6 " , STREAMED_SOUND_MISSION_RACE6 } , { " race7 " , STREAMED_SOUND_MISSION_RACE7 } ,
{ " race8 " , STREAMED_SOUND_MISSION_RACE8 } , { " race9 " , STREAMED_SOUND_MISSION_RACE9 } , { " race10 " , STREAMED_SOUND_MISSION_RACE10 } ,
{ " race11 " , STREAMED_SOUND_MISSION_RACE11 } , { " race12 " , STREAMED_SOUND_MISSION_RACE12 } , { " race13 " , STREAMED_SOUND_MISSION_RACE13 } ,
{ " race14 " , STREAMED_SOUND_MISSION_RACE14 } , { " race15 " , STREAMED_SOUND_MISSION_RACE15 } , { " hot1 " , STREAMED_SOUND_MISSION_HOT1 } ,
{ " hot2 " , STREAMED_SOUND_MISSION_HOT2 } , { " hot3 " , STREAMED_SOUND_MISSION_HOT3 } , { " hot4 " , STREAMED_SOUND_MISSION_HOT4 } ,
{ " hot5 " , STREAMED_SOUND_MISSION_HOT5 } , { " hot6 " , STREAMED_SOUND_MISSION_HOT6 } , { " hot7 " , STREAMED_SOUND_MISSION_HOT7 } ,
{ " hot8 " , STREAMED_SOUND_MISSION_HOT8 } , { " hot9 " , STREAMED_SOUND_MISSION_HOT9 } , { " hot10 " , STREAMED_SOUND_MISSION_HOT10 } ,
{ " hot11 " , STREAMED_SOUND_MISSION_HOT11 } , { " hot12 " , STREAMED_SOUND_MISSION_HOT12 } , { " hot13 " , STREAMED_SOUND_MISSION_HOT13 } ,
{ " hot14 " , STREAMED_SOUND_MISSION_HOT14 } , { " hot15 " , STREAMED_SOUND_MISSION_HOT15 } , { " lanstp1 " , STREAMED_SOUND_MISSION_LANSTP1 } ,
{ " lanstp2 " , STREAMED_SOUND_MISSION_LANSTP2 } , { " lanamu1 " , STREAMED_SOUND_MISSION_LANAMU1 } , { " lanamu2 " , STREAMED_SOUND_MISSION_LANAMU2 } ,
{ " airhrnl " , STREAMED_SOUND_MISSION_AIRHORNL } , { " airhrnr " , STREAMED_SOUND_MISSION_AIRHORNR } , { " sniper " , STREAMED_SOUND_MISSION_SNIPSCRL } ,
{ " snipsh " , STREAMED_SOUND_MISSION_SNIPSHORT } , { " bloroof " , STREAMED_SOUND_MISSION_BLOWROOF } , { " sfx_01 " , STREAMED_SOUND_MISSION_SFX_01 } ,
{ " sfx_02 " , STREAMED_SOUND_MISSION_SFX_02 } , { " LAW1_1 " , STREAMED_SOUND_MISSION_LAW1_1 } , { " LAW1_2 " , STREAMED_SOUND_MISSION_LAW1_2 } ,
{ " LAW1_3 " , STREAMED_SOUND_MISSION_LAW1_3 } , { " LAW1_4 " , STREAMED_SOUND_MISSION_LAW1_4 } , { " LAW1_5 " , STREAMED_SOUND_MISSION_LAW1_5 } ,
{ " LAW1_6 " , STREAMED_SOUND_MISSION_LAW1_6 } , { " LAW1_7 " , STREAMED_SOUND_MISSION_LAW1_7 } , { " LAW1_8 " , STREAMED_SOUND_MISSION_LAW1_8 } ,
{ " LAW1_9 " , STREAMED_SOUND_MISSION_LAW1_9 } , { " LAW1_10 " , STREAMED_SOUND_MISSION_LAW1_10 } , { " LAW2_1 " , STREAMED_SOUND_MISSION_LAW2_1 } ,
{ " LAW2_2 " , STREAMED_SOUND_MISSION_LAW2_2 } , { " LAW2_3 " , STREAMED_SOUND_MISSION_LAW2_3 } , { " LAW2_4 " , STREAMED_SOUND_MISSION_LAW2_4 } ,
{ " LAW2_5 " , STREAMED_SOUND_MISSION_LAW2_5 } , { " LAW2_6 " , STREAMED_SOUND_MISSION_LAW2_6 } , { " LAW2_7 " , STREAMED_SOUND_MISSION_LAW2_7 } ,
{ " LAW2_8 " , STREAMED_SOUND_MISSION_LAW2_8 } , { " LAW2_9 " , STREAMED_SOUND_MISSION_LAW2_9 } , { " LAW2_10 " , STREAMED_SOUND_MISSION_LAW2_10 } ,
{ " LAW3_1 " , STREAMED_SOUND_MISSION_LAW3_1 } , { " LAW3_2 " , STREAMED_SOUND_MISSION_LAW3_2 } , { " LAW3_3 " , STREAMED_SOUND_MISSION_LAW3_3 } ,
{ " LAW3_4 " , STREAMED_SOUND_MISSION_LAW3_4 } , { " LAW3_5 " , STREAMED_SOUND_MISSION_LAW3_5 } , { " LAW3_6 " , STREAMED_SOUND_MISSION_LAW3_6 } ,
{ " LAW3_10 " , STREAMED_SOUND_MISSION_LAW3_10 } , { " LAW3_11 " , STREAMED_SOUND_MISSION_LAW3_11 } , { " LAW3_12 " , STREAMED_SOUND_MISSION_LAW3_12 } ,
{ " LAW3_13 " , STREAMED_SOUND_MISSION_LAW3_13 } , { " LAW3_14 " , STREAMED_SOUND_MISSION_LAW3_14 } , { " LAW3_16 " , STREAMED_SOUND_MISSION_LAW3_16 } ,
{ " LAW3_17 " , STREAMED_SOUND_MISSION_LAW3_17 } , { " LAW3_18 " , STREAMED_SOUND_MISSION_LAW3_18 } , { " LAW3_19 " , STREAMED_SOUND_MISSION_LAW3_19 } ,
{ " LAW3_20 " , STREAMED_SOUND_MISSION_LAW3_20 } , { " LAW3_21 " , STREAMED_SOUND_MISSION_LAW3_21 } , { " LAW3_22 " , STREAMED_SOUND_MISSION_LAW3_22 } ,
{ " LAW3_23 " , STREAMED_SOUND_MISSION_LAW3_23 } , { " LAW3_24 " , STREAMED_SOUND_MISSION_LAW3_24 } , { " LAW3_25 " , STREAMED_SOUND_MISSION_LAW3_25 } ,
{ " LAW4_1a " , STREAMED_SOUND_MISSION_LAW4_1A } , { " LAW4_1b " , STREAMED_SOUND_MISSION_LAW4_1B } , { " LAW4_1c " , STREAMED_SOUND_MISSION_LAW4_1C } ,
{ " LAW4_1d " , STREAMED_SOUND_MISSION_LAW4_1D } , { " LAW4_10 " , STREAMED_SOUND_MISSION_LAW4_10 } , { " LAW4_3 " , STREAMED_SOUND_MISSION_LAW4_3 } ,
{ " LAW4_4 " , STREAMED_SOUND_MISSION_LAW4_4 } , { " LAW4_5 " , STREAMED_SOUND_MISSION_LAW4_5 } , { " LAW4_6 " , STREAMED_SOUND_MISSION_LAW4_6 } ,
{ " LAW4_7 " , STREAMED_SOUND_MISSION_LAW4_7 } , { " LAW4_8 " , STREAMED_SOUND_MISSION_LAW4_8 } , { " LAW4_9 " , STREAMED_SOUND_MISSION_LAW4_9 } ,
{ " COL1_1 " , STREAMED_SOUND_MISSION_COL1_1 } , { " COL1_2 " , STREAMED_SOUND_MISSION_COL1_2 } , { " COL1_3 " , STREAMED_SOUND_MISSION_COL1_3 } ,
{ " COL1_4 " , STREAMED_SOUND_MISSION_COL1_4 } , { " COL1_5 " , STREAMED_SOUND_MISSION_COL1_5 } , { " COL1_6 " , STREAMED_SOUND_MISSION_COL1_6 } ,
{ " COL1_7 " , STREAMED_SOUND_MISSION_COL1_7 } , { " COL1_8 " , STREAMED_SOUND_MISSION_COL1_8 } , { " COL2_1 " , STREAMED_SOUND_MISSION_COL2_1 } ,
{ " COL2_2 " , STREAMED_SOUND_MISSION_COL2_2 } , { " COL2_3 " , STREAMED_SOUND_MISSION_COL2_3 } , { " COL2_4 " , STREAMED_SOUND_MISSION_COL2_4 } ,
{ " COL2_5 " , STREAMED_SOUND_MISSION_COL2_5 } , { " COL2_6a " , STREAMED_SOUND_MISSION_COL2_6A } , { " COL2_7 " , STREAMED_SOUND_MISSION_COL2_7 } ,
{ " COL2_8 " , STREAMED_SOUND_MISSION_COL2_8 } , { " COL2_9 " , STREAMED_SOUND_MISSION_COL2_9 } , { " COL2_10 " , STREAMED_SOUND_MISSION_COL2_10 } ,
{ " COL2_11 " , STREAMED_SOUND_MISSION_COL2_11 } , { " COL2_12 " , STREAMED_SOUND_MISSION_COL2_12 } , { " COL2_13 " , STREAMED_SOUND_MISSION_COL2_13 } ,
{ " COL2_14 " , STREAMED_SOUND_MISSION_COL2_14 } , { " COL2_15 " , STREAMED_SOUND_MISSION_COL2_15 } , { " COL2_16 " , STREAMED_SOUND_MISSION_COL2_16 } ,
{ " COL3_1 " , STREAMED_SOUND_MISSION_COL3_1 } , { " COL3_2 " , STREAMED_SOUND_MISSION_COL3_2 } , { " COL3_2a " , STREAMED_SOUND_MISSION_COL3_2A } ,
{ " COL3_2b " , STREAMED_SOUND_MISSION_COL3_2B } , { " COL3_3 " , STREAMED_SOUND_MISSION_COL3_3 } , { " COL3_4 " , STREAMED_SOUND_MISSION_COL3_4 } ,
{ " COL3_5 " , STREAMED_SOUND_MISSION_COL3_5 } , { " COL3_6 " , STREAMED_SOUND_MISSION_COL3_6 } , { " COL3_7 " , STREAMED_SOUND_MISSION_COL3_7 } ,
{ " COL3_8 " , STREAMED_SOUND_MISSION_COL3_8 } , { " COL3_9 " , STREAMED_SOUND_MISSION_COL3_9 } , { " COL3_10 " , STREAMED_SOUND_MISSION_COL3_10 } ,
{ " COL3_11 " , STREAMED_SOUND_MISSION_COL3_11 } , { " COL3_12 " , STREAMED_SOUND_MISSION_COL3_12 } , { " COL3_13 " , STREAMED_SOUND_MISSION_COL3_13 } ,
{ " COL3_14 " , STREAMED_SOUND_MISSION_COL3_14 } , { " COL3_15 " , STREAMED_SOUND_MISSION_COL3_15 } , { " COL3_16 " , STREAMED_SOUND_MISSION_COL3_16 } ,
{ " COL3_17 " , STREAMED_SOUND_MISSION_COL3_17 } , { " COL3_18 " , STREAMED_SOUND_MISSION_COL3_18 } , { " COL3_19 " , STREAMED_SOUND_MISSION_COL3_19 } ,
{ " COL3_20 " , STREAMED_SOUND_MISSION_COL3_20 } , { " COL3_21 " , STREAMED_SOUND_MISSION_COL3_21 } , { " COL3_23 " , STREAMED_SOUND_MISSION_COL3_23 } ,
{ " COL3_24 " , STREAMED_SOUND_MISSION_COL3_24 } , { " COL3_25 " , STREAMED_SOUND_MISSION_COL3_25 } , { " COL4_1 " , STREAMED_SOUND_MISSION_COL4_1 } ,
{ " COL4_2 " , STREAMED_SOUND_MISSION_COL4_2 } , { " COL4_3 " , STREAMED_SOUND_MISSION_COL4_3 } , { " COL4_4 " , STREAMED_SOUND_MISSION_COL4_4 } ,
{ " COL4_5 " , STREAMED_SOUND_MISSION_COL4_5 } , { " COL4_6 " , STREAMED_SOUND_MISSION_COL4_6 } , { " COL4_7 " , STREAMED_SOUND_MISSION_COL4_7 } ,
{ " COL4_8 " , STREAMED_SOUND_MISSION_COL4_8 } , { " COL4_9 " , STREAMED_SOUND_MISSION_COL4_9 } , { " COL4_10 " , STREAMED_SOUND_MISSION_COL4_10 } ,
{ " COL4_11 " , STREAMED_SOUND_MISSION_COL4_11 } , { " COL4_12 " , STREAMED_SOUND_MISSION_COL4_12 } , { " COL4_13 " , STREAMED_SOUND_MISSION_COL4_13 } ,
{ " COL4_14 " , STREAMED_SOUND_MISSION_COL4_14 } , { " COL4_15 " , STREAMED_SOUND_MISSION_COL4_15 } , { " COL4_16 " , STREAMED_SOUND_MISSION_COL4_16 } ,
{ " COL4_17 " , STREAMED_SOUND_MISSION_COL4_17 } , { " COL4_18 " , STREAMED_SOUND_MISSION_COL4_18 } , { " COL4_19 " , STREAMED_SOUND_MISSION_COL4_19 } ,
{ " COL4_20 " , STREAMED_SOUND_MISSION_COL4_20 } , { " COL4_21 " , STREAMED_SOUND_MISSION_COL4_21 } , { " COL4_22 " , STREAMED_SOUND_MISSION_COL4_22 } ,
{ " COL4_23 " , STREAMED_SOUND_MISSION_COL4_23 } , { " COL4_24 " , STREAMED_SOUND_MISSION_COL4_24 } , { " COL4_25 " , STREAMED_SOUND_MISSION_COL4_25 } ,
{ " COL4_26 " , STREAMED_SOUND_MISSION_COL4_26 } , { " COL5_1 " , STREAMED_SOUND_MISSION_COL5_1 } , { " COL5_2 " , STREAMED_SOUND_MISSION_COL5_2 } ,
{ " COL5_3 " , STREAMED_SOUND_MISSION_COL5_3 } , { " COL5_4 " , STREAMED_SOUND_MISSION_COL5_4 } , { " COL5_5 " , STREAMED_SOUND_MISSION_COL5_5 } ,
{ " COL5_6 " , STREAMED_SOUND_MISSION_COL5_6 } , { " COL5_7 " , STREAMED_SOUND_MISSION_COL5_7 } , { " COL5_8 " , STREAMED_SOUND_MISSION_COL5_8 } ,
{ " COL5_9 " , STREAMED_SOUND_MISSION_COL5_9 } , { " COL5_10 " , STREAMED_SOUND_MISSION_COL5_10 } , { " COL5_11 " , STREAMED_SOUND_MISSION_COL5_11 } ,
{ " COL5_12 " , STREAMED_SOUND_MISSION_COL5_12 } , { " COL5_13 " , STREAMED_SOUND_MISSION_COL5_13 } , { " COL5_14 " , STREAMED_SOUND_MISSION_COL5_14 } ,
{ " COL5_15 " , STREAMED_SOUND_MISSION_COL5_15 } , { " COL5_16 " , STREAMED_SOUND_MISSION_COL5_16 } , { " COL5_17 " , STREAMED_SOUND_MISSION_COL5_17 } ,
{ " COL5_18 " , STREAMED_SOUND_MISSION_COL5_18 } , { " COL5_19 " , STREAMED_SOUND_MISSION_COL5_19 } , { " COL5_20 " , STREAMED_SOUND_MISSION_COL5_20 } ,
{ " COL5_21 " , STREAMED_SOUND_MISSION_COL5_21 } , { " COL5_22 " , STREAMED_SOUND_MISSION_COL5_22 } , { " COK1_1 " , STREAMED_SOUND_MISSION_COK1_1 } ,
{ " COK1_2 " , STREAMED_SOUND_MISSION_COK1_2 } , { " COK1_3 " , STREAMED_SOUND_MISSION_COK1_3 } , { " COK1_4 " , STREAMED_SOUND_MISSION_COK1_4 } ,
{ " COK1_5 " , STREAMED_SOUND_MISSION_COK1_5 } , { " COK1_6 " , STREAMED_SOUND_MISSION_COK1_6 } , { " COK2_1 " , STREAMED_SOUND_MISSION_COK2_1 } ,
{ " COK2_2 " , STREAMED_SOUND_MISSION_COK2_2 } , { " COK2_3 " , STREAMED_SOUND_MISSION_COK2_3 } , { " COK2_4 " , STREAMED_SOUND_MISSION_COK2_4 } ,
{ " COK2_5 " , STREAMED_SOUND_MISSION_COK2_5 } , { " COK2_6 " , STREAMED_SOUND_MISSION_COK2_6 } , { " COK2_7a " , STREAMED_SOUND_MISSION_COK2_7A } ,
{ " COK2_7b " , STREAMED_SOUND_MISSION_COK2_7B } , { " COK2_7c " , STREAMED_SOUND_MISSION_COK2_7C } , { " COK2_8a " , STREAMED_SOUND_MISSION_COK2_8A } ,
{ " COK2_8b " , STREAMED_SOUND_MISSION_COK2_8B } , { " COK2_8c " , STREAMED_SOUND_MISSION_COK2_8C } , { " COK2_8d " , STREAMED_SOUND_MISSION_COK2_8D } ,
{ " COK2_9 " , STREAMED_SOUND_MISSION_COK2_9 } , { " COK210a " , STREAMED_SOUND_MISSION_COK210A } , { " COK210b " , STREAMED_SOUND_MISSION_COK210B } ,
{ " COK210c " , STREAMED_SOUND_MISSION_COK210C } , { " COK212a " , STREAMED_SOUND_MISSION_COK212A } , { " COK212b " , STREAMED_SOUND_MISSION_COK212B } ,
{ " COK2_13 " , STREAMED_SOUND_MISSION_COK2_13 } , { " COK2_14 " , STREAMED_SOUND_MISSION_COK2_14 } , { " COK2_15 " , STREAMED_SOUND_MISSION_COK2_15 } ,
{ " COK2_16 " , STREAMED_SOUND_MISSION_COK2_16 } , { " COK2_20 " , STREAMED_SOUND_MISSION_COK2_20 } , { " COK2_21 " , STREAMED_SOUND_MISSION_COK2_21 } ,
{ " COK2_22 " , STREAMED_SOUND_MISSION_COK2_22 } , { " COK3_1 " , STREAMED_SOUND_MISSION_COK3_1 } , { " COK3_2 " , STREAMED_SOUND_MISSION_COK3_2 } ,
{ " COK3_3 " , STREAMED_SOUND_MISSION_COK3_3 } , { " COK3_4 " , STREAMED_SOUND_MISSION_COK3_4 } , { " COK4_1 " , STREAMED_SOUND_MISSION_COK4_1 } ,
{ " COK4_2 " , STREAMED_SOUND_MISSION_COK4_2 } , { " COK4_3 " , STREAMED_SOUND_MISSION_COK4_3 } , { " COK4_4 " , STREAMED_SOUND_MISSION_COK4_4 } ,
{ " COK4_5 " , STREAMED_SOUND_MISSION_COK4_5 } , { " COK4_6 " , STREAMED_SOUND_MISSION_COK4_6 } , { " COK4_7 " , STREAMED_SOUND_MISSION_COK4_7 } ,
{ " COK4_8 " , STREAMED_SOUND_MISSION_COK4_8 } , { " COK4_9 " , STREAMED_SOUND_MISSION_COK4_9 } , { " COK4_9A " , STREAMED_SOUND_MISSION_COK4_9A } ,
{ " COK4_10 " , STREAMED_SOUND_MISSION_COK4_10 } , { " COK4_11 " , STREAMED_SOUND_MISSION_COK4_11 } , { " COK4_12 " , STREAMED_SOUND_MISSION_COK4_12 } ,
{ " COK4_13 " , STREAMED_SOUND_MISSION_COK4_13 } , { " COK4_14 " , STREAMED_SOUND_MISSION_COK4_14 } , { " COK4_15 " , STREAMED_SOUND_MISSION_COK4_15 } ,
{ " COK4_16 " , STREAMED_SOUND_MISSION_COK4_16 } , { " COK4_17 " , STREAMED_SOUND_MISSION_COK4_17 } , { " COK4_18 " , STREAMED_SOUND_MISSION_COK4_18 } ,
{ " COK4_19 " , STREAMED_SOUND_MISSION_COK4_19 } , { " COK4_20 " , STREAMED_SOUND_MISSION_COK4_20 } , { " COK4_21 " , STREAMED_SOUND_MISSION_COK4_21 } ,
{ " COK4_22 " , STREAMED_SOUND_MISSION_COK4_22 } , { " COK4_23 " , STREAMED_SOUND_MISSION_COK4_23 } , { " COK4_24 " , STREAMED_SOUND_MISSION_COK4_24 } ,
{ " COK4_25 " , STREAMED_SOUND_MISSION_COK4_25 } , { " COK4_26 " , STREAMED_SOUND_MISSION_COK4_26 } , { " COK4_27 " , STREAMED_SOUND_MISSION_COK4_27 } ,
{ " RESC_1 " , STREAMED_SOUND_MISSION_RESC_1 } , { " RESC_2 " , STREAMED_SOUND_MISSION_RESC_2 } , { " RESC_3 " , STREAMED_SOUND_MISSION_RESC_3 } ,
{ " RESC_4 " , STREAMED_SOUND_MISSION_RESC_4 } , { " RESC_5 " , STREAMED_SOUND_MISSION_RESC_5 } , { " RESC_6 " , STREAMED_SOUND_MISSION_RESC_6 } ,
{ " RESC_7 " , STREAMED_SOUND_MISSION_RESC_7 } , { " RESC_8 " , STREAMED_SOUND_MISSION_RESC_8 } , { " RESC_9 " , STREAMED_SOUND_MISSION_RESC_9 } ,
{ " RESC_10 " , STREAMED_SOUND_MISSION_RESC_10 } , { " ASS_1 " , STREAMED_SOUND_MISSION_ASS_1 } , { " ASS_2 " , STREAMED_SOUND_MISSION_ASS_2 } ,
{ " ASS_3 " , STREAMED_SOUND_MISSION_ASS_3 } , { " ASS_4 " , STREAMED_SOUND_MISSION_ASS_4 } , { " ASS_5 " , STREAMED_SOUND_MISSION_ASS_5 } ,
{ " ASS_6 " , STREAMED_SOUND_MISSION_ASS_6 } , { " ASS_7 " , STREAMED_SOUND_MISSION_ASS_7 } , { " ASS_8 " , STREAMED_SOUND_MISSION_ASS_8 } ,
{ " ASS_9 " , STREAMED_SOUND_MISSION_ASS_9 } , { " ASS_10 " , STREAMED_SOUND_MISSION_ASS_10 } , { " ASS_11 " , STREAMED_SOUND_MISSION_ASS_11 } ,
{ " ASS_12 " , STREAMED_SOUND_MISSION_ASS_12 } , { " ASS_13 " , STREAMED_SOUND_MISSION_ASS_13 } , { " ASS_14 " , STREAMED_SOUND_MISSION_ASS_14 } ,
{ " BUD1_1 " , STREAMED_SOUND_MISSION_BUD1_1 } , { " BUD1_2 " , STREAMED_SOUND_MISSION_BUD1_2 } , { " BUD1_3 " , STREAMED_SOUND_MISSION_BUD1_3 } ,
{ " BUD1_4 " , STREAMED_SOUND_MISSION_BUD1_4 } , { " BUD1_5 " , STREAMED_SOUND_MISSION_BUD1_5 } , { " BUD1_9 " , STREAMED_SOUND_MISSION_BUD1_9 } ,
{ " BUD1_10 " , STREAMED_SOUND_MISSION_BUD1_10 } , { " BUD2_1 " , STREAMED_SOUND_MISSION_BUD2_1 } , { " BUD2_2 " , STREAMED_SOUND_MISSION_BUD2_2 } ,
{ " BUD2_3 " , STREAMED_SOUND_MISSION_BUD2_3 } , { " BUD2_4 " , STREAMED_SOUND_MISSION_BUD2_4 } , { " BUD2_5 " , STREAMED_SOUND_MISSION_BUD2_5 } ,
{ " BUD2_6 " , STREAMED_SOUND_MISSION_BUD2_6 } , { " BUD2_7 " , STREAMED_SOUND_MISSION_BUD2_7 } , { " BUD3_1a " , STREAMED_SOUND_MISSION_BUD3_1A } ,
{ " BUD3_1b " , STREAMED_SOUND_MISSION_BUD3_1B } , { " BUD3_1 " , STREAMED_SOUND_MISSION_BUD3_1 } , { " BUD3_2 " , STREAMED_SOUND_MISSION_BUD3_2 } ,
{ " BUD3_3 " , STREAMED_SOUND_MISSION_BUD3_3 } , { " BUD3_4 " , STREAMED_SOUND_MISSION_BUD3_4 } , { " BUD3_1c " , STREAMED_SOUND_MISSION_BUD3_1C } ,
{ " BUD3_5 " , STREAMED_SOUND_MISSION_BUD3_5 } , { " BUD3_6 " , STREAMED_SOUND_MISSION_BUD3_6 } , { " BUD3_7 " , STREAMED_SOUND_MISSION_BUD3_7 } ,
{ " BUD3_8a " , STREAMED_SOUND_MISSION_BUD3_8A } , { " BUD3_8b " , STREAMED_SOUND_MISSION_BUD3_8B } , { " BUD3_8c " , STREAMED_SOUND_MISSION_BUD3_8C } ,
{ " BUD3_9a " , STREAMED_SOUND_MISSION_BUD3_9A } , { " BUD3_9b " , STREAMED_SOUND_MISSION_BUD3_9B } , { " BUD3_9c " , STREAMED_SOUND_MISSION_BUD3_9C } ,
{ " CAP1_2 " , STREAMED_SOUND_MISSION_CAP1_2 } , { " CAP1_3 " , STREAMED_SOUND_MISSION_CAP1_3 } , { " CAP1_4 " , STREAMED_SOUND_MISSION_CAP1_4 } ,
{ " CAP1_5 " , STREAMED_SOUND_MISSION_CAP1_5 } , { " CAP1_6 " , STREAMED_SOUND_MISSION_CAP1_6 } , { " CAP1_7 " , STREAMED_SOUND_MISSION_CAP1_7 } ,
{ " CAP1_8 " , STREAMED_SOUND_MISSION_CAP1_8 } , { " CAP1_9 " , STREAMED_SOUND_MISSION_CAP1_9 } , { " CAP1_10 " , STREAMED_SOUND_MISSION_CAP1_10 } ,
{ " CAP1_11 " , STREAMED_SOUND_MISSION_CAP1_11 } , { " CAP1_12 " , STREAMED_SOUND_MISSION_CAP1_12 } , { " FINKILL " , STREAMED_SOUND_MISSION_FINKILL } ,
{ " FIN_1a " , STREAMED_SOUND_MISSION_FIN_1A } , { " FIN_1b " , STREAMED_SOUND_MISSION_FIN_1B } , { " FIN_1c " , STREAMED_SOUND_MISSION_FIN_1C } ,
{ " FIN_2b " , STREAMED_SOUND_MISSION_FIN_2B } , { " FIN_2c " , STREAMED_SOUND_MISSION_FIN_2C } , { " FIN_3 " , STREAMED_SOUND_MISSION_FIN_3 } ,
{ " FIN_4 " , STREAMED_SOUND_MISSION_FIN_4 } , { " FIN_5 " , STREAMED_SOUND_MISSION_FIN_5 } , { " FIN_6 " , STREAMED_SOUND_MISSION_FIN_6 } ,
{ " FIN_10 " , STREAMED_SOUND_MISSION_FIN_10 } , { " FIN_11a " , STREAMED_SOUND_MISSION_FIN_11A } , { " FIN_11b " , STREAMED_SOUND_MISSION_FIN_11B } ,
{ " FIN_12a " , STREAMED_SOUND_MISSION_FIN_12A } , { " FIN_12b " , STREAMED_SOUND_MISSION_FIN_12B } , { " FIN_12c " , STREAMED_SOUND_MISSION_FIN_12C } ,
{ " FIN_13 " , STREAMED_SOUND_MISSION_FIN_13 } , { " BNK1_1 " , STREAMED_SOUND_MISSION_BNK1_1 } , { " BNK1_2 " , STREAMED_SOUND_MISSION_BNK1_2 } ,
{ " BNK1_3 " , STREAMED_SOUND_MISSION_BNK1_3 } , { " BNK1_4 " , STREAMED_SOUND_MISSION_BNK1_4 } , { " BNK1_5 " , STREAMED_SOUND_MISSION_BNK1_5 } ,
{ " BNK1_6 " , STREAMED_SOUND_MISSION_BNK1_6 } , { " BNK1_7 " , STREAMED_SOUND_MISSION_BNK1_7 } , { " BNK1_8 " , STREAMED_SOUND_MISSION_BNK1_8 } ,
{ " BNK1_10 " , STREAMED_SOUND_MISSION_BNK1_10 } , { " BNK1_11 " , STREAMED_SOUND_MISSION_BNK1_11 } , { " BNK1_12 " , STREAMED_SOUND_MISSION_BNK1_12 } ,
{ " BNK1_13 " , STREAMED_SOUND_MISSION_BNK1_13 } , { " BNK1_14 " , STREAMED_SOUND_MISSION_BNK1_14 } , { " BNK2_1 " , STREAMED_SOUND_MISSION_BNK2_1 } ,
{ " BNK2_2 " , STREAMED_SOUND_MISSION_BNK2_2 } , { " BNK2_3 " , STREAMED_SOUND_MISSION_BNK2_3 } , { " BNK2_4 " , STREAMED_SOUND_MISSION_BNK2_4 } ,
{ " BNK2_5 " , STREAMED_SOUND_MISSION_BNK2_5 } , { " BNK2_6 " , STREAMED_SOUND_MISSION_BNK2_6 } , { " BNK2_7 " , STREAMED_SOUND_MISSION_BNK2_7 } ,
{ " BNK2_8 " , STREAMED_SOUND_MISSION_BNK2_8 } , { " BNK2_9 " , STREAMED_SOUND_MISSION_BNK2_9 } , { " BNK3_1 " , STREAMED_SOUND_MISSION_BNK3_1 } ,
{ " BNK3_2 " , STREAMED_SOUND_MISSION_BNK3_2 } , { " BNK3_3a " , STREAMED_SOUND_MISSION_BNK3_3A } , { " BNK3_3b " , STREAMED_SOUND_MISSION_BNK3_3B } ,
{ " BNK3_3c " , STREAMED_SOUND_MISSION_BNK3_3C } , { " BNK3_4a " , STREAMED_SOUND_MISSION_BNK3_4A } , { " BNK3_4b " , STREAMED_SOUND_MISSION_BNK3_4B } ,
{ " BNK3_4c " , STREAMED_SOUND_MISSION_BNK3_4C } , { " BNK4_1 " , STREAMED_SOUND_MISSION_BNK4_1 } , { " BNK4_2 " , STREAMED_SOUND_MISSION_BNK4_2 } ,
{ " BNK4_3A " , STREAMED_SOUND_MISSION_BNK4_3A } , { " BNK4_3B " , STREAMED_SOUND_MISSION_BNK4_3B } , { " BNK4_3C " , STREAMED_SOUND_MISSION_BNK4_3C } ,
{ " BNK4_3D " , STREAMED_SOUND_MISSION_BNK4_3D } , { " BNK4_3E " , STREAMED_SOUND_MISSION_BNK4_3E } , { " BNK4_3F " , STREAMED_SOUND_MISSION_BNK4_3F } ,
{ " BNK4_3G " , STREAMED_SOUND_MISSION_BNK4_3G } , { " BNK4_3H " , STREAMED_SOUND_MISSION_BNK4_3H } , { " BNK4_3I " , STREAMED_SOUND_MISSION_BNK4_3I } ,
{ " BNK4_3J " , STREAMED_SOUND_MISSION_BNK4_3J } , { " BNK4_3K " , STREAMED_SOUND_MISSION_BNK4_3K } , { " BNK4_3M " , STREAMED_SOUND_MISSION_BNK4_3M } ,
{ " BNK4_3O " , STREAMED_SOUND_MISSION_BNK4_3O } , { " BNK4_3P " , STREAMED_SOUND_MISSION_BNK4_3P } , { " BNK4_3Q " , STREAMED_SOUND_MISSION_BNK4_3Q } ,
{ " BNK4_3R " , STREAMED_SOUND_MISSION_BNK4_3R } , { " BNK4_3S " , STREAMED_SOUND_MISSION_BNK4_3S } , { " BNK4_3T " , STREAMED_SOUND_MISSION_BNK4_3T } ,
{ " BNK4_3U " , STREAMED_SOUND_MISSION_BNK4_3U } , { " BNK4_3V " , STREAMED_SOUND_MISSION_BNK4_3V } , { " BNK4_4a " , STREAMED_SOUND_MISSION_BNK4_4A } ,
{ " BNK4_4b " , STREAMED_SOUND_MISSION_BNK4_4B } , { " BNK4_5 " , STREAMED_SOUND_MISSION_BNK4_5 } , { " BNK4_6 " , STREAMED_SOUND_MISSION_BNK4_6 } ,
{ " BNK4_7 " , STREAMED_SOUND_MISSION_BNK4_7 } , { " BNK4_8 " , STREAMED_SOUND_MISSION_BNK4_8 } , { " BNK4_9 " , STREAMED_SOUND_MISSION_BNK4_9 } ,
{ " BNK4_10 " , STREAMED_SOUND_MISSION_BNK4_10 } , { " BNK4_11 " , STREAMED_SOUND_MISSION_BNK4_11 } , { " BK4_12a " , STREAMED_SOUND_MISSION_BK4_12A } ,
{ " BK4_12b " , STREAMED_SOUND_MISSION_BK4_12B } , { " BK4_12c " , STREAMED_SOUND_MISSION_BK4_12C } , { " BNK4_13 " , STREAMED_SOUND_MISSION_BNK4_13 } ,
{ " BK4_14a " , STREAMED_SOUND_MISSION_BK4_14A } , { " BK4_14b " , STREAMED_SOUND_MISSION_BK4_14B } , { " BNK4_15 " , STREAMED_SOUND_MISSION_BNK4_15 } ,
{ " BNK4_16 " , STREAMED_SOUND_MISSION_BNK4_16 } , { " BNK4_17 " , STREAMED_SOUND_MISSION_BNK4_17 } , { " BNK4_18 " , STREAMED_SOUND_MISSION_BNK4_18 } ,
{ " BK4_19a " , STREAMED_SOUND_MISSION_BK4_19A } , { " BK4_19b " , STREAMED_SOUND_MISSION_BK4_19B } , { " BK4_20a " , STREAMED_SOUND_MISSION_BK4_20A } ,
{ " BK4_20b " , STREAMED_SOUND_MISSION_BK4_20B } , { " BNK4_21 " , STREAMED_SOUND_MISSION_BNK4_21 } , { " BNK422a " , STREAMED_SOUND_MISSION_BNK422A } ,
{ " BNK422b " , STREAMED_SOUND_MISSION_BNK422B } , { " BK4_23a " , STREAMED_SOUND_MISSION_BK4_23A } , { " BK4_23b " , STREAMED_SOUND_MISSION_BK4_23B } ,
{ " BK4_23c " , STREAMED_SOUND_MISSION_BK4_23C } , { " BK4_23d " , STREAMED_SOUND_MISSION_BK4_23D } , { " BK4_24a " , STREAMED_SOUND_MISSION_BK4_24A } ,
{ " BK4_24b " , STREAMED_SOUND_MISSION_BK4_24B } , { " BNK4_25 " , STREAMED_SOUND_MISSION_BNK4_25 } , { " BNK4_26 " , STREAMED_SOUND_MISSION_BNK4_26 } ,
{ " BNK4_27 " , STREAMED_SOUND_MISSION_BNK4_27 } , { " BNK4_28 " , STREAMED_SOUND_MISSION_BNK4_28 } , { " BNK4_29 " , STREAMED_SOUND_MISSION_BNK4_29 } ,
{ " BNK4_30 " , STREAMED_SOUND_MISSION_BNK4_30 } , { " BK4_31a " , STREAMED_SOUND_MISSION_BK4_31A } , { " BK4_31b " , STREAMED_SOUND_MISSION_BK4_31B } ,
{ " BNK4_32 " , STREAMED_SOUND_MISSION_BNK4_32 } , { " BK4_34a " , STREAMED_SOUND_MISSION_BK4_34A } , { " BK4_34b " , STREAMED_SOUND_MISSION_BK4_34B } ,
{ " BK4_35a " , STREAMED_SOUND_MISSION_BK4_35A } , { " BK4_35b " , STREAMED_SOUND_MISSION_BK4_35B } , { " BNK4_36 " , STREAMED_SOUND_MISSION_BNK4_36 } ,
{ " BNK4_37 " , STREAMED_SOUND_MISSION_BNK4_37 } , { " BNK4_38 " , STREAMED_SOUND_MISSION_BNK4_38 } , { " BNK_39 " , STREAMED_SOUND_MISSION_BNK4_39 } ,
{ " BK4_40a " , STREAMED_SOUND_MISSION_BK4_40A } , { " BK4_40b " , STREAMED_SOUND_MISSION_BK4_40B } , { " BNK4_41 " , STREAMED_SOUND_MISSION_BNK4_41 } ,
{ " BNK4_42 " , STREAMED_SOUND_MISSION_BNK4_42 } , { " BNK4_43 " , STREAMED_SOUND_MISSION_BNK4_43 } , { " BNK4_44 " , STREAMED_SOUND_MISSION_BNK4_44 } ,
{ " BNK4_45 " , STREAMED_SOUND_MISSION_BNK4_45 } , { " BNK4_46 " , STREAMED_SOUND_MISSION_BNK4_46 } , { " BNK4_47 " , STREAMED_SOUND_MISSION_BNK4_47 } ,
{ " BNK4_48 " , STREAMED_SOUND_MISSION_BNK4_48 } , { " BNK4_49 " , STREAMED_SOUND_MISSION_BNK4_49 } , { " BNK450A " , STREAMED_SOUND_MISSION_BNK450A } ,
{ " BNK450B " , STREAMED_SOUND_MISSION_BNK450B } , { " BNK4_51 " , STREAMED_SOUND_MISSION_BNK4_51 } , { " BNK4_94 " , STREAMED_SOUND_MISSION_BNK4_94 } ,
{ " BNK4_95 " , STREAMED_SOUND_MISSION_BNK4_95 } , { " BNK4_96 " , STREAMED_SOUND_MISSION_BNK4_96 } , { " BNK4_97 " , STREAMED_SOUND_MISSION_BNK4_97 } ,
{ " BNK4_98 " , STREAMED_SOUND_MISSION_BNK4_98 } , { " BNK4_99 " , STREAMED_SOUND_MISSION_BNK4_99 } , { " CNT1_1 " , STREAMED_SOUND_MISSION_CNT1_1 } ,
{ " CNT1_2 " , STREAMED_SOUND_MISSION_CNT1_2 } , { " CNT1_3 " , STREAMED_SOUND_MISSION_CNT1_3 } , { " CNT1_4 " , STREAMED_SOUND_MISSION_CNT1_4 } ,
{ " CNT1_5 " , STREAMED_SOUND_MISSION_CNT1_5 } , { " CNT2_1 " , STREAMED_SOUND_MISSION_CNT2_1 } , { " CNT2_2 " , STREAMED_SOUND_MISSION_CNT2_2 } ,
{ " CNT2_3 " , STREAMED_SOUND_MISSION_CNT2_3 } , { " CNT2_4 " , STREAMED_SOUND_MISSION_CNT2_4 } , { " PORN1_1 " , STREAMED_SOUND_MISSION_PORN1_1 } ,
{ " PORN1_2 " , STREAMED_SOUND_MISSION_PORN1_2 } , { " PORN1_3 " , STREAMED_SOUND_MISSION_PORN1_3 } , { " PRN1_3A " , STREAMED_SOUND_MISSION_PRN1_3A } ,
{ " PORN1_4 " , STREAMED_SOUND_MISSION_PORN1_4 } , { " PORN1_5 " , STREAMED_SOUND_MISSION_PORN1_5 } , { " PORN1_6 " , STREAMED_SOUND_MISSION_PORN1_6 } ,
{ " PORN1_7 " , STREAMED_SOUND_MISSION_PORN1_7 } , { " PORN1_8 " , STREAMED_SOUND_MISSION_PORN1_8 } , { " PORN1_9 " , STREAMED_SOUND_MISSION_PORN1_9 } ,
{ " PRN1_10 " , STREAMED_SOUND_MISSION_PRN1_10 } , { " PRN1_11 " , STREAMED_SOUND_MISSION_PRN1_11 } , { " PRN1_12 " , STREAMED_SOUND_MISSION_PRN1_12 } ,
{ " PRN1_13 " , STREAMED_SOUND_MISSION_PRN1_13 } , { " PRN1_14 " , STREAMED_SOUND_MISSION_PRN1_14 } , { " PRN1_15 " , STREAMED_SOUND_MISSION_PRN1_15 } ,
{ " PRN1_16 " , STREAMED_SOUND_MISSION_PRN1_16 } , { " PRN1_17 " , STREAMED_SOUND_MISSION_PRN1_17 } , { " PRN1_18 " , STREAMED_SOUND_MISSION_PRN1_18 } ,
{ " PRN1_19 " , STREAMED_SOUND_MISSION_PRN1_19 } , { " PRN1_20 " , STREAMED_SOUND_MISSION_PRN1_20 } , { " PRN1_21 " , STREAMED_SOUND_MISSION_PRN1_21 } ,
{ " PORN3_1 " , STREAMED_SOUND_MISSION_PORN3_1 } , { " PORN3_2 " , STREAMED_SOUND_MISSION_PORN3_2 } , { " PORN3_3 " , STREAMED_SOUND_MISSION_PORN3_3 } ,
{ " PORN3_4 " , STREAMED_SOUND_MISSION_PORN3_4 } , { " TAX1_1 " , STREAMED_SOUND_MISSION_TAX1_1 } , { " TAX1_2 " , STREAMED_SOUND_MISSION_TAX1_2 } ,
{ " TAX1_3 " , STREAMED_SOUND_MISSION_TAX1_3 } , { " TAX1_4 " , STREAMED_SOUND_MISSION_TAX1_4 } , { " TAX1_5 " , STREAMED_SOUND_MISSION_TAX1_5 } ,
{ " TAX2_1 " , STREAMED_SOUND_MISSION_TAX2_1 } , { " TAX2_2 " , STREAMED_SOUND_MISSION_TAX2_2 } , { " TAX2_3 " , STREAMED_SOUND_MISSION_TAX2_3 } ,
{ " TAX2_4 " , STREAMED_SOUND_MISSION_TAX2_4 } , { " TAX2_5 " , STREAMED_SOUND_MISSION_TAX2_5 } , { " TAX2_6 " , STREAMED_SOUND_MISSION_TAX2_6 } ,
{ " TAX2_7 " , STREAMED_SOUND_MISSION_TAX2_7 } , { " TAX3_1 " , STREAMED_SOUND_MISSION_TAX3_1 } , { " TAX3_2 " , STREAMED_SOUND_MISSION_TAX3_2 } ,
{ " TAX3_3 " , STREAMED_SOUND_MISSION_TAX3_3 } , { " TAX3_4 " , STREAMED_SOUND_MISSION_TAX3_4 } , { " TAX3_5 " , STREAMED_SOUND_MISSION_TAX3_5 } ,
{ " TEX1_1 " , STREAMED_SOUND_MISSION_TEX1_1 } , { " TEX1_2 " , STREAMED_SOUND_MISSION_TEX1_2 } , { " TEX1_3 " , STREAMED_SOUND_MISSION_TEX1_3 } ,
{ " TEX1_4 " , STREAMED_SOUND_MISSION_TEX1_4 } , { " TEX1_5 " , STREAMED_SOUND_MISSION_TEX1_5 } , { " TEX1_6 " , STREAMED_SOUND_MISSION_TEX1_6 } ,
{ " TEX2_1 " , STREAMED_SOUND_MISSION_TEX2_1 } , { " TEX3_1 " , STREAMED_SOUND_MISSION_TEX3_1 } , { " TEX3_2 " , STREAMED_SOUND_MISSION_TEX3_2 } ,
{ " TEX3_3 " , STREAMED_SOUND_MISSION_TEX3_3 } , { " TEX3_4 " , STREAMED_SOUND_MISSION_TEX3_4 } , { " TEX3_5 " , STREAMED_SOUND_MISSION_TEX3_5 } ,
{ " TEX3_6 " , STREAMED_SOUND_MISSION_TEX3_6 } , { " TEX3_7 " , STREAMED_SOUND_MISSION_TEX3_7 } , { " TEX3_8 " , STREAMED_SOUND_MISSION_TEX3_8 } ,
{ " PHIL1_2 " , STREAMED_SOUND_MISSION_PHIL1_2 } , { " PHIL1_3 " , STREAMED_SOUND_MISSION_PHIL1_3 } , { " PHIL2_1 " , STREAMED_SOUND_MISSION_PHIL2_1 } ,
{ " PHIL2_2 " , STREAMED_SOUND_MISSION_PHIL2_2 } , { " PHIL2_3 " , STREAMED_SOUND_MISSION_PHIL2_3 } , { " PHIL2_4 " , STREAMED_SOUND_MISSION_PHIL2_4 } ,
{ " PHIL2_5 " , STREAMED_SOUND_MISSION_PHIL2_5 } , { " PHIL2_6 " , STREAMED_SOUND_MISSION_PHIL2_6 } , { " PHIL2_7 " , STREAMED_SOUND_MISSION_PHIL2_7 } ,
{ " PHIL2_8 " , STREAMED_SOUND_MISSION_PHIL2_8 } , { " PHIL2_9 " , STREAMED_SOUND_MISSION_PHIL2_9 } , { " PHIL210 " , STREAMED_SOUND_MISSION_PHIL210 } ,
{ " PHIL211 " , STREAMED_SOUND_MISSION_PHIL211 } , { " BIKE1_1 " , STREAMED_SOUND_MISSION_BIKE1_1 } , { " BIKE1_2 " , STREAMED_SOUND_MISSION_BIKE1_2 } ,
{ " BIKE1_3 " , STREAMED_SOUND_MISSION_BIKE1_3 } , { " ROK1_1a " , STREAMED_SOUND_MISSION_ROK1_1A } , { " ROK1_1b " , STREAMED_SOUND_MISSION_ROK1_1B } ,
{ " ROK1_5 " , STREAMED_SOUND_MISSION_ROK1_5 } , { " ROK1_6 " , STREAMED_SOUND_MISSION_ROK1_6 } , { " ROK1_7 " , STREAMED_SOUND_MISSION_ROK1_7 } ,
{ " ROK1_8 " , STREAMED_SOUND_MISSION_ROK1_8 } , { " ROK1_9 " , STREAMED_SOUND_MISSION_ROK1_9 } , { " PSYCH_1 " , STREAMED_SOUND_MISSION_PSYCH_1 } ,
{ " PSYCH_2 " , STREAMED_SOUND_MISSION_PSYCH_2 } , { " ROK2_01 " , STREAMED_SOUND_MISSION_ROK2_01 } , { " ROK3_1 " , STREAMED_SOUND_MISSION_ROK3_1 } ,
{ " ROK3_2 " , STREAMED_SOUND_MISSION_ROK3_2 } , { " ROK3_3 " , STREAMED_SOUND_MISSION_ROK3_3 } , { " ROK3_4 " , STREAMED_SOUND_MISSION_ROK3_4 } ,
{ " ROK3_5 " , STREAMED_SOUND_MISSION_ROK3_5 } , { " ROK3_6 " , STREAMED_SOUND_MISSION_ROK3_6 } , { " ROK3_7 " , STREAMED_SOUND_MISSION_ROK3_7 } ,
{ " ROK3_8 " , STREAMED_SOUND_MISSION_ROK3_8 } , { " ROK3_9 " , STREAMED_SOUND_MISSION_ROK3_9 } , { " ROK3_10 " , STREAMED_SOUND_MISSION_ROK3_10 } ,
{ " ROK3_11 " , STREAMED_SOUND_MISSION_ROK3_11 } , { " ROK3_12 " , STREAMED_SOUND_MISSION_ROK3_12 } , { " ROK3_13 " , STREAMED_SOUND_MISSION_ROK3_13 } ,
{ " ROK3_14 " , STREAMED_SOUND_MISSION_ROK3_14 } , { " ROK3_15 " , STREAMED_SOUND_MISSION_ROK3_15 } , { " ROK3_16 " , STREAMED_SOUND_MISSION_ROK3_16 } ,
{ " ROK3_17 " , STREAMED_SOUND_MISSION_ROK3_17 } , { " ROK3_18 " , STREAMED_SOUND_MISSION_ROK3_18 } , { " ROK3_19 " , STREAMED_SOUND_MISSION_ROK3_19 } ,
{ " ROK3_20 " , STREAMED_SOUND_MISSION_ROK3_20 } , { " ROK3_21 " , STREAMED_SOUND_MISSION_ROK3_21 } , { " ROK3_22 " , STREAMED_SOUND_MISSION_ROK3_22 } ,
{ " ROK3_23 " , STREAMED_SOUND_MISSION_ROK3_23 } , { " ROK3_24 " , STREAMED_SOUND_MISSION_ROK3_24 } , { " ROK3_25 " , STREAMED_SOUND_MISSION_ROK3_25 } ,
{ " ROK3_26 " , STREAMED_SOUND_MISSION_ROK3_26 } , { " ROK3_27 " , STREAMED_SOUND_MISSION_ROK3_27 } , { " ROK3_62 " , STREAMED_SOUND_MISSION_ROK3_62 } ,
{ " ROK3_63 " , STREAMED_SOUND_MISSION_ROK3_63 } , { " ROK3_64 " , STREAMED_SOUND_MISSION_ROK3_64 } , { " ROK3_65 " , STREAMED_SOUND_MISSION_ROK3_65 } ,
{ " ROK3_66 " , STREAMED_SOUND_MISSION_ROK3_66 } , { " ROK3_67 " , STREAMED_SOUND_MISSION_ROK3_67 } , { " ROK3_68 " , STREAMED_SOUND_MISSION_ROK3_68 } ,
{ " ROK3_69 " , STREAMED_SOUND_MISSION_ROK3_69 } , { " ROK3_70 " , STREAMED_SOUND_MISSION_ROK3_70 } , { " ROK3_71 " , STREAMED_SOUND_MISSION_ROK3_71 } ,
{ " ROK3_73 " , STREAMED_SOUND_MISSION_ROK3_73 } , { " HAT_1a " , STREAMED_SOUND_MISSION_HAT_1A } , { " intro1 " , STREAMED_SOUND_MISSION_INTRO1 } ,
{ " intro2 " , STREAMED_SOUND_MISSION_INTRO2 } , { " intro3 " , STREAMED_SOUND_MISSION_INTRO3 } , { " intro4 " , STREAMED_SOUND_MISSION_INTRO4 } ,
{ " CUB1_1 " , STREAMED_SOUND_MISSION_CUB1_1 } , { " CUB1_2 " , STREAMED_SOUND_MISSION_CUB1_2 } , { " CUB1_3 " , STREAMED_SOUND_MISSION_CUB1_3 } ,
{ " CUB1_4 " , STREAMED_SOUND_MISSION_CUB1_4 } , { " CUB1_5 " , STREAMED_SOUND_MISSION_CUB1_5 } , { " CUB1_6 " , STREAMED_SOUND_MISSION_CUB1_6 } ,
{ " CUB1_7 " , STREAMED_SOUND_MISSION_CUB1_7 } , { " CUB1_8 " , STREAMED_SOUND_MISSION_CUB1_8 } , { " CUB1_9 " , STREAMED_SOUND_MISSION_CUB1_9 } ,
{ " CUB1_10 " , STREAMED_SOUND_MISSION_CUB1_10 } , { " CUB2_1 " , STREAMED_SOUND_MISSION_CUB2_1 } , { " CUB2_2 " , STREAMED_SOUND_MISSION_CUB2_2 } ,
{ " CUB2_3a " , STREAMED_SOUND_MISSION_CUB2_3A } , { " CUB2_3b " , STREAMED_SOUND_MISSION_CUB2_3B } , { " CUB2_3c " , STREAMED_SOUND_MISSION_CUB2_3C } ,
{ " CUB2_4a " , STREAMED_SOUND_MISSION_CUB2_4A } , { " CUB2_5 " , STREAMED_SOUND_MISSION_CUB2_5 } , { " CUB2_6 " , STREAMED_SOUND_MISSION_CUB2_6 } ,
{ " CUB2_7 " , STREAMED_SOUND_MISSION_CUB2_7 } , { " CUB2_8 " , STREAMED_SOUND_MISSION_CUB2_8 } , { " CUB2_9 " , STREAMED_SOUND_MISSION_CUB2_9 } ,
{ " CUB2_10 " , STREAMED_SOUND_MISSION_CUB2_10 } , { " CUB2_11 " , STREAMED_SOUND_MISSION_CUB2_11 } , { " CUB3_1 " , STREAMED_SOUND_MISSION_CUB3_1 } ,
{ " CUB3_2 " , STREAMED_SOUND_MISSION_CUB3_2 } , { " CUB3_3 " , STREAMED_SOUND_MISSION_CUB3_3 } , { " CUB3_4 " , STREAMED_SOUND_MISSION_CUB3_4 } ,
{ " CUB4_1 " , STREAMED_SOUND_MISSION_CUB4_1 } , { " CUB4_2 " , STREAMED_SOUND_MISSION_CUB4_2 } , { " CUB4_3 " , STREAMED_SOUND_MISSION_CUB4_3 } ,
{ " CUB4_4 " , STREAMED_SOUND_MISSION_CUB4_4 } , { " CUB4_5 " , STREAMED_SOUND_MISSION_CUB4_5 } , { " CUB4_5A " , STREAMED_SOUND_MISSION_CUB4_5A } ,
{ " CUB4_6 " , STREAMED_SOUND_MISSION_CUB4_6 } , { " CUB4_7 " , STREAMED_SOUND_MISSION_CUB4_7 } , { " CUB4_8 " , STREAMED_SOUND_MISSION_CUB4_8 } ,
{ " CUB4_9 " , STREAMED_SOUND_MISSION_CUB4_9 } , { " CUB4_10 " , STREAMED_SOUND_MISSION_CUB4_10 } , { " CUB4_11 " , STREAMED_SOUND_MISSION_CUB4_11 } ,
{ " CUB4_12 " , STREAMED_SOUND_MISSION_CUB4_12 } , { " CUB4_13 " , STREAMED_SOUND_MISSION_CUB4_13 } , { " CUB4_14 " , STREAMED_SOUND_MISSION_CUB4_14 } ,
{ " CUB4_15 " , STREAMED_SOUND_MISSION_CUB4_15 } , { " CUB4_16 " , STREAMED_SOUND_MISSION_CUB4_16 } , { " golf_1 " , STREAMED_SOUND_MISSION_GOLF_1 } ,
{ " golf_2 " , STREAMED_SOUND_MISSION_GOLF_2 } , { " golf_3 " , STREAMED_SOUND_MISSION_GOLF_3 } , { " bar_1 " , STREAMED_SOUND_MISSION_BAR_1 } ,
{ " bar_2 " , STREAMED_SOUND_MISSION_BAR_2 } , { " bar_3 " , STREAMED_SOUND_MISSION_BAR_3 } , { " bar_4 " , STREAMED_SOUND_MISSION_BAR_4 } ,
{ " bar_5 " , STREAMED_SOUND_MISSION_BAR_5 } , { " bar_6 " , STREAMED_SOUND_MISSION_BAR_6 } , { " bar_7 " , STREAMED_SOUND_MISSION_BAR_7 } ,
{ " bar_8 " , STREAMED_SOUND_MISSION_BAR_8 } , { " strip_1 " , STREAMED_SOUND_MISSION_STRIP_1 } , { " strip_2 " , STREAMED_SOUND_MISSION_STRIP_2 } ,
{ " strip_3 " , STREAMED_SOUND_MISSION_STRIP_3 } , { " strip_4 " , STREAMED_SOUND_MISSION_STRIP_4 } , { " strip_5 " , STREAMED_SOUND_MISSION_STRIP_5 } ,
{ " strip_6 " , STREAMED_SOUND_MISSION_STRIP_6 } , { " strip_7 " , STREAMED_SOUND_MISSION_STRIP_7 } , { " strip_8 " , STREAMED_SOUND_MISSION_STRIP_8 } ,
{ " strip_9 " , STREAMED_SOUND_MISSION_STRIP_9 } , { " star_1 " , STREAMED_SOUND_MISSION_STAR_1 } , { " star_2 " , STREAMED_SOUND_MISSION_STAR_2 } ,
{ " star_3 " , STREAMED_SOUND_MISSION_STAR_3 } , { " star_4 " , STREAMED_SOUND_MISSION_STAR_4 } , { " mob_01a " , STREAMED_SOUND_MISSION_MOB_01A } ,
{ " mob_01b " , STREAMED_SOUND_MISSION_MOB_01B } , { " mob_01c " , STREAMED_SOUND_MISSION_MOB_01C } , { " mob_02a " , STREAMED_SOUND_MISSION_MOB_02A } ,
{ " mob_02b " , STREAMED_SOUND_MISSION_MOB_02B } , { " mob_02c " , STREAMED_SOUND_MISSION_MOB_02C } , { " mob_03a " , STREAMED_SOUND_MISSION_MOB_03A } ,
{ " mob_03b " , STREAMED_SOUND_MISSION_MOB_03B } , { " mob_03c " , STREAMED_SOUND_MISSION_MOB_03C } , { " mob_03d " , STREAMED_SOUND_MISSION_MOB_03D } ,
{ " mob_03e " , STREAMED_SOUND_MISSION_MOB_03E } , { " shark_1 " , STREAMED_SOUND_MISSION_SHARK_1 } , { " shark_2 " , STREAMED_SOUND_MISSION_SHARK_2 } ,
{ " shark_3 " , STREAMED_SOUND_MISSION_SHARK_3 } , { " shark_4 " , STREAMED_SOUND_MISSION_SHARK_4 } , { " shark_5 " , STREAMED_SOUND_MISSION_SHARK_5 } ,
{ " mob_04a " , STREAMED_SOUND_MISSION_MOB_04A } , { " mob_04b " , STREAMED_SOUND_MISSION_MOB_04B } , { " mob_04c " , STREAMED_SOUND_MISSION_MOB_04C } ,
{ " mob_04d " , STREAMED_SOUND_MISSION_MOB_04D } , { " mob_05a " , STREAMED_SOUND_MISSION_MOB_05A } , { " mob_05b " , STREAMED_SOUND_MISSION_MOB_05B } ,
{ " mob_05c " , STREAMED_SOUND_MISSION_MOB_05C } , { " mob_05d " , STREAMED_SOUND_MISSION_MOB_05D } , { " mob_06a " , STREAMED_SOUND_MISSION_MOB_06A } ,
{ " mob_06b " , STREAMED_SOUND_MISSION_MOB_06B } , { " mob_06c " , STREAMED_SOUND_MISSION_MOB_06C } , { " mob_07a " , STREAMED_SOUND_MISSION_MOB_07A } ,
{ " mob_07b " , STREAMED_SOUND_MISSION_MOB_07B } , { " mob_08a " , STREAMED_SOUND_MISSION_MOB_08A } , { " mob_08b " , STREAMED_SOUND_MISSION_MOB_08B } ,
{ " mob_08c " , STREAMED_SOUND_MISSION_MOB_08C } , { " mob_08d " , STREAMED_SOUND_MISSION_MOB_08D } , { " mob_08e " , STREAMED_SOUND_MISSION_MOB_08E } ,
{ " mob_08f " , STREAMED_SOUND_MISSION_MOB_08F } , { " mob_08g " , STREAMED_SOUND_MISSION_MOB_08G } , { " mob_09a " , STREAMED_SOUND_MISSION_MOB_09A } ,
{ " mob_09b " , STREAMED_SOUND_MISSION_MOB_09B } , { " mob_09c " , STREAMED_SOUND_MISSION_MOB_09C } , { " mob_09d " , STREAMED_SOUND_MISSION_MOB_09D } ,
{ " mob_09e " , STREAMED_SOUND_MISSION_MOB_09E } , { " mob_09f " , STREAMED_SOUND_MISSION_MOB_09F } , { " mob_10a " , STREAMED_SOUND_MISSION_MOB_10A } ,
{ " mob_10b " , STREAMED_SOUND_MISSION_MOB_10B } , { " mob_10c " , STREAMED_SOUND_MISSION_MOB_10C } , { " mob_10d " , STREAMED_SOUND_MISSION_MOB_10D } ,
{ " mob_10e " , STREAMED_SOUND_MISSION_MOB_10E } , { " mob_11a " , STREAMED_SOUND_MISSION_MOB_11A } , { " mob_11b " , STREAMED_SOUND_MISSION_MOB_11B } ,
{ " mob_11c " , STREAMED_SOUND_MISSION_MOB_11C } , { " mob_11d " , STREAMED_SOUND_MISSION_MOB_11D } , { " mob_11e " , STREAMED_SOUND_MISSION_MOB_11E } ,
{ " mob_11f " , STREAMED_SOUND_MISSION_MOB_11F } , { " mob_14a " , STREAMED_SOUND_MISSION_MOB_14A } , { " mob_14b " , STREAMED_SOUND_MISSION_MOB_14B } ,
{ " mob_14c " , STREAMED_SOUND_MISSION_MOB_14C } , { " mob_14d " , STREAMED_SOUND_MISSION_MOB_14D } , { " mob_14e " , STREAMED_SOUND_MISSION_MOB_14E } ,
{ " mob_14f " , STREAMED_SOUND_MISSION_MOB_14F } , { " mob_14g " , STREAMED_SOUND_MISSION_MOB_14G } , { " mob_14h " , STREAMED_SOUND_MISSION_MOB_14H } ,
{ " mob_16a " , STREAMED_SOUND_MISSION_MOB_16A } , { " mob_16b " , STREAMED_SOUND_MISSION_MOB_16B } , { " mob_16c " , STREAMED_SOUND_MISSION_MOB_16C } ,
{ " mob_16d " , STREAMED_SOUND_MISSION_MOB_16D } , { " mob_16e " , STREAMED_SOUND_MISSION_MOB_16E } , { " mob_16f " , STREAMED_SOUND_MISSION_MOB_16F } ,
{ " mob_16g " , STREAMED_SOUND_MISSION_MOB_16G } , { " mob_17a " , STREAMED_SOUND_MISSION_MOB_17A } , { " mob_17b " , STREAMED_SOUND_MISSION_MOB_17B } ,
{ " mob_17c " , STREAMED_SOUND_MISSION_MOB_17C } , { " mob_17d " , STREAMED_SOUND_MISSION_MOB_17D } , { " mob_17e " , STREAMED_SOUND_MISSION_MOB_17E } ,
{ " mob_17g " , STREAMED_SOUND_MISSION_MOB_17G } , { " mob_17h " , STREAMED_SOUND_MISSION_MOB_17H } , { " mob_17i " , STREAMED_SOUND_MISSION_MOB_17I } ,
{ " mob_17j " , STREAMED_SOUND_MISSION_MOB_17J } , { " mob_17k " , STREAMED_SOUND_MISSION_MOB_17K } , { " mob_17l " , STREAMED_SOUND_MISSION_MOB_17L } ,
{ " mob_18a " , STREAMED_SOUND_MISSION_MOB_18A } , { " mob_18b " , STREAMED_SOUND_MISSION_MOB_18B } , { " mob_18c " , STREAMED_SOUND_MISSION_MOB_18C } ,
{ " mob_18d " , STREAMED_SOUND_MISSION_MOB_18D } , { " mob_18e " , STREAMED_SOUND_MISSION_MOB_18E } , { " mob_18f " , STREAMED_SOUND_MISSION_MOB_18F } ,
{ " mob_18g " , STREAMED_SOUND_MISSION_MOB_18G } , { " mob_20a " , STREAMED_SOUND_MISSION_MOB_20A } , { " mob_20b " , STREAMED_SOUND_MISSION_MOB_20B } ,
{ " mob_20c " , STREAMED_SOUND_MISSION_MOB_20C } , { " mob_20d " , STREAMED_SOUND_MISSION_MOB_20D } , { " mob_20e " , STREAMED_SOUND_MISSION_MOB_20E } ,
{ " mob_24a " , STREAMED_SOUND_MISSION_MOB_24A } , { " mob_24b " , STREAMED_SOUND_MISSION_MOB_24B } , { " mob_24c " , STREAMED_SOUND_MISSION_MOB_24C } ,
{ " mob_24d " , STREAMED_SOUND_MISSION_MOB_24D } , { " mob_24e " , STREAMED_SOUND_MISSION_MOB_24E } , { " mob_24f " , STREAMED_SOUND_MISSION_MOB_24F } ,
{ " mob_24g " , STREAMED_SOUND_MISSION_MOB_24G } , { " mob_24h " , STREAMED_SOUND_MISSION_MOB_24H } , { " mob_25a " , STREAMED_SOUND_MISSION_MOB_25A } ,
{ " mob_25b " , STREAMED_SOUND_MISSION_MOB_25B } , { " mob_25c " , STREAMED_SOUND_MISSION_MOB_25C } , { " mob_25d " , STREAMED_SOUND_MISSION_MOB_25D } ,
{ " mob_26a " , STREAMED_SOUND_MISSION_MOB_26A } , { " mob_26b " , STREAMED_SOUND_MISSION_MOB_26B } , { " mob_26c " , STREAMED_SOUND_MISSION_MOB_26C } ,
{ " mob_26d " , STREAMED_SOUND_MISSION_MOB_26D } , { " mob_26e " , STREAMED_SOUND_MISSION_MOB_26E } , { " mob_29a " , STREAMED_SOUND_MISSION_MOB_29A } ,
{ " mob_29b " , STREAMED_SOUND_MISSION_MOB_29B } , { " mob_29c " , STREAMED_SOUND_MISSION_MOB_29C } , { " mob_29d " , STREAMED_SOUND_MISSION_MOB_29D } ,
{ " mob_29e " , STREAMED_SOUND_MISSION_MOB_29E } , { " mob_29f " , STREAMED_SOUND_MISSION_MOB_29F } , { " mob_29g " , STREAMED_SOUND_MISSION_MOB_29G } ,
{ " mob_30a " , STREAMED_SOUND_MISSION_MOB_30A } , { " mob_30b " , STREAMED_SOUND_MISSION_MOB_30B } , { " mob_30c " , STREAMED_SOUND_MISSION_MOB_30C } ,
{ " mob_30d " , STREAMED_SOUND_MISSION_MOB_30D } , { " mob_30e " , STREAMED_SOUND_MISSION_MOB_30E } , { " mob_30f " , STREAMED_SOUND_MISSION_MOB_30F } ,
{ " mob_33a " , STREAMED_SOUND_MISSION_MOB_33A } , { " mob_33b " , STREAMED_SOUND_MISSION_MOB_33B } , { " mob_33c " , STREAMED_SOUND_MISSION_MOB_33C } ,
{ " mob_33d " , STREAMED_SOUND_MISSION_MOB_33D } , { " mob_34a " , STREAMED_SOUND_MISSION_MOB_34A } , { " mob_34b " , STREAMED_SOUND_MISSION_MOB_34B } ,
{ " mob_34c " , STREAMED_SOUND_MISSION_MOB_34C } , { " mob_34d " , STREAMED_SOUND_MISSION_MOB_34D } , { " mob_35a " , STREAMED_SOUND_MISSION_MOB_35A } ,
{ " mob_35b " , STREAMED_SOUND_MISSION_MOB_35B } , { " mob_35c " , STREAMED_SOUND_MISSION_MOB_35C } , { " mob_35d " , STREAMED_SOUND_MISSION_MOB_35D } ,
{ " mob_36a " , STREAMED_SOUND_MISSION_MOB_36A } , { " mob_36b " , STREAMED_SOUND_MISSION_MOB_36B } , { " mob_36c " , STREAMED_SOUND_MISSION_MOB_36C } ,
{ " mob_40a " , STREAMED_SOUND_MISSION_MOB_40A } , { " mob_40b " , STREAMED_SOUND_MISSION_MOB_40B } , { " mob_40c " , STREAMED_SOUND_MISSION_MOB_40C } ,
{ " mob_40d " , STREAMED_SOUND_MISSION_MOB_40D } , { " mob_40e " , STREAMED_SOUND_MISSION_MOB_40E } , { " mob_40f " , STREAMED_SOUND_MISSION_MOB_40F } ,
{ " mob_40g " , STREAMED_SOUND_MISSION_MOB_40G } , { " mob_40h " , STREAMED_SOUND_MISSION_MOB_40H } , { " mob_40i " , STREAMED_SOUND_MISSION_MOB_40I } ,
{ " mob_41a " , STREAMED_SOUND_MISSION_MOB_41A } , { " mob_41b " , STREAMED_SOUND_MISSION_MOB_41B } , { " mob_41c " , STREAMED_SOUND_MISSION_MOB_41C } ,
{ " mob_41d " , STREAMED_SOUND_MISSION_MOB_41D } , { " mob_41e " , STREAMED_SOUND_MISSION_MOB_41E } , { " mob_41f " , STREAMED_SOUND_MISSION_MOB_41F } ,
{ " mob_41g " , STREAMED_SOUND_MISSION_MOB_41G } , { " mob_41h " , STREAMED_SOUND_MISSION_MOB_41H } , { " mob_42a " , STREAMED_SOUND_MISSION_MOB_42A } ,
{ " mob_42b " , STREAMED_SOUND_MISSION_MOB_42B } , { " mob_42c " , STREAMED_SOUND_MISSION_MOB_42C } , { " mob_42d " , STREAMED_SOUND_MISSION_MOB_42D } ,
{ " mob_42e " , STREAMED_SOUND_MISSION_MOB_42E } , { " mob_43a " , STREAMED_SOUND_MISSION_MOB_43A } , { " mob_43b " , STREAMED_SOUND_MISSION_MOB_43B } ,
{ " mob_43c " , STREAMED_SOUND_MISSION_MOB_43C } , { " mob_43d " , STREAMED_SOUND_MISSION_MOB_43D } , { " mob_43e " , STREAMED_SOUND_MISSION_MOB_43E } ,
{ " mob_43f " , STREAMED_SOUND_MISSION_MOB_43F } , { " mob_43g " , STREAMED_SOUND_MISSION_MOB_43G } , { " mob_43h " , STREAMED_SOUND_MISSION_MOB_43H } ,
{ " mob_45a " , STREAMED_SOUND_MISSION_MOB_45A } , { " mob_45b " , STREAMED_SOUND_MISSION_MOB_45B } , { " mob_45c " , STREAMED_SOUND_MISSION_MOB_45C } ,
{ " mob_45d " , STREAMED_SOUND_MISSION_MOB_45D } , { " mob_45e " , STREAMED_SOUND_MISSION_MOB_45E } , { " mob_45f " , STREAMED_SOUND_MISSION_MOB_45F } ,
{ " mob_45g " , STREAMED_SOUND_MISSION_MOB_45G } , { " mob_45h " , STREAMED_SOUND_MISSION_MOB_45H } , { " mob_45i " , STREAMED_SOUND_MISSION_MOB_45I } ,
{ " mob_45j " , STREAMED_SOUND_MISSION_MOB_45J } , { " mob_45k " , STREAMED_SOUND_MISSION_MOB_45K } , { " mob_45l " , STREAMED_SOUND_MISSION_MOB_45L } ,
{ " mob_45m " , STREAMED_SOUND_MISSION_MOB_45M } , { " mob_45n " , STREAMED_SOUND_MISSION_MOB_45N } , { " mob_46a " , STREAMED_SOUND_MISSION_MOB_46A } ,
{ " mob_46b " , STREAMED_SOUND_MISSION_MOB_46B } , { " mob_46c " , STREAMED_SOUND_MISSION_MOB_46C } , { " mob_46d " , STREAMED_SOUND_MISSION_MOB_46D } ,
{ " mob_46e " , STREAMED_SOUND_MISSION_MOB_46E } , { " mob_46f " , STREAMED_SOUND_MISSION_MOB_46F } , { " mob_46g " , STREAMED_SOUND_MISSION_MOB_46G } ,
{ " mob_46h " , STREAMED_SOUND_MISSION_MOB_46H } , { " mob_47a " , STREAMED_SOUND_MISSION_MOB_47A } , { " mob_52a " , STREAMED_SOUND_MISSION_MOB_52A } ,
{ " mob_52b " , STREAMED_SOUND_MISSION_MOB_52B } , { " mob_52c " , STREAMED_SOUND_MISSION_MOB_52C } , { " mob_52d " , STREAMED_SOUND_MISSION_MOB_52D } ,
{ " mob_52e " , STREAMED_SOUND_MISSION_MOB_52E } , { " mob_52f " , STREAMED_SOUND_MISSION_MOB_52F } , { " mob_52g " , STREAMED_SOUND_MISSION_MOB_52G } ,
{ " mob_52h " , STREAMED_SOUND_MISSION_MOB_52H } , { " mob_54a " , STREAMED_SOUND_MISSION_MOB_54A } , { " mob_54b " , STREAMED_SOUND_MISSION_MOB_54B } ,
{ " mob_54c " , STREAMED_SOUND_MISSION_MOB_54C } , { " mob_54d " , STREAMED_SOUND_MISSION_MOB_54D } , { " mob_54e " , STREAMED_SOUND_MISSION_MOB_54E } ,
{ " mob_55a " , STREAMED_SOUND_MISSION_MOB_55A } , { " mob_55b " , STREAMED_SOUND_MISSION_MOB_55B } , { " mob_55c " , STREAMED_SOUND_MISSION_MOB_55C } ,
{ " mob_55d " , STREAMED_SOUND_MISSION_MOB_55D } , { " mob_55e " , STREAMED_SOUND_MISSION_MOB_55E } , { " mob_55f " , STREAMED_SOUND_MISSION_MOB_55F } ,
{ " mob_56a " , STREAMED_SOUND_MISSION_MOB_56A } , { " mob_56b " , STREAMED_SOUND_MISSION_MOB_56B } , { " mob_56c " , STREAMED_SOUND_MISSION_MOB_56C } ,
{ " mob_56d " , STREAMED_SOUND_MISSION_MOB_56D } , { " mob_56e " , STREAMED_SOUND_MISSION_MOB_56E } , { " mob_56f " , STREAMED_SOUND_MISSION_MOB_56F } ,
{ " mob_57a " , STREAMED_SOUND_MISSION_MOB_57A } , { " mob_57b " , STREAMED_SOUND_MISSION_MOB_57B } , { " mob_57c " , STREAMED_SOUND_MISSION_MOB_57C } ,
{ " mob_57d " , STREAMED_SOUND_MISSION_MOB_57D } , { " mob_57e " , STREAMED_SOUND_MISSION_MOB_57E } , { " mob_58a " , STREAMED_SOUND_MISSION_MOB_58A } ,
{ " mob_58b " , STREAMED_SOUND_MISSION_MOB_58B } , { " mob_58c " , STREAMED_SOUND_MISSION_MOB_58C } , { " mob_58d " , STREAMED_SOUND_MISSION_MOB_58D } ,
{ " mob_58e " , STREAMED_SOUND_MISSION_MOB_58E } , { " mob_58f " , STREAMED_SOUND_MISSION_MOB_58F } , { " mob_58g " , STREAMED_SOUND_MISSION_MOB_58G } ,
{ " mob_61a " , STREAMED_SOUND_MISSION_MOB_61A } , { " mob_61b " , STREAMED_SOUND_MISSION_MOB_61B } , { " mob_62a " , STREAMED_SOUND_MISSION_MOB_62A } ,
{ " mob_62b " , STREAMED_SOUND_MISSION_MOB_62B } , { " mob_62c " , STREAMED_SOUND_MISSION_MOB_62C } , { " mob_62d " , STREAMED_SOUND_MISSION_MOB_62D } ,
{ " mob_63a " , STREAMED_SOUND_MISSION_MOB_63A } , { " mob_63b " , STREAMED_SOUND_MISSION_MOB_63B } , { " mob_63c " , STREAMED_SOUND_MISSION_MOB_63C } ,
{ " mob_63d " , STREAMED_SOUND_MISSION_MOB_63D } , { " mob_63e " , STREAMED_SOUND_MISSION_MOB_63E } , { " mob_63f " , STREAMED_SOUND_MISSION_MOB_63F } ,
{ " mob_63g " , STREAMED_SOUND_MISSION_MOB_63G } , { " mob_63h " , STREAMED_SOUND_MISSION_MOB_63H } , { " mob_63i " , STREAMED_SOUND_MISSION_MOB_63I } ,
{ " mob_63j " , STREAMED_SOUND_MISSION_MOB_63J } , { " mob_66a " , STREAMED_SOUND_MISSION_MOB_66A } , { " mob_66b " , STREAMED_SOUND_MISSION_MOB_66B } ,
{ " mob_68a " , STREAMED_SOUND_MISSION_MOB_68A } , { " mob_68b " , STREAMED_SOUND_MISSION_MOB_68B } , { " mob_68c " , STREAMED_SOUND_MISSION_MOB_68C } ,
{ " mob_68d " , STREAMED_SOUND_MISSION_MOB_68D } , { " mob_70a " , STREAMED_SOUND_MISSION_MOB_70A } , { " mob_70b " , STREAMED_SOUND_MISSION_MOB_70B } ,
{ " mob_71a " , STREAMED_SOUND_MISSION_MOB_71A } , { " mob_71b " , STREAMED_SOUND_MISSION_MOB_71B } , { " mob_71c " , STREAMED_SOUND_MISSION_MOB_71C } ,
{ " mob_71d " , STREAMED_SOUND_MISSION_MOB_71D } , { " mob_71e " , STREAMED_SOUND_MISSION_MOB_71E } , { " mob_71f " , STREAMED_SOUND_MISSION_MOB_71F } ,
{ " mob_71g " , STREAMED_SOUND_MISSION_MOB_71G } , { " mob_71h " , STREAMED_SOUND_MISSION_MOB_71H } , { " mob_71i " , STREAMED_SOUND_MISSION_MOB_71I } ,
{ " mob_71j " , STREAMED_SOUND_MISSION_MOB_71J } , { " mob_71k " , STREAMED_SOUND_MISSION_MOB_71K } , { " mob_71l " , STREAMED_SOUND_MISSION_MOB_71L } ,
{ " mob_71m " , STREAMED_SOUND_MISSION_MOB_71M } , { " mob_71n " , STREAMED_SOUND_MISSION_MOB_71N } , { " mob_72a " , STREAMED_SOUND_MISSION_MOB_72A } ,
{ " mob_72b " , STREAMED_SOUND_MISSION_MOB_72B } , { " mob_72c " , STREAMED_SOUND_MISSION_MOB_72C } , { " mob_72d " , STREAMED_SOUND_MISSION_MOB_72D } ,
{ " mob_72e " , STREAMED_SOUND_MISSION_MOB_72E } , { " mob_72f " , STREAMED_SOUND_MISSION_MOB_72F } , { " mob_72g " , STREAMED_SOUND_MISSION_MOB_72G } ,
{ " mob_73a " , STREAMED_SOUND_MISSION_MOB_73A } , { " mob_73c " , STREAMED_SOUND_MISSION_MOB_73C } , { " mob_73d " , STREAMED_SOUND_MISSION_MOB_73D } ,
{ " mob_73f " , STREAMED_SOUND_MISSION_MOB_73F } , { " mob_73g " , STREAMED_SOUND_MISSION_MOB_73G } , { " mob_73i " , STREAMED_SOUND_MISSION_MOB_73I } ,
{ " mob_95a " , STREAMED_SOUND_MISSION_MOB_95A } , { " mob_96a " , STREAMED_SOUND_MISSION_MOB_96A } , { " mob_98a " , STREAMED_SOUND_MISSION_MOB_98A } ,
{ " mob_99a " , STREAMED_SOUND_MISSION_MOB_99A } , { " job1_1b " , STREAMED_SOUND_MISSION_JOB1_1B } , { " job1_1c " , STREAMED_SOUND_MISSION_JOB1_1C } ,
{ " job1_1d " , STREAMED_SOUND_MISSION_JOB1_1D } , { " job2_1b " , STREAMED_SOUND_MISSION_JOB2_1B } , { " job2_2 " , STREAMED_SOUND_MISSION_JOB2_2 } ,
{ " job2_3 " , STREAMED_SOUND_MISSION_JOB2_3 } , { " job2_4 " , STREAMED_SOUND_MISSION_JOB2_4 } , { " job2_5 " , STREAMED_SOUND_MISSION_JOB2_5 } ,
{ " job2_6 " , STREAMED_SOUND_MISSION_JOB2_6 } , { " job2_7 " , STREAMED_SOUND_MISSION_JOB2_7 } , { " job2_8 " , STREAMED_SOUND_MISSION_JOB2_8 } ,
{ " job2_9 " , STREAMED_SOUND_MISSION_JOB2_9 } , { " job3_1 " , STREAMED_SOUND_MISSION_JOB3_1 } , { " job3_2 " , STREAMED_SOUND_MISSION_JOB3_2 } ,
{ " job3_3 " , STREAMED_SOUND_MISSION_JOB3_3 } , { " job4_1 " , STREAMED_SOUND_MISSION_JOB4_1 } , { " job4_2 " , STREAMED_SOUND_MISSION_JOB4_2 } ,
{ " job4_3 " , STREAMED_SOUND_MISSION_JOB4_3 } , { " job5_1 " , STREAMED_SOUND_MISSION_JOB5_1 } , { " job5_2 " , STREAMED_SOUND_MISSION_JOB5_2 } ,
{ " job5_3 " , STREAMED_SOUND_MISSION_JOB5_3 } , { " bjm1_20 " , STREAMED_SOUND_MISSION_BJM1_20 } , { " bjm1_4 " , STREAMED_SOUND_MISSION_BJM1_4 } ,
{ " bjm1_5 " , STREAMED_SOUND_MISSION_BJM1_5 } , { " merc_39 " , STREAMED_SOUND_MISSION_MERC_39 } , { " mono_1 " , STREAMED_SOUND_MISSION_MONO_1 } ,
{ " mono_2 " , STREAMED_SOUND_MISSION_MONO_2 } , { " mono_3 " , STREAMED_SOUND_MISSION_MONO_3 } , { " mono_4 " , STREAMED_SOUND_MISSION_MONO_4 } ,
{ " mono_5 " , STREAMED_SOUND_MISSION_MONO_5 } , { " mono_6 " , STREAMED_SOUND_MISSION_MONO_6 } , { " mono_7 " , STREAMED_SOUND_MISSION_MONO_7 } ,
{ " mono_8 " , STREAMED_SOUND_MISSION_MONO_8 } , { " mono_9 " , STREAMED_SOUND_MISSION_MONO_9 } , { " mono10 " , STREAMED_SOUND_MISSION_MONO10 } ,
{ " mono11 " , STREAMED_SOUND_MISSION_MONO11 } , { " mono12 " , STREAMED_SOUND_MISSION_MONO12 } , { " mono13 " , STREAMED_SOUND_MISSION_MONO13 } ,
{ " mono14 " , STREAMED_SOUND_MISSION_MONO14 } , { " mono15 " , STREAMED_SOUND_MISSION_MONO15 } , { " mono16 " , STREAMED_SOUND_MISSION_MONO16 } ,
{ " fud_01 " , STREAMED_SOUND_MISSION_FUD_01 } , { " fud_02 " , STREAMED_SOUND_MISSION_FUD_02 } , { " fud_03 " , STREAMED_SOUND_MISSION_FUD_03 } ,
{ " fud_04 " , STREAMED_SOUND_MISSION_FUD_04 } , { " fud_05 " , STREAMED_SOUND_MISSION_FUD_05 } , { " fud_06 " , STREAMED_SOUND_MISSION_FUD_06 } ,
{ " fud_07 " , STREAMED_SOUND_MISSION_FUD_07 } , { " fud_08 " , STREAMED_SOUND_MISSION_FUD_08 } , { " fud_09 " , STREAMED_SOUND_MISSION_FUD_09 } ,
{ " fud_10 " , STREAMED_SOUND_MISSION_FUD_10 } , { " fud_11 " , STREAMED_SOUND_MISSION_FUD_11 } , { " fud_12 " , STREAMED_SOUND_MISSION_FUD_12 } ,
{ " fud_13 " , STREAMED_SOUND_MISSION_FUD_13 } , { " fud_14 " , STREAMED_SOUND_MISSION_FUD_14 } , { " fud_15 " , STREAMED_SOUND_MISSION_FUD_15 } ,
{ " fud_16 " , STREAMED_SOUND_MISSION_FUD_16 } , { " fud_17 " , STREAMED_SOUND_MISSION_FUD_17 } , { " fud_18 " , STREAMED_SOUND_MISSION_FUD_18 } ,
{ " fud_19 " , STREAMED_SOUND_MISSION_FUD_19 } , { " fud_20 " , STREAMED_SOUND_MISSION_FUD_20 } , { " burg_01 " , STREAMED_SOUND_MISSION_BURG_01 } ,
{ " burg_02 " , STREAMED_SOUND_MISSION_BURG_02 } , { " burg_03 " , STREAMED_SOUND_MISSION_BURG_03 } , { " burg_04 " , STREAMED_SOUND_MISSION_BURG_04 } ,
{ " burg_05 " , STREAMED_SOUND_MISSION_BURG_05 } , { " burg_06 " , STREAMED_SOUND_MISSION_BURG_06 } , { " burg_07 " , STREAMED_SOUND_MISSION_BURG_07 } ,
{ " burg_08 " , STREAMED_SOUND_MISSION_BURG_08 } , { " burg_09 " , STREAMED_SOUND_MISSION_BURG_09 } , { " burg_10 " , STREAMED_SOUND_MISSION_BURG_10 } ,
{ " burg_11 " , STREAMED_SOUND_MISSION_BURG_11 } , { " burg_12 " , STREAMED_SOUND_MISSION_BURG_12 } , { " crust01 " , STREAMED_SOUND_MISSION_CRUST01 } ,
{ " crust02 " , STREAMED_SOUND_MISSION_CRUST02 } , { " crust03 " , STREAMED_SOUND_MISSION_CRUST03 } , { " crust04 " , STREAMED_SOUND_MISSION_CRUST04 } ,
{ " crust05 " , STREAMED_SOUND_MISSION_CRUST05 } , { " crust06 " , STREAMED_SOUND_MISSION_CRUST06 } , { " crust07 " , STREAMED_SOUND_MISSION_CRUST07 } ,
{ " crust08 " , STREAMED_SOUND_MISSION_CRUST08 } , { " crust09 " , STREAMED_SOUND_MISSION_CRUST09 } , { " band_01 " , STREAMED_SOUND_MISSION_BAND_01 } ,
{ " band_02 " , STREAMED_SOUND_MISSION_BAND_02 } , { " band_03 " , STREAMED_SOUND_MISSION_BAND_03 } , { " band_04 " , STREAMED_SOUND_MISSION_BAND_04 } ,
{ " band_05 " , STREAMED_SOUND_MISSION_BAND_05 } , { " band_06 " , STREAMED_SOUND_MISSION_BAND_06 } , { " band_07 " , STREAMED_SOUND_MISSION_BAND_07 } ,
{ " band_08 " , STREAMED_SOUND_MISSION_BAND_08 } , { " shaft01 " , STREAMED_SOUND_MISSION_SHAFT01 } , { " shaft02 " , STREAMED_SOUND_MISSION_SHAFT02 } ,
{ " shaft03 " , STREAMED_SOUND_MISSION_SHAFT03 } , { " shaft04 " , STREAMED_SOUND_MISSION_SHAFT04 } , { " shaft05 " , STREAMED_SOUND_MISSION_SHAFT05 } ,
{ " shaft06 " , STREAMED_SOUND_MISSION_SHAFT06 } , { " shaft07 " , STREAMED_SOUND_MISSION_SHAFT07 } , { " shaft08 " , STREAMED_SOUND_MISSION_SHAFT08 } ,
{ " piss_01 " , STREAMED_SOUND_MISSION_PISS_01 } , { " piss_02 " , STREAMED_SOUND_MISSION_PISS_02 } , { " piss_03 " , STREAMED_SOUND_MISSION_PISS_03 } ,
{ " piss_04 " , STREAMED_SOUND_MISSION_PISS_04 } , { " piss_05 " , STREAMED_SOUND_MISSION_PISS_05 } , { " piss_06 " , STREAMED_SOUND_MISSION_PISS_06 } ,
{ " piss_07 " , STREAMED_SOUND_MISSION_PISS_07 } , { " piss_08 " , STREAMED_SOUND_MISSION_PISS_08 } , { " piss_09 " , STREAMED_SOUND_MISSION_PISS_09 } ,
{ " piss_10 " , STREAMED_SOUND_MISSION_PISS_10 } , { " piss_11 " , STREAMED_SOUND_MISSION_PISS_11 } , { " piss_12 " , STREAMED_SOUND_MISSION_PISS_12 } ,
{ " piss_13 " , STREAMED_SOUND_MISSION_PISS_13 } , { " piss_14 " , STREAMED_SOUND_MISSION_PISS_14 } , { " piss_15 " , STREAMED_SOUND_MISSION_PISS_15 } ,
{ " piss_16 " , STREAMED_SOUND_MISSION_PISS_16 } , { " piss_17 " , STREAMED_SOUND_MISSION_PISS_17 } , { " piss_18 " , STREAMED_SOUND_MISSION_PISS_18 } ,
{ " piss_19 " , STREAMED_SOUND_MISSION_PISS_19 } , { " gimme01 " , STREAMED_SOUND_MISSION_GIMME01 } , { " gimme02 " , STREAMED_SOUND_MISSION_GIMME02 } ,
{ " gimme03 " , STREAMED_SOUND_MISSION_GIMME03 } , { " gimme04 " , STREAMED_SOUND_MISSION_GIMME04 } , { " gimme05 " , STREAMED_SOUND_MISSION_GIMME05 } ,
{ " gimme06 " , STREAMED_SOUND_MISSION_GIMME06 } , { " gimme07 " , STREAMED_SOUND_MISSION_GIMME07 } , { " gimme08 " , STREAMED_SOUND_MISSION_GIMME08 } ,
{ " gimme09 " , STREAMED_SOUND_MISSION_GIMME09 } , { " gimme10 " , STREAMED_SOUND_MISSION_GIMME10 } , { " gimme11 " , STREAMED_SOUND_MISSION_GIMME11 } ,
{ " gimme12 " , STREAMED_SOUND_MISSION_GIMME12 } , { " gimme13 " , STREAMED_SOUND_MISSION_GIMME13 } , { " gimme14 " , STREAMED_SOUND_MISSION_GIMME14 } ,
{ " gimme15 " , STREAMED_SOUND_MISSION_GIMME15 } , { " bust_01 " , STREAMED_SOUND_MISSION_BUST_01 } , { " bust_02 " , STREAMED_SOUND_MISSION_BUST_02 } ,
{ " bust_03 " , STREAMED_SOUND_MISSION_BUST_03 } , { " bust_04 " , STREAMED_SOUND_MISSION_BUST_04 } , { " bust_05 " , STREAMED_SOUND_MISSION_BUST_05 } ,
{ " bust_06 " , STREAMED_SOUND_MISSION_BUST_06 } , { " bust_07 " , STREAMED_SOUND_MISSION_BUST_07 } , { " bust_08 " , STREAMED_SOUND_MISSION_BUST_08 } ,
{ " bust_09 " , STREAMED_SOUND_MISSION_BUST_09 } , { " bust_10 " , STREAMED_SOUND_MISSION_BUST_10 } , { " bust_11 " , STREAMED_SOUND_MISSION_BUST_11 } ,
{ " bust_12 " , STREAMED_SOUND_MISSION_BUST_12 } , { " bust_13 " , STREAMED_SOUND_MISSION_BUST_13 } , { " bust_14 " , STREAMED_SOUND_MISSION_BUST_14 } ,
{ " bust_15 " , STREAMED_SOUND_MISSION_BUST_15 } , { " bust_16 " , STREAMED_SOUND_MISSION_BUST_16 } , { " bust_17 " , STREAMED_SOUND_MISSION_BUST_17 } ,
{ " bust_18 " , STREAMED_SOUND_MISSION_BUST_18 } , { " bust_19 " , STREAMED_SOUND_MISSION_BUST_19 } , { " bust_20 " , STREAMED_SOUND_MISSION_BUST_20 } ,
{ " bust_21 " , STREAMED_SOUND_MISSION_BUST_21 } , { " bust_22 " , STREAMED_SOUND_MISSION_BUST_22 } , { " bust_23 " , STREAMED_SOUND_MISSION_BUST_23 } ,
{ " bust_24 " , STREAMED_SOUND_MISSION_BUST_24 } , { " bust_25 " , STREAMED_SOUND_MISSION_BUST_25 } , { " bust_26 " , STREAMED_SOUND_MISSION_BUST_26 } ,
{ " bust_27 " , STREAMED_SOUND_MISSION_BUST_27 } , { " bust_28 " , STREAMED_SOUND_MISSION_BUST_28 } , { nil , 0 } } ;
2020-05-16 17:29:13 +00:00
2021-08-29 06:42:32 +00:00
uint32
2020-05-16 17:29:13 +00:00
FindMissionAudioSfx ( const char * name )
{
2021-08-25 05:49:58 +00:00
for ( uint32 i = 0 ; MissionAudioNameSfxAssoc [ i ] . m_pName ! = nil ; i + + ) {
2020-05-16 17:29:13 +00:00
if ( ! CGeneral : : faststricmp ( MissionAudioNameSfxAssoc [ i ] . m_pName , name ) )
return MissionAudioNameSfxAssoc [ i ] . m_nId ;
}
debug ( " Can't find mission audio %s " , name ) ;
return NO_SAMPLE ;
}
2021-07-28 22:52:49 +00:00
const char *
cAudioManager : : GetMissionAudioLoadedLabel ( uint8 slot )
{
2021-08-21 10:02:07 +00:00
if ( m_bIsInitialised & & slot < MISSION_AUDIO_SLOTS & & m_nMissionAudioSampleIndex [ slot ] ! = NO_SAMPLE ) {
2021-08-25 05:49:58 +00:00
for ( uint32 i = 0 ; MissionAudioNameSfxAssoc [ i ] . m_pName ! = nil ; i + + ) {
2021-08-21 10:02:07 +00:00
if ( m_nMissionAudioSampleIndex [ slot ] = = MissionAudioNameSfxAssoc [ i ] . m_nId )
2021-07-28 22:52:49 +00:00
return MissionAudioNameSfxAssoc [ i ] . m_pName ;
}
}
# ifdef THIS_IS_STUPID
return MissionAudioNameSfxAssoc [ 0 ] . m_pName ; // yeah this is dumb
# else
return " " ;
# endif
}
2021-05-22 10:08:26 +00:00
bool8
2021-07-27 21:52:46 +00:00
cAudioManager : : MissionScriptAudioUsesPoliceChannel ( uint32 soundMission )
2020-05-16 17:29:13 +00:00
{
2021-05-22 10:08:26 +00:00
return FALSE ;
2020-05-16 17:29:13 +00:00
}
void
2020-06-08 07:34:31 +00:00
cAudioManager : : PreloadMissionAudio ( uint8 slot , Const char * name )
2020-05-16 17:29:13 +00:00
{
2020-06-08 07:34:31 +00:00
if ( m_bIsInitialised & & slot < MISSION_AUDIO_SLOTS ) {
2021-08-29 06:42:32 +00:00
uint32 missionAudioSfx = FindMissionAudioSfx ( name ) ;
2020-05-16 17:29:13 +00:00
if ( missionAudioSfx ! = NO_SAMPLE ) {
2021-08-21 10:02:07 +00:00
m_nMissionAudioSampleIndex [ slot ] = missionAudioSfx ;
m_nMissionAudioLoadingStatus [ slot ] = LOADING_STATUS_NOT_LOADED ;
m_nMissionAudioPlayStatus [ slot ] = PLAY_STATUS_STOPPED ;
m_bIsMissionAudioPlaying [ slot ] = FALSE ;
m_nMissionAudioFramesToPlay [ slot ] = m_nTimeSpent * SampleManager . GetStreamedFileLength ( missionAudioSfx ) / 1000 ;
m_nMissionAudioFramesToPlay [ slot ] * = 4 ;
m_bIsMissionAudioAllowedToPlay [ slot ] = FALSE ;
m_bIsMissionAudio2D [ slot ] = TRUE ;
2021-05-22 10:08:26 +00:00
g_bMissionAudioLoadFailed [ slot ] = FALSE ;
2020-05-16 17:29:13 +00:00
}
}
}
2020-05-23 19:48:50 +00:00
uint8
2021-07-27 21:52:46 +00:00
cAudioManager : : GetMissionAudioLoadingStatus ( uint8 slot )
2020-05-16 17:29:13 +00:00
{
2020-06-08 07:34:31 +00:00
if ( m_bIsInitialised & & slot < MISSION_AUDIO_SLOTS )
2021-08-21 10:02:07 +00:00
return m_nMissionAudioLoadingStatus [ slot ] ;
2020-05-16 17:29:13 +00:00
2020-05-23 19:48:50 +00:00
return LOADING_STATUS_LOADED ;
2020-05-16 17:29:13 +00:00
}
void
2020-06-08 07:34:31 +00:00
cAudioManager : : SetMissionAudioLocation ( uint8 slot , float x , float y , float z )
2020-05-16 17:29:13 +00:00
{
2020-06-08 07:34:31 +00:00
if ( m_bIsInitialised & & slot < MISSION_AUDIO_SLOTS ) {
2021-08-21 10:02:07 +00:00
m_bIsMissionAudio2D [ slot ] = FALSE ;
m_vecMissionAudioPosition [ slot ] = CVector ( x , y , z ) ;
2020-05-16 17:29:13 +00:00
}
}
void
2020-06-08 07:34:31 +00:00
cAudioManager : : PlayLoadedMissionAudio ( uint8 slot )
2020-05-16 17:29:13 +00:00
{
2021-08-21 10:02:07 +00:00
if ( m_bIsInitialised & & slot < MISSION_AUDIO_SLOTS & & m_nMissionAudioSampleIndex [ slot ] ! = NO_SAMPLE & & m_nMissionAudioLoadingStatus [ slot ] = = LOADING_STATUS_LOADED & &
m_nMissionAudioPlayStatus [ slot ] = = PLAY_STATUS_STOPPED )
m_bIsMissionAudioAllowedToPlay [ slot ] = TRUE ;
2020-05-16 17:29:13 +00:00
}
2021-05-22 10:08:26 +00:00
bool8
2021-07-27 21:52:46 +00:00
cAudioManager : : ShouldDuckMissionAudio ( uint8 slot )
2020-05-16 17:29:13 +00:00
{
2020-06-08 07:34:31 +00:00
if ( IsMissionAudioSamplePlaying ( slot ) )
2021-08-21 10:02:07 +00:00
return m_nMissionAudioSampleIndex [ slot ] ! = STREAMED_SOUND_MISSION_ROK2_01 ;
2021-05-22 10:08:26 +00:00
return FALSE ;
2020-06-08 07:34:31 +00:00
}
2020-05-16 17:29:13 +00:00
2021-05-22 10:08:26 +00:00
bool8
2021-07-27 21:52:46 +00:00
cAudioManager : : IsMissionAudioSamplePlaying ( uint8 slot )
2020-06-08 07:34:31 +00:00
{
if ( m_bIsInitialised ) {
if ( slot < MISSION_AUDIO_SLOTS )
2021-08-21 10:02:07 +00:00
return m_nMissionAudioPlayStatus [ slot ] = = PLAY_STATUS_PLAYING ;
2020-06-08 07:34:31 +00:00
else
2021-05-22 10:08:26 +00:00
return TRUE ;
2020-06-08 07:34:31 +00:00
}
2021-08-29 06:42:32 +00:00
static uint32 cPretendFrame [ MISSION_AUDIO_SLOTS ] = { 1 , 1 } ;
return ( cPretendFrame [ slot ] + + % 64 ) ! = 0 ;
2020-05-16 17:29:13 +00:00
}
2021-05-22 10:08:26 +00:00
bool8
2020-06-08 07:34:31 +00:00
cAudioManager : : IsMissionAudioSampleFinished ( uint8 slot )
2020-05-16 17:29:13 +00:00
{
if ( m_bIsInitialised ) {
2020-06-08 07:34:31 +00:00
if ( slot < MISSION_AUDIO_SLOTS )
2021-08-21 10:02:07 +00:00
return m_nMissionAudioPlayStatus [ slot ] = = PLAY_STATUS_FINISHED ;
2020-06-08 07:34:31 +00:00
else
2021-05-22 10:08:26 +00:00
return TRUE ;
2020-05-16 17:29:13 +00:00
}
2020-06-08 07:34:31 +00:00
2021-08-29 06:42:32 +00:00
static uint32 cPretendFrame [ MISSION_AUDIO_SLOTS ] = { 1 , 1 } ;
2020-06-08 07:34:31 +00:00
2020-06-08 13:22:49 +00:00
return ( cPretendFrame [ slot ] + + % 64 ) = = 0 ;
2020-05-16 17:29:13 +00:00
}
void
2020-06-08 07:34:31 +00:00
cAudioManager : : ClearMissionAudio ( uint8 slot )
{
if ( m_bIsInitialised & & slot < MISSION_AUDIO_SLOTS ) {
2021-08-21 10:02:07 +00:00
m_nMissionAudioSampleIndex [ slot ] = NO_SAMPLE ;
m_nMissionAudioLoadingStatus [ slot ] = LOADING_STATUS_NOT_LOADED ;
m_nMissionAudioPlayStatus [ slot ] = PLAY_STATUS_STOPPED ;
m_bIsMissionAudioPlaying [ slot ] = FALSE ;
m_bIsMissionAudioAllowedToPlay [ slot ] = FALSE ;
m_bIsMissionAudio2D [ slot ] = TRUE ;
m_nMissionAudioFramesToPlay [ slot ] = 0 ;
m_bIsMissionAudioPhoneCall [ slot ] = FALSE ;
2020-07-08 14:26:23 +00:00
SampleManager . StopStreamedFile ( slot + 1 ) ;
2020-06-08 07:34:31 +00:00
}
}
void
cAudioManager : : ProcessMissionAudioSlot ( uint8 slot )
2020-05-16 17:29:13 +00:00
{
float dist ;
2021-08-29 06:42:32 +00:00
uint8 Vol ;
2020-05-16 17:29:13 +00:00
uint8 pan ;
float distSquared ;
CVector vec ;
2020-06-08 07:34:31 +00:00
static uint8 nCheckPlayingDelay [ MISSION_AUDIO_SLOTS ] = { 0 , 0 } ;
static uint8 nFramesUntilFailedLoad [ MISSION_AUDIO_SLOTS ] = { 0 , 0 } ;
static uint8 nFramesForPretendPlaying [ MISSION_AUDIO_SLOTS ] = { 0 , 0 } ;
2020-05-16 17:29:13 +00:00
2021-08-29 06:42:32 +00:00
if ( m_nMissionAudioSampleIndex [ slot ] ! = NO_SAMPLE ) {
switch ( m_nMissionAudioLoadingStatus [ slot ] ) {
case LOADING_STATUS_NOT_LOADED :
SampleManager . PreloadStreamedFile ( m_nMissionAudioSampleIndex [ slot ] , slot + 1 ) ;
m_nMissionAudioLoadingStatus [ slot ] = LOADING_STATUS_LOADED ;
nFramesUntilFailedLoad [ slot ] = 0 ;
break ;
case LOADING_STATUS_FAILED :
if ( + + nFramesUntilFailedLoad [ slot ] > = 120 ) {
2020-06-08 07:34:31 +00:00
nFramesForPretendPlaying [ slot ] = 0 ;
2021-08-29 06:42:32 +00:00
g_bMissionAudioLoadFailed [ slot ] = TRUE ;
2020-06-08 07:34:31 +00:00
nFramesUntilFailedLoad [ slot ] = 0 ;
2021-08-29 06:42:32 +00:00
m_nMissionAudioLoadingStatus [ slot ] = LOADING_STATUS_LOADED ;
2020-05-23 19:48:50 +00:00
}
2021-08-29 06:42:32 +00:00
return ;
default :
return ;
case LOADING_STATUS_LOADED :
if ( ! m_bIsMissionAudioAllowedToPlay [ slot ] )
2020-05-16 17:29:13 +00:00
break ;
2021-08-29 06:42:32 +00:00
if ( g_bMissionAudioLoadFailed [ slot ] ) {
if ( m_bTimerJustReset ) {
ClearMissionAudio ( slot ) ;
SampleManager . StopStreamedFile ( slot + 1 ) ;
nFramesForPretendPlaying [ slot ] = 0 ;
nCheckPlayingDelay [ slot ] = 0 ;
nFramesUntilFailedLoad [ slot ] = 0 ;
} else if ( ! m_bIsPaused ) {
if ( + + nFramesForPretendPlaying [ slot ] > = 90 ) {
2021-08-21 10:02:07 +00:00
m_nMissionAudioPlayStatus [ slot ] = PLAY_STATUS_FINISHED ;
m_nMissionAudioSampleIndex [ slot ] = NO_SAMPLE ;
2021-08-29 06:42:32 +00:00
} else
m_nMissionAudioPlayStatus [ slot ] = PLAY_STATUS_PLAYING ;
2020-05-16 17:29:13 +00:00
}
2021-08-29 06:42:32 +00:00
break ;
}
switch ( m_nMissionAudioPlayStatus [ slot ] ) {
case PLAY_STATUS_STOPPED :
if ( MissionScriptAudioUsesPoliceChannel ( m_nMissionAudioSampleIndex [ slot ] ) )
SetMissionScriptPoliceAudio ( m_nMissionAudioSampleIndex [ slot ] ) ;
else {
2021-08-25 05:49:58 +00:00
if ( m_bIsPaused )
2021-05-22 10:08:26 +00:00
SampleManager . PauseStream ( TRUE , slot + 1 ) ;
2021-08-29 06:42:32 +00:00
if ( m_bIsMissionAudio2D [ slot ] ) {
if ( m_nMissionAudioSampleIndex [ slot ] = = STREAMED_SOUND_MISSION_CAMERAL )
SampleManager . SetStreamedVolumeAndPan ( MISSION_AUDIO_VOLUME , 0 , TRUE , slot + 1 ) ;
else if ( m_nMissionAudioSampleIndex [ slot ] = = STREAMED_SOUND_MISSION_CAMERAR )
SampleManager . SetStreamedVolumeAndPan ( MISSION_AUDIO_VOLUME , 127 , TRUE , slot + 1 ) ;
else
SampleManager . SetStreamedVolumeAndPan ( MISSION_AUDIO_VOLUME , 63 , TRUE , slot + 1 ) ;
} else {
distSquared = GetDistanceSquared ( m_vecMissionAudioPosition [ slot ] ) ;
if ( distSquared < SQR ( MISSION_AUDIO_MAX_DIST ) ) {
if ( distSquared > 0.0f ) {
dist = Sqrt ( distSquared ) ;
Vol = ComputeVolume ( MISSION_AUDIO_VOLUME , MISSION_AUDIO_MAX_DIST , dist ) ;
} else
Vol = MISSION_AUDIO_VOLUME ;
TranslateEntity ( & m_vecMissionAudioPosition [ slot ] , & vec ) ;
pan = ComputePan ( MISSION_AUDIO_MAX_DIST , & vec ) ;
} else {
Vol = 0 ;
pan = 63 ;
}
SampleManager . SetStreamedVolumeAndPan ( Vol , pan , TRUE , slot + 1 ) ;
2020-06-08 07:34:31 +00:00
}
2021-08-29 06:42:32 +00:00
SampleManager . StartPreloadedStreamedFile ( slot + 1 ) ;
}
m_nMissionAudioPlayStatus [ slot ] = PLAY_STATUS_PLAYING ;
nCheckPlayingDelay [ slot ] = 30 ;
if ( m_nMissionAudioSampleIndex [ slot ] > = STREAMED_SOUND_MISSION_MOB_01A & & m_nMissionAudioSampleIndex [ slot ] < = STREAMED_SOUND_MISSION_MOB_99A )
m_bIsMissionAudioPhoneCall [ slot ] = TRUE ;
break ;
case PLAY_STATUS_PLAYING :
if ( m_bTimerJustReset ) {
ClearMissionAudio ( slot ) ;
2020-06-08 07:34:31 +00:00
SampleManager . StopStreamedFile ( slot + 1 ) ;
2021-08-29 06:42:32 +00:00
return ;
2020-05-23 19:48:50 +00:00
}
2021-08-29 06:42:32 +00:00
if ( MissionScriptAudioUsesPoliceChannel ( m_nMissionAudioSampleIndex [ slot ] ) ) {
if ( ! m_bIsPaused ) {
if ( nCheckPlayingDelay [ slot ] > 0 ) {
nCheckPlayingDelay [ slot ] - - ;
} else if ( ( g_bMissionAudioLoadFailed [ slot ] & & m_nMissionAudioFramesToPlay [ slot ] - - = = 0 ) | | GetMissionScriptPoliceAudioPlayingStatus ( ) = = PLAY_STATUS_FINISHED ) {
m_nMissionAudioPlayStatus [ slot ] = PLAY_STATUS_FINISHED ;
if ( m_nMissionAudioSampleIndex [ slot ] > = STREAMED_SOUND_MISSION_MOB_01A & & m_nMissionAudioSampleIndex [ slot ] < = STREAMED_SOUND_MISSION_MOB_99A )
m_bIsMissionAudioPhoneCall [ slot ] = FALSE ;
m_nMissionAudioSampleIndex [ slot ] = NO_SAMPLE ;
SampleManager . StopStreamedFile ( slot + 1 ) ;
m_nMissionAudioFramesToPlay [ slot ] = 0 ;
}
}
} else if ( m_bIsMissionAudioPlaying [ slot ] ) {
if ( ! SampleManager . IsStreamPlaying ( slot + 1 ) & & ! m_bIsPaused & & ! m_bWasPaused ) {
if ( m_nMissionAudioSampleIndex [ slot ] = = STREAMED_SOUND_MISSION_ROK2_01 )
m_nMissionAudioPlayStatus [ slot ] = PLAY_STATUS_STOPPED ;
else {
m_nMissionAudioPlayStatus [ slot ] = PLAY_STATUS_FINISHED ;
if ( m_nMissionAudioSampleIndex [ slot ] > = STREAMED_SOUND_MISSION_MOB_01A & & m_nMissionAudioSampleIndex [ slot ] < = STREAMED_SOUND_MISSION_MOB_99A )
m_bIsMissionAudioPhoneCall [ slot ] = FALSE ;
m_nMissionAudioSampleIndex [ slot ] = NO_SAMPLE ;
SampleManager . StopStreamedFile ( slot + 1 ) ;
m_nMissionAudioFramesToPlay [ slot ] = 0 ;
}
} else {
if ( m_bIsPaused )
SampleManager . PauseStream ( TRUE , slot + 1 ) ;
else {
SampleManager . PauseStream ( FALSE , slot + 1 ) ;
if ( ! m_bIsMissionAudio2D [ slot ] ) {
distSquared = GetDistanceSquared ( m_vecMissionAudioPosition [ slot ] ) ;
if ( distSquared < SQR ( MISSION_AUDIO_MAX_DIST ) ) {
// BUG? Why MAX_VOLUME instead of MISSION_AUDIO_VOLUME?
if ( distSquared > 0.0f ) {
dist = Sqrt ( distSquared ) ;
Vol = ComputeVolume ( MAX_VOLUME , MISSION_AUDIO_MAX_DIST , dist ) ;
} else
Vol = MAX_VOLUME ;
TranslateEntity ( & m_vecMissionAudioPosition [ slot ] , & vec ) ;
pan = ComputePan ( MISSION_AUDIO_MAX_DIST , & vec ) ;
} else {
Vol = 0 ;
pan = 63 ;
}
SampleManager . SetStreamedVolumeAndPan ( Vol , pan , TRUE , slot + 1 ) ;
}
}
}
} else {
if ( m_bIsPaused )
2020-05-23 19:48:50 +00:00
break ;
2021-08-29 06:42:32 +00:00
if ( nCheckPlayingDelay [ slot ] - - > 0 ) {
if ( ! SampleManager . IsStreamPlaying ( slot + 1 ) )
break ;
nCheckPlayingDelay [ slot ] = 0 ;
}
m_bIsMissionAudioPlaying [ slot ] = TRUE ;
2020-05-23 19:48:50 +00:00
}
2021-08-29 06:42:32 +00:00
break ;
default :
break ;
2020-05-16 17:29:13 +00:00
}
2020-05-23 19:48:50 +00:00
break ;
}
2020-05-16 17:29:13 +00:00
}
}
2020-06-08 07:34:31 +00:00
void
cAudioManager : : ProcessMissionAudio ( )
{
if ( ! m_bIsInitialised ) return ;
for ( int i = 0 ; i < MISSION_AUDIO_SLOTS ; i + + )
ProcessMissionAudioSlot ( i ) ;
2021-08-21 10:02:07 +00:00
if ( m_bIsMissionAudioPhoneCall [ 0 ] | | m_bIsMissionAudioPhoneCall [ 1 ] )
m_nGlobalSfxVolumeMultiplier = 64 ;
else if ( m_nGlobalSfxVolumeMultiplier < 127 ) {
m_nGlobalSfxVolumeMultiplier + = 5 ;
if ( m_nGlobalSfxVolumeMultiplier > 127 )
m_nGlobalSfxVolumeMultiplier = 127 ;
2020-06-08 07:34:31 +00:00
}
}
2020-06-29 06:41:56 +00:00
# pragma endregion All the mission audio stuff