blob: ae5fb6cfd58fcb25540a36910b6abf4d1953ee9e (
plain)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
#pragma once
#include "sdk.hpp"
#include "settings.hpp"
#include "console.hpp"
namespace features
{
class c_lagmgr {
public:
void operator()( user_cmd_t* cmd, byte* sendpacket ) {
if( !sendpacket ) return;
if( !cmd ) return;
m_cmd = cmd;
m_sendpacket = sendpacket;
if( g_settings.rage.anti_aim( ) ) {
on_antiaim( );
}
//let fakelag override whatever happened in antiaim
//this also means we will call stuff like fakewalk etc
//after this
fakelag( );
}
void on_cmove_end( ) {
if( !m_sendpacket ) return;
if( *m_sendpacket ) {
++m_sent_ticks;
m_held_ticks = 0;
}
else {
++m_held_ticks;
m_sent_ticks = 0;
}
}
void set_state( bool state ) {
*m_sendpacket = state;
}
int get_choked( ) const {
return m_held_ticks;
}
int get_sent( ) const {
return m_sent_ticks;
}
bool get_state( ) const {
return m_sendpacket ? !!*m_sendpacket : true;
}
bool is_breaking_lc( ) const {
return m_breaking_lc;
}
private:
void on_antiaim( );
void fakelag( );
user_cmd_t* m_cmd{ };
byte* m_sendpacket{ };
int m_sent_ticks{ };
int m_held_ticks{ };
bool m_breaking_lc{ };
};
}
|