Stop new old sounds from playing during rewinding

This commit is contained in:
2021-11-26 19:57:03 +00:00
parent f29c200a27
commit e231b851d9
4 changed files with 27 additions and 21 deletions
+8 -1
View File
@@ -69,10 +69,16 @@ updateRenderSplit w = do
update w `par` void (doDrawing (_renderData preData) w)
return $ update w
playSoundUnlessRewinding :: World -> IO (M.Map SoundOrigin Sound)
playSoundUnlessRewinding w
| _rewinding w = return M.empty
| otherwise = playSoundAndUpdate (_soundData $ _preloadData w) (_playingSounds w) (_toPlaySounds w)
doSideEffects :: World -> IO World
doSideEffects w = do
let preData = _preloadData w
newPlayingSounds <- playSoundAndUpdate (_soundData preData) (_playingSounds w) (_toPlaySounds w)
--newPlayingSounds <- playSoundAndUpdate (_soundData preData) (_playingSounds w) (_toPlaySounds w)
newPlayingSounds <- playSoundUnlessRewinding w
w' <- _sideEffects w w
endTicks <- SDL.ticks
let lastFrameTicks = _frameTimer preData
@@ -86,6 +92,7 @@ doSideEffects w = do
& playingSounds .~ newPlayingSounds
& toPlaySounds .~ M.empty
& sideEffects .~ return
& rewinding .~ False -- this is probably not the best place for this
doPreload :: IO PreloadData
doPreload = do