From e545f620e1aa414cc65f448d9452ced768a01399 Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 29 Oct 2025 22:49:29 +0100 Subject: [PATCH] small bugfixes --- .../youth_room/scnees/scene_player.gd | 43 +++++++++++-------- src/dev-util/savegame.gd | 23 +++++++--- src/logic-scenes/board/card-board.gd | 4 +- 3 files changed, 45 insertions(+), 25 deletions(-) diff --git a/src/base-environments/youth_room/scnees/scene_player.gd b/src/base-environments/youth_room/scnees/scene_player.gd index a7d09f9..c6029f8 100644 --- a/src/base-environments/youth_room/scnees/scene_player.gd +++ b/src/base-environments/youth_room/scnees/scene_player.gd @@ -12,22 +12,7 @@ var max_lines: float = 0 @export var story_array: PackedStringArray = []: set(str_array): story_array = str_array - if is_node_ready(): - substring_sizes = [] - var p: int = 0 - label.text = "[p]" - for i in range(str_array.size()): - label.text += TranslationServer.translate(str_array[i]).strip_edges() + " " - substring_sizes.append(TranslationServer.translate(str_array[i]).strip_edges().length() + 1) - if not paragraph_lengths[-1] == story_array.size()-1: - paragraph_lengths.append(story_array.size()-1) - push_warning("Paragraph lenghts of scene %s are misconfigured!" % name) - if paragraph_lengths[p] == i: - p += 1 - label.text += "[/p][p][font_size=8] [/font_size][/p][p]" - substring_sizes[-1] = substring_sizes[-1] + 1 - label.text += "[/p]" - max_lines = float(label.get_line_count()) + _rebuild() @export var paragraph_lengths: PackedInt32Array = [1] @@ -91,7 +76,25 @@ func _ready() -> void: play_scene() story_array = story_array progress = progress - + +func _rebuild(): + if is_node_ready(): + substring_sizes = [] + var p: int = 0 + label.text = "[p]" + for i in range(story_array.size()): + label.text += TranslationServer.translate(story_array[i]).strip_edges() + " " + substring_sizes.append(TranslationServer.translate(story_array[i]).strip_edges().length() + 1) + if not paragraph_lengths[-1] == story_array.size()-1: + paragraph_lengths.append(story_array.size()-1) + push_warning("Paragraph lenghts of scene %s are misconfigured!" % name) + if paragraph_lengths[p] == i: + p += 1 + label.text += "[/p][p][font_size=8] [/font_size][/p][p]" + substring_sizes[-1] = substring_sizes[-1] + 1 + label.text += "[/p]" + max_lines = float(label.get_line_count()) + func try_scroll(): var forward_target: int @@ -124,7 +127,11 @@ func play_scene(): animation_player.queue("de") _: animation_player.queue("en") - + + if name == "draven": + await get_tree().process_frame + await get_tree().process_frame + $AnimationPlayer/Music.play() await text_finished diff --git a/src/dev-util/savegame.gd b/src/dev-util/savegame.gd index dc2c65a..d8ef1df 100644 --- a/src/dev-util/savegame.gd +++ b/src/dev-util/savegame.gd @@ -21,10 +21,18 @@ var _is_initialised: bool = false set(value): mementos_complete = value if _is_initialised: changed.emit() +@export_flags_2d_physics var sequences_enabled: int = 63: + set(value): + sequences_enabled = value + if _is_initialised: changed.emit() @export var board_state: Dictionary = {"cards": {}, "stickies": {}, "randoms": []}: set(value): board_state = value if _is_initialised: changed.emit() +@export var childhood_mementos: Dictionary = {"cards": {}, "stickies": {}, "randoms": []}: + set(value): + childhood_mementos = value + if _is_initialised: changed.emit() @export var is_childhood_board_complete: bool = false @export var thumbnail: Texture = preload("res://import/interface-elements/empty_save_slot.png"): set(value): @@ -69,7 +77,6 @@ func _init(initial_filepath = "") -> void: DirAccess.make_dir_absolute(filepath.get_base_dir()) func read_save_file(): - print("Opening Savegame: %s" % filepath) if filepath == "DEBUG": if OS.has_feature("debug") or OS.has_feature("demo"): push_warning("Created DEBUG savegame. Progress will not be stored!") @@ -80,6 +87,7 @@ func read_save_file(): return if FileAccess.file_exists(filepath): + print("Opening existing Savegame: %s" % filepath) var file = FileAccess.open(filepath, FileAccess.READ) var raw_json = FileAccess.get_file_as_string(filepath) file.close() @@ -96,15 +104,15 @@ func read_save_file(): parsed["mementos_complete"] is float and parsed["board_state"] is Dictionary and parsed["is_childhood_board_complete"] is bool and - parsed["last_saved"] is float and - parsed["demo"] is bool and last_saved != 0 + parsed["last_saved"] is float# and FIXME + #parsed["demo"] is bool and last_saved != 0 ) if are_types_valid: for key in parsed.keys(): set(key, parsed[key]) - for dict:Dictionary in board_state.values(): + for dict:Dictionary in [board_state["cards"], board_state["stickies"]]: for key in dict.keys(): if dict[key] is String: if dict[key].begins_with("("): @@ -119,7 +127,7 @@ func read_save_file(): for sticky_name:String in board_state["stickies"]: stickies[StringName(sticky_name)] = board_state["stickies"][sticky_name] for random_name:StringName in board_state["randoms"]: - randoms.append( board_state["randoms"][random_name] ) + randoms.append( random_name ) board_state = { "cards": cards, @@ -139,6 +147,7 @@ func read_save_file(): thumbnail = ImageTexture.create_from_image(tmp_img) is_empty = false else: + print("Creating empty Savegame: %s" % filepath) is_valid = true func _get_save_dict() -> Dictionary: @@ -159,6 +168,10 @@ func save_to_file(current_screen: Texture): push_warning("Saving DEBUG save skipped. This is intentional.") return + if current_room == State.rooms.NULL: + print("Not saving empty savegame.") + return + last_saved = Time.get_unix_time_from_system() var thumbnail_image: Image = current_screen.get_image() thumbnail_image.convert(Image.Format.FORMAT_RGB8) diff --git a/src/logic-scenes/board/card-board.gd b/src/logic-scenes/board/card-board.gd index 56e62b1..28ed9ba 100644 --- a/src/logic-scenes/board/card-board.gd +++ b/src/logic-scenes/board/card-board.gd @@ -644,7 +644,7 @@ func rebuild_from_savedict(board_state:Dictionary): card.transform.origin = cards[card.name]# Replacing position reference with card reference! Needed in next loop. cards[card.name] = card text_recovery[card.name] = card.text - card.picked_random == randoms.has( card.card_id ) + card.picked_random = randoms.has( card.card_id ) for sticky:StickyNote in card_pile["sticky_notes"]: text_recovery[sticky.name] = sticky.text if stickies[sticky.name] == -1: @@ -654,7 +654,7 @@ func rebuild_from_savedict(board_state:Dictionary): else: insert_area(dropzone, sticky) sticky.transform.origin = stickies[sticky.name] - sticky.picked_random == randoms.has( sticky.card_id ) + sticky.picked_random = randoms.has( sticky.sticky_id ) func validate_board(): return