diff --git a/addons/escoria-core/game/core-scripts/save_data/esc_save_manager.gd b/addons/escoria-core/game/core-scripts/save_data/esc_save_manager.gd index bbadab85..23790d21 100644 --- a/addons/escoria-core/game/core-scripts/save_data/esc_save_manager.gd +++ b/addons/escoria-core/game/core-scripts/save_data/esc_save_manager.gd @@ -164,7 +164,11 @@ func save_game_crash(): # - p_savename: name of the savegame func _do_save_game(p_savename: String) -> ESCSaveGame: var save_game = ESCSaveGame.new() - save_game.escoria_version = escoria.ESCORIA_VERSION + + var plugin_config = ConfigFile.new() + plugin_config.load("res://addons/escoria-core/plugin.cfg") + save_game.escoria_version = plugin_config.get_value("plugin", "version") + save_game.game_version = escoria.project_settings_manager.get_setting( escoria.project_settings_manager.GAME_VERSION ) @@ -383,7 +387,10 @@ func load_game(id: int): # Save the game settings in the settings file. func save_settings(): var settings_res := ESCSaveSettings.new() - settings_res.escoria_version = escoria.ESCORIA_VERSION + var plugin_config = ConfigFile.new() + plugin_config.load("res://addons/escoria-core/plugin.cfg") + + settings_res.escoria_version = plugin_config.get_value("plugin", "version") settings_res.text_lang = escoria.settings.text_lang settings_res.voice_lang = escoria.settings.voice_lang settings_res.speech_enabled = escoria.settings.speech_enabled diff --git a/addons/escoria-core/game/escoria.gd b/addons/escoria-core/game/escoria.gd index 7a1625c7..d936abf3 100644 --- a/addons/escoria-core/game/escoria.gd +++ b/addons/escoria-core/game/escoria.gd @@ -24,9 +24,6 @@ enum GAME_STATE { } -# Escoria version number -const ESCORIA_VERSION = "0.1.0" - # Audio bus indices. const BUS_MASTER = "Master" const BUS_SFX = "SFX" diff --git a/addons/escoria-core/ui_library/menus/load_save/load/load_game.gd b/addons/escoria-core/ui_library/menus/load_save/load/load_game.gd index 42a8d0ef..ae07bb36 100644 --- a/addons/escoria-core/ui_library/menus/load_save/load/load_game.gd +++ b/addons/escoria-core/ui_library/menus/load_save/load/load_game.gd @@ -34,11 +34,12 @@ func refresh_savegames(): $VBoxContainer/ScrollContainer/slots.remove_child(slot) var saves_list = escoria.save_manager.get_saves_list() - for i in saves_list.size(): - var save_data = saves_list[i+1] - var new_slot = slot_ui_scene.instance() - $VBoxContainer/ScrollContainer/slots.add_child( - new_slot - ) - new_slot.set_slot_name_date(save_data["name"], save_data["date"]) - new_slot.connect("pressed", self, "_on_slot_pressed", [i+1]) + for i in range(saves_list.keys().max() + 1): + if saves_list.has(i): + var save_data = saves_list[i] + var new_slot = slot_ui_scene.instance() + $VBoxContainer/ScrollContainer/slots.add_child( + new_slot + ) + new_slot.set_slot_name_date(save_data["name"], save_data["date"]) + new_slot.connect("pressed", self, "_on_slot_pressed", [i]) diff --git a/addons/escoria-core/ui_library/menus/load_save/save/save_game.gd b/addons/escoria-core/ui_library/menus/load_save/save/save_game.gd index ce9c66d5..97644154 100644 --- a/addons/escoria-core/ui_library/menus/load_save/save/save_game.gd +++ b/addons/escoria-core/ui_library/menus/load_save/save/save_game.gd @@ -34,12 +34,13 @@ func refresh_savegames(): _slots.remove_child(slot) var saves_list = escoria.save_manager.get_saves_list() - for i in saves_list.size(): - var save_data = saves_list[i+1] - var new_slot = slot_ui_scene.instance() - _slots.add_child(new_slot) - new_slot.set_slot_name_date(save_data["name"], save_data["date"]) - new_slot.connect("pressed", self, "_on_slot_pressed", [i+1]) + for i in range(saves_list.keys().max() + 1): + if saves_list.has(i): + var save_data = saves_list[i] + var new_slot = slot_ui_scene.instance() + _slots.add_child(new_slot) + new_slot.set_slot_name_date(save_data["name"], save_data["date"]) + new_slot.connect("pressed", self, "_on_slot_pressed", [i]) var datetime = OS.get_datetime() var datetime_string = "%02d/%02d/%02d %02d:%02d" % [ diff --git a/saves/save_001.tres b/saves/save_001.tres deleted file mode 100644 index 5dbb50cc..00000000 --- a/saves/save_001.tres +++ /dev/null @@ -1,91 +0,0 @@ -[gd_resource type="Resource" load_steps=2 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/save_data/esc_savegame.gd" type="Script" id=1] - -[resource] -script = ExtResource( 1 ) -escoria_version = "0.1.0" -game_version = "0.1.0" -name = "test" -date = "28/11/2021 16:50" -main = { -"current_scene_filename": "res://game/rooms/room01/room01.tscn", -"last_scene_global_id": "" -} -globals = { -"ESC_LAST_SCENE": "", -"FORCE_LAST_SCENE_NULL": false, -"dialog_advance": 0, -"dialog_popup_advance": 0, -"room1_visited": true -} -objects = { -"_camera": { -"active": true, -"interactive": true, -"state": "default" -}, -"_music": { -"active": true, -"interactive": true, -"state": "res://game/sfx/contemplation.ogg" -}, -"_sound": { -"active": true, -"interactive": true, -"state": "default" -}, -"_speech": { -"active": true, -"interactive": true, -"state": "default" -}, -"player": { -"active": true, -"global_transform": Transform2D( 1, 0, 0, 1, 870, 461 ), -"interactive": true, -"last_deg": 71, -"last_dir": 2, -"state": "default" -}, -"r1_destination_point": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_destination_point2": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_destination_point3": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_r_exit": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_start": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_wall_item1": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_wall_item2": { -"active": true, -"interactive": true, -"state": "default" -}, -"trigger_talk": { -"active": true, -"interactive": true, -"state": "default" -} -} diff --git a/saves/save_002.tres b/saves/save_002.tres deleted file mode 100644 index 7b3015c0..00000000 --- a/saves/save_002.tres +++ /dev/null @@ -1,86 +0,0 @@ -[gd_resource type="Resource" load_steps=2 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/save_data/esc_savegame.gd" type="Script" id=1] - -[resource] -script = ExtResource( 1 ) -escoria_version = "0.1.0" -game_version = "0.1.0" -name = "test2" -date = "28/11/2021 16:50" -main = { -"current_scene_filename": "res://game/rooms/room02/room02.tscn", -"last_scene_global_id": "" -} -globals = { -"ESC_LAST_SCENE": "room1", -"FORCE_LAST_SCENE_NULL": false, -"dialog_advance": 0, -"dialog_popup_advance": 0, -"room1_visited": true -} -objects = { -"_camera": { -"active": true, -"interactive": true, -"state": "default" -}, -"_music": { -"active": true, -"interactive": true, -"state": "res://game/sfx/contemplation.ogg" -}, -"_sound": { -"active": true, -"interactive": true, -"state": "default" -}, -"_speech": { -"active": true, -"interactive": true, -"state": "default" -}, -"player": { -"active": true, -"global_transform": Transform2D( 1, 0, 0, 1, 52.1462, 384.691 ), -"interactive": true, -"last_deg": 161, -"last_dir": 4, -"state": "default" -}, -"r2_bridge": { -"active": true, -"interactive": false, -"state": "default" -}, -"r2_button": { -"active": true, -"interactive": true, -"state": "default" -}, -"r2_button_right": { -"active": true, -"interactive": true, -"state": "default" -}, -"r2_l_exit": { -"active": true, -"interactive": true, -"state": "default" -}, -"r2_player_start": { -"active": true, -"interactive": true, -"state": "default" -}, -"r2_r_exit": { -"active": true, -"interactive": true, -"state": "default" -}, -"r2_right_platform": { -"active": true, -"interactive": true, -"state": "default" -} -} diff --git a/saves/save_003.tres b/saves/save_003.tres deleted file mode 100644 index 6c2a0e20..00000000 --- a/saves/save_003.tres +++ /dev/null @@ -1,97 +0,0 @@ -[gd_resource type="Resource" load_steps=2 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/save_data/esc_savegame.gd" type="Script" id=1] - -[resource] -script = ExtResource( 1 ) -escoria_version = "0.1.0" -game_version = "0.1.0" -name = "custom data" -date = "13/01/2022 08:09" -main = { -"current_scene_filename": "res://game/rooms/room01/room01.tscn", -"last_scene_global_id": "" -} -globals = { -"ANIMATION_RESOURCES": { -}, -"ESC_CURRENT_SCENE": "room1", -"ESC_LAST_SCENE": "", -"FORCE_LAST_SCENE_NULL": false, -"dialog_advance": 0, -"dialog_popup_advance": 0, -"room1_visited": true -} -objects = { -"_camera": { -"active": true, -"interactive": true, -"state": "default" -}, -"_music": { -"active": true, -"interactive": true, -"state": "res://game/sfx/contemplation.ogg" -}, -"_sound": { -"active": true, -"interactive": true, -"state": "default" -}, -"_speech": { -"active": true, -"interactive": true, -"state": "default" -}, -"player": { -"active": true, -"global_transform": Transform2D( 1, 0, 0, 1, 490, 488 ), -"interactive": true, -"last_deg": 111, -"last_dir": 3, -"state": "default" -}, -"r1_destination_point": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_destination_point2": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_destination_point3": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_r_exit": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_start": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_wall_item1": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_wall_item2": { -"active": true, -"interactive": true, -"state": "default" -}, -"trigger_talk": { -"active": true, -"interactive": true, -"state": "default" -} -} -custom_data = { -"ui_type": "9verbs" -}