File tree Expand file tree Collapse file tree 9 files changed +31
-26
lines changed Expand file tree Collapse file tree 9 files changed +31
-26
lines changed Original file line number Diff line number Diff line change @@ -930,20 +930,6 @@ void CGameSA::SetVehicleBurnExplosionsEnabled(bool isEnabled)
930930 m_isVehicleBurnExplosionsEnabled = isEnabled;
931931}
932932
933- void CGameSA::SetVehicleEngineManualModeEnabled (bool isEnabled)
934- {
935- if (isEnabled)
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-
947933bool CGameSA::PerformChecks ()
948934{
949935 std::map<std::string, SCheatSA*>::iterator it;
Original file line number Diff line number Diff line change @@ -262,7 +262,7 @@ class CGameSA : public CGame
262262 bool IsVehicleBurnExplosionsEnabled () const noexcept override { return m_isVehicleBurnExplosionsEnabled; }
263263 void SetVehicleBurnExplosionsEnabled (bool isEnabled) override ;
264264
265- void SetVehicleEngineManualModeEnabled ( bool isEnabled) override ;
265+ bool IsVehicleEngineManualModeEnabled () const noexcept override { return *( unsigned char *) 0x64BC03 == 0x90 ; }
266266
267267 unsigned long GetMinuteDuration ();
268268 void SetMinuteDuration (unsigned long ulTime);
Original file line number Diff line number Diff line change @@ -63,7 +63,7 @@ static bool __fastcall CanProcessFlyingCarStuff(CAutomobileSAInterface* vehicleI
6363
6464 if (vehicle->pEntity ->GetVehicleRotorState ())
6565 {
66- if (*( unsigned char *) 0x64BC03 == 0x75 ) // keep default behavior
66+ if (!pGame-> IsVehicleEngineManualModeEnabled () ) // keep default behavior
6767 return true ;
6868
6969 if (vehicle->pEntity ->GetEntityStatus () != eEntityStatus::STATUS_PHYSICS && !vehicle->pEntity ->IsBeingDriven ())
Original file line number Diff line number Diff line change @@ -6143,15 +6143,18 @@ bool CClientGame::IsWeaponRenderEnabled() const
61436143 return g_pGame->IsWeaponRenderEnabled ();
61446144}
61456145
6146- void CClientGame::SetVehicleEngineManualModeEnabled (bool isEnabled )
6146+ void CClientGame::SetVehicleEngineManualModeEnabled (bool enabled )
61476147{
6148- if (isEnabled == m_isVehEngineManualModeEnabled )
6148+ if (enabled == g_pGame-> IsVehicleEngineManualModeEnabled () )
61496149 return ;
61506150
6151- g_pGame->SetVehicleEngineManualModeEnabled (isEnabled);
6152- m_pVehicleManager->ResetNotControlledRotors (isEnabled);
6151+ g_pMultiplayer->SetVehicleEngineManualModeEnabled (enabled);
6152+ m_pVehicleManager->ResetNotControlledRotors (enabled);
6153+ }
61536154
6154- m_isVehEngineManualModeEnabled = isEnabled;
6155+ bool CClientGame::IsVehicleEngineManualModeEnabled () const
6156+ {
6157+ return g_pGame->IsVehicleEngineManualModeEnabled ();
61556158}
61566159
61576160#pragma code_seg(".text")
Original file line number Diff line number Diff line change @@ -426,8 +426,8 @@ class CClientGame
426426 void SetWeaponRenderEnabled (bool enabled);
427427 bool IsWeaponRenderEnabled () const ;
428428
429- bool IsVehicleEngineManualModeEnabled () const noexcept { return m_isVehEngineManualModeEnabled; }
430- void SetVehicleEngineManualModeEnabled ( bool isEnabled) ;
429+ void SetVehicleEngineManualModeEnabled ( bool enabled);
430+ bool IsVehicleEngineManualModeEnabled () const ;
431431
432432 void ResetWorldProperties (const ResetWorldPropsInfo& resetPropsInfo);
433433
@@ -787,8 +787,6 @@ class CClientGame
787787 // Birds Enabled
788788 bool m_bBirdsEnabled;
789789
790- bool m_isVehEngineManualModeEnabled{false };
791-
792790 unsigned long m_ulMinuteDuration;
793791
794792 CClientGUIElement* m_pClickedGUIElement;
Original file line number Diff line number Diff line change @@ -6634,6 +6634,20 @@ void CMultiplayerSA::SetAutomaticVehicleStartupOnPedEnter(bool bSet)
66346634 MemSet ((char *)0x64BC0D , 0x90 , 6 );
66356635}
66366636
6637+ void CMultiplayerSA::SetVehicleEngineManualModeEnabled (bool enabled)
6638+ {
6639+ if (enabled)
6640+ {
6641+ MemSet ((void *)0x64BC03 , 0x90 , 5 ); // prevent vehicle engine from turning on (driver enter)
6642+ MemCpy ((void *)0x6C4EA9 , " \xE9\x15\x03\x00 " , 4 ); // prevent aircraft engine from turning off (driver exit)
6643+ }
6644+ else
6645+ {
6646+ MemCpy ((void *)0x64BC03 , " \x75\x05\x80\xC9\x10 " , 5 );
6647+ MemCpy ((void *)0x6C4EA9 , " \x8A\x86\x28\x04 " , 4 );
6648+ }
6649+ }
6650+
66376651// Storage
66386652CVehicleSAInterface* pHeliKiller = NULL ;
66396653CEntitySAInterface* pHitByHeli = NULL ;
Original file line number Diff line number Diff line change @@ -333,6 +333,8 @@ class CMultiplayerSA : public CMultiplayer
333333
334334 void SetAutomaticVehicleStartupOnPedEnter (bool bSet);
335335
336+ void SetVehicleEngineManualModeEnabled (bool enabled) override ;
337+
336338 void SetPedTargetingMarkerEnabled (bool bEnable);
337339 bool IsPedTargetingMarkerEnabled ();
338340 bool IsConnected ();
Original file line number Diff line number Diff line change @@ -241,7 +241,7 @@ class __declspec(novtable) CGame
241241 virtual bool IsVehicleBurnExplosionsEnabled () const noexcept = 0 ;
242242 virtual void SetVehicleBurnExplosionsEnabled (bool isEnabled) = 0 ;
243243
244- virtual void SetVehicleEngineManualModeEnabled ( bool isEnabled) = 0 ;
244+ virtual bool IsVehicleEngineManualModeEnabled () const noexcept = 0 ;
245245
246246 virtual CWeapon* CreateWeapon () = 0 ;
247247 virtual CWeaponStat* CreateWeaponStat (eWeaponType weaponType, eWeaponSkill weaponSkill) = 0 ;
Original file line number Diff line number Diff line change @@ -444,6 +444,8 @@ class CMultiplayer
444444
445445 virtual void SetAutomaticVehicleStartupOnPedEnter (bool bSet) = 0;
446446
447+ virtual void SetVehicleEngineManualModeEnabled (bool enabled) = 0;
448+
447449 virtual void SetPedTargetingMarkerEnabled (bool bEnabled) = 0;
448450 virtual bool IsPedTargetingMarkerEnabled () = 0;
449451
You can’t perform that action at this time.
0 commit comments