Remove loop dependency on loading dodge sounds

This commit is contained in:
2021-03-27 13:42:14 +01:00
parent 2897c65e9e
commit 2011728de5
10 changed files with 171 additions and 153 deletions
+11 -6
View File
@@ -1,9 +1,7 @@
module Main where
import Loop
import Shader
import LoadConfig
import Dodge.Default
import Dodge.Data
import Dodge.Initialisation
@@ -16,14 +14,13 @@ import Dodge.Rendering
import Dodge.Menu
import Dodge.Floor
import Dodge.LoadConfig
import Dodge.LoadSound
import Picture
import Picture.Render
import Picture.Preload
import Sound
import Preload
import Sound.Preload
import Control.Concurrent
import Control.Lens
@@ -32,17 +29,25 @@ import Control.Monad (when)
import System.Random
import qualified Data.Map as M
import qualified SDL
import qualified SDL.Mixer as Mix
import Graphics.Rendering.OpenGL hiding (color,scale,translate,rotate)
doPreload' :: IO (PreloadData a)
doPreload' = do
lChunks <- loadSounds
let sData = SoundData {_loadedChunks = lChunks, _playingSounds = M.empty}
rData <- preloadRender
return $ PreloadData rData sData 0
main :: IO ()
main = do
(sizex,sizey) <- loadConfig
keyConfig <- loadKeyConfig
setupLoop
(sizex,sizey)
(SDL.cursorVisible $= False >> doPreload >>= resizeSpareFBO sizex sizey)
(SDL.cursorVisible $= False >> doPreload' >>= resizeSpareFBO sizex sizey)
(\x -> (SDL.cursorVisible $= True) >> cleanUpPreload x)
(fmap (setWindowSize sizex sizey keyConfig) firstWorld)
( \preData w -> do