2021-12-25 22:36:38 +01:00
# pragma once
2022-04-09 02:18:57 +02:00
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2022-04-18 03:35:08 +02:00
inline CMemory p_Sys_Error ;
2022-06-20 15:04:27 +02:00
inline auto v_Sys_Error = p_Sys_Error . RCast < void ( * ) ( char * fmt , . . . ) > ( ) ;
2021-12-25 22:36:38 +01:00
2022-06-20 15:04:27 +02:00
inline CMemory p_Sys_Warning ;
inline auto v_Sys_Warning = p_Sys_Warning . RCast < void * ( * ) ( int , char * fmt , . . . ) > ( ) ;
2022-01-14 20:45:36 +01:00
2022-06-20 14:58:53 +02:00
inline CMemory p_Sys_GetProcessUpTime ;
inline auto v_Sys_GetProcessUpTime = p_Sys_GetProcessUpTime . RCast < int ( * ) ( char * szBuffer ) > ( ) ;
2022-06-20 15:04:27 +02:00
# ifndef DEDICATED
2022-04-18 03:35:08 +02:00
inline CMemory p_Con_NPrintf ;
2022-06-20 15:04:27 +02:00
inline auto v_Con_NPrintf = p_Con_NPrintf . RCast < void ( * ) ( int pos , const char * fmt , . . . ) > ( ) ;
# endif // !DEDICATED
2022-05-09 02:20:07 +02:00
/* ==== ------- ========================================================================================================================================================= */
2021-12-25 22:36:38 +01:00
///////////////////////////////////////////////////////////////////////////////
void HSys_Error ( char * fmt , . . . ) ;
2022-06-20 14:58:53 +02:00
int Sys_GetProcessUpTime ( char * szBuffer ) ;
2021-12-25 22:36:38 +01:00
void SysUtils_Attach ( ) ;
void SysUtils_Detach ( ) ;
///////////////////////////////////////////////////////////////////////////////
2022-05-13 14:53:25 +02:00
class VSys_Utils : public IDetour
2021-12-25 22:36:38 +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-20 01:08:09 +02:00
spdlog : : debug ( " | FUN: Sys_Error : {:#18x} | \n " , p_Sys_Error . GetPtr ( ) ) ;
2022-06-20 15:04:27 +02:00
spdlog : : debug ( " | FUN: Sys_Warning : {:#18x} | \n " , p_Sys_Warning . GetPtr ( ) ) ;
2022-08-18 02:15:23 +02:00
spdlog : : debug ( " | FUN: Sys_GetProcessUpTime : {:#18x} | \n " , p_Sys_GetProcessUpTime . GetPtr ( ) ) ;
2022-06-20 15:04:27 +02:00
# ifndef DEDICATED
2022-05-20 01:08:09 +02:00
spdlog : : debug ( " | FUN: Con_NPrintf : {:#18x} | \n " , p_Con_NPrintf . GetPtr ( ) ) ;
2022-06-20 15:04:27 +02:00
# endif // !DEDICATED
2022-05-13 14:53:25 +02:00
spdlog : : debug ( " +----------------------------------------------------------------+ \n " ) ;
2021-12-25 22:36:38 +01:00
}
2022-04-18 03:35:08 +02:00
virtual void GetFun ( void ) const
{
2022-12-01 22:44:55 +01:00
p_Sys_Error = g_GameDll . FindPatternSIMD ( " 48 89 4C 24 08 48 89 54 24 10 4C 89 44 24 18 4C 89 4C 24 20 53 55 41 54 41 56 B8 58 10 ?? ?? E8 " ) ;
p_Sys_Warning = g_GameDll . FindPatternSIMD ( " 48 89 54 24 ?? 4C 89 44 24 ?? 4C 89 4C 24 ?? 48 83 EC 28 4C 8D 44 24 ?? E8 ?? ?? ?? ?? 48 83 C4 28 C3 CC CC CC CC CC CC CC CC CC CC CC CC CC CC 48 89 5C 24 ?? 48 89 74 24 ?? 48 89 7C 24 ?? 8B 05 ?? ?? ?? ?? " ) ;
p_Sys_GetProcessUpTime = g_GameDll . FindPatternSIMD ( " 40 57 48 83 EC 30 48 8B F9 8B 0D ?? ?? ?? ?? " ) ;
2022-06-20 15:04:27 +02:00
# ifndef DEDICATED
2022-12-01 22:44:55 +01:00
p_Con_NPrintf = g_GameDll . FindPatternSIMD ( " 48 89 4C 24 ?? 48 89 54 24 ?? 4C 89 44 24 ?? 4C 89 4C 24 ?? C3 " ) ;
2022-06-20 15:04:27 +02:00
# endif // !DEDICATED
v_Sys_Error = p_Sys_Error . RCast < void ( * ) ( char * , . . . ) > ( ) ; /*48 89 4C 24 08 48 89 54 24 10 4C 89 44 24 18 4C 89 4C 24 20 53 55 41 54 41 56 B8 58 10 00 00 E8*/
v_Sys_Warning = p_Sys_Warning . RCast < void * ( * ) ( int , char * , . . . ) > ( ) ; /*48 89 54 24 ?? 4C 89 44 24 ?? 4C 89 4C 24 ?? 48 83 EC 28 4C 8D 44 24 ?? E8 ?? ?? ?? ?? 48 83 C4 28 C3 CC CC CC CC CC CC CC CC CC CC CC CC CC CC 48 89 5C 24 ?? 48 89 74 24 ?? 48 89 7C 24 ?? 8B 05 ?? ?? ?? ??*/
2022-06-20 14:58:53 +02:00
v_Sys_GetProcessUpTime = p_Sys_GetProcessUpTime . RCast < int ( * ) ( char * ) > ( ) ; /*40 57 48 83 EC 30 48 8B F9 8B 0D ?? ?? ?? ??*/
2022-06-20 15:04:27 +02:00
# ifndef DEDICATED
v_Con_NPrintf = p_Con_NPrintf . RCast < void ( * ) ( int , const char * , . . . ) > ( ) ; /*48 89 4C 24 ?? 48 89 54 24 ?? 4C 89 44 24 ?? 4C 89 4C 24 ?? C3*/
# endif // !DEDICATED
2022-04-18 03:35:08 +02:00
}
2022-04-11 01:44:30 +02:00
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
} ;
///////////////////////////////////////////////////////////////////////////////
2022-05-13 14:53:25 +02:00
REGISTER ( VSys_Utils ) ;