diff --git a/src/Dodge/Combine.hs b/src/Dodge/Combine.hs index 693ae7488..5ea1d425d 100644 --- a/src/Dodge/Combine.hs +++ b/src/Dodge/Combine.hs @@ -18,7 +18,7 @@ import Dodge.Item.InventoryColor import qualified IntMapHelp as IM import SimpleTrie -combineList :: World -> [SelectionItem CombinableItem] +combineList :: World -> [SelectionItem CombItem] combineList = map f . combineItemListYouX where f (is, itm) = @@ -28,8 +28,8 @@ combineList = map f . combineItemListYouX , _siWidth = 15 , _siIsSelectable = True , _siColor = itemInvColor $ baseCI itm - , _siOffX = 0 - , _siPayload = Just $ CombinableItem is itm + , _siOffX = 2 + , _siPayload = Just $ CombItem is itm } combineItemListYouX :: World -> [([Int], Item)] diff --git a/src/Dodge/Concurrent.hs b/src/Dodge/Concurrent.hs index dcfb9cf1c..9239d6b23 100644 --- a/src/Dodge/Concurrent.hs +++ b/src/Dodge/Concurrent.hs @@ -59,7 +59,7 @@ loadingScreen str = { _scTitle = str , _scOptions = mempty , _scOffset = 0 - , _scPositionedMenuOption = NoEscapeMenuOption + , _scPositionedMenuOption = NoExtraMenuOption , _scOptionFlag = LoadingScreen , _scSelectionList = mempty , _scAvailableLines = 0 diff --git a/src/Dodge/Data/Combine.hs b/src/Dodge/Data/Combine.hs index 176f649c9..e9b7246cd 100644 --- a/src/Dodge/Data/Combine.hs +++ b/src/Dodge/Data/Combine.hs @@ -1,9 +1,13 @@ {-# LANGUAGE TemplateHaskell #-} + module Dodge.Data.Combine where + import Control.Lens import Dodge.Data.Item -data CombinableItem = CombinableItem + +data CombItem = CombItem { _ciInvIDs :: [Int] , _ciItem :: Item } -makeLenses ''CombinableItem + +makeLenses ''CombItem diff --git a/src/Dodge/Data/HUD.hs b/src/Dodge/Data/HUD.hs index 8907956a0..ae6aa47e3 100644 --- a/src/Dodge/Data/HUD.hs +++ b/src/Dodge/Data/HUD.hs @@ -22,7 +22,7 @@ data SubInventory , _mapInvItmID :: NewInt ItmInt } | CombineInventory - { _ciSections :: IMSS CombinableItem + { _ciSections :: IMSS CombItem , _ciSelection :: Maybe Selection , _ciFilter :: Maybe String } diff --git a/src/Dodge/Data/SelectionList.hs b/src/Dodge/Data/SelectionList.hs index 9e35fa766..e6264f0e0 100644 --- a/src/Dodge/Data/SelectionList.hs +++ b/src/Dodge/Data/SelectionList.hs @@ -26,7 +26,7 @@ data SectionCursor = SectionCursor , _scurColor :: Color } -data SelectionSection a = SelectionSection +data SelSection a = SelSection { _ssItems :: IntMap (SelectionItem a) , _ssOffset :: Int , _ssShownItems :: [Picture] @@ -34,7 +34,7 @@ data SelectionSection a = SelectionSection , _ssIndent :: Int } -type IMSS a = IntMap (SelectionSection a) +type IMSS a = IntMap (SelSection a) data SelectionWidth = FixedSelectionWidth Int | UseItemWidth @@ -51,6 +51,6 @@ data SelectionItem a makeLenses ''ListDisplayParams makeLenses ''SelectionItem -makeLenses ''SelectionSection +makeLenses ''SelSection makeLenses ''SectionCursor makeLenses ''CursorDisplay diff --git a/src/Dodge/Data/Universe.hs b/src/Dodge/Data/Universe.hs index 8c4a06182..995443e54 100644 --- a/src/Dodge/Data/Universe.hs +++ b/src/Dodge/Data/Universe.hs @@ -73,26 +73,23 @@ data OptionScreenFlag = NormalOptions | GameOverOptions | SplashOptions | LoadingScreen deriving (Eq, Ord, Show, Read) --Generic, Flat) -data EscapeMenuOption - = BottomEscapeMenuOption { _emoMenuOption :: MenuOption } - | TopEscapeMenuOption { _emoMenuOption :: MenuOption } - | NoEscapeMenuOption +data ExtraMenuOption + = BottomMenuOption { _emoMenuOption :: MenuOption } + | TopMenuOption { _emoMenuOption :: MenuOption } + | NoExtraMenuOption data ScreenLayer = OptionScreen { _scTitle :: String , _scOptions :: [MenuOption] , _scOffset :: Int - , _scPositionedMenuOption :: EscapeMenuOption + , _scPositionedMenuOption :: ExtraMenuOption , _scOptionFlag :: OptionScreenFlag , _scSelectionList :: [SelectionItem (Universe -> Universe,Universe->Universe)] , _scAvailableLines :: Int , _scDisplayTime :: Int } - | InputScreen - { _scInput :: String - , _scFooter :: String - } + | InputScreen { _scInput :: String } data MenuOptionDisplay = MODString {_modString :: String} @@ -117,6 +114,6 @@ makeLenses ''ScreenLayer makeLenses ''SideEffect makeLenses ''MenuOptionDisplay makeLenses ''MenuOption -makeLenses ''EscapeMenuOption +makeLenses ''ExtraMenuOption makeLenses ''DebugItem makeLenses ''DebugInfo diff --git a/src/Dodge/Debug/Terminal.hs b/src/Dodge/Debug/Terminal.hs index a4e3451aa..68c90d33c 100644 --- a/src/Dodge/Debug/Terminal.hs +++ b/src/Dodge/Debug/Terminal.hs @@ -77,19 +77,19 @@ parseItem [] = Nothing parseNum :: [String] -> Int parseNum xs = fromMaybe 1 $ xs ^? ix 0 >>= readMaybe -showTerminalError :: String -> String -> Universe -> Universe -showTerminalError cmd s = uvScreenLayers .:~ InputScreen cmd s +showTerminalError :: String -> Universe -> Universe +showTerminalError cmd = uvScreenLayers .:~ InputScreen cmd applySetTerminalString :: String -> Universe -> Universe applySetTerminalString [] = id applySetTerminalString var = case key' of - "" -> showTerminalError ("set " ++ var) ("Unable to read as argument as float: " ++ val) + "" -> showTerminalError ("set " ++ var) "hp" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crHP .~ round (fromJust val') -- "invcap" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crInvCapacity .~ round (fromJust val') -- "mass" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crMass .~ fromJust val' -- "mvspeed" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crMvType . mvSpeed .~ fromJust val' "mvspeed" -> uvWorld . cWorld . lWorld . creatures . ix 0 . crType . avMoveSpeed .~ fromJust val' - _ -> showTerminalError ("set " ++ var) ("Invalid set command: " ++ key) -- never reached? + _ -> showTerminalError ("set " ++ var) where (key, val) = getSplitString var val' = readMaybe val :: Maybe Float diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index 77e6b602b..fdb9f716e 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -1,6 +1,7 @@ -- {-# OPTIONS_GHC -fno-full-laziness #-} --{-# LANGUAGE TupleSections #-} {-# LANGUAGE LambdaCase #-} + --{-# LANGUAGE BangPatterns #-} module Dodge.DisplayInventory ( @@ -9,9 +10,6 @@ module Dodge.DisplayInventory ( toggleCombineInv, ) where -import Dodge.Data.HUD -import Dodge.Inventory.CheckSlots -import NewInt import Control.Applicative import Control.Lens import Control.Monad @@ -24,9 +22,11 @@ import Dodge.CharacterEnums import Dodge.Combine import Dodge.Data.Combine import Dodge.Data.Config +import Dodge.Data.HUD import Dodge.Data.SelectionList import Dodge.Data.Universe import Dodge.Inventory +import Dodge.Inventory.CheckSlots import Dodge.Inventory.SelectionList import Dodge.Item.Display import Dodge.Item.Grammar @@ -34,6 +34,7 @@ import Dodge.ListDisplayParams import Dodge.SelectionList import Dodge.SelectionSections import qualified ListHelp as List +import NewInt import Picture.Base updateCombinePositioning :: Universe -> Universe @@ -43,17 +44,14 @@ updateCombinePositioning u = %~ updateCombineSections (_uvWorld u) (_uvConfig u) & uvWorld . hud . subInventory %~ checkCombineSelectionExists -updateCombineSections :: - World -> - Config -> - IM.IntMap (SelectionSection CombinableItem) -> - IM.IntMap (SelectionSection CombinableItem) +updateCombineSections + :: World -> Config -> IM.IntMap (SelSection CombItem) -> IM.IntMap (SelSection CombItem) updateCombineSections w cfig = updateSectionsPositioning (const 0) (w ^? hud . subInventory . ciSelection . _Just) (getAvailableListLines secondColumnLDP cfig) - (IM.fromDistinctAscList [(-1, sfclose),(0, sclose')]) + (IM.fromDistinctAscList [(-1, sfclose), (0, sclose')]) where filtcurs = w ^? hud . subInventory . ciSelection . _Just . slSec == Just (-1) (sfclose, sclose) = @@ -67,10 +65,10 @@ updateCombineSections w cfig = sclose' | null sclose = IM.singleton 0 $ - SelItem ["NONE"] 1 25 False white 0 Nothing + SelItem ["NONE"] 1 25 False white 2 Nothing | otherwise = sclose -regexCombs :: IM.IntMap Item -> SelectionItem CombinableItem -> String -> Bool +regexCombs :: IM.IntMap Item -> SelectionItem CombItem -> String -> Bool regexCombs inv ci = \case '#' : str -> any (g str) (_ciInvIDs $ fromJust $ _siPayload ci) str -> (regexList str . _siPictures) ci @@ -121,19 +119,17 @@ updateDisplaySections w cfig = displayIndents mselpos (getAvailableListLines invDP cfig) - ( IM.fromDistinctAscList $ - zip - [-1 .. 5] - [ invhead + $ IM.fromDistinctAscList $ + zip [-1 .. 5] + [ sfinv , sinv - , IM.singleton 0 - $ SelItem [displayFreeSlots (crNumFreeSlots (w ^. cWorld . lWorld . items) cr)] 1 15 True invDimColor 2 Nothing - , nearbyhead + , IM.singleton 0 $ + SelItem [displayFreeSlots (crNumFreeSlots (w ^. cWorld . lWorld . items) cr)] 1 15 True invDimColor 2 Nothing + , sfclose , sclose , interfaceshead , btitems ] - ) where mselpos = w ^? hud . diSelection . _Just invfiltcurs = mselpos ^? _Just . slSec == Just (-1) @@ -144,15 +140,11 @@ updateDisplaySections w cfig = (sfclose, sclose) = filterSectionsPair closefiltcurs plainRegex closeitms "NEARBY ITEMS" $ w ^? hud . diCloseFilter . _Just - nearbyhead - | null sfclose && not (null sclose) = makehead "NEARBY ITEMS" - | otherwise = sfclose interfaceshead = if null btitems then mempty else makehead "NEARBY INTERFACES" btitems = IM.fromDistinctAscList . zip [0 ..] $ mapMaybe (closeButtonToSelectionItem w) (w ^. hud . closeButtons) makehead str = IM.singleton 0 $ SelItem [str] 1 15 False white 0 Nothing - invhead = if null sfinv then makehead "INVENTORY" else sfinv cr = you w closeitms = IM.fromDistinctAscList . zip [0 ..] $ @@ -172,9 +164,11 @@ filterSectionsPair :: filterSectionsPair infocus filtfn itms s mfilt = (x, itms') where filtcurs = if infocus then cFilledRect else cWireRect - x = IM.singleton 0 $ fromMaybe (SelItem [s] 1 (length s) False white 0 Nothing) $ do - str <- mfilt - return $ SelItem + x = IM.singleton 0 $ + fromMaybe (SelItem [s] 1 (length s) False white 0 Nothing) $ do + str <- mfilt + return $ + SelItem [s ++ " FILTER/" ++ str ++ [filtcurs], numfiltitems] 2 (length (s ++ " FILTER/" ++ str ++ [filtcurs])) @@ -182,20 +176,11 @@ filterSectionsPair infocus filtfn itms s mfilt = (x, itms') white 0 Nothing --- filtsis = fold $ do --- str <- mfilt --- return $ --- IM.singleton --- 0 --- $ SelItem --- [filtdescription ++ " FILTER/" ++ str ++ [filtcurs], numfiltitems] --- 2 --- (length (filtdescription ++ " FILTER/" ++ str ++ [filtcurs])) --- True --- white --- 0 --- Nothing - itms' = maybe id (IM.filter . filtfn) mfilt itms + f y + | null y = + IM.singleton 0 $ SelItem ["(NONE)"] 1 (length s) True (greyN 0.5) 0 Nothing + | otherwise = y + itms' = f $ maybe id (IM.filter . filtfn) mfilt itms numfiltitems = show (length itms - length itms') ++ " FILTERED" invDimColor :: Color @@ -254,8 +239,8 @@ updateSectionsPositioning :: Maybe Selection -> Int -> IM.IntMap (IM.IntMap (SelectionItem a)) -> - IM.IntMap (SelectionSection a) -> - IM.IntMap (SelectionSection a) + IM.IntMap (SelSection a) -> + IM.IntMap (SelSection a) updateSectionsPositioning h mselpos allavailablelines lsss sss = IM.intersectionWithKey (\k -> updateSection (h k) (m k)) ls ssizes `g` offsets where @@ -276,9 +261,9 @@ updateSection :: IM.IntMap (SelectionItem a) -> Int -> Int -> - SelectionSection a + SelSection a updateSection indent mcsel sis availablelines oldoffset = - SelectionSection + SelSection { _ssItems = sis , _ssOffset = offset , _ssShownItems = shownitems @@ -337,4 +322,5 @@ enterCombineInv cfig w = , _ciSelection = Just (Sel 0 0 mempty) , _ciFilter = Nothing } - & hud . diInvFilter .~ Nothing + & hud . diInvFilter + .~ Nothing diff --git a/src/Dodge/Inventory/SelectionList.hs b/src/Dodge/Inventory/SelectionList.hs index 00f112621..6b3706b4d 100644 --- a/src/Dodge/Inventory/SelectionList.hs +++ b/src/Dodge/Inventory/SelectionList.hs @@ -238,7 +238,7 @@ btText :: Button -> String btText bt = case _btEvent bt of ButtonPress {} -> "BUTTON" ButtonSwitch {_btOn = t} -> if t then "SWITCH\\" else "SWITCH/" - ButtonAccessTerminal {} -> "TERMINAL" + ButtonAccessTerminal i -> "TERMINAL " ++ show i closeItemToTextPictures :: Item -> ([String], Color) closeItemToTextPictures it = (basicItemDisplay it, itemInvColor $ baseCI it) diff --git a/src/Dodge/ListDisplayParams.hs b/src/Dodge/ListDisplayParams.hs index e1990c1d4..cdc20afaa 100644 --- a/src/Dodge/ListDisplayParams.hs +++ b/src/Dodge/ListDisplayParams.hs @@ -41,10 +41,10 @@ invCursorParams w = BoundaryCursor $ case w ^? hud . subInventory of _ -> [North, South, West] secondColumnLDP :: ListDisplayParams -secondColumnLDP = defaultListDisplayParams & ldpPos . spPixelOff .~ V2 subInvX (-80) +secondColumnLDP = defaultListDisplayParams & ldpPos . spPixelOff .~ V2 subInvX (-20) subInvX :: Float -subInvX = 10 * fromIntegral topInvW + 70 +subInvX = 10 * fromIntegral topInvW + 170 topInvW :: Int topInvW = 15 diff --git a/src/Dodge/Menu.hs b/src/Dodge/Menu.hs index e5c9e9b1d..39370ce00 100644 --- a/src/Dodge/Menu.hs +++ b/src/Dodge/Menu.hs @@ -28,9 +28,9 @@ import System.Clipboard import Text.Read splashMenu :: Universe -> ScreenLayer -splashMenu u = - initializeOptionMenu "GAME TITLE" splashMenuOptions NoEscapeMenuOption u - & scOptionFlag .~ SplashOptions +splashMenu = + (scOptionFlag .~ SplashOptions) + . initializeOptionMenu NoExtraMenuOption "GAME TITLE" splashMenuOptions splashMenuOptions :: [MenuOption] splashMenuOptions = @@ -55,8 +55,10 @@ splashMenuOptions = pauseMenu :: Universe -> ScreenLayer pauseMenu = - initializeOptionMenu "PAUSED" pauseMenuOptions $ - TopEscapeMenuOption $ Toggle unpause (const (MODString "CONTINUE")) + initializeOptionMenu + (TopMenuOption $ Toggle unpause (const (MODString "CONTINUE"))) + "PAUSED" + pauseMenuOptions pauseMenuOptions :: [MenuOption] pauseMenuOptions = @@ -100,10 +102,10 @@ trySeedFromClipboard u = do Just i -> return $ startSeedGame 0 i u titleOptionsMenu :: String -> [MenuOption] -> Universe -> ScreenLayer -titleOptionsMenu title ops = initializeOptionMenuBO title ops "BACK" (popScreen . writeConfig) +titleOptionsMenu = initializeOptionMenuBO "BACK" (popScreen . writeConfig) titleOptionsNoWrite :: String -> [MenuOption] -> Universe -> ScreenLayer -titleOptionsNoWrite title ops = initializeOptionMenuBO title ops "BACK" popScreen +titleOptionsNoWrite = initializeOptionMenuBO "BACK" popScreen optionMenu :: Universe -> ScreenLayer optionMenu = titleOptionsNoWrite "OPTIONS" optionsOptions @@ -185,12 +187,9 @@ graphicsMenuOptions = ] gameOverMenu :: Universe -> ScreenLayer -gameOverMenu u = - initializeOptionMenu "GAME OVER" pauseMenuOptions NoEscapeMenuOption u - & scOptionFlag .~ GameOverOptions - ---charToScode :: Char -> Scancode ---charToScode = Scancode . fromIntegral . (\x -> x - 61) . fromEnum +gameOverMenu = + set scOptionFlag GameOverOptions + . initializeOptionMenu NoExtraMenuOption "GAME OVER" pauseMenuOptions unpause :: Universe -> Universe unpause u' = @@ -211,7 +210,8 @@ unpause u' = -- note that this won't update after it is first loaded displayConfig :: Universe -> ScreenLayer -displayConfig u = titleOptionsNoWrite "CONFIG" (map (Toggle id . const . MODString) $ listConfig u) u +displayConfig u = titleOptionsNoWrite "CONFIG" (map (Toggle id . const . MODString) + $ listConfig u) u listConfig :: Universe -> [String] listConfig = @@ -239,8 +239,6 @@ listControls = , ("q|e|0-9", "USE HOTKEY") , ("&q|e|0-9", "JUMP TO HOTKEY") , ("c", "COMBINE ITEMS") --- , ("x", "EXAMINE ITEMS") --- , ("m", "DISPLAY MAP") , ("p|", "PAUSE") , ("", "SELECT/MOVE ITEMS") , ("", "NORMAL CAMERA") diff --git a/src/Dodge/Menu/Option.hs b/src/Dodge/Menu/Option.hs index 214821e4b..9263d9bb6 100644 --- a/src/Dodge/Menu/Option.hs +++ b/src/Dodge/Menu/Option.hs @@ -14,9 +14,8 @@ import LensHelp import Padding import Picture.Base -initializeOptionMenu :: - String -> [MenuOption] -> EscapeMenuOption -> Universe -> ScreenLayer -initializeOptionMenu title ops pmo u = +initializeOptionMenu :: ExtraMenuOption -> String -> [MenuOption] -> Universe -> ScreenLayer +initializeOptionMenu pmo title ops u = OptionScreen { _scTitle = title , _scOptions = ops @@ -28,12 +27,10 @@ initializeOptionMenu title ops pmo u = , _scDisplayTime = 0 } --- BO = Bottom Option initializeOptionMenuBO :: - String -> [MenuOption] -> String -> (Universe -> Universe) -> Universe -> ScreenLayer -initializeOptionMenuBO title ops str eff = initializeOptionMenu title ops pmo - where - pmo = BottomEscapeMenuOption $ (Toggle eff . const . MODString) str + String -> (Universe -> Universe) -> String -> [MenuOption] -> Universe -> ScreenLayer +initializeOptionMenuBO str eff = initializeOptionMenu + $ BottomMenuOption $ (Toggle eff . const . MODString) str refreshOptionsSelectionList :: Universe -> Universe refreshOptionsSelectionList u = u & uvScreenLayers . ix 0 %~ f @@ -51,17 +48,18 @@ optionsToSelections :: Int -> Universe -> [MenuOption] -> - EscapeMenuOption -> + ExtraMenuOption -> [SelectionItem (Universe -> Universe, Universe -> Universe)] optionsToSelections maxlines u allops pmo = case pmo of - NoEscapeMenuOption -> map (menuOptionToSelectionItem u maxOptionLength) ops - TopEscapeMenuOption mo -> map (menuOptionToSelectionItem u maxOptionLength) (mo : ops) - BottomEscapeMenuOption mo -> map (menuOptionToSelectionItem u maxOptionLength) (ops ++ [mo]) + NoExtraMenuOption -> map (menuOptionToSelectionItem u maxOptionLength) ops + TopMenuOption mo -> map (menuOptionToSelectionItem u maxOptionLength) (mo : ops) + BottomMenuOption mo -> map (menuOptionToSelectionItem u maxOptionLength) (ops ++ [mo]) where offset = fromMaybe 0 $ u ^? uvScreenLayers . _head . scOffset ops | maxlines >= length allops = allops - | otherwise = take (maxlines - 2) (drop offset allops ++ repeat dummyMenuOption) ++ [cycleOptionsOption] + | otherwise = take (maxlines - 2) (drop offset allops ++ repeat dummyMenuOption) + ++ [cycleOptionsOption] maxOptionLength = 3 + maximum (0 : map (optionValueOffset u) ops) cycleOptionsOption = Toggle @@ -117,13 +115,3 @@ menuOptionToSelectionItem w padAmount mo = optionText = case _moString mo w of MODStringOption s t -> rightPad padAmount '.' s ++ t x -> _modString x - ---menuOptionToString :: Universe -> Int -> MenuOption -> (Color, String) ---menuOptionToString w padAmount mo = (thecol, optionText) --- where --- thecol = case _moString mo w of --- MODBlockedString{} -> greyN 0.5 --- _ -> white --- optionText = case _moString mo w of --- MODStringOption s t -> rightPad padAmount '.' s ++ t --- x -> _modString x diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index b6919a006..e530396d3 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -55,8 +55,7 @@ drawHUD cfig w = case w ^. hud of drawInventory sections w cfig subinv <> drawSubInventory subinv cfig w -drawInventory - :: IM.IntMap (SelectionSection ()) -> World -> Config -> SubInventory -> Picture +drawInventory :: IM.IntMap (SelSection ()) -> World -> Config -> SubInventory -> Picture drawInventory sss w cfig = \case DisplayTerminal {} -> mempty _ -> drawSelectionSections sss invDP cfig @@ -76,7 +75,7 @@ drawInventory sss w cfig = \case drawRootCursor :: World -> - IM.IntMap (SelectionSection ()) -> + IM.IntMap (SelSection ()) -> Maybe (Int, Int) -> ListDisplayParams -> Config -> @@ -182,7 +181,7 @@ drawMapperInventory itid w = fold $ do drawCombineInventory :: Config -> - IM.IntMap (SelectionSection CombinableItem) -> + IM.IntMap (SelSection CombItem) -> World -> Picture drawCombineInventory cfig sss w = @@ -318,7 +317,7 @@ equipAllocString = \case RemoveEquipment{} -> "TAKE OFF" drawItemConnections :: - IM.IntMap (SelectionSection ()) -> + IM.IntMap (SelSection ()) -> Config -> IM.IntMap (Maybe (Int, Int), [Int], [Int]) -> Picture @@ -327,12 +326,7 @@ drawItemConnections sss cfig = . IM.foldMapWithKey (drawItemChildrenConnect sss cfig) . fmap (\(_, a, b) -> a <> b) -drawItemChildrenConnect :: - IM.IntMap (SelectionSection ()) -> - Config -> - Int -> - [Int] -> - Picture +drawItemChildrenConnect :: IM.IntMap (SelSection ()) -> Config -> Int -> [Int] -> Picture drawItemChildrenConnect sss cfig i is = fromMaybe mempty $ do p <- snum i let ps = mapMaybe snum is @@ -341,7 +335,7 @@ drawItemChildrenConnect sss cfig i is = fromMaybe mempty $ do snum = selNumPos cfig invDP sss 0 combineInventoryExtra :: - IM.IntMap (SelectionSection CombinableItem) -> + IM.IntMap (SelSection CombItem) -> Maybe (Int, Int) -> Config -> World -> @@ -477,7 +471,7 @@ selNumPosCardinal :: CardinalEightPoint -> Config -> ListDisplayParams -> - IM.IntMap (SelectionSection a) -> + IM.IntMap (SelSection a) -> Int -> Int -> Maybe Point2 @@ -504,5 +498,5 @@ selNumPosCardinal card cfig ldp sss i j = do s = _ldpScale ldp ygap = _ldpVerticalGap ldp -selSecSelCol :: Int -> Int -> IM.IntMap (SelectionSection a) -> Maybe Color +selSecSelCol :: Int -> Int -> IM.IntMap (SelSection a) -> Maybe Color selSecSelCol i j = (^? ix i . ssItems . ix j . siColor) diff --git a/src/Dodge/Render/List.hs b/src/Dodge/Render/List.hs index 3ac0ae3e6..31c40b2be 100644 --- a/src/Dodge/Render/List.hs +++ b/src/Dodge/Render/List.hs @@ -102,10 +102,9 @@ stackPicturesAtOff :: Int -> [Picture] -> Picture stackPicturesAtOff i = mconcat . zipWith (drawListElement 10 1 0) [i, i -1 ..] selSecDrawCursorAt :: --- Int -> ListDisplayParams -> CursorDisplay -> - IM.IntMap (SelectionSection a) -> + IM.IntMap (SelSection a) -> (Int, Int) -> Picture selSecDrawCursorAt ldp curs sss (i, j) = fold $ do @@ -126,7 +125,7 @@ selSecDrawCursorAt ldp curs sss (i, j) = fold $ do selSecDrawCursor :: ListDisplayParams -> CursorDisplay -> - IM.IntMap (SelectionSection a) -> + IM.IntMap (SelSection a) -> Maybe (Int, Int) -> Picture selSecDrawCursor ldp curs = maybe mempty . selSecDrawCursorAt ldp curs diff --git a/src/Dodge/Render/MenuScreen.hs b/src/Dodge/Render/MenuScreen.hs index b86940bb1..c263ee286 100644 --- a/src/Dodge/Render/MenuScreen.hs +++ b/src/Dodge/Render/MenuScreen.hs @@ -1,7 +1,5 @@ -{- The menu picture. -} -module Dodge.Render.MenuScreen ( - drawMenuScreen, -) where +{-# LANGUAGE LambdaCase #-} +module Dodge.Render.MenuScreen (drawMenuScreen) where import Control.Lens import Dodge.Base.Window @@ -14,32 +12,20 @@ import Dodge.ScreenPos import Picture drawMenuScreen :: Config -> Maybe Int -> ScreenLayer -> Picture -drawMenuScreen cfig spos screen = case screen of - OptionScreen{_scTitle = titf, _scSelectionList = slist} -> - drawOptions cfig titf spos slist - InputScreen inputstr help -> drawInputMenu cfig ('>' : inputstr) help +drawMenuScreen cf mi = \case + OptionScreen{_scTitle = s, _scSelectionList = l} -> drawOptions cf s mi l + InputScreen inputstr -> drawInputMenu cf ('>' : inputstr) -drawInputMenu :: - Config -> - -- | Title - String -> - -- | Help Text - String -> - Picture -drawInputMenu cfig title footer = - fold - [ darkenBackground cfig - , drawTitle cfig title - , drawFooterText cfig red footer - ] +drawInputMenu :: Config -> String -> Picture +drawInputMenu cf s = darkenBackground cf <> drawTitle cf s drawOptions :: Config -> String -> Maybe Int -> [SelectionItem a] -> Picture -drawOptions cfig title msel sl = - darkenBackground cfig - <> drawTitle cfig title - <> drawSelectionList menuLDP cfig sl +drawOptions cf title msel sl = + darkenBackground cf + <> drawTitle cf title + <> drawSelectionList menuLDP cf sl <> translateScreenPos - cfig + cf (menuLDP ^. ldpPos) ( drawCursorAt msel @@ -53,24 +39,7 @@ darkenBackground :: Config -> Picture darkenBackground = color (withAlpha 0.5 black) . polygon . reverse . screenBox drawTitle :: Config -> String -> Picture -drawTitle cfig = translate (- hw) (hh -80) . scale 0.4 0.4 . text +drawTitle cf = translate (- hw) (hh -80) . scale 0.4 0.4 . text where - hh = halfHeight cfig - hw = halfWidth cfig - -placeString :: - -- | x distance from center - Float -> - -- | y distance from center - Float -> - -- | scale - Float -> - String -> - Picture -placeString x y sc = color white . translate x y . scale sc sc . text - -drawFooterText :: Config -> Color -> String -> Picture -drawFooterText cfig col = color col . placeString (- hw + 30) (- hh + 10) 0.1 - where - hh = halfHeight cfig - hw = halfWidth cfig + hh = halfHeight cf + hw = halfWidth cf diff --git a/src/Dodge/SelectionSections/Draw.hs b/src/Dodge/SelectionSections/Draw.hs index c9ed98498..bb2fe2fba 100644 --- a/src/Dodge/SelectionSections/Draw.hs +++ b/src/Dodge/SelectionSections/Draw.hs @@ -14,7 +14,7 @@ import Dodge.SelectionSections import Picture.Base drawSelectionSections :: - IM.IntMap (SelectionSection a) -> + IM.IntMap (SelSection a) -> ListDisplayParams -> Config -> Picture @@ -33,7 +33,7 @@ drawSelectionSections sss ldp cfig = ) drawSSCursor :: - IM.IntMap (SelectionSection a) -> + IM.IntMap (SelSection a) -> ListDisplayParams -> CursorDisplay -> Config -> @@ -44,7 +44,7 @@ drawSSCursor sss ldp curs cfig = selSecDrawCursor ldp curs sss drawSSMultiCursor :: - IM.IntMap (SelectionSection a) -> + IM.IntMap (SelSection a) -> Maybe (Int, Int) -> Maybe Int -> ListDisplayParams -> diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index ad9e4fb40..40d8c72af 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -73,8 +73,3 @@ showTimeFlow tfs = case tfs of CameraScrollTimeFlow {_reverseAmount = ra } -> "CameraScrollTimeFlow" ++ show ra RewindLeftClick {_reverseAmount = ra } -> "RewindLeftClick" ++ show ra PausedTimeFlow {_timeFlowCharge = ra } -> "PausedTimeFlow" ++ show ra --- [ show $ u ^? uvScreenLayers . _head . scOffset --- ] --- ++ [ shortShow $ u ^?! uvWorld . cWorld . lWorld . creatures . ix 0 . crPos --- ] --- ++ map show (M.toList (u ^. uvWorld . input . pressedKeys)) diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 51354e36d..0333d29d2 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -136,7 +136,7 @@ maybeOpenConsole u = case u ^. uvWorld . input . pressedKeys . at ScancodeSemico openConsole :: [ScreenLayer] -> [ScreenLayer] openConsole = \case xs@(InputScreen{} : _) -> xs - xs -> InputScreen mempty "Enter command" : xs + xs -> InputScreen mempty : xs updateUniverseLast :: Universe -> Universe updateUniverseLast u = @@ -348,7 +348,7 @@ updateMouseContextGame :: Config -> Universe -> MouseContext -> MouseContext updateMouseContextGame cfig u = \case OverInvDrag i _ -> OverInvDrag i (inverseSelNumPos cfig invDP mpos disss) x@OverInvDragSelect{} -> x - _ -> fromMaybe aimcontext (isrotatedrag <|> overinv <|> overcomb <|> overterm) + _ -> fromMaybe aimcontext (isrotatedrag <|> overterm <|> overinv <|> overcomb) where w = u ^. uvWorld isrotatedrag = do @@ -406,7 +406,8 @@ isOverTerminalScreen cfig (V2 x y) = && y <= ymax + 5 && y >= ymin where - ldp = secondColumnLDP + --ldp = secondColumnLDP + ldp = invDP V2 xmin ymax = screenPosAbs cfig (ldp ^. ldpPos) tsize = fromIntegral $ getMaxLinesTM + 1 s = 5 + tsize * (20 * ldp ^. ldpScale + ldp ^. ldpVerticalGap) diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index ae396257e..7d422536b 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -545,7 +545,7 @@ getCloseObj w = getSelectedCloseObj w <|> topcitem <|> topcbut tryCombine :: (Int, Int) -> World -> World tryCombine (i, j) w = fromMaybe w $ do - CombinableItem is it <- w ^? hud . subInventory + CombItem is it <- w ^? hud . subInventory . ciSections . ix i . ssItems . ix j . siPayload . _Just p <- w ^? cWorld . lWorld . creatures . ix 0 . crPos return $ diff --git a/tags b/tags index 9a7585c87..7db90be43 100644 --- a/tags +++ b/tags @@ -150,7 +150,7 @@ BloomLayer src/Picture/Data.hs 25;" C BloomNoZWrite src/Picture/Data.hs 26;" C Blunt src/Dodge/Data/Damage.hs 21;" C Boosting src/Dodge/Data/Creature/Stance.hs 32;" C -BottomEscapeMenuOption src/Dodge/Data/Universe.hs 77;" C +BottomMenuOption src/Dodge/Data/Universe.hs 77;" C BounceBullet src/Dodge/Data/Bullet.hs 30;" C Bound_box_screen src/Dodge/Data/Config.hs 81;" C BoundaryCursor src/Dodge/Data/SelectionList.hs 20;" C @@ -236,8 +236,8 @@ Comatose src/Dodge/Data/Creature/Perception.hs 53;" C CombAmount src/Dodge/Data/CombAmount.hs 12;" t CombClust src/Dodge/Combine/Graph.hs 19;" t CombEdge src/Dodge/Combine/Graph.hs 32;" t +CombItem src/Dodge/Data/Combine.hs 8;" t CombNode src/Dodge/Combine/Graph.hs 25;" t -CombinableItem src/Dodge/Data/Combine.hs 5;" t CombineInventory src/Dodge/Data/HUD.hs 24;" C CombineInventoryChange src/Dodge/Data/World.hs 33;" C ComsSS src/Dodge/Data/Scenario.hs 98;" C @@ -414,7 +414,6 @@ EquipType src/Dodge/Data/Equipment/Misc.hs 11;" t EquipmentAllocation src/Dodge/Data/RightButtonOptions.hs 19;" t EquipmentPlatformSF src/Dodge/Data/ComposedItem.hs 17;" C Escape src/Dodge/Data/Scenario.hs 10;" C -EscapeMenuOption src/Dodge/Data/Universe.hs 76;" t Essential src/Shape/Data.hs 34;" C ExamineInventory src/Dodge/Data/HUD.hs 18;" C Explore src/Dodge/Data/Scenario.hs 4;" C @@ -424,6 +423,7 @@ Explosive src/Dodge/Data/Damage.hs 29;" C ExplosiveBall src/Dodge/Data/EnergyBall/Type.hs 16;" C ExplosiveBarrel src/Dodge/Data/Creature/Misc.hs 89;" C ExplosivePutty src/Dodge/Data/AmmoType.hs 13;" C +ExtraMenuOption src/Dodge/Data/Universe.hs 76;" t Eyes src/Dodge/Data/Creature/Perception.hs 41;" C FBO src/Shader/Data.hs 57;" t FLAMESHIELD src/Dodge/Data/Item/Combine.hs 123;" C @@ -849,7 +849,7 @@ NoCrImp src/Dodge/Data/CreatureEffect.hs 24;" C NoCrWdImp src/Dodge/Data/CreatureEffect.hs 14;" C NoCreatureEffect src/Dodge/Data/CreatureEffect.hs 11;" C NoDebugInfo src/Dodge/Data/Universe.hs 58;" C -NoEscapeMenuOption src/Dodge/Data/Universe.hs 79;" C +NoExtraMenuOption src/Dodge/Data/Universe.hs 79;" C NoFaction src/Dodge/Data/Creature/State.hs 20;" C NoFlare src/Dodge/Data/Muzzle.hs 29;" C NoHoming src/Dodge/Data/Projectile.hs 42;" C @@ -1201,11 +1201,11 @@ SelCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 33;" C SelCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 31;" C SelItem src/Dodge/Data/SelectionList.hs 42;" C SelNothing src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 29;" C +SelSection src/Dodge/Data/SelectionList.hs 29;" t Select_creature src/Dodge/Data/Config.hs 94;" C SelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 24;" C Selection src/Dodge/Data/HUD.hs 44;" t SelectionItem src/Dodge/Data/SelectionList.hs 41;" t -SelectionSection src/Dodge/Data/SelectionList.hs 29;" t SelectionWidth src/Dodge/Data/SelectionList.hs 39;" t SelfTree src/Dodge/Data/MetaTree.hs 18;" t SemiAutoTrigger src/Dodge/Data/TriggerType.hs 9;" C @@ -1383,8 +1383,8 @@ Toggle src/Dodge/Data/Universe.hs 103;" C Toggle2 src/Dodge/Data/Universe.hs 107;" C ToggleSF src/Dodge/Data/ComposedItem.hs 38;" C TopDT src/Dodge/Data/DoubleTree.hs 85;" C -TopEscapeMenuOption src/Dodge/Data/Universe.hs 78;" C TopLDT src/Dodge/Data/DoubleTree.hs 43;" C +TopMenuOption src/Dodge/Data/Universe.hs 78;" C TorchSF src/Dodge/Data/ComposedItem.hs 45;" C TorpedoBaySS src/Dodge/Data/Scenario.hs 99;" C TorqueCr src/Dodge/Data/WorldEffect.hs 31;" C @@ -1655,8 +1655,8 @@ _chasmShader src/Data/Preload/Render.hs 46;" f _chasmVBO src/Data/Preload/Render.hs 45;" f _chasms src/Dodge/Data/CWorld.hs 30;" f _ciFilter src/Dodge/Data/HUD.hs 27;" f -_ciInvIDs src/Dodge/Data/Combine.hs 6;" f -_ciItem src/Dodge/Data/Combine.hs 7;" f +_ciInvIDs src/Dodge/Data/Combine.hs 9;" f +_ciItem src/Dodge/Data/Combine.hs 10;" f _ciSections src/Dodge/Data/HUD.hs 25;" f _ciSelection src/Dodge/Data/HUD.hs 26;" f _cigType src/Dodge/Data/Camera.hs 19;" f @@ -2600,7 +2600,7 @@ addToTrunk src/TreeHelp.hs 156;" f addWarningTerminal src/Dodge/Room/Warning.hs 53;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 81;" f -advanceScrollAmount src/Dodge/Update.hs 421;" f +advanceScrollAmount src/Dodge/Update.hs 422;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f aimDelaySweep src/Dodge/Render/Picture.hs 288;" f @@ -2624,7 +2624,7 @@ anRoom src/Dodge/Floor.hs 130;" f analyser src/Dodge/Placement/Instance/Analyser.hs 10;" f analyserByDoor src/Dodge/Room/LasTurret.hs 93;" f analyserByNthLink src/Dodge/Room/LasTurret.hs 79;" f -andOrRegex src/Dodge/DisplayInventory.hs 80;" f +andOrRegex src/Dodge/DisplayInventory.hs 78;" f angleBetween src/Geometry.hs 161;" f angleVV src/Geometry/Vector.hs 57;" f angleVV3 src/Geometry/Vector3D.hs 122;" f @@ -2843,23 +2843,23 @@ chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 31;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f chasmTest src/Dodge/Creature/Update.hs 122;" f chasmWallToSurface src/Dodge/Base/Collide.hs 110;" f -checkCombineSelectionExists src/Dodge/DisplayInventory.hs 102;" f +checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkConnection src/Dodge/Inventory/Swap.hs 65;" f checkDeath src/Dodge/Creature/Update.hs 68;" f checkDeath' src/Dodge/Creature/Update.hs 71;" f -checkEndGame src/Dodge/Update.hs 775;" f +checkEndGame src/Dodge/Update.hs 776;" f checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f checkInvSlotsYou src/Dodge/Inventory/CheckSlots.hs 18;" f -checkInventorySelectionExists src/Dodge/DisplayInventory.hs 95;" f +checkInventorySelectionExists src/Dodge/DisplayInventory.hs 93;" f checkTermDist src/Dodge/Update.hs 334;" f checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f chemFuelPouch src/Dodge/Item/Ammo.hs 75;" f chestPQ src/Dodge/Creature/HandPos.hs 124;" f -chooseCursorBorders src/Dodge/Render/List.hs 156;" f +chooseCursorBorders src/Dodge/Render/List.hs 155;" f chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 34;" f chooseFreeSite src/Dodge/Inventory/RBList.hs 47;" f @@ -2878,7 +2878,7 @@ circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f circleSolid src/Picture/Base.hs 164;" f circleSolidCol src/Picture/Base.hs 168;" f clAlt src/Dodge/Cloud.hs 5;" f -clClSpringVel src/Dodge/Update.hs 848;" f +clClSpringVel src/Dodge/Update.hs 849;" f clColor src/Shader/Poke/Cloud.hs 35;" f clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f clampPath src/Dodge/Room/Procedural.hs 165;" f @@ -2902,12 +2902,12 @@ clockCycle src/Dodge/Clock.hs 7;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 223;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 208;" f closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 243;" f -closeObjectInfo src/Dodge/Render/HUD.hs 225;" f +closeObjectInfo src/Dodge/Render/HUD.hs 226;" f closestCreatureID src/Dodge/Debug.hs 118;" f closestPointOnLine src/Geometry/Intersect.hs 281;" f closestPointOnLineParam src/Geometry/Intersect.hs 297;" f closestPointOnSeg src/Geometry/Intersect.hs 312;" f -cloudEffect src/Dodge/Update.hs 800;" f +cloudEffect src/Dodge/Update.hs 801;" f cloudPoisonDamage src/Dodge/Update/Cloud.hs 10;" f clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f @@ -2941,13 +2941,13 @@ combinationsOf src/Multiset.hs 46;" f combinationsTrie src/Dodge/Combine.hs 43;" f combineAwareness src/Dodge/Creature/Perception.hs 110;" f combineFloors src/Dodge/Room/Procedural.hs 171;" f -combineInventoryExtra src/Dodge/Render/HUD.hs 341;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 337;" f combineItemListYouX src/Dodge/Combine.hs 35;" f combineList src/Dodge/Combine.hs 21;" f combineRooms src/Dodge/Room/Procedural.hs 151;" f combineS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 480;" f combineTree src/Dodge/Tree/Compose.hs 66;" f -commandColor src/Dodge/Terminal.hs 116;" f +commandColor src/Dodge/Terminal.hs 114;" f commonPrefix src/Dodge/Debug/Terminal.hs 148;" f comp src/Quaternion.hs 65;" f compactDraw src/Dodge/LevelGen.hs 93;" f @@ -2986,7 +2986,7 @@ crAwayFromPost src/Dodge/Creature/Test.hs 82;" f crBlips src/Dodge/RadarSweep.hs 87;" f crCamouflage src/Dodge/Creature/Picture.hs 33;" f crCanSeeCr src/Dodge/Creature/Test.hs 51;" f -crCrSpring src/Dodge/Update.hs 877;" f +crCrSpring src/Dodge/Update.hs 878;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 62;" f crDexterity src/Dodge/Creature/Statistics.hs 19;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 38;" f @@ -3014,7 +3014,7 @@ crRad src/Dodge/Creature/Radius.hs 7;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 72;" f crSetRoots src/Dodge/Inventory/Location.hs 55;" f crShape src/Dodge/Creature/Shape.hs 8;" f -crSpring src/Dodge/Update.hs 872;" f +crSpring src/Dodge/Update.hs 873;" f crStratConMatches src/Dodge/Creature/Test.hs 77;" f crStrength src/Dodge/Creature/Statistics.hs 29;" f crUpdate' src/Dodge/Creature/Update.hs 57;" f @@ -3075,17 +3075,17 @@ cycleEnum src/Dodge/Menu/OptionType.hs 22;" f cycleGT src/IntMapHelp.hs 93;" f cycleL src/DoubleStack.hs 28;" f cycleLT src/IntMapHelp.hs 96;" f -cycleOptions src/Dodge/Menu/Option.hs 77;" f +cycleOptions src/Dodge/Menu/Option.hs 75;" f cycleR src/DoubleStack.hs 32;" f cylinderIndices src/Shader/Poke.hs 382;" f cylinderOnSeg src/Geometry.hs 123;" f cylinderPoly src/Shape.hs 87;" f cylinderRoundIndices src/Shader/Poke.hs 389;" f -dShadCol src/Dodge/Render/List.hs 215;" f +dShadCol src/Dodge/Render/List.hs 214;" f damMatSideEffect src/Dodge/Material/Damage.hs 13;" f damThingHitWith src/Dodge/Damage.hs 72;" f damToExpBarrel src/Dodge/Barreloid.hs 49;" f -damageCodeCommand src/Dodge/Terminal.hs 61;" f +damageCodeCommand src/Dodge/Terminal.hs 59;" f damageCrWl src/Dodge/Damage.hs 29;" f damageCrWlID src/Dodge/Damage.hs 23;" f damageDirection src/Dodge/Damage.hs 35;" f @@ -3119,12 +3119,12 @@ debugEvent src/Dodge/Debug.hs 27;" f debugEvents src/Dodge/Debug.hs 20;" f debugItem src/Dodge/Debug.hs 30;" f debugList src/Dodge/Debug.hs 105;" f -debugMenu src/Dodge/Menu.hs 119;" f -debugMenuOptions src/Dodge/Menu.hs 122;" f +debugMenu src/Dodge/Menu.hs 121;" f +debugMenuOptions src/Dodge/Menu.hs 124;" f debugOn src/Dodge/Data/Config.hs 151;" f debugSelectCreatureList src/Dodge/Debug.hs 88;" f debugSelectCreatureMessage src/Dodge/Debug.hs 79;" f -decodeSensorType src/Dodge/Terminal.hs 74;" f +decodeSensorType src/Dodge/Terminal.hs 72;" f decomposeSelfTree src/Dodge/Tree/Compose.hs 60;" f decomposeTree src/Dodge/Tree/Compose.hs 57;" f decontamRoom src/Dodge/Room/Airlock.hs 28;" f @@ -3224,13 +3224,13 @@ dim src/Color.hs 112;" f dirtColor src/Dodge/Default/Wall.hs 81;" f dirtPoly src/Dodge/Room/RoadBlock.hs 74;" f disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 650;" f -displayConfig src/Dodge/Menu.hs 213;" f +displayConfig src/Dodge/Menu.hs 212;" f displayControls src/Dodge/Menu.hs 223;" f displayFrameTicks src/Dodge/Render/Picture.hs 46;" f -displayFreeSlots src/Dodge/DisplayInventory.hs 197;" f -displayIndents src/Dodge/DisplayInventory.hs 112;" f +displayFreeSlots src/Dodge/DisplayInventory.hs 192;" f +displayIndents src/Dodge/DisplayInventory.hs 110;" f displayPulse src/Dodge/Inventory/SelectionList.hs 179;" f -displayTerminalLineString src/Dodge/Update.hs 484;" f +displayTerminalLineString src/Dodge/Update.hs 485;" f dist src/Geometry/Vector.hs 190;" f dist3 src/Geometry/Vector3D.hs 101;" f divTo src/Geometry/Zone.hs 6;" f @@ -3302,7 +3302,7 @@ doRoomOutPlacements src/Dodge/Layout.hs 96;" f doRoomPlacements src/Dodge/Layout.hs 111;" f doRoomShift src/Dodge/Room/Link.hs 33;" f doScopeZoom src/Dodge/Update/Scroll.hs 91;" f -doSectionSize src/Dodge/DisplayInventory.hs 216;" f +doSectionSize src/Dodge/DisplayInventory.hs 211;" f doSideEffects appDodge/Main.hs 122;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 166;" f doTestDrawing src/Dodge/Render.hs 41;" f @@ -3317,7 +3317,7 @@ doWdCrBl src/Dodge/CreatureEffect.hs 37;" f doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdP2f src/Dodge/WdP2f.hs 12;" f doWdWd src/Dodge/WorldEffect.hs 28;" f -doWorldEvents src/Dodge/Update.hs 430;" f +doWorldEvents src/Dodge/Update.hs 431;" f doWorldPos src/Dodge/WorldPos.hs 7;" f door src/Dodge/Room/Door.hs 13;" f doorBetween src/Dodge/Placement/Instance/Door.hs 39;" f @@ -3352,7 +3352,7 @@ drawCircCollisionTest src/Dodge/Debug/Picture.hs 117;" f drawCliff src/Dodge/Render/ShapePicture.hs 48;" f drawCollisionTest src/Dodge/Debug/Picture.hs 102;" f drawCombFilter src/Dodge/Render/Picture.hs 268;" f -drawCombineInventory src/Dodge/Render/HUD.hs 181;" f +drawCombineInventory src/Dodge/Render/HUD.hs 182;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 69;" f drawCoord src/Dodge/Debug/Picture.hs 375;" f drawCorpse src/Dodge/Corpse/Draw.hs 6;" f @@ -3371,12 +3371,12 @@ drawDrag src/Dodge/Render/Picture.hs 199;" f drawDragDrop src/Dodge/Render/Picture.hs 228;" f drawDragPickup src/Dodge/Render/Picture.hs 237;" f drawDragSelect src/Dodge/Render/Picture.hs 196;" f -drawDragSelected src/Dodge/Render/HUD.hs 135;" f -drawDragSelecting src/Dodge/Render/HUD.hs 152;" f +drawDragSelected src/Dodge/Render/HUD.hs 136;" f +drawDragSelecting src/Dodge/Render/HUD.hs 153;" f drawEmptySet src/Dodge/Render/Picture.hs 140;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f drawEquipment src/Dodge/Creature/Picture.hs 127;" f -drawExamineInventory src/Dodge/Render/HUD.hs 197;" f +drawExamineInventory src/Dodge/Render/HUD.hs 198;" f drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 269;" f drawFlame src/Dodge/Flame/Draw.hs 8;" f @@ -3390,27 +3390,27 @@ drawInputMenu src/Dodge/Render/MenuScreen.hs 22;" f drawInspectWall src/Dodge/Debug/Picture.hs 244;" f drawInspectWalls src/Dodge/Debug/Picture.hs 232;" f drawInventory src/Dodge/Render/HUD.hs 58;" f -drawItemChildrenConnect src/Dodge/Render/HUD.hs 328;" f -drawItemConnections src/Dodge/Render/HUD.hs 318;" f +drawItemChildrenConnect src/Dodge/Render/HUD.hs 329;" f +drawItemConnections src/Dodge/Render/HUD.hs 319;" f drawJumpDown src/Dodge/Render/Picture.hs 191;" f drawLabCrossCol src/Dodge/Render/Label.hs 8;" f drawLampCover src/Dodge/Prop/Draw.hs 55;" f drawLaser src/Dodge/Laser/Update.hs 29;" f drawLightSource src/Dodge/LightSource/Draw.hs 7;" f drawLinearShockwave src/Dodge/LinearShockwave/Draw.hs 10;" f -drawList src/Dodge/Render/List.hs 209;" f -drawListElement src/Dodge/Render/List.hs 187;" f +drawList src/Dodge/Render/List.hs 208;" f +drawListElement src/Dodge/Render/List.hs 186;" f drawListYgapScaleYoff src/Dodge/Render/List.hs 95;" f drawListYoff src/Dodge/Render/List.hs 92;" f drawMachine src/Dodge/Machine/Draw.hs 16;" f drawMapperAR src/Dodge/Targeting/Draw.hs 12;" f -drawMapperInventory src/Dodge/Render/HUD.hs 172;" f +drawMapperInventory src/Dodge/Render/HUD.hs 173;" f drawMenuClick src/Dodge/Render/Picture.hs 163;" f drawMenuCursor src/Dodge/Render/Picture.hs 177;" f drawMenuOrHUD src/Dodge/Render/Picture.hs 64;" f drawMenuScreen src/Dodge/Render/MenuScreen.hs 16;" f drawMouseCursor src/Dodge/Render/Picture.hs 80;" f -drawMouseOver src/Dodge/Render/HUD.hs 108;" f +drawMouseOver src/Dodge/Render/HUD.hs 109;" f drawMousePosition src/Dodge/Debug/Picture.hs 365;" f drawMovingShape src/Dodge/Prop/Draw.hs 81;" f drawMovingShapeCol src/Dodge/Prop/Draw.hs 87;" f @@ -3425,11 +3425,11 @@ drawProp src/Dodge/Prop/Draw.hs 26;" f drawProxSensor src/Dodge/Machine/Draw.hs 37;" f drawPulseBall src/Dodge/Render/ShapePicture.hs 54;" f drawQuitTerminal src/Dodge/Render/Picture.hs 133;" f -drawRBOptions src/Dodge/Render/HUD.hs 250;" f +drawRBOptions src/Dodge/Render/HUD.hs 251;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 38;" f drawReturn src/Dodge/Render/Picture.hs 147;" f -drawRootCursor src/Dodge/Render/HUD.hs 75;" f +drawRootCursor src/Dodge/Render/HUD.hs 76;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 35;" f drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 46;" f drawSelect src/Dodge/Render/Picture.hs 256;" f @@ -3443,11 +3443,11 @@ drawShell src/Dodge/Projectile/Draw.hs 22;" f drawShockwave src/Dodge/Shockwave/Draw.hs 6;" f drawSpark src/Dodge/Spark/Draw.hs 7;" f drawStaticBall src/Dodge/EnergyBall/Draw.hs 28;" f -drawSubInventory src/Dodge/Render/HUD.hs 162;" f +drawSubInventory src/Dodge/Render/HUD.hs 163;" f drawSwitch src/Dodge/Button/Draw.hs 16;" f drawSwitchWire src/Dodge/LevelGen/Switch.hs 24;" f drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f -drawTerminalDisplay src/Dodge/Render/HUD.hs 364;" f +drawTerminalDisplay src/Dodge/Render/HUD.hs 360;" f drawTeslaArc src/Dodge/Tesla/Draw.hs 9;" f drawText src/Picture/Base.hs 220;" f drawTitle src/Dodge/Render/MenuScreen.hs 55;" f @@ -3489,9 +3489,9 @@ dtToLRAdj src/Dodge/DoubleTree.hs 169;" f dtToLRAdjEither src/Dodge/DoubleTree.hs 181;" f dtToRootIntMap' src/Dodge/DoubleTree.hs 153;" f dtToUpDownAdj src/Dodge/DoubleTree.hs 158;" f -dummyMenuOption src/Dodge/Menu/Option.hs 74;" f +dummyMenuOption src/Dodge/Menu/Option.hs 72;" f dustColor src/Shader/Poke/Cloud.hs 71;" f -dustSpringVel src/Dodge/Update.hs 859;" f +dustSpringVel src/Dodge/Update.hs 860;" f ebColor src/Dodge/EnergyBall.hs 77;" f ebDamage src/Dodge/EnergyBall.hs 85;" f ebEffect src/Dodge/EnergyBall.hs 45;" f @@ -3515,12 +3515,12 @@ endArcPos src/Dodge/Tesla.hs 87;" f endCombineRegex src/Dodge/Update/Input/InGame.hs 273;" f endRegex src/Dodge/Update/Input/InGame.hs 267;" f energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 592;" f -enterCombineInv src/Dodge/DisplayInventory.hs 322;" f +enterCombineInv src/Dodge/DisplayInventory.hs 317;" f epText src/Dodge/Inventory/SelectionList.hs 76;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 5;" f eqTypeToSites src/Dodge/Inventory/RBList.hs 77;" f -equipAllocString src/Dodge/Render/HUD.hs 309;" f +equipAllocString src/Dodge/Render/HUD.hs 310;" f equipAttachPos src/Dodge/Item/Draw.hs 29;" f equipBackgroundEffect src/Dodge/Euse.hs 15;" f equipInfo src/Dodge/Item/Info.hs 141;" f @@ -3564,7 +3564,7 @@ fdiv src/ShortShow.hs 37;" f feet src/Dodge/Creature/Picture.hs 51;" f ffoldM src/Framebuffer/Update.hs 79;" f filter3 src/FoldableHelp.hs 76;" f -filterSectionsPair src/Dodge/DisplayInventory.hs 165;" f +filterSectionsPair src/Dodge/DisplayInventory.hs 157;" f findBlips src/Dodge/RadarSweep.hs 62;" f findBoundDists src/Dodge/Update/Camera.hs 248;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f @@ -3611,7 +3611,7 @@ flockPointTarget src/Dodge/Creature/Boid.hs 200;" f flockPointTargetR src/Dodge/Creature/Boid.hs 267;" f flockToPointUsing src/Dodge/Creature/Boid.hs 215;" f flockToPointUsing' src/Dodge/Creature/Boid.hs 228;" f -floorItemPickupInfo src/Dodge/Render/HUD.hs 230;" f +floorItemPickupInfo src/Dodge/Render/HUD.hs 231;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 122;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f @@ -3652,12 +3652,12 @@ g src/ShortShow.hs 44;" f gLauncher src/Dodge/Item/Held/Launcher.hs 24;" f gRandify src/Dodge/Randify.hs 11;" f gadgetEffect src/Dodge/HeldUse.hs 46;" f -gameOverMenu src/Dodge/Menu.hs 187;" f +gameOverMenu src/Dodge/Menu.hs 189;" f gameRoomFromRoom src/Dodge/Layout.hs 150;" f gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f gameRoomsFromRooms src/Dodge/Layout.hs 147;" f -gameplayMenu src/Dodge/Menu.hs 134;" f -gameplayMenuOptions src/Dodge/Menu.hs 137;" f +gameplayMenu src/Dodge/Menu.hs 136;" f +gameplayMenuOptions src/Dodge/Menu.hs 139;" f gasType src/Dodge/HeldUse.hs 1141;" f generateGenParams src/Dodge/LevelGen/LevelStructure.hs 21;" f generateGraphs src/Dodge/LevelGen.hs 40;" f @@ -3677,8 +3677,8 @@ getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 170;" f getBulletType src/Dodge/HeldUse.hs 924;" f getCloseObj src/Dodge/Update/Input/InGame.hs 535;" f -getCommand src/Dodge/Terminal.hs 54;" f -getCommands src/Dodge/Terminal.hs 51;" f +getCommand src/Dodge/Terminal.hs 52;" f +getCommands src/Dodge/Terminal.hs 49;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f getDistortions src/Dodge/Render.hs 435;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1296;" f @@ -3694,7 +3694,7 @@ getNodePos src/Dodge/Path.hs 31;" f getPJStabiliser src/Dodge/HeldUse.hs 1283;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f -getRootItemBounds src/Dodge/Render/HUD.hs 99;" f +getRootItemBounds src/Dodge/Render/HUD.hs 100;" f getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f @@ -3727,8 +3727,8 @@ grahamScan src/Geometry/Polygon.hs 122;" f grapeCannon src/Dodge/Item/Held/Cone.hs 17;" f graphToEdges src/Dodge/Graph.hs 35;" f graphToIncidence src/Dodge/Graph.hs 40;" f -graphicsMenu src/Dodge/Menu.hs 165;" f -graphicsMenuOptions src/Dodge/Menu.hs 168;" f +graphicsMenu src/Dodge/Menu.hs 167;" f +graphicsMenuOptions src/Dodge/Menu.hs 170;" f green src/Color.hs 15;" f greyN src/Color.hs 124;" f gridInPolygon src/Grid.hs 12;" f @@ -3795,7 +3795,7 @@ heldItemWeight src/Dodge/Creature/Statistics.hs 80;" f heldPositionInfo src/Dodge/Item/Info.hs 241;" f heldTorqueAmount src/Dodge/HeldUse.hs 578;" f heldTriggerType src/Dodge/BaseTriggerType.hs 27;" f -helpPara src/Dodge/Terminal.hs 92;" f +helpPara src/Dodge/Terminal.hs 90;" f helpPoly3D src/Polyhedra.hs 125;" f heron src/Geometry.hs 221;" f hiToFloat src/Dodge/Room/Modify/Girder.hs 171;" f @@ -3834,7 +3834,7 @@ initialWorld src/Dodge/Initialisation.hs 15;" f initialisePlaying src/Sound.hs 77;" f initializeGLState src/Preload/Render.hs 216;" f initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f -initializeOptionMenuBO src/Dodge/Menu/Option.hs 32;" f +initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f initializeTexture2D src/Framebuffer/Update.hs 221;" f inorderNumberTree src/TreeHelp.hs 189;" f insertAt src/Padding.hs 63;" f @@ -3880,8 +3880,8 @@ invCursorParams src/Dodge/ListDisplayParams.hs 36;" f invDP src/Dodge/ListDisplayParams.hs 30;" f invDT src/Dodge/Item/Grammar.hs 216;" f invDT' src/Dodge/Item/Grammar.hs 221;" f -invDimColor src/Dodge/DisplayInventory.hs 191;" f -invHead src/Dodge/Render/HUD.hs 403;" f +invDimColor src/Dodge/DisplayInventory.hs 186;" f +invHead src/Dodge/Render/HUD.hs 398;" f invIMDT src/Dodge/Item/Grammar.hs 245;" f invIndents src/Dodge/Item/Grammar.hs 252;" f invItemEffs src/Dodge/Creature/State.hs 62;" f @@ -4060,13 +4060,13 @@ linksAndPath' src/Dodge/Room/Path.hs 44;" f linksOnPath src/Dodge/Room/CheckConsistency.hs 7;" f listConfig src/Dodge/Menu.hs 216;" f listControls src/Dodge/Menu.hs 228;" f -listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f +listCursorChooseBorderScale src/Dodge/Render/List.hs 134;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 190;" f -listSelectionColorPicture src/Dodge/DisplayInventory.hs 307;" f +listSelectionColorPicture src/Dodge/DisplayInventory.hs 302;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 392;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 387;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f @@ -4139,8 +4139,8 @@ makeBullet src/Dodge/HeldUse.hs 1002;" f makeButton src/Dodge/LevelGen/Switch.hs 16;" f makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f -makeColorTermLine src/Dodge/Terminal.hs 113;" f -makeColorTermPara src/Dodge/Terminal.hs 110;" f +makeColorTermLine src/Dodge/Terminal.hs 111;" f +makeColorTermPara src/Dodge/Terminal.hs 108;" f makeCorpse src/Dodge/Corpse/Make.hs 13;" f makeDebris src/Dodge/Block/Debris.hs 45;" f makeDebrisDirected src/Dodge/Block/Debris.hs 48;" f @@ -4175,8 +4175,8 @@ makeSourcedShader src/Shader/Compile.hs 167;" f makeSpark src/Dodge/Spark.hs 45;" f makeSubmenuOption src/Dodge/Menu/OptionType.hs 19;" f makeSwitch src/Dodge/LevelGen/Switch.hs 38;" f -makeTermLine src/Dodge/Terminal.hs 98;" f -makeTermPara src/Dodge/Terminal.hs 107;" f +makeTermLine src/Dodge/Terminal.hs 96;" f +makeTermPara src/Dodge/Terminal.hs 105;" f makeTeslaArc src/Dodge/Tesla.hs 29;" f makeTeslaExplosionAt src/Dodge/WorldEvent/Explosion.hs 40;" f makeTileFromPoly src/Tile.hs 34;" f @@ -4229,8 +4229,8 @@ memoCylinderIndices src/Shader/Poke.hs 323;" f memoFlatIndices src/Shader/Poke.hs 311;" f memoTopPrismEdgeIndices src/Shader/Poke.hs 329;" f memoTopPrismIndices src/Shader/Poke.hs 317;" f -menuLDP src/Dodge/ListDisplayParams.hs 54;" f -menuOptionToSelectionItem src/Dodge/Menu/Option.hs 93;" f +menuLDP src/Dodge/ListDisplayParams.hs 52;" f +menuOptionToSelectionItem src/Dodge/Menu/Option.hs 91;" f merge src/ListHelp.hs 83;" f mergeBy src/ListHelp.hs 86;" f mergeOn src/ListHelp.hs 93;" f @@ -4311,7 +4311,7 @@ muzFlareAt src/Dodge/HeldUse.hs 674;" f mvButton src/Dodge/Placement/PlaceSpot.hs 154;" f mvCr src/Dodge/Placement/PlaceSpot.hs 160;" f mvFS src/Dodge/Placement/PlaceSpot.hs 163;" f -mvGust src/Dodge/Update.hs 791;" f +mvGust src/Dodge/Update.hs 792;" f mvLS src/Dodge/Placement/PlaceSpot.hs 220;" f mvP src/Dodge/Wall/Move.hs 54;" f mvPP src/Dodge/Placement/PlaceSpot.hs 157;" f @@ -4370,13 +4370,13 @@ onRemoveWristShield src/Dodge/Equipment.hs 23;" f onXY src/Geometry/Vector3D.hs 130;" f oneH src/Dodge/Creature/Test.hs 93;" f openConsole src/Dodge/Update.hs 136;" f -optionMenu src/Dodge/Menu.hs 108;" f +optionMenu src/Dodge/Menu.hs 110;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 52;" f optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 43;" f -optionValueOffset src/Dodge/Menu/Option.hs 88;" f -optionsOptions src/Dodge/Menu.hs 111;" f -optionsToSelections src/Dodge/Menu/Option.hs 50;" f -orRegex src/Dodge/DisplayInventory.hs 83;" f +optionValueOffset src/Dodge/Menu/Option.hs 86;" f +optionsOptions src/Dodge/Menu.hs 113;" f +optionsToSelections src/Dodge/Menu/Option.hs 47;" f +orRegex src/Dodge/DisplayInventory.hs 81;" f orange src/Color.hs 25;" f orderAround3 src/Geometry/Vector3D.hs 105;" f orderAroundFirst src/Geometry/Polygon.hs 88;" f @@ -4421,10 +4421,10 @@ pathEdgeObstructed src/Dodge/Path.hs 43;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f pauseGame src/Dodge/Update/Input/InGame.hs 527;" f pauseMenu src/Dodge/Menu.hs 56;" f -pauseMenuOptions src/Dodge/Menu.hs 61;" f +pauseMenuOptions src/Dodge/Menu.hs 63;" f pauseSound src/Dodge/SoundLogic.hs 42;" f pauseTime src/Dodge/Update.hs 191;" f -pbFlicker src/Dodge/Update.hs 471;" f +pbFlicker src/Dodge/Update.hs 472;" f pbsHit src/Dodge/WorldEvent/ThingsHit.hs 62;" f peZoneSize src/Dodge/Zoning/Pathing.hs 46;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f @@ -4476,7 +4476,7 @@ placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 70;" f placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 51;" f placeString src/Dodge/Render/MenuScreen.hs 61;" f placeWallPoly src/Dodge/Placement/PlaceSpot.hs 140;" f -plainRegex src/Dodge/DisplayInventory.hs 194;" f +plainRegex src/Dodge/DisplayInventory.hs 189;" f playIfFree src/Sound.hs 137;" f playPositionalSoundQueue src/Sound.hs 145;" f playSoundAndUpdate src/Sound.hs 54;" f @@ -4578,7 +4578,7 @@ powlistUpToN src/Multiset.hs 23;" f powlistUpToN' src/Multiset.hs 12;" f powlistUpToN'' src/Multiset.hs 31;" f ppDraw src/Dodge/Render/ShapePicture.hs 119;" f -ppEvents src/Dodge/Update.hs 754;" f +ppEvents src/Dodge/Update.hs 755;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f preCritStart src/Dodge/Room/Start.hs 83;" f prePos src/Quaternion.hs 68;" f @@ -4660,7 +4660,7 @@ qToV2 src/Quaternion.hs 56;" f qToV3 src/Quaternion.hs 53;" f quarterRoomSquare src/Dodge/Room/Procedural.hs 212;" f quarterRoomTri src/Dodge/Room/Procedural.hs 176;" f -quitCommand src/Dodge/Terminal.hs 95;" f +quitCommand src/Dodge/Terminal.hs 93;" f qz src/Quaternion.hs 71;" f rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f @@ -4688,7 +4688,7 @@ randPeakedParam src/RandomHelp.hs 130;" f randProb src/RandomHelp.hs 68;" f randSpark src/Dodge/Spark.hs 69;" f randSparkExtraVel src/Dodge/Spark.hs 92;" f -randWallReflect src/Dodge/Update.hs 647;" f +randWallReflect src/Dodge/Update.hs 648;" f randomChallenges src/Dodge/Room/Start.hs 63;" f randomCompass src/Dodge/Layout.hs 57;" f randomFourCornerRoom src/Dodge/Room/Procedural.hs 265;" f @@ -4725,9 +4725,9 @@ reflectInParam src/Geometry.hs 233;" f reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 16;" f reflectPulseLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 69;" f refract src/Dodge/Item/Weapon/LaserPath.hs 43;" f -refreshOptionsSelectionList src/Dodge/Menu/Option.hs 38;" f -regexCombs src/Dodge/DisplayInventory.hs 73;" f -regexList src/Dodge/DisplayInventory.hs 313;" f +refreshOptionsSelectionList src/Dodge/Menu/Option.hs 35;" f +regexCombs src/Dodge/DisplayInventory.hs 71;" f +regexList src/Dodge/DisplayInventory.hs 308;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 602;" f reloadLevelStart src/Dodge/Save.hs 71;" f reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 600;" f @@ -4746,7 +4746,7 @@ renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f renderLayer src/Render.hs 234;" f renderLightingNoShadows src/Render.hs 48;" f -renderListAt src/Dodge/Render/List.hs 192;" f +renderListAt src/Dodge/Render/List.hs 191;" f renderShadows src/Render.hs 117;" f replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 162;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 102;" f @@ -4863,8 +4863,8 @@ safeSwapKeys src/IntMapHelp.hs 77;" f safeUncons src/ListHelp.hs 72;" f safeUpdateSingleNode src/TreeHelp.hs 115;" f saveConfig src/Dodge/Config/Update.hs 20;" f -saveQuit src/Dodge/Menu.hs 74;" f -saveQuitConc src/Dodge/Menu.hs 77;" f +saveQuit src/Dodge/Menu.hs 76;" f +saveQuitConc src/Dodge/Menu.hs 79;" f saveSlotPath src/Dodge/Save.hs 63;" f saveWorldInSlot src/Dodge/Save.hs 68;" f sawtoothFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 714;" f @@ -4901,16 +4901,16 @@ seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 502;" f seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 718;" f searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 205;" f secondColumnLDP src/Dodge/ListDisplayParams.hs 43;" f -sectionsDesiredLines src/Dodge/DisplayInventory.hs 203;" f -sectionsSizes src/Dodge/DisplayInventory.hs 206;" f -seedStartMenu src/Dodge/Menu.hs 82;" f -seedStartOptions src/Dodge/Menu.hs 85;" f +sectionsDesiredLines src/Dodge/DisplayInventory.hs 198;" f +sectionsSizes src/Dodge/DisplayInventory.hs 201;" f +seedStartMenu src/Dodge/Menu.hs 84;" f +seedStartOptions src/Dodge/Menu.hs 87;" f segOnCirc src/Geometry.hs 114;" f -selNumPos src/Dodge/Render/HUD.hs 452;" f -selNumPosCardinal src/Dodge/Render/HUD.hs 475;" f -selSecDrawCursor src/Dodge/Render/List.hs 126;" f +selNumPos src/Dodge/Render/HUD.hs 447;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 470;" f +selSecDrawCursor src/Dodge/Render/List.hs 125;" f selSecDrawCursorAt src/Dodge/Render/List.hs 104;" f -selSecSelCol src/Dodge/Render/HUD.hs 506;" f +selSecSelCol src/Dodge/Render/HUD.hs 501;" f selSecSelSize src/Dodge/SelectionSections.hs 143;" f selSecYint src/Dodge/SelectionSections.hs 152;" f selectCreatureDebugItem src/Dodge/Debug.hs 65;" f @@ -4942,7 +4942,7 @@ setLinkType src/Dodge/RoomLink.hs 60;" f setLinkTypePD src/Dodge/RoomLink.hs 67;" f setMusicVolume src/Sound.hs 162;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 53;" f -setOldPos src/Dodge/Update.hs 503;" f +setOldPos src/Dodge/Update.hs 504;" f setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f @@ -5053,8 +5053,8 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f shuffleRoomPos src/Dodge/Layout.hs 76;" f shuffleTail src/RandomHelp.hs 59;" f sigmoid src/Dodge/Base.hs 151;" f -simpleCrSprings src/Dodge/Update.hs 868;" f -simpleTermMessage src/Dodge/Terminal.hs 166;" f +simpleCrSprings src/Dodge/Update.hs 869;" f +simpleTermMessage src/Dodge/Terminal.hs 164;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 680;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 472;" f singleAmmo src/Dodge/Item/AmmoSlots.hs 62;" f @@ -5091,8 +5091,8 @@ soundAngle src/Dodge/SoundLogic.hs 163;" f soundContinue src/Dodge/SoundLogic.hs 131;" f soundContinueVol src/Dodge/SoundLogic.hs 145;" f soundIsClose src/Dodge/Creature/Perception.hs 184;" f -soundMenu src/Dodge/Menu.hs 140;" f -soundMenuOptions src/Dodge/Menu.hs 143;" f +soundMenu src/Dodge/Menu.hs 142;" f +soundMenuOptions src/Dodge/Menu.hs 145;" f soundMultiFrom src/Dodge/SoundLogic.hs 187;" f soundOriginIDsAt src/Dodge/WorldEvent/Sound.hs 18;" f soundOriginsIDsAt src/Dodge/WorldEvent/Sound.hs 13;" f @@ -5186,7 +5186,7 @@ strideRot src/Dodge/Item/HeldOffset.hs 72;" f stringToList src/Picture/Base.hs 313;" f stringToListGrad src/Picture/Text.hs 12;" f stripZ src/Geometry/Vector3D.hs 97;" f -subInvX src/Dodge/ListDisplayParams.hs 48;" f +subInvX src/Dodge/ListDisplayParams.hs 46;" f subMap src/TreeHelp.hs 118;" f subZipWith src/Dodge/Placement/Instance/Wall.hs 115;" f swapAnyExtraSelection src/Dodge/Inventory/Swap.hs 56;" f @@ -5202,8 +5202,8 @@ t src/ShortShow.hs 44;" f tEast src/Dodge/Room/Corridor.hs 90;" f tToBTree src/Dodge/Tree/Compose.hs 92;" f tWest src/Dodge/Room/Corridor.hs 115;" f -tabComplete src/Dodge/Terminal.hs 119;" f -tabComplete' src/Dodge/Terminal.hs 125;" f +tabComplete src/Dodge/Terminal.hs 117;" f +tabComplete' src/Dodge/Terminal.hs 123;" f takeN src/RandomHelp.hs 44;" f takeNMore src/RandomHelp.hs 41;" f takeOne src/RandomHelp.hs 22;" f @@ -5231,10 +5231,10 @@ targetingScope src/Dodge/Item/Scope.hs 38;" f telRoomLev src/Dodge/Room/Teleport.hs 14;" f teleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 528;" f termScreenColor src/Dodge/Terminal/Color.hs 8;" f -termSoundLine src/Dodge/Terminal.hs 45;" f -termTextColor src/Dodge/Terminal.hs 48;" f +termSoundLine src/Dodge/Terminal.hs 43;" f +termTextColor src/Dodge/Terminal.hs 46;" f terminalColor src/Dodge/Placement/Instance/Terminal.hs 74;" f -terminalReturnEffect src/Dodge/Terminal.hs 170;" f +terminalReturnEffect src/Dodge/Terminal.hs 168;" f terminalSPic src/Dodge/Machine/Draw.hs 40;" f terminalScreenGlow src/Dodge/Machine/Update.hs 37;" f terminalShape src/Dodge/Machine/Draw.hs 43;" f @@ -5287,11 +5287,11 @@ ting4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 538;" f ting5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 710;" f tingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 574;" f tinitusS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 566;" f -titleOptionsMenu src/Dodge/Menu.hs 102;" f -titleOptionsNoWrite src/Dodge/Menu.hs 105;" f -tlDoEffect src/Dodge/Terminal.hs 104;" f -tlSetStatus src/Dodge/Terminal.hs 101;" f -tmUpdate src/Dodge/Update.hs 487;" f +titleOptionsMenu src/Dodge/Menu.hs 104;" f +titleOptionsNoWrite src/Dodge/Menu.hs 107;" f +tlDoEffect src/Dodge/Terminal.hs 102;" f +tlSetStatus src/Dodge/Terminal.hs 99;" f +tmUpdate src/Dodge/Update.hs 488;" f toBinary src/Dodge/Inventory/SelectionList.hs 141;" f toBothLnk src/Dodge/RoomLink.hs 121;" f toClosestMultiple src/HelpNum.hs 3;" f @@ -5300,12 +5300,12 @@ toFloatVAs src/Shader/Compile.hs 211;" f toLabel src/Dodge/Cleat.hs 16;" f toMultiset src/Multiset.hs 64;" f toOnward src/Dodge/Tree/Compose.hs 101;" f -toTopLeft src/Dodge/Render/List.hs 219;" f +toTopLeft src/Dodge/Render/List.hs 218;" f toV2 src/Geometry/Data.hs 54;" f toV3 src/Geometry/Data.hs 57;" f toV4 src/Geometry/Data.hs 60;" f -toggleCombineInv src/Dodge/DisplayInventory.hs 316;" f -toggleCommands src/Dodge/Terminal.hs 79;" f +toggleCombineInv src/Dodge/DisplayInventory.hs 311;" f +toggleCommands src/Dodge/Terminal.hs 77;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 67;" f toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 105;" f toggleJust src/MaybeHelp.hs 41;" f @@ -5314,7 +5314,7 @@ tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 642;" f tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 664;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 606;" f tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 448;" f -topInvW src/Dodge/ListDisplayParams.hs 51;" f +topInvW src/Dodge/ListDisplayParams.hs 49;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismIndices src/Shader/Poke.hs 410;" f topTestPart src/Dodge/TestString.hs 41;" f @@ -5383,7 +5383,7 @@ tryPickupSelected src/Dodge/Update/Input/InGame.hs 146;" f tryPlay src/Sound.hs 84;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 23;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 52;" f -trySeedFromClipboard src/Dodge/Menu.hs 91;" f +trySeedFromClipboard src/Dodge/Menu.hs 93;" f trySpin src/Dodge/Projectile/Update.hs 170;" f trySynthBullet src/Dodge/Creature/State.hs 166;" f tryThrust src/Dodge/Projectile/Update.hs 176;" f @@ -5393,10 +5393,10 @@ turret src/Dodge/Placement/Instance/Turret.hs 37;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f tutAnoTree src/Dodge/Room/Tutorial.hs 43;" f tutDrop src/Dodge/Room/Tutorial.hs 57;" f -tutRezBox src/Dodge/Room/Tutorial.hs 84;" f +tutRezBox src/Dodge/Room/Tutorial.hs 89;" f tutRoomTree src/Dodge/Floor.hs 26;" f tutRooms src/Dodge/Room/Tutorial.hs 65;" f -tutorialMessage1 src/Dodge/Room/Tutorial.hs 100;" f +tutorialMessage1 src/Dodge/Room/Tutorial.hs 108;" f tweenAngles src/Geometry/Vector.hs 195;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 80;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 28;" f @@ -5416,7 +5416,7 @@ unfoldrMID src/MonadHelp.hs 33;" f unigate src/Dodge/Item/Scope.hs 102;" f unitVectorAtAngle src/Geometry/Vector.hs 100;" f unlockInv src/Dodge/Inventory/Lock.hs 12;" f -unpause src/Dodge/Menu.hs 195;" f +unpause src/Dodge/Menu.hs 194;" f unsafeBlinkAction src/Dodge/Creature/Action/Blink.hs 56;" f unsafeBlinker src/Dodge/Item/Held/Utility.hs 33;" f unsafeSwapKeys src/IntMapHelp.hs 74;" f @@ -5437,46 +5437,46 @@ updateBaseWheelEvent src/Dodge/Update/Scroll.hs 34;" f updateBounds src/Dodge/Update/Camera.hs 258;" f updateBulVel src/Dodge/Bullet.hs 56;" f updateBullet src/Dodge/Bullet.hs 21;" f -updateBullets src/Dodge/Update.hs 570;" f +updateBullets src/Dodge/Update.hs 571;" f updateCamera src/Dodge/Update/Camera.hs 30;" f updateCloseObjects src/Dodge/Inventory.hs 114;" f -updateCloud src/Dodge/Update.hs 805;" f -updateClouds src/Dodge/Update.hs 673;" f -updateCombinePositioning src/Dodge/DisplayInventory.hs 39;" f -updateCombineSections src/Dodge/DisplayInventory.hs 46;" f +updateCloud src/Dodge/Update.hs 806;" f +updateClouds src/Dodge/Update.hs 674;" f +updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f +updateCombineSections src/Dodge/DisplayInventory.hs 47;" f updateCreature src/Dodge/Creature/Update.hs 31;" f updateCreature' src/Dodge/Creature/Update.hs 39;" f -updateCreatureGroups src/Dodge/Update.hs 542;" f -updateCreatureSoundPositions src/Dodge/Update.hs 518;" f -updateDebris src/Dodge/Update.hs 577;" f +updateCreatureGroups src/Dodge/Update.hs 543;" f +updateCreatureSoundPositions src/Dodge/Update.hs 519;" f +updateDebris src/Dodge/Update.hs 578;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 100;" f -updateDelayedEvents src/Dodge/Update.hs 897;" f -updateDisplaySections src/Dodge/DisplayInventory.hs 118;" f +updateDelayedEvents src/Dodge/Update.hs 898;" f +updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDistortion src/Dodge/Distortion.hs 5;" f -updateDistortions src/Dodge/Update.hs 563;" f +updateDistortions src/Dodge/Update.hs 564;" f updateDoor src/Dodge/Update.hs 326;" f -updateDust src/Dodge/Update.hs 829;" f -updateDusts src/Dodge/Update.hs 676;" f +updateDust src/Dodge/Update.hs 830;" f +updateDusts src/Dodge/Update.hs 677;" f updateEnergyBall src/Dodge/EnergyBall.hs 31;" f -updateEnergyBalls src/Dodge/Update.hs 664;" f +updateEnergyBalls src/Dodge/Update.hs 665;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 507;" f updateExpBarrel src/Dodge/Barreloid.hs 20;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f updateFlame src/Dodge/Flame.hs 19;" f -updateFlames src/Dodge/Update.hs 661;" f +updateFlames src/Dodge/Update.hs 662;" f updateFloatingCamera src/Dodge/Update/Camera.hs 35;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 365;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 361;" f -updateGusts src/Dodge/Update.hs 788;" f +updateGusts src/Dodge/Update.hs 789;" f updateHumanoid src/Dodge/Humanoid.hs 13;" f -updateIMl src/Dodge/Update.hs 532;" f -updateIMl' src/Dodge/Update.hs 537;" f +updateIMl src/Dodge/Update.hs 533;" f +updateIMl' src/Dodge/Update.hs 538;" f updateInGameCamera src/Dodge/Update/Camera.hs 79;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 430;" f updateInt2Map src/Dodge/Zoning/Base.hs 92;" f -updateInventoryPositioning src/Dodge/DisplayInventory.hs 88;" f +updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f updateItemTargeting src/Dodge/Creature/State.hs 258;" f updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 399;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 424;" f @@ -5485,7 +5485,7 @@ updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 384;" f updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 407;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 11;" f -updateLasers src/Dodge/Update.hs 437;" f +updateLasers src/Dodge/Update.hs 438;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 170;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 443;" f @@ -5497,40 +5497,40 @@ updateMouseContextGame src/Dodge/Update.hs 347;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 98;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 88;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 168;" f -updateObjCatMaybes src/Dodge/Update.hs 554;" f -updateObjMapMaybe src/Dodge/Update.hs 547;" f -updatePastWorlds src/Dodge/Update.hs 426;" f +updateObjCatMaybes src/Dodge/Update.hs 555;" f +updateObjMapMaybe src/Dodge/Update.hs 548;" f +updatePastWorlds src/Dodge/Update.hs 427;" f updatePreload src/Preload/Update.hs 20;" f updateProjectile src/Dodge/Projectile/Update.hs 27;" f updateProp src/Dodge/Prop/Update.hs 11;" f updatePulse src/Dodge/Creature/Update.hs 136;" f -updatePulseBall src/Dodge/Update.hs 451;" f -updatePulseLaser src/Dodge/Update.hs 617;" f -updatePulseLasers src/Dodge/Update.hs 446;" f +updatePulseBall src/Dodge/Update.hs 452;" f +updatePulseLaser src/Dodge/Update.hs 618;" f +updatePulseLasers src/Dodge/Update.hs 447;" f updateRBList src/Dodge/Inventory/RBList.hs 22;" f updateRadarBlip src/Dodge/RadarBlip.hs 11;" f -updateRadarBlips src/Dodge/Update.hs 566;" f +updateRadarBlips src/Dodge/Update.hs 567;" f updateRadarSweep src/Dodge/RadarSweep.hs 39;" f -updateRadarSweeps src/Dodge/Update.hs 667;" f +updateRadarSweeps src/Dodge/Update.hs 668;" f updateRandNode src/TreeHelp.hs 108;" f updateRenderSplit appDodge/Main.hs 110;" f updateRightParentSF src/Dodge/Item/Grammar.hs 181;" f updateRootItemID src/Dodge/Inventory/Location.hs 41;" f updateScopeZoom src/Dodge/Update/Scroll.hs 79;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f -updateSection src/Dodge/DisplayInventory.hs 263;" f -updateSectionsPositioning src/Dodge/DisplayInventory.hs 242;" f +updateSection src/Dodge/DisplayInventory.hs 258;" f +updateSectionsPositioning src/Dodge/DisplayInventory.hs 237;" f updateShockwave src/Dodge/Shockwave/Update.hs 8;" f -updateShockwaves src/Dodge/Update.hs 658;" f +updateShockwaves src/Dodge/Update.hs 659;" f updateSingleNodes src/TreeHelp.hs 97;" f updateSound src/Sound.hs 72;" f updateSounds src/Sound.hs 67;" f updateSpark src/Dodge/Spark.hs 19;" f -updateSparks src/Dodge/Update.hs 670;" f -updateTeslaArc src/Dodge/Update.hs 587;" f -updateTeslaArcs src/Dodge/Update.hs 584;" f +updateSparks src/Dodge/Update.hs 671;" f +updateTeslaArc src/Dodge/Update.hs 588;" f +updateTeslaArcs src/Dodge/Update.hs 585;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 8;" f -updateTractorBeams src/Dodge/Update.hs 655;" f +updateTractorBeams src/Dodge/Update.hs 656;" f updateTurret src/Dodge/Machine/Update.hs 46;" f updateUniverse src/Dodge/Update.hs 79;" f updateUniverseFirst src/Dodge/Update.hs 90;" f @@ -5541,7 +5541,7 @@ updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 23;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 10;" f updateWallDamages src/Dodge/Update/WallDamage.hs 10;" f updateWheelEvent src/Dodge/Update/Scroll.hs 25;" f -updateWheelEvents src/Dodge/Update.hs 416;" f +updateWheelEvents src/Dodge/Update.hs 417;" f updateWorldEventFlag src/Dodge/Update.hs 125;" f updateWorldEventFlags src/Dodge/Update.hs 113;" f upperBody src/Dodge/Creature/Picture.hs 120;" f @@ -5686,7 +5686,7 @@ wpAdd src/Dodge/Room/RezBox.hs 147;" f wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f wristArmour src/Dodge/Item/Equipment.hs 43;" f wristInvisibility src/Dodge/Item/Equipment.hs 96;" f -writeConfig src/Dodge/Menu.hs 162;" f +writeConfig src/Dodge/Menu.hs 164;" f writeSaveSlot src/Dodge/Save.hs 34;" f xCylinder src/Shape.hs 137;" f xCylinderST src/Shape.hs 134;" f @@ -5699,7 +5699,7 @@ yV2 src/Geometry/Vector.hs 210;" f yellow src/Color.hs 17;" f you src/Dodge/Base/You.hs 13;" f youDropItem src/Dodge/Creature/Action.hs 196;" f -yourAugmentedItem src/Dodge/Render/HUD.hs 237;" f +yourAugmentedItem src/Dodge/Render/HUD.hs 238;" f yourControl src/Dodge/Creature/YourControl.hs 27;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 110;" f yourInfo src/Dodge/Creature/Info.hs 10;" f @@ -5715,11 +5715,11 @@ zipArcs src/Dodge/Tesla.hs 52;" f zipCount src/Dodge/Tree/Shift.hs 129;" f zipCountDown src/Dodge/Room/Procedural.hs 118;" f zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f -zoneClouds src/Dodge/Update.hs 478;" f +zoneClouds src/Dodge/Update.hs 479;" f zoneCreature src/Dodge/Zoning/Creature.hs 54;" f -zoneCreatures src/Dodge/Update.hs 513;" f +zoneCreatures src/Dodge/Update.hs 514;" f zoneDust src/Dodge/Zoning/Cloud.hs 48;" f -zoneDusts src/Dodge/Update.hs 481;" f +zoneDusts src/Dodge/Update.hs 482;" f zoneExtract src/Dodge/Zoning/Base.hs 52;" f zoneMonoid src/Dodge/Zoning/Base.hs 83;" f zoneOfCirc src/Dodge/Zoning/Base.hs 24;" f