Move universe IO effects outside of world

This commit is contained in:
2022-07-23 12:53:20 +01:00
parent 2892bb25f0
commit 12fad676f2
12 changed files with 41 additions and 44 deletions
+3 -3
View File
@@ -82,6 +82,7 @@ firstWorldLoad theConfig = do
,_menuLayers = []
,_savedWorlds = M.empty
,_keyConfig = theKeyConfig
, _uvIOEffects = return
, _uvTestString = testStringInit
}
@@ -103,10 +104,9 @@ playSoundUnlessRewinding u
doSideEffects :: Universe -> IO Universe
doSideEffects u = do
let w = _uvWorld u
let preData = _preloadData u
newPlayingSounds <- playSoundUnlessRewinding u
u' <- _sideEffects w u
u' <- _uvIOEffects u u
endTicks <- SDL.ticks
let lastFrameTicks = _frameTimer preData
when (debugOn Show_ms_frame $ _uvConfig u) $ void $ renderFoldable
@@ -119,7 +119,7 @@ doSideEffects u = do
& preloadData . frameTimer .~ endTicks
& uvWorld . playingSounds .~ newPlayingSounds
& uvWorld . toPlaySounds .~ M.empty
& uvWorld . sideEffects .~ return
& uvIOEffects .~ return
fpsText :: (Show a, Ord a, Num a) => a -> Picture
fpsText x = color col $ text $ "ms/frame " ++ show x