Move menu layers outside of world

This commit is contained in:
2021-11-28 14:26:15 +00:00
parent 574f195b21
commit 462100703c
13 changed files with 132 additions and 124 deletions
+11 -11
View File
@@ -55,6 +55,7 @@ type CRUpdate = Creature -> World -> (Endo World, Maybe Creature)
data Universe = Universe
{ _uvWorld :: World
, _preloadData :: PreloadData
, _menuLayers :: [ScreenLayer]
}
data World = World
{ _keys :: !(S.Set Scancode)
@@ -98,7 +99,6 @@ data World = World
, _pathGraph :: ~(Gr Point2 Float)
, _pathGraphP :: ~[(Point2,Point2)]
, _pathPoints :: ~(IM.IntMap (IM.IntMap [(Int,Point2)]))
, _menuLayers :: [ScreenLayer]
, _worldFlags :: S.Set WorldFlag
, _carteDisplay :: !Bool
, _carteCenter :: !Point2
@@ -129,37 +129,37 @@ data SaveSlot = QuicksaveSlot | LevelStartSlot
data OptionScreenFlag = NormalOptions | GameOverOptions
data ScreenLayer
= OptionScreen
{ _scTitle :: World -> String
{ _scTitle :: Universe -> String
, _scOptions :: [MenuOption]
, _scDefaultEff :: World -> Maybe World
, _scDefaultEff :: Universe -> Maybe Universe
, _scOptionFlag :: OptionScreenFlag
}
| ColumnsScreen String [(String,String)]
| InputScreen String
| TerminalScreen Int [(Int,String)]
| WaitScreen
{ _scWaitMessage :: World -> String
{ _scWaitMessage :: Universe -> String
, _scWaitTime :: Int
}
| DisplayScreen
{ _scDisplay :: World -> Picture
{ _scDisplay :: Universe -> Picture
}
data MenuOption
= Toggle
{ _moKey :: Scancode
, _moEff :: World -> Maybe World
, _moString :: World -> String
, _moEff :: Universe -> Maybe Universe
, _moString :: Universe -> String
}
| Toggle2
{ _moKey1 :: Scancode
, _moEff1 :: World -> Maybe World
, _moEff1 :: Universe -> Maybe Universe
, _moKey2 :: Scancode
, _moEff2 :: World -> Maybe World
, _moString :: World -> String
, _moEff2 :: Universe -> Maybe Universe
, _moString :: Universe -> String
}
| InvisibleToggle
{ _moKey :: Scancode
, _moEff :: World -> Maybe World
, _moEff :: Universe -> Maybe Universe
}
data InventoryMode
= TopInventory