add confirmation when switching stages if showtape is loaded

This commit is contained in:
Persephone Bubblegum-Holidy 2025-05-28 15:11:19 -07:00
parent afa270d814
commit b0dc8309bd
2 changed files with 20 additions and 3 deletions

View file

@ -90,6 +90,14 @@ ok_button_text = "Proceed"
dialog_text = "You have unsaved data! Are you sure you want to proceed?" dialog_text = "You have unsaved data! Are you sure you want to proceed?"
cancel_button_text = "Do Not" 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="."] [node name="FileDoesntExistDialog" type="AcceptDialog" parent="."]
initial_position = 2 initial_position = 2
dialog_text = "The specified file does not exist." 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="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="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="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="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/ControlsButton" to="." method="_on_controls_button_pressed"]
[connection signal="pressed" from="MenuBar/CreditsButton" to="." method="_on_credits_button_pressed"] [connection signal="pressed" from="MenuBar/CreditsButton" to="." method="_on_credits_button_pressed"]

View file

@ -76,8 +76,10 @@ signal return_to_zero()
signal erase_all() signal erase_all()
func reload_stage(stage_previously_loaded: bool) -> void: func reload_stage(stage_previously_loaded: bool) -> void:
$SequencerPanel/TimelinePanel/VScrollBar.value = 0
if (stage_previously_loaded): if (stage_previously_loaded):
$SequencerPanel/TimelinePanel/VScrollBar.value = 0
$FlyoutPanel/Movements/VScrollBar.value = 0
$FlyoutPanel/FlowControls/VScrollBar.value = 0
$CameraPreview.visible = false $CameraPreview.visible = false
for row in $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_children(): for row in $SequencerPanel/TimelinePanel/InvisibleMask/MovementRowsContainer.get_children():
row.queue_free() row.queue_free()
@ -142,6 +144,10 @@ func reload_stage(stage_previously_loaded: bool) -> void:
$FlyoutPanel/FlowControls/VScrollBar.max_value = flow_count - 1 $FlyoutPanel/FlowControls/VScrollBar.max_value = flow_count - 1
$CameraPreview.visible = true $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: func update_time_label() -> void:
var frames = index % 60 var frames = index % 60
var seconds = floori(index/60) % 60 var seconds = floori(index/60) % 60
@ -170,6 +176,8 @@ func _ready() -> void:
reload_stage(false) reload_stage(false)
func _on_stage_selector_item_selected(_index: int) -> void: func _on_stage_selector_item_selected(_index: int) -> void:
if (showtape_loaded): $StageChangeOverwriteConfirmationDialog.show()
else:
current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected) current_stage = $MenuBar/StageSelector.get_item_text($MenuBar/StageSelector.selected)
reload_stage(true) reload_stage(true)