#ifndef HL2H_FEATURES_H #define HL2H_FEATURES_H #include "core.h" #include "settings.h" // --------------------------------------------------------------------------- // combat // --------------------------------------------------------------------------- bool aimbot_apply(CUserCmd *cmd); bool triggerbot_apply(CUserCmd *cmd); bool silent_aim_apply(CUserCmd *cmd); bool melee_weapon_active(void *local_ent); bool gravity_gun_active(void *local_ent); bool melee_aimbot_apply(CUserCmd *cmd, bool gravity); bool spread_control_apply(CUserCmd *cmd, void *local_ent); int spread_best_seed(int pellets); // --------------------------------------------------------------------------- // cross-file declarations // --------------------------------------------------------------------------- void note_modified(const CUserCmd *cmd, int flags, const float *vel); CUserCmd *get_usercmd(int seq); void input_clear_mouse_states(); void fix_verified_crc(int seq, uint32_t crc); uint32_t usercmd_checksum(const CUserCmd *c); bool find_input_global(); void resolve_netvars(); bool console_cmd(const char *cmd); bool cvar_set_int(const char *name, int value); void fullbright_update(); void fullbright_invalidate(); void world_tint_update(); void world_tint_invalidate(); void fog_update(); void fog_invalidate(); void skybox_update(); void skybox_invalidate(); void skybox_reload_image(); bool resolve_server_netvars(); int server_entity_health(int idx, int *maxhealth, int *lifestate, void **base_out); // Authoritative server velocity; client-side m_vecVelocity is not networked for // NPCs. Returns false when the server interface or datamap field is missing. bool server_entity_velocity(int idx, Vector *out); bool server_set_velocity_z(int idx, float vz); int server_active_weapon(int idx); int server_npc_relation(int idx, int local_idx); bool server_npc_has_follow_target(int idx); int server_npc_state(int idx); int server_npc_takedamage(int idx); int server_player_armor(int idx); int server_player_ammo(int idx, int type); uint32_t server_player_weapon(int idx, int slot); float server_grenade_detonate(int idx); float server_grenade_radius(int idx); int server_grenade_thrower(int idx); int server_item_juice(int idx); int server_entity_count(); void *server_entity_base(int idx); const char *server_entity_classname(int idx); bool server_trigger_info(int idx, char *map, size_t mapn, Vector &mins, Vector &maxs); int server_npc_turret_flags(int idx); int server_model_index(void *base); void find_modules(); bool module_jump_slot(const char *path, const char *name, uintptr_t *vaddr, uintptr_t *bias); void init_conmsg(); bool feature_active(int feature); // enabled AND bind held (or unbound) bool feature_enabled(int feature); // enabled, regardless of bind bool feature_has_bind(int feature); bool feature_bind_held(int feature); bool esp_option(int opt); bool bhop_autostrafe_enabled(); bool jumpbug_assist_enabled(); bool spread_no_spread_enabled(); bool spread_engine_enabled(); bool aim_punch_enabled(); unsigned aimbot_bone_mask(); int aimbot_smooth_step(); bool aimbot_vischeck_enabled(); int aimbot_fov(); bool aimbot_fov_circle(); void aimbot_reset_lock(); void silentaim_reset_lock(); void *entitylist_get(int idx); bool esp_is_npc_index(int idx); bool esp_is_viewmodel_index(int idx); int esp_npc_relation(int idx); void *world_find_material(const char *name); void chams_init(); void chams_preload(); int engine_get_local_player(); void draw_text_col(int x, int y, const char *s, int r, int g, int b); void draw_text_small_col(int x, int y, const char *s, int r, int g, int b); void esp_draw(); void esp_draw_fov_circle(); // aimbot cone, independent of the ESP toggle void esp_reset_session(); // map change / respawn: clear per-map latches void esp_draw_items(); void esp_draw_projectiles(); void prop_tint_update(); void studio_props_init(); bool world_to_screen(const Vector &w, float &sx, float &sy); void set_silent_restore(const QAngle &angles); bool is_visible(const Vector &eye, const Vector &point, void *self = nullptr, void *target = nullptr); void *trace_entity(const Vector &start, const Vector &end, void *ignore); bool trace_solid_segment(const Vector &start, const Vector &end, void *ignore, Vector &out_end, Vector &out_normal); float ground_distance(const Vector &origin, void *ignore, float max_dist); bool point_ground(const Vector &point, void *ignore); // bones.cpp — client-side animated skeleton / hitbox access (see there) bool bones_update(int idx, void *ent); int bones_count(int idx); int bone_find(int idx, const char *name); int bone_parent(int idx, int bone); bool bone_pos(int idx, int bone, Vector &out); bool bone_is_skeleton_core(int idx, int bone); int bone_nearest_core_parent(int idx, int bone); bool bones_is_humanoid(int idx); bool hitbox_center(int idx, const char *hitbox_name, Vector &out); void bones_clear(); bool head_position(int idx, Vector &out); int aim_points(int idx, unsigned group_mask, Vector *out, int max); void outer_draw(); void gui_handle_input(); void gui_draw(); bool gui_is_open(); bool gui_bind_capture_active(); QAngle gui_frozen_view(); void gui_config_init(); void gui_config_write(FILE *f); #endif