So when I try to build the Ayyware fix ( not edited yet, just trying to find out what features I need to fix )
I get these errors,
Severity Code Description Project File Line Suppression State
Error C2144 syntax error: 'void' should be preceded by ';'
And
Severity Code Description Project File Line Suppression State
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int
Btw this is the script with the errors,
Code:
#include "SDK.h"
#include "MiscClasses.h"
void ConVar::SetValue(const char* value)
{
typedef void(__thiscall* OriginalFn)(void*, const char*);
return call_vfunc<OriginalFn>(this, 14)(this, value);
}
void ConVar::SetValue(float value)
{
typedef void(__thiscall* OriginalFn)(void*, float);
return call_vfunc<OriginalFn>(this, 15)(this, value);
}
CRT_SECURE_NO_WARNINGS
void ConVar::SetValue(int value)
{
typedef void(__thiscall* OriginalFn)(void*, int);
return call_vfunc<OriginalFn>(this, 16)(this, value);
}
float ConVar::GetFloat(void) const {
return pParent->fValue;
}
int ConVar::GetInt(void) const {
return pParent->nValue;
}
const char* ConVar::GetString(void) const {
return pParent->pszDefaultValue;
}
Color ConVar::GetColor(void) const {
unsigned char *pColorElement = ((unsigned char *)&pParent->nValue);
return Color(pColorElement[0], pColorElement[1], pColorElement[2], pColorElement[3]);
}
void ConVar::SetValue(Color value)
{
typedef void(__thiscall* OriginalFn)(void*, Color);
return call_vfunc<OriginalFn>(this, 17)(this, value);
}
char* ConVar::GetName()
{
typedef char*(__thiscall* OriginalFn)(void*);
return call_vfunc<OriginalFn>(this, 5)(this);
}
char* ConVar::GetDefault()
{
return pszDefaultValue;
}
template<typename T>
inline void MinspecCvar::SetValue(T value)
{
m_pConVar->SetValue(T);
}
MinspecCvar::MinspecCvar(const char* szCVar, char* newname, float newvalue) : m_pConVar(nullptr)
{
m_pConVar = Interfaces::CVar->FindVar(szCVar);
m_newvalue = newvalue;
m_szReplacementName = newname;
Spoof();
}
MinspecCvar::~MinspecCvar()
{
if (ValidCvar())
{
Interfaces::CVar->UnregisterConCommand(m_pConVar);
m_pConVar->pszName = m_szOriginalName;
m_pConVar->SetValue(m_OriginalValue);
Interfaces::CVar->RegisterConCommand(m_pConVar);
}
}
bool MinspecCvar::ValidCvar()
{
return m_pConVar != nullptr;
}
void MinspecCvar::Spoof()
{
if (ValidCvar())
{
Interfaces::CVar->UnregisterConCommand(m_pConVar);
m_szOriginalName = m_pConVar->pszName;
m_OriginalValue = m_pConVar->GetFloat();
m_pConVar->pszName = m_szReplacementName;
Interfaces::CVar->RegisterConCommand(m_pConVar);
m_pConVar->SetValue(m_newvalue);
}
}
int MinspecCvar::GetInt()
{
if (ValidCvar()) {
return m_pConVar->GetInt();
}
return 0;
}
float MinspecCvar::GetFloat()
{
if (ValidCvar()) {
return m_pConVar->GetFloat();
}
return 0.0f;
}
const char* MinspecCvar::GetString()
{
if (ValidCvar()) {
return m_pConVar->GetString();
}
return nullptr;
}
SpoofedConvar::SpoofedConvar(const char* szCVar) {
m_pOriginalCVar = Interfaces::CVar->FindVar(szCVar);
Spoof();
}
SpoofedConvar::SpoofedConvar(ConVar* pCVar) {
m_pOriginalCVar = pCVar;
Spoof();
}
SpoofedConvar::~SpoofedConvar() {
if (IsSpoofed()) {
DWORD dwOld;
SetFlags(m_iOriginalFlags);
SetString(m_szOriginalValue);
VirtualProtect((LPVOID)m_pOriginalCVar->pszName, 128, PAGE_READWRITE, &dwOld);
strcpy((char*)m_pOriginalCVar->pszName, m_szOriginalName);
VirtualProtect((LPVOID)m_pOriginalCVar->pszName, 128, dwOld, &dwOld);
//Unregister dummy cvar
Interfaces::CVar->UnregisterConCommand(m_pDummyCVar);
free(m_pDummyCVar);
m_pDummyCVar = NULL;
}
}
bool SpoofedConvar::IsSpoofed() {
return m_pDummyCVar != NULL;
}
void SpoofedConvar::Spoof() {
if (!IsSpoofed() && m_pOriginalCVar) {
//Save old name value and flags so we can restore the cvar lates if needed
m_iOriginalFlags = m_pOriginalCVar->nFlags;
strcpy(m_szOriginalName, m_pOriginalCVar->pszName);
strcpy(m_szOriginalValue, m_pOriginalCVar->pszDefaultValue);
sprintf_s(m_szDummyName, 128, "d_%s", m_szOriginalName);
//Create the dummy cvar
m_pDummyCVar = (ConVar*)malloc(sizeof(ConVar));
if (!m_pDummyCVar) return;
memcpy(m_pDummyCVar, m_pOriginalCVar, sizeof(ConVar));
m_pDummyCVar->pNext = NULL;
//Register it
Interfaces::CVar->RegisterConCommand(m_pDummyCVar);
//Fix "write access violation" bullshit
DWORD dwOld;
VirtualProtect((LPVOID)m_pOriginalCVar->pszName, 128, PAGE_READWRITE, &dwOld);
//Rename the cvar
strcpy((char*)m_pOriginalCVar->pszName, m_szDummyName);
VirtualProtect((LPVOID)m_pOriginalCVar->pszName, 128, dwOld, &dwOld);
SetFlags(FCVAR_NONE);
}
}
void SpoofedConvar::SetFlags(int flags) {
if (IsSpoofed()) {
m_pOriginalCVar->nFlags = flags;
}
}
int SpoofedConvar::GetFlags() {
return m_pOriginalCVar->nFlags;
}
void SpoofedConvar::SetInt(int iValue) {
if (IsSpoofed()) {
m_pOriginalCVar->SetValue(iValue);
}
}
void SpoofedConvar::SetBool(bool bValue) {
if (IsSpoofed()) {
m_pOriginalCVar->SetValue(bValue);
}
}
void SpoofedConvar::SetFloat(float flValue) {
if (IsSpoofed()) {
m_pOriginalCVar->SetValue(flValue);
}
}
void SpoofedConvar::SetString(const char* szValue) {
if (IsSpoofed()) {
m_pOriginalCVar->SetValue(szValue);
}
}