Affect universe in more events

This commit is contained in:
2021-11-28 13:45:00 +00:00
parent 0723def26a
commit 574f195b21
3 changed files with 21 additions and 23 deletions
+10 -10
View File
@@ -10,21 +10,21 @@ import Control.Monad
import Control.Lens
import SDL
handlePressedKeyInMenu :: ScreenLayer -> Scancode -> World -> Maybe World
handlePressedKeyInMenu :: ScreenLayer -> Scancode -> Universe -> Maybe Universe
handlePressedKeyInMenu mState scode = case mState of
OptionScreen { _scOptions = mos, _scDefaultEff = defeff}
-> optionListToEffects mos defeff scode
DisplayScreen {} -> popScreen
ColumnsScreen {} -> popScreen
-> uvWorld $ optionListToEffects mos defeff scode
DisplayScreen {} -> uvWorld $ popScreen
ColumnsScreen {} -> uvWorld $ popScreen
WaitScreen {} -> Just
TerminalScreen 0 _ -> popScreen
TerminalScreen _ m -> Just . ( menuLayers %~ ( (TerminalScreen 0 m : ) . tail) )
TerminalScreen 0 _ -> uvWorld $ popScreen
TerminalScreen _ m -> Just . (uvWorld . menuLayers %~ ( (TerminalScreen 0 m : ) . tail) )
InputScreen s -> case scode of
ScancodeEscape -> popScreen
ScancodeReturn -> popScreen . applyTerminalString s
ScancodeEscape -> uvWorld $ popScreen
ScancodeReturn -> uvWorld $ popScreen . applyTerminalString s
ScancodeBackspace
-> popScreen >=> pushScreen (InputScreen $ dropLast s)
_ -> popScreen >=> pushScreen (InputScreen $ s ++ [scodeToChar scode])
-> uvWorld $ popScreen >=> pushScreen (InputScreen $ dropLast s)
_ -> uvWorld $ popScreen >=> pushScreen (InputScreen $ s ++ [scodeToChar scode])
where
dropLast (x:xs) = init (x:xs)
dropLast _ = []