aboutsummaryrefslogtreecommitdiff
path: root/game/src/Game/Autoload/Events/Options.gd
diff options
context:
space:
mode:
Diffstat (limited to 'game/src/Game/Autoload/Events/Options.gd')
-rw-r--r--game/src/Game/Autoload/Events/Options.gd30
1 files changed, 30 insertions, 0 deletions
diff --git a/game/src/Game/Autoload/Events/Options.gd b/game/src/Game/Autoload/Events/Options.gd
new file mode 100644
index 0000000..fbeccef
--- /dev/null
+++ b/game/src/Game/Autoload/Events/Options.gd
@@ -0,0 +1,30 @@
+extends RefCounted
+
+signal save_settings(save_file: ConfigFile)
+signal load_settings(load_file: ConfigFile)
+signal reset_settings()
+
+func load_settings_from_file() -> void:
+ load_settings.emit(_settings_file)
+
+# REQUIREMENTS
+# * SS-11
+func save_settings_to_file() -> void:
+ save_settings.emit(_settings_file)
+ _settings_file.save(_settings_file_path)
+
+func try_reset_settings() -> void:
+ reset_settings.emit()
+
+const settings_file_path_setting : String = "openvic/settings/settings_file_path"
+const settings_file_path_default : String = "user://settings.cfg"
+
+var _settings_file_path : String = ProjectSettings.get_setting(settings_file_path_setting, settings_file_path_default)
+var _settings_file := ConfigFile.new()
+
+# REQUIREMENTS
+# * SS-9
+# * UIFUN-7
+func _init():
+ if FileAccess.file_exists(_settings_file_path):
+ _settings_file.load(_settings_file_path)