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/window_procedure.cpp | 58 +++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 cheat/internal_rewrite/window_procedure.cpp (limited to 'cheat/internal_rewrite/window_procedure.cpp') diff --git a/cheat/internal_rewrite/window_procedure.cpp b/cheat/internal_rewrite/window_procedure.cpp new file mode 100644 index 0000000..ffe9ccb --- /dev/null +++ b/cheat/internal_rewrite/window_procedure.cpp @@ -0,0 +1,58 @@ +#include "hooks.hpp" +#include "input_system.hpp" +#include "settings.hpp" + +decltype( &hooks::window_procedure ) hooks::window_procedure_o; +long __stdcall hooks::window_procedure( HWND hwnd, uint32_t msg, uint32_t wparam, long lparam ) { + if ( g_csgo.m_panic ) { + return CallWindowProcA( ( WNDPROC )window_procedure_o, hwnd, msg, wparam, lparam ); + } + + if ( msg == WM_ACTIVATE && wparam == WA_INACTIVE ) { + g_input.clear_keys( ); + } + + if ( msg == WM_MOUSEMOVE ) { + g_input.capture_mouse_move( lparam ); + g_con->get_input( )->capture_mouse_move( lparam ); + } + + static auto con_pressed = false; + if( g_con->get_input( )->is_key_pressed( KEYS_HOME ) ) { + if( !con_pressed ) { + if( !g_con->m_open ) { + g_con->m_consuming_input = true; + } + + g_con->m_open ^= 1; + } + + con_pressed = true; + } + else con_pressed = false; + + if( g_con->get_input( )->register_key_press( VirtualKeyEvents_t( msg ), VirtualKeys_t( wparam ) ) ) { + if( g_con->m_open ) return false; + } + + if( !g_con->m_open ) { + static bool was_pressed = false; + if( g_input.is_key_pressed( KEYS_INSERT ) ) { + if( !was_pressed ) { + g_settings.menu.open ^= 1; + + was_pressed = true; + } + } + else { + was_pressed = false; + } + + if( g_input.register_key_press( VirtualKeyEvents_t( msg ), VirtualKeys_t( wparam ) ) + && g_settings.menu.open ) { + return false; + } + } + + return CallWindowProcA( ( WNDPROC )window_procedure_o, hwnd, msg, wparam, lparam ); +} \ No newline at end of file -- cgit v1.2.3