Fix: use Escoria plugin version from plugin.cfg in savegames (#489)

This commit is contained in:
Julian Murgia
2022-02-15 18:21:19 +01:00
committed by GitHub
parent 9071fdc1e5
commit 2384127ca4
7 changed files with 25 additions and 293 deletions

View File

@@ -164,7 +164,11 @@ func save_game_crash():
# - p_savename: name of the savegame # - p_savename: name of the savegame
func _do_save_game(p_savename: String) -> ESCSaveGame: func _do_save_game(p_savename: String) -> ESCSaveGame:
var save_game = ESCSaveGame.new() 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( save_game.game_version = escoria.project_settings_manager.get_setting(
escoria.project_settings_manager.GAME_VERSION escoria.project_settings_manager.GAME_VERSION
) )
@@ -383,7 +387,10 @@ func load_game(id: int):
# Save the game settings in the settings file. # Save the game settings in the settings file.
func save_settings(): func save_settings():
var settings_res := ESCSaveSettings.new() 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.text_lang = escoria.settings.text_lang
settings_res.voice_lang = escoria.settings.voice_lang settings_res.voice_lang = escoria.settings.voice_lang
settings_res.speech_enabled = escoria.settings.speech_enabled settings_res.speech_enabled = escoria.settings.speech_enabled

View File

@@ -24,9 +24,6 @@ enum GAME_STATE {
} }
# Escoria version number
const ESCORIA_VERSION = "0.1.0"
# Audio bus indices. # Audio bus indices.
const BUS_MASTER = "Master" const BUS_MASTER = "Master"
const BUS_SFX = "SFX" const BUS_SFX = "SFX"

View File

@@ -34,11 +34,12 @@ func refresh_savegames():
$VBoxContainer/ScrollContainer/slots.remove_child(slot) $VBoxContainer/ScrollContainer/slots.remove_child(slot)
var saves_list = escoria.save_manager.get_saves_list() var saves_list = escoria.save_manager.get_saves_list()
for i in saves_list.size(): for i in range(saves_list.keys().max() + 1):
var save_data = saves_list[i+1] if saves_list.has(i):
var new_slot = slot_ui_scene.instance() var save_data = saves_list[i]
$VBoxContainer/ScrollContainer/slots.add_child( var new_slot = slot_ui_scene.instance()
new_slot $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]) new_slot.set_slot_name_date(save_data["name"], save_data["date"])
new_slot.connect("pressed", self, "_on_slot_pressed", [i])

View File

@@ -34,12 +34,13 @@ func refresh_savegames():
_slots.remove_child(slot) _slots.remove_child(slot)
var saves_list = escoria.save_manager.get_saves_list() var saves_list = escoria.save_manager.get_saves_list()
for i in saves_list.size(): for i in range(saves_list.keys().max() + 1):
var save_data = saves_list[i+1] if saves_list.has(i):
var new_slot = slot_ui_scene.instance() var save_data = saves_list[i]
_slots.add_child(new_slot) var new_slot = slot_ui_scene.instance()
new_slot.set_slot_name_date(save_data["name"], save_data["date"]) _slots.add_child(new_slot)
new_slot.connect("pressed", self, "_on_slot_pressed", [i+1]) 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 = OS.get_datetime()
var datetime_string = "%02d/%02d/%02d %02d:%02d" % [ var datetime_string = "%02d/%02d/%02d %02d:%02d" % [

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}