mirror of
https://github.com/dashr9230/SA-MP.git
synced 2026-10-10 11:43:04 +08:00
[saco] Implement/match ScrUnk7C, ScrUnk58, ScrUnk41, ScrUnkA9 and ScrUnk7A; CLocalPlayer::sub_100030F0 takes a byte, so the caller pushes the slot dword with no movzx
This commit is contained in:
@@ -135,6 +135,8 @@ public:
|
||||
void sub_10003C20(); // .text:10003C20
|
||||
void sub_10003BE0(SPAWN_INFO *pSpawnInfo); // .text:10003BE0
|
||||
void sub_100040E0(BOOL bSpawn); // .text:100040E0
|
||||
void sub_100041C0(int a1); // .text:100041C0
|
||||
void sub_100030F0(BYTE a1); // .text:100030F0
|
||||
void sub_10003710(int a1, int a2); // .text:10003710
|
||||
|
||||
DWORD GetField_F0() { return field_F0; };
|
||||
|
||||
@@ -7,7 +7,8 @@ class CObject
|
||||
public:
|
||||
char _gap0[68];
|
||||
int field_44;
|
||||
char _gap48[12];
|
||||
char _gap48[11];
|
||||
BYTE field_53;
|
||||
float field_54;
|
||||
char _gap58[4403];
|
||||
int field_118B;
|
||||
@@ -19,6 +20,7 @@ public:
|
||||
void FUNC_100A9E30();
|
||||
void FUNC_100A9E70();
|
||||
void FUNC_100A80A0(VECTOR *pPos); // .text:100A80A0
|
||||
void FUNC_100A8030(); // .text:100A8030
|
||||
};
|
||||
|
||||
class CObjectPool
|
||||
|
||||
+87
-5
@@ -256,7 +256,26 @@ void ScrUnk50(RPCParameters *rpcParams)
|
||||
}
|
||||
}
|
||||
void ScrUnk63(RPCParameters *rpcParams) {}
|
||||
void ScrUnk7A(RPCParameters *rpcParams) {}
|
||||
void ScrUnk7A(RPCParameters *rpcParams)
|
||||
{
|
||||
PCHAR Data = reinterpret_cast<PCHAR>(rpcParams->input);
|
||||
int iBitLength = rpcParams->numberOfBitsOfData;
|
||||
PlayerID sender = rpcParams->sender;
|
||||
|
||||
WORD objectId;
|
||||
|
||||
RakNet::BitStream bsData(Data,(iBitLength/8)+1,false);
|
||||
|
||||
bsData.Read(objectId);
|
||||
|
||||
CObjectPool *pObjectPool = pNetGame->GetObjectPool();
|
||||
if(objectId <= MAX_OBJECTS) {
|
||||
if(pObjectPool->field_4[objectId]) {
|
||||
CObject *pObject = (CObject *)pObjectPool->field_FA4[objectId];
|
||||
if(pObject) pObject->FUNC_100A8030();
|
||||
}
|
||||
}
|
||||
}
|
||||
void ScrUnk7B(RPCParameters *rpcParams)
|
||||
{
|
||||
PCHAR Data = reinterpret_cast<PCHAR>(rpcParams->input);
|
||||
@@ -287,7 +306,22 @@ void ScrUnk7B(RPCParameters *rpcParams)
|
||||
}
|
||||
}
|
||||
}
|
||||
void ScrUnk7C(RPCParameters *rpcParams) {}
|
||||
void ScrUnk7C(RPCParameters *rpcParams)
|
||||
{
|
||||
PCHAR Data = reinterpret_cast<PCHAR>(rpcParams->input);
|
||||
int iBitLength = rpcParams->numberOfBitsOfData;
|
||||
PlayerID sender = rpcParams->sender;
|
||||
|
||||
int iUnk;
|
||||
|
||||
CPlayerPool *pPlayerPool = pNetGame->GetPlayerPool();
|
||||
|
||||
RakNet::BitStream bsData(Data,(iBitLength/8)+1,false);
|
||||
|
||||
bsData.Read(iUnk);
|
||||
|
||||
pPlayerPool->GetLocalPlayer()->sub_100041C0(iUnk);
|
||||
}
|
||||
|
||||
void ScrUnk7D(RPCParameters *rpcParams)
|
||||
{
|
||||
@@ -592,7 +626,21 @@ void ScrUnk57(RPCParameters *rpcParams)
|
||||
done:
|
||||
;
|
||||
}
|
||||
void ScrUnk58(RPCParameters *rpcParams) {}
|
||||
void ScrUnk58(RPCParameters *rpcParams)
|
||||
{
|
||||
PCHAR Data = reinterpret_cast<PCHAR>(rpcParams->input);
|
||||
int iBitLength = rpcParams->numberOfBitsOfData;
|
||||
PlayerID sender = rpcParams->sender;
|
||||
|
||||
BYTE byteUnk;
|
||||
|
||||
RakNet::BitStream bsData(Data,(iBitLength/8)+1,false);
|
||||
|
||||
bsData.Read(byteUnk);
|
||||
|
||||
CPlayerPool *pPlayerPool = pNetGame->GetPlayerPool();
|
||||
if(pPlayerPool) pPlayerPool->GetLocalPlayer()->sub_100030F0(byteUnk);
|
||||
}
|
||||
void ScrUnk59(RPCParameters *rpcParams) {}
|
||||
void ScrUnk5A(RPCParameters *rpcParams) {}
|
||||
void ScrUnk5B(RPCParameters *rpcParams)
|
||||
@@ -988,7 +1036,22 @@ void ScrUnk40(RPCParameters *rpcParams)
|
||||
RakNet::BitStream bsData(Data,(iBitLength/8)+1,false);
|
||||
bsData.Read(playerId);
|
||||
}
|
||||
void ScrUnk41(RPCParameters *rpcParams) {}
|
||||
void ScrUnk41(RPCParameters *rpcParams)
|
||||
{
|
||||
PCHAR Data = reinterpret_cast<PCHAR>(rpcParams->input);
|
||||
int iBitLength = rpcParams->numberOfBitsOfData;
|
||||
PlayerID sender = rpcParams->sender;
|
||||
|
||||
VEHICLEID vehicleId;
|
||||
BYTE byteUnk;
|
||||
|
||||
RakNet::BitStream bsData(Data,(iBitLength/8)+1,false);
|
||||
|
||||
bsData.Read(vehicleId);
|
||||
bsData.Read(byteUnk);
|
||||
|
||||
pNetGame->GetVehiclePool()->FUNC_1001EB00(vehicleId, byteUnk);
|
||||
}
|
||||
void ScrUnk42(RPCParameters *rpcParams)
|
||||
{
|
||||
PCHAR Data = reinterpret_cast<PCHAR>(rpcParams->input);
|
||||
@@ -1197,7 +1260,26 @@ void ScrUnk52(RPCParameters *rpcParams)
|
||||
}
|
||||
void ScrUnk53(RPCParameters *rpcParams) {}
|
||||
void ScrUnk54(RPCParameters *rpcParams) {}
|
||||
void ScrUnkA9(RPCParameters *rpcParams) {}
|
||||
void ScrUnkA9(RPCParameters *rpcParams)
|
||||
{
|
||||
PCHAR Data = reinterpret_cast<PCHAR>(rpcParams->input);
|
||||
int iBitLength = rpcParams->numberOfBitsOfData;
|
||||
PlayerID sender = rpcParams->sender;
|
||||
|
||||
WORD objectId;
|
||||
|
||||
RakNet::BitStream bsData(Data,(iBitLength/8)+1,false);
|
||||
|
||||
bsData.Read(objectId);
|
||||
|
||||
CObjectPool *pObjectPool = pNetGame->GetObjectPool();
|
||||
if(objectId <= MAX_OBJECTS) {
|
||||
if(pObjectPool->field_4[objectId]) {
|
||||
CObject *pObject = (CObject *)pObjectPool->field_FA4[objectId];
|
||||
if(pObject) pObject->field_53 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
void ScrUnkAD(RPCParameters *rpcParams) {}
|
||||
void ScrUnkAE(RPCParameters *rpcParams) {}
|
||||
void ScrUnkAF(RPCParameters *rpcParams) {}
|
||||
|
||||
Reference in New Issue
Block a user