Remove a lot of IO/maybe cruft
This commit is contained in:
@@ -2,7 +2,7 @@ module Dodge.Menu.Option
|
||||
where
|
||||
import Dodge.Data.Universe
|
||||
|
||||
slTitleOptionsEff :: String -> [MenuOption] -> (Universe -> IO (Maybe Universe)) -> ScreenLayer
|
||||
slTitleOptionsEff :: String -> [MenuOption] -> (Universe -> Universe) -> ScreenLayer
|
||||
slTitleOptionsEff title ops eff =
|
||||
OptionScreen
|
||||
{ _scTitle = const title
|
||||
|
||||
@@ -7,12 +7,12 @@ import Dodge.Menu.PushPop
|
||||
|
||||
makeBoolOption lns t =
|
||||
Toggle
|
||||
(return . Just . (uvConfig . lns #%~ not))
|
||||
(uvConfig . lns #%~ not)
|
||||
(\u -> MODStringOption t (show (u ^# uvConfig . lns)))
|
||||
|
||||
makeEnumOption lns str sideeff =
|
||||
Toggle
|
||||
(\u -> Just <$> sideeff (u & uvConfig . lns #%~ cycleEnum))
|
||||
(\u -> sideeff (u & uvConfig . lns #%~ cycleEnum))
|
||||
(\u -> MODStringOption str (show (u ^# uvConfig . lns)))
|
||||
|
||||
makeSubmenuOption submenu t = Toggle (pushScreen submenu) (const t)
|
||||
|
||||
@@ -3,14 +3,9 @@ module Dodge.Menu.PushPop where
|
||||
import Dodge.Data.Universe
|
||||
import LensHelp
|
||||
|
||||
popScreen' :: Universe -> Maybe Universe
|
||||
popScreen' = Just . (uvScreenLayers %~ tail)
|
||||
popScreen :: Universe -> Universe
|
||||
popScreen = uvScreenLayers %~ tail
|
||||
|
||||
popScreen :: Universe -> IO (Maybe Universe)
|
||||
popScreen = return . popScreen'
|
||||
pushScreen :: ScreenLayer -> Universe -> Universe
|
||||
pushScreen ml = (uvScreenLayers .:~ ml)
|
||||
|
||||
pushScreen' :: ScreenLayer -> Universe -> Maybe Universe
|
||||
pushScreen' ml = Just . (uvScreenLayers .:~ ml)
|
||||
|
||||
pushScreen :: ScreenLayer -> Universe -> IO (Maybe Universe)
|
||||
pushScreen ml = return . pushScreen' ml
|
||||
|
||||
Reference in New Issue
Block a user