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.
62 lines
971 B
62 lines
971 B
module Types.Application where |
|
|
|
import Affection |
|
|
|
import qualified SDL |
|
|
|
import Control.Concurrent.STM.TMVar |
|
|
|
import qualified Data.Map.Strict as M |
|
|
|
-- internal imports |
|
|
|
import Types.Subsystems |
|
|
|
data GameData = GameData |
|
{ gameState :: TVar State |
|
-- , gameCurrentLevel :: Tvar Level |
|
, gameSubsystems :: Subsystems |
|
, gameActionTranslation :: TVar ActionTranslation |
|
, gameEnded :: TVar Bool |
|
} |
|
|
|
data State |
|
= Loading |
|
| Menu MenuState |
|
| MainGame Level |
|
deriving (Eq, Show) |
|
|
|
data MenuState |
|
= MenuMain |
|
| MenuSettings |
|
|
|
data Level |
|
= DNAMenu |
|
| Sewer01 |
|
| Sewer02 |
|
| Sewer03 |
|
| Sewer04 |
|
| Alley01 |
|
| Alley02 |
|
| Alley03 |
|
| Alley04 |
|
| Lab01 |
|
| Lab02 |
|
| Lab03 |
|
| Lab04 |
|
| Highway01 |
|
| Highway02 |
|
| Highway03 |
|
| Highway04 |
|
| Complex01 |
|
| Complex02 |
|
| Complex03 |
|
| Complex04 |
|
| Base01 |
|
| Base01 |
|
| Base01 |
|
| Base01 |
|
| Test |
|
deriving (Enum, Eq, Show) |
|
|
|
type ActionTranslation = M.Map SDL.Keycode Action
|
|
|