Clarify audio preview controls

This commit is contained in:
2026-06-21 06:24:41 +09:00
parent 121715659f
commit 57c56d90fd
3 changed files with 125 additions and 39 deletions

View File

@@ -69,6 +69,12 @@ func _capture_viewport_set(spec: Dictionary, output_dir: String, captures: Array
await _capture_frame(scene, output_dir, label, "01_title", captures, failures)
scene._on_title_settings_pressed()
await _settle()
await _capture_frame(scene, output_dir, label, "01b_title_settings", captures, failures)
scene._on_title_settings_back_pressed()
await _settle()
scene._show_opening_prologue()
await _settle()
await _capture_frame(scene, output_dir, label, "02_opening_rebellion", captures, failures)

View File

@@ -196,7 +196,7 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void:
failures.append("title settings should expose BGM and SFX volume sliders")
if scene.title_audio_status_label == null:
failures.append("title settings should describe the current audio mix")
elif not scene.title_audio_status_label.text.contains("현재 음악: 군막의 새벽") or not scene.title_audio_status_label.text.contains("미리듣기: 확인음"):
elif not scene.title_audio_status_label.text.contains("현재 음악: 군막의 새벽") or not scene.title_audio_status_label.text.contains("소리 확인: 확인음"):
failures.append("title audio status should name the current BGM and preview SFX: %s" % scene.title_audio_status_label.text)
scene._on_title_bgm_toggled(false)
if scene.title_bgm_enabled:
@@ -233,12 +233,29 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void:
if persisted_scene.title_bgm_volume_percent != 45 or persisted_scene.title_sfx_volume_percent != 35:
failures.append("title settings volume values should persist into a new scene instance")
persisted_scene.free()
if scene.title_audio_reset_button == null or scene.title_audio_reset_button.text != "기본값 듣기":
failures.append("title settings should expose a clear audio defaults preview button")
if scene.title_audio_preview_button == null or scene.title_audio_preview_button.text != "소리 확인":
failures.append("title settings should expose a clear sound preview button")
else:
_check_title_menu_button_art(failures, scene.title_audio_preview_button, "status", "title audio preview")
if not scene.title_audio_preview_button.tooltip_text.contains("확인음") or not scene.title_audio_preview_button.tooltip_text.contains("발소리") or not scene.title_audio_preview_button.tooltip_text.contains("타격음") or not scene.title_audio_preview_button.tooltip_text.contains("퇴각음") or not scene.title_audio_preview_button.tooltip_text.contains("보급음"):
failures.append("title audio preview should explain the confirmation, movement, strike, defeat, and supply samples")
if scene.title_audio_reset_button == null or scene.title_audio_reset_button.text != "기본값":
failures.append("title settings should expose a separate audio defaults button")
else:
_check_title_menu_button_art(failures, scene.title_audio_reset_button, "status", "title audio reset")
if not scene.title_audio_reset_button.tooltip_text.contains("확인음") or not scene.title_audio_reset_button.tooltip_text.contains("발소리") or not scene.title_audio_reset_button.tooltip_text.contains("타격음") or not scene.title_audio_reset_button.tooltip_text.contains("퇴각음") or not scene.title_audio_reset_button.tooltip_text.contains("보급음"):
failures.append("title audio preview should explain the confirmation, movement, strike, defeat, and supply samples")
if not scene.title_audio_reset_button.tooltip_text.contains("75%") or not scene.title_audio_reset_button.tooltip_text.contains("소리"):
failures.append("title audio defaults should explain that it restores audible defaults")
scene.recent_sfx_keys.clear()
scene._on_title_audio_preview_pressed()
if not scene.title_bgm_enabled or not scene.title_sfx_enabled:
failures.append("title audio preview should re-enable BGM and SFX")
if scene.title_bgm_volume_percent != 45 or scene.title_sfx_volume_percent != 35:
failures.append("title audio preview should preserve non-zero custom volumes")
if scene.bgm_player == null or scene.bgm_player.stream == null or scene.current_bgm_key.is_empty():
failures.append("title audio preview should leave a playable BGM stream selected")
for preview_key in ["menu_confirm", "footstep", "slash", "defeat_sting", "item_pickup"]:
if not scene.recent_sfx_keys.has(preview_key):
failures.append("title audio preview should play %s" % preview_key)
scene.recent_sfx_keys.clear()
scene._on_title_audio_reset_pressed()
if not scene.title_bgm_enabled or not scene.title_sfx_enabled:
@@ -249,16 +266,9 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void:
failures.append("title audio recovery should leave a playable BGM stream selected")
if scene.title_audio_status_label != null and (not scene.title_audio_status_label.text.contains("군막의 새벽") or not scene.title_audio_status_label.text.contains("%d%%" % BattleSceneScript.DEFAULT_AUDIO_VOLUME_PERCENT)):
failures.append("title audio status should refresh after defaults preview: %s" % scene.title_audio_status_label.text)
if not scene.recent_sfx_keys.has("menu_confirm"):
failures.append("title audio preview should play an audible confirmation SFX")
if not scene.recent_sfx_keys.has("footstep"):
failures.append("title audio preview should play a movement footstep SFX")
if not scene.recent_sfx_keys.has("slash"):
failures.append("title audio preview should play a strike SFX")
if not scene.recent_sfx_keys.has("defeat_sting"):
failures.append("title audio preview should play a defeat SFX")
if not scene.recent_sfx_keys.has("item_pickup"):
failures.append("title audio preview should play a supply SFX")
for reset_preview_key in ["menu_confirm", "footstep", "slash", "defeat_sting", "item_pickup"]:
if not scene.recent_sfx_keys.has(reset_preview_key):
failures.append("title audio defaults should play %s" % reset_preview_key)
scene._on_title_settings_back_pressed()
if scene.title_settings_panel != null and scene.title_settings_panel.visible:
failures.append("settings back should hide the title settings panel")
@@ -494,10 +504,14 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void:
failures.append("in-game settings toggles should update the shared settings state")
if scene.title_bgm_volume_percent != 70 or scene.title_sfx_volume_percent != 60:
failures.append("in-game settings sliders should update the shared volume state")
if scene.settings_audio_reset_button == null or scene.settings_audio_reset_button.text != "기본값 듣기":
failures.append("in-game settings should expose a clear audio defaults preview button")
elif not scene.settings_audio_reset_button.tooltip_text.contains("현재 음악"):
failures.append("in-game audio preview should explain that it plays the current music")
if scene.settings_audio_preview_button == null or scene.settings_audio_preview_button.text != "소리 확인":
failures.append("in-game settings should expose a clear sound preview button")
elif not scene.settings_audio_preview_button.tooltip_text.contains("확인음") or not scene.settings_audio_preview_button.tooltip_text.contains("타격음"):
failures.append("in-game audio preview should explain audible SFX samples")
if scene.settings_audio_reset_button == null or scene.settings_audio_reset_button.text != "기본값":
failures.append("in-game settings should expose a separate audio defaults button")
elif not scene.settings_audio_reset_button.tooltip_text.contains("75%") or not scene.settings_audio_reset_button.tooltip_text.contains("소리"):
failures.append("in-game audio defaults should explain audible recovery")
if scene.settings_audio_status_label != null and (not scene.settings_audio_status_label.text.contains("군막의 새벽") or not scene.settings_audio_status_label.text.contains("효과음 60%")):
failures.append("in-game audio status should reflect battle BGM and SFX volume: %s" % scene.settings_audio_status_label.text)
scene._on_settings_bgm_toggled(false)
@@ -505,6 +519,19 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void:
scene._on_settings_bgm_volume_changed(20.0)
scene._on_settings_sfx_volume_changed(15.0)
scene.recent_sfx_keys.clear()
scene._on_settings_audio_preview_pressed()
if not scene.title_bgm_enabled or not scene.title_sfx_enabled:
failures.append("in-game audio preview should re-enable BGM and SFX")
if scene.title_bgm_volume_percent != 20 or scene.title_sfx_volume_percent != 15:
failures.append("in-game audio preview should preserve non-zero custom volumes")
for settings_preview_key in ["menu_confirm", "footstep", "slash", "defeat_sting", "item_pickup"]:
if not scene.recent_sfx_keys.has(settings_preview_key):
failures.append("in-game audio preview should play %s" % settings_preview_key)
scene._on_settings_bgm_toggled(false)
scene._on_settings_sfx_toggled(false)
scene._on_settings_bgm_volume_changed(20.0)
scene._on_settings_sfx_volume_changed(15.0)
scene.recent_sfx_keys.clear()
scene._on_settings_audio_reset_pressed()
if not scene.title_bgm_enabled or not scene.title_sfx_enabled:
failures.append("in-game audio recovery should re-enable BGM and SFX")
@@ -512,16 +539,9 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void:
failures.append("in-game audio recovery should restore audible volume defaults")
if scene.settings_audio_status_label != null and (not scene.settings_audio_status_label.text.contains("군막의 새벽") or not scene.settings_audio_status_label.text.contains("%d%%" % BattleSceneScript.DEFAULT_AUDIO_VOLUME_PERCENT)):
failures.append("in-game audio status should refresh after defaults preview: %s" % scene.settings_audio_status_label.text)
if not scene.recent_sfx_keys.has("menu_confirm"):
failures.append("in-game audio preview should play an audible confirmation SFX")
if not scene.recent_sfx_keys.has("footstep"):
failures.append("in-game audio preview should play a movement footstep SFX")
if not scene.recent_sfx_keys.has("slash"):
failures.append("in-game audio preview should play a strike SFX")
if not scene.recent_sfx_keys.has("defeat_sting"):
failures.append("in-game audio preview should play a defeat SFX")
if not scene.recent_sfx_keys.has("item_pickup"):
failures.append("in-game audio preview should play a supply SFX")
for settings_reset_preview_key in ["menu_confirm", "footstep", "slash", "defeat_sting", "item_pickup"]:
if not scene.recent_sfx_keys.has(settings_reset_preview_key):
failures.append("in-game audio defaults should play %s" % settings_reset_preview_key)
scene._hide_settings_panel()
scene._on_new_campaign_pressed()
if not scene._is_opening_prologue_visible():