diff options
Diffstat (limited to 'internal_rewrite/hooks.cpp')
| -rw-r--r-- | internal_rewrite/hooks.cpp | 82 |
1 files changed, 55 insertions, 27 deletions
diff --git a/internal_rewrite/hooks.cpp b/internal_rewrite/hooks.cpp index a02537a..34ba24b 100644 --- a/internal_rewrite/hooks.cpp +++ b/internal_rewrite/hooks.cpp @@ -2,6 +2,36 @@ #include "interface.hpp" #include "detours.h" +//god i'm so cool +namespace hooks { + decltype( &paint_traverse ) paint_traverse_o; + decltype( &create_move ) create_move_o; + decltype( &frame_stage_notify ) fsn_o; + decltype( &suppress_lists ) suppress_lists_o; + decltype( &draw_small_entities ) draw_small_entities_o; + decltype( &begin_lock ) begin_lock_o; + decltype( &end_lock ) end_lock_o; + decltype( &simulate ) simulate_o; + decltype( &run_command ) run_command_o; + decltype( &override_mouse_input ) override_mouse_input_o; + decltype( &draw_model_execute ) draw_model_execute_o; + decltype( &scene_end ) scene_end_o; + decltype( &get_viewmodel_fov ) get_viewmodel_fov_o; + decltype( &get_screen_size ) get_screen_size_o; + decltype( &override_view ) override_view_o; + decltype( &shut_down ) shut_down_o; + decltype( &lock_cursor ) lock_cursor_o; + decltype( &is_connected ) is_connected_o; + decltype( &in_prediction ) in_prediction_o; + decltype( &update_clientside_animation ) update_clientside_animation_o; + decltype( &material_system ) material_system_o; + decltype( &fire_event_clientside ) fire_event_clientside_o; + decltype( &send_datagram ) send_datagram_o; + decltype( &do_post_screen_space_effects ) do_post_screen_space_effects_o; + decltype( &on_screen_size_changed ) on_screen_size_changed_o; + decltype( &play_sound ) play_sound_o; + decltype( &convar_getint ) convar_getint_o; +} hooks::c_netvar_proxy hooks::lby_proxy; hooks::c_netvar_proxy hooks::last_shot_proxy; @@ -30,35 +60,33 @@ bool hooks::commit( factory::c_csgo* instance ) { //instance->m_engine->hook( 93, &hooks::is_hltv_proxy ); //instance->m_engine->hook( 90, &hooks::is_paused ); //instance->m_engine->hook( 27, &hooks::is_connected ); - instance->m_panel->hook( 41, &hooks::paint_traverse ); - instance->m_clientmode->hook( 24, &hooks::create_move ); - instance->m_clientmode->hook( 23, &hooks::override_mouse_input ); - instance->m_clientmode->hook( 35, &hooks::get_viewmodel_fov ); - instance->m_clientmode->hook( 44, &hooks::do_post_screen_space_effects ); - instance->m_clientmode->hook( 18, &hooks::override_view ); - instance->m_surface->hook( 67, &hooks::lock_cursor ); - //instance->m_input->hook( 3, &hooks::hl_create_move ); - //instance->m_chl->hook( 36, &hooks::frame_stage_notify ); - //instance->m_chl->hook( 10, &hooks::hud_process_input ); - instance->m_prediction->hook( 19, &hooks::run_command ); - instance->m_prediction->hook( 14, &hooks::in_prediction ); - instance->m_model_render->hook( 21, &hooks::draw_model_execute ); - instance->m_render_view->hook( 9, &hooks::scene_end ); - instance->m_surface->hook( 44, &hooks::get_screen_size ); - instance->m_surface->hook( 116, &hooks::on_screen_size_changed ); - instance->m_surface->hook( 82, &hooks::play_sound ); - //instance->m_engine_sound->hook( 6, &hooks::emit_sound ); + instance->m_debug_show_spread->hook( 13, &hooks::debug_show_spread_get_int ); - instance->m_interpolate->hook( 13, &hooks::cl_interpolate_get_int ); - //instance->m_event_mgr->hook( 9, &hooks::fire_event_clientside ); - instance->m_mat_system->hook( 21, &hooks::material_system ); - instance->m_partition->hook( 16, &hooks::suppress_lists ); - instance->m_clientleaf->hook( 39, &hooks::draw_small_entities ); - instance->m_engine_vgui->hook( 39, &hooks::simulate ); - instance->m_mdl_cache->hook( 33, &hooks::begin_lock ); - instance->m_mdl_cache->hook( 34, &hooks::end_lock ); instance->m_netshowfragments->hook( 13, &hooks::net_showfragments_get_int ); - //instance->m_trace->hook( 5, &hooks::trace_ray ); + + + paint_traverse_o = d->create_hook( &hooks::paint_traverse, instance->m_panel->get_old_function< void* >( 42 ) ); + create_move_o = d->create_hook( &hooks::create_move, instance->m_clientmode->get_old_function< void* >( 24 ) ); + override_mouse_input_o = d->create_hook( &hooks::override_mouse_input, instance->m_clientmode->get_old_function< void* >( 23 ) ); + get_viewmodel_fov_o = d->create_hook( &hooks::get_viewmodel_fov, instance->m_clientmode->get_old_function< void* >( 35 ) ); + do_post_screen_space_effects_o = d->create_hook( &hooks::do_post_screen_space_effects, instance->m_clientmode->get_old_function< void* >( 44 ) ); + override_view_o = d->create_hook( &hooks::override_view, instance->m_clientmode->get_old_function< void* >( 18 ) ); + lock_cursor_o = d->create_hook( &hooks::lock_cursor, instance->m_surface->get_old_function< void* >( 67 ) ); + run_command_o = d->create_hook( &hooks::run_command, instance->m_prediction->get_old_function< void* >( 19 ) ); + in_prediction_o = d->create_hook( &hooks::in_prediction, instance->m_prediction->get_old_function< void* >( 14 ) ); + draw_model_execute_o = d->create_hook( &hooks::draw_model_execute, instance->m_model_render->get_old_function< void* >( 21 ) ); + scene_end_o = d->create_hook( &hooks::scene_end, instance->m_render_view->get_old_function< void* >( 9 ) ); + get_screen_size_o = d->create_hook( &hooks::get_screen_size, instance->m_surface->get_old_function< void* >( 44 ) ); + on_screen_size_changed_o = d->create_hook( &hooks::on_screen_size_changed, instance->m_surface->get_old_function< void* >( 116 ) ); + play_sound_o = d->create_hook( &hooks::play_sound, instance->m_surface->get_old_function< void* >( 82 ) ); + material_system_o = d->create_hook( &hooks::material_system, instance->m_mat_system->get_old_function< void* >( 21 ) ); + suppress_lists_o = d->create_hook( &hooks::suppress_lists, instance->m_partition->get_old_function< void* >( 16 ) ); + draw_small_entities_o = d->create_hook( &hooks::draw_small_entities, instance->m_clientleaf->get_old_function< void* >( 39 ) ); + simulate_o = d->create_hook( &hooks::simulate, instance->m_engine_vgui->get_old_function< void* >( 39 ) ); + begin_lock_o = d->create_hook( &hooks::begin_lock, instance->m_mdl_cache->get_old_function< void* >( 33 ) ); + end_lock_o = d->create_hook( &hooks::end_lock, instance->m_mdl_cache->get_old_function< void* >( 34 ) ); + + d->enable( ); return true; } |
