mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Updated IsFlagSet hooks.
* Cleaned up code to properly mask off Dev and Cheat flags. * Added separate define from _DEBUG so you can define it in release builds for people without C++ Debug Restributeables.
This commit is contained in:
parent
7e7717ff68
commit
54cdb2fb61
@ -1,6 +1,10 @@
|
||||
#include "pch.h"
|
||||
#include "hooks.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define MaskOffCheats
|
||||
#endif
|
||||
|
||||
namespace Hooks
|
||||
{
|
||||
ConVar_IsFlagSetFn originalConVar_IsFlagSet = nullptr;
|
||||
@ -10,19 +14,19 @@ namespace Hooks
|
||||
|
||||
bool Hooks::ConVar_IsFlagSet(ConVar* cvar, int flag)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
#ifdef MaskOffCheats
|
||||
if (g_bDebugConsole)
|
||||
{
|
||||
printf("--------------------------------------------------\n");
|
||||
printf(" Flaged: %08X\n", cvar->m_ConCommandBase.m_nFlags);
|
||||
std::cout << "--------------------------------------------------\n";
|
||||
std::cout << cvar->m_ConCommandBase.m_pszName << " Flags: " << std::hex << std::uppercase << cvar->m_ConCommandBase.m_nFlags << "\n";
|
||||
}
|
||||
// Mask off FCVAR_CHEATS and FCVAR_DEVELOPMENTONLY
|
||||
cvar->m_ConCommandBase.m_nFlags &= 0xFFFFBFFD;
|
||||
// Mask off FCVAR_DEVELOPMENTONLY and FCVAR_CHEAT.
|
||||
cvar->m_ConCommandBase.m_nFlags &= ~(FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT);
|
||||
if (g_bDebugConsole)
|
||||
{
|
||||
printf(" Masked: %08X\n", cvar->m_ConCommandBase.m_nFlags);
|
||||
printf(" Verify: %08X\n", flag);
|
||||
printf("--------------------------------------------------\n");
|
||||
std::cout << cvar->m_ConCommandBase.m_pszName << " Flags: " << std::hex << std::uppercase << cvar->m_ConCommandBase.m_nFlags << "\n";
|
||||
std::cout << cvar->m_ConCommandBase.m_pszName << " Verify: " << std::hex << std::uppercase << flag << "\n";
|
||||
std::cout << "--------------------------------------------------\n";
|
||||
}
|
||||
|
||||
if (flag & FCVAR_RELEASE)
|
||||
@ -30,14 +34,12 @@ bool Hooks::ConVar_IsFlagSet(ConVar* cvar, int flag)
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!g_bReturnAllFalse)
|
||||
{
|
||||
return (cvar->m_ConCommandBase.m_nFlags & flag) != 0;
|
||||
}
|
||||
else
|
||||
if (g_bReturnAllFalse)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return (cvar->m_ConCommandBase.m_nFlags & flag) != 0;
|
||||
#else
|
||||
// Mask off FCVAR_DEVELOPMENTONLY if existing.
|
||||
cvar->m_ConCommandBase.m_nFlags &= ~FCVAR_DEVELOPMENTONLY;
|
||||
@ -48,19 +50,19 @@ bool Hooks::ConVar_IsFlagSet(ConVar* cvar, int flag)
|
||||
|
||||
bool Hooks::ConCommand_IsFlagSet(ConCommandBase* cmd, int flag)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
#ifdef MaskOffCheats
|
||||
if (g_bDebugConsole)
|
||||
{
|
||||
printf("--------------------------------------------------\n");
|
||||
printf(" Flaged: %08X\n", cmd->m_nFlags);
|
||||
std::cout << "--------------------------------------------------\n";
|
||||
std::cout << cmd->m_pszName << " Flags: " << std::hex << std::uppercase << cmd->m_nFlags << "\n";
|
||||
}
|
||||
// Mask off FCVAR_CHEATS and FCVAR_DEVELOPMENTONLY
|
||||
cmd->m_nFlags &= 0xFFFFBFFD;
|
||||
// Mask off FCVAR_DEVELOPMENTONLY and FCVAR_CHEAT.
|
||||
cmd->m_nFlags &= ~(FCVAR_DEVELOPMENTONLY | FCVAR_CHEAT);
|
||||
if (g_bDebugConsole)
|
||||
{
|
||||
printf(" Masked: %08X\n", cmd->m_nFlags);
|
||||
printf(" Verify: %08X\n", flag);
|
||||
printf("--------------------------------------------------\n");
|
||||
std::cout << cmd->m_pszName << " Flags: " << std::hex << std::uppercase << cmd->m_nFlags << "\n";
|
||||
std::cout << cmd->m_pszName << " Verify: " << std::hex << std::uppercase << flag << "\n";
|
||||
std::cout << "--------------------------------------------------\n";
|
||||
}
|
||||
|
||||
if (flag & FCVAR_RELEASE)
|
||||
@ -68,14 +70,12 @@ bool Hooks::ConCommand_IsFlagSet(ConCommandBase* cmd, int flag)
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!g_bReturnAllFalse)
|
||||
{
|
||||
return (cmd->m_nFlags & flag) != 0;
|
||||
}
|
||||
else
|
||||
if (g_bReturnAllFalse)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return (cmd->m_nFlags & flag) != 0;
|
||||
#else
|
||||
// Mask off FCVAR_DEVELOPMENTONLY if existing.
|
||||
cmd->m_nFlags &= ~FCVAR_DEVELOPMENTONLY;
|
||||
|
Loading…
x
Reference in New Issue
Block a user