From 2ca8c26f8f6ca0099e5703bca6ee02d4ad7c4e99 Mon Sep 17 00:00:00 2001 From: Wizzard <rich@bandaholics.cash> Date: Fri, 4 Apr 2025 18:15:03 -0400 Subject: [PATCH] Less retarded --- default.cfg | Bin 64 -> 64 bytes src/hooks.c | 3 +- src/include/settings.h | 1 + src/menu.c | 85 +---------------- src/settings.c | 210 ++++++++++++++++++++++++++++++++++++----- 5 files changed, 192 insertions(+), 107 deletions(-) diff --git a/default.cfg b/default.cfg index 808c7b4e2ee18feb32de223313ab00fb1f6e3847..db471a4d8f27176ebecf5b3e6627ae990d5237d0 100644 GIT binary patch delta 30 ccmZ>8;Adojfp<<o_C$V74ridq*)uzw05?wsX#fBK delta 30 icmZ>8;AduFU|<B|Su?jeF)}hv<k#d#26By!vz-7&Vg(5R diff --git a/src/hooks.c b/src/hooks.c index 6f1e111..760653f 100644 --- a/src/hooks.c +++ b/src/hooks.c @@ -193,6 +193,8 @@ void h_CL_CreateMove(float frametime, usercmd_t* cmd, int active) { float origUp = cmd->upmove; int origButtons = cmd->buttons; + fov_adjust(cmd); + if (g_menu_open && !g_settings.menu_allow_movement) { cmd->forwardmove = 0.0f; cmd->sidemove = 0.0f; @@ -217,7 +219,6 @@ void h_CL_CreateMove(float frametime, usercmd_t* cmd, int active) { bullet_tracers(cmd); anti_aim(cmd); check_namechanger_mode_and_execute(cmd); - fov_adjust(cmd); if (g_menu_open && s_lock_initialized) { vec_copy(cmd->viewangles, s_locked_view_angles); diff --git a/src/include/settings.h b/src/include/settings.h index 7edc536..9d44055 100644 --- a/src/include/settings.h +++ b/src/include/settings.h @@ -59,6 +59,7 @@ void settings_reset(void); bool settings_save_to_file(const char* filename); bool settings_load_from_file(const char* filename); bool settings_set_as_default(void); +bool settings_create_root_default(void); const char* get_config_dir(void); inline void init_default_settings(void) { diff --git a/src/menu.c b/src/menu.c index 14b4a84..0bfa01c 100644 --- a/src/menu.c +++ b/src/menu.c @@ -414,91 +414,10 @@ extern "C" void menu_render(void) { ImGui::OpenPopup("ConfirmDelete"); } - if (ImGui::BeginPopupModal("ConfirmReset", NULL, ImGuiWindowFlags_AlwaysAutoResize)) { - ImGui::Text("Are you sure you want to reset all settings?"); - ImGui::Text("This cannot be undone!"); - ImGui::Separator(); - - if (ImGui::Button("Yes", ImVec2(120, 0))) { - settings_reset(); - ImGui::CloseCurrentPopup(); - } - - ImGui::SameLine(); - if (ImGui::Button("No", ImVec2(120, 0))) { - ImGui::CloseCurrentPopup(); - } - - ImGui::EndPopup(); - } - - if (ImGui::BeginPopupModal("ConfirmDelete", NULL, ImGuiWindowFlags_AlwaysAutoResize)) { - ImGui::Text("Are you sure you want to delete this config?"); - ImGui::TextColored(ImVec4(1.0f, 0.3f, 0.3f, 1.0f), "%s.cfg", config_name); - ImGui::Text("This cannot be undone!"); - ImGui::Separator(); - - if (ImGui::Button("Yes", ImVec2(120, 0))) { - const char* config_dir = get_config_dir(); - if (config_dir) { - char filepath[1024]; - snprintf(filepath, sizeof(filepath), "%s/%s.cfg", config_dir, config_name); - - if (remove(filepath) == 0) { - i_engine->Con_Printf("Deleted config file: %s\n", filepath); - s_need_refresh_configs = true; - ImGui::CloseCurrentPopup(); - } else { - i_engine->Con_Printf("Error deleting config file: %s\n", filepath); - ImGui::OpenPopup("ConfigError"); - } - } - ImGui::CloseCurrentPopup(); - } - - ImGui::SameLine(); - if (ImGui::Button("No", ImVec2(120, 0))) { - ImGui::CloseCurrentPopup(); - } - - ImGui::EndPopup(); - } - - if (ImGui::BeginPopupModal("ConfigSaved", NULL, ImGuiWindowFlags_AlwaysAutoResize)) { - ImGui::Text("Configuration saved successfully!"); - if (ImGui::Button("OK", ImVec2(120, 0))) { - ImGui::CloseCurrentPopup(); - } - ImGui::EndPopup(); - } - - if (ImGui::BeginPopupModal("ConfigLoaded", NULL, ImGuiWindowFlags_AlwaysAutoResize)) { - ImGui::Text("Configuration loaded successfully!"); - if (ImGui::Button("OK", ImVec2(120, 0))) { - ImGui::CloseCurrentPopup(); - } - ImGui::EndPopup(); - } - - if (ImGui::BeginPopupModal("DefaultSaved", NULL, ImGuiWindowFlags_AlwaysAutoResize)) { - ImGui::Text("Current settings saved as default configuration!"); - ImGui::Text("These settings will load automatically on startup."); - if (ImGui::Button("OK", ImVec2(120, 0))) { - ImGui::CloseCurrentPopup(); - } - ImGui::EndPopup(); - } - - if (ImGui::BeginPopupModal("ConfigError", NULL, ImGuiWindowFlags_AlwaysAutoResize)) { - ImGui::Text("Error with configuration operation!"); - ImGui::Text("Check console for details."); - if (ImGui::Button("OK", ImVec2(120, 0))) { - ImGui::CloseCurrentPopup(); - } - ImGui::EndPopup(); - } + ImGui::Separator(); ImGui::Separator(); + ImGui::Text("Available Configs:"); if (s_need_refresh_configs) { diff --git a/src/settings.c b/src/settings.c index fc50d89..af50cdb 100644 --- a/src/settings.c +++ b/src/settings.c @@ -10,36 +10,127 @@ cheat_settings_t g_settings; +static bool copy_file(const char* src_path, const char* dst_path) { + FILE* src = fopen(src_path, "rb"); + if (!src) { + return false; + } + + FILE* dst = fopen(dst_path, "wb"); + if (!dst) { + fclose(src); + return false; + } + + char buffer[4096]; + size_t bytes; + + while ((bytes = fread(buffer, 1, sizeof(buffer), src)) > 0) { + if (fwrite(buffer, 1, bytes, dst) != bytes) { + fclose(src); + fclose(dst); + return false; + } + } + + fclose(src); + fclose(dst); + return true; +} + +bool create_root_default_config(void) { + cheat_settings_t preset; + memset(&preset, 0, sizeof(preset)); + + preset.esp_mode = ESP_BOX; + preset.chams = true; + preset.aimbot_enabled = true; + preset.aimbot_fov = 5.0f; + preset.bhop = true; + preset.autostrafe = true; + preset.thirdperson = false; + preset.thirdperson_key = 'C'; + preset.thirdperson_dist = 150.0f; + preset.watermark = true; + preset.watermark_rainbow = true; + preset.fov = 90.0f; + + FILE* file = fopen("../default.cfg", "wb"); + if (!file) { + i_engine->Con_Printf("Error: Could not create root default.cfg\n"); + return false; + } + + size_t written = fwrite(&preset, sizeof(preset), 1, file); + fclose(file); + + if (written != 1) { + i_engine->Con_Printf("Error: Failed to write to root default.cfg\n"); + return false; + } + + i_engine->Con_Printf("Successfully created ../default.cfg with preset settings\n"); + return true; +} void settings_init(void) { init_default_settings(); + char cwd[1024] = {0}; + if (getcwd(cwd, sizeof(cwd)) != NULL) { + i_engine->Con_Printf("Current working directory: %s\n", cwd); + } + const char* config_dir = get_config_dir(); - if (config_dir) { - char filepath[1024]; - snprintf(filepath, sizeof(filepath), "%s/default.cfg", config_dir); + if (!config_dir) { + i_engine->Con_Printf("Error: Could not get config directory, using defaults\n"); + return; + } + + char config_path[1024]; + snprintf(config_path, sizeof(config_path), "%s/default.cfg", config_dir); + i_engine->Con_Printf("Config path: %s\n", config_path); + + if (access(config_path, F_OK) == 0) { + i_engine->Con_Printf("Found config, loading from: %s\n", config_path); - if (access(filepath, F_OK) != 0) { - char cmd[2048]; - snprintf(cmd, sizeof(cmd), "cp -f default.cfg %s/ 2>/dev/null", config_dir); - if (system(cmd) == 0) { - i_engine->Con_Printf("Copied default config from project root to %s\n", config_dir); - } else { - i_engine->Con_Printf("No default config found in project root or couldn't copy\n"); - } - } - - if (access(filepath, F_OK) == 0) { - i_engine->Con_Printf("Loading default configuration...\n"); - settings_load_from_file("default"); + if (settings_load_from_file("default")) { + i_engine->Con_Printf("Successfully loaded config\n"); } else { - i_engine->Con_Printf("No default config found, using built-in defaults\n"); + i_engine->Con_Printf("Error loading config, using defaults\n"); + } + } + else if (access("../default.cfg", F_OK) == 0) { + i_engine->Con_Printf("Found config in project dir, copying to user config...\n"); + + if (copy_file("../default.cfg", config_path)) { + i_engine->Con_Printf("Successfully copied project config to user directory\n"); + + if (settings_load_from_file("default")) { + i_engine->Con_Printf("Successfully loaded copied config\n"); + } else { + i_engine->Con_Printf("Error loading copied config, using defaults\n"); + } + } else { + i_engine->Con_Printf("Error copying project config, using defaults\n"); + } + } + // No config exists, create it with defaults + else { + i_engine->Con_Printf("No config found anywhere, creating default config with current settings\n"); + + if (settings_save_to_file("default")) { + i_engine->Con_Printf("Created new default config\n"); + } else { + i_engine->Con_Printf("Error creating default config\n"); } } - g_settings.thirdperson_key = 'C'; + if (g_settings.thirdperson_key == 0) { + g_settings.thirdperson_key = 'C'; + } - i_engine->Con_Printf("Settings initialized with defaults. Third-person key bound to C.\n"); + i_engine->Con_Printf("Settings initialized. Third-person key: %d\n", g_settings.thirdperson_key); } @@ -108,6 +199,7 @@ const char* get_config_dir(void) { bool settings_save_to_file(const char* filename) { const char* config_dir = get_config_dir(); if (!config_dir) { + i_engine->Con_Printf("Error: Could not get config directory\n"); return false; } @@ -120,6 +212,7 @@ bool settings_save_to_file(const char* filename) { return false; } + // Simple direct binary write of the settings size_t written = fwrite(&g_settings, sizeof(g_settings), 1, file); fclose(file); @@ -135,20 +228,34 @@ bool settings_save_to_file(const char* filename) { bool settings_load_from_file(const char* filename) { const char* config_dir = get_config_dir(); if (!config_dir) { + i_engine->Con_Printf("Error: Could not get config directory\n"); return false; } char filepath[1024]; snprintf(filepath, sizeof(filepath), "%s/%s.cfg", config_dir, filename); + if (access(filepath, F_OK) != 0) { + i_engine->Con_Printf("Error: Config file does not exist: %s\n", filepath); + return false; + } + FILE* file = fopen(filepath, "rb"); if (!file) { i_engine->Con_Printf("Error: Could not open file for reading: %s\n", filepath); return false; } - cheat_settings_t temp_settings; - size_t read = fread(&temp_settings, sizeof(temp_settings), 1, file); + // Get file size for debugging + fseek(file, 0, SEEK_END); + long file_size = ftell(file); + fseek(file, 0, SEEK_SET); + + i_engine->Con_Printf("Loading config from %s, file size: %ld bytes, struct size: %zu bytes\n", + filepath, file_size, sizeof(cheat_settings_t)); + + // Simple direct binary read of the settings + size_t read = fread(&g_settings, sizeof(g_settings), 1, file); fclose(file); if (read != 1) { @@ -156,12 +263,69 @@ bool settings_load_from_file(const char* filename) { return false; } - memcpy(&g_settings, &temp_settings, sizeof(g_settings)); + i_engine->Con_Printf("Settings loaded. Aimbot=%d, ESP=%d, Bhop=%d, ThirdPerson=%d, TPDist=%.1f\n", + g_settings.aimbot_enabled, g_settings.esp_mode, g_settings.bhop, + g_settings.thirdperson, g_settings.thirdperson_dist); - i_engine->Con_Printf("Settings loaded from %s\n", filepath); return true; } bool settings_set_as_default(void) { return settings_save_to_file("default"); +} + +bool settings_create_root_default(void) { + return create_root_default_config(); +} + +// Add a simple function to copy config from ~/gitprojects/goldsource-cheat/default.cfg to ~/.config/dz-goldsrccheat/default.cfg +bool copy_project_config_to_user(void) { + const char* config_dir = get_config_dir(); + if (!config_dir) { + i_engine->Con_Printf("Error: Could not get config directory\n"); + return false; + } + + char dst_path[1024]; + snprintf(dst_path, sizeof(dst_path), "%s/default.cfg", config_dir); + + // Check if source exists + if (access("../default.cfg", F_OK) != 0) { + i_engine->Con_Printf("Error: Source config ../default.cfg does not exist\n"); + return false; + } + + if (!copy_file("../default.cfg", dst_path)) { + i_engine->Con_Printf("Error: Failed to copy ../default.cfg to %s\n", dst_path); + return false; + } + + i_engine->Con_Printf("Successfully copied project config to user directory\n"); + return true; +} + +// Add a simple function to copy config from ~/.config/dz-goldsrccheat/default.cfg to ~/gitprojects/goldsource-cheat/default.cfg +bool copy_user_config_to_project(void) { + const char* config_dir = get_config_dir(); + if (!config_dir) { + i_engine->Con_Printf("Error: Could not get config directory\n"); + return false; + } + + char src_path[1024]; + snprintf(src_path, sizeof(src_path), "%s/default.cfg", config_dir); + + // Check if source exists + if (access(src_path, F_OK) != 0) { + i_engine->Con_Printf("Error: Source config %s does not exist\n", src_path); + return false; + } + + if (!copy_file(src_path, "../default.cfg")) { + i_engine->Con_Printf("Error: Failed to copy %s to ../default.cfg\n", src_path); + return false; + } + + i_engine->Con_Printf("Successfully copied user config to project directory\n"); + return true; } \ No newline at end of file