From c739657b56957245da6f48d90e8de4464d90d15e Mon Sep 17 00:00:00 2001 From: RD42 <42702181+dashr9230@users.noreply.github.com> Date: Tue, 13 Aug 2024 23:13:17 +0800 Subject: [PATCH] [saco] Implement/match `CPlayerPed::RemoveWeaponWhenEnteringVehicle()` --- saco/game/playerped.cpp | 14 ++++++++++++++ saco/game/playerped.h | 1 + 2 files changed, 15 insertions(+) diff --git a/saco/game/playerped.cpp b/saco/game/playerped.cpp index 6a8e3b7..1b1214c 100644 --- a/saco/game/playerped.cpp +++ b/saco/game/playerped.cpp @@ -399,6 +399,20 @@ void CPlayerPed::SetArmedWeapon(int iWeaponType, bool bUnk) //----------------------------------------------------------- +void CPlayerPed::RemoveWeaponWhenEnteringVehicle() +{ + DWORD dwPedPtr = (DWORD)m_pPed; + + if(dwPedPtr) { + _asm mov ecx, dwPedPtr + _asm push 0 + _asm mov edx, 0x5E6370 + _asm call edx + } +} + +//----------------------------------------------------------- + WEAPON_SLOT_TYPE * CPlayerPed::GetCurrentWeaponSlot() { if(m_pPed) { diff --git a/saco/game/playerped.h b/saco/game/playerped.h index 507cabe..f15c287 100644 --- a/saco/game/playerped.h +++ b/saco/game/playerped.h @@ -48,6 +48,7 @@ public: void GiveWeapon(int iWeaponID, int iAmmo); void SetArmedWeapon(int iWeaponType, bool bUnk); void ClearAllWeapons(); + void RemoveWeaponWhenEnteringVehicle(); WEAPON_SLOT_TYPE * GetCurrentWeaponSlot(); WEAPON_SLOT_TYPE * FindWeaponSlot(DWORD dwWeapon); BOOL HasAmmoForCurrentWeapon();