[saco] Implement/match ScrUnk5A; FUNC_100ABDD0 and FUNC_100ABDF0 take ecx, so both are CPlayerPed methods and the xor feeds the setter

This commit is contained in:
ricardoofnl
2026-09-05 10:02:14 +07:00
parent f39b2c3da9
commit 0d9a1c9f3c
2 changed files with 25 additions and 1 deletions
+2
View File
@@ -211,6 +211,8 @@ public:
BOOL FUNC_100ACE40(); // .text:100ACE40
void FUNC_100ACF00(int a1); // .text:100ACF00
BOOL FUNC_100AD860(); // .text:100AD860
int FUNC_100ABDD0(); // .text:100ABDD0
void FUNC_100ABDF0(int a1); // .text:100ABDF0
void FUNC_100AD880(); // .text:100AD880
void FUNC_100AC720(); // .text:100AC720
void FUNC_100AEC90(); // .text:100AEC90
+23 -1
View File
@@ -708,7 +708,29 @@ void ScrUnk58(RPCParameters *rpcParams)
if(pPlayerPool) pPlayerPool->GetLocalPlayer()->sub_100030F0(byteUnk);
}
void ScrUnk59(RPCParameters *rpcParams) {}
void ScrUnk5A(RPCParameters *rpcParams) {}
void ScrUnk5A(RPCParameters *rpcParams)
{
PCHAR Data = reinterpret_cast<PCHAR>(rpcParams->input);
int iBitLength = rpcParams->numberOfBitsOfData;
PlayerID sender = rpcParams->sender;
VECTOR vecMoveSpeed;
RakNet::BitStream bsData(Data,(iBitLength/8)+1,false);
bsData.Read(vecMoveSpeed.X);
bsData.Read(vecMoveSpeed.Y);
bsData.Read(vecMoveSpeed.Z);
CPlayerPed *pPlayerPed = pGame->FindPlayerPed();
if(pPlayerPed) {
if(pPlayerPed->FUNC_100AD860()) {
pPlayerPed->FUNC_100ABDF0(pPlayerPed->FUNC_100ABDD0() ^ 3);
}
pPlayerPed->SetMoveSpeedVector(vecMoveSpeed);
}
}
void ScrUnk5B(RPCParameters *rpcParams)
{
PCHAR Data = reinterpret_cast<PCHAR>(rpcParams->input);