From 7ccb819f867493f8ec202ea3b39c94c198c64584 Mon Sep 17 00:00:00 2001 From: JustSomePwner Date: Thu, 30 Aug 2018 14:01:54 +0200 Subject: first --- tf2/window_procedure.cpp | 59 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 tf2/window_procedure.cpp (limited to 'tf2/window_procedure.cpp') diff --git a/tf2/window_procedure.cpp b/tf2/window_procedure.cpp new file mode 100644 index 0000000..b67f9bb --- /dev/null +++ b/tf2/window_procedure.cpp @@ -0,0 +1,59 @@ +#include "hooks.h" +#include "input_system.hpp" +#include "settings.h" + +//im pretty sure half this shit is redundant rn but idrc + + +decltype( &hooks::window_procedure ) hooks::window_procedure_o; +long __stdcall hooks::window_procedure( HWND hwnd, uint32_t msg, uint32_t wparam, long lparam ) { + if( cl.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