Created
June 18, 2020 12:39
-
-
Save AmyrAhmady/c8ba437e8e65f678070577c7c4c16740 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void __thiscall CNetGame::Packet_VehicleSync(stSAMP *this, int a2) | |
{ | |
stSAMP *v2; // ebp | |
bool v3; // zf | |
_BYTE *v4; // edx | |
char v5; // al | |
char v6; // cl | |
struct stRemotePlayer *v7; // eax | |
stRemotePlayerData *v8; // eax | |
char a2a; // [esp+Ch] [ebp-174h] | |
char v10; // [esp+Dh] [ebp-173h] | |
char v11; // [esp+Eh] [ebp-172h] | |
unsigned __int8 v12; // [esp+Fh] [ebp-171h] | |
unsigned __int16 v13; // [esp+10h] [ebp-170h] | |
unsigned __int16 v14; // [esp+14h] [ebp-16Ch] | |
int a3; // [esp+18h] [ebp-168h] | |
int v16; // [esp+1Ch] [ebp-164h] | |
stInCarData v17; // [esp+20h] [ebp-160h] | |
BitStream v18; // [esp+60h] [ebp-120h] | |
int v19; // [esp+17Ch] [ebp-4h] | |
v2 = this; | |
BitStream::BitStream(&v18, *(a2 + 16), *(a2 + 8), 0); | |
v3 = v2->iGameState == 5; | |
v19 = 0; | |
v11 = 0; | |
if ( v3 ) | |
{ | |
v4 = *(a2 + 16); | |
memset(&v17, 0, 0x3Cu); | |
*(v17.HydraThrustAngle + 1) = 0; | |
HIBYTE(v17.fBikeSideAngle) = 0; | |
a3 = 0; | |
if ( *v4 == 40 ) | |
{ | |
BitStream::Read(&v18, &v11, 8, 1); | |
BitStream::Read(&v18, &a3, 32, 1); | |
} | |
BitStream::Read(&v18, &v11, 8, 1); | |
BitStream::Read(&v18, &v14, 16, 1); | |
BitStream::Read(&v18, &v17, 16, 1); | |
BitStream::Read(&v18, &v17.sLeftRightKeys, 16, 1); | |
BitStream::Read(&v18, &v17.sUpDownKeys, 16, 1); | |
BitStream::Read(&v18, &v17.sKeys, 16, 1); | |
BitStream::ReadNormQuat(&v18, v17.fQuaternion, &v17.fQuaternion[1], &v17.fQuaternion[2], &v17.fQuaternion[3]); | |
BitStream::ReadString(&v18, v17.fPosition, 0xCu); | |
BitStream::ReadVector(&v18, v17.fMoveSpeed, &v17.fMoveSpeed[1], &v17.fMoveSpeed[2]); | |
BitStream::Read(&v18, &v13, 16, 1); | |
v16 = v13; | |
v17.fVehicleHealth = v13; | |
BitStream::Read(&v18, &v12, 8, 1); | |
v5 = v12 & 0xF; | |
v6 = v12 >> 4; | |
if ( (v12 & 0xF) == 15 ) | |
{ | |
v17.byteArmor = 100; | |
} | |
else if ( v5 ) | |
{ | |
v17.byteArmor = 7 * v5; | |
} | |
else | |
{ | |
v17.byteArmor = 0; | |
} | |
if ( v6 == 15 ) | |
{ | |
v17.bytePlayerHealth = 100; | |
} | |
else if ( v6 ) | |
{ | |
v17.bytePlayerHealth = 7 * (v12 >> 4); | |
} | |
else | |
{ | |
v17.bytePlayerHealth = 0; | |
} | |
v10 = 0; | |
BitStream::Read(&v18, &v10, 8, 1); | |
v17.byteCurrentWeapon ^= (v10 ^ v17.byteCurrentWeapon) & 0x3F; | |
BitStream::ReadBit(&v18, &a2a); | |
if ( a2a ) | |
v17.byteSiren = 1; | |
BitStream::ReadBit(&v18, &a2a); | |
if ( a2a ) | |
v17.byteLandingGearState = 1; | |
BitStream::ReadBit(&v18, &a2a); | |
if ( a2a ) | |
BitStream::Read(&v18, &v17.fTrainSpeed, 32, 1); | |
BitStream::ReadBit(&v18, &a2a); | |
if ( a2a ) | |
BitStream::Read(&v18, &v17.sTrailerID, 16, 1); | |
if ( v14 <= 0x3ECu ) | |
{ | |
v7 = v2->pPools->pPlayer->pRemotePlayer[v14]; | |
if ( v7 ) | |
{ | |
v8 = v7->pPlayerData; | |
if ( v8 ) | |
CRemotePlayerData::StoreInCarFullSyncData(v8, &v17, a3); | |
} | |
} | |
} | |
v19 = -1; | |
BitStream::Deallocate(&v18); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment