2017-02-20 19:51:33 +00:00
|
|
|
{-# LANGUAGE MultiParamTypeClasses #-}
|
|
|
|
|
|
|
|
module StateMachine where
|
|
|
|
|
2017-12-16 10:55:30 +00:00
|
|
|
import Affection
|
2017-02-20 19:51:33 +00:00
|
|
|
import qualified SDL
|
|
|
|
|
|
|
|
import qualified Data.Map as M
|
|
|
|
import Data.Maybe (catMaybes)
|
|
|
|
|
|
|
|
import Control.Monad (foldM, when)
|
|
|
|
|
|
|
|
import System.Random (randomRIO)
|
|
|
|
|
|
|
|
import Types
|
|
|
|
import Commons
|
2017-12-16 18:06:36 +00:00
|
|
|
-- import InGame
|
2017-12-16 10:55:30 +00:00
|
|
|
import Menu
|
2017-02-20 19:51:33 +00:00
|
|
|
|
|
|
|
instance StateMachine State UserData where
|
2017-12-16 10:55:30 +00:00
|
|
|
smLoad Menu = loadMenu
|
2017-02-20 19:51:33 +00:00
|
|
|
|
2017-12-16 18:06:36 +00:00
|
|
|
-- smLoad InGame = loadGame
|
2017-02-20 19:51:33 +00:00
|
|
|
|
2017-12-16 10:55:30 +00:00
|
|
|
smUpdate Menu = updateMenu
|
2017-02-20 19:51:33 +00:00
|
|
|
|
2017-12-16 18:06:36 +00:00
|
|
|
-- smUpdate InGame sec = updateGame sec
|
2017-02-20 19:51:33 +00:00
|
|
|
|
2017-12-16 18:06:36 +00:00
|
|
|
smEvent Menu = handleMenuEvent (return ()) -- (smLoad InGame)
|
2017-02-20 19:51:33 +00:00
|
|
|
|
2017-12-16 18:06:36 +00:00
|
|
|
-- smEvent InGame = handleGameEvent
|
2017-02-20 19:51:33 +00:00
|
|
|
|
2017-12-19 05:49:41 +00:00
|
|
|
smDraw Menu = drawMenu
|
2017-02-20 19:51:33 +00:00
|
|
|
|
2017-12-16 18:06:36 +00:00
|
|
|
-- smDraw InGame = drawGame
|