#pragma once
#include "SDK.h"
namespace SDK
{
enum EConVar
{
ConVar_GetName = 5,
ConVar_GetBaseName = 6,
ConVar_GetFloat = 12,
ConVar_SetString = 14,
ConVar_SetFloat,
ConVar_SetInt
};
enum EICVar
{
ICVar_FindVar = 15
};
class ConVar
{
public:
char pad_0x0000[0x4]; //0x0000
ConVar* pNext; //0x0004
__int32 bRegistered; //0x0008
char* pszName; //0x000C
char* pszHelpString; //0x0010
__int32 nFlags; //0x0014
char pad_0x0018[0x4]; //0x0018
ConVar* pParent; //0x001C
char* pszDefaultValue; //0x0020
char* strString; //0x0024
__int32 StringLength; //0x0028
float fValue; //0x002C
__int32 nValue; //0x0030
__int32 bHasMin; //0x0034
float fMinVal; //0x0038
__int32 bHasMax; //0x003C
float fMaxVal; //0x0040
void* fnChangeCallback; //0x0044
void ConVar::SetValue(const char* value)
{
typedef void(__thiscall* OriginalFn)(void*, const char*);
return GetMethod<OriginalFn>(this, ConVar_SetString)(this, value);
}
void ConVar::SetValue(float value)
{
typedef void(__thiscall* OriginalFn)(void*, float);
return GetMethod<OriginalFn>(this, ConVar_SetFloat)(this, value);
}
void ConVar::SetValue(int value)
{
typedef void(__thiscall* OriginalFn)(void*, int);
return GetMethod<OriginalFn>(this, ConVar_SetInt)(this, value);
}
void ConVar::SetValue(Color value)
{
typedef void(__thiscall* OriginalFn)(void*, Color);
return GetMethod<OriginalFn>(this, 17)(this, value);
}
const char* ConVar::GetName()
{
typedef char*(__thiscall* OriginalFn)(void*);
return GetMethod<OriginalFn>(this, ConVar_GetName)(this);
}
const char* ConVar::GetBaseName()
{
typedef char*(__thiscall* OriginalFn)(void*);
return GetMethod< OriginalFn >(this, ConVar_GetBaseName)(this);
}
char* ConVar::GetDefault()
{
return pszDefaultValue;
}
float ConVar::GetFloat()
{
typedef float(__thiscall* OriginalFn)(void*);
return GetMethod< OriginalFn >(this, ConVar_GetFloat)(this);
}
void RegisterConCommand(ConVar *pCvar)
{
typedef void(__thiscall* OriginalFn)(void*, ConVar*);
return GetMethod<OriginalFn>(this, 12)(this, pCvar);
}
void UnRegisterConCommand(ConVar *pCvar)
{
typedef void(__thiscall* OriginalFn)(void*, ConVar*);
return GetMethod<OriginalFn>(this, 13)(this, pCvar);
}
ConVar* FindVar(const char *var_name)
{
typedef ConVar*(__thiscall* OriginalFn)(void*, const char*);
return GetMethod<OriginalFn>(this, 15)(this, var_name);
}
};//Size=0x0048
}