fix: room identification and save games were getting tangled up
This commit is contained in:
parent
3295c44ce9
commit
c115e7b2d6
|
|
@ -4,8 +4,8 @@ class_name SubwaySequence
|
||||||
@export var all_stations: Dictionary[Station.id, Station]
|
@export var all_stations: Dictionary[Station.id, Station]
|
||||||
@export var all_lines: Dictionary[TrainLine.id, TrainLine]
|
@export var all_lines: Dictionary[TrainLine.id, TrainLine]
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
super._ready()
|
|
||||||
id = State.rooms.TRANSITION
|
id = State.rooms.TRANSITION
|
||||||
|
super._ready()
|
||||||
|
|
||||||
|
|
||||||
func start_room():
|
func start_room():
|
||||||
|
|
@ -18,9 +18,7 @@ func start_room():
|
||||||
|
|
||||||
|
|
||||||
func pull_save_state(save: SaveGame) -> void:
|
func pull_save_state(save: SaveGame) -> void:
|
||||||
#FIXME
|
|
||||||
save.sequences_enabled = Scenes.enabled_sequences
|
save.sequences_enabled = Scenes.enabled_sequences
|
||||||
save.current_room = State.rooms.ADULTHOOD
|
|
||||||
save_game = save
|
save_game = save
|
||||||
|
|
||||||
# Call parent to restore player position
|
# Call parent to restore player position
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@ extends RoomTemplate
|
||||||
@onready var player: PlayerController = %PlayerController
|
@onready var player: PlayerController = %PlayerController
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
super._ready()
|
|
||||||
id = State.rooms.ADULTHOOD
|
id = State.rooms.ADULTHOOD
|
||||||
|
super._ready()
|
||||||
|
|
||||||
|
|
||||||
func get_ready() -> void:
|
func get_ready() -> void:
|
||||||
|
|
@ -14,7 +14,6 @@ func get_ready() -> void:
|
||||||
Scenes.scene_finished.connect(_on_scene_finished)
|
Scenes.scene_finished.connect(_on_scene_finished)
|
||||||
card_picker.cards_picked.connect(card_board.populate_board)
|
card_picker.cards_picked.connect(card_board.populate_board)
|
||||||
save_game = State.save_game
|
save_game = State.save_game
|
||||||
save_game.current_room = State.rooms.ADULTHOOD
|
|
||||||
Scenes.completed_sequences = save_game.mementos_complete
|
Scenes.completed_sequences = save_game.mementos_complete
|
||||||
Scenes.started_sequences = save_game.mementos_complete
|
Scenes.started_sequences = save_game.mementos_complete
|
||||||
Scenes.enabled_sequences = save_game.sequences_enabled
|
Scenes.enabled_sequences = save_game.sequences_enabled
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,11 @@ extends RoomTemplate
|
||||||
@onready var card_picker: CardPicker = %Picker
|
@onready var card_picker: CardPicker = %Picker
|
||||||
@onready var ui: Control = %UI
|
@onready var ui: Control = %UI
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
id = State.rooms.YOUTH
|
||||||
|
super._ready() # UwU, superclass _ready is not called by Godot automatically...
|
||||||
|
|
||||||
|
|
||||||
func start_room():
|
func start_room():
|
||||||
super.start_room()
|
super.start_room()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ func create_bug_report():
|
||||||
Current Focus: %s
|
Current Focus: %s
|
||||||
Current Scene: %s
|
Current Scene: %s
|
||||||
Mementos: %s
|
Mementos: %s
|
||||||
""" % [OS.get_name(), OS.get_video_adapter_driver_info(), Scenes.current_sequence, State.current_room, Scenes.completed_sequences]
|
""" % [OS.get_name(), OS.get_video_adapter_driver_info(), Scenes.current_sequence, State.room, Scenes.completed_sequences]
|
||||||
|
|
||||||
|
|
||||||
#debug_text = debug_text.replace(" ", "%20").replace("\n", "%0A").replace("\t", "")
|
#debug_text = debug_text.replace(" ", "%20").replace("\n", "%0A").replace("\t", "")
|
||||||
|
|
|
||||||
|
|
@ -12,24 +12,18 @@ signal proceed(next_scene_path: String)
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
State.room = self
|
State.room = self
|
||||||
State.current_room = id
|
|
||||||
|
|
||||||
if not State.save_game:
|
if not State.save_game:
|
||||||
push_warning("Room initialised without a SaveGame. Creating proxy save.")
|
push_warning("Room initialised without a SaveGame. Creating proxy save.")
|
||||||
State.save_game = ResourceLoader.load("res://dev-util/debug_save.tres")
|
State.save_game = ResourceLoader.load("res://dev-util/debug_save.tres")
|
||||||
|
|
||||||
save_game = State.save_game
|
save_game = State.save_game
|
||||||
save_game.current_room = id
|
|
||||||
save_game.player_position = %PlayerController.global_position
|
|
||||||
|
|
||||||
if not Main.normal_boot:
|
if not Main.normal_boot:
|
||||||
push_warning("------- DEBUG MODE --------")
|
push_warning("------- DEBUG MODE --------")
|
||||||
play.call_deferred()
|
play.call_deferred()
|
||||||
|
|
||||||
|
|
||||||
func disable()-> void:
|
|
||||||
push_warning("Room disabling is deprecated / unter reconstruction")
|
|
||||||
|
|
||||||
func get_ready():
|
func get_ready():
|
||||||
prints("----------", "GET_READY", self.name, "--------------")
|
prints("----------", "GET_READY", self.name, "--------------")
|
||||||
pass
|
pass
|
||||||
|
|
|
||||||
|
|
@ -134,11 +134,15 @@ func save_to_file(screen_shot: Texture2D) -> void:
|
||||||
push_warning("SaveGame: DEBUG save skipped (intentional).")
|
push_warning("SaveGame: DEBUG save skipped (intentional).")
|
||||||
return
|
return
|
||||||
|
|
||||||
if current_room == State.rooms.NULL:
|
assert(State.room, "Trying to save while not in a room.")
|
||||||
push_warning("SaveGame: Not saving empty savegame.")
|
assert(State.room.id != State.rooms.NULL, "Trying to save in a room that's not correctly initialized.")
|
||||||
return
|
|
||||||
|
|
||||||
print_debug("SaveGame: Saving to file: %s" % file_name)
|
# Save game can track the room it is in by itself;
|
||||||
|
# and we should never save before having successfully entered a room.
|
||||||
|
current_room = State.room.id
|
||||||
|
|
||||||
|
prints("-----------", "SAVE POINT", State.room, "-----------")
|
||||||
|
print("SaveGame: Saving to file: %s" % file_name)
|
||||||
|
|
||||||
# Capture current state
|
# Capture current state
|
||||||
capture_player_state()
|
capture_player_state()
|
||||||
|
|
|
||||||
|
|
@ -230,6 +230,4 @@ func pick_cards(id: Scenes.id):
|
||||||
|
|
||||||
await cards_picked
|
await cards_picked
|
||||||
hide()
|
hide()
|
||||||
await get_tree().process_frame
|
|
||||||
State.room.save_room()
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue