summaryrefslogtreecommitdiff
path: root/cheat/gmod/aimbot.hpp
blob: 5b6ad5f370fa52b84cb388015ed41222d0c49714 (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
#pragma once
#include <deque>
#include <memory>
#include <map>

#include "sdk.hpp"
#include "console.hpp"

namespace features
{
	class c_aimbot
	{
	public:
		c_aimbot( ) = default;

	private:
		struct aim_target_t
		{
			int m_ent_index;
			vec3_t m_position;
		};

		vec3_t m_shot_dir{ }, m_last_viewangles{ };
		user_cmd_t* m_cmd{ };
		std::map< const char*, vec3_t > m_spread{ }; // sorry not sorry

		void run( );

		aim_target_t find_best_target( ) const;
		vec3_t get_entity_position( c_base_player* ent ) const;
		void aim_at_target( const aim_target_t& target );
		void fix_accuracy( vec3_t& angle );
	public:
		void operator()( user_cmd_t* cmd );
		void silent( );
		void log_shot( c_base_player* local, fire_bullets_info* info );
	};
}