2021-12-25 22:36:38 +01:00
# pragma once
2022-01-05 02:07:37 +01:00
2021-12-29 02:16:21 +01:00
# ifdef DEDICATED
2022-04-09 02:18:57 +02:00
inline const char * g_szGameDll = " r5apex_ds.exe " ;
2022-04-16 00:30:46 +02:00
void Dedicated_Init ( ) ;
2021-12-29 02:16:21 +01:00
# else
2022-04-09 02:18:57 +02:00
inline const char * g_szGameDll = " r5apex.exe " ;
2021-12-29 02:16:21 +01:00
# endif // DEDICATED
2021-12-31 03:41:33 +01:00
void RuntimePtc_Init ( ) ;
2022-01-12 02:53:07 +01:00
# ifdef GAMEDLL_S3
2022-04-09 02:18:57 +02:00
/* -------------- OTHER ------------------------------------------------------------------------------------------------------------------------------------------------- */
2022-04-18 03:35:08 +02:00
inline CMemory dst007 ;
inline CMemory dst008 ;
2022-04-09 02:18:57 +02:00
/* -------------- ------- ----------------------------------------------------------------------------------------------------------------------------------------------- */
2022-01-12 02:53:07 +01:00
# endif // GAMEDLL_S3
2022-01-26 23:43:16 +01:00
2022-04-09 02:18:57 +02:00
//-------------------------------------------------------------------------
// CSHADERSYSTEM
//-------------------------------------------------------------------------
2022-04-18 03:35:08 +02:00
inline CMemory CShaderSystem__Init ;
2022-04-09 02:18:57 +02:00
//-------------------------------------------------------------------------
// CVGUI
//-------------------------------------------------------------------------
2022-04-18 03:35:08 +02:00
inline CMemory CVGui__RunFrame ;
2022-02-18 02:51:16 +01:00
2022-04-09 02:18:57 +02:00
//-------------------------------------------------------------------------
// CENGINEVGUI
//-------------------------------------------------------------------------
2022-04-18 03:35:08 +02:00
inline CMemory CEngineVGui__Shutdown ;
inline CMemory CEngineVGui__ActivateGameUI ;
2022-04-09 02:18:57 +02:00
2022-05-21 13:11:10 +02:00
//-------------------------------------------------------------------------
// CENGINEVGUI
//-------------------------------------------------------------------------
inline CMemory CInputSystem__RunFrameIME ;
2022-04-09 02:18:57 +02:00
//-------------------------------------------------------------------------
// RUNTIME: SYS_INITGAME
//-------------------------------------------------------------------------
2022-04-18 03:35:08 +02:00
inline CMemory Sys_InitGame ;
2022-04-09 02:18:57 +02:00
//-------------------------------------------------------------------------
// RUNTIME: HOST_INIT
//-------------------------------------------------------------------------
2022-04-18 03:35:08 +02:00
inline CMemory gHost_Init_1 ; // server Host_Init()?
inline CMemory gHost_Init_2 ; // client Host_Init()?
2022-04-09 02:18:57 +02:00
//-------------------------------------------------------------------------
// RUNTIME: HOST_SHUTDOWN
//-------------------------------------------------------------------------
2022-04-18 03:35:08 +02:00
inline CMemory Host_Shutdown ;
2022-04-09 02:18:57 +02:00
//-------------------------------------------------------------------------
// RUNTIME: HOST_DISCONNECT
//-------------------------------------------------------------------------
2022-04-18 03:35:08 +02:00
inline CMemory Host_Disconnect ;
2022-02-18 02:51:16 +01:00
2022-04-09 02:18:57 +02:00
//-------------------------------------------------------------------------
// RUNTIME: S2C_CHALLENGE
//-------------------------------------------------------------------------
2022-03-27 22:17:30 +02:00
# ifndef CLIENT_DLL
2022-04-18 03:35:08 +02:00
inline CMemory Server_S2C_CONNECT_1 ;
2022-03-27 22:17:30 +02:00
# endif // !CLIENT_DLL
2022-04-18 03:35:08 +02:00
2022-04-09 02:18:57 +02:00
//-------------------------------------------------------------------------
2022-12-06 00:48:11 +01:00
// RUNTIME:
2022-04-09 02:18:57 +02:00
//-------------------------------------------------------------------------
2022-05-21 12:42:28 +02:00
inline CMemory MatchMaking_Frame ;
2022-04-18 03:35:08 +02:00
inline CMemory GetEngineClientThread ;
inline CMemory CWin32Surface_initStaticData ;
2022-04-16 23:53:03 +02:00
# if !defined (GAMEDLL_S0) || !defined (GAMEDLL_S1)
2022-04-18 03:35:08 +02:00
inline CMemory KeyboardLayout_Init ;
# endif
2022-04-16 23:53:03 +02:00
2021-12-31 03:41:33 +01:00
///////////////////////////////////////////////////////////////////////////////
2022-05-13 14:53:25 +02:00
class VOpcodes : public IDetour
2021-12-31 03:41:33 +01:00
{
2022-04-11 01:44:30 +02:00
virtual void GetAdr ( void ) const
2021-12-25 22:36:38 +01:00
{
2023-01-26 02:59:50 +01:00
// LogFunAdr("CShaderSystem::Init", CShaderSystem__Init.GetPtr());
// LogFunAdr("CVGui::RunFrame", CVGui__RunFrame.GetPtr());
// LogFunAdr("CEngineVGui::Shutdown", CEngineVGui__Shutdown.GetPtr());
// LogFunAdr("CEngineVGui::ActivateGameUI", CEngineVGui__ActivateGameUI.GetPtr());
// LogFunAdr("CInputSystem::RunFrameIME", CInputSystem__RunFrameIME.GetPtr());
// LogFunAdr("Sys_InitGame", Sys_InitGame.GetPtr());
// LogFunAdr("Host_Init_1", gHost_Init_1.GetPtr());
// LogFunAdr("Host_Init_2", gHost_Init_2.GetPtr());
// LogFunAdr("Host_Disconnect", Host_Disconnect.GetPtr());
2022-04-27 16:48:18 +02:00
# ifndef CLIENT_DLL
2023-01-26 02:59:50 +01:00
LogFunAdr ( " Server_S2C_CONNECT " , Server_S2C_CONNECT_1 . GetPtr ( ) ) ;
2022-04-27 16:48:18 +02:00
# endif // !CLIENT_DLL
2023-01-26 02:59:50 +01:00
// LogFunAdr("GetEngineClientThread", GetEngineClientThread.GetPtr());
// LogFunAdr("MatchMaking_Frame", MatchMaking_Frame.GetPtr());
//#if !defined (GAMEDLL_S0) || !defined (GAMEDLL_S1)
// LogFunAdr("CWin32Surface::initStaticData", CWin32Surface_initStaticData.GetPtr());
//#endif
// LogFunAdr("KeyboardLayout_Init", KeyboardLayout_Init.GetPtr());
2021-12-25 22:36:38 +01:00
}
2022-04-11 01:44:30 +02:00
virtual void GetFun ( void ) const { }
2022-04-18 03:35:08 +02:00
virtual void GetVar ( void ) const
{
2023-01-26 02:59:50 +01:00
//#ifdef GAMEDLL_S3
// /* -------------- OTHER ------------------------------------------------------------------------------------------------------------------------------------------------- */
// dst007 = /*0x14028F3B0*/ g_GameDll.FindPatternSIMD("48 8B C4 44 89 40 18 48 89 50 10 55 53 56 57 41");
// dst008 = /*0x140E3E110*/ g_GameDll.FindPatternSIMD("48 83 EC 78 48 8B 84 24 ?? ?? ?? ?? 4D 8B D8 ??");
// /* -------------- ------- ----------------------------------------------------------------------------------------------------------------------------------------------- */
//#endif // GAMEDLL_S3
//
//
// //-------------------------------------------------------------------------
// CShaderSystem__Init = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 C6 41 10 ??");
// // 0x1403DF870 // 48 89 5C 24 ? 48 89 74 24 ? 57 48 83 EC 20 C6 41 10 00 //
//
// //-------------------------------------------------------------------------
//#if defined (GAMEDLL_S0) || defined (GAMEDLL_S1)
// CVGui__RunFrame = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 55 56 57 48 83 EC 20 0F B6 69 5C");
//#elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3)
// CVGui__RunFrame = g_GameDll.FindPatternSIMD("40 57 48 83 EC 20 48 89 5C 24 ?? 48 8B F9 48 89 6C 24 ?? 0F B6 69 5C");
//#endif
//
// //-------------------------------------------------------------------------
//#if defined (GAMEDLL_S0) || defined (GAMEDLL_S1)
// CEngineVGui__Shutdown = g_GameDll.FindPatternSIMD("48 89 4C 24 ?? 57 41 54 48 83 EC 38");
//#elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3)
// CEngineVGui__Shutdown = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 80 3D ?? ?? ?? ?? ?? 48 8B D9");
//#endif // 0x140282C90 // 48 89 5C 24 ? 48 89 74 24 ? 57 48 83 EC 20 80 3D ? ? ? ? ? 48 8B D9 //
// CEngineVGui__ActivateGameUI = g_GameDll.FindPatternSIMD("40 53 48 83 EC 20 F6 81 ?? ?? ?? ?? ?? 48 8B D9 74 08");
// //
//
// //-------------------------------------------------------------------------
//#if defined (GAMEDLL_S0) || defined (GAMEDLL_S1)
// CInputSystem__RunFrameIME = g_GameDll.FindPatternSIMD("48 8B C4 57 41 55");
//#elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3)
// CInputSystem__RunFrameIME = g_GameDll.FindPatternSIMD("40 57 41 54 41 55 48 83 EC 70");
//#endif
//
// //-------------------------------------------------------------------------
// Sys_InitGame = g_GameDll.FindPatternSIMD("48 89 5C 24 ?? 57 48 81 EC ?? ?? ?? ?? 80 3D ?? ?? ?? ?? ?? 41 8B D8");
// // 0x1402958D0 // 48 89 5C 24 ? 57 48 81 EC ? ? ? ? 80 3D ? ? ? ? ? 41 8B D8 //
//
// //-------------------------------------------------------------------------
// gHost_Init_1 = g_GameDll.FindPatternSIMD("48 8B C4 41 56 48 81 EC ?? ?? ?? ?? 45 33 F6"); // server Host_Init()?
// // 0x140237B00 // 48 8B C4 41 56 48 81 EC ? ? ? ? 45 33 F6 //
//
// gHost_Init_2 = g_GameDll.FindPatternSIMD("88 4C 24 08 53 55 56 57 48 83 EC 68"); // client Host_Init()?
// // 0x140236640 // 88 4C 24 08 53 55 56 57 48 83 EC 68 //
//
// //-------------------------------------------------------------------------
// Host_Shutdown = g_GameDll.FindPatternSIMD("48 8B C4 48 83 EC ?? 80 3D ?? ?? ?? ?? ?? 0F 85 ?? ?? ?? ?? 8B 15 ?? ?? ?? ??");
// // 0x140239620 // 48 8B C4 48 83 EC ?? 80 3D ? ? ? ? ? 0F 85 ? ? ? ? 8B 15 ? ? ? ? //
//
// //-------------------------------------------------------------------------
//#if defined (GAMEDLL_S0) || defined (GAMEDLL_S1)
// Host_Disconnect = g_GameDll.FindPatternSIMD("48 83 EC 38 48 89 7C 24 ?? 0F B6 F9");
//#elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3)
// Host_Disconnect = g_GameDll.FindPatternSIMD("40 53 48 83 EC 30 0F B6 D9");
//#endif // 0x14023CCA0 // 40 53 48 83 EC 30 0F B6 D9 //
//
// //-------------------------------------------------------------------------
2022-04-18 03:35:08 +02:00
# ifndef CLIENT_DLL
2022-12-01 22:44:55 +01:00
Server_S2C_CONNECT_1 = g_GameDll . FindPatternSIMD ( " 48 3B 05 ?? ?? ?? ?? 74 0C " ) ;
2022-04-18 03:35:08 +02:00
# endif // !CLIENT_DLL
2023-01-26 02:59:50 +01:00
//
// //-------------------------------------------------------------------------
//#if defined (GAMEDLL_S0) || defined (GAMEDLL_S1)
// GetEngineClientThread = g_GameDll.FindPatternSIMD("40 53 48 83 EC 20 65 48 8B 04 25 ?? ?? ?? ?? 48 8B D9 B9 ?? ?? ?? ?? 48 8B 10 8B 04 11 39 05 ?? ?? ?? ?? 7F 15");
//#elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3)
// GetEngineClientThread = g_GameDll.FindPatternSIMD("40 53 48 83 EC 20 65 48 8B 04 25 ?? ?? ?? ?? 48 8B D9 B9 ?? ?? ?? ?? 48 8B 10 8B 04 11 39 05 ?? ?? ?? ?? 7F 21");
//#endif
//#if defined (GAMEDLL_S0) || defined (GAMEDLL_S1)
// MatchMaking_Frame = g_GameDll.FindPatternSIMD("40 55 56 41 54 41 55 48 8D AC 24 ?? ?? ?? ??");
//#elif defined (GAMEDLL_S2)
// MatchMaking_Frame = g_GameDll.FindPatternSIMD("48 89 74 24 ?? 55 41 54 41 57 48 8D AC 24 ?? ?? ?? ??");
//#elif defined (GAMEDLL_S3)
// MatchMaking_Frame = g_GameDll.FindPatternSIMD("48 8B C4 55 48 8D A8 ?? ?? ?? ?? 48 81 EC ?? ?? ?? ?? 48 89 78 18");
//#endif
//
//
// CWin32Surface_initStaticData = g_GameDll.FindPatternSIMD("48 83 EC 28 E8 ?? ?? ?? ?? 48 8D 0D ?? ?? ?? ?? 48 83 C4 28 E9 ?? ?? ?? ?? CC CC CC CC CC CC CC 33 C9");
// // 48 83 EC 28 E8 ? ? ? ? 48 8D 0D ? ? ? ? 48 83 C4 28 E9 ? ? ? ? CC CC CC CC CC CC CC 33 C9
//#if !defined (GAMEDLL_S0) || !defined (GAMEDLL_S1)
// KeyboardLayout_Init = g_GameDll.FindPatternSIMD("48 83 EC 28 33 C9 FF 15 ?? ?? ?? ?? 48 8D 0D ?? ?? ?? ??");
//#endif //48 83 EC 28 33 C9 FF 15 ? ? ? ? 48 8D 0D ? ? ? ?
2022-04-18 03:35:08 +02:00
}
2022-11-07 23:11:12 +01:00
virtual void GetCon ( void ) const { }
2022-04-11 01:44:30 +02:00
virtual void Attach ( void ) const { }
virtual void Detach ( void ) const { }
2021-12-31 03:41:33 +01:00
} ;
///////////////////////////////////////////////////////////////////////////////