2021-07-26 03:32:37 -07:00
|
|
|
#include "pch.h"
|
2021-07-27 23:08:20 +02:00
|
|
|
#include "hooks.h"
|
2021-07-26 03:32:37 -07:00
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// Purpose: test each ConVar query before setting the cvar
|
|
|
|
// Input : **cvar - flag
|
|
|
|
// Output : true if change is not permitted, false if permitted
|
|
|
|
//-----------------------------------------------------------------------------
|
2021-07-27 23:08:20 +02:00
|
|
|
|
|
|
|
bool Hooks::ConVar_IsFlagSet(int** cvar, int flag)
|
2021-07-26 03:32:37 -07:00
|
|
|
{
|
|
|
|
int real_flags = *(*(cvar + (72 / (sizeof(void*)))) + (56 / sizeof(int)));
|
|
|
|
if (g_bDebugConsole)
|
|
|
|
{
|
|
|
|
printf("--------------------------------------------------\n");
|
|
|
|
printf(" Flaged: %08X\n", real_flags);
|
|
|
|
}
|
|
|
|
// Mask off FCVAR_CHEATS and FCVAR_DEVELOPMENTONLY
|
|
|
|
real_flags &= 0xFFFFBFFD;
|
|
|
|
if (g_bDebugConsole)
|
|
|
|
{
|
|
|
|
printf(" Masked: %08X\n", real_flags);
|
|
|
|
printf(" Verify: %08X\n", flag);
|
|
|
|
printf("--------------------------------------------------\n");
|
|
|
|
}
|
|
|
|
if (flag & 0x80000) { return true; }
|
|
|
|
|
2021-07-27 23:08:20 +02:00
|
|
|
if (!g_bReturnAllFalse)
|
|
|
|
{
|
|
|
|
return (real_flags & flag) != 0;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
2021-07-26 03:32:37 -07:00
|
|
|
}
|
|
|
|
|
2021-07-27 23:08:20 +02:00
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// Purpose: test each ConCommand query before execution
|
|
|
|
// Input : *cmd - flag
|
|
|
|
// Output : true if execution is not permitted, false if permitted
|
|
|
|
//-----------------------------------------------------------------------------
|
2021-07-26 03:32:37 -07:00
|
|
|
|
2021-07-27 23:08:20 +02:00
|
|
|
bool Hooks::ConCommand_IsFlagSet(int* cmd, int flag)
|
2021-07-26 03:32:37 -07:00
|
|
|
{
|
2021-07-27 23:08:20 +02:00
|
|
|
int real_flags = *((cmd + (56 / sizeof(int))));
|
|
|
|
if (g_bDebugConsole)
|
|
|
|
{
|
|
|
|
printf("--------------------------------------------------\n");
|
|
|
|
printf(" Flaged: %08X\n", real_flags);
|
|
|
|
}
|
|
|
|
// Mask off FCVAR_CHEATS and FCVAR_DEVELOPMENTONLY
|
|
|
|
real_flags &= 0xFFFFBFFD;
|
|
|
|
if (g_bDebugConsole)
|
|
|
|
{
|
|
|
|
printf(" Masked: %08X\n", real_flags);
|
|
|
|
printf(" Verify: %08X\n", flag);
|
|
|
|
printf("--------------------------------------------------\n");
|
|
|
|
}
|
|
|
|
if (flag & 0x80000) { return true; }
|
|
|
|
|
|
|
|
if (!g_bReturnAllFalse)
|
|
|
|
{
|
|
|
|
return(real_flags & flag) != 0;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
2021-07-26 03:32:37 -07:00
|
|
|
}
|