Persist title audio settings
This commit is contained in:
@@ -4,14 +4,17 @@ const BattleSceneScript := preload("res://scripts/scenes/battle_scene.gd")
|
||||
|
||||
const SAVE_PATH := "user://campaign_save.json"
|
||||
const MANUAL_SAVE_PATH := "user://campaign_manual_save.json"
|
||||
const SETTINGS_PATH := "user://heros_settings.json"
|
||||
|
||||
|
||||
func _init() -> void:
|
||||
var save_backup := _backup_user_file(SAVE_PATH)
|
||||
var manual_backup := _backup_user_file(MANUAL_SAVE_PATH)
|
||||
var settings_backup := _backup_user_file(SETTINGS_PATH)
|
||||
var failures: Array[String] = []
|
||||
_clear_user_file(SAVE_PATH)
|
||||
_clear_user_file(MANUAL_SAVE_PATH)
|
||||
_clear_user_file(SETTINGS_PATH)
|
||||
|
||||
_check_title_menu_start_load_and_settings(failures)
|
||||
|
||||
@@ -19,6 +22,8 @@ func _init() -> void:
|
||||
failures.append("could not restore campaign save after title menu smoke")
|
||||
if not _restore_user_file(MANUAL_SAVE_PATH, manual_backup):
|
||||
failures.append("could not restore manual campaign save after title menu smoke")
|
||||
if not _restore_user_file(SETTINGS_PATH, settings_backup):
|
||||
failures.append("could not restore title settings after title menu smoke")
|
||||
|
||||
if failures.is_empty():
|
||||
print("title menu smoke ok")
|
||||
@@ -52,17 +57,32 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void:
|
||||
failures.append("title settings panel should open from the title screen")
|
||||
if scene.title_bgm_toggle == null or scene.title_sfx_toggle == null or scene.title_edge_scroll_toggle == null:
|
||||
failures.append("title settings should expose BGM, SFX, and edge-scroll toggles")
|
||||
if scene.title_bgm_volume_slider == null or scene.title_sfx_volume_slider == null:
|
||||
failures.append("title settings should expose BGM and SFX volume sliders")
|
||||
scene._on_title_bgm_toggled(false)
|
||||
if scene.title_bgm_enabled:
|
||||
failures.append("BGM toggle should disable background music")
|
||||
scene._on_title_bgm_volume_changed(45.0)
|
||||
if scene.title_bgm_volume_percent != 45:
|
||||
failures.append("BGM volume slider should update the saved BGM volume percent")
|
||||
scene._on_title_sfx_toggled(false)
|
||||
if scene.title_sfx_enabled:
|
||||
failures.append("SFX toggle should disable sound effects")
|
||||
scene._on_title_sfx_volume_changed(35.0)
|
||||
if scene.title_sfx_volume_percent != 35:
|
||||
failures.append("SFX volume slider should update the saved SFX volume percent")
|
||||
scene._on_title_edge_scroll_toggled(false)
|
||||
if scene.title_edge_scroll_enabled:
|
||||
failures.append("edge-scroll toggle should disable edge scrolling")
|
||||
if scene._update_edge_scroll(0.25):
|
||||
failures.append("edge scrolling should not move while disabled in settings")
|
||||
var persisted_scene = BattleSceneScript.new()
|
||||
persisted_scene._ready()
|
||||
if persisted_scene.title_bgm_enabled or persisted_scene.title_sfx_enabled or persisted_scene.title_edge_scroll_enabled:
|
||||
failures.append("title settings toggles should persist into a new scene instance")
|
||||
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()
|
||||
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")
|
||||
|
||||
Reference in New Issue
Block a user