diff --git a/game/state/handlers/menu.go b/game/state/handlers/menu.go index 40b767e..c8b51ca 100644 --- a/game/state/handlers/menu.go +++ b/game/state/handlers/menu.go @@ -2,6 +2,7 @@ package handlers import ( "tetris/assets" + "tetris/engine/audio" "tetris/engine/render" "tetris/game" "tetris/game/state" @@ -17,12 +18,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, func() { fsm.Switch("gameplay") }), - widgets.NewButton("Options", 32, func() { fsm.Switch("options") }), - widgets.NewButton("Quit", 32, func() { fsm.Switch("quit") }), + widgets.NewButton("Start", 32, enterState(fsm, "gameplay")), + widgets.NewButton("Options", 32, enterState(fsm, "options")), + widgets.NewButton("Quit", 32, enterState(fsm, "quit")), }).Spacing(10). OnSelect(uievents.MenuSelect), }