#pragma once namespace { //static auto g_CModelLoader = CMemory(0x14173B210).RCast(); //static auto dword_1696A9D20 = CMemory(0x14D40B328).RCast(); //static auto dword_141744EE8 = CMemory(0x141744EE8).RCast(); //static auto dword_141744EBC = CMemory(0x141744EBC).RCast(); //static auto qword_14D40B328 = CMemory(0x14D40B328).RCast(); //static auto qword_141744EA8 = CMemory(0x141744EA8).RCast(); //static auto qword_141744EA0 = CMemory(0x141744EA0).RCast(); //static auto qword_141744E88 = CMemory(0x141744E88).RCast(); //static auto off_141744E70 = CMemory(0x141744E70).RCast(); //static auto off_141731448 = CMemory(0x141744EA8).RCast(); //__m128 xmmword_1415BD270 = _mm_castsi128_ps(_mm_set_epi32(0x3B808081, 0x3B808081, 0x3B808081, 0x3B808081)); // xmmword_1415BD270 //static auto sub_1404365A0 = CMemory(0x1404365A0).RCast(); // 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(); } inline CMemory p_CalcPropStaticFrustumCulling; inline auto CalcPropStaticFrustumCulling = p_CalcPropStaticFrustumCulling.RCast<__int64(*)(__int64 a1, __int64 a2, unsigned int a3, unsigned int a4, __int64 a5, __int64 a6, __int64 a7)>(); __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 { virtual void GetAdr(void) const { std::cout << "| FUN: CalcPropStaticFrustumCulling : 0x" << std::hex << std::uppercase << p_CalcPropStaticFrustumCulling.GetPtr() << std::setw(nPad) << " |" << std::endl; std::cout << "+----------------------------------------------------------------+" << std::endl; } virtual void GetFun(void) const { p_CalcPropStaticFrustumCulling = g_mGameDll.FindPatternSIMD(reinterpret_cast("\x48\x8B\xC4\x44\x89\x40\x18\x48\x89\x50\x10\x55"), "xxxxxxxxxxxx"); /*48 8B C4 44 89 40 18 48 89 50 10 55*/ CalcPropStaticFrustumCulling = p_CalcPropStaticFrustumCulling.RCast<__int64(*)(__int64, __int64, unsigned int, unsigned int, __int64, __int64, __int64)>(); } virtual void GetVar(void) const { } virtual void GetCon(void) const { } virtual void Attach(void) const { } virtual void Detach(void) const { } }; /////////////////////////////////////////////////////////////////////////////// REGISTER(HBspLib);