Files
Cozypaw-Hospital/scripts/systems/settings_menu.gd
Steven Wroblewski 6b0c41bbfd fix(core): resolve review findings in Sprint 3-4
- Fix SaveManager reset_game to use DirAccess.remove correctly
- Add null check for FileAccess.open in save_game
- Fix AudioManager crossfade tween callback chain
- Replace fragile absolute HUD path with relative onready
- Guard character position save against empty id
- Add GameState.has_character_position helper
- Emit room_changed signal after tween completes
- Add target_floor validation in ElevatorButton
- Persist audio settings via GameState
- Add class_name to RoomNavigator, AudioManager, HUD

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 12:22:27 +02:00

40 lines
843 B
GDScript

## SettingsMenu — overlay panel for audio volume and game reset.
class_name SettingsMenu extends CanvasLayer
func _ready() -> void:
visible = false
func show_menu() -> void:
visible = true
func hide_menu() -> void:
visible = false
func _on_music_slider_value_changed(value: float) -> void:
AudioManager.set_music_volume(value)
GameState.music_volume = value
func _on_sfx_slider_value_changed(value: float) -> void:
AudioManager.set_sfx_volume(value)
GameState.sfx_volume = value
func _on_reset_button_pressed() -> void:
var dialog: ConfirmationDialog = get_node_or_null("Panel/ResetConfirmDialog") as ConfirmationDialog
if dialog != null:
dialog.popup_centered()
func _on_reset_confirmed() -> void:
SaveManager.reset_game()
get_tree().reload_current_scene()
func _on_close_button_pressed() -> void:
hide_menu()