From b0dc8309bdbf9491dc31751b0889e47701a3e0de Mon Sep 17 00:00:00 2001 From: Persephone Bubblegum-Holiday Date: Wed, 28 May 2025 15:11:19 -0700 Subject: [PATCH] add confirmation when switching stages if showtape is loaded --- Scenes/GUI/EditorScreen.tscn | 9 +++++++++ Scripts/EditorScreen.gd | 14 +++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Scenes/GUI/EditorScreen.tscn b/Scenes/GUI/EditorScreen.tscn index ee96e8d..6fbe859 100644 --- a/Scenes/GUI/EditorScreen.tscn +++ b/Scenes/GUI/EditorScreen.tscn @@ -90,6 +90,14 @@ ok_button_text = "Proceed" dialog_text = "You have unsaved data! Are you sure you want to proceed?" cancel_button_text = "Do Not" +[node name="StageChangeOverwriteConfirmationDialog" type="ConfirmationDialog" parent="."] +auto_translate_mode = 1 +initial_position = 2 +size = Vector2i(472, 100) +ok_button_text = "Proceed" +dialog_text = "You have unsaved data! Are you sure you want to proceed?" +cancel_button_text = "Do Not" + [node name="FileDoesntExistDialog" type="AcceptDialog" parent="."] initial_position = 2 dialog_text = "The specified file does not exist." @@ -1102,6 +1110,7 @@ expand_mode = 2 [connection signal="file_selected" from="SaveShowtapeFileDialog" to="." method="_on_save_showtape_file_dialog_file_selected"] [connection signal="confirmed" from="NewOverwriteConfirmationDialog" to="." method="_on_new_overwrite_confirmation_dialog_confirmed"] [connection signal="confirmed" from="LoadOverwriteConfirmationDialog" to="." method="_on_load_overwrite_confirmation_dialog_confirmed"] +[connection signal="confirmed" from="StageChangeOverwriteConfirmationDialog" to="." method="_on_stage_change_overwrite_confirmation_dialog_confirmed"] [connection signal="item_selected" from="MenuBar/StageSelector" to="." method="_on_stage_selector_item_selected"] [connection signal="pressed" from="MenuBar/ControlsButton" to="." method="_on_controls_button_pressed"] [connection signal="pressed" from="MenuBar/CreditsButton" to="." method="_on_credits_button_pressed"] diff --git a/Scripts/EditorScreen.gd b/Scripts/EditorScreen.gd index e460b7d..7d9497d 100644 --- a/Scripts/EditorScreen.gd +++ b/Scripts/EditorScreen.gd @@ -76,8 +76,10 @@ signal return_to_zero() signal erase_all() func reload_stage(stage_previously_loaded: bool) -> void: - $SequencerPanel/TimelinePanel/VScrollBar.value = 0 if (stage_previously_loaded): + $SequencerPanel/TimelinePanel/VScrollBar.value = 0 + $FlyoutPanel/Movements/VScrollBar.value = 0 + $FlyoutPanel/FlowControls/VScrollBar.value = 0 $CameraPreview.visible = false for row in $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_children(): row.queue_free() @@ -142,6 +144,10 @@ func reload_stage(stage_previously_loaded: bool) -> void: $FlyoutPanel/FlowControls/VScrollBar.max_value = flow_count - 1 $CameraPreview.visible = true +func _on_stage_change_overwrite_confirmation_dialog_confirmed() -> void: + current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected) + reload_stage(true) + func update_time_label() -> void: var frames = index % 60 var seconds = floori(index/60) % 60 @@ -170,8 +176,10 @@ func _ready() -> void: reload_stage(false) func _on_stage_selector_item_selected(_index: int) -> void: - current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected) - reload_stage(true) + if (showtape_loaded): $StageChangeOverwriteConfirmationDialog.show() + else: + current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected) + reload_stage(true) func _showtape_menu_button_pressed(id: int) -> void: match (id):