64 lines
1.4 KiB
C++
64 lines
1.4 KiB
C++
//////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Game Source Code
|
|
//
|
|
// File: XClientSnapshot.cpp
|
|
// Description: Snapshot manager class.
|
|
//
|
|
// History:
|
|
// - August 14, 2001: Created by Alberto Demichelis
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#include "stdafx.h"
|
|
#include "XClientSnapshot.h"
|
|
#include "Stream.h"
|
|
|
|
///////////////////////////////////////////////
|
|
CXClientSnapshot::CXClientSnapshot()
|
|
{
|
|
sv_maxcmdrate = GetISystem()->GetIConsole()->GetCVar("sv_maxcmdrate");
|
|
|
|
Reset();
|
|
SetSendPerSecond(0);
|
|
|
|
|
|
// m_bFirstOne = true;
|
|
}
|
|
|
|
///////////////////////////////////////////////
|
|
CXClientSnapshot::~CXClientSnapshot()
|
|
{
|
|
}
|
|
|
|
///////////////////////////////////////////////
|
|
bool CXClientSnapshot::IsTimeToSend(float fFrameTimeInSec)
|
|
{
|
|
int iServerMax = sv_maxcmdrate->GetIVal();
|
|
int iSendPerSecond = min(iServerMax,(int)m_cSendPerSecond);
|
|
|
|
unsigned int nTimeToUpdate = 1000/iSendPerSecond;
|
|
|
|
m_nTimer += (unsigned int)(fFrameTimeInSec*1000.0f);
|
|
|
|
if(m_nTimer >= nTimeToUpdate)
|
|
return true;
|
|
|
|
return false;
|
|
}
|
|
|
|
///////////////////////////////////////////////
|
|
void CXClientSnapshot::Reset()
|
|
{
|
|
m_ReliableStream.Reset();
|
|
m_UnreliableStream.Reset();
|
|
m_nTimer = 0;
|
|
}
|
|
|
|
///////////////////////////////////////////////
|
|
void CXClientSnapshot::SetSendPerSecond(BYTE cSendPerSecond)
|
|
{
|
|
m_cSendPerSecond = cSendPerSecond?cSendPerSecond:25;
|
|
}
|
|
|