summaryrefslogtreecommitdiff
path: root/internal_rewrite/begin_lock.cpp
blob: d441395eaebb0f1ba158054e39a671e029183589 (plain)
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
#include <intrin.h>

#include "hooks.hpp"
#include "base_cheat.hpp"
#include "context.hpp"

void __fastcall hooks::begin_lock( void* ecx, void* edx ) { // THIS IS PROLLY NOT ENDLOCK, BUT WHATEVER
	static auto begin_lock_o = g_csgo.m_mdl_cache->get_old_function< decltype( &hooks::begin_lock ) >( 33 );


	// signature:
	// search "CL_CallPostDataUpdates: missing ent %d" in engine.dll.
	// where framestagenotify gets called
	static auto ret_addr = pattern::first_code_match< void* >( g_csgo.m_engine.dll( ), "A1 ? ? ? ? B9 ? ? ? ? 6A 00 FF 50 18 8B 15 ? ? ? ?" );
	if( _ReturnAddress( ) == ret_addr ) {
		g_ctx.m_stage = FRAME_NET_UPDATE_POSTDATAUPDATE_START;
		g_cheat.m_visuals.world_modulate( );

		//g_con->game_console_print( "net postdataupdate start\n" );

		// FRAME_NET_UPDATE_POSTDATAUPDATE_START
		g_cheat.m_extra.float_ragdolls( );

		g_cheat.m_player_mgr.frame_stage_notify( );
		g_cheat.m_prediction.frame_stage_notify( );
		g_cheat.m_ragebot.m_resolver->frame_stage_notify( );
		g_cheat.m_ragebot.m_lagcomp->fsn_render_start( );
		g_cheat.m_skins( );
	}

	begin_lock_o( ecx, edx );
}