void CClientPacketRecorder::ReadLocalData(FILE* pFile) { // Grab the local player CClientPlayer* pPlayer = m_pManager->GetPlayerManager()->GetLocalPlayer(); if (pPlayer) { // Grab the vehicle CClientVehicle* pVehicle = pPlayer->GetOccupiedVehicle(); if (pVehicle) { // Temp vars CMatrix matVehicle; CVector vecMoveSpeed; CVector vecTurnSpeed; float fHealth; // Read it out fread(&matVehicle.vRight.fX, sizeof(float), 1, pFile); fread(&matVehicle.vRight.fY, sizeof(float), 1, pFile); fread(&matVehicle.vRight.fZ, sizeof(float), 1, pFile); fread(&matVehicle.vFront.fX, sizeof(float), 1, pFile); fread(&matVehicle.vFront.fY, sizeof(float), 1, pFile); fread(&matVehicle.vFront.fZ, sizeof(float), 1, pFile); fread(&matVehicle.vUp.fX, sizeof(float), 1, pFile); fread(&matVehicle.vUp.fY, sizeof(float), 1, pFile); fread(&matVehicle.vUp.fZ, sizeof(float), 1, pFile); fread(&matVehicle.vPos.fX, sizeof(float), 1, pFile); fread(&matVehicle.vPos.fY, sizeof(float), 1, pFile); fread(&matVehicle.vPos.fZ, sizeof(float), 1, pFile); fread(&vecMoveSpeed.fX, sizeof(float), 1, pFile); fread(&vecMoveSpeed.fY, sizeof(float), 1, pFile); fread(&vecMoveSpeed.fZ, sizeof(float), 1, pFile); fread(&vecTurnSpeed.fX, sizeof(float), 1, pFile); fread(&vecTurnSpeed.fY, sizeof(float), 1, pFile); fread(&vecTurnSpeed.fZ, sizeof(float), 1, pFile); fread(&fHealth, sizeof(float), 1, pFile); CControllerState cs; fread(&cs, sizeof(CControllerState), 1, pFile); // Set the data pVehicle->SetMatrix(matVehicle); pVehicle->SetMoveSpeed(vecMoveSpeed); pVehicle->SetTurnSpeed(vecTurnSpeed); pVehicle->SetHealth(fHealth); // Set the controller state CControllerState csLast; g_pGame->GetPad()->Disable(true); g_pGame->GetPad()->GetCurrentControllerState(&csLast); g_pGame->GetPad()->SetLastControllerState(&csLast); g_pGame->GetPad()->SetCurrentControllerState(&cs); } } }