2021-12-25 22:36:38 +01:00
# pragma once
namespace
{
2022-04-10 19:59:34 +02:00
//static auto g_CModelLoader = CMemory(0x14173B210).RCast<void*>();
2021-12-25 22:36:38 +01:00
2022-04-10 19:59:34 +02:00
//static auto dword_1696A9D20 = CMemory(0x14D40B328).RCast<std::uint32_t>();
//static auto dword_141744EE8 = CMemory(0x141744EE8).RCast<std::uint32_t>();
//static auto dword_141744EBC = CMemory(0x141744EBC).RCast<std::uint32_t>();
2021-12-25 22:36:38 +01:00
2022-04-10 19:59:34 +02:00
//static auto qword_14D40B328 = CMemory(0x14D40B328).RCast<std::uint32_t>();
//static auto qword_141744EA8 = CMemory(0x141744EA8).RCast<std::uint32_t>();
//static auto qword_141744EA0 = CMemory(0x141744EA0).RCast<std::uint32_t>();
//static auto qword_141744E88 = CMemory(0x141744E88).RCast<std::uint32_t>();
2021-12-25 22:36:38 +01:00
2022-04-10 19:59:34 +02:00
//static auto off_141744E70 = CMemory(0x141744E70).RCast<void**>();
//static auto off_141731448 = CMemory(0x141744EA8).RCast<void**>();
2021-12-25 22:36:38 +01:00
//__m128 xmmword_1415BD270 = _mm_castsi128_ps(_mm_set_epi32(0x3B808081, 0x3B808081, 0x3B808081, 0x3B808081)); // xmmword_1415BD270
2022-04-10 19:59:34 +02:00
//static auto sub_1404365A0 = CMemory(0x1404365A0).RCast<void** (*)(__m128*, long long, long long, double)>(); // Prototype is most likely incorrect: 'local variable allocation has failed, the output may be wrong!'
//static auto sub_140270130 = CMemory(0x140270130).RCast<__m128 (*)(__m128*)>();
//static auto sub_14028F170 = CMemory(0x14028F170).RCast<const __m128i* (*)(__int64, __int64, __m128*, const __m128i*, const __m128i*)>();
2021-12-25 22:36:38 +01:00
2022-04-10 19:59:34 +02:00
CMemory p_CalcPropStaticFrustumCulling = g_mGameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x8B \xC4 \x44 \x89 \x40 \x18 \x48 \x89 \x50 \x10 \x55 " ) , " xxxxxxxxxxxx " ) ;
2021-12-25 22:36:38 +01:00
__int64 ( * CalcPropStaticFrustumCulling ) ( __int64 a1 , __int64 a2 , unsigned int a3 , unsigned int a4 , __int64 a5 , __int64 a6 , __int64 a7 ) = ( __int64 ( * ) ( __int64 a1 , __int64 a2 , unsigned int a3 , unsigned int a4 , __int64 a5 , __int64 a6 , __int64 a7 ) ) p_CalcPropStaticFrustumCulling . GetPtr ( ) ; /*48 8B C4 44 89 40 18 48 89 50 10 55*/
}
__int64 __fastcall HCalcPropStaticFrustumCulling ( __int64 a1 , __int64 a2 , unsigned int a3 , unsigned int a4 , __int64 a5 , __int64 a6 , __int64 a7 ) ;
void BspLib_Attach ( ) ;
void BspLib_Detach ( ) ;
///////////////////////////////////////////////////////////////////////////////
class HBspLib : public IDetour
{
2022-04-11 01:44:30 +02:00
virtual void GetAdr ( void ) const
2021-12-25 22:36:38 +01:00
{
2022-04-11 01:44:30 +02:00
std : : cout < < " | FUN: CalcPropStaticFrustumCulling : 0x " < < std : : hex < < std : : uppercase < < p_CalcPropStaticFrustumCulling . GetPtr ( ) < < std : : setw ( nPad ) < < " | " < < std : : endl ;
2021-12-25 22:36:38 +01:00
std : : cout < < " +----------------------------------------------------------------+ " < < std : : endl ;
}
2022-04-11 01:44:30 +02:00
virtual void GetFun ( void ) const { }
virtual void GetVar ( void ) const { }
virtual void GetCon ( void ) const { }
virtual void Attach ( void ) const { }
virtual void Detach ( void ) const { }
2021-12-25 22:36:38 +01:00
} ;
///////////////////////////////////////////////////////////////////////////////
REGISTER ( HBspLib ) ;