pituicat/src/StateMachine.hs

37 lines
948 B
Haskell
Raw Normal View History

2020-10-16 23:53:25 +00:00
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
module StateMachine where
import Affection
import Control.Monad (void)
-- internal imports
import Types
import State.Loading
import State.MainGame
2020-10-16 23:53:25 +00:00
instance StateMachine GameData State where
smLoad Loading = initLoad
smLoad (MainGame Test) = mainGameLoad
2020-10-16 23:53:25 +00:00
smLoad x = error ("State load not yet implemented: " <> show x)
smUpdate Loading = initLoadUpdate
smUpdate (MainGame Test) = mainGameUpdate
2020-10-16 23:53:25 +00:00
smUpdate x = error ("State update not yet implemented: " <> show x)
smDraw Loading = initLoadDraw
smDraw (MainGame Test) = mainGameDraw
2020-10-16 23:53:25 +00:00
smDraw x = error ("State draw not yet implemented: " <> show x)
smEvent _ gd evs = do
let Subsystems w m k _ = gameSubsystems gd
void . (consumeSDLEvents k) =<<
consumeSDLEvents m =<<
consumeSDLEvents w evs
smClean x = error ("State clean not yet implemented: " <> show x)