From 808ab1db06f4f7fb817e8edd58b5ecd03be21583 Mon Sep 17 00:00:00 2001 From: nek0 Date: Tue, 5 May 2020 01:23:40 +0200 Subject: [PATCH] fix more UserData stuff --- src/Init.hs | 35 ++++++++++++++++++++--------------- src/Types/UserData.hs | 8 ++++---- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/src/Init.hs b/src/Init.hs index 18f4da4..c0983a1 100644 --- a/src/Init.hs +++ b/src/Init.hs @@ -11,6 +11,7 @@ import Codec.Picture as CP import Codec.Picture.Extra import Control.Concurrent.STM +import Control.Concurrent.MVar import Data.String import qualified Data.Set as S @@ -36,21 +37,25 @@ init = do <*> (SubTranslator <$> newTVarIO []) _ <- glewInit nvg <- createGL3 (S.fromList [NanoVG.Debug, Antialias, StencilStrokes]) - return UserData - { state = Load - , subsystems = subs - , assetImages = M.empty - , assetAnimations = M.empty - , assetFonts = M.empty - , assetIcons = M.empty - , nano = nvg - , uuid = [] - , stateData = None - , threadContext = Nothing - , controls = NoController - , translation = NoTranslation - , joyCache = [] - } + UserData + <$> newMVar Load + <*> pure subs + <*> newMVar M.empty + <*> newMVar M.empty + <*> newMVar M.empty + <*> newMVar M.empty + <*> newMVar NoController + <*> newMVar NoTranslation + <*> pure nvg + <*> newMVar [] + <*> newEmptyMVar + <*> newMVar None + <*> newEmptyMVar + <*> newMVar (0, "foobar!") + <*> newMVar Nothing + <*> newMVar Nothing + <*> newMVar [] + <*> newEmptyMVar loadPlayerSprite :: FilePath -- Path to spritemap diff --git a/src/Types/UserData.hs b/src/Types/UserData.hs index 8df7708..dcbb6d5 100644 --- a/src/Types/UserData.hs +++ b/src/Types/UserData.hs @@ -30,19 +30,19 @@ data UserData = UserData , assetImages :: MVar (M.Map ImgId Image) , assetFonts :: MVar (M.Map FontId T.Text) , assetAnimations :: MVar (M.Map AnimId Animation) - , controls :: Controller + , controls :: MVar Controller , translation :: MVar Translation , nano :: Context , uuid :: MVar [UUID] - , worldState :: SystemState Entity (AffectionState AffectionData IO) + , worldState :: MVar (SystemState Entity (AffectionState AffectionData IO)) , stateData :: MVar StateData , stateMVar :: MVar ( SystemState Entity (AffectionState AffectionData IO) , StateData ) , stateProgress :: MVar (Float, T.Text) - , threadContext :: Maybe SDL.GLContext - , window :: Maybe SDL.Window + , threadContext :: MVar (Maybe SDL.GLContext) + , window :: MVar (Maybe SDL.Window) , joyCache :: MVar [JoystickMessage] , joyUUID :: MVar UUID }