From 653054feaf77d009182f30fd44e0c6a69ee44b8a Mon Sep 17 00:00:00 2001 From: ricardoofnl Date: Thu, 3 Sep 2026 02:08:43 +0700 Subject: [PATCH] [saco] Match `SetRaceCheckpoint`; the size read reuses the fX temp --- saco/net/netrpc.cpp | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/saco/net/netrpc.cpp b/saco/net/netrpc.cpp index b9b066b..36b564c 100644 --- a/saco/net/netrpc.cpp +++ b/saco/net/netrpc.cpp @@ -77,7 +77,40 @@ void DisableCheckpoint(RPCParameters *rpcParams) { pGame->m_bCheckpointsEnabled = FALSE; } -void SetRaceCheckpoint(RPCParameters *rpcParams) {} +// MATCH +void SetRaceCheckpoint(RPCParameters *rpcParams) +{ + PCHAR Data = reinterpret_cast(rpcParams->input); + int iBitLength = rpcParams->numberOfBitsOfData; + + BYTE byteType; + float fX, fY, fZ; + VECTOR vecPos, vecNext; + + RakNet::BitStream bsData(Data,(iBitLength/8)+1,false); + bsData.Read(byteType); + + bsData.Read(fX); + bsData.Read(fY); + bsData.Read(fZ); + + vecPos.X = fX; + vecPos.Y = fY; + vecPos.Z = fZ; + + bsData.Read(fX); + bsData.Read(fY); + bsData.Read(fZ); + + vecNext.X = fX; + vecNext.Y = fY; + vecNext.Z = fZ; + + bsData.Read(fX); + + pGame->SetRaceCheckpointInformation(byteType,&vecPos,&vecNext,fX); + pGame->m_bRaceCheckpointsEnabled = TRUE; +} // MATCH void DisableRaceCheckpoint(RPCParameters *rpcParams) {