@@ -294,6 +294,14 @@ DWORD RETURN_CTaskSimplyGangDriveBy__ProcessPed = 0x62D5AC;
294
294
DWORD RETURN_CAERadioTrackManager__ChooseMusicTrackIndex = 0x4EA2A0 ;
295
295
DWORD RETURN_CAERadioTrackManager__ChooseMusicTrackIndex_Regenerate = 0x04EA286 ;
296
296
297
+ #define HOOKPOS_CAEVEhicleAudioEntity__ProcessDummyHeli 0x4FE9B9
298
+ DWORD RETURN_CAEVEhicleAudioEntity__ProcessDummyHeli = 0x4FEDFB ;
299
+ DWORD dwFUNC_CAEVehicleAudioEntity__ProcessAIHeli = FUNC_CAEVehicleAudioEntity__ProcessAIHeli;
300
+
301
+ #define HOOKPOS_CAEVEhicleAudioEntity__ProcessDummyProp 0x4FD96D
302
+ DWORD RETURN_CAEVEhicleAudioEntity__ProcessDummyProp = 0x4FDFAB ;
303
+ DWORD dwFUNC_CAEVehicleAudioEntity__ProcessAIProp = FUNC_CAEVehicleAudioEntity__ProcessAIProp;
304
+
297
305
CPed* pContextSwitchedPed = 0 ;
298
306
CVector vecCenterOfWorld;
299
307
FLOAT fFalseHeading ;
@@ -509,6 +517,9 @@ void HOOK_CTaskSimpleGangDriveBy__ProcessPed();
509
517
510
518
void HOOK_CAERadioTrackManager__ChooseMusicTrackIndex ( );
511
519
520
+ void HOOK_CAEVehicleAudioEntity__ProcessDummyHeli ();
521
+ void HOOK_CAEVehicleAudioEntity__ProcessDummyProp ();
522
+
512
523
CMultiplayerSA::CMultiplayerSA ()
513
524
{
514
525
// Unprotect all of the GTASA code at once and leave it that way
@@ -724,6 +735,9 @@ void CMultiplayerSA::InitHooks()
724
735
HookInstall (HOOKPOS_CAERadioTrackManager__ChooseMusicTrackIndex, (DWORD) HOOK_CAERadioTrackManager__ChooseMusicTrackIndex, 10 );
725
736
}
726
737
738
+ HookInstall ( HOOKPOS_CAEVEhicleAudioEntity__ProcessDummyHeli, (DWORD) HOOK_CAEVehicleAudioEntity__ProcessDummyHeli, 5 );
739
+ HookInstall ( HOOKPOS_CAEVEhicleAudioEntity__ProcessDummyProp, (DWORD) HOOK_CAEVehicleAudioEntity__ProcessDummyProp, 5 );
740
+
727
741
// Disable GTA setting g_bGotFocus to false when we minimize
728
742
MemSet ( (void *)ADDR_GotFocus, 0x90 , pGameInterface->GetGameVersion () == VERSION_EU_10 ? 6 : 10 );
729
743
@@ -6923,3 +6937,33 @@ void _declspec(naked) HOOK_CAERadioTrackManager__ChooseMusicTrackIndex ( )
6923
6937
jmp RETURN_CAERadioTrackManager__ChooseMusicTrackIndex
6924
6938
}
6925
6939
}
6940
+
6941
+ // Use AI heli rotor sound if player sound bank is not loaded
6942
+ void _declspec (naked) HOOK_CAEVehicleAudioEntity__ProcessDummyHeli ()
6943
+ {
6944
+ _asm
6945
+ {
6946
+ // push our argument
6947
+ push [esp+8Ch+4 ]
6948
+ mov ecx, esi
6949
+ // call twin function
6950
+ call dwFUNC_CAEVehicleAudioEntity__ProcessAIHeli
6951
+ // go back
6952
+ jmp RETURN_CAEVEhicleAudioEntity__ProcessDummyHeli
6953
+ }
6954
+ }
6955
+
6956
+ // Use AI plane propeller sound if player sound bank is not loaded
6957
+ void _declspec (naked) HOOK_CAEVehicleAudioEntity__ProcessDummyProp ()
6958
+ {
6959
+ _asm
6960
+ {
6961
+ // push our argument
6962
+ push [esp+98h+4 ]
6963
+ mov ecx, esi
6964
+ // call twin function
6965
+ call dwFUNC_CAEVehicleAudioEntity__ProcessAIProp
6966
+ // go back
6967
+ jmp RETURN_CAEVEhicleAudioEntity__ProcessDummyProp
6968
+ }
6969
+ }
0 commit comments