add esp font change

This commit is contained in:
nullifiedcat 2017-04-18 17:48:33 +03:00
parent b8336e0e7b
commit 7e3f9b8d8d
7 changed files with 52 additions and 23 deletions

View File

@ -62,6 +62,11 @@
#include "sdk.h"
template<typename T>
constexpr T _clamp(T _min, T _max, T _val) {
return ((_val > _max) ? _max : ((_val < _min) ? _min : _val));
}
#define TF2C (g_AppID == 243750)
#define TF2 (g_AppID == 440)
#define TF (TF2C || TF2)

View File

@ -51,9 +51,6 @@ void AddCenterString(const std::string& string, int color) {
// TODO globals
unsigned long fonts::ESP = 0;
unsigned long fonts::MENU = 0;
unsigned long fonts::MENU_BIG = 0;
int draw::width = 0;
int draw::height = 0;
@ -204,18 +201,46 @@ void draw::DrawRect(int x, int y, int w, int h, int color) {
g_ISurface->DrawFilledRect(x, y, x + w, y + h);
}
namespace fonts {
unsigned long ESP = 0;
unsigned long MENU = 0;
unsigned long MENU_BIG = 0;
static const std::vector<std::string> fonts = {"Tahoma Bold", "Tahoma", "TF2 Build", "Verdana", "Verdana Bold", "Arial", "Courier New", "Ubuntu Mono Bold"};
static CatEnum family_enum(fonts);
CatVar esp_family(family_enum, "font_esp_family", "2", "ESP font", "ESP font family");
CatVar esp_height(CV_INT, "font_esp_height", "14", "ESP height", "ESP font height");
void Update() {
fonts::ESP = g_ISurface->CreateFont();
g_ISurface->SetFontGlyphSet(fonts::ESP, fonts::fonts[_clamp(0, 7, (int)fonts::esp_family)].c_str(), (int)fonts::esp_height, 0, 0, 0, 0); // or Ubuntu Mono Bold
//g_ISurface->ResetFontCaches();
}
}
void draw::Initialize() {
fonts::ESP = g_ISurface->CreateFont();
fonts::MENU = g_ISurface->CreateFont();
fonts::MENU_BIG = g_ISurface->CreateFont();
if (!draw::width || !draw::height) {
g_IEngine->GetScreenSize(draw::width, draw::height);
}
g_ISurface->SetFontGlyphSet(fonts::ESP, "TF2 Build", fonts::ESP_HEIGHT, 0, 0, 0, 0); // or Ubuntu Mono Bold
g_ISurface->SetFontGlyphSet(fonts::MENU, "Verdana", fonts::MENU_HEIGHT, 0, 0, 0, 0);
g_ISurface->SetFontGlyphSet(fonts::MENU_BIG, "Verdana Bold", fonts::MENU_BIG_HEIGHT, 0, 0, 0, 0x0);
const auto install_callback_fn = [](CatVar* var) {
var->convar_parent->InstallChangeCallback([](IConVar* var, const char* pOldValue, float flOldValue) {
fonts::Update();
});
};
fonts::esp_family.OnRegister(install_callback_fn);
fonts::esp_height.OnRegister(install_callback_fn);
fonts::Update();
g_ISurface->SetFontGlyphSet(fonts::MENU, fonts::fonts[_clamp(0, 5, (int)fonts::esp_family)].c_str(), (int)fonts::esp_height, 0, 0, 0, 0);
g_ISurface->SetFontGlyphSet(fonts::MENU, "Verdana", 12, 0, 0, 0, 0);
g_ISurface->SetFontGlyphSet(fonts::MENU_BIG, "Verdana Bold", 30, 0, 0, 0, 0x0);
}
void draw::DrawLine(int x, int y, int dx, int dy, int color) {

View File

@ -15,17 +15,20 @@
class CachedEntity;
class Vector;
class CatVar;
class IClientEntity;
namespace fonts {
// FIXME add menu fonts
extern unsigned long ESP;
extern unsigned long MENU;
extern unsigned long MENU_BIG;
const int ESP_HEIGHT = 14;
const int MENU_HEIGHT = 12;
const int MENU_BIG_HEIGHT = 30;
void Update();
extern CatVar esp_family;
extern CatVar esp_height;
}

View File

@ -202,6 +202,8 @@ List& MainList() {
"ESP" [
"ESP Menu"
"esp_enabled"
"font_esp_family"
"font_esp_height"
"esp_conds"
"esp_class"
"esp_name"

View File

@ -64,9 +64,6 @@ void hack::ExecuteCommand(const std::string command) {
hack::command_stack().push(command);
}
void hack::InitHacks() {
}
ConCommand* hack::c_Cat = 0;
void hack::CC_Cat(const CCommand& args) {
@ -110,7 +107,6 @@ void hack::Initialize() {
else if (TF2C) g_pClassID = new ClassIDTF2C();
else if (HL2DM) g_pClassID = new ClassIDHL2DM();
g_pClassID->Init();
draw::Initialize();
colors::Init();
if (TF2) {
uintptr_t mmmf = (gSignatures.GetClientSignature("C7 44 24 04 09 00 00 00 BB ? ? ? ? C7 04 24 00 00 00 00 E8 ? ? ? ? BA ? ? ? ? 85 C0 B8 ? ? ? ? 0F 44 DA") + 37);
@ -128,9 +124,9 @@ void hack::Initialize() {
}
BeginConVars();
hack::c_Cat = CreateConCommand(CON_NAME, &hack::CC_Cat, "Info");
hack::InitHacks();
g_Settings.Init();
EndConVars();
draw::Initialize();
g_pGUI = new CatGUI();
g_pGUI->Setup();
gNetvars.init();

View File

@ -33,8 +33,6 @@ void Initialize();
void Think();
void Shutdown();
void InitHacks();
void CC_Cat(const CCommand& args);
extern ConCommand* c_Cat;

View File

@ -178,12 +178,12 @@ void Draw3DBox(CachedEntity* ent, int clr, bool healthbar, int health, int healt
data.at(ent->m_IDX).esp_origin = Vector(max_x + 1, min_y, 0);
} break;
case 1: { // BOTTOM RIGHT
data.at(ent->m_IDX).esp_origin = Vector(max_x + 1, max_y - data.at(ent->m_IDX).string_count * 13, 0);
data.at(ent->m_IDX).esp_origin = Vector(max_x + 1, max_y - data.at(ent->m_IDX).string_count * ((int)fonts::esp_height - 1), 0);
} break;
case 2: { // CENTER
} break;
case 3: { // ABOVE
data.at(ent->m_IDX).esp_origin = Vector(min_x, min_y - data.at(ent->m_IDX).string_count * 13, 0);
data.at(ent->m_IDX).esp_origin = Vector(min_x, min_y - data.at(ent->m_IDX).string_count * ((int)fonts::esp_height - 1), 0);
} break;
case 4: { // BELOW
data.at(ent->m_IDX).esp_origin = Vector(min_x, max_y, 0);
@ -256,12 +256,12 @@ void DrawBox(CachedEntity* ent, int clr, float widthFactor, float addHeight, boo
data.at(ent->m_IDX).esp_origin = Vector(max_x, min_y, 0);
} break;
case 1: { // BOTTOM RIGHT
data.at(ent->m_IDX).esp_origin = Vector(max_x, max_y - data.at(ent->m_IDX).string_count * 13, 0);
data.at(ent->m_IDX).esp_origin = Vector(max_x, max_y - data.at(ent->m_IDX).string_count * ((int)fonts::esp_height - 1), 0);
} break;
case 2: { // CENTER
} break;
case 3: { // ABOVE
data.at(ent->m_IDX).esp_origin = Vector(min_x, min_y - data.at(ent->m_IDX).string_count * 13, 0);
data.at(ent->m_IDX).esp_origin = Vector(min_x, min_y - data.at(ent->m_IDX).string_count * ((int)fonts::esp_height - 1), 0);
} break;
case 4: { // BELOW
data.at(ent->m_IDX).esp_origin = Vector(min_x, max_y, 0);
@ -527,11 +527,11 @@ void ProcessEntityPT(CachedEntity* ent) {
if (transparent) color = colors::Transparent(color);
if (!origin_is_zero) {
draw::String(fonts::ESP, draw_point.x, draw_point.y, color, 2, string.data);
draw_point.y += 11;
draw_point.y += (int)fonts::esp_height - 3;
} else {
auto l = draw::GetStringLength(fonts::ESP, string.data);
draw::String(fonts::ESP, draw_point.x - l.first / 2, draw_point.y, color, 2, string.data);
draw_point.y += 11;
draw_point.y += (int)fonts::esp_height - 3;
}
}
}