diff --git a/common/game_info/game_info.gd b/common/game_info/game_info.gd index bc710b9..a82ac02 100644 --- a/common/game_info/game_info.gd +++ b/common/game_info/game_info.gd @@ -77,6 +77,7 @@ func _init(): load_settings_data() update_language_settings() update_video_settings() + update_sound_settings(settings_data) settings_data.language_changed.connect(_on_settings_language_changed) settings_data.video_changed.connect(_on_settings_video_changed) settings_data.sound_changed.connect(_on_settings_sound_changed) @@ -92,10 +93,7 @@ func _on_settings_language_changed(s : SettingsData): update_language_settings(s) func _on_settings_sound_changed(s : SettingsData): - AudioServer.set_bus_volume_db(SettingsData.MASTER_BUS_ID, linear_to_db(s.master_volume)) - AudioServer.set_bus_volume_db(SettingsData.MUSIC_BUS_ID, linear_to_db(s.music_volume)) - AudioServer.set_bus_volume_db(SettingsData.SFX_BUS_ID, linear_to_db(s.sfx_volume)) - AudioServer.set_bus_volume_db(SettingsData.AMBIANCE_BUS_ID, linear_to_db(s.ambiance_volume)) + update_sound_settings(s) func _on_timeline_started(): current_dialog_path = Dialogic.current_timeline.resource_path @@ -105,6 +103,12 @@ func _on_timeline_ended(): game_data.dialogs_done.append(current_dialog_path) save_game_data() +func update_sound_settings(s: SettingsData): + AudioServer.set_bus_volume_db(SettingsData.MASTER_BUS_ID, linear_to_db(s.master_volume)) + AudioServer.set_bus_volume_db(SettingsData.MUSIC_BUS_ID, linear_to_db(s.music_volume)) + AudioServer.set_bus_volume_db(SettingsData.SFX_BUS_ID, linear_to_db(s.sfx_volume)) + AudioServer.set_bus_volume_db(SettingsData.AMBIANCE_BUS_ID, linear_to_db(s.ambiance_volume)) + func update_language_settings(s : SettingsData = settings_data): TranslationServer.set_locale(s.language) diff --git a/entities/camera/scripts/camera.gd b/entities/camera/scripts/camera.gd index 8ca9430..17653ae 100644 --- a/entities/camera/scripts/camera.gd +++ b/entities/camera/scripts/camera.gd @@ -17,10 +17,14 @@ const ZOOM_STEP = 0.1 var shake_noise := FastNoiseLite.new() func _input(_e): - if Input.is_action_just_pressed("zoom_in"): + if Input.is_action_pressed("zoom_in"): + if settings.zoom < zoom.x: # was zooming out + settings.zoom = (zoom.x / ZOOM_STEP) * ZOOM_STEP settings.zoom = settings.zoom + ZOOM_STEP GameInfo.save_settings() - if Input.is_action_just_pressed("zoom_out"): + if Input.is_action_pressed("zoom_out"): + if settings.zoom > zoom.x: # was zooming in + settings.zoom = (zoom.x / ZOOM_STEP) * ZOOM_STEP settings.zoom = settings.zoom - ZOOM_STEP GameInfo.save_settings() @@ -33,7 +37,7 @@ func _process(delta): if following and should_follow: global_position = following.global_position.lerp(global_position, MOVE_LERP_WEIGHT) - zoom = zoom.lerp(Vector2.ONE * settings.zoom, MOVE_LERP_WEIGHT) + zoom = zoom.lerp(Vector2.ONE * settings.zoom, ZOOM_LERP_WEIGHT) if shake_active_time > 0.: shake_active_time -= delta