This repository has been archived on 2023-06-24. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
2022FuncProg-project3-RPGEn.../lib/RPGEngine/Input/Menu.hs
2022-12-21 23:30:59 +01:00

36 lines
No EOL
1.1 KiB
Haskell

module RPGEngine.Input.Menu
( handleInputMenu
) where
import RPGEngine.Input.Core ( InputHandler, composeInputHandlers, handleAnyKey, ListSelector (..) )
import RPGEngine.Data ( Game (..), State (..), StateBase (..) )
import RPGEngine.Render.LevelSelection (renderLevelSelection)
import RPGEngine.Input.LevelSelection (handleInputLevelSelection)
import RPGEngine.Data.Level (getLevelList)
------------------------------ Exported ------------------------------
handleInputMenu :: InputHandler Game
handleInputMenu = composeInputHandlers [
handleAnyKey selectLevel
]
----------------------------------------------------------------------
selectLevel :: Game -> Game
selectLevel g@Game{ state = state } = g{ state = defaultLevelSelection }
defaultLevelSelection :: State
defaultLevelSelection = LevelSelection { base = base, selector = defaultSelector, levelList = levels }
where base = StateBase {
renderer = renderLevelSelection,
inputHandler = handleInputLevelSelection
}
levels = getLevelList
defaultSelector :: ListSelector
defaultSelector = ListSelector {
selection = 0,
selected = False
}