Added menu wrapping & sounds to a large portion of the UI

NOTE: Some menus are still not fixed because they use some different code that I don't quite understand as of yet.
This commit is contained in:
SkyanUltra 2025-10-17 07:11:13 -04:00
parent b088ad91e1
commit df3c794bb9
11 changed files with 24 additions and 10 deletions

View file

@ -30,4 +30,4 @@ func handle_inputs() -> void:
if Input.is_action_just_pressed("scroll_down"):
selected_index -= 1
warp_mouse(get_local_mouse_position())
selected_index = clamp(selected_index, 0, selectors.size() - 1)
selected_index = wrapi(selected_index, 0, selectors.size() - 1)

View file

@ -21,7 +21,7 @@ func _process(_delta: float) -> void:
selected_index += 1
elif Input.is_action_just_pressed("ui_up"):
selected_index -= 1
selected_index = clamp(selected_index, 0, 1)
selected_index = wrapi(selected_index, 0, 2)
if Input.is_action_just_pressed("ui_accept"):
selected.emit()
SpeedrunHandler.ghost_enabled = bool(selected_index)

View file

@ -161,7 +161,7 @@ func update_pb() -> void:
i.get_node("Full").hide()
func handle_input() -> void:
selected_level = clamp(selected_level, 0, 3)
selected_level = wrapi(selected_level, 0, 4)
if Input.is_action_just_pressed("ui_accept"):
if visited_levels[selected_level] == "0" and selected_level != 0 and not Global.debug_mode:
AudioManager.play_sfx("bump")

View file

@ -32,7 +32,7 @@ func _process(_delta: float) -> void:
selected -= 1
if Input.is_action_just_pressed("ui_right"):
selected += 1
selected = clamp(selected, 0, 1)
selected = wrapi(selected, 0, 2)
%MarathonName.text = ["MARATHON_FULL", "MARATHON_LEVEL"][selected]
for i in [$PanelContainer/VBoxContainer/HBoxContainer/Full, $PanelContainer/VBoxContainer/HBoxContainer/Level]:
i.get_node("Label").visible = selected == i.get_index()

View file

@ -30,7 +30,9 @@ func handle_input() -> void:
return
func set_index(idx := false) -> void:
selected_index = int(idx)
selected_index = wrapi(int(idx), 0, 2)
if Settings.file.audio.extra_sfx == 1:
AudioManager.play_global_sfx("menu_move")
func select() -> void:
Global.second_quest = bool(selected_index)

View file

@ -22,8 +22,12 @@ func handle_inputs() -> void:
var old := selected_index
if Input.is_action_just_pressed("ui_left"):
selected_index -= 1
if Settings.file.audio.extra_sfx == 1:
AudioManager.play_global_sfx("menu_move")
if Input.is_action_just_pressed("ui_right"):
selected_index += 1
if Settings.file.audio.extra_sfx == 1:
AudioManager.play_global_sfx("menu_move")
selected_index = clamp(selected_index, 0, values.size() - 1)
if old != selected_index:
value_changed.emit(selected_index)

View file

@ -40,7 +40,7 @@ func handle_input() -> void:
AudioManager.play_global_sfx("menu_move")
if scroll_container != null:
scroll_container.scroll_vertical = float(lerpf(0.0, scroll_container.get_v_scroll_bar().max_value, inverse_lerp(0.0, options.size() - 1, selected_index - 2)))
selected_index = clamp(selected_index, minimum_idx, options.size() - 1)
selected_index = wrapi(selected_index, minimum_idx, options.size())
func auto_get_options() -> void:
options.clear()

View file

@ -14,9 +14,13 @@ func _physics_process(delta: float) -> void:
if active:
if Input.is_action_just_pressed("ui_down"):
selected_index += 1
if Settings.file.audio.extra_sfx == 1:
AudioManager.play_global_sfx("menu_move")
elif Input.is_action_just_pressed("ui_up"):
selected_index -= 1
selected_index = clamp(selected_index, 0, 1)
if Settings.file.audio.extra_sfx == 1:
AudioManager.play_global_sfx("menu_move")
selected_index = wrapi(selected_index, 0, 2)
if Input.is_action_just_pressed("ui_accept"):
SpeedrunHandler.is_warp_run = bool(selected_index)
selected.emit()

View file

@ -26,9 +26,13 @@ func _process(_delta: float) -> void:
func handle_inputs() -> void:
if Input.is_action_just_pressed("ui_down"):
selected_index += 1
if Settings.file.audio.extra_sfx == 1:
AudioManager.play_global_sfx("menu_move")
if Input.is_action_just_pressed("ui_up"):
selected_index -= 1
selected_index = clamp(selected_index, 0, options.size() - 1)
if Settings.file.audio.extra_sfx == 1:
AudioManager.play_global_sfx("menu_move")
selected_index = wrapi(selected_index, 0, options.size())
if Input.is_action_just_pressed("ui_accept"):
option_selected()
elif (Input.is_action_just_pressed("pause") or Input.is_action_just_pressed("ui_back")) and can_exit:

View file

@ -44,7 +44,7 @@ func handle_inputs() -> void:
for i in options:
if i.visible:
amount.append(i)
selected_index = clamp(selected_index, 0, amount.size() - 1)
selected_index = wrapi(selected_index, 0, amount.size())
if Input.is_action_just_pressed("ui_accept"):
option_selected()
elif can_exit and Input.is_action_just_pressed("ui_back"):

View file

@ -40,7 +40,7 @@ func open() -> void:
show()
await get_tree().process_frame
if Global.current_game_mode != Global.GameMode.CAMPAIGN:
selected_world = clamp(selected_world, 0, 7)
selected_world = wrapi(selected_world, 0, 8)
$%SlotContainer.get_child(selected_world).grab_focus()
active = true