Unified settings management and sound fixes
- fix: speech was not paused during pause menu - fix: allow sound levels to reach min value 0.0 (=muted) - fix: crash was happening when switch language during the game
This commit is contained in:
committed by
Duncan Brown
parent
4ef86c6cc3
commit
04348147b9
@@ -66,6 +66,9 @@ var globals_manager: ESCGlobalsManager
|
||||
# ESC command registry instance
|
||||
var command_registry: ESCCommandRegistry
|
||||
|
||||
# Manager of game settings (resolution, sound, etc)
|
||||
var settings_manager: ESCSettingsManager
|
||||
|
||||
# Resource cache handler
|
||||
var resource_cache: ESCResourceCache
|
||||
|
||||
@@ -75,9 +78,6 @@ var dialog_player: ESCDialogPlayer
|
||||
# Inventory scene
|
||||
var inventory
|
||||
|
||||
# These are settings that the player can affect and save/load later
|
||||
var settings: ESCSaveSettings
|
||||
|
||||
# The main scene
|
||||
var main
|
||||
|
||||
@@ -149,40 +149,6 @@ func set_game_paused(p_paused: bool):
|
||||
scene_tree.paused = p_paused
|
||||
|
||||
|
||||
# Apply the loaded settings
|
||||
#
|
||||
# #### Parameters
|
||||
#
|
||||
# * p_settings: Loaded settings
|
||||
func apply_settings(p_settings: ESCSaveSettings) -> void:
|
||||
if not Engine.is_editor_hint():
|
||||
escoria.logger.info(self, "******* settings loaded")
|
||||
if p_settings != null:
|
||||
settings = p_settings
|
||||
else:
|
||||
settings = ESCSaveSettings.new()
|
||||
|
||||
AudioServer.set_bus_volume_db(
|
||||
AudioServer.get_bus_index(BUS_MASTER),
|
||||
linear2db(settings.master_volume)
|
||||
)
|
||||
AudioServer.set_bus_volume_db(
|
||||
AudioServer.get_bus_index(BUS_SFX),
|
||||
linear2db(settings.sfx_volume)
|
||||
)
|
||||
AudioServer.set_bus_volume_db(
|
||||
AudioServer.get_bus_index(BUS_MUSIC),
|
||||
linear2db(settings.music_volume)
|
||||
)
|
||||
AudioServer.set_bus_volume_db(
|
||||
AudioServer.get_bus_index(BUS_SPEECH),
|
||||
linear2db(settings.speech_volume)
|
||||
)
|
||||
TranslationServer.set_locale(settings.text_lang)
|
||||
|
||||
game_scene.apply_custom_settings(settings.custom_settings)
|
||||
|
||||
|
||||
# Called from main menu's "new game" button
|
||||
func new_game():
|
||||
get_escoria().new_game()
|
||||
|
||||
Reference in New Issue
Block a user