summaryrefslogtreecommitdiff
path: root/internal_rewrite/player_manager.cpp
diff options
context:
space:
mode:
authorJustSomePwner <crotchyalt@gmail.com>2018-08-30 14:01:54 +0200
committerJustSomePwner <crotchyalt@gmail.com>2018-08-30 14:01:54 +0200
commit7ccb819f867493f8ec202ea3b39c94c198c64584 (patch)
tree94622e61af0ff359e3d6689cf274d74f60b2492a /internal_rewrite/player_manager.cpp
parent564d979b79e8a5aaa5014eba0ecd36c61575934f (diff)
first
Diffstat (limited to 'internal_rewrite/player_manager.cpp')
-rw-r--r--internal_rewrite/player_manager.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/internal_rewrite/player_manager.cpp b/internal_rewrite/player_manager.cpp
new file mode 100644
index 0000000..f76b363
--- /dev/null
+++ b/internal_rewrite/player_manager.cpp
@@ -0,0 +1,44 @@
+#include "player_manager.hpp"
+#include "base_cheat.hpp"
+#include "context.hpp"
+
+namespace features
+{
+ void c_player_record::update( int ent_index ) {
+ auto ent = g_csgo.m_entlist( )->GetClientEntity< >( ent_index );
+ if( !ent ) { clear( ); return; }
+
+ if( ent != m_ent || ent->m_flSimulationTime( ) > g_csgo.m_globals->m_curtime + 1.f )
+ clear( );
+
+ m_ent = ent;
+ if( !ent->is_valid( ) )
+ return;
+
+ update_simtime( );
+ update_antiaim( );
+
+ update_cheater( );
+ }
+
+ bool c_player_manager::is_cheater( int ent_index ) {
+#ifdef _DEBUG
+ static con_var< bool > dbg_nocheater{ &data::holder_, fnv( "dbg_nocheater" ) };
+ if( dbg_nocheater( ) )
+ return true;
+#endif
+
+ return m_players[ ent_index ].is_cheater( );
+ }
+
+ void c_player_manager::frame_stage_notify( ) {
+ if( !g_ctx.m_local ) return;
+
+ for( int i{ 1 }; i < 65; ++i ) {
+ if( i == g_csgo.m_engine( )->GetLocalPlayer( ) )
+ continue;
+
+ m_players[ i ].update( i );
+ }
+ }
+} \ No newline at end of file