4.5
So I haven’t done a lot of work with saving/loading data with FileAccess and my code is returning null and I have no idea why
Here’s my code:
extends Control
@onready var start_game: Button = $"MarginContainer/HBoxContainer/VBoxContainer/Start Game"
@onready var exit_game: Button = $"MarginContainer/HBoxContainer/VBoxContainer/Exit Game"
@onready var level_1 = "res://Level 1/level_1.tscn"
@onready var level_2 = "res://Level 2/level_2.tscn"
@onready var level_3 = "res://Level 3/level_3.tscn"
@onready var current_level = "res://Level 1/level_1.tscn"
var save_path = "res://Data/Save Game.txt"
func _ready() -> void:
pass
func exit_game_pressed() -> void:
get_tree().quit()
func start_game_pressed() -> void:
current_level = load_data() # Dynamically load the level path
print(current_level)
var packed_scene = load(current_level)
if packed_scene:
get_tree().change_scene_to_packed(packed_scene)
print("Start game pressed")
else:
print("Error: Failed to load scene at path:", current_level)
func load_data():
var saved_level
if FileAccess.file_exists(save_path):
var file = FileAccess.open(save_path, FileAccess.READ)
saved_level = file.get_var(true)
print(saved_level)
return saved_level
else:
print("No Save Data Exists")
saved_level = "res://level_1.tscn"
return saved_level
func save():
var file = FileAccess.open(save_path, FileAccess.WRITE)
file.store_var(current_level, true)
file.close()
print("Stored level: ", current_level)