unlocked doors now get saved between checkpoints, correctly,

This commit is contained in:
JHDev2006
2025-09-22 11:21:30 +01:00
parent 11a11b3604
commit 795f9be8c2
8 changed files with 13 additions and 0 deletions

View File

@@ -266,6 +266,7 @@ func reset_values() -> void:
Checkpoint.passed = false
Checkpoint.sublevel_id = 0
Door.unlocked_doors = []
Checkpoint.unlocked_doors = []
KeyItem.total_collected = 0
Checkpoint.keys_collected = 0
Level.start_level_path = Level.get_scene_string(Global.world_num, Global.level_num)

View File

@@ -14,6 +14,7 @@ static var level := ""
static var sublevel_id := 0
static var keys_collected := 0
static var old_state := [[], []]
static var unlocked_doors := []
func _enter_tree() -> void:
if Global.level_editor != null:
@@ -51,6 +52,7 @@ func on_area_entered(area: Area2D) -> void:
passed = true
keys_collected = KeyItem.total_collected
old_state = LevelPersistance.active_nodes.duplicate(true)
unlocked_doors = Door.unlocked_doors.duplicate()
Level.start_level_path = Global.current_level.scene_file_path
if Global.current_game_mode == Global.GameMode.LEVEL_EDITOR or Global.current_game_mode == Global.GameMode.CUSTOM_LEVEL:
sublevel_id = Global.level_editor.sub_level_id

View File

@@ -41,6 +41,8 @@ func _ready() -> void:
Global.p_switch_active = false
Lakitu.present = false
Global.p_switch_timer = -1
if Checkpoint.passed:
Door.unlocked_doors = Checkpoint.unlocked_doors.duplicate()
if Global.current_campaign == "SMBANN":
DiscoLevel.reset_values()
DiscoLevel.first_load = true