summaryrefslogtreecommitdiff
path: root/cheat/internal_rewrite/packet_start.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cheat/internal_rewrite/packet_start.cpp')
-rw-r--r--cheat/internal_rewrite/packet_start.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/cheat/internal_rewrite/packet_start.cpp b/cheat/internal_rewrite/packet_start.cpp
new file mode 100644
index 0000000..a5c9db4
--- /dev/null
+++ b/cheat/internal_rewrite/packet_start.cpp
@@ -0,0 +1,26 @@
+#include "hooks.hpp"
+#include "context.hpp"
+
+void __fastcall hooks::packet_start( void* ecx, void* edx, int in_seq, int out_ack ) {
+ if( !g_ctx.run_frame( ) || !g_ctx.m_local->is_valid( ) ) {
+ *( int* )( uintptr_t( ecx ) + 0x114 ) = in_seq;
+ *( int* )( uintptr_t( ecx ) + 0x4cb4 ) = out_ack;
+ }
+
+ // okay now this is epic
+ //printf("%08x -> %08x\n", &hooks::packet_start, hooks::packet_start_o);
+
+ for( auto cmd_number = g_ctx.m_cmd_numbers.begin( ); cmd_number != g_ctx.m_cmd_numbers.end( ); ) {
+ if( *cmd_number == out_ack ) {
+ auto cl = ( uintptr_t )( ecx );
+
+ *( int* )( cl + 0x114 ) = in_seq;
+ *( int* )( cl + 0x4cb4 ) = out_ack;
+
+ g_ctx.m_cmd_numbers.erase( cmd_number );
+ return;
+ }
+
+ cmd_number++;
+ }
+} \ No newline at end of file