-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRageBackTracking.cpp
47 lines (42 loc) · 1.4 KB
/
RageBackTracking.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include "Hooks.h"
#include "RageBackTracking.h"
#include "Ragebot.h"
#include "Resolver.h"
#include "AntiAims.h"
static std::deque<CIncomingSequence>sequences;
static int lastincomingsequencenumber;
int Real_m_nInSequencenumber;
void CBacktracking::UpdateIncomingSequences()
{
if (csgo->client_state)
{
if (csgo->client_state->pNetChannel)
{
if (csgo->client_state->pNetChannel->iInSequenceNr > lastincomingsequencenumber)
{
lastincomingsequencenumber = csgo->client_state->pNetChannel->iInSequenceNr;
sequences.push_front(CIncomingSequence(csgo->client_state->pNetChannel->iInReliableState, csgo->client_state->pNetChannel->iOutReliableState,
csgo->client_state->pNetChannel->iInSequenceNr, interfaces.global_vars->realtime));
}
if (sequences.size() > 2048)
sequences.pop_back();
}
}
}
void CBacktracking::ClearIncomingSequences()
{
sequences.clear();
}
void CBacktracking::AddLatencyToNetchan(INetChannel* netchan, float Latency)
{
for (auto& seq : sequences)
{
if (interfaces.global_vars->realtime - seq.curtime >= Latency
|| interfaces.global_vars->realtime - seq.curtime > 1)
{
netchan->iInReliableState = seq.inreliablestate;
netchan->iInSequenceNr = seq.sequencenr;
break;
}
}
}