#ifndef GLOBALVARS_BASE_H
#define GLOBALVARS_BASE_H

#ifdef _WIN32
#pragma once
#endif

class CSaveRestoreData;

class CGlobalVarsBase
{
public:

	CGlobalVarsBase(bool bIsClient);

	bool IsClient() const;

	int GetNetworkBase(int nTick, int nEntity);

public:

	float			realtime;
	int				framecount;
	float			absoluteframetime;

	float     absoluteframestarttimestddev;    

	float			curtime;

	float			frametime;
	int				maxClients;

	int				tickcount;

	float			interval_per_tick;

	float			interpolation_amount;
	int				simTicksThisFrame;

	int				network_protocol;

	CSaveRestoreData* pSaveData;

private:
	bool			m_bClient;

	bool      m_bRemoteClient;               

	int				nTimestampNetworkingBase;
	int				nTimestampRandomizeWindow;

};

inline int CGlobalVarsBase::GetNetworkBase(int nTick, int nEntity)
{
	int nEntityMod = nEntity % nTimestampRandomizeWindow;
	int nBaseTick = nTimestampNetworkingBase * (int)((nTick - nEntityMod) / nTimestampNetworkingBase);
	return nBaseTick;
}

inline CGlobalVarsBase::CGlobalVarsBase(bool bIsClient) :
	m_bClient(bIsClient),
	nTimestampNetworkingBase(100),
	nTimestampRandomizeWindow(32)
{
}

inline bool CGlobalVarsBase::IsClient() const
{
	return m_bClient;
}

#endif  