From 3c27e7ce262e612fa75c6e6f090e04041a688861 Mon Sep 17 00:00:00 2001 From: salmonik Date: Fri, 6 Nov 2026 16:21:27 +0100 Subject: Headers: split the shared header by declaration group hl2h.h becomes an umbrella over core.h (logging, init stage, module snapshots, interfaces, netvars, CUserCmd, engine constants, vector math), settings.h (feature ids, feature state, user settings) and features.h (cross-module declarations). Translation units keep including hl2h.h, so this only moves declarations. --- src/settings.h | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 src/settings.h (limited to 'src/settings.h') diff --git a/src/settings.h b/src/settings.h new file mode 100644 index 0000000..67c82ae --- /dev/null +++ b/src/settings.h @@ -0,0 +1,117 @@ +#ifndef HL2H_SETTINGS_H +#define HL2H_SETTINGS_H + +#include "core.h" + +enum FeatureId { + FEAT_BHOP = 0, + FEAT_ABH = 1, + FEAT_ESP = 2, + FEAT_AIMBOT = 3, + FEAT_TRIGGERBOT = 4, + FEAT_SILENTAIM = 5, + FEAT_JUMPBUG = 6, + FEAT_MELEE = 7, + FEAT_SPREAD = 8, + FEAT_ITEM_ESP = 9, + FEAT_FULLBRIGHT = 10, + FEAT_WORLD_TINT = 11, + FEAT_FOG = 12, + FEAT_SKYBOX = 13, + FEAT_PROJECTILES = 14, + FEAT_CHAMS = 15, + FEAT_COUNT = 16 +}; +enum EspOption { + ESP_OPT_SHOW_NEUTRAL = 0, + ESP_OPT_SHOW_HEALTHBAR = 1, + ESP_OPT_SHOW_HEALTHNUM = 2, + ESP_OPT_SHOW_NAME = 3, + ESP_OPT_SHOW_SKELETON = 4, + ESP_OPT_SHOW_BOX = 5, + ESP_OPT_SHOW_SPEEDGRAPH = 6, + ESP_OPT_DAMAGE_TAGS = 7, + ESP_OPT_ALERT = 8, + ESP_OPT_WEAPON = 9, + ESP_OPT_ARROWS = 10, + ESP_OPT_COUNT = 11 +}; +enum AimBone { + AIM_BONE_HEAD = 0, + AIM_BONE_TORSO, + AIM_BONE_LARM, + AIM_BONE_RARM, + AIM_BONE_LLEG, + AIM_BONE_RLEG, + AIM_BONE_COUNT +}; + +// --------------------------------------------------------------------------- +// feature state / settings (owned by menu.cpp alongside config) +// --------------------------------------------------------------------------- + +struct FeatureState { + bool active; + int bind; // SDL scancode, 0 = none (always-on) +}; + +extern FeatureState g_bhop, g_abh, g_jumpbug, g_melee, g_spread, g_esp, + g_aimbot, g_triggerbot, g_silentaim, g_item_esp, g_fullbright, + g_world_tint, g_fog, g_skybox, g_projectiles, g_chams; +extern bool g_proj_fuse, g_proj_radius, g_proj_traj; + +// Chams settings per relationship, and separate visible / through-wall +// (invisible) material and colour. The viewmodel has a single style. +struct ChamsGroup { + bool vis_on; + int vis_mat; + int vis_rgb[4]; // r, g, b, a (0..255) + bool inv_on; + int inv_mat; + int inv_rgb[4]; +}; +extern ChamsGroup g_chams_hostile, g_chams_neutral, g_chams_friendly; +extern bool g_chams_viewmodel; +extern int g_chams_vm_mat; +extern int g_chams_vm_rgb[4]; +extern bool g_tint_world_on, g_tint_sky_on, g_tint_prop_on; +extern int g_tint_world_rgb[3], g_tint_sky_rgb[3], g_tint_prop_rgb[3]; +extern bool g_fog_skybox, g_fog_disable; +extern int g_fog_rgb[3], g_fog_start, g_fog_end; +extern bool g_bhop_autostrafe; +extern bool g_jumpbug_assist; +extern bool g_spread_no_spread; +extern bool g_item_health; +extern bool g_item_ammo; +extern bool g_item_armor; +extern bool g_item_weapons; +extern bool g_item_crates; +extern bool g_item_distance; +extern bool g_item_usable; +extern int g_item_max_dist; +extern bool g_aim_bones[AIM_BONE_COUNT]; +extern int g_aim_smooth; +extern bool g_aim_vischeck; +extern int g_aim_fov; +extern bool g_aim_fov_circle; +extern bool g_aim_punch; +extern bool g_spread_engine; +extern bool g_auto_crouchjump; +extern bool g_edge_jump; +extern int g_fov_camera; +extern int g_fov_viewmodel; +extern int g_tonemap; +extern int g_esp_col_hostile[3]; +extern int g_esp_col_neutral[3]; +extern int g_esp_col_friendly[3]; +extern bool g_esp_opt[ESP_OPT_COUNT]; +extern int g_spread_pellets; + +const char *scancode_name(int sc); +void config_save(); +void config_reload(); +void config_reset_defaults(); +const char *config_path_cstr(); +const char *config_file_cstr(const char *name); + +#endif -- cgit v1.2.3