37 lines
596 B
Haskell
37 lines
596 B
Haskell
{-# LANGUAGE MultiParamTypeClasses #-}
|
|
|
|
module StateMachine where
|
|
|
|
import Affection
|
|
import qualified SDL
|
|
import GEGL
|
|
|
|
import qualified Data.Map as M
|
|
import Data.Maybe (catMaybes)
|
|
|
|
import Control.Monad (foldM, when)
|
|
|
|
import System.Random (randomRIO)
|
|
|
|
import Types
|
|
import Commons
|
|
import InGame
|
|
import Menu
|
|
|
|
instance StateMachine State UserData where
|
|
smLoad Menu = loadMenu
|
|
|
|
smLoad InGame = loadGame
|
|
|
|
smUpdate Menu = updateMenu
|
|
|
|
smUpdate InGame sec = updateGame sec
|
|
|
|
smEvent Menu = handleMenuEvent
|
|
|
|
smEvent InGame = handleGameEvent
|
|
|
|
smDraw Menu = return ()
|
|
|
|
smDraw InGame = drawGame
|