Default config

This commit is contained in:
Wizzard 2025-04-04 17:27:31 -04:00
parent c5a0ec15e9
commit 1ccab9d518
4 changed files with 36 additions and 0 deletions

BIN
default.cfg Normal file

Binary file not shown.

@ -58,6 +58,7 @@ void settings_init(void);
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);
const char* get_config_dir(void);
inline void init_default_settings(void) {

@ -400,6 +400,16 @@ extern "C" void menu_render(void) {
ImGui::Separator();
if (ImGui::Button("Set as Default", ImVec2(120, 30))) {
if (settings_set_as_default()) {
ImGui::OpenPopup("DefaultSaved");
} else {
ImGui::OpenPopup("ConfigError");
}
}
ImGui::SameLine();
if (ImGui::Button("Delete Config", ImVec2(120, 30))) {
ImGui::OpenPopup("ConfirmDelete");
}
@ -470,6 +480,15 @@ extern "C" void menu_render(void) {
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.");

@ -19,9 +19,21 @@ void settings_init(void) {
char filepath[1024];
snprintf(filepath, sizeof(filepath), "%s/default.cfg", config_dir);
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");
} else {
i_engine->Con_Printf("No default config found, using built-in defaults\n");
}
}
@ -148,4 +160,8 @@ bool settings_load_from_file(const char* filename) {
i_engine->Con_Printf("Settings loaded from %s\n", filepath);
return true;
}
bool settings_set_as_default(void) {
return settings_save_to_file("default");
}