From 74a59c67a0cd37bc31b78e39bf595c861a4762bc Mon Sep 17 00:00:00 2001 From: Sergey Marochkin Date: Sat, 13 Feb 2016 20:59:47 +0000 Subject: [PATCH 1/2] Standartize CVehicleSyncData quaternions --- src/CPlayerData.cpp | 44 ++++++++++++++++++++++---------------------- src/Structs.h | 5 ++--- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/src/CPlayerData.cpp b/src/CPlayerData.cpp index 49d4e99..02844de 100644 --- a/src/CPlayerData.cpp +++ b/src/CPlayerData.cpp @@ -64,7 +64,7 @@ CPlayerData::CPlayerData( WORD playerid ) memset(bCustomQuat, false, MAX_PLAYERS); memset(vecCustomPos, NULL, sizeof(CVector)); - dwFPS = 0; + dwFPS = 0; dwLastDrunkLevel = 0; wSurfingInfo = 0; @@ -87,17 +87,17 @@ CPlayerData::~CPlayerData( void ) } -bool CPlayerData::SetPlayerTeamForPlayer(WORD teamplayerid, int team) -{ +bool CPlayerData::SetPlayerTeamForPlayer(WORD teamplayerid, int team) +{ m_iTeams[teamplayerid] = team; RakNet::BitStream bs; bs.Write((WORD)teamplayerid); bs.Write((BYTE)team); - pRakServer->RPC(&RPC_SetPlayerTeam, &bs, HIGH_PRIORITY, RELIABLE_ORDERED, 0, pRakServer->GetPlayerIDFromIndex(wPlayerID), 0, 0); - return true; -} - + pRakServer->RPC(&RPC_SetPlayerTeam, &bs, HIGH_PRIORITY, RELIABLE_ORDERED, 0, pRakServer->GetPlayerIDFromIndex(wPlayerID), 0, 0); + return true; +} + int CPlayerData::GetPlayerTeamForPlayer(WORD teamplayerid) { CPlayer *p = pNetGame->pPlayerPool->pPlayer[teamplayerid]; @@ -106,9 +106,9 @@ int CPlayerData::GetPlayerTeamForPlayer(WORD teamplayerid) return p->spawn.byteTeam; } return m_iTeams[teamplayerid]; -} - - +} + + bool CPlayerData::SetPlayerSkinForPlayer(WORD skinplayerid, int skin) { m_iSkins[skinplayerid] = skin; @@ -117,9 +117,9 @@ bool CPlayerData::SetPlayerSkinForPlayer(WORD skinplayerid, int skin) bs.Write((int)skinplayerid); bs.Write((int)skin); pRakServer->RPC(&RPC_SetPlayerSkin, &bs, HIGH_PRIORITY, RELIABLE_ORDERED, 0, pRakServer->GetPlayerIDFromIndex(wPlayerID), 0, 0); - return true; -} - + return true; +} + int CPlayerData::GetPlayerSkinForPlayer(WORD skinplayerid) { CPlayer *p = pNetGame->pPlayerPool->pPlayer[skinplayerid]; @@ -130,8 +130,8 @@ int CPlayerData::GetPlayerSkinForPlayer(WORD skinplayerid) return m_iSkins[skinplayerid]; } -bool CPlayerData::SetPlayerNameForPlayer(WORD nameplayerid, char *name) -{ +bool CPlayerData::SetPlayerNameForPlayer(WORD nameplayerid, char *name) +{ memcpy(&m_szNames[nameplayerid], name, MAX_PLAYER_NAME); BYTE len = static_cast(strlen(name)); @@ -141,10 +141,10 @@ bool CPlayerData::SetPlayerNameForPlayer(WORD nameplayerid, char *name) bs.Write(name, len); bs.Write((BYTE)1); - pRakServer->RPC(&RPC_SetPlayerName, &bs, HIGH_PRIORITY, RELIABLE_ORDERED, 0, pRakServer->GetPlayerIDFromIndex(wPlayerID), 0, 0); + pRakServer->RPC(&RPC_SetPlayerName, &bs, HIGH_PRIORITY, RELIABLE_ORDERED, 0, pRakServer->GetPlayerIDFromIndex(wPlayerID), 0, 0); return true; } - + char *CPlayerData::GetPlayerNameForPlayer(WORD nameplayerid) { if (!m_szNames[nameplayerid][0]) @@ -162,9 +162,9 @@ bool CPlayerData::SetPlayerFightingStyleForPlayer(WORD styleplayerid, int style) bs.Write((WORD)styleplayerid); bs.Write((BYTE)style); pRakServer->RPC(&RPC_SetFightingStyle, &bs, HIGH_PRIORITY, RELIABLE_ORDERED, 0, pRakServer->GetPlayerIDFromIndex(wPlayerID), 0, 0); - return true; -} - + return true; +} + int CPlayerData::GetPlayerFightingStyleForPlayer(WORD styleplayerid) { CPlayer *p = pNetGame->pPlayerPool->pPlayer[styleplayerid]; @@ -429,7 +429,7 @@ void RebuildSyncData(RakNet::BitStream *bsSync, WORD toplayerid) WORD keys = p->vehicleSyncData.wKeys &= ~pPlayerData[playerid]->dwDisabledKeys; bsSync->Write(keys); - bsSync->WriteNormQuat(p->vehicleSyncData.fQuaternionAngle, p->vehicleSyncData.vecQuaternion.fX, p->vehicleSyncData.vecQuaternion.fY, p->vehicleSyncData.vecQuaternion.fZ); + bsSync->WriteNormQuat(p->vehicleSyncData.fQuaternion[0], p->vehicleSyncData.fQuaternion[1], p->vehicleSyncData.fQuaternion[2], p->vehicleSyncData.fQuaternion[0]); bsSync->Write((char*)&p->vehicleSyncData.vecPosition, sizeof(CVector)); bsSync->WriteVector(p->vehicleSyncData.vecVelocity.fX, p->vehicleSyncData.vecVelocity.fY, p->vehicleSyncData.vecVelocity.fZ); bsSync->Write((WORD)p->vehicleSyncData.fHealth); @@ -497,4 +497,4 @@ void RebuildSyncData(RakNet::BitStream *bsSync, WORD toplayerid) break; } } -} \ No newline at end of file +} diff --git a/src/Structs.h b/src/Structs.h index 08ade71..686b03d 100644 --- a/src/Structs.h +++ b/src/Structs.h @@ -40,7 +40,7 @@ #include #include -#include +//#include class CGangZonePool; @@ -129,8 +129,7 @@ struct CVehicleSyncData WORD wUDAnalog; // 0x0021 - 0x0023 WORD wLRAnalog; // 0x0023 - 0x0025 WORD wKeys; // 0x0025 - 0x0027 - float fQuaternionAngle; // 0x0027 - 0x002B - CVector vecQuaternion; // 0x002B - 0x0037 + float fQuaternion[4]; // 0x0027 - 0x0037 CVector vecPosition; // 0x0037 - 0x0043 CVector vecVelocity; // 0x0043 - 0x004F float fHealth; // 0x004F - 0x0053 From 2c88f2d9900915638704b027f1a0c13725733f8b Mon Sep 17 00:00:00 2001 From: Sergey Marochkin Date: Sat, 13 Feb 2016 21:21:20 +0000 Subject: [PATCH 2/2] sampgdk fix --- src/Structs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Structs.h b/src/Structs.h index 686b03d..f58f784 100644 --- a/src/Structs.h +++ b/src/Structs.h @@ -40,7 +40,7 @@ #include #include -//#include +#include class CGangZonePool;