Implement custom data save in settings and savegames (#484)

This commit is contained in:
Julian Murgia
2022-01-13 11:09:06 +01:00
committed by GitHub
parent a363b0c0c2
commit 2179b803e0
11 changed files with 61 additions and 8 deletions

View File

@@ -282,6 +282,20 @@ func hide_main_menu():
pass
# Custom function that is meant to apply custom settings. Called right after
# Escoria settings file was loaded.
func apply_custom_settings(custom_settings: Dictionary):
pass
# Custom function automatically called when save game is created.
#
# *Returns* A Dictionary containing the custom data to be saved within the
# game file.
func get_custom_data() -> Dictionary:
return {}
# Shows the crash popup when a crash occurs
#
# #### Parameters

View File

@@ -154,6 +154,8 @@ func _do_save_game(p_savename: String) -> ESCSaveGame:
escoria.globals_manager.save_game(save_game)
escoria.object_manager.save_game(save_game)
escoria.main.save_game(save_game)
save_game.custom_data = escoria.game_scene.get_custom_data()
return save_game
@@ -323,6 +325,7 @@ func save_settings():
settings_res.speech_volume = escoria.settings.speech_volume
settings_res.fullscreen = escoria.settings.fullscreen
settings_res.skip_dialog = escoria.settings.skip_dialog
settings_res.custom_settings = escoria.settings.custom_settings
var directory: Directory = Directory.new()
if not directory.dir_exists(settings_folder):

View File

@@ -27,3 +27,6 @@ export var globals: Dictionary = {}
# Escoria objects exported from ESCObjectsManager
export var objects: Dictionary = {}
# Custom data
export var custom_data: Dictionary = {}

View File

@@ -41,3 +41,6 @@ export var fullscreen: bool = false
# True if skipping dialogs is allowed
export var skip_dialog: bool = true
# Dictionary containing all user-defined settings.
export var custom_settings: Dictionary