Jumpbacks and continue

This commit is contained in:
Tibo De Peuter 2022-12-22 09:43:17 +01:00
parent dab6fadad4
commit b7278d6afc
11 changed files with 59 additions and 44 deletions

View file

@ -11,35 +11,37 @@ import RPGEngine.Render.Core ( Renderer )
-- A game is the base data container.
data Game = Game {
state :: State,
levels :: [Level],
player :: Player
state :: State
}
------------------------------- State --------------------------------
-- Code reusability
data StateBase = StateBase {
renderer :: Renderer Game,
renderer :: Renderer State,
inputHandler :: InputHandler Game
}
-- Main menu
data State = Menu { base :: StateBase }
data State = Menu { base :: StateBase }
-- Select the level you want to play
| LevelSelection { base :: StateBase,
levelList :: [FilePath],
selector :: ListSelector }
| LevelSelection { base :: StateBase,
levelList :: [FilePath],
selector :: ListSelector }
-- Playing a level
| Playing { base :: StateBase,
level :: Level }
| Playing { base :: StateBase,
levels :: [Level],
level :: Level,
player :: Player,
restart :: State }
-- Paused while playing a level
| Paused { base :: StateBase,
level :: Level }
| Paused { base :: StateBase,
continue :: State }
-- Won a level
| Win { base :: StateBase }
| Win { base :: StateBase }
-- Lost a level
| Lose { base :: StateBase }
| Lose { base :: StateBase,
restart :: State }
------------------------------- Level --------------------------------