Files
loop/src/Dodge/Save.hs
T
2021-09-13 01:39:53 +01:00

26 lines
600 B
Haskell

module Dodge.Save
( storeLevel
, loadStoredLevel
, doQuicksave
)
where
import Dodge.Data
import Data.Maybe
import Control.Lens
import qualified Data.Set as S
storeLevel :: World -> World
storeLevel w = case _storedLevel w of
Nothing -> w & storedLevel ?~ clearKeys w
_ -> w
loadStoredLevel :: World -> World
loadStoredLevel w = fromMaybe w $ _storedLevel w <&> quicksaveLevel .~ _quicksaveLevel w
doQuicksave :: World -> World
doQuicksave w = w & quicksaveLevel ?~ clearKeys w
clearKeys :: World -> World
clearKeys = (keys .~ S.empty) . (mouseButtons .~ S.empty)