From 3d412a4b30a9f7c7f51ea6562e694315948bd3da Mon Sep 17 00:00:00 2001 From: boris Date: Wed, 28 Nov 2018 16:00:02 +1300 Subject: cleaned up in short, the cheat and loader are now separate solutions. unused stuff was moved into the legacy solution in case anyone wants to compile it or whatever. i can change this back if you want to. also, i configured the loader to compile in x64, and have separate build types for linux and win64 --- cheat/internal_rewrite/context.hpp | 85 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 cheat/internal_rewrite/context.hpp (limited to 'cheat/internal_rewrite/context.hpp') diff --git a/cheat/internal_rewrite/context.hpp b/cheat/internal_rewrite/context.hpp new file mode 100644 index 0000000..27f1a42 --- /dev/null +++ b/cheat/internal_rewrite/context.hpp @@ -0,0 +1,85 @@ +#pragma once +#include + +#include "util.hpp" +#include "sdk.hpp" + +NAMESPACE_REGION( context ) + +struct shot_data_t { + vec3_t m_local_pos; + vec3_t m_angle; + vec3_t m_enemy_pos; + int m_enemy_index; + int m_resolver_shots; + bool m_resolver_state; + bool m_missed{ false }; + struct { + vec3_t min; + vec3_t max; + float radius; + } m_hitbox; + int m_hitgroup; + bool m_handled{ }; + int m_hit{ }; + int m_damage{ }; + bool m_logged{ }; + matrix3x4 m_matrix[ 128 ]; +}; + +//replacement to the old global:: namespace +class c_context { +public: + //run localplayer check, pointer, is valid etc + bool run_frame( ); + float pred_time( ); + + void on_cmove_end( user_cmd_t* cmd ); + bool create_snapshot( user_cmd_t* ); + //calculate accurate tickbase + bool calculate_tickbase( ); + + user_cmd_t* get_last_cmd( ) { + return m_snapshot.empty( ) ? nullptr : &m_snapshot.front( ); + } + + bool precache_model( const char* model ); + +public: + c_base_player* m_local{ }; + int m_stage{ }; + //accurate tickbase + int m_tickbase{ }; + + bool m_revolver_shot{ }; + + bool m_drawing_postscreenspace{ }; + bool m_has_incremented_shots{ }; + bool m_drawing_screneend{ }; + float m_weapon_spread{ }; + float m_weapon_inaccuracy{ }; + + bool m_has_fired_this_frame{ }; + + float m_absyaw{ }; + vec3_t m_last_realangle{ }; + vec3_t m_last_fakeangle{ }; + vec3_t m_thirdperson_angle{ }; + vec3_t m_last_origin{ }; + + float m_fov{ 90.f }; +public: + void reset_shot_queue( ); + + int m_last_shot_ack; + int m_last_shot; + + std::array< shot_data_t, 128 > m_shot_data; + std::vector< int > m_cmd_numbers; +private: + std::deque< user_cmd_t > m_snapshot; +}; + +END_REGION + +extern context::c_context g_ctx; \ No newline at end of file -- cgit v1.2.3