diff --git a/game/state/handlers/menu.go b/game/state/handlers/menu.go index c8b51ca..ef5b389 100644 --- a/game/state/handlers/menu.go +++ b/game/state/handlers/menu.go @@ -2,7 +2,6 @@ package handlers import ( "tetris/assets" - "tetris/engine/audio" "tetris/engine/render" "tetris/game" "tetris/game/state" @@ -18,26 +17,19 @@ type MainMenu struct { list *layouts.ListBox } -func enterState(fsm state.Transitioner, state string) func() { - return func() { - audio.Play(assets.SFX_MENU_ENTER) - fsm.Switch(state) - } -} - func NewMainMenu(fsm state.Transitioner) *MainMenu { return &MainMenu{ list: layouts.NewListBox([]ui.InputWidget{ - widgets.NewButton("Start", 32, enterState(fsm, "gameplay")), - widgets.NewButton("Options", 32, enterState(fsm, "options")), - widgets.NewButton("Quit", 32, enterState(fsm, "quit")), + widgets.NewButton("Start", 32, func() { fsm.Switch("gameplay") }), + widgets.NewButton("Options", 32, func() { fsm.Switch("options") }), + widgets.NewButton("Quit", 32, func() { fsm.Switch("quit") }), }).Spacing(10). OnSelect(uievents.MenuSelect), } } func (main *MainMenu) Enter() { - main.list.SetSelected(0) + main.list.Select(0) } func (MainMenu) Exit() { diff --git a/game/ui/layouts/list_box.go b/game/ui/layouts/list_box.go index bcbcd08..4a058cf 100644 --- a/game/ui/layouts/list_box.go +++ b/game/ui/layouts/list_box.go @@ -42,19 +42,12 @@ func (lb ListBox) Entries() []ui.InputWidget { } func (lb *ListBox) Select(index int) { - if lb.SetSelected(index) { - lb.onSelect() - } -} - -func (lb *ListBox) SetSelected(index int) bool { if index >= 0 && index < len(lb.entries) { lb.entries[lb.selected].SetFocus(false) lb.selected = index lb.entries[lb.selected].SetFocus(true) - return true + lb.onSelect() } - return false } func (lb ListBox) Selected() ui.InputWidget {