summaryrefslogtreecommitdiff
path: root/gmod/is_paused.cpp
diff options
context:
space:
mode:
authorJustSomePwner <crotchyalt@gmail.com>2018-08-30 14:01:54 +0200
committerJustSomePwner <crotchyalt@gmail.com>2018-08-30 14:01:54 +0200
commit7ccb819f867493f8ec202ea3b39c94c198c64584 (patch)
tree94622e61af0ff359e3d6689cf274d74f60b2492a /gmod/is_paused.cpp
parent564d979b79e8a5aaa5014eba0ecd36c61575934f (diff)
first
Diffstat (limited to 'gmod/is_paused.cpp')
-rw-r--r--gmod/is_paused.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/gmod/is_paused.cpp b/gmod/is_paused.cpp
new file mode 100644
index 0000000..48916a4
--- /dev/null
+++ b/gmod/is_paused.cpp
@@ -0,0 +1,19 @@
+#include "mem.hpp"
+#include "hooks.hpp"
+
+bool __fastcall hooks::is_paused( void* ecx_, void* edx_ ) {
+ static auto return_addr = pattern::first_code_match( g_csgo.m_chl.dll( ), xors( "FF D0 A1 ? ? ? ? B9 ? ? ? ? D9 1D ? ? ? ? FF 50 34 85 C0 74 22 8B 0D" ), 0x29 );
+ static auto is_paused_o = g_csgo.m_engine->get_old_function< decltype( &is_paused ) >( 91 );
+
+ stack_t stack( get_baseptr( ) );
+ uintptr_t return_address = stack.return_address( );
+
+ //printf( "return address: %08x sig: %08x deref: %08x delta: %08x delta: %08x\n", return_address, return_addr, *( uintptr_t* )return_addr, return_address - return_addr, return_addr - return_address );
+
+ if( return_address == return_addr ) {
+ printf( "extrapolate\n" );
+ return true;
+ }
+
+ return is_paused_o( ecx_, 0 );
+} \ No newline at end of file