Skip to content

Commit 8e999e3

Browse files
committed
Move SetVehicleEngineManualModeEnabled() to appropriate module
1 parent c3eb37e commit 8e999e3

File tree

9 files changed

+31
-26
lines changed

9 files changed

+31
-26
lines changed

Client/game_sa/CGameSA.cpp

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff 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-
947933
bool CGameSA::PerformChecks()
948934
{
949935
std::map<std::string, SCheatSA*>::iterator it;

Client/game_sa/CGameSA.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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);

Client/game_sa/CVehicleSA.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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())

Client/mods/deathmatch/logic/CClientGame.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff 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")

Client/mods/deathmatch/logic/CClientGame.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff 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;

Client/multiplayer_sa/CMultiplayerSA.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff 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
66386652
CVehicleSAInterface* pHeliKiller = NULL;
66396653
CEntitySAInterface* pHitByHeli = NULL;

Client/multiplayer_sa/CMultiplayerSA.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff 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();

Client/sdk/game/CGame.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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;

Client/sdk/multiplayer/CMultiplayer.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)