#4 Setup interaction

This commit is contained in:
Tibo De Peuter 2022-12-23 09:42:34 +01:00
parent ef784c2dbc
commit 9addf1ed07
13 changed files with 223 additions and 33 deletions

View file

@ -24,14 +24,15 @@ handleInputLevelSelection = composeInputHandlers [
-- Select a level and load it in
selectLevel :: Game -> Game
selectLevel game@Game{ state = LevelSelection{ levelList = list, selector = selector }} = newGame
selectLevel game@Game{ state = LevelSelection list selector } = newGame
where newGame = parse $ levelFolder ++ (list !! index)
index = selection selector
selectLevel g = g
selectLevel g = g{ state = Error "Something went wrong while selecting a level"}
-- TODO Lift this code from ActionSelection
-- Move the selector either up or down
moveSelector :: Direction -> Game -> Game
moveSelector dir game@Game{ state = state@LevelSelection{ levelList = list, selector = selector } } = newGame
moveSelector dir game@Game{ state = state@(LevelSelection list selector) } = newGame
where newGame = game{ state = newState }
newState = state{ selector = newSelector }
newSelector | constraint = selector{ selection = newSelection }
@ -41,4 +42,4 @@ moveSelector dir game@Game{ state = state@LevelSelection{ levelList = list, sele
diff | dir == North = -1
| dir == South = 1
| otherwise = 0
moveSelector _ g = g
moveSelector _ g = g{ state = Error "Something went wrong while moving the selector up or down"}