void CNetGame::Packet_AimSync(Packet* p) { CPlayer* pPlayer = this->playerPool->GetPlayer((_PlayerID)p->playerIndex); RakNet::BitStream bsAimSync((char*)p->data, p->length, false); if(this->gameState != 1) return; uint8_t bytePacketID=0; AIM_SYNC aimSync; bsAimSync.Read(bytePacketID); #ifdef _BIG_ENDIAN_SYSTEM bsAimSync.Read(aimSync.cameraMode); bsAimSync.Read(aimSync.cameraFrontVector.X), bsAimSync.Read(aimSync.cameraFrontVector.Y), bsAimSync.Read(aimSync.cameraFrontVector.Z); bsAimSync.Read(aimSync.cameraPosition.X), bsAimSync.Read(aimSync.cameraPosition.Y), bsAimSync.Read(aimSync.cameraPosition.Z); bsAimSync.Read(aimSync.aimZaxis); bsAimSync.Read(aimSync.weaponState); bsAimSync.Read(aimSync.unknown001E); #else bsAimSync.Read((char*)&aimSync,sizeof(AIM_SYNC)); #endif if(pPlayer) pPlayer->ProcessAimingSyncData(&aimSync); }
void Packet_AimSync(Packet *p) { //Log("Packet_AimSync: %d %d", pRakServer->GetIndexFromPlayerID(p->playerId), p->length); RakNet::BitStream bsAimSync((unsigned char *)p->data, p->length, false); PLAYERID playerId = pRakServer->GetIndexFromPlayerID(p->playerId); // clear last data memset(&playerInfo[playerId].aimData, 0, sizeof(AIM_SYNC_DATA)); bsAimSync.IgnoreBits(8); bsAimSync.Read((PCHAR)&playerInfo[playerId].aimData, sizeof(AIM_SYNC_DATA)); // BROADCAST DATA RakNet::BitStream bsAimBC; bsAimBC.Write((BYTE)ID_AIM_SYNC); bsAimBC.Write((PLAYERID)playerId); bsAimBC.Write((PCHAR)&playerInfo[playerId].aimData, sizeof(AIM_SYNC_DATA)); pRakServer->Send(&bsAimBC, HIGH_PRIORITY, UNRELIABLE_SEQUENCED, 0, p->playerId, TRUE); }