Add one-click audio recovery

This commit is contained in:
2026-06-20 04:53:52 +09:00
parent e0b4fed99d
commit 4dcb584f2c
4 changed files with 65 additions and 5 deletions

View File

@@ -163,7 +163,7 @@ const BATTLE_UNIT_LIST_PANEL_SIZE := Vector2(420, 360)
const BATTLE_UNIT_LIST_ROW_SIZE := Vector2(372, 58)
const BATTLE_UNIT_LIST_ICON_SIZE := Vector2(46, 46)
const BATTLE_UNIT_LIST_BADGE_SIZE := Vector2(72, 22)
const SETTINGS_PANEL_SIZE := Vector2(420, 286)
const SETTINGS_PANEL_SIZE := Vector2(420, 330)
const LOCAL_COMMAND_BUTTON_SIZE := Vector2(92, 38)
const LOCAL_COMMAND_CANCEL_BUTTON_SIZE := Vector2(196, 30)
const POST_MOVE_MENU_SIZE := Vector2(240, 146)
@@ -520,6 +520,7 @@ var settings_bgm_volume_slider: HSlider
var settings_sfx_volume_slider: HSlider
var settings_bgm_volume_value_label: Label
var settings_sfx_volume_value_label: Label
var settings_audio_reset_button: Button
var restart_button: Button
var new_campaign_button: Button
var opening_prologue_root: Control
@@ -553,6 +554,7 @@ var title_bgm_volume_slider: HSlider
var title_sfx_volume_slider: HSlider
var title_bgm_volume_value_label: Label
var title_sfx_volume_value_label: Label
var title_audio_reset_button: Button
var title_settings_back_button: Button
var title_screen_visible := false
var title_bgm_enabled := true
@@ -2419,6 +2421,13 @@ func _create_hud() -> void:
_apply_label_style(settings_sfx_volume_value_label, UI_PARCHMENT_TEXT, 13)
settings_sfx_volume_row.add_child(settings_sfx_volume_value_label)
settings_audio_reset_button = Button.new()
settings_audio_reset_button.text = "소리 켜기"
settings_audio_reset_button.custom_minimum_size = Vector2(374, 32)
settings_audio_reset_button.tooltip_text = "배경음과 효과음을 켜고 음량을 기본값으로 되돌린 뒤 확인음을 재생합니다."
settings_audio_reset_button.pressed.connect(_on_settings_audio_reset_pressed)
settings_column.add_child(settings_audio_reset_button)
settings_edge_scroll_toggle = CheckButton.new()
settings_edge_scroll_toggle.text = "가장자리 스크롤"
settings_edge_scroll_toggle.custom_minimum_size = Vector2(374, 30)
@@ -3692,7 +3701,7 @@ func _create_hud() -> void:
title_settings_panel = PanelContainer.new()
title_settings_panel.visible = false
title_settings_panel.custom_minimum_size = Vector2(432, 236)
title_settings_panel.custom_minimum_size = Vector2(432, 268)
_apply_panel_style(title_settings_panel, "hud_info")
title_menu_column.add_child(title_settings_panel)
@@ -3784,6 +3793,13 @@ func _create_hud() -> void:
_apply_label_style(title_sfx_volume_value_label, UI_PARCHMENT_TEXT, 13)
title_sfx_volume_row.add_child(title_sfx_volume_value_label)
title_audio_reset_button = Button.new()
title_audio_reset_button.text = "소리 켜기"
title_audio_reset_button.custom_minimum_size = Vector2(392, 32)
title_audio_reset_button.tooltip_text = "배경음과 효과음을 켜고 음량을 기본값으로 되돌린 뒤 확인음을 재생합니다."
title_audio_reset_button.pressed.connect(_on_title_audio_reset_pressed)
title_settings_column.add_child(title_audio_reset_button)
title_edge_scroll_toggle = CheckButton.new()
title_edge_scroll_toggle.text = "가장자리 스크롤"
title_edge_scroll_toggle.custom_minimum_size = Vector2(392, 30)
@@ -3850,7 +3866,9 @@ func _create_hud() -> void:
title_load_auto_button,
title_load_manual_button,
title_load_back_button,
title_settings_back_button
title_settings_back_button,
title_audio_reset_button,
settings_audio_reset_button
]:
_apply_button_style(hud_button)
_apply_button_style(title_bgm_toggle)
@@ -11302,6 +11320,10 @@ func _on_settings_sfx_volume_changed(value: float) -> void:
_on_title_sfx_volume_changed(value)
func _on_settings_audio_reset_pressed() -> void:
_restore_audio_defaults(true)
func _on_battle_unit_list_pressed() -> void:
if battle_unit_list_button == null or battle_unit_list_button.disabled:
return
@@ -11943,6 +11965,24 @@ func _on_title_sfx_volume_changed(value: float) -> void:
_play_sfx("ui_click", UI_SFX_VOLUME_DB)
func _on_title_audio_reset_pressed() -> void:
_restore_audio_defaults(true)
func _restore_audio_defaults(play_preview: bool) -> void:
title_bgm_enabled = true
title_sfx_enabled = true
title_bgm_volume_percent = 100
title_sfx_volume_percent = 100
_apply_audio_settings()
_save_title_settings()
_refresh_title_volume_controls()
_update_title_menu_state()
_play_bgm(current_bgm_key if not current_bgm_key.is_empty() else "menu")
if play_preview:
_play_sfx("menu_confirm", UI_SFX_VOLUME_DB)
func _update_top_archive_buttons() -> void:
var prep_available := (
not battle_started