aboutsummaryrefslogtreecommitdiff
path: root/client/global.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/global.gd')
-rw-r--r--client/global.gd31
1 files changed, 19 insertions, 12 deletions
diff --git a/client/global.gd b/client/global.gd
index 02989b19..a09f8696 100644
--- a/client/global.gd
+++ b/client/global.gd
@@ -1,29 +1,36 @@
extends Node
+const DEFAULT_SETTINGS := {
+ "username": "Giovanni",
+ "character": 0,
+ "last_server_url": ""
+}
+
+var settings := DEFAULT_SETTINGS.duplicate(true)
+
var server_url = ""
var error_message = ""
-var character = 1
-var username = "Giovanni"
-
func _ready():
load_profile()
func save_profile():
- print("Save profile")
var f = FileAccess.open("user://profile", FileAccess.WRITE)
- f.store_line(JSON.stringify({
- "username": username,
- "character": character
- }))
+ f.store_var(settings.duplicate(true))
+
+ print("Saved settings: ", settings)
func load_profile():
# TOCTOU here. Godot docs says its fine.
if not FileAccess.file_exists("user://profile"):
print("Skip profile load")
return
- print("Load profile")
var f = FileAccess.open("user://profile", FileAccess.READ)
- var ob = JSON.parse_string(f.get_line())
- username = ob["username"]
- character = ob["character"]
+ settings = f.get_var()
+
+ # Add missing keys
+ for k in DEFAULT_SETTINGS.keys():
+ if !settings.has(k):
+ settings[k] = DEFAULT_SETTINGS[k]
+
+ print("Loaded settings: ", settings)