diff options
| author | navewindre <boneyaard@gmail.com> | 2018-11-26 13:43:26 +0100 |
|---|---|---|
| committer | navewindre <boneyaard@gmail.com> | 2018-11-26 13:43:26 +0100 |
| commit | 7cd2571c16edf9d6b442a0093ed0d9fb2d2ba1d1 (patch) | |
| tree | 1ad9e7303d120244f7483e58431648550b2b72e9 /internal_rewrite/packet_start.cpp | |
| parent | 0bc63d4dbbfe4fb74b4114f0ae11bfe8c87d5cc9 (diff) | |
dffsd
Diffstat (limited to 'internal_rewrite/packet_start.cpp')
| -rw-r--r-- | internal_rewrite/packet_start.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/internal_rewrite/packet_start.cpp b/internal_rewrite/packet_start.cpp new file mode 100644 index 0000000..b3aa103 --- /dev/null +++ b/internal_rewrite/packet_start.cpp @@ -0,0 +1,23 @@ +#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;
+ }
+
+ 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 |
