Put controls on separate menu screen

This commit is contained in:
2021-04-08 12:34:10 +02:00
parent 28c1f3d23b
commit 7969c3f9e8
3 changed files with 36 additions and 22 deletions
+5
View File
@@ -19,6 +19,7 @@ handlePressedKeyInMenu mState scode w = case mState of
LevelMenu _ -> case scode of
ScancodeEscape -> Nothing
ScancodeO -> goToOptionMenu w
ScancodeC -> goToControls w
_ -> startLevel w
PauseMenu -> case scode of
ScancodeEscape -> Nothing
@@ -26,6 +27,7 @@ handlePressedKeyInMenu mState scode w = case mState of
ScancodeN -> Just $ putSound $ generateLevel 1
$ initialWorld {_randGen = _randGen w}
ScancodeO -> goToOptionMenu w
ScancodeC -> goToControls w
_ -> unpause w
GameOverMenu -> case scode of
ScancodeEscape -> Nothing
@@ -34,6 +36,7 @@ handlePressedKeyInMenu mState scode w = case mState of
$ initialWorld
{_randGen = _randGen w}
ScancodeO -> goToOptionMenu w
ScancodeC -> goToControls w
_ -> Just w
OptionMenu -> case scode of
ScancodeY -> Just $ w & config . volume_master %~ dec
@@ -44,6 +47,7 @@ handlePressedKeyInMenu mState scode w = case mState of
ScancodeM -> Just $ w & config . volume_music %~ inc
_ -> Just $ w & menuLayers %~ ([ConfigSaveScreen , ConfigSaveScreen] ++) . tail
& configNeedsUpdate .~ False
ControlList -> Just $ w & menuLayers %~ tail
_ -> Just w
where
unpause w' = Just . resumeSound $
@@ -54,6 +58,7 @@ handlePressedKeyInMenu mState scode w = case mState of
inc x = min 1 (x + 0.1)
goToOptionMenu w = Just $ w & menuLayers %~ (OptionMenu :)
& configNeedsUpdate .~ True
goToControls w = Just $ w & menuLayers %~ (ControlList :)
storeLevel :: World -> World
storeLevel w = case _storedLevel w of