Default config
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								default.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											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) { | ||||
|   | ||||
							
								
								
									
										19
									
								
								src/menu.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								src/menu.c
									
									
									
									
									
								
							| @@ -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"); | ||||
|         } | ||||
|     } | ||||
|      | ||||
| @@ -149,3 +161,7 @@ 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"); | ||||
| }  | ||||
		Reference in New Issue
	
	Block a user