Skip to content

Commit 4fcf748

Browse files
committed
Move Is/SetVehicleEngineManualModeEnabled back to MultiplayerSA
1 parent 0a6e8ea commit 4fcf748

File tree

8 files changed

+33
-30
lines changed

8 files changed

+33
-30
lines changed

Client/game_sa/CGameSA.cpp

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

Client/game_sa/CGameSA.h

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

Client/game_sa/CVehicleSA.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
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"
@@ -28,7 +30,8 @@
2830
#include "gamesa_renderware.h"
2931
#include "CFireManagerSA.h"
3032

31-
extern CGameSA* pGame;
33+
extern CCoreInterface* g_pCore;
34+
extern CGameSA* pGame;
3235

3336
static 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())

Client/mods/deathmatch/logic/CClientGame.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6145,16 +6145,16 @@ bool CClientGame::IsWeaponRenderEnabled() const
61456145

61466146
void 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

61556155
bool CClientGame::IsVehicleEngineManualModeEnabled() const
61566156
{
6157-
return g_pGame->IsVehicleEngineManualModeEnabled();
6157+
return g_pMultiplayer->IsVehicleEngineManualModeEnabled();
61586158
}
61596159

61606160
#pragma code_seg(".text")

Client/multiplayer_sa/CMultiplayerSA.cpp

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

Client/multiplayer_sa/CMultiplayerSA.h

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

Client/sdk/game/CGame.h

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

Client/sdk/multiplayer/CMultiplayer.h

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

0 commit comments

Comments
 (0)