#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