Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct LagRecord_t
- {
- LagRecord_t();
- float m_flSimulationTime;
- bool m_bValidRecord;
- SDK::Vector m_vecAngles;
- SDK::Vector m_vecOrigin;
- SDK::Vector m_vecPreviousAngles;
- SDK::Vector m_vecPreviousOrigin;
- float m_flPreviousSimulationTime;
- };
- class CTimeSimulator
- {
- public:
- //Singleton
- static CTimeSimulator* Get() { static CTimeSimulator m_sTimeSimulator; return &m_sTimeSimulator; }
- void Cache();
- bool ProcessCmd(int iTargetIndex, SDK::CUserCmd* pCmd);
- float HandlePlayersTick();
- void BacktrackPlayer(SDK::CBaseEntity *pPlayer, float flTargetTime);
- // keep a list of lag records for each player
- std::vector< SDK::LagRecord > m_PlayerTrack[128];
- // Scratchpad for determining what needs to be restored
- bool m_bNeedToRestore;
- SDK::LagRecord m_RestoreData[128]; // player data before we moved him back
- SDK::LagRecord m_ChangeData[128]; // player data where we moved him back
- SDK::CBaseEntity *m_pCurrentPlayer; // The player we are doing lag compensation for
- float m_flTeleportDistanceSqr;
- bool m_isCurrentlyDoingCompensation; // Sentinel to prevent calling StartLagCompensation a second time before a Finish.
- void BacktrackEntity(SDK::CBaseEntity *pPlayer, float flTargetTime);
- private:
- LagRecord_t m_PlayerTable[MAX_PLAYERS];
- LagRecord_t m_PrevPlayerTable[MAX_PLAYERS];
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement