File tree Expand file tree Collapse file tree 8 files changed +33
-30
lines changed Expand file tree Collapse file tree 8 files changed +33
-30
lines changed Original file line number Diff line number Diff line change @@ -930,25 +930,6 @@ void CGameSA::SetVehicleBurnExplosionsEnabled(bool isEnabled)
930930 m_isVehicleBurnExplosionsEnabled = isEnabled;
931931}
932932
933- void CGameSA::SetVehicleEngineManualModeEnabled (bool enabled)
934- {
935- if (enabled)
936- {
937- MemSet ((void *)0x64BC03 , 0x90 , 5 ); // prevent vehicle engine from turning on (driver enter)
938- MemCpy ((void *)0x6C4EA9 , " \xE9\x15\x03\x00 " , 4 ); // prevent aircraft engine from turning off (driver exit)
939- }
940- else
941- {
942- MemCpy ((void *)0x64BC03 , " \x75\x05\x80\xC9\x10 " , 5 );
943- MemCpy ((void *)0x6C4EA9 , " \x8A\x86\x28\x04 " , 4 );
944- }
945- }
946-
947- bool CGameSA::IsVehicleEngineManualModeEnabled () const noexcept
948- {
949- return *(unsigned char *)0x64BC03 == 0x90 ;
950- }
951-
952933bool CGameSA::PerformChecks ()
953934{
954935 std::map<std::string, SCheatSA*>::iterator it;
Original file line number Diff line number Diff line change @@ -262,9 +262,6 @@ class CGameSA : public CGame
262262 bool IsVehicleBurnExplosionsEnabled () const noexcept override { return m_isVehicleBurnExplosionsEnabled; }
263263 void SetVehicleBurnExplosionsEnabled (bool isEnabled) override ;
264264
265- void SetVehicleEngineManualModeEnabled (bool enabled) override ;
266- bool IsVehicleEngineManualModeEnabled () const noexcept override ;
267-
268265 unsigned long GetMinuteDuration ();
269266 void SetMinuteDuration (unsigned long ulTime);
270267
Original file line number Diff line number Diff line change 1010 *****************************************************************************/
1111
1212#include " StdInc.h"
13+ #include < core/CCoreInterface.h>
14+ #include < multiplayer/CMultiplayer.h>
1315#include " CAutomobileSA.h"
1416#include " CBikeSA.h"
1517#include " CCameraSA.h"
2830#include " gamesa_renderware.h"
2931#include " CFireManagerSA.h"
3032
31- extern CGameSA* pGame;
33+ extern CCoreInterface* g_pCore;
34+ extern CGameSA* pGame;
3235
3336static BOOL m_bVehicleSunGlare = false ;
3437_declspec (naked) void DoVehicleSunGlare(void * this_)
@@ -63,7 +66,7 @@ static bool __fastcall CanProcessFlyingCarStuff(CAutomobileSAInterface* vehicleI
6366
6467 if (vehicle->pEntity ->GetVehicleRotorState ())
6568 {
66- if (!pGame ->IsVehicleEngineManualModeEnabled ()) // keep default behavior
69+ if (!g_pCore-> GetMultiplayer () ->IsVehicleEngineManualModeEnabled ()) // keep default behavior
6770 return true ;
6871
6972 if (vehicle->pEntity ->GetEntityStatus () != eEntityStatus::STATUS_PHYSICS && !vehicle->pEntity ->IsBeingDriven ())
Original file line number Diff line number Diff line change @@ -6145,16 +6145,16 @@ bool CClientGame::IsWeaponRenderEnabled() const
61456145
61466146void CClientGame::SetVehicleEngineManualModeEnabled (bool enabled)
61476147{
6148- if (enabled == g_pGame ->IsVehicleEngineManualModeEnabled ())
6148+ if (enabled == g_pMultiplayer ->IsVehicleEngineManualModeEnabled ())
61496149 return ;
61506150
6151- g_pGame ->SetVehicleEngineManualModeEnabled (enabled);
6151+ g_pMultiplayer ->SetVehicleEngineManualModeEnabled (enabled);
61526152 m_pVehicleManager->ResetNotControlledRotors (enabled);
61536153}
61546154
61556155bool CClientGame::IsVehicleEngineManualModeEnabled () const
61566156{
6157- return g_pGame ->IsVehicleEngineManualModeEnabled ();
6157+ return g_pMultiplayer ->IsVehicleEngineManualModeEnabled ();
61586158}
61596159
61606160#pragma code_seg(".text")
Original file line number Diff line number Diff line change @@ -6634,6 +6634,25 @@ void CMultiplayerSA::SetAutomaticVehicleStartupOnPedEnter(bool bSet)
66346634 MemSet ((char *)0x64BC0D , 0x90 , 6 );
66356635}
66366636
6637+ bool CMultiplayerSA::IsVehicleEngineManualModeEnabled () const noexcept
6638+ {
6639+ return *(unsigned char *)0x64BC03 == 0x90 ;
6640+ }
6641+
6642+ void CMultiplayerSA::SetVehicleEngineManualModeEnabled (bool enabled)
6643+ {
6644+ if (enabled)
6645+ {
6646+ MemSet ((void *)0x64BC03 , 0x90 , 5 ); // prevent vehicle engine from turning on (driver enter)
6647+ MemCpy ((void *)0x6C4EA9 , " \xE9\x15\x03\x00 " , 4 ); // prevent aircraft engine from turning off (driver exit)
6648+ }
6649+ else
6650+ {
6651+ MemCpy ((void *)0x64BC03 , " \x75\x05\x80\xC9\x10 " , 5 );
6652+ MemCpy ((void *)0x6C4EA9 , " \x8A\x86\x28\x04 " , 4 );
6653+ }
6654+ }
6655+
66376656// Storage
66386657CVehicleSAInterface* pHeliKiller = NULL ;
66396658CEntitySAInterface* pHitByHeli = NULL ;
Original file line number Diff line number Diff line change @@ -333,6 +333,9 @@ class CMultiplayerSA : public CMultiplayer
333333
334334 void SetAutomaticVehicleStartupOnPedEnter (bool bSet);
335335
336+ bool IsVehicleEngineManualModeEnabled () const noexcept override ;
337+ void SetVehicleEngineManualModeEnabled (bool enabled) override ;
338+
336339 void SetPedTargetingMarkerEnabled (bool bEnable);
337340 bool IsPedTargetingMarkerEnabled ();
338341 bool IsConnected ();
Original file line number Diff line number Diff line change @@ -241,9 +241,6 @@ class __declspec(novtable) CGame
241241 virtual bool IsVehicleBurnExplosionsEnabled () const noexcept = 0 ;
242242 virtual void SetVehicleBurnExplosionsEnabled (bool isEnabled) = 0 ;
243243
244- virtual void SetVehicleEngineManualModeEnabled (bool enabled) = 0 ;
245- virtual bool IsVehicleEngineManualModeEnabled () const noexcept = 0 ;
246-
247244 virtual CWeapon* CreateWeapon () = 0 ;
248245 virtual CWeaponStat* CreateWeaponStat (eWeaponType weaponType, eWeaponSkill weaponSkill) = 0 ;
249246
Original file line number Diff line number Diff line change @@ -444,6 +444,9 @@ class CMultiplayer
444444
445445 virtual void SetAutomaticVehicleStartupOnPedEnter (bool bSet) = 0;
446446
447+ virtual bool IsVehicleEngineManualModeEnabled () const noexcept = 0;
448+ virtual void SetVehicleEngineManualModeEnabled (bool enabled) = 0;
449+
447450 virtual void SetPedTargetingMarkerEnabled (bool bEnabled) = 0;
448451 virtual bool IsPedTargetingMarkerEnabled () = 0;
449452
You can’t perform that action at this time.
0 commit comments