Add show_menu and hide_menu ESC commands

Fixes godot-escoria/escoria-issues#48
Fix: tween was stopped_all before starting


Fix: reload locale from settings in ESCGame

Since main menu and pause menu are now loaded from ESCGame and not from escoria.gd, this must be done here.
Fix: small crash in load game

But save and load are broken at the moment...
Fix: check save and load after main menu changes


Required fixes


Fix: manage the game scene better in show and hide_menu


Enh: transition back in to the previous room if there was one


Fix a bug occurring where change_scene awaits forever for setup to end


Reworked change_scene and esc_room implementation to avoid yielding


Added a controller variable to allow new event run in events_manager


Don't empty the events queue if the running_event was interrupted


Fixed transitions and automatic transitions in change_scene

Added trace log level (for esc_compiler in particular)
Fixed various bugs in ESC scripts
Fix a bug where exit_scene happened multiple times where fast walking

Needed to clear the event queue
Fixes ready event was run because BYPASS_LAST_SCENE wrongly set


Inverted parameter "disable_automatic_transitions"

for change_scene, hide_menu, show_menu commands
Fix broken sched_event


Fixes as requested in PR
This commit is contained in:
Julian Murgia
2021-11-11 22:20:36 +01:00
parent 59c03dd9e2
commit c86b802cbb
56 changed files with 998 additions and 317 deletions

View File

@@ -76,7 +76,7 @@ func _on_language_input(event: InputEvent, language: String):
# - value: The new volume level
func _on_sound_volume_changed(value):
escoria.settings["sfx_volume"] = value
escoria._on_settings_loaded(escoria.settings)
escoria.apply_settings(escoria.settings)
settings_changed = true
@@ -86,7 +86,7 @@ func _on_sound_volume_changed(value):
# - value: The new volume level
func _on_music_volume_changed(value):
escoria.settings["music_volume"] = value
escoria._on_settings_loaded(escoria.settings)
escoria.apply_settings(escoria.settings)
settings_changed = true
@@ -96,7 +96,7 @@ func _on_music_volume_changed(value):
# - value: The new volume level
func _on_general_volume_changed(value):
escoria.settings["master_volume"] = value
escoria._on_settings_loaded(escoria.settings)
escoria.apply_settings(escoria.settings)
settings_changed = true
@@ -106,7 +106,7 @@ func _on_general_volume_changed(value):
# - value: The new volume level
func _on_speech_volume_value_changed(value: float) -> void:
escoria.settings["speech_volume"] = value
escoria._on_settings_loaded(escoria.settings)
escoria.apply_settings(escoria.settings)
settings_changed = true
@@ -120,5 +120,5 @@ func _on_apply_pressed():
# The back button was pressed
func _on_back_pressed():
escoria.settings = backup_settings
escoria._on_settings_loaded(escoria.settings)
escoria.apply_settings(escoria.settings)
emit_signal("back_button_pressed")

View File

@@ -10,7 +10,7 @@ func _ready():
# Continue the game
func _on_continue_pressed():
escoria.main.current_scene.game.pause_game()
escoria.main.current_scene.game.unpause_game()
# Show the save slots

View File

@@ -16,7 +16,9 @@ func _ready():
"escoria/debug/room_selector_room_dir"
)
if rooms_folder == "" or \
not ProjectSettings.get_setting("escoria/debug/enable_room_selector"):
not ProjectSettings.get_setting(
"escoria/debug/enable_room_selector"
):
return
var dir = Directory.new()
var rooms_list: Array = []
@@ -50,11 +52,12 @@ func _ready():
func _on_button_pressed():
escoria.globals_manager.set_global("BYPASS_LAST_SCENE", true, true)
var script = escoria.esc_compiler.compile([
":debug",
":room_selector",
"change_scene %s" % _options_paths[_selected_id]
])
escoria.event_manager.interrupt_running_event()
escoria.event_manager.queue_event(script.events['debug'])
escoria.event_manager.clear_event_queue()
escoria.event_manager.queue_event(script.events['room_selector'])