small platformer game
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

76 lines
1.2 KiB

module Types.Application where
import Affection
import qualified SDL
import Control.Concurrent.STM
import qualified Data.Map.Strict as M
import qualified Data.Text as T
-- internal imports
import Types.Subsystems
import Types.GameMap
data GameData = GameData
{ gameState :: TVar State
, gameStateLoadProgress :: TMVar Progress
, gameStateData :: TMVar StateData
, gameSubsystems :: Subsystems
, gameActionTranslation :: TVar ActionTranslation
, gameRunning :: TVar Bool
}
data State
= Loading
| Menu MenuState
| MainGame Level
deriving (Eq, Show)
data MenuState
= MenuMain
| MenuSettings
deriving (Eq , Show)
data Level
= DNAMenu
| Sewer01
| Sewer02
| Sewer03
| Sewer04
| Alley01
| Alley02
| Alley03
| Alley04
| Lab01
| Lab02
| Lab03
| Lab04
| Highway01
| Highway02
| Highway03
| Highway04
| Complex01
| Complex02
| Complex03
| Complex04
| Base01
| Base02
| Base03
| Base04
| Test
deriving (Enum, Eq, Show)
type Progress = (Float, T.Text)
type ActionTranslation = M.Map SDL.Keycode Action
data StateData
= EmptyData
| TestData
{ testMap :: LevelMap
}
deriving (Eq, Show)