From 371a18f0090eef32a0114ff4148b2ebc8bc6a6e5 Mon Sep 17 00:00:00 2001 From: ricardoofnl Date: Sat, 5 Sep 2026 08:09:57 +0700 Subject: [PATCH] [saco] Implement/match `CPlayerPed::FUNC_100AE960`; the result local is declared before the ped pointer, which is what orders the two stack slots --- saco/game/playerped.cpp | 15 +++++++++++++++ saco/game/playerped.h | 1 + 2 files changed, 16 insertions(+) diff --git a/saco/game/playerped.cpp b/saco/game/playerped.cpp index 7fb0279..6bea3d1 100644 --- a/saco/game/playerped.cpp +++ b/saco/game/playerped.cpp @@ -1894,6 +1894,21 @@ int CPlayerPed::FUNC_100AC690() } //----------------------------------------------------------- +int CPlayerPed::FUNC_100AE960(int a1) +{ + int iResult; + DWORD dwPedPtr = (DWORD)m_pPed; + + _asm mov edi, dwPedPtr + _asm mov eax, a1 + _asm mov edx, [edi+eax*4+0x488] + _asm mov eax, [edx+0x14] + _asm mov iResult, eax + + return iResult; +} +//----------------------------------------------------------- + struc_13 * CPlayerPed::FUNC_100AE5D0() { if(m_bytePlayerNumber) return FUNC_100B43D0(m_bytePlayerNumber); diff --git a/saco/game/playerped.h b/saco/game/playerped.h index 74a6d25..25eedf6 100644 --- a/saco/game/playerped.h +++ b/saco/game/playerped.h @@ -195,6 +195,7 @@ public: int FUNC_100AEF60(); // .text:100AEF60 int FUNC_100AC690(); // .text:100AC690 + int FUNC_100AE960(int a1); // .text:100AE960 struc_13 * FUNC_100AE5D0(); // .text:100AE5D0