Add sound volume management and language selection

Not all translated yet though
This commit is contained in:
Julian Murgia
2021-06-01 07:35:50 +02:00
parent 909031f536
commit 5d1df7aaa9
19 changed files with 310 additions and 60 deletions

View File

@@ -81,19 +81,22 @@ func _ready():
get_tree().set_auto_accept_quit(ProjectSettings.get('escoria/main/force_quit'))
randomize()
save_data.load_settings([self, "settings_loaded"])
save_data.check_settings()
var settings = save_data.load_settings(null)
escoria.settings = parse_json(settings)
escoria._on_settings_loaded(escoria.settings)
printt("Calling resource cache start")
resource_cache.start()
if !ProjectSettings.get_setting("escoria/platform/skip_cache"):
scenes_cache_list.push_back(ProjectSettings.get_setting("escoria/main/curtain"))
scenes_cache_list.push_back(ProjectSettings.get_setting("escoria/main/hud"))
printt("Cache list ", [scenes_cache_list])
for s in scenes_cache_list:
if s != null:
resource_cache.queue_resource(s, false, true)
# if !ProjectSettings.get_setting("escoria/platform/skip_cache"):
# scenes_cache_list.push_back(ProjectSettings.get_setting("escoria/main/curtain"))
# scenes_cache_list.push_back(ProjectSettings.get_setting("escoria/main/hud"))
#
# printt("Cache list ", [scenes_cache_list])
# for s in scenes_cache_list:
# if s != null:
# resource_cache.queue_resource(s, false, true)
set_process(true)
func _process(delta : float):
@@ -736,7 +739,9 @@ func object_exit_scene(name : String):
func check_obj(name, cmd):
var obj = escoria.esc_runner.get_object(name)
if obj == null:
escoria.logger.report_errors("", ["Global id "+name+" not found for " + cmd])
escoria.logger.report_errors("esc_runner.gd:check_obj()",
["Global id "+name+" not found for " + cmd])
return false
return true

View File

@@ -0,0 +1,8 @@
extends Script
class_name ESCScript
func get_class():
return "ESCScript"
func _init():
pass

View File

@@ -10,8 +10,8 @@ var settings
func save_settings(p_data, p_callback):
var f = File.new()
f.open("user://settings.bin", File.WRITE)
f.store_var(p_data)
f.open("user://settings.json", File.WRITE)
f.store_string(to_json(p_data))
f.close()
if typeof(p_callback) != typeof(null):
@@ -19,21 +19,37 @@ func save_settings(p_data, p_callback):
return OK
func check_settings():
var f = File.new()
var error = f.open("user://settings.json", File.READ)
if !f.is_open() and error != OK:
match error:
ERR_FILE_NOT_FOUND:
f.close()
save_settings(escoria.settings_default, null)
func load_settings(p_callback):
var f = File.new()
f.open("user://settings.bin", File.READ)
if !f.is_open():
var error = f.open("user://settings.json", File.READ)
if !f.is_open() and error != OK:
escoria.logger.report_warnings("save_data.gd:load_settings()",
["Failed opening settings file user://settings.json.",
"File.open() returned " + error])
if typeof(p_callback) != typeof(null):
p_callback[0].call_deferred(p_callback[1], null)
return FAILED
settings = f.get_var()
settings = f.get_as_text()
f.close()
if typeof(p_callback) != typeof(null):
p_callback[0].call_deferred(p_callback[1], settings)
return OK
return settings
func _get_fname(p_slot):
@@ -118,6 +134,7 @@ func load_slot(p_slot, p_callback):
return OK
func load_autosave(p_callback):
if p_callback == null:
return FAILED