diff options
| author | JustSomePwner <crotchyalt@gmail.com> | 2018-09-01 14:32:14 +0200 |
|---|---|---|
| committer | JustSomePwner <crotchyalt@gmail.com> | 2018-09-01 14:32:14 +0200 |
| commit | e2350a9ef73817f1f364b6223f9d4d9d5c6235a8 (patch) | |
| tree | 9c752b5e0f04e638fba947fefa0fd00badf3f92b /internal_rewrite/c_base_player.cpp | |
| parent | 7afd0eaf52abe9e0bc8c8b5e986e90267f83b4e2 (diff) | |
| parent | beb5515757c0e653adc33f181184fe3791ca0a6b (diff) | |
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'internal_rewrite/c_base_player.cpp')
| -rw-r--r-- | internal_rewrite/c_base_player.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/internal_rewrite/c_base_player.cpp b/internal_rewrite/c_base_player.cpp index 5274f63..ad2ec2d 100644 --- a/internal_rewrite/c_base_player.cpp +++ b/internal_rewrite/c_base_player.cpp @@ -31,14 +31,22 @@ void IKContext::SolveDependencies( vec3_t* pos, void* q, matrix3x4* bone_array, }
bool& c_base_player::s_bInvalidateBoneCache( ) {
+#ifdef HEADER_MODULE
+ static auto fn_ptr = g_header.patterns.animstate_update;
+#else
static auto fn_ptr = pattern::first_code_match( g_csgo.m_chl.dll( ), xors( "55 8B EC 83 E4 F8 83 EC 18 56 57 8B F9 F3 0F 11 54 24" ) );
+#endif
static auto var = *( bool** )( fn_ptr + 0xda + 2 );
return *var;
}
void CCSGOPlayerAnimState::update( float yaw, float pitch ) {
+#ifdef HEADER_MODULE
+ static auto fn_ptr = g_header.patterns.animstate_update;
+#else
static auto fn_ptr = pattern::first_code_match( g_csgo.m_chl.dll( ), xors( "55 8B EC 83 E4 F8 83 EC 18 56 57 8B F9 F3 0F 11 54 24" ) );
+#endif
uintptr_t alloc = ( uintptr_t )this;
if( !alloc )
@@ -415,14 +423,24 @@ int c_base_player::get_seq_activity( int sequence ) { }
void c_base_player::set_abs_angles( vec3_t angles ) {
+#ifdef HEADER_MODULE
+ static uintptr_t fn_ptr = g_header.patterns.set_abs_angles;
+#else
static uintptr_t fn_addr = pattern::first_code_match( g_csgo.m_chl.dll( ), xors( "55 8B EC 83 E4 F8 83 EC 64 53 56 57 8B F1 E8" ) );
+#endif
+
auto fn = ( void( __thiscall* )( void*, vec3_t& ) )( fn_addr );
return fn( this, angles );
}
void c_base_player::set_abs_origin( vec3_t origin ) {
+#ifdef HEADER_MODULE
+ static uintptr_t fn_ptr = g_header.patterns.set_abs_origin;
+#else
static uintptr_t fn_addr = pattern::first_code_match( g_csgo.m_chl.dll( ), xors( "55 8B EC 83 E4 F8 51 53 56 57 8B F1" ) );
+#endif
+
auto fn = ( void( __thiscall* )( void*, vec3_t& ) )( fn_addr );
return fn( this, origin );
@@ -524,9 +542,6 @@ void c_base_player::restore_anim_data( bool layers ) { }
void c_base_player::do_ent_interpolation( bool reset ) {
-// return; //cuck
-
-
auto idx = ce( )->GetIndex( );
auto* anim_data = &sm_animdata[ idx ];
@@ -668,7 +683,12 @@ void c_base_player::calc_anim_velocity( bool reset ) { }
void c_base_player::calc_abs_velocity( ) {
+#ifdef HEADER_MODULE
+ static auto fn_ptr = g_header.patterns.calc_abs_velocity;
+#else
static auto fn_ptr = pattern::first_code_match( g_csgo.m_chl.dll( ), xors( "55 8B EC 83 E4 F8 83 EC 1C 53 56 57 8B F9 F7 87" ), 0 );
+#endif
+
if( fn_ptr ) {
auto fn = ( void( __thiscall* )( void* ) )( fn_ptr );
fn( this );
|
