Allow for concurrent effects

This commit is contained in:
2022-08-16 16:02:09 +01:00
parent 919a179283
commit 26e88f059a
14 changed files with 181 additions and 53 deletions
+13
View File
@@ -0,0 +1,13 @@
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.SaveSlot where
import Control.Lens
data SaveSlot
= QuicksaveSlot
| LevelStartSlot Int
| SaveSlotNum Int
deriving (Eq, Ord, Show, Read)
makeLenses ''SaveSlot
+4 -7
View File
@@ -10,7 +10,7 @@ module Dodge.Data.Universe (
) where
import Control.Lens
import qualified Data.Map.Strict as M
--import qualified Data.Map.Strict as M
import Data.Preload
import qualified Data.Text as T
import Dodge.Data.Config
@@ -22,17 +22,14 @@ data Universe = Universe
{ _uvWorld :: World
, _preloadData :: PreloadData
, _menuLayers :: [ScreenLayer]
, _savedWorlds :: M.Map SaveSlot World
, _quickSave :: Maybe World
, _uvIOEffects :: Universe -> IO Universe
, _uvConcEffects :: Maybe (IO (Universe -> Universe))
, _uvConfig :: Configuration
, _uvTestString :: Universe -> [String]
, _uvConcMessage :: String
}
data SaveSlot
= QuicksaveSlot
| LevelStartSlot
| SaveSlotNum Int
deriving (Eq, Ord, Show, Read)
data OptionScreenFlag = NormalOptions | GameOverOptions
deriving (Eq, Ord, Show, Read)
+7
View File
@@ -3,12 +3,14 @@
module Dodge.Data.World (
module Dodge.Data.World,
module Dodge.Data.SaveSlot,
module Dodge.Data.CWorld,
module Dodge.Data.RightButtonOptions,
module Dodge.Data.SoundOrigin,
module Dodge.Data.Hammer,
) where
import Dodge.Data.SaveSlot
import Control.Lens
import qualified Data.Map.Strict as M
import qualified Data.Set as S
@@ -40,8 +42,13 @@ data World = World
, _backspaceTimer :: Int
, _timeFlow :: TimeFlowStatus
, _rbOptions :: RightButtonOptions
, _gameSlot :: GameSlot
}
data GameSlot = GameNum Int
| GameLoading SaveSlot
| GameStartScreen
data TimeFlowStatus
= RewindingNow
| RewindingLastFrame