-- 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 ----------------------------------------------------------------------