Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void __thiscall BroadcastSyncData(CPlayer *this)
- {
- CPlayer *p; // esi@1
- DWORD v2; // eax@1
- BYTE v3; // al@3
- BYTE v4; // al@13
- char v5; // cl@13
- BYTE v6; // al@18
- float *v7; // ecx@26
- BYTE v8; // al@34
- char v9; // cl@34
- BYTE v10; // al@39
- WORD v11; // bx@59
- char v12; // [sp+8h] [bp-128h]@7
- float v13; // [sp+Ch] [bp-124h]@7
- float v14; // [sp+10h] [bp-120h]@1
- int v15; // [sp+12Ch] [bp-4h]@1
- p = this;
- sub_44DFF0((int)&v14);
- v2 = p->bHasSetVehiclePos;
- v15 = 0;
- if ( v2 )
- {
- v15 = -1;
- BitStream::Reset((int)&v14);
- return;
- }
- v3 = p->byteState;
- if ( v3 != 1 || p->iUpdateState != 1 )
- {
- if ( v3 != 2 || p->iUpdateState != 2 )
- {
- if ( v3 == 3 && p->iUpdateState == 3 )
- {
- if ( !p->bUpdateKeys )
- {
- p->passengerSyncData.wUDAnalog = 0;
- p->passengerSyncData.wLRAnalog = 0;
- p->passengerSyncData.wKeys = 0;
- }
- v11 = p->passengerSyncData.wKeys;
- if ( (p->passengerSyncData.bytePlayerWeapon & 0x3F) == 43 )
- p->passengerSyncData.wKeys &= 0xFBu;
- v12 = -45;
- BitStream::Write(&v12, 8, 1);
- LODWORD(v13) = p->wPlayerId;
- BitStream::Write(&v13, 16, 1);
- BitStream::WriteArray(&p->passengerSyncData, 24);
- CNetGame::BroadcastData((int)pNetGame, COERCE_FLOAT(&v14), p->wPlayerId, 1);
- p->passengerSyncData.wKeys = v11;
- }
- goto LABEL_62;
- }
- if ( !p->bUpdateKeys )
- {
- p->vehicleSyncData.wUDAnalog = 0;
- p->vehicleSyncData.wLRAnalog = 0;
- p->vehicleSyncData.wKeys = 0;
- }
- v12 = -56;
- BitStream::Write(&v12, 8, 1);
- LODWORD(v13) = p->wPlayerId;
- BitStream::Write(&v13, 16, 1);
- LODWORD(v13) = p->vehicleSyncData.wVehicleId;
- BitStream::Write(&v13, 16, 1);
- LODWORD(v13) = p->vehicleSyncData.wUDAnalog;
- BitStream::Write(&v13, 16, 1);
- LODWORD(v13) = p->vehicleSyncData.wLRAnalog;
- BitStream::Write(&v13, 16, 1);
- LODWORD(v13) = p->vehicleSyncData.wKeys;
- BitStream::Write(&v13, 16, 1);
- BitStream::WriteNormQuat(
- p->vehicleSyncData.fQuaternionAngle,
- p->vehicleSyncData.vecQuaternion.fX,
- p->vehicleSyncData.vecQuaternion.fY,
- p->vehicleSyncData.vecQuaternion.fZ);
- BitStream::WriteArray(&p->vehicleSyncData.vecPosition, 12);
- BitStream::WriteVector(
- p->vehicleSyncData.vecVelocity.fX,
- p->vehicleSyncData.vecVelocity.fY,
- p->vehicleSyncData.vecVelocity.fZ);
- LODWORD(v13) = (unsigned __int64)p->vehicleSyncData.fHealth;
- BitStream::Write(&v13, 16, 1);
- v8 = p->vehicleSyncData.bytePlayerHealth;
- v9 = 0;
- if ( v8 )
- {
- if ( v8 >= 100u )
- v9 = -16;
- else
- v9 = 16
- * (((signed int)(v8 + (-1840700269i64 * (unsigned __int64)v8 >> 32)) >> 2)
- + ((unsigned int)(v8 + (-1840700269i64 * (unsigned __int64)v8 >> 32)) >> 31));
- }
- v10 = p->vehicleSyncData.bytePlayerArmour;
- if ( v10 )
- {
- if ( v10 >= 100u )
- v9 |= 0xFu;
- else
- v9 |= ((signed int)(v10 + (-1840700269i64 * (unsigned __int64)v10 >> 32)) >> 2)
- + ((unsigned int)(v10 + (-1840700269i64 * (unsigned __int64)v10 >> 32)) >> 31);
- }
- v12 = v9;
- BitStream::Write(&v12, 8, 1);
- v12 = p->vehicleSyncData.bytePlayerWeapon & 0x3F;
- BitStream::Write(&v12, 8, 1);
- if ( p->vehicleSyncData.byteSirenState )
- WriteBool((signed int *)&v14);
- else
- sub_44E5B0((signed int *)&v14);
- if ( p->vehicleSyncData.byteGearState )
- WriteBool((signed int *)&v14);
- else
- sub_44E5B0((signed int *)&v14);
- if ( LODWORD(p->vehicleSyncData.fTrainSpeed) )
- {
- WriteBool((signed int *)&v14);
- v13 = p->vehicleSyncData.fTrainSpeed;
- BitStream::Write(&v13, 32, 1);
- }
- else
- {
- sub_44E5B0((signed int *)&v14);
- }
- v7 = &v14;
- if ( p->vehicleSyncData.wTrailerID )
- {
- WriteBool((signed int *)&v14);
- LODWORD(v13) = p->vehicleSyncData.wTrailerID;
- BitStream::Write(&v13, 16, 1);
- goto LABEL_29;
- }
- goto LABEL_28;
- }
- if ( !p->bUpdateKeys )
- {
- p->syncData.wUDAnalog = 0;
- p->syncData.wLRAnalog = 0;
- p->syncData.wKeys = 0;
- }
- v12 = -49;
- BitStream::Write(&v12, 8, 1);
- LODWORD(v13) = p->wPlayerId;
- BitStream::Write(&v13, 16, 1);
- if ( p->syncData.wUDAnalog )
- {
- WriteBool((signed int *)&v14);
- LODWORD(v13) = p->syncData.wUDAnalog;
- BitStream::Write(&v13, 16, 1);
- }
- else
- {
- sub_44E5B0((signed int *)&v14);
- }
- if ( p->syncData.wLRAnalog )
- {
- WriteBool((signed int *)&v14);
- LODWORD(v13) = p->syncData.wLRAnalog;
- BitStream::Write(&v13, 16, 1);
- }
- else
- {
- sub_44E5B0((signed int *)&v14);
- }
- LODWORD(v13) = p->syncData.wKeys;
- BitStream::Write(&v13, 16, 1);
- BitStream::WriteArray(&p->syncData.vecPosition, 12);
- BitStream::WriteNormQuat(
- p->syncData.fQuaternion[0],
- p->syncData.fQuaternion[1],
- p->syncData.fQuaternion[2],
- p->syncData.fQuaternion[3]);
- v4 = p->syncData.byteHealth;
- v5 = 0;
- if ( v4 )
- {
- if ( v4 >= 100u )
- v5 = -16;
- else
- v5 = 16
- * (((signed int)(v4 + (-1840700269i64 * (unsigned __int64)v4 >> 32)) >> 2)
- + ((unsigned int)(v4 + (-1840700269i64 * (unsigned __int64)v4 >> 32)) >> 31));
- }
- v6 = p->syncData.byteArmour;
- if ( v6 )
- {
- if ( v6 >= 100u )
- v5 |= 0xFu;
- else
- v5 |= ((signed int)(v6 + (-1840700269i64 * (unsigned __int64)v6 >> 32)) >> 2)
- + ((unsigned int)(v6 + (-1840700269i64 * (unsigned __int64)v6 >> 32)) >> 31);
- }
- v12 = v5;
- BitStream::Write(&v12, 8, 1);
- v12 = p->syncData.byteWeapon & 63;
- BitStream::Write(&v12, 8, 1);
- v12 = p->syncData.byteSpecialAction;
- BitStream::Write(&v12, 8, 1);
- BitStream::WriteVector(p->syncData.vecVelocity.fX, p->syncData.vecVelocity.fY, p->syncData.vecVelocity.fZ);
- if ( p->syncData.wSurfingInfo )
- {
- WriteBool((signed int *)&v14);
- LODWORD(v13) = p->syncData.wSurfingInfo;
- BitStream::Write(&v13, 16, 1);
- BitStream::WriteArray(&p->syncData.vecSurfing, 12);
- }
- else
- {
- sub_44E5B0((signed int *)&v14);
- }
- v7 = &v14;
- if ( !p->syncData.dwAnimationData )
- {
- LABEL_28:
- sub_44E5B0((signed int *)v7);
- goto LABEL_29;
- }
- WriteBool((signed int *)&v14);
- v13 = *(float *)&p->syncData.dwAnimationData;
- BitStream::Write(&v13, 32, 1);
- LABEL_29:
- CNetGame::BroadcastData((int)pNetGame, COERCE_FLOAT(&v14), p->wPlayerId, 1);
- LABEL_62:
- if ( p->bHasAimSync )
- {
- BitStream_Reset(&v14);
- v12 = -53;
- BitStream::Write(&v12, 8, 1);
- LODWORD(v13) = p->wPlayerId;
- BitStream::Write(&v13, 16, 1);
- BitStream::WriteArray(p, 31);
- CNetGame::BroadcastData((int)pNetGame, COERCE_FLOAT(&v14), p->wPlayerId, 1);
- p->bHasAimSync = 0;
- }
- if ( p->bHasTrailerSync )
- {
- BitStream_Reset(&v14);
- v12 = -46;
- BitStream::Write(&v12, 8, 1);
- LODWORD(v13) = p->wPlayerId;
- BitStream::Write(&v13, 16, 1);
- BitStream::WriteArray(&p->trailerSyncData, 54);
- CNetGame::BroadcastData((int)pNetGame, COERCE_FLOAT(&v14), p->wPlayerId, 1);
- p->bHasTrailerSync = 0;
- }
- if ( p->bHasUnoccupiedSync )
- {
- BitStream_Reset(&v14);
- v12 = -47;
- BitStream::Write(&v12, 8, 1);
- LODWORD(v13) = p->wPlayerId;
- BitStream::Write(&v13, 16, 1);
- BitStream::WriteArray(&p->unoccupiedSyncData, 67);
- sub_48BE00((int)pNetGame, (int)&v14, p->unoccupiedSyncData.wVehicleID, p->wPlayerId);
- p->bHasUnoccupiedSync = 0;
- }
- v15 = -1;
- BitStream::Reset((int)&v14);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement