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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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 );
}
|