34 lines
841 B
Haskell
34 lines
841 B
Haskell
-- Describes the current state of the game,
|
|
-- e.g. Main menu, game, pause, win or lose
|
|
-- Allows to easily go to a next state and change rendering accordingly
|
|
|
|
module RPGEngine.Internals.Data.State
|
|
( State(..)
|
|
, defaultState
|
|
|
|
, nextState
|
|
) where
|
|
|
|
----------------------------- Constants ------------------------------
|
|
|
|
-- Current state of the game.
|
|
data State = Menu
|
|
| Playing
|
|
| Pause
|
|
| Win
|
|
| Lose
|
|
|
|
-- Default state of the game, Menu
|
|
defaultState :: State
|
|
defaultState = Menu
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
-- Get the next state based on the current state
|
|
nextState :: State -> State
|
|
nextState Menu = Playing
|
|
nextState Playing = Pause
|
|
nextState Pause = Playing
|
|
nextState _ = Menu
|
|
|
|
----------------------------------------------------------------------
|