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
//-------------------------------------------------------------------------
// RUNTIME: GAME_CFG
//-------------------------------------------------------------------------
2022-04-18 03:35:08 +02:00
inline CMemory UpdateCurrentVideoConfig ;
2022-04-24 19:34:14 +02:00
inline CMemory UpdateMaterialSystemConfig ;
2022-04-18 03:35:08 +02:00
inline CMemory HandleConfigFile ;
inline CMemory ResetPreviousGameState ;
inline CMemory LoadPlayerConfig ;
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
{
2022-05-13 14:53:25 +02:00
spdlog : : debug ( " | FUN: CShaderSystem::Init : {:#18x} | \n " , CShaderSystem__Init . GetPtr ( ) ) ;
spdlog : : debug ( " +----------------------------------------------------------------+ \n " ) ;
spdlog : : debug ( " | FUN: CVGui::RunFrame : {:#18x} | \n " , CVGui__RunFrame . GetPtr ( ) ) ;
spdlog : : debug ( " +----------------------------------------------------------------+ \n " ) ;
spdlog : : debug ( " | FUN: CEngineVGui::Shutdown : {:#18x} | \n " , CEngineVGui__Shutdown . GetPtr ( ) ) ;
spdlog : : debug ( " | FUN: CEngineVGui::ActivateGameUI : {:#18x} | \n " , CEngineVGui__ActivateGameUI . GetPtr ( ) ) ;
spdlog : : debug ( " +----------------------------------------------------------------+ \n " ) ;
2022-05-21 13:11:10 +02:00
spdlog : : debug ( " | FUN: CInputSystem::RunFrameIME : {:#18x} | \n " , CInputSystem__RunFrameIME . GetPtr ( ) ) ;
spdlog : : debug ( " +----------------------------------------------------------------+ \n " ) ;
2022-05-13 14:53:25 +02:00
spdlog : : debug ( " | FUN: Sys_InitGame : {:#18x} | \n " , Sys_InitGame . GetPtr ( ) ) ;
spdlog : : debug ( " +----------------------------------------------------------------+ \n " ) ;
spdlog : : debug ( " | FUN: Host_Init_1 : {:#18x} | \n " , gHost_Init_1 . GetPtr ( ) ) ;
spdlog : : debug ( " | FUN: Host_Init_2 : {:#18x} | \n " , gHost_Init_2 . GetPtr ( ) ) ;
spdlog : : debug ( " | FUN: Host_Disconnect : {:#18x} | \n " , Host_Disconnect . GetPtr ( ) ) ;
spdlog : : debug ( " +----------------------------------------------------------------+ \n " ) ;
2022-04-27 16:48:18 +02:00
# ifndef CLIENT_DLL
2022-05-13 14:53:25 +02:00
spdlog : : debug ( " | FUN: Server_S2C_CONNECT_1 : {:#18x} | \n " , Server_S2C_CONNECT_1 . GetPtr ( ) ) ;
2022-04-27 16:48:18 +02:00
# endif // !CLIENT_DLL
2022-05-13 14:53:25 +02:00
spdlog : : debug ( " +----------------------------------------------------------------+ \n " ) ;
spdlog : : debug ( " | FUN: UpdateMaterialSystemConfig : {:#18x} | \n " , UpdateMaterialSystemConfig . GetPtr ( ) ) ;
spdlog : : debug ( " | FUN: UpdateCurrentVideoConfig : {:#18x} | \n " , UpdateCurrentVideoConfig . GetPtr ( ) ) ;
spdlog : : debug ( " | FUN: HandleConfigFile : {:#18x} | \n " , HandleConfigFile . GetPtr ( ) ) ;
spdlog : : debug ( " | FUN: ResetPreviousGameState : {:#18x} | \n " , ResetPreviousGameState . GetPtr ( ) ) ;
spdlog : : debug ( " | FUN: LoadPlayerConfig : {:#18x} | \n " , LoadPlayerConfig . GetPtr ( ) ) ;
2022-05-21 13:11:10 +02:00
spdlog : : debug ( " | FUN: GetEngineClientThread : {:#18x} | \n " , GetEngineClientThread . GetPtr ( ) ) ;
spdlog : : debug ( " | FUN: MatchMaking_Frame : {:#18x} | \n " , MatchMaking_Frame . GetPtr ( ) ) ;
2022-05-13 14:53:25 +02:00
spdlog : : debug ( " +----------------------------------------------------------------+ \n " ) ;
2022-04-16 23:53:03 +02:00
# if !defined (GAMEDLL_S0) || !defined (GAMEDLL_S1)
2022-05-13 14:53:25 +02:00
spdlog : : debug ( " | FUN: CWin32Surface::initStaticData : {:#18x} | \n " , CWin32Surface_initStaticData . GetPtr ( ) ) ;
2022-04-16 23:53:03 +02:00
# endif
2022-05-13 14:53:25 +02:00
spdlog : : debug ( " | FUN: KeyboardLayout_Init : {:#18x} | \n " , KeyboardLayout_Init . GetPtr ( ) ) ;
spdlog : : debug ( " +----------------------------------------------------------------+ \n " ) ;
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
{
# ifdef GAMEDLL_S3
/* -------------- OTHER ------------------------------------------------------------------------------------------------------------------------------------------------- */
2022-08-09 03:02:00 +02:00
dst007 = /*0x14028F3B0*/ g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x8B \xC4 \x44 \x89 \x40 \x18 \x48 \x89 \x50 \x10 \x55 \x53 \x56 \x57 \x41 " ) , " xxxxxxxxxxxxxxxx " ) ;
dst008 = /*0x140E3E110*/ g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x83 \xEC \x78 \x48 \x8B \x84 \x24 \x00 \x00 \x00 \x00 \x4D \x8B \xD8 \x00 " ) , " xxxxxxxx????xxx? " ) ;
2022-04-18 03:35:08 +02:00
/* -------------- ------- ----------------------------------------------------------------------------------------------------------------------------------------------- */
# endif // GAMEDLL_S3
//-------------------------------------------------------------------------
2022-08-09 03:02:00 +02:00
CShaderSystem__Init = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x89 \x5C \x24 \x00 \x48 \x89 \x74 \x24 \x00 \x57 \x48 \x83 \xEC \x20 \xC6 \x41 \x10 \x00 " ) , " xxxx?xxxx?xxxxxxxxx " ) ;
2022-04-18 03:35:08 +02:00
// 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)
2022-08-09 03:02:00 +02:00
CVGui__RunFrame = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x89 \x5C \x24 \x00 \x55 \x56 \x57 \x48 \x83 \xEC \x20 \x0F \xB6 \x69 \x5C " ) , " xxxx?xxxxxxxxxxx " ) ;
2022-04-18 03:35:08 +02:00
# elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3)
2022-08-09 03:02:00 +02:00
CVGui__RunFrame = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x40 \x57 \x48 \x83 \xEC \x20 \x48 \x89 \x5C \x24 \x00 \x48 \x8B \xF9 \x48 \x89 \x6C \x24 \x00 \x0F \xB6 \x69 \x5C " ) , " xxxxxxxxxx?xxxxxxx?xxxx " ) ;
2022-04-18 03:35:08 +02:00
# endif
//-------------------------------------------------------------------------
# if defined (GAMEDLL_S0) || defined (GAMEDLL_S1)
2022-08-09 03:02:00 +02:00
CEngineVGui__Shutdown = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x89 \x4C \x24 \x00 \x57 \x41 \x54 \x48 \x83 \xEC \x38 " ) , " xxxx?xxxxxxx " ) ;
2022-04-18 03:35:08 +02:00
# elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3)
2022-08-09 03:02:00 +02:00
CEngineVGui__Shutdown = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x89 \x5C \x24 \x00 \x48 \x89 \x74 \x24 \x00 \x57 \x48 \x83 \xEC \x20 \x80 \x3D \x00 \x00 \x00 \x00 \x00 \x48 \x8B \xD9 " ) , " xxxx?xxxx?xxxxxxx?????xxx " ) ;
2022-04-18 03:35:08 +02:00
# endif // 0x140282C90 // 48 89 5C 24 ? 48 89 74 24 ? 57 48 83 EC 20 80 3D ? ? ? ? ? 48 8B D9 //
2022-08-09 03:02:00 +02:00
CEngineVGui__ActivateGameUI = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x40 \x53 \x48 \x83 \xEC \x20 \xF6 \x81 \x00 \x00 \x00 \x00 \x00 \x48 \x8B \xD9 \x74 \x08 " ) , " xxxxxxxx?????xxxxx " ) ;
2022-04-18 03:35:08 +02:00
//
2022-05-21 13:11:10 +02:00
//-------------------------------------------------------------------------
# if defined (GAMEDLL_S0) || defined (GAMEDLL_S1)
2022-08-09 03:02:00 +02:00
CInputSystem__RunFrameIME = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x8B \xC4 \x57 \x41 \x55 " ) , " xxxxxx " ) ;
2022-05-21 13:11:10 +02:00
# elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3)
2022-08-09 03:02:00 +02:00
CInputSystem__RunFrameIME = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x40 \x57 \x41 \x54 \x41 \x55 \x48 \x83 \xEC \x70 " ) , " xxxxxxxxxx " ) ;
2022-05-21 13:11:10 +02:00
# endif
2022-04-18 03:35:08 +02:00
//-------------------------------------------------------------------------
2022-08-09 03:02:00 +02:00
Sys_InitGame = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x89 \x5C \x24 \x00 \x57 \x48 \x81 \xEC \x00 \x00 \x00 \x00 \x80 \x3D \x00 \x00 \x00 \x00 \x00 \x41 \x8B \xD8 " ) , " xxxx?xxxx????xx?????xxx " ) ;
2022-04-18 03:35:08 +02:00
// 0x1402958D0 // 48 89 5C 24 ? 57 48 81 EC ? ? ? ? 80 3D ? ? ? ? ? 41 8B D8 //
//-------------------------------------------------------------------------
2022-08-09 03:02:00 +02:00
gHost_Init_1 = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x8B \xC4 \x41 \x56 \x48 \x81 \xEC \x00 \x00 \x00 \x00 \x45 \x33 \xF6 " ) , " xxxxxxxx????xxx " ) ; // server Host_Init()?
2022-04-18 03:35:08 +02:00
// 0x140237B00 // 48 8B C4 41 56 48 81 EC ? ? ? ? 45 33 F6 //
2022-08-09 03:02:00 +02:00
gHost_Init_2 = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x88 \x4C \x24 \x08 \x53 \x55 \x56 \x57 \x48 \x83 \xEC \x68 " ) , " xxxxxxxxxxxx " ) ; // client Host_Init()?
2022-04-18 03:35:08 +02:00
// 0x140236640 // 88 4C 24 08 53 55 56 57 48 83 EC 68 //
//-------------------------------------------------------------------------
2022-08-09 03:02:00 +02:00
Host_Shutdown = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x8B \xC4 \x48 \x83 \xEC \x00 \x80 \x3D \x00 \x00 \x00 \x00 \x00 \x0F \x85 \x00 \x00 \x00 \x00 \x8B \x15 \x00 \x00 \x00 \x00 " ) , " xxxxxx?xx?????xx????xx???? " ) ;
2022-04-18 03:35:08 +02:00
// 0x140239620 // 48 8B C4 48 83 EC ?? 80 3D ? ? ? ? ? 0F 85 ? ? ? ? 8B 15 ? ? ? ? //
//-------------------------------------------------------------------------
# if defined (GAMEDLL_S0) || defined (GAMEDLL_S1)
2022-08-09 03:02:00 +02:00
Host_Disconnect = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x83 \xEC \x38 \x48 \x89 \x7C \x24 \x00 \x0F \xB6 \xF9 " ) , " xxxxxxxx?xxx " ) ;
2022-04-18 03:35:08 +02:00
# elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3)
2022-08-09 03:02:00 +02:00
Host_Disconnect = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x40 \x53 \x48 \x83 \xEC \x30 \x0F \xB6 \xD9 " ) , " xxxxxxxxx " ) ;
2022-04-18 03:35:08 +02:00
# endif // 0x14023CCA0 // 40 53 48 83 EC 30 0F B6 D9 //
//-------------------------------------------------------------------------
# ifndef CLIENT_DLL
2022-08-09 03:02:00 +02:00
Server_S2C_CONNECT_1 = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x3B \x05 \x00 \x00 \x00 \x00 \x74 \x0C " ) , " xxx????xx " ) ;
2022-04-18 03:35:08 +02:00
# endif // !CLIENT_DLL
//-------------------------------------------------------------------------
2022-08-09 03:02:00 +02:00
UpdateMaterialSystemConfig = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x89 \x5C \x24 \x00 \x57 \x48 \x83 \xEC \x20 \x80 \x3D \x00 \x00 \x00 \x00 \x00 \x0F \x84 \x00 \x00 \x00 \x00 " ) , " xxxx?xxxxxxx?????xx???? " ) ;
UpdateCurrentVideoConfig = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x40 \x55 \x00 \x41 \x56 \x48 \x8D \xAC \x24 \x00 \x00 \x00 \x00 \x48 \x81 \xEC \x00 \x00 \x00 \x00 \x48 \x8B \x05 \x00 \x00 \x00 \x00 \x4C \x8B \xF1 " ) , " xx?xxxxxx????xxx????xxx????xxx " ) ;
HandleConfigFile = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x40 \x56 \x48 \x81 \xEC \x00 \x00 \x00 \x00 \x8B \xF1 " ) , " xxxxx????xx " ) ;
ResetPreviousGameState = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \xE8 \x00 \x00 \x00 \x00 \x44 \x89 \x3D \x00 \x00 \x00 \x00 \x00 \x8B \x00 \x24 \x00 " ) , " x????xxx?????x?x? " ) . ResolveRelativeAddressSelf ( 0x1 , 0x5 ) ;
2022-04-18 03:35:08 +02:00
# if defined (GAMEDLL_S0) || defined (GAMEDLL_S1) || defined (GAMEDLL_S2)
2022-08-09 03:02:00 +02:00
LoadPlayerConfig = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x81 \xEC \x00 \x00 \x00 \x00 \x48 \x83 \x3D \x00 \x00 \x00 \x00 \x00 \x75 \x0C " ) , " xxx????xxx?????xx " ) ;
2022-04-18 03:35:08 +02:00
# elif defined (GAMEDLL_S3)
2022-08-09 03:02:00 +02:00
LoadPlayerConfig = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x89 \x4C \x24 \x08 \x48 \x81 \xEC \x00 \x00 \x00 \x00 \x48 \x83 \x3D \x00 \x00 \x00 \x00 \x00 " ) , " xxxxxxx????xxx????? " ) ;
2022-04-18 03:35:08 +02:00
# endif
# if defined (GAMEDLL_S0) || defined (GAMEDLL_S1)
2022-08-09 03:02:00 +02:00
GetEngineClientThread = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x40 \x53 \x48 \x83 \xEC \x20 \x65 \x48 \x8B \x04 \x25 \x00 \x00 \x00 \x00 \x48 \x8B \xD9 \xB9 \x00 \x00 \x00 \x00 \x48 \x8B \x10 \x8B \x04 \x11 \x39 \x05 \x00 \x00 \x00 \x00 \x7F \x15 " ) , " xxxxxxxxxxx????xxxx????xxxxxxxx????xx " ) ;
2022-04-18 03:35:08 +02:00
# elif defined (GAMEDLL_S2) || defined (GAMEDLL_S3)
2022-08-09 03:02:00 +02:00
GetEngineClientThread = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x40 \x53 \x48 \x83 \xEC \x20 \x65 \x48 \x8B \x04 \x25 \x00 \x00 \x00 \x00 \x48 \x8B \xD9 \xB9 \x00 \x00 \x00 \x00 \x48 \x8B \x10 \x8B \x04 \x11 \x39 \x05 \x00 \x00 \x00 \x00 \x7F \x21 " ) , " xxxxxxxxxxx????xxxx????xxxxxxxx????xx " ) ;
2022-04-18 03:35:08 +02:00
# endif
2022-05-21 12:42:28 +02:00
# if defined (GAMEDLL_S0) || defined (GAMEDLL_S1)
2022-08-09 03:02:00 +02:00
MatchMaking_Frame = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x40 \x55 \x56 \x41 \x54 \x41 \x55 \x48 \x8D \xAC \x24 \x00 \x00 \x00 \x00 " ) , " xxxxxxxxxxx???? " ) ;
2022-05-21 12:42:28 +02:00
# elif defined (GAMEDLL_S2)
2022-08-09 03:02:00 +02:00
MatchMaking_Frame = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x89 \x74 \x24 \x00 \x55 \x41 \x54 \x41 \x57 \x48 \x8D \xAC \x24 \x00 \x00 \x00 \x00 " ) , " xxxx?xxxxxxxxx???? " ) ;
2022-05-21 12:42:28 +02:00
# elif defined (GAMEDLL_S3)
2022-08-09 03:02:00 +02:00
MatchMaking_Frame = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x8B \xC4 \x55 \x48 \x8D \xA8 \x00 \x00 \x00 \x00 \x48 \x81 \xEC \x00 \x00 \x00 \x00 \x48 \x89 \x78 \x18 " ) , " xxxxxxx????xxx????xxxx " ) ;
2022-05-21 12:42:28 +02:00
# endif
2022-04-18 03:35:08 +02:00
2022-08-09 03:02:00 +02:00
CWin32Surface_initStaticData = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x83 \xEC \x28 \xE8 \x00 \x00 \x00 \x00 \x48 \x8D \x0D \x00 \x00 \x00 \x00 \x48 \x83 \xC4 \x28 \xE9 \x00 \x00 \x00 \x00 \xCC \xCC \xCC \xCC \xCC \xCC \xCC \x33 \xC9 " ) , " xxxxx????xxx????xxxxx????xxxxxxxxx " ) ;
2022-04-18 03:35:08 +02:00
// 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)
2022-08-09 03:02:00 +02:00
KeyboardLayout_Init = g_GameDll . FindPatternSIMD ( reinterpret_cast < rsig_t > ( " \x48 \x83 \xEC \x28 \x33 \xC9 \xFF \x15 \x00 \x00 \x00 \x00 \x48 \x8D \x0D \x00 \x00 \x00 \x00 " ) , " xxxxxxxx????xxx???? " ) ;
2022-04-18 03:35:08 +02:00
# endif //48 83 EC 28 33 C9 FF 15 ? ? ? ? 48 8D 0D ? ? ? ?
}
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
} ;
///////////////////////////////////////////////////////////////////////////////
2022-05-13 14:53:25 +02:00
REGISTER ( VOpcodes ) ;